2009-03-05 2 views
4

Дубликат: VS2008 Removes my Indentation in .js file (Отключить автоматическое форматирование на вкладке форматирования)VS2008 является автоформатирования мой JavaScript в .js файле, и я хочу, чтобы остановить

Привет У меня есть VS2008 и ReSharper 4.0 и у меня проблемы , Когда я ввожу новую строку кода в любой .js-файл, он проходит и переформатирует все скобки JavaScript. Я нашел, где в ReSharper, где я могу установить поведение скобок для файлов C# (.cs). Я искал в VS2008 и не смог найти никаких настроек для кода JavaScript.

function doSomething(withMe) 
    { 
     for (idx in myArray) 
     { 
      if (myArray[idx] != -1) 
      { 
       return "yep"; 
      } 
     } 
     return "nope"; 
    } 

Стать это (который мне нравится лучше, но моя команда любит выше вместо)

function doSomething(withMe) { 
     for (idx in myArray) { 
      if (myArray[idx] != -1) { 
       return "yep"; 
      } 
     } 
     return "nope";  
    } 

Это становится больно вернуться и повторно добавить CRs везде. Где я могу найти настройку, чтобы остановить это безумие.

+0

Голосование, чтобы закрыть: Дубликат: http://stackoverflow.com/questions/605461/vs2008-removes-my-indentation-in-js-file (Отключить автоматическое форматирование на вкладке форматирования) – dirkgently

+0

Не закрывайте этот вопрос , Это должно быть лучшее объяснение проблемы, а другое. –

+0

это также пропустит точку, в которой Джонни указывает на синтаксически значимое значение на практике. – philsquared

ответ

7

Перейти к разделу Инструменты -> Параметры.

Expand Text Editor

Развернуть JScript

Uncheck все параметры форматирования.

alt text

+0

Спасибо за ответ. Это уже давно сошло с ума. –

+0

Видимо, JScript также форматирует JavaScript-код. Неудивительно, что я не мог найти его. :) Спасибо за указатель. – DMCS

+0

Я категорически против вас. См. Другие ответы для этого вопроса. –

4

Для Javascript вы должны войти в привычку класть ваши брекеты в конце линии, как предполагает Visual Studio. Причиной этого является то, что интерпретатор может, иногда, добавлять a; при интерпретации файла, который может привести к нечетному поведению. Например:

return 
{ 
    'foo': 3 
}; 

это возвращает неопределенное, а не хэш буквального, как можно было бы ожидать, так как интерпретатор превращает ее в

return; 
{ 
    'foo': 3 
}; 

Вы можете думать, что я выдумываю. Уверяю вас, что нет.

Я предлагаю вам обучить вашу команду и привыкнуть форматировать ваш javascript, как предлагает VS. Это спасет вас от вас самих.


Также, еще одно. Вместо того чтобы делать:

myArray[idx] != -1 

Я предлагаю вам сделать:

myArray[idx] !== -1 

Это остановит его от этого типа принуждения. Infact ... никогда не используйте == or! = Всегда используйте === и! ==.

+0

Lol. MyArray [idx]!= -1 был только какой-то фиктивный код, который я туда бросил. У нас нет этого в нашем коде, просто я вышел из головы. Но интересный момент. Я понятия не имею, что такое принуждение, но это звучит очень важно. – DMCS

+0

Тип принуждения - способ, которым javascript будет выполнять сравнения типов. Например, '\ t \ r \ n' == 0 имеет значение true. – jonnii