【问题标题】:Working with Java from Emacs within Leiningen project在 Leiningen 项目中使用 Emacs 中的 Java
【发布时间】:2012-03-10 03:26:55
【问题描述】:

关于 SO 有很多密切相关的问题,仅举几例:

我的问题的不同之处在于,我想知道如何在混合 Clojure/Java Leiningen 项目中直接从 Emacs 使 使用 Java 像使用 Clojure 一样简单

我的意思是可能性(按优先顺序):

  • 编译 直接从 Emacs 编译 Java 代码(注意:可以使用 lein javac 从 shell 编译它)
  • 对 Java 使用 代码完成JDEE 等工具提供此功能,但它是独立工具,与 Leiningen 项目设置无关)
  • 调试 Java 代码

【问题讨论】:

  • 如果您真的想在 Emacs 中完成 Java 工作,JDEE 是您的最佳选择。 IMO 不值得,但已经足够了。
  • 智能补全可以试试eclim,它也有emacs接口。

标签: java emacs clojure leiningen


【解决方案1】:

查看Emacs LSP project。它提供对 Java 的支持。

【讨论】:

    【解决方案2】:

    我想试试auto complete,但我还没开始。

    考虑到 leiningen/Clojure 的工作方式,我不确定你可以让编译变得多么容易。当你编译 Java 代码时,你是否必须重新启动 repl/application 以便 JVM 重新加载它?

    【讨论】:

    • 实际上,可以使用自定义 ClassLoader 从正在运行的 Java 进程重新加载类(请参阅example)。不过,我在 Java 和 Clojure 之间切换的频率不是很高,所以我可以不时重启 slime-clojure。
    【解决方案3】:

    Malabar-mode 是废弃软件,但我认为它是针对您想要的功能级别的。在我看来,基于协进程的自动完成引擎应该可以与 CEDET、leiningen 和 swank-clojure 一起使用,但我有一份日常工作和副业......

    【讨论】:

      【解决方案4】:

      可能不是您想要的,但这应该为您处理项目符号 1:

      (defun lein-javac (&optional PROJECT-DIR)
        (interactive)
        (let ((output-buffer (progn
                               (with-output-to-temp-buffer "*lein-javac*" nil )
                               (select-window (get-buffer-window "*lein-javac*"))
                               (read-only-mode 'toggle)
                               (window-buffer)) ))
         (shell-command (concat "cd " (or PROJECT-DIR default-directory) 
                               " && lein javac &") "*lein-javac*")))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-15
        • 2013-03-31
        • 2015-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多