Cider: Lein์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€์—์„œ repl์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 08์›” 29์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: clojure-emacs/cider

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

cider-jack-in์€ leiningen์ด์—†๋Š” ๋ถ€ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

lein ์‹คํ–‰ ํŒŒ์ผ์ด 'exec-path'์— ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ ๊ฐ€์น˜๋Š”
( "/ usr / local / scripts" "/ usr / local / bin /" "/ usr / bin /"...)

boot.sh ๋ฐ boot๋ผ๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋Š” / usr / local / scripts์— ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋‹ค-๋ผ์ธ-๋ช…๋ น์€ "๋ ˆ์ธ"
cider-boot-command๋Š” "boot"์ด๊ณ  "boot.sh"๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„์น˜ ๋ฆฌ๋ˆ…์Šค์™€ ์  ํˆฌ ๋ฆฌ๋ˆ…์Šค, emacs 24์™€ 25์—์„œ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. Leiningen์€ ์„ค์น˜๋˜์—ˆ์„ ๋•Œ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ถ€ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„

Spacemacs ์„ค์น˜ (ํ•˜๋‚˜์˜ git clone ๋ช…๋ น)
https://github.com/syl20bnr/spacemacs#install

Spacemacs์—์„œ 'clojure'๋ ˆ์ด์–ด ํ™œ์„ฑํ™”

๋ถ€ํŒ… ์„ค์น˜

ํด๋กœ์ € ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ '๋ถ€ํŒ…์œผ๋กœ ๋น ๋ฅธ ์‹œ์ž‘'์ง€์นจ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
http://spacemacs.org/layers/+lang/clojure/README.html

Spacemacs์—์„œ ์‚ฌ๊ณผ์ฃผ ์žญ์ธ ๋˜๋Š” 'SPC msi'์‹œ๋„

CIDER ๋ฒ„์ „ ์ •๋ณด

emacs ๋‚ด์—์„œ REPL์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์ง€๋งŒ cider-20160825.249

์ž‘๋™ํ•˜๋Š” CLI์—์„œ ๋ถ€ํŒ… repl์„ ์‹œ์ž‘ํ•  ๋•Œ REPL-y 0.3.7, nREPL 0.2.12, Clojure 1.7.0

Lein / Boot ๋ฒ„์ „

BOOT_CLOJURE_NAME = org.clojure / clojure
BOOT_CLOJURE_VERSION = 1.7.0
BOOT_VERSION = 2.6.0

Emacs ๋ฒ„์ „

25.0.95.1

์šด์˜ ์ฒด์ œ

์  ํˆฌ GNU / ๋ฆฌ๋ˆ…์Šค

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ณ ์น˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์กฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด Elisp (executable-find "boot") ๋น„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ (์˜ˆ : ielm ๋˜๋Š” M-: )?

์˜ฌ๋ฐ”๋ฅธ "/ usr / local / scripts / boot"์ž…๋‹ˆ๋‹ค. ๋ช…๋ น ์ค„์—์„œ '/ usr / local / scripts / boot repl'์„ ์‹คํ–‰ํ•˜๋ฉด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Lein์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  Boot๋ฅผ ํ™•์ธํ•˜๋Š” ์ง€์ ์— ๋„๋‹ฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ์•Œ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ํŒŒ๊ณ  ๋“ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. Cider๊ฐ€ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋นŒ๋“œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ์‹ค์ œ๋กœ lein, boot ๋“ฑ์„ ์œ„ํ•ด _looking_ ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ Cider๋Š” ๋นŒ๋“œ ํŒŒ์ผ ๋งŒ ์ฐพ์Šต๋‹ˆ๋‹ค. lein์˜ ๊ฒฝ์šฐ project.clj, ๋ถ€ํŒ…์˜ ๊ฒฝ์šฐ build.boot, gradle์˜ ๊ฒฝ์šฐ build.gradle์ž…๋‹ˆ๋‹ค. ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด lein์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

๋น„์–ด ์žˆ๊ณ  ์“ธ๋ชจ์—†๋Š” build.boot ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๊ณ  ์ด์ œ Cider ๊ฐ€์ด 'ํ”„๋กœ์ ํŠธ'๋‚ด์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. boot๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ repl์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. cider--identify-buildtools-present _really_ ํ•จ์ˆ˜๋Š” ๋” ์ฒ ์ €ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ธฐ๋Šฅ์ด์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ lein์œผ๋กœ ์„ค์ •๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ์Šคํ…œ์— ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์„ค์ •๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

(executable-find "blah") ๋งค์šฐ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ’€ ์š”์ฒญ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ฒฝํ—˜์ด์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ๋˜‘๊ฐ™์ด ํ•ด์ฃผ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์•„,์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด cider-project-type ํ•จ์ˆ˜๋ฅผ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒํ•˜๋Š” ๊ฒƒ์ด ์ „ํ˜€ ํŽธํ•˜์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“ , ์—ฌ๊ธฐ์— ๋‚ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ํ›Œ๋ฅญํ•œ ์—˜๋ฆฌ ์Šคํ”„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

(or (executable-find cider-lein-command) (executable-find cider-boot-command) (executable-find cider-gradle-command))

์ด๋Š” ์กด์žฌํ•˜๋Š” ์„ธ ๊ฐœ ์ค‘ ์ฒซ ๋ฒˆ์งธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ project.clj, build.boot ๋˜๋Š” build.gradle์ด์—†๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ณ ์น˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์กฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•„, ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜์–ด์•ผํ•˜๋Š”์ง€ ์žŠ์–ด ๋ฒ„๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. cider-default-repl-command ๋ฅผ "boot"๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