Сохранение/замена заметок в Visual Studio

Кажется, нет встроенной поддержки для поиска/замены в VisualStudio (см. также соответствующий запрос функции).

Я имею в виду: поиск "BadJob" и замена с помощью "GoodJob" будут выполнять следующие замены

'badjob' -> 'goodjob'  
'BadJob' -> 'GoodJob'  
'badJob' -> 'goodJob'  
'BADJOB' -> 'GOODJOB'

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

Обновление:
Я знаю, что могу сделать 4 ручных замены, выполняя эту работу, но я ищу способ сделать это автоматически в VS (например, Emacs делает это). Общий сценарий: переменная с именем "foo" и некоторые функции DoFoo(), GetFoo(),... и некоторые дополнительные комментарии, содержащие "foo" "Foo" и т.д. Теперь переименуем 'foo', чтобы bar 'дает переменную' bar ', функции DoBar(), GetBar() и т.д. С помощью ONE find/replace.

Ответ 1

Это невозможно в Visual Studio на данный момент.

Вы можете проголосовать за эту функцию:

https://developercommunity.visualstudio.com/content/idea/580810/case-preserving-search-replace.html

Я обычно заканчиваю тем, что открываю Sublime Text, копирую и вставляю туда код, выполняю там замены с сохранением регистра и копирую и вставляю обратно в Visual Studio.

Ответ 2

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

Подробности можно найти здесь found here (скопировано ниже):

Сохранить регистр в разделе "Найти и заменить"

Теперь вы можете сохранить регистр при выполнении замены в редакторе поиска виджетов. Эта функция включается при включении опции "Сохранить регистр" (кнопка AB) в окне "Заменить" в редакторе.

button

Currently VS Code only supports preserve Full Upper Case, Full Lower Case, и Title Case.

example

Ответ 3

откройте параметры поиска, когда вы найдете find/replace. проверьте вариант с учетом регистра. вам придется делать ароматы вручную, если вы не сделаете что-то вроде: http://www.aaronlerch.com/blog/2007/03/28/visual-studio-find-and-replace-regular-expressions/ или используйте что-то вроде: http://www.download3k.com/MP3-Audio-Video/Utilities-Plug-Ins/Download-Find-Replace.html

Ответ 4

Вот как я справился с (out):

Откройте файл в Notepad++ и запустите скрипт python, который заменит регистрацию (как мы привыкли делать с макросами Visual Studio... ah, loss)

Установите Notepad++
Установить npp скрипт python
Создайте новый скрипт таким образом:

from Npp import *

#Use capitalizeFirst because .capitalize will make the remaining string lower, but in CamelCase examples 
#we will want to preserve the user-typed casing. e.g. YourMonkeyMagic -> MyMonkieMagik 
def capitalizeFirst(str):
    return '%s%s' % (str[:1].upper(), str[1:])

#***  Ask user what to find and replace ***
find_str=notepad.prompt(notepad, 'Find (keeping case)', '')
replace_str=notepad.prompt(notepad, 'Replace (keeping case)', '')

#*** Do a case-sensitive replacement on each type ***
editor.replace(find_str.upper(), replace_str.upper())
editor.replace(find_str.lower(), replace_str.lower())
editor.replace(capitalizeFirst(find_str), capitalizeFirst(replace_str))
editor.replace(find_str, replace_str)

Ответ 5

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

Предостережения:
Он работает только в рамках текущего решения.
Он только обновляет ссылки в управляемом коде.
Он не будет обновлять строковые строки, такие как "badcode"
Он не будет обновлять ваши комментарии.

Это одна из моих любимых функций в VS2005/2008.