home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / may94 / util / edit / jade.lha / Jade / lisp / lisp-mode.jlc < prev    next >
Text File  |  1994-04-20  |  2KB  |  33 lines

  1.  
  2. (provide (quote lisp-mode))
  3.  
  4. (defvar lisp-mode-tab 3)
  5.  
  6. (defvar lisp-mode-auto-indent nil)
  7.  
  8. (setq symbol-word-regexps ["[^][()?'\"#; ]" "[][()?'\"#; ]|$"])
  9.  
  10. (setq lisp-mode-keymap (make-keylist) lisp-mode-esc-keymap (make-keylist))
  11.  
  12. (bind-keys lisp-mode-keymap "return" (quote lisp-return) "shift-return" (quote split-line) "ctrl-return" (quote eval-insert-paragraph) "tab" (quote lisp-tab) "meta-tab" (quote goto-next-tab) "esc" (quote (setq next-keymap-path (quote (lisp-mode-esc-keymap esc-keymap)))))
  13.  
  14. (bind-keys lisp-mode-esc-keymap "ctrl-x" (quote eval-print-paragraph))
  15.  
  16. (defun lisp-mode nil (lisp-code "\tH#K%†&‡ˆF&‰" [eval-hook lisp-mode-hook "lisp-mode" mode-name lisp-mode-keymap keymap-path lisp-mode-kill major-mode-kill lisp-mode-tab screen-tab] 2))
  17.  
  18. (defun lisp-mode-kill nil (lisp-code "\n\"IF#" [delq lisp-mode-keymap keymap-path mode-name] 3))
  19.  
  20. (defun eval-paragraph nil (lisp-code "\tHI²\tU" [goto prev-paragraph read] 2))
  21.  
  22. (defun eval-insert-paragraph nil (lisp-code "I² " [format "\n%S\n\n" eval-paragraph] 4))
  23.  
  24. (defun eval-print-paragraph nil (lisp-code "J\n" [prin1 eval-paragraph] 3))
  25.  
  26. (defun lisp-return nil (lisp-code "Hþ€˜ü€“\tû€˜†\t" [split-line lisp-mode-auto-indent empty-line-p goto lisp-indent-pos-empty set-indent-pos lisp-indent-pos] 2))
  27.  
  28. (defun lisp-tab nil (lisp-code "ü€Ž\t\tû€¹\t\tF&†H†dü€§†\tû€¹‡dü€¸‡\tû€¹I" [empty-line-p goto lisp-indent-pos-empty cursor-pos set-indent-pos lisp-indent-pos tmp line-end] 3))
  29.  
  30. (defun lisp-indent-pos (&optional line-pos) (lisp-code "\tF!HD\t3\tÿ€Ÿ†\nþ€Ÿ‡ˆ\nHE" [line-start line-pos lisp-indent-pos-empty ind-pos empty-line-p regexp-match-line "^ *;;;" set-pos-col 1] 3))
  31.  
  32. (defun lisp-indent-pos-empty (&optional line-pos) (lisp-code "\tF!HD\t\n5†‡\nþ€¥\nÿ€¡ˆHû€ŽHD‰\t6Š‹ŠŒ\t\nHŽ‘’\t\n Š\nEE" [line-start line-pos prev-line 1 dup-pos anchor-pos regexp-match-line "^ *($|;)" return indent-pos ind-pos set-pos-line pos-line next-tab balance-brackets "(" ")" copy-area line-end] 8))
  33.