Подтвердить что ты не робот

Есть ли цветной REPL для Clojure?

Я хотел бы получить цветной код REPL для clojure, аналогичный тому, что вы можете сделать с IRB для Ruby.

Существуют ли какие-либо библиотеки или настройки для user.clj, которые обеспечивают автоматическую раскраску REPL?

Пример IRB:

alt text

4b9b3361

Ответ 1

Я не знаю, как получить базовый Clojure REPL, как это было начато с помощью java -cp clojure.jar clojure.main, сделать подсветку синтаксиса. Если, однако, вы используете Emacs и SLIME (среда разработки, выбирающая большую часть сообщества Clojure!), Тогда вы можете использовать синтаксис выделения SLIME REPL, например clojure-mode.

Сначала вам нужно поднять код из функции clojure-mode (заданной в верхней части clojure-mode.el):

;;; all code in this function lifted from the clojure-mode function
;;; from clojure-mode.el
(defun clojure-font-lock-setup ()
  (interactive)
  (set (make-local-variable 'lisp-indent-function)
       'clojure-indent-function)
  (set (make-local-variable 'lisp-doc-string-elt-property)
       'clojure-doc-string-elt)
  (set (make-local-variable 'font-lock-multiline) t)

  (add-to-list 'font-lock-extend-region-functions
               'clojure-font-lock-extend-region-def t)

  (when clojure-mode-font-lock-comment-sexp
    (add-to-list 'font-lock-extend-region-functions
                 'clojure-font-lock-extend-region-comment t)
    (make-local-variable 'clojure-font-lock-keywords)
    (add-to-list 'clojure-font-lock-keywords
                 'clojure-font-lock-mark-comment t)
    (set (make-local-variable 'open-paren-in-column-0-is-defun-start) nil))

  (setq font-lock-defaults
        '(clojure-font-lock-keywords    ; keywords
          nil nil
          (("+-*/.<>=!?$%_&~^:@" . "w")) ; syntax alist
          nil
          (font-lock-mark-block-function . mark-defun)
          (font-lock-syntactic-face-function
           . lisp-font-lock-syntactic-face-function))))

Затем добавьте его в slime-repl-mode-hook:

(add-hook 'slime-repl-mode-hook
          (lambda ()
            (font-lock-mode nil)
            (clojure-font-lock-setup)
            (font-lock-mode t)))

Et voilà, в следующий раз, когда вы подключитесь к SLIME REPL, у вас будет подсветка синтаксиса clojure-mode. Если вы используете SLIME для Common Lisp тоже, вы хотите настроить его, чтобы он не пытался выделять Clojure с помощью CL. Кроме того, это только первое приближение; одна вещь это разрывы - это подсвечивание (namespace> вещь больше не будет выделена). Хотя я не владею хакером font-lock каким-либо образом воображения, поэтому я оставлю это на этом.: -)

Ответ 2

Скорее поздно к вечеринке, здесь, но вы можете получить это от использования плагина Leiningen Ultra (который также поддерживает раскрашенную stacktraces и довольно напечатанный тестовый результат), или добавив Whidbey в ваш список плагинов Leiningen.

Пример Ultra REPL: enter image description here

Ответ 3

Если вы хотите просто раскрасить приглашение, и вы используете Leiningen (что вам нужно), вы можете использовать :repl-options и ANSI escape-последовательности:

:repl-options {:prompt (fn [ns]
                         (str "\033[1;32m"
                              ns "=>"
                              "\033[0m "))}

Литература:

Ответ 4

  • Установить Emacs 24
  • Установите Emacs Starter Kit v2
  • M-x package-installstarter-kit-lisp
  • Добавить в init.el: (add-hook 'slime-repl-mode-hook 'clojure-mode-font-lock-setup)
  • Установить Swank для Clojure
  • Откройте проект Clojure и M-x clojure-jack-in

Emacs REPL

Ответ 5

Некоторые цвета имеют REPL в VimClojure.

Ответ 6

Попробуйте освещенную настольную игру от Криса Грейнджера. Это первая часть более амбициозной многоязыковой среды IDE.

Он имеет цвет Clojure REPL, который выполняет вычисления в реальном времени и отображает для целых блоков кода.

http://www.chris-granger.com/lighttable/

Здесь вы можете увидеть более высокий уровень проекта:

http://www.kickstarter.com/projects/ibdknox/light-table

Ответ 7

CIDER пользователи могут получить цветное REPL, добавив в свою конфигурацию следующее:

(setq cider-repl-use-clojure-font-lock t)

Ответ 8

Eclipse Counterclockwise REPL обеспечивает полную синтаксическую раскраску (включая раскраску радуги).

Я считаю, что он использует nREPL под капотом.

Ответ 9

Чтобы получить свой результат в редакторе REPL, попробуйте repl-color

enter image description here

Ответ 10

Если вы являетесь пользователем Intellij, отличный Cursive - отличный выбор и предоставляет красивые цвета, которые вы можете настроить:

enter image description here

Ответ 11

Вы можете попробовать LightTable, он позволяет вам выбирать функции и запускаться мгновенно.