Лицензионные баннеры для Scala при использовании ENSIME

Я пытаюсь начать использовать ENSIME для разработки Scala с SBT. Как мне управлять лицензионными заголовками? Я использовал Wizard Copyright Wizard в Eclipse, и это выглядело нормально.

2 ответа

Решение

В Emacs есть много способов создания шаблонов, это действительно зависит от вашего рабочего процесса. Для защиты авторских прав вы можете просто захотеть добавить сообщение об авторских правах в каждый новый открытый файл. В прошлый раз, когда я делал это, был с пакетом скелета - теперь есть более новые пакеты.

Возможно, самый простой в настройке, но не самый гибкий. Помещает ваше сообщение об авторских правах в файл scala.template и добавляет это имя файла в auto-insert-alist.

(setq auto-insert-directory "~/emacs.d/templates")    
(add-to-list 'auto-insert-alist '(( "\\.scala\\'" . "Scala source" ) . "scala.template"))

scala.template - это файл, который вы хотите вставить в каждый новый файл scala. Чтобы сделать это автоматически для новых файлов, необходимо добавить функцию автоматической вставки в ловушку find-file-hook.

(add-hook 'find-file-hook 'auto-insert)

Этот механизм очень мощный, можно использовать функции или шаблоны, которые требуют пользовательского ввода вместо простого файла. Например, для заголовочных файлов C++:

(("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header")
  (upcase
   (concat
    (file-name-nondirectory
     (file-name-sans-extension buffer-file-name))
    "_"
    (file-name-extension buffer-file-name)))
  "#ifndef " str n "#define " str "\n\n" _ "\n\n#endif")

См. http://www.emacswiki.org/emacs/AutoInsertMode

Можно удалить авторские права и вызвать авто-вставку вручную. Это может быть сделано с помощью макроса, возможно, вызывается при сохранении файла.

Для более универсального автоматического обновления сообщений об авторских правах вы, возможно, захотите взглянуть на подход, применяемый пакетом авторских прав. Проверка авторских прав с помощью этого пакета может быть выполнена при сохранении с использованием крюка before-save. http://www.gnu.org/software/emacs/manual/html_node/autotype/Copyrights.html

См. http://www.emacswiki.org/emacs/AutomaticFileHeaders. Также попробуйте поискать в Google для auto-header.el, который также может помочь.

Я не думаю, что в Emacs есть что-то подобное, не говоря уже о ENSIME, но вы можете легко определить аббревиатуру для заголовка лицензии и расширить ее, когда вам это нужно.

В этом и заключается величие Emacs - в нем может быть не совсем то, что вы ищете, но, безусловно, есть все, что вам нужно.

Другие вопросы по тегам