Update of /project/climacs/cvsroot/climacs In directory common-lisp.net:/tmp/cvs-serv867
Modified Files: gui.lisp Log Message: Added command fill-paragraph (bound to M-q) Date: Thu Jan 20 15:42:05 2005 Author: mvilleneuve
Index: climacs/gui.lisp diff -u climacs/gui.lisp:1.89 climacs/gui.lisp:1.90 --- climacs/gui.lisp:1.89 Thu Jan 20 11:12:48 2005 +++ climacs/gui.lisp Thu Jan 20 15:42:04 2005 @@ -505,6 +505,26 @@ (let ((buffer (buffer (current-window)))) (setf (auto-fill-mode buffer) (not (auto-fill-mode buffer)))))
+(define-named-command com-fill-paragraph () + (let* ((pane (current-window)) + (buffer (buffer pane)) + (syntax (syntax buffer)) + (point (point pane)) + (begin-mark (clone-mark point)) + (end-mark (clone-mark point))) + (unless (eql (object-before begin-mark) #\Newline) + (beginning-of-paragraph begin-mark syntax)) + (unless (eql (object-after end-mark) #\Newline) + (end-of-paragraph end-mark syntax)) + (do-buffer-region (object offset buffer + (offset begin-mark) (offset end-mark)) + (when (eql object #\Newline) + (setf object #\Space))) + (let ((point-backup (clone-mark point))) + (setf (offset point) (offset end-mark)) + (possibly-fill-line) + (setf (offset point) (offset point-backup))))) + (define-command com-extended-command () (let ((item (accept 'command :prompt "Extended Command"))) (execute-frame-command *application-frame* item))) @@ -1003,6 +1023,7 @@ (global-set-key '(#> :shift :meta) 'com-end-of-buffer) (global-set-key '(#\m :meta) 'com-back-to-indentation) (global-set-key '(#^ :shift :meta) 'com-delete-indentation) +(global-set-key '(#\q :meta) 'com-fill-paragraph) (global-set-key '(#\d :meta) 'com-delete-word) (global-set-key '(#\Backspace :meta) 'com-backward-delete-word) (global-set-key '(#/ :meta) 'com-dabbrev-expand)