[mcclim-cvs] CVS mcclim/Goatee
afuchs
afuchs at common-lisp.net
Sat Mar 11 11:25:03 UTC 2006
Update of /project/mcclim/cvsroot/mcclim/Goatee
In directory clnet:/tmp/cvs-serv22853
Modified Files:
goatee-command.lisp
Log Message:
Add transpose-chars, bind it to C-t; add control-modified commands bindings:
* C-left, C-right
* C-backspace, C-delete
--- /project/mcclim/cvsroot/mcclim/Goatee/goatee-command.lisp 2005/12/05 22:40:01 1.20
+++ /project/mcclim/cvsroot/mcclim/Goatee/goatee-command.lisp 2006/03/11 11:25:03 1.21
@@ -216,6 +216,29 @@
(error "Last operation was not a yank!"))
(yank-prev *kill-ring* *buffer* *insert-extent*))
+;; Transposing (taken from climacs)
+
+(defun at-beginning-of-buffer-p (buffer)
+ (and (first-line-p (line (point buffer)))
+ (zerop (pos (point buffer)))))
+
+(defun at-end-of-line-p (buffer)
+ (multiple-value-bind (line pos) (location* (point buffer))
+ (declare (ignore line))
+ (multiple-value-bind (eoline eolpos) (end-of-line* buffer)
+ (declare (ignore eoline))
+ (= eolpos pos))))
+
+(defun cmd-transpose-chars (&key &allow-other-keys)
+ (unless (at-beginning-of-buffer-p *buffer*)
+ (with-point (*buffer*)
+ (when (at-end-of-line-p *buffer*)
+ (backward-character))
+ (let ((object (char-ref *buffer* (point *buffer*))))
+ (delete-char *buffer*)
+ (backward-character)
+ (insert *buffer* object)))))
+
;; Line motion
(defun up-line (&key &allow-other-keys)
@@ -284,6 +307,9 @@
(add-gesture-command-to-table '(:right :meta)
'forward-word
*simple-area-gesture-table*)
+(add-gesture-command-to-table '(:right :control)
+ 'forward-word
+ *simple-area-gesture-table*)
(add-gesture-command-to-table '(#\b :meta)
'backward-word
@@ -291,15 +317,24 @@
(add-gesture-command-to-table '(:left :meta)
'backward-word
*simple-area-gesture-table*)
+(add-gesture-command-to-table '(:left :control)
+ 'backward-word
+ *simple-area-gesture-table*)
(add-gesture-command-to-table '(#\backspace :meta)
'backwards-delete-word
*simple-area-gesture-table*)
+(add-gesture-command-to-table '(#\backspace :control)
+ 'backwards-delete-word
+ *simple-area-gesture-table*)
+(add-gesture-command-to-table '(#\d :meta)
+ 'delete-word
+ *simple-area-gesture-table*)
(add-gesture-command-to-table '(#\delete :meta)
'delete-word
*simple-area-gesture-table*)
-(add-gesture-command-to-table '(#\d :meta)
+(add-gesture-command-to-table '(#\delete :control)
'delete-word
*simple-area-gesture-table*)
@@ -343,6 +378,10 @@
'cmd-yank
*simple-area-gesture-table*)
+(add-gesture-command-to-table '(#\t :control)
+ 'cmd-transpose-chars
+ *simple-area-gesture-table*)
+
#+nil
(add-gesture-command-to-table '(#\y :meta)
'cmd-yank-next
More information about the Mcclim-cvs
mailing list