【问题标题】:License banners for Scala when using ENSIME使用 ENSIME 时 Scala 的许可横幅
【发布时间】:2011-04-28 05:58:02
【问题描述】:

我正在尝试开始使用 ENSIME 进行 SBT 的 Scala 开发。我应该如何管理许可证标头?我曾经在 Eclipse 中使用Copyright Wizard,这似乎很好。

【问题讨论】:

    标签: scala emacs sbt ensime


    【解决方案1】:

    Emacs 有很多模板化方法,这实际上取决于您的工作流程。对于版权,您可能只想为每个打开的新文件添加版权信息。上次我这样做是使用骨架包 --- 现在有更新的包。

    也许是最容易设置的,但不是最灵活的。是放置您的版权信息 进入文件 scala.template 并将该文件名添加到自动插入列表中。

    (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。 还可以尝试使用谷歌搜索 auto-header.el,这也可能有所帮助。

    【讨论】:

      【解决方案2】:

      我不认为 Emacs 有这样的东西,更不用说 ENSIME,但是您可以轻松地为许可证头定义一个 abbrev 并在需要时扩展它。

      这就是 Emacs 的伟大之处——它可能不完全符合您的要求,但它肯定有您需要的一切。

      【讨论】:

      • 是的,我可能不得不求助于这个。只是希望可能有一些更自动的路线。也许蚂蚁可以做一些事情......
      猜你喜欢
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多