[climacs-cvs] CVS update: climacs/gui.lisp climacs/syntax.lisp

Robert Strandh rstrandh at common-lisp.net
Mon Jan 3 12:21:22 UTC 2005


Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv10659

Modified Files:
	gui.lisp syntax.lisp 
Log Message:
2005-01-02  Lawrence Mitchell  <wence at gmx.li>

	* gui.lisp ((define-application-frame climacs)): Add a
	without-interactor clause to the frame :layout.  This is a layout
	without a minibuffer pane.
	(com-toggle-layout): Toggle layout between 'default and
	'without-interactor.  Note the without-interactor layout no longer
	allows you to enter extended commands (there's nowhere for
	*standard-input* to go) so I'm not sure how useful it is.
	(com-set-mark): Fix indentation.
	(com-exchange-point-and-mark): New command, exchange the positions
	of point and mark, bound to C-x C-x.
	(com-transpose-lines): New command, bound to C-x C-t.

	* syntax.lisp (present-contents): Fix typo in argument list.


Date: Mon Jan  3 13:21:20 2005
Author: rstrandh

Index: climacs/gui.lisp
diff -u climacs/gui.lisp:1.44 climacs/gui.lisp:1.45
--- climacs/gui.lisp:1.44	Mon Jan  3 11:25:43 2005
+++ climacs/gui.lisp	Mon Jan  3 13:21:19 2005
@@ -77,7 +77,11 @@
        (vertically (:scroll-bars nil)
 	 (scrolling (:width 900 :height 400) win)
 	 info
-	 int)))
+	 int))
+   (without-interactor
+    (vertically (:scroll-bars nil)
+      (scrolling (:width 900 :height 400) win)
+      info)))
   (:top-level (climacs-top-level)))
 
 (defmethod redisplay-frame-panes :after ((frame climacs) &rest args)
@@ -275,6 +279,29 @@
         (insert-sequence point w2)
         (forward-word point)))))
 
+(define-named-command com-transpose-lines ()
+  (let ((point (point (win *application-frame*))))
+    (beginning-of-line point)
+    (unless (beginning-of-buffer-p point)
+      (previous-line point))
+    (let* ((bol (offset point))
+           (eol (progn (end-of-line point)
+                       (offset point)))
+           (line (buffer-sequence (buffer point) bol eol)))
+      (delete-region bol point)
+      ;; Remove newline at end of line as well.
+      (unless (end-of-buffer-p point)
+        (delete-range point))
+      ;; If the current line is at the end of the buffer, we want to
+      ;; be able to insert past it, so we need to get an extra line
+      ;; at the end.
+      (when (progn (end-of-line point)
+                   (end-of-buffer-p point))
+        (insert-object point #\Newline))
+      (next-line point)
+      (insert-sequence point line)
+      (insert-object point #\Newline))))
+
 (define-named-command com-previous-line ()
   (previous-line (point (win *application-frame*))))
 
@@ -302,7 +329,7 @@
 (define-named-command com-toggle-layout ()
   (setf (frame-current-layout *application-frame*)
 	(if (eq (frame-current-layout *application-frame*) 'default)
-	    'with-interactor
+	    'without-interactor
 	    'default)))
 
 (define-command com-extended-command ()
@@ -474,7 +501,12 @@
 
 (define-named-command com-set-mark ()
   (with-slots (point mark) (win *application-frame*)
-	      (setf mark (clone-mark point))))
+     (setf mark (clone-mark point))))
+
+(define-named-command com-exchange-point-and-mark ()
+  (with-slots (point mark) (win *application-frame*)
+     (psetf (offset mark) (offset point)
+	    (offset point) (offset mark))))
 
 (define-named-command com-set-syntax ()
   (setf (syntax (win *application-frame*))
@@ -597,7 +629,9 @@
 (c-x-set-key '(#\c :control) 'com-quit)
 (c-x-set-key '(#\f :control) 'com-find-file)
 (c-x-set-key '(#\s :control) 'com-save-buffer)
+(c-x-set-key '(#\t :control) 'com-transpose-lines)
 (c-x-set-key '(#\w :control) 'com-write-buffer)
+(c-x-set-key '(#\x :control) 'com-exchange-point-and-mark)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
@@ -634,8 +668,6 @@
 (dead-acute-set-key '(#\y) '(com-insert-charcode 253))
 (dead-acute-set-key '(#\C) '(com-insert-charcode 199))
 (dead-acute-set-key '(#\c) '(com-insert-charcode 231))
-(dead-acute-set-key '(#\B) '(com-insert-charcode 197)) ; not great
-(dead-acute-set-key '(#\b) '(com-insert-charcode 229)) ; not great
 (dead-acute-set-key '(#\x) '(com-insert-charcode 215))
 (dead-acute-set-key '(#\-) '(com-insert-charcode 247))
 (dead-acute-set-key '(#\T) '(com-insert-charcode 222))
@@ -643,6 +675,18 @@
 (dead-acute-set-key '(#\s) '(com-insert-charcode 223))
 (dead-acute-set-key '(#\Space) '(com-insert-charcode 39))
 
+(make-command-table 'dead-acute-dead-accute-climacs-table :errorp nil)
+
+(add-menu-item-to-command-table 'dead-acute-climacs-table "dead-acute-dead-accute"
+				:menu 'dead-acute-dead-accute-climacs-table
+				:keystroke '(:dead--acute))
+
+(defun dead-acute-dead-accute-set-key (gesture command)
+  (add-command-to-command-table command 'dead-acute-dead-accute-climacs-table
+				:keystroke gesture :errorp nil))
+
+(dead-acute-dead-accute-set-key '(#\A) '(com-insert-charcode 197))
+(dead-acute-dead-accute-set-key '(#\a) '(com-insert-charcode 229))
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
 ;;; Dead-grave command table


Index: climacs/syntax.lisp
diff -u climacs/syntax.lisp:1.17 climacs/syntax.lisp:1.18
--- climacs/syntax.lisp:1.17	Sat Jan  1 11:49:26 2005
+++ climacs/syntax.lisp	Mon Jan  3 13:21:20 2005
@@ -88,7 +88,7 @@
 (define-presentation-type url ()
   :inherit-from 'string)
 
-(defgeneric present-contents (contenst pane syntax))
+(defgeneric present-contents (contents pane syntax))
 
 (defmethod present-contents (contents pane (syntax basic-syntax))
   (unless (null contents)




More information about the Climacs-cvs mailing list