Как заставить ensime работать в windows? - PullRequest
3 голосов
/ 21 апреля 2010

Я новичок в emacs и хочу использовать ensime в Windows. У меня была попытка, но она не работает. Кажется, что это не работает, потому что есть файл формата * nix с именем "\ ensime \ bin \ server.sh". Очень признателен, если кто-нибудь даст мне несколько советов.

EDIT: Я следую совету VonC, но он не работает идеально. Я уверен, что что-то пропустил. alt text Я установил emacs23.1 в dir D: \ Dev \ emacs-23.1, scala-mode в D: \ Dev \ emacs-23.1 \ scala-mode и ensime в D: \ Dev \ emacs-23.1 \ 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%

альтернативный текст http://www.turboimagehost.com/p/3350328/3769883.PNG.html

Ответы [ 3 ]

5 голосов
/ 01 мая 2010

Недавно мы объединили несколько изменений, которые помогают поддерживать окна. ENSIME теперь включает в себя файл bin / server.bat. Кроме того, конструкция classpath теперь использует подходящий для платформы разделитель пути.

2 голосов
/ 21 апреля 2010

Это должен быть простой вопрос переноса сценария оболочки в DOS в server.bat:

@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
0 голосов
/ 11 сентября 2010

Обратите внимание, что если вы собираете из git clone на windows, вам нужно изменить server.bat и удалить. \ Dist \ перед каждым файлом jar. Кроме того, вы получите сообщение об ошибке при удалении каталога dist. Это можно игнорировать. ensime - активный проект, и Aemon Cannon выпускает обновления почти ежедневно. Последняя версия значительно улучшилась по сравнению с месяцем назад. Так что это хорошая идея для установки из git clone. Смотрите инструкции в http://aemon.com/file_dump/ensime_manual.html Чтобы построить вызов

обновление sbt

Sbt Dist

Игнорировать ошибки tar. Исправьте server.bat как указано выше Хотя есть некоторые серьезные ошибки, это находка для людей, которые любят emacs и scala. Вам не нужно затмение. А Aemon быстро исправляет ошибки. Он отлично работает для проектов Android. Все, что мне нужно было сделать, это добавить: compile-jars ("d: /software/android-sdk-windows/platforms/android-4/android.jar") в .ensime.

...