Update of /project/climacs/cvsroot/climacs In directory common-lisp:/tmp/cvs-serv12315
Modified Files: packages.lisp misc-commands.lisp lisp-syntax.lisp gui.lisp climacs.asd Log Message: Refactored the Lisp syntax module so it is no longer integrated with the global command table and gui.lisp.
--- /project/climacs/cvsroot/climacs/packages.lisp 2005/11/12 23:09:34 1.83 +++ /project/climacs/cvsroot/climacs/packages.lisp 2006/02/07 15:21:30 1.84 @@ -161,6 +161,31 @@ #:url #:climacs-textual-view #:+climacs-textual-view+))
+(defpackage :esa + (:use :clim-lisp :clim) + (:export #:minibuffer-pane #:display-message + #:esa-pane-mixin #:previous-command + #:info-pane #:master-pane + #:esa-frame-mixin #:windows #:recordingp #:executingp + #:*numeric-argument-p* #:*current-gesture* + #:esa-top-level #:simple-command-loop + #:global-esa-table #:keyboard-macro-table + #:help-table + #:set-key + #:find-applicable-command-table)) + +(defpackage :climacs-gui + (:use :clim-lisp :clim :climacs-buffer :climacs-base :climacs-abbrev :climacs-syntax + :climacs-kill-ring :climacs-pane :clim-extensions :undo :esa) + ;;(:import-from :lisp-string) + (:export :climacs ; Main entry point. + ;; GUI functions follow. + :current-window + :point + :syntax + :mark + :insert-character)) + (defpackage :climacs-fundamental-syntax (:use :clim-lisp :clim :climacs-buffer :climacs-base :climacs-syntax :flexichain :climacs-pane) @@ -182,24 +207,7 @@
(defpackage :climacs-lisp-syntax (:use :clim-lisp :clim :climacs-buffer :climacs-base - :climacs-syntax :flexichain :climacs-pane) + :climacs-syntax :flexichain :climacs-pane :climacs-gui) (:export :lisp-string))
-(defpackage :esa - (:use :clim-lisp :clim) - (:export #:minibuffer-pane #:display-message - #:esa-pane-mixin #:previous-command - #:info-pane #:master-pane - #:esa-frame-mixin #:windows #:recordingp #:executingp - #:*numeric-argument-p* #:*current-gesture* - #:esa-top-level #:simple-command-loop - #:global-esa-table #:keyboard-macro-table - #:help-table - #:set-key - #:find-applicable-command-table))
-(defpackage :climacs-gui - (:use :clim-lisp :clim :climacs-buffer :climacs-base :climacs-abbrev :climacs-syntax - :climacs-kill-ring :climacs-pane :clim-extensions :undo :esa) - (:import-from :climacs-lisp-syntax :lisp-string) - (:export :climacs)) --- /project/climacs/cvsroot/climacs/misc-commands.lisp 2005/11/12 23:09:34 1.2 +++ /project/climacs/cvsroot/climacs/misc-commands.lisp 2006/02/07 15:21:30 1.3 @@ -1304,16 +1304,6 @@ (loop repeat count do (up-list point syntax)) (loop repeat (- count) do (backward-up-list point syntax)))))
-(define-command (com-eval-defun :name t :command-table lisp-table) () - (let* ((pane (current-window)) - (point (point pane)) - (syntax (syntax (buffer pane)))) - (eval-defun point syntax))) - -(set-key 'com-eval-defun - 'lisp-table - '((#\x :control :meta))) - (define-command (com-beginning-of-definition :name t :command-table movement-table) ((count 'integer :prompt "Number of definitions")) (let* ((pane (current-window)) @@ -1354,11 +1344,5 @@ 'marking-table '((#\h :control :meta)))
-(define-command (com-package :name t :command-table lisp-table) () - (let* ((pane (current-window)) - (syntax (syntax (buffer pane))) - (package (climacs-lisp-syntax::package-of syntax))) - (display-message (format nil "~s" package)))) - (define-command (com-visible-mark :name t :command-table marking-table) () (setf (mark-visible-p (current-window)) (not (mark-visible-p (current-window))))) --- /project/climacs/cvsroot/climacs/lisp-syntax.lisp 2006/02/01 21:57:56 1.42 +++ /project/climacs/cvsroot/climacs/lisp-syntax.lisp 2006/02/07 15:21:30 1.43 @@ -24,6 +24,14 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; +;;; The command table. + +(make-command-table 'lisp-table + :errorp nil + :inherit-from '(climacs-gui::global-climacs-table)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; ;;; the syntax object
(define-syntax lisp-syntax (basic-syntax) @@ -36,7 +44,8 @@ (scan) (package)) (:name "Lisp") - (:pathname-types "lisp" "lsp" "cl")) + (:pathname-types "lisp" "lsp" "cl") + (:command-table lisp-table))
(defmethod initialize-instance :after ((syntax lisp-syntax) &rest args) (declare (ignore args)) --- /project/climacs/cvsroot/climacs/gui.lisp 2006/01/22 13:20:54 1.200 +++ /project/climacs/cvsroot/climacs/gui.lisp 2006/02/07 15:21:30 1.201 @@ -63,6 +63,14 @@ (defparameter *with-scrollbars* t "If T, classic look and feel. If NIL, stripped-down look (:")
+;;; Basic command tables follow. The global command table, +;;; `global-climacs-table', inherits from these, so they should not +;;; contain any overly syntax-specific commands. The idea is that it +;;; should be safe for any syntax to inherit its command-table from +;;; `global-climacs-table' (so the usual movement, search and +;;; navigation-commands are available), without risking adding alien +;;; commands that require the buffer to be in a specific syntax. + ;;; Basic functionality (make-command-table 'base-table :errorp nil) ;;; buffers @@ -83,8 +91,6 @@ (make-command-table 'indent-table :errorp nil) ;;; information about the buffer (make-command-table 'info-table :errorp nil) -;;; lisp-related commands -(make-command-table 'lisp-table :errorp nil) ;;; marking things (make-command-table 'marking-table :errorp nil) ;;; moving around @@ -124,7 +130,6 @@ fill-table indent-table info-table - lisp-table marking-table movement-table pane-table --- /project/climacs/cvsroot/climacs/climacs.asd 2005/11/23 17:39:28 1.40 +++ /project/climacs/cvsroot/climacs/climacs.asd 2006/02/07 15:21:30 1.41 @@ -69,7 +69,8 @@ (:file "prolog-syntax" :depends-on ("packages" "base" "syntax" "pane" "buffer")) (:file "prolog2paiprolog" :depends-on ("prolog-syntax")) (:file "ttcn3-syntax" :depends-on ("packages" "buffer" "syntax" "base" "pane")) - (:file "lisp-syntax" :depends-on ("packages" "syntax" "buffer" "base" "pane")) + (:file "lisp-syntax" :depends-on ("packages" "syntax" "buffer" "base" "pane" "gui")) + (:file "lisp-syntax-commands" :depends-on ("lisp-syntax")) (:file "esa" :depends-on ("packages")) (:file "gui" :depends-on ("packages" "syntax" "base" "buffer" "undo" "pane" "esa" "kill-ring" "io" "text-syntax" "abbrev"))