Лицензионные баннеры для Scala при использовании ENSIME - PullRequest
1 голос
/ 20 октября 2010

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

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

В 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#toc1

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

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

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

1 голос
/ 21 октября 2010

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

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

...