使用ENSIME时Scala的许可证横幅

时间:2010-10-20 19:26:33

标签: scala emacs sbt ensime

我正在尝试使用ENSIME开发使用SBT进行Scala开发。我该如何管理许可证标题?我以前在Eclipse中使用Copyright Wizard,这看起来很好。

2 个答案:

答案 0 :(得分: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

可以删除版权并手动调用自动插入。这可以通过宏来完成,也可以在保存文件时调用。

对于版权信息的更多功能自动更新,您可能需要查看版权包采用的方法。使用此软件包检查版权可以使用before-save-hook进行保存。 http://www.gnu.org/software/emacs/manual/html_node/autotype/Copyrights.html

http://www.emacswiki.org/emacs/AutomaticFileHeaders。 也可以尝试使用google搜索auto-header.el,这也可能有所帮助。

答案 1 :(得分:1)

我不认为Emacs有这样的东西,更不用说ENSIME了,但你可以轻松地为许可标题定义abbrev并在需要时展开它。

这是Emacs的伟大之处 - 它可能并不完全符合您的要求,但它确实拥有您需要的一切。