Лицензионные баннеры для 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 - в нем может быть не совсем то, что вы ищете, но, безусловно, есть все, что вам нужно.