Плагин для удаления конечных пробелов перед сохранением

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

Есть ли плагин для Visual Studio, который удаляет конечные пробелы при сохранении файла?

Длинная версия:

Есть много веских причин для удаления конечных пробелов из исходного кода:

  • занимает больше места для хранения, чем необходимо
  • при Endнажатии клавиши в некоторых редакторах курсор переходит не в ожидаемое место
  • все, кто работает с настольной публикацией, ненавидят повторяющиеся пробелы и завершающие пробелы, потому что это делает разрыв текста странным
  • компилятору нужно больше времени для компиляции
  • некоторые редакторы могут применять перенос строки из-за дополнительного символа, когда он достигает предела символов
  • это ломаетvim
  • некоторые языки программирования, такие как Python, могут не компилироваться с пробелами в многострочных строках.
  • TCL не компилируется с пробелами
  • это может испортить дифференциал

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

Плагин должен

  • работать в VS 2015 и более поздних версиях
  • удалить ненужные пробелы в конце
  • сохраняйте потенциально релевантные пробелы (например, в многострочных строках)

В идеале (необязательно, но желательно):

  • выделяет нерелевантные и потенциально релевантные пробелы в редакторе при наборе текста
Python nit: В многострочной строке может быть все что угодно. Но конечный пробел после явного символа продолжения строки вызовет проблему.
Я не имею в виду никакого неуважения, но вы уверены, что в VS нет настройки для этого? Это очень распространенная функция в больших и малых редакторах. Опция «отображать пробелы» также чертовски распространена. Хотя я скажу, что функция автообрезки практически всегда (если не всегда) реализуется без осознания того, является ли пробел логически релевантным. Это просто идет по физическим линиям.

Ответы (1)

Что ж, мне до сих пор трудно поверить, что в редакторе любого серьезного программиста, не говоря уже о полнофункциональной IDE, отсутствует эта функция, но если она вам действительно нужна, есть Trailing Whitespace Visualizer , который позволяет подсвечивать пробелы и/или обрезать завершающий пробел при сохранении (или по запросу). В нем говорится, что он работает с VS 2013, 2015 и 2017.

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

Старые вопросы, но также стоит проверить другие варианты:

Работает и в 2019 году. Версия на 2022 год есть в ветке master репозитория, но не выпущена. Сборке CI в AppVeyor больше месяца, поэтому полученный артефакт был удален. :-(
Мне удалось найти этот инструмент для VS2022 с помощью поиска в меню «Расширения».