Остановить текстовый редактор Visual Studio от автоматического перемещения строк комментариев

949
john_m

Есть ли способ остановить текстовый редактор Visual Studio (2015 или 2017) от автоматического перемещения строк комментария при нажатии клавиш Ctrl + K, D или соответствующей комбинации клавиш (Ctrl + E, D - форматировать весь документ)?

Я хотел бы, чтобы мои комментарии оставались на позиции, независимо от позиции кода выше или ниже.

Например, при написании комментария к новой строке начинайте, скажем, с 60, как показано ниже:

code line  |-------- white space ----------| //... comment .. <-- comment is auto shifted left  code line 

чтобы он не мешал коду ниже или выше, при нажатии Ctrl + K, D комментарий смещается влево, чтобы выровнять его по окружающему коду.

С другой стороны, когда комментарий помещается после строки кода, как показано ниже:

|--code line --|- white space -| //..1st comment line..  |------white space ------------| //..2nd comment line.. <-- comment is properly auto aligned 

возможный 2-й комментарий к новой строке остается выровненным с приведенным выше, что указывает на то, что редактор может корректировать положение строк комментариев на основе определенных критериев.

Я должен уточнить, что я хотел бы сохранить оставшуюся функциональность Ctrl + K, D.

Редактировать: я боюсь, что все рекомендации, упомянутые в разделе « Управление форматированием кода», приведенном ниже Сетом, просто заставляют применять инструкции, уже заданные в текстовом редакторе, для каждого конкретного языка (и, в частности, c #) для целевого текста.

Таким образом, даже если некоторые комментарии или пробелы вставляются перед комментарием, они автоматически стираются, если применяются Ctrl + K, D, просто потому, что нет соответствующих инструкций по обработке пробелов в определенных конструкциях, и поэтому общие Правило применяется.

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

1
[Управление форматированием кода] (https://msdn.microsoft.com/en-us/library/999b219z (v = vs.71) .aspx) может иметь значение. Кроме этого это, вероятно, не легко (по крайней мере). В конце концов, что произойдет, если исходный код будет отформатирован так плохо, если отступ от всех лишних пробелов? Внезапно они снова будут "вмешиваться". Seth 6 лет назад 0
@Seth - Спасибо, но, пожалуйста, смотрите мой Edit john_m 6 лет назад 0
Связанная тема: [Отключить авто-отступ комментариев в Visual Studio 2015] (https://stackoverflow.com/questions/43899505/disable-auto-indent-of-comments-with-visual-studio-2015) john_m 6 лет назад 0

2 ответа на вопрос

1
Mick Bruno

Если у вас есть ReSharper (отличный инструмент по многим причинам), его механизм форматирования не имеет этой проблемы. Перейдите в VS> Инструменты> Настройка> Клавиатура ...> Показать команды, содержащие "FormatDocument", и удалите все сопоставления клавиш. Теперь покажите команды, содержащие «Reformat», добавьте комбинацию клавиш Ctrl-KD к команде ReSharper.

Вуаля, несвязанные комментарии не выстраиваются в очередь только потому, что они находятся в последовательных строках. Вы также можете просто использовать команду R # Ctrl-Alt-Enter вместо Ctrl-KD, но последнее - то, что мои пальцы автоматически делают после многих лет практики, поэтому переопределение этой комбинации клавиш - мое предпочтительное решение.

Если вы хотите, чтобы у комментария были дополнительные отступы, вы можете использовать "// // Комментарий ...", который может быть не совсем тем, что вы хотите, но не так уж плохо.

Спасибо Мик за твой ответ, но, к сожалению, я не использую ReSharper. Поэтому я не знаю, можно ли пометить этот ответ как правильный ответ на поставленный вопрос. Возможно, модератор мог бы помочь здесь .... john_m 5 лет назад 0
Да, это не значит, что это будет "ответ", просто возможный обходной путь. Но как человек, который не работает на ReSharper, но заядлым пользователем в течение десяти лет, постарайтесь убедить своего работодателя (если вы работаете программистом) купить его для вас. На их веб-сайте есть несколько отличных документов о затратах и ​​выгодах, и это действительно сделало меня лучшим программистом. Mick Bruno 5 лет назад 1
-1
Angelo Mascaro

Это «половина решения», но я не нашел ничего лучшего. Во многих случаях выравнивание комментариев следует за действием пользователя. В этом случае CTRL-Z (отменить) поместить комментарии в положение, которое они имели до выравнивания. Чтобы отменить действие пользователя, требуется другой CTRL-Z. Как я уже сказал, это не решение, в любом случае это самый быстрый способ сохранить код так, как мы хотим. Надеюсь, что MS будет иметь возможность отключить выравнивание комментариев.

Похожие вопросы