2014년 2월 10일 월요일

Emacs에 스칼라 개발 세팅하기

Emacs에 스칼라 세팅하기

Emacs에 스칼라 세팅 하는 법은 인터넷에 보면 많이나와있다. 저도 많은 사이트 중에 하나를 보고 세팅을 하였고, 세팅 시 발생했던 문제에 대한 해결 방안을 적어 다른사람들이 똑같은 문제에 대해서 좀 더 쉬운 해결을 하였으면 좋겠습니다.

차례 

  • 스칼라 설치하기
  • SBT 설치하기
  • 이맥스 설치
    • 이맥스에 scala-mode 패키지 설치하기
    • Ensime 설치하기
    • ensime-sbt plugin 설치하기
  • 실습

 1. 스칼라 설치하기 

스칼라를 사용할건데 스칼라는 꼭 있어야 하겠죠?? 스칼라는 Download Scala 이동하시면 설치하실수 있고, Scala 설치를 위해서 Java가 필요합니다.

 2. SBT 설치하기

SBT(Scala build tool) 는 스칼라를 이용할떄 사용하는 툴로써 빠른 실행 속도를 보여줍니다. SBT는 SBT Download 이동하시면 설치 하실수 있고, Getting Started를 통해 샘플 프로젝트를 생성하실수 있습니다.

  3. Emacs 설치하기

Emacs 는 vi와 비교되는 에디터?로써 Emacs를 통해 많은 작업을 할수 있습니다. 또 외워야 하는 키가 많아서 vi와 비교도 되는데, IDE 로써 봤을떄는 vi 보단 Emacs 가 더 괜찮을 거 같습니다.제가 Emacs를 사용하는 이유는? 그냥?? 별 다른 이유가 없습니다.

  3-1.Emacs에 scala-mode 패키지 설치하기

Emacs에서 Scala를 사용하기 위해 제공하는 패키지 입니다. 사용법은 %EMACSHOME%/.emacs.d/init.el 파일을 열어서 아래 소스코드를 넣으시고, Emacs를 껐다 키시거나 M-x eval-buffer 를 하면 적용 완료!!
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(unless (package-installed-p 'scala-mode2)
(package-refresh-contents) (package-install 'scala-mode2))

  3-2. Emacs에 Ensime 적용하기

Ensime은 the ENhanced Scala Interaction Mode for Emacs . 많은 IDE의 기본 기능(오류 검사 , 심볼 입력, 패키지/타입 , 리팩토링)이 포함되어있습니다.  더 자세한 내용은 Ensime 으로 이동하시면 보실수 있습니다.
적용하는 방법은 일단 Ensime 다운로드 에서Ensime을 다운로드 한 다음 %EMACSHOME%/.emacs.d/init.el 을 열어서 아래 소스코드를 추가하고, Emacs를 껐다 키거나 M-x eval-buffer를 하면 적용 완료

;; Load the ensime lisp code...
(add-to-list 'load-path "ENSIME_ROOT/elisp/")
(require 'ensime)

;; This step causes the ensime-mode to be started whenever
;; scala-mode is started for a buffer. You may have to customize this step
;; if you're not using the standard scala mode.
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook) 

*ENSIME_ROOT : 다운로드 받은 파일 위치

 3-3. Emacs ensime-sbt plugin 설치

Emacs에서 ensime-sbt를 통해 sbt console을 이용할수 있다.사용 방법은 
  • 다운로드 한 후 global plugin(/Users//.sbt/plugins/) 폴더안으로 이동
  • global plugin / plugin.sbt 를 통해 받아오는 방식이 있다.(추천)

    • addSbtPlugin("org.ensime" % "ensime-sbt-cmd" % "VERSION")

      • VERSION은 다운로드 페이지에서 확인하여 교체
 4. 실습
  • SBT 폴더 구조에 맞는 프로젝트 구성
  • sbt 실행 후 ensime generate 실행 
  • Emacs 실행하여 해당 프로젝트의 소스코드로 이동
  • M-x ensime 실행
5. 이슈
  • M-x ensime 실행 시 Failed to connect~~~ 에러. 
    • Ensime폴더 / bin/server , /bin/server.bat 파일의 ENSIME_JVM_ARGS 인자 값의 Xmx1512M -> Xmx512M 또는 Xmx1024M 으로 변경
  • 다른 에러 발생 시 C-x C-b 를 통해 버퍼로 들어간 후 interior-ensime 버퍼를 열어서 오류 확인 
  • Emacs에서 ensime-sbt 실행해서 sbt console 사용시 동작 안하는 문제(Window에서 발생)
    • server.bat에 들어가서 ENSIME_JVM_OPTS 에-Djline.WindowsTerminal.directConsole=false 값 추가
    • 로딩 중에 OutofIndex 에러 발생시 프로젝트 파일에 build.sbt 파일 생성해서 ensime-sbt 다시 실행 하면 됨

댓글 없음:

댓글 쓰기