Tag Archives: cider

clj-refactor 설치시 주의사항

Emacs의 cljr-add-missing-libspec 패키지는 Clojure 코드 작성시 필요한 라이브러리를 자동으로 포함시켜주는 역할을 한다.

다음 그림은 이 패키지의 GitHub 페이지의 소개. (https://github.com/clojure-emacs/clj-refactor.el)

 

 

그러나 이 그림처럼 명령을 실행해야만 하는 것이 아니라, (str/) 까지만 작성해도 :require 부분을 자동으로 추가해준다.

 

이 패키지는

M-x package-install clj-refactor

명령으로 설치를 하는데, package-list-packages 로 다른 버전을 선택하지 않는 한, 자동으로 최신버전 (현재기준 clj-refactor-20150924.256)을 설치한다. 

 

이 때 설치 과정에서 아래와 같은 warning이 발생할 수 있다.

In end of data: clj-refactor.el:4287:1:Warning: the following functions are not known to be defined: cider-nrepl-op-supported-p, cider-nrepl-send-sync-request, cider-nrepl-send-request, cider-repl-emit-interactive-stderr

 

warning 이려니 하고 그냥 사용하면, 소스코드 작성시 라이브러리는 잘 포함되지만, 정작 cljr-add-missing-libspec 을 실행시키면 아래와 같은 오류 메시지를 뱉으면서 정상동작하지 않는다.

symbol's function definition is void: cider-nrepl-op-supported-p

 

이것은 설치시 warning이 발생하면서 나열된 함수들이 설치되지 않았기 때문인데, CIDER의 버전과 cljr-add-missing-libspec 의 버전이 맞지 않기 때문에 발생하는 문제이다. 따라서 이를 해결하려면 CIDER의 버전도 최신버전으로 업데이트 해주어야 한다. 현재 기준으로는 0.10.0 버전이며, 기존에 설치된 CIDER를 삭제하고

M-x package-install cider

명령으로 최신버전을 설치하면 해결된다.

 

출처: https://github.com/clojure-emacs/clj-refactor.el/issues/236

cljr-add-missing-libspec