Примечание. Этот вопрос касается не только VB.NET, но и конкретной функции редактора Visual Studio 2015 Basic.Преобразование объединенного строкового литерала VB.NET в многострочную строку
У меня есть унаследованного кода, который выглядит следующим образом:
Dim someText =
" a " &
" AND b " &
" AND cd " &
" AND efg " &
" AND h "
С Рослин ввел multi-line string literals в VB, я хочу, чтобы преобразовать его в этом:
Dim someText =
" a
AND b
AND cd
AND efg
AND h "
(я знаю, что два не совсем эквивалентны, поскольку второй содержит дополнительные разрывы строк и пробелы. Это прекрасно. Предположим, что содержимое похоже на SQL или HTML, где дополнительные пробелы не имеют значения.)
Теперь мой подход будет выглядеть следующим образом: Сначала я block-select стартовые кавычки (для первого, кроме одного) и заменить их пробелом:
Dim someText =
" a " &
AND b " &
AND cd " &
AND efg " &
AND h "
Затем я нажимаю в a
линию, чтобы зафиксировать завершающие кавычки и пуф происходит следующее:
Dim someText =
" a " &
And b " &
AND cd " &
AND efg " &
AND h "
капитализация первого «а» получил перепутались.
Я понимаю, почему это происходит. Я даже filed a bug report, чтобы исправить аналогичную проблему. К сожалению, исправление (которое, видимо, попало в VS 2015 Update 2), помогает только в том случае, если общее количество кавычек является нечетным, что здесь не так.
Кто-нибудь нашел обходное решение для переформатирования больших блоков конкатенированных строк в многострочные строковые литералы без Visual Studio, испортив содержимое строки? Я знаю, что я могу превратить довольно-форматирование по всему миру (Tools/Options/Text Editor/Basic/Advanced), но есть ли лучшее решение?