Вопрос

Я использую js2-mode для работы с javascript в emacs, и по большей части это очень полезно.Однако методы отступов ужасно расстраивают при работе с jQuery, замыканиями и JSON...например, код, в котором я хочу сделать отступ следующим образом:

var foo = jQuery('#mycontainer ul li').each(function(el){
    var bar = el.html();
});

Получается так:

var foo = jQuery('#mycontainer ul li').each(function(el){
                                          var bar = el.html();
                                       });

Есть ли способ, которым я могу просто отключить все "помощники" с отступами и просто вставить emacs N пробелы, когда я нажимаю клавишу tab?Я знаю, что отступ вручную - это шаг назад, но наличие читаемого кода, ИМХО, полезнее, чем инструмент, который работает не так, как ожидалось.

Это было полезно?

Решение

Думаю, я сделаю это полным ответом вместо комментария;espresso-mode включен в Emacs и предназначен для использования в качестве режима Javascript для Emacs (вместо режима Javascript, который запускается внутри Emacs).Он работает как обычные режимы программирования, а также позволяет делать отступы так, как вам нравится.

Другие советы

Это не прямой ответ на ваш вопрос, но вот вилка из js2-mode это улучшило отступы.

Одним из улучшений является то, что ваш пример кода имеет отступ, как вы задаете здесь.

Ознакомьтесь с этим решением, которое отображает функцию отступа в js2-режиме для частичного использования отступа из esresso-mode (теперь известного как js-mode, включенного в emacs 23.2 и новее):

http://mihai.bazon.net/projects/редактирование-javascript-with-emacs-js2-mode

Работает точно так же, как я ожидаю, что отступы в emacs будут работать, и вы по-прежнему получаете потрясающие возможности синтаксического анализа из js2-режима.

Вы пробовали новые версии js2-mode?Похоже, есть исправление: http:// code.google.com/p/js2-mode/issues/detail?id=94

js2-режим поддерживает отступы "отскока";вы можете нажимать табуляцию несколько раз, чтобы выбрать разные вероятные уровни отступа, чтобы таким образом получить желаемый эффект:

родовое слово

Вы можете просто привязать TAB для вставки самого себя:

родовое слово

(Но лучшим решением, конечно же, было бы выяснить, почему режим считает, что ему требуется такой большой отступ для анонимных функций, и исправить это.)

Еще одна альтернатива - js3-mode .По умолчанию он имеет такие отступы, но, похоже, есть некоторые параметры, которые могут позволить вам настроить его по своему вкусу.

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top