Есть ли оптимальная практика в отношении ленивых режимов загрузки при обнаружении соответствующего расширения файла?
На данный момент у меня установлено примерно 25 различных режимов Emacs, и запуск стал медленным. Например, хотя хорошо иметь наготове clojure-mode, я редко использую его и хочу вообще избежать его загрузки, если я не открою файл с расширением .clj. Такая функция "ленивого запроса" кажется правильным способом настройки режима в целом.
Я ничего не нашел в Интернете, поэтому сам попробовал.
Вместо:
(require 'clojure-mode)
(require 'tpl-mode)
У меня есть это:
(defun lazy-require (ext mode)
(add-hook
'find-file-hook
`(lambda ()
(when (and (stringp buffer-file-name)
(string-match (concat "\\." ,ext "\\'") buffer-file-name))
(require (quote ,mode))
(,mode)))))
(lazy-require "soy" 'soy-mode)
(lazy-require "tpl" 'tpl-mode)
Кажется, это работает (я новичок в elisp, поэтому комментарии приветствуются!), Но меня нервирует то, что я не нашел ничего написанного на эту тему в Интернете. Это разумный подход?