Im faire un DSL en Lisp (essentiellement ce que je pense est une syntaxe plus belle), c'est la même chose que Lisp sauf avec différents « primitifs », pas au lieu de ne pas, 'as' au lieu de let.Ainsi je dois changer l'indentation et la couleur seulement dans les fichiers qui se terminent par .goby (cela ne devrait pas affecter ceux qui se terminent par .lisp) Donc je voudrais créer des fichiers avec l'extension .goby, et avoir mon nouveau mode mineur/majeur activé (mais avec tout le reste hormis la syntaxe héritée de lisp).Comment étendre emacs mode Lisp avec des changements d'indentation et change de couleur
Cependant, tout ce que je fais aussi les fichiers d'effets! N'importe qui? Par exemple, j'ai essayé de faire une variable locale pour une indentation Lisp unique qui indenterait 'hi' de 10 espaces. mais il effectue tous les fichiers .lisp également
;;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))))
parfait ! Je suppose que je fais quelque chose de similaire pour la coloration? – josh
Pour une raison quelconque, cela ne fonctionne pas si je le fais dans emacs (require 'boue) (boue-setup' (-rempl slime-boue fantaisie)) - si la boue doit modifier certaines fonctions du mode Lisp? – josh
@josh Oui, la coloration serait similaire. Vérifiez http://www.emacswiki.org/emacs/FontLockKeywords et http://stackoverflow.com/questions/1063115/a-hello-world-example-for-a-major-mode-in-emacs –