LINUX.ORG.RU

elisp: множество опций


0

1

Всем привет.

В конфиге имакса держу несколько вариаций какого-нибудь режима, вот пример двух вариантов для Flymake для JavaScript:

(defconst use-closure-compiler-for-js-flymake t)
(defconst use-jslint-wsh-for-js-flymake nil)


;; --------------------------------------------------
;; flymake for js-mode
;; --------------------------------------------------

(defvar flymake-loaded nil)

;; jslint for wsh
(when (and use-jslint-wsh-for-js-flymake
	   (try-require 'flymake)
	   (try-require 'flymake-for-jslint-for-wsh))
  (setq flyjs-jslintwsh-location "~/.emacs.d/site-lisp/jslint/jslint.js")
  (setq flymake-loaded t))

;; google closure compiler
(when (and use-closure-compiler-for-js-flymake 
	   (try-require 'flymake))
  (defun flymake-closure-init ()
    (let* ((temp-file (flymake-init-create-temp-buffer-copy
		       'flymake-create-temp-inplace))
           (local-file (file-relative-name
                        temp-file
                        (file-name-directory buffer-file-name))))
      (list "closure.cmd" 
	    (list local-file))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.js\\'" flymake-closure-init))
  (setq flymake-loaded t))

;; toggle flymake
(defvar flymake-state t)
(defun js-mode-flymake-toggle ()
  "Toggles flymake mode for js-mode."
  (interactive)
  (if flymake-state
      (flymake-mode 1)
    (flymake-mode 0))
  (setq flymake-state (not flymake-state)))

(add-hook
 'js-mode-hook
 (lambda () 
   (define-key js-mode-map (kbd "C-c f") 'js-mode-flymake-toggle)))

Сам код ниже первого комментария устраивает, но этот выбор одного варианта из множества значений defconst -ами - это безобразно. Подскажите красивое решение.

Наверно, на лету выгружать то, что загрузилось произвольным requirе -ом никак нельзя? Тогда если не полную загрузку / выгрузку в рантайме, то хотя бы что-то на замену ручной установке единственного t в группе defconst -ов.

★★

>Наверно, на лету выгружать то, что загрузилось произвольным requirе -ом никак нельзя?

Код не смотрел еще, но вопрос увидел.

unload-feature выгружает.

Zubok ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.