Почему Visual Studio использует разные настройки отступов для C # и C ++? - PullRequest
11 голосов
/ 07 марта 2009

Для C # Visual Studio по умолчанию использует 4 пробела, тогда как для C ++ это жесткие вкладки. Почему это так? Почему это отличается?

Мой проект состоит из кода на C # и C ++, и эта разница меня действительно раздражает. Я хочу установить общий стандарт для всех источников, но мне интересно, есть ли у этого недостатки.

Ответы [ 8 ]

15 голосов
/ 07 марта 2009

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

Способ обойти это через файл .vssettings. Когда я впервые начал работать с VS 2005, я установил табуляторы / пробелы по умолчанию для каждого языка. Вы можете сделать это через Сервис -> Параметры -> Текстовый редактор -> (C # / C ++). Затем я экспортирую настройки вкладки в файл .vsssettings. Всякий раз, когда я устанавливаю VS на новую машину, я просто импортирую этот файл и у меня есть счастливые настройки пробела / вкладки.

PS: правило пробелов:)

5 голосов
/ 08 июня 2010

Конечно, вкладки - это единственный правильный путь. Tab может делать все, что может делать пробел. Пробелы не могут сделать большую часть того, что может сделать вкладка.

Вкладки позволяют легко менять отступы и легко перемещаться, не нажимая клавиши со стрелками слишком много раз и удерживая нажатой кнопку управления.

Реальное решение состоит в том, чтобы редактор мог перемещаться и вкладывать файл с отступом, как если бы он был с отступом, если пользователь предпочитает это. Файл будет сохранен с вкладками. Все очень просто и любезно.

Проблема в c # 2010 заключается в том, что я не могу найти никакой опции, чтобы изменить его на вкладки.

1 голос
/ 07 марта 2009

Просто используйте все, что вы предпочитаете, я обычно использую вкладки в C ++. Все, кто просматривает мой код, все равно используют вкладки RE с настройками VS по умолчанию, поэтому нет реальной возможности заменить их пробелами. Я не уверен, каково это сейчас, но когда F # был в зачаточном состоянии (то есть, довольно ранний выпуск из MSR), вам нужно было использовать пробелы в коде #light, иначе компилятор жаловался бы, поскольку пробел был важен.

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

1 голос
/ 07 марта 2009

Причина, по которой в C # по умолчанию 4 пробела, заключается в том, что, кто бы ни открыл файл, отступ будет одинаковым.

Вы можете изменить его, как вам нравится в настройках.

1 голос
/ 07 марта 2009

Я сомневаюсь, что есть какие-то недостатки, так как грамматика C ++ не различает символы табуляции и пробелы. Кстати, я думаю, что лучший способ установить стандарты стиля кода - экспортировать настройки VS и поделиться ими с командой.

0 голосов
/ 12 сентября 2011

Аргумент tabs vs Пробел имеет простой ответ: tabs. Вкладки позволяют указать отступ, не заставляя других жить с ним. Учитывая, что размеры вкладок являются лишь личным предпочтением, один пользователь не должен заставлять других следовать его / ее параметрам отображения.

Почему разница между C ++ и C #: без понятия. Однако, зная, что вкладки логически лучше, просто измените C # (и фактически все языки) на вкладки и вуаля.

0 голосов
/ 19 марта 2010

Пробелы затрудняют навигацию по коду с помощью клавиатуры.

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

Если вы используете пробелы для вкладок в любом HTML, CSS или JavaScript, вы делаете это неправильно. Для html / css / js нет дебатов между табуляцией и пробелами - это либо табуляция, либо невежество. Код на стороне клиента не скомпилирован, и в IIS сжатие по умолчанию не включено - избыточный пробел = лишний жир.

Давным-давно, когда VB6 не давал нам выбора использовать вкладки, но теперь мы можем и должны - если вы этого не сделаете, ваш код создает впечатление, что вы все еще цепляетесь за старые школы.

Так что перестаньте кодировать, как в 1999 году. Используйте вкладки. Сделай это для детей.

0 голосов
/ 07 марта 2009

Для C # Visual Studio по умолчанию использует 4 пробела, тогда как для C ++ это жесткие табуляции. Почему это так?

Почему бы и нет?

Просто измените его, если вы не счастливы.

...