/[emacs]/emacs/lisp/progmodes/scheme.el
ViewVC logotype

Diff of /emacs/lisp/progmodes/scheme.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.39 by pj, Mon Jul 16 12:22:59 2001 UTC revision 1.39.8.1 by miles, Fri Apr 4 06:20:36 2003 UTC
# Line 53  Line 53 
53    
54  (require 'lisp-mode)  (require 'lisp-mode)
55    
56  (defvar scheme-mode-syntax-table nil)  (defvar scheme-mode-syntax-table
57  (if (not scheme-mode-syntax-table)    (let ((st (make-syntax-table))
58      (let ((i 0))          (i 0))
59        (setq scheme-mode-syntax-table (make-syntax-table))  
60        (set-syntax-table scheme-mode-syntax-table)      ;; Default is atom-constituent.
61        (while (< i 256)
62        ;; Default is atom-constituent.        (modify-syntax-entry i "_   " st)
63        (while (< i 256)        (setq i (1+ i)))
64          (modify-syntax-entry i "_   ")  
65          (setq i (1+ i)))      ;; Word components.
66        (setq i ?0)
67        ;; Word components.      (while (<= i ?9)
68        (setq i ?0)        (modify-syntax-entry i "w   " st)
69        (while (<= i ?9)        (setq i (1+ i)))
70          (modify-syntax-entry i "w   ")      (setq i ?A)
71          (setq i (1+ i)))      (while (<= i ?Z)
72        (setq i ?A)        (modify-syntax-entry i "w   " st)
73        (while (<= i ?Z)        (setq i (1+ i)))
74          (modify-syntax-entry i "w   ")      (setq i ?a)
75          (setq i (1+ i)))      (while (<= i ?z)
76        (setq i ?a)        (modify-syntax-entry i "w   " st)
77        (while (<= i ?z)        (setq i (1+ i)))
78          (modify-syntax-entry i "w   ")  
79          (setq i (1+ i)))      ;; Whitespace
80        (modify-syntax-entry ?\t "    " st)
81        ;; Whitespace      (modify-syntax-entry ?\n ">   " st)
82        (modify-syntax-entry ?\t "    ")      (modify-syntax-entry ?\f "    " st)
83        (modify-syntax-entry ?\n ">   ")      (modify-syntax-entry ?\r "    " st)
84        (modify-syntax-entry ?\f "    ")      (modify-syntax-entry ?  "    " st)
85        (modify-syntax-entry ?\r "    ")  
86        (modify-syntax-entry ?  "    ")      ;; These characters are delimiters but otherwise undefined.
87        ;; Brackets and braces balance for editing convenience.
88        ;; These characters are delimiters but otherwise undefined.      (modify-syntax-entry ?\[ "(]  " st)
89        ;; Brackets and braces balance for editing convenience.      (modify-syntax-entry ?\] ")[  " st)
90        (modify-syntax-entry ?\[ "(]  ")      (modify-syntax-entry ?{ "(}  " st)
91        (modify-syntax-entry ?\] ")[  ")      (modify-syntax-entry ?} "){  " st)
92        (modify-syntax-entry ?{ "(}  ")      (modify-syntax-entry ?\| "  23" st)
93        (modify-syntax-entry ?} "){  ")  
94        (modify-syntax-entry ?\| "  23")      ;; Other atom delimiters
95        (modify-syntax-entry ?\( "()  " st)
96        ;; Other atom delimiters      (modify-syntax-entry ?\) ")(  " st)
97        (modify-syntax-entry ?\( "()  ")      (modify-syntax-entry ?\; "<   " st)
98        (modify-syntax-entry ?\) ")(  ")      (modify-syntax-entry ?\" "\"    " st)
99        (modify-syntax-entry ?\; "<   ")      (modify-syntax-entry ?' "  p" st)
100        (modify-syntax-entry ?\" "\"    ")      (modify-syntax-entry ?` "  p" st)
101        (modify-syntax-entry ?' "  p")  
102        (modify-syntax-entry ?` "  p")      ;; Special characters
103        (modify-syntax-entry ?, "_ p" st)
104        ;; Special characters      (modify-syntax-entry ?@ "_ p" st)
105        (modify-syntax-entry ?, "_ p")      (modify-syntax-entry ?# "_ p14" st)
106        (modify-syntax-entry ?@ "_ p")      (modify-syntax-entry ?\\ "\\   " st)
107        (modify-syntax-entry ?# "_ p14")      st))
       (modify-syntax-entry ?\\ "\\   ")))  
108    
109  (defvar scheme-mode-abbrev-table nil)  (defvar scheme-mode-abbrev-table nil)
110  (define-abbrev-table 'scheme-mode-abbrev-table ())  (define-abbrev-table 'scheme-mode-abbrev-table ())
# Line 167  Line 166 
166          '((scheme-font-lock-keywords          '((scheme-font-lock-keywords
167             scheme-font-lock-keywords-1 scheme-font-lock-keywords-2)             scheme-font-lock-keywords-1 scheme-font-lock-keywords-2)
168            nil t (("+-*/.<>=!?$%_&~^:" . "w")) beginning-of-defun            nil t (("+-*/.<>=!?$%_&~^:" . "w")) beginning-of-defun
169            (font-lock-mark-block-function . mark-defun))))            (font-lock-mark-block-function . mark-defun)
170              (font-lock-syntactic-face-function . lisp-font-lock-syntactic-face-function))))
171    
172  (defvar scheme-mode-line-process "")  (defvar scheme-mode-line-process "")
173    
# Line 430  that variable's value is a string." Line 430  that variable's value is a string."
430      (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)      (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)
431      (if (and (elt state 2)      (if (and (elt state 2)
432               (not (looking-at "\\sw\\|\\s_")))               (not (looking-at "\\sw\\|\\s_")))
433          ;; car of form doesn't seem to be a a symbol          ;; car of form doesn't seem to be a symbol
434          (progn          (progn
435            (if (not (> (save-excursion (forward-line 1) (point))            (if (not (> (save-excursion (forward-line 1) (point))
436                        calculate-lisp-indent-last-sexp))                        calculate-lisp-indent-last-sexp))
# Line 502  that variable's value is a string." Line 502  that variable's value is a string."
502  (put 'let-syntax 'scheme-indent-function 1)  (put 'let-syntax 'scheme-indent-function 1)
503  (put 'letrec-syntax 'scheme-indent-function 1)  (put 'letrec-syntax 'scheme-indent-function 1)
504  (put 'syntax-rules 'scheme-indent-function 1)  (put 'syntax-rules 'scheme-indent-function 1)
505    (put 'syntax-case 'scheme-indent-function 2) ; not r5rs
506    
507  (put 'call-with-input-file 'scheme-indent-function 1)  (put 'call-with-input-file 'scheme-indent-function 1)
508  (put 'with-input-from-file 'scheme-indent-function 1)  (put 'with-input-from-file 'scheme-indent-function 1)

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.39.8.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26