Не удается запустить удаленный ClojureScript bREPL (он говорит, что невозможно разрешить символ)

Нуб ClojureScript здесь.

Я следую следующему руководству по ClojureScript, используя Boot: https://github.com/magomimmo/modern-cljs/blob/master/doc/second-edition/tutorial-02.md#browser-repl-brepl

Я могу следовать ему и подключить командную строку/загрузочную реплику к моему сайту, запустив boot repl -c, а затем (start-repl), но я хотел бы подключиться к сайту, используя REPL на основе более богатого текстового редактора.

Я скачал ProtoRepl для текстового редактора Atom. Я могу просто подключиться к repl, предоставив ему хост + порт repl, но когда я пытаюсь запустить (start-repl), он выдает ошибку:

(start-repl)
=> CompilerException java.lang.RuntimeException: Unable to resolve symbol: start-repl in this context, compiling:(C:\Users\Zain\AppData\Local\Temp\boot.user4327288409706217009.clj:1:1)

Кажется, мне не хватает некоторых импортов, специфичных для ClojureScript/boot, но я не уверен, что добавить или как это добавить.

Вот дополнительная информация об отладке:

Запуск (def start-repl) на работающем загрузочном repl-соединении по сравнению с неудачным соединением proto-repl:

Загрузочный ответ:

cljs.user=> (def start-repl)
#'cljs.user/start-repl

Прото-репл:

(def start-repl)
=>
#'user/start-repl

person Zain Rizvi    schedule 07.02.2016    source источник
comment
если вы уже в cljs repl, зачем вам что-то еще?   -  person nha    schedule 07.02.2016
comment
@nha, потому что Boot repl основан на консоли и упускает такие приятные функции, как цветовое кодирование на основе синтаксиса.   -  person Zain Rizvi    schedule 07.02.2016


Ответы (2)


Команда start-repl предоставляется библиотекой adzerk boot-cljs-repl. Если вы находитесь в пространстве имен cljs.user, команда будет выглядеть так:

(adzerk.boot-cljs-repl/start-repl)

Если вы впервые входите в bREPL, Proto-REPL будет выдавать ошибку при каждом нажатии клавиши. Это Proto-REPL пытается и не может проверить/автозаполнить ваши выражения clojure. Самый быстрый способ избавиться от этих ошибок — просто отключить автозаполнение:

  1. Перейти к настройкам Atom
  2. нажмите «Пакеты»
  3. найдите «proto-repl» в разделе «Установленные пакеты»
  4. нажмите «Настройки» в поле «proto-repl».
  5. прокрутите вниз до параметра «Включить автозаполнение» и снимите флажок
  6. перезапустить атом

Выполните шаги, чтобы снова запустить Brepl, и у вас должна быть прилично работающая версия браузера.

person gtoast    schedule 16.03.2017
comment
Добро пожаловать и спасибо за ответ :) Я знаю, что это всего лишь одна строка, но добавление этой команды в отформатированный блок кода, вероятно, стоит того. Это улучшает... ну, не столько читабельность, сколько "сканируемость", но это тоже хорошо. - person elc; 16.03.2017

Судя по учебнику, функция start-repl находится в пространстве имен boot.user. Proto REPL по умолчанию использует пространство имен пользователя. Попробуйте (boot.user/start-repl)

person Jason Gilman    schedule 07.02.2016