Emacs + js2-режим:полностью отключить отступы?
-
24-09-2019 - |
Вопрос
Я использую 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 .По умолчанию он имеет такие отступы, но, похоже, есть некоторые параметры, которые могут позволить вам настроить его по своему вкусу.
родовое слово