Настройка табуляции в MS Visual Studio

Всем программистам известно, что правильное форматирование облегчает чтение кода. И расстановка отступов — одна из самых важных задач при форматировании текстов программ. Отступы позволяют увидеть общую структуру кода, просто просмотрев его «по диагонали». Благодаря им можно быстро перейти к нужному блоку. Думаю, никто с этим спорить не будет. Но при форматировании кода иногда возникают вопросы, не имеющие единственно правильного ответа. Один из таких вопросов — «Что использовать для отступов: символы табуляции или пробелы?».
У символов табуляции свои преимущества:

  • Символы табуляции занимают меньше места в исходном тексте программы. (Правда, в наше время это редко бывает актуальным; скорость процессоров и объём дисков выросли настолько, что для абсолютного большинства программ разница будет просто незаметна.)
  • По отступам, состоящим из символов табуляции, можно быстрее перемещаться. Такие отступы и удалить можно гораздо быстрее. Для этого просто нужно меньше нажатий клавиш.
  • Ширина символа табуляции настраивается в большинстве текстовых редакторов. Т.е. каждый человек, который будет читать Ваш код, сможет настроить, как у него будут отображаться отступы, в соответствии со своими предпочтениями и размером монитора.

Преимущества есть и у пробелов:

  • В программном коде отступ начала строки от левого края экрана зависит не только от уровня вложенности блока, к которому эта строка относится. Иногда нужно выровнять первый символ строки относительно какого-нибудь символа в предыдущей строке. Такая ситуация, как правило, встречается при разбиении одной длинной инструкции на несколько строк. Такую «тонкую» настройку нельзя делать символами табуляции. Для этого вида форматирования подходят только пробелы. Если отступы, показывающие уровень вложенности блока, создаются с помощью символов табуляции, а более «тонкое» выравнивание делается с помощью пробелов, то возникает путаница. Программист должен постоянно внимательно следить, какой символ нужно использовать. Это, мягко говоря, не всем нравится. Особенно остро проблема встаёт перед большими командами разработчиков.
  • Символ табуляции выглядит так же, как один или несколько пробелов, но ведёт себя по-другому. Быстро понять, где в коде пробелы, а где табуляция может быть не просто.

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

В этом посте я хочу описать настройки MS Visual Studio, регулирующие работу с пробелами и символами табуляции. В первую очередь нужно в главном меню выбрать пункт Tools->Options. Откроется окно Options. В его левой части расположено древовидное меню в нём нужно выбрать пункт TextEditor->AllLanguages->Tabs. Там находятся настройки отступов, которые действуют для всех языков программирования и разметки, поддерживаемых MS Visual Studio. Если требуется изменить настройки только для конкретного языка, то в дереве слева вместо пункта AllLanguages следует выбрать нужный язык (см. рисунок 1).

Рисунок 1

Пункт Tabs существует для каждого языка. Если для разных языков установлены разные параметры табуляции, то на странице AllLanguages->Tabs будет показано сообщение о том, что параметры табуляции для разных текстовых форматов конфликтуют друг с другом. («The tab settings for individual text formats conflict with each other.») После того, как он был выбран, в правой части окна появятся две группы настроек: Indenting и Tab. Все настройки, которые определяют, какого размера должны быть отступы, и из каких символов они должны состоять, находятся в группе Tab. (см. рисунок 2).

Рисунок 2

Рассмотрим подробно каждый параметр из этой группы:

  • Tab size — это размер интервала табуляции. Он задаёт расстояние между позициями табуляции в пробелах. Проще говоря, этот параметр определяет, какому количеству пробелов равен один символ табуляции.
  • Indent size — это размер автоматического отступа в пробелах. Для заполнения указанного размера отступа могут использоваться символы табуляции, символы пробела или оба этих вида символов. Что именно будет использовано, зависит от того, какая из следующих 2 радиокнопок выбрана.
  • Insert spaces — вставлять только пробелы. Когда выбран этот параметр, отступ будет всегда состоять только из пробелов. Причём неважно, каким способом отступ создаётся: его автоматически вставляет текстовый редактор IDE, пользователь нажимает клавишу «Tab» или кнопку «Increase Indent» на панели инструментов.
  • Keep tabs — сохранять символы табуляции. Когда выбран этот параметр, для создания отступа используется максимально возможное число символов табуляции. Символ табуляции вставляет такое число пробелов, которое указано в поле «Tab size». Если размер отступа не кратен размеру интервала табуляции, для заполнения разницы добавляются знаки пробелов.

