diff --git a/hemlock/dylan.lisp b/hemlock/dylan.lisp index e0fb2843fc4e9d2b426126cb1ac703f863172668..481fe95b117670482ed2d9576dd34e60827ae1de 100644 --- a/hemlock/dylan.lisp +++ b/hemlock/dylan.lisp @@ -4,79 +4,62 @@ ;;; Copyright (c) 1993 Carnegie Mellon University, all rights reserved. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/dylan.lisp,v 1.1 1993/07/22 11:42:52 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/dylan.lisp,v 1.2 1994/08/21 15:17:15 ram Exp $") ;;; ;;; ********************************************************************** ;;; -;;; This file contains stuff that lives in the editor to make slaves and dylan -;;; interact better. +;;; This file contains a minimal dylan mode. ;;; (in-package "HEMLOCK") -(defmode "Dylan" :major-p nil) +;;; hack .. + +(setf (getstring "dylan" *mode-names*) nil) + + +(defmode "Dylan" :major-p t) +(defcommand "Dylan Mode" (p) + "Put the current buffer into \"Dylan\" mode." + "Put the current buffer into \"Dylan\" mode." + (declare (ignore p)) + (setf (buffer-major-mode (current-buffer)) "Dylan")) (define-file-type-hook ("dylan") (buffer type) (declare (ignore type)) - (setf (buffer-major-mode buffer) "Lisp") - (setf (buffer-minor-mode buffer "Dylan") t)) + (setf (buffer-major-mode buffer) "Dylan")) -(define-file-option "Module" (buffer value) - (defhvar "Current Package" - "The package used for evaluation of Lisp in this buffer." - :buffer buffer - :value - (let* ((eof (list nil)) - (thing (read-from-string value nil eof))) - (when (eq thing eof) (error "Bad module file option value.")) - (cond - ((stringp thing) - thing) - ((symbolp thing) - (symbol-name thing)) - ((characterp thing) - (string thing)) - (t - (message - "Ignoring \"module\" file option -- cannot convert to a string.")))))) +(defhvar "Indent Function" + "Indentation function which is invoked by \"Indent\" command. + It must take one argument that is the prefix argument." + :value #'generic-indent + :mode "Dylan") -(defcommand "Set Buffer Module" (p) - "Set the module to be used by Dylan evaluation and compilation commands - while in this buffer. When in a slave's interactive buffers, do NOT - set the editor's module variable, but changed the slave's *current-module*." - "Prompt for a module to make into a buffer-local variable current-package." - (declare (ignore p)) - (let* ((name (string (prompt-for-expression - :prompt "Module name: " - :help "Name of module to associate with this buffer."))) - (buffer (current-buffer)) - (info (value current-eval-server))) - (cond ((and info - (or (eq (server-info-slave-buffer info) buffer) - (eq (server-info-background-buffer info) buffer))) - (wire:remote (server-info-wire info) - (server-set-module name)) - (wire:wire-force-output (server-info-wire info))) - (t - (defhvar "Current Package" - "The package used for evaluation of Lisp in this buffer." - :buffer buffer :value name))) - (when (buffer-modeline-field-p buffer :package) - (dolist (w (buffer-windows buffer)) - (update-modeline-field buffer w :package))))) +(defhvar "Auto Fill Space Indent" + "When non-nil, uses \"Indent New Comment Line\" to break lines instead of + \"New Line\"." + :mode "Dylan" :value t) +(defhvar "Comment Start" + "String that indicates the start of a comment." + :mode "Dylan" :value "//") -;;; DYLAN-MODE-P -- interface. -;;; -;;; Called by various functions if they want their behavior to be different -;;; under dylan. -;;; -(defun dylan-mode-p (&optional (buffer (current-buffer))) - (buffer-minor-mode buffer "Dylan")) +(defhvar "Comment End" + "String that ends comments. Nil indicates #\newline termination." + :mode "Dylan" :value nil) -(defcommand "Dylan Mode" (p) - "Toggles the Dylan minor mode in the current buffer." - "Toggles the Dylan minor mode in the current buffer." - (declare (ignore p)) - (setf (buffer-minor-mode (current-buffer) "Dylan") - (not (dylan-mode-p (current-buffer))))) +(defhvar "Comment Begin" + "String that is inserted to begin a comment." + :mode "Dylan" :value "// ") + +(bind-key "Delete Previous Character Expanding Tabs" #k"backspace" + :mode "Dylan") +(bind-key "Delete Previous Character Expanding Tabs" #k"delete" :mode "Dylan") + +;;; hacks... +(shadow-attribute :scribe-syntax #\< nil "Dylan") +(shadow-attribute :scribe-syntax #\> nil "Dylan") +(bind-key "Self Insert" #k"\>" :mode "Dylan") +(bind-key "Scribe Insert Bracket" #k")" :mode "Dylan") +(bind-key "Scribe Insert Bracket" #k"]" :mode "Dylan") +(bind-key "Scribe Insert Bracket" #k"}" :mode "Dylan")