фигурные скобки paredit в swank-clojure repl - PullRequest
9 голосов
/ 22 декабря 2011

Я использую emacs 24 для Windows 7 и установил clojure-mode от Technomancy вместе с paredit 23 beta. Я загружаю исходный файл из моего проекта leiningen и получаю ответ, используя clojure-jack-in. Проблема заключается в том, что хотя paredit включен как в режиме Clojure, так и в repl, фигурные скобки не совпадают в repl только в исходных файлах.

Как мне сделать так, чтобы он совпадал с фигурными скобками в репле?

Ответы [ 2 ]

6 голосов
/ 22 декабря 2011

Я добавил следующее в мой файл .emacs, который помогает мне (я сам не придумал, это фрагмент, который я где-то нашел в Интернете - но я не могу вспомнить, где):

(defun setup-slime-repl-paredit ()
  (define-key slime-repl-mode-map
    (kbd "DEL") 'paredit-backward-delete)
  (define-key slime-repl-mode-map
    (kbd "{") 'paredit-open-curly)
  (define-key slime-repl-mode-map
    (kbd "}") 'paredit-close-curly)
  (modify-syntax-entry ?\{ "(}")
  (modify-syntax-entry ?\} "){")
  (modify-syntax-entry ?\[ "(]")
  (modify-syntax-entry ?\] ")[")
  (modify-syntax-entry ?~ "'   ")
  (modify-syntax-entry ?, "    ")
  (modify-syntax-entry ?^ "'")
  (modify-syntax-entry ?= "'"))

(add-hook 'slime-repl-mode-hook 'setup-slime-repl-paredit)

(add-hook 'slime-repl-mode-hook       'enable-paredit-mode)
1 голос
/ 22 декабря 2011

Возьмите пакет Френда Хейгельберга , который предоставьте некоторые специфичные для clojure улучшения для слизи, затем попробуйте этот фрагмент:

(require 'durendal)
(durendal-enable t)

(defun slime-clojure-repl-setup ()
  (when (string-equal (slime-lisp-implementation-name) "clojure")
    (set-syntax-table clojure-mode-syntax-table)
    (setq lisp-indent-function 'clojure-indent-function)))

(add-hook 'slime-repl-mode-hook 'slime-clojure-repl-setup)

В будущем Фил может включить функцию durendal в саму swank-clojure в качестве дополнительной полезной нагрузки lisp, после чего вышеуказанное станет ненужным.

...