Ещё одна полезная возможность — показ на месте знаков табуляции и пробела специальных символов. Это позволяет с первого взгляда отличать эти символы друг от друга. Эту настройку можно найти в меню Edit->Advanced->ViewWhiteSpace. Ещё один способ включить/выключить отображение пробельных символов — это использование «горячих клавиш». Последовательное нажатие сочетаний клавиш Ctrl+R, Ctrl+W включит отображение пробельных символов, если оно было выключено. Если отображение пробельных символов было включено, то та же комбинация «горячих клавиш» его выключит. Пробел будет показан как точка на уровне середины строки, а начало каждого интервала табуляции будет обозначено стрелочкой (см. рисунок 3).

Рисунок 3

Я использовал MS Visual Studio 2015, но показанные настройки должны работать и в более новых, и в более старых версиях.

Настройка табуляции в MS Visual Studio: 20 комментариев

  1. Я занимаюсь версткой и решил попробовать перейти с Sublime Text на Visual Studio Code, но никак не могу привыкнуть. У меня не всегда срабатывает Emmet (создание блока по табу), не хватает автодополнения пути к файлу (в HTML и CSS), автопрефиксера для CSS, красивого форматирования кода одним кликом. Подскажите настройки, подходящие плагины. И какие вы можете подсказать полезные плагины для веб-разработки?

    1. Visual Studio Code мне ещё не доводилось использовать. Я пользуюсь IDE MS Visual Studio и её встроенным редактором для разработки на C/C++. IDE Visual Studio и редактор Visual Studio Code — это два разных программных продукта, хотя оба выпущены Microsoft. К тому же мы их используем в разных областях. Поэтому, увы, ничем не могу помочь.

  2. Для тех, кто не в курсе, Visual Studio Code – это бесплатный и кроссплатформенный текстовый редактор, созданный компанией Microsoft. Он достаточно быстро стал «народным любимцем», ввиду его высокой производительности и обильного функционала. Как и большинство современных IDE, VSCode имеет перманентно развивающийся рынок устанавливаемых дополнений, расширяющих исходные возможности редактора. Для того, чтобы разобраться, на какие именно плагины стоит обратить внимания, ресурс «Библиотека программиста» представляет вашему вниманию подборку 15 плагинов для Visual Studio Code, которые будут полезны любому программисту.

  3. I’m extremely pleased to discover this website. I wanted to thank you for ones time just for this fantastic read!! I absolutely enjoyed every part of it and i also have you bookmarked to see new stuff in your site.

  4. То есть он превосходно эмулирует вам табы? 🙂 Честно, я не хочу участвовать в этом споре. Я выбрал для языка C# для себя табы. Даже перевел команду на них, объяснив и доказав что это удобнее, особенно при использовании Visual Studio. Так мне хочется, так мне удобнее. От статьи я честно ожидал что-то действительно революционное. А здесь же опять вырваны какие-то моменты, с которыми столкнулся автор, и которые считает автор важными. Еще один пласт для холивара.

    1. По этой теме уже столько сказано, что что-то действительно революционное сказать трудно. Я в этой заметке и не пытался. Я скорее рассказал читателям о возможных вариантах, чтобы они осознавали их плюсы и минусы. Ну и главное — я рассказал, как настроить Visual Studio под выбранный вариант. Я никого не склоняю ни к пробелам, ни к табам. Я просто показываю как настроить среду разработки, если решено использовать пробелы. Эмуляция, кстати, действительно неплохая.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *