Сохранение/замена заметок в 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.