2
在lisp中製作DSL(基本上我認爲是一種更好的語法),它與lisp相同,除了使用不同的「基元」,不是不是, 'as'而不是let。因此,我只需要在以.goby結尾的文件中更改縮進和顏色(它不應該影響以.lisp結尾的文件)因此,我想創建擴展名爲.goby的文件,並且啓用了我的新的,次要/主要模式(但除了從lisp繼承的語法之外,還有其他所有內容)。如何擴展縮進更改和顏色變化的emacs lisp模式
但是,無論我做什麼,它也影響.LISP文件!任何人?
例如,我試圖爲獨特的lisp縮進製作局部變量,該縮進會將 'hi'縮進10個空格。但它發生的所有.lisp文件也
;;in goby.el
(define-derived-mode
goby-mode lisp-mode "Goby"
"Major mode"
(let ((funC#'lisp-indent-function))
(set (make-local-variable 'lisp-indent-function) func)
(put 'hi 'lisp-indent-function 10)))
(provide 'goby)
;;in .emacs
(setq auto-mode-alist
(append auto-mode-alist
'(("\\.gy\\'" . goby-mode))))
完美!我假設我做了類似的着色? – josh 2010-09-03 01:51:56
由於某種原因,如果我在.emacs (需要'slime) (slime-setup'(slime-repl slime-fancy))中這樣做,這是行不通的 - 所以粘液必須改變一些lisp模式的功能? – josh 2010-09-03 16:12:01
@josh是的,着色將以相似的方式完成。檢查http://www.emacswiki.org/emacs/FontLockKeywords和http://stackoverflow.com/questions/1063115/a-hello-world-example-for-a-major-mode-in-emacs – 2010-09-03 17:10:08