Проблемы с отступами в Emacs (в данном случае Espresso) - PullRequest
0 голосов
/ 07 апреля 2011

В настройках Emacs определенно есть что-то, что касается отступов.

Вот код JavaScript, который я хотел бы сделать отступом:

$(function(){
  $.superbox.settings = {
    closeTxt: "",
    loadTxt: "",
    [...]

Если я сделаю M-q (т.е. paredit-reindent-defun), вот что я получу:

$(function(){
  $.superbox.settings = {
                         closeTxt: "",
                         loadTxt: "",

Как мне настроить Emacs, чтобы он следовал более обычным отступам? В этом конкретном случае я хотел бы видеть closeTxt один отступ (например, четыре пробела) дальше объявления $.superbox на одну строку выше ...

P.S. Я использую стартовый комплект emacs (https://github.com/technomancy/emacs-starter-kit).

1 Ответ

2 голосов
/ 07 апреля 2011

paredit плохо подходит для чего-либо, кроме редактирования на Лиспе. Я бы сделал отступ для кода JavaScript, используя его. Вместо этого вы должны попробовать использовать стандартные функции отступа JavaScript. Удалите следующие строки из starter-kit-js.el, перезапустите Emacs и попробуйте снова:

(add-hook 'espresso-mode-hook 'esk-paredit-nonlisp)
(eval-after-load 'espresso
  '(progn (define-key espresso-mode-map "{" 'paredit-open-curly)
          (define-key espresso-mode-map "}" 'paredit-close-curly-and-newline)
          ;; fixes problem with pretty function font-lock
          (define-key espresso-mode-map (kbd ",") 'self-insert-command)
          (font-lock-add-keywords
           'espresso-mode `(("\\(function *\\)("
                             (0 (progn (compose-region (match-beginning 1)
                                                       (match-end 1) "ƒ")
                                       nil)))))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...