如何在windows中制作ensime?

时间:2010-04-21 10:30:26

标签: scala ensime

我是emacs的新手,我想在Windows中使用ensime。 我试过但它不起作用。它似乎不起作用,因为有一个名为“\ ensime \ bin \ server.sh”的* nix格式文件。 非常感谢有人给我一些提示。

编辑: 我遵循VonC的建议,但它并不完美。我确定我错过了什么。 alt text 我在D:D:\ Dev \ emacs-23.1中安装了emacs23.1,在D:\ Dev \ emacs-23.1 \ scala-mode中安装了scala-mode,在D:\ Dev \ emacs-23.1 \ ensime中安装了ensime。

这是我的.emacs文件内容:

;;禁用工具栏
(tool-bar-mode nil)

;;显示行号
(global-linum-mode t)

;;使用scala mode
(add-to-list 'load-path "D:/Dev/emacs-23.1/scala-mode/")
(require 'scala-mode)

(add-to-list 'auto-mode-alist '("\\.scala$" . scala-mode))
(add-to-list 'load-path "D:/Dev/emacs-23.1/ensime/src/elisp/")
(require 'ensime)
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)

,这是我的D:\ Dev \ emacs-23.1 \ ensime.ensime文件内容:

(
:server-root "D:/Dev/emacs-23.1/ensime/"
:server-cmd  "D:/Dev/emacs-23.1/ensime/bin/server.bat"
:server-host "localhost"
:server-env ()

:project-package "com.ensime"
:source ("src")
:exclude-source ()
:classpath ("lib/jnotify/jnotify-0.93.jar"
        "lib/scala/scala-library.jar"
        "lib/scala/scala-compiler.jar")
)

这是我的D:\ Dev \ emacs-23.1 \ ensime \ bin \ server.bat文件内容:

@echo off
set PORT_FILE=%1
set CLASSPATH=D:\Dev\emacs-23.1\ensime\lib\jnotify\jnotify-0.93.jar;D:\Dev\emacs-23.1\ensime\lib\scala\scala-library.jar;D:\Dev\emacs-23.1\ensime\lib\scala\scala-compiler.jar;D:\Dev\emacs-23.1\ensime\dist\ensime.jar
java -classpath %CLASSPATH% -Djava.library.path=D:\Dev\emacs-23.1\ensime\lib\jnotify com.ensime.server.Server %PORT_FILE%

alt text http://www.turboimagehost.com/p/3350328/3769883.PNG.html

3 个答案:

答案 0 :(得分:5)

我们最近合并了一些有助于支持Windows的更改。 ENSIME现在包含bin / server.bat文件。此外,类路径构造现在使用适合平台的路径分隔符。

答案 1 :(得分:2)

在DOS中以server.bat

移植shell脚本应该是一件简单的事情
@echo off
set PORT_FILE=%1
set CLASSPATH=lib\scala\scala-library.jar;lib\scala\scala-compiler.jar;dist\ensime.jar
java -classpath %CLASSPATH% -Djava.library.path=lib\jnotify com.ensime.server.Server %PORT_FILE%

从ensime目录执行。

更独立的版本(可从任何目录执行)将是:

@echo off
set t=%~dp0
set adp0=%t::\=:\"%"
cd %adp0%..
set CLASSPATH=lib\scala\scala-library.jar;lib\scala\scala-compiler.jar;dist\ensime.jar
java -classpath %CLASSPATH% -Djava.library.path=lib\jnotify com.ensime.server.Server %PORT_FILE%

即使ensime位于包含空格的路径中,也应该有效。

  • %~dp0是server.bat的完整路径(包含潜在空格的路径)
  • set adp0=%t::\=:\"%"将在该路径附近添加双引号
  • %adp0%..将引用ensime目录

答案 2 :(得分:0)

请注意,如果您在Windows上使用git clone构建,则需要修改server.bat并在每个jar文件之前删除。\ dist \。此外,当dist目录被tar时,您将收到错误。这可以忽略。 ensime是一个活跃的项目,Aemon Cannon几乎每天推动更新。与一个月前相比,最新版本有了很大改进。所以,从git clone安装是个好主意。请参阅http://aemon.com/file_dump/ensime_manual.html中的说明 建立电话

sbt update

sbt dist

忽略tar错误。 修复server.bat如上所述 虽然有一些严重的错误,但对于喜欢emacs和scala的人来说,这是一个天赐之物。你不需要eclipse。 Aemon很快就修复了bug。它适用于Android项目。我所要做的就是将:compile-jars(“d:​​/software/android-sdk-windows/platforms/android-4/android.jar”)添加到.ensime。