Как остановить визуальную студию, вставив пробел между определением функции и немедленным вызовом?

Я использую плагин JSLint для визуальной студии, чтобы поддерживать javascript в порядке, который, кажется, действительно работает отлично от этой проблемы.

Если я набираю

x = (function () {
}())

И затем положите точку с запятой в конец, Visual studio исправляет ее:

x = (function () {
} ());

И затем JSLint жалуется JS Lint: Unexpected space between '}' and '('.

Очевидно, что это можно устранить, удалив пространство, но визуальная студия очень устойчива в том, чтобы вернуть пространство. Вставка точки с запятой в любую часть функции, которая является большей частью файла, заставит VS поместить пространство обратно. Это начинает раздражать.

Я пробовал работать с настройками редактора Javascript на визуальной студии ( "вставить пробел после..." ), но, похоже, не может остановить это.

Другой способ, которым это можно было бы выразить, -

x = (function () {
})();

Какой VS оставляет в покое, но JSLint говорит JS Lint: Move the invocation into the parens that contain the function. Так что там нет кубиков.

Любые предложения? Я знаю, что могу отключить бит JSLint, даже около этой последней строки файла, но это будет выглядеть грязно, я хотел бы сделать немного лучше.

Ответ 1

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

Потеря всего пробела, проверяющего этот исходный файл, или потеря автоматической переформатации остальной части вашего JavaScript, - это оба подхода к этой проблеме с несколькими кувалдами. Мне бы хотелось увидеть другой креативный вариант, если у кого-то есть.

Ответ 2

ОБНОВЛЕННЫЙ ОТВЕТ ДЛЯ VS 2013:

В VS 2013 мы, похоже, больше контролируем. Откройте "Инструменты" > "Параметры", затем в разделе "Текстовый редактор" > "Javascript" > "Форматирование" > "Интервал" вы можете отменить выбор второго варианта, который гласит "Вставить пробел после ключевого слова функции для анонимных функций".

У меня был pic, но я не могу опубликовать его:).

Ответ 3

Прежде всего вы можете сделать Visual Studio не столь стойкой, если вы отключите некоторые настройки по умолчанию:

enter image description here

Другой способ - следовать не так точно правилам форматирования JSlint. Вы можете просто включить

/*jslint white: true */

чтобы отключить правило форматирования пробел.