I'm trying to start using ENSIME for Scala development with SBT. How should I manage license headers? I used to use Copyright Wizard in Eclipse and that seemed fine.
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#toc1を参照してください
著作権を削除して、手動で自動挿入を呼び出すことができます。これは、ファイルを保存するときに呼び出されるマクロを介して実行される場合があります。
著作権メッセージのより用途の広い自動更新については、著作権パッケージが採用しているアプローチを確認することをお勧めします。このパッケージを使用した著作権の確認は、保存前フックを使用した保存時に実行できます。http://www.gnu.org/software/emacs/manual/html_node/autotype/Copyrights.html
http://www.emacswiki.org/emacs/AutomaticFileHeadersを参照してください。また、auto-header.elをグーグルで検索してみてください。これも役立つかもしれません。
ENSIMEは言うまでもなく、Emacsにはこのようなものはないと思いますが、ライセンスヘッダーの略語を簡単に定義し、必要に応じて展開することができます。
これがEmacsの素晴らしさです-あなたが探しているものを正確に持っていないかもしれませんが、それは確かにあなたが必要とするすべてを持っています。