Перезапись фрагментов кода по умолчанию - PullRequest
3 голосов
/ 28 октября 2010

Я сделал несколько улучшений в фрагментах кода, которые обычно встроены в VS2010. Есть ли способ «отдать предпочтение» определенным каталогам фрагментов над другими, или перезаписать значения по умолчанию, не удаляя ссылки вручную из окна «фрагменты кода»? Я хотел бы сохранить те же ярлыки.

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

Есть две проблемы, возникающие при наличии аналогичных ярлыков для фрагментов кода.

  1. Для некоторых фрагментов, таких как propdp, вам будет предложено указать несколько фрагментов, и вам будет предложено выбрать, какой из них подходит.
  2. Для других фрагментов, таких как ctor, он просто использует фрагмент по умолчанию и делает вид, что мой собственный не существует. Просматривая фрагменты с помощью Ctrl + K, Ctrl + X ясно показывает, как работает фрагмент, и ярлык правильный.

Второй вопрос здесь более важен, чем первый.

Редактировать: Дальнейшие эксперименты показывают, что ctor, в частности, использует фрагмент по умолчанию, несмотря ни на что. Я не пробовал перезаписать код в исходном файле фрагмента, но удаление ссылки на папку фрагментов Visual C # по-прежнему использует значение по умолчанию и игнорирует мою замену.

Редактировать 2: Даже при замене исходного фрагмента, ctor использует значение по умолчанию и игнорирует файл .snippet. Это после перезапуска Visual Studio. Теперь я понятия не имею, откуда он вообще получает этот фрагмент кода. В качестве теста вы можете переименовать фрагмент ctors, и он будет отображаться правильно. ctor больше не является предложением на данный момент. Если вы переименуете его обратно на ctor, он снова отобразит фрагмент по умолчанию. Либо этот фрагмент где-то кешируется, либо он встроен в VS2010.

Ответы [ 3 ]

2 голосов
/ 28 октября 2010

Вы пытались просто перезаписать исходные файлы, заменив фрагмент своим собственным?

Они находятся здесь: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC # \ Snippets \1033 \ Visual C #

0 голосов
/ 05 апреля 2019

В моей системе фрагменты C # хранятся как минимум в двух местах:

  • C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC # \ Snippets \ 1033\ Visual C #

  • C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ VC # \ Snippets \ 1033 \ Visual C #

Я думаю, что вы правы в том, что фрагменты Microsoft всегда «выигрывают», когда у вас есть фрагменты в других каталогах, поэтому для использования настроенных фрагментов вам придется перезаписывать оригиналы.Но каждые несколько недель, когда выходит обновление для Visual Studio, оно стирает ваши версии в пользу MS.(Почему они потрудились раскрыть эту функциональность, если собираются неуважительно игнорировать или стереть ваши настройки?)

В итоге я просто написал программу, которая запускается во время входа в систему для просмотра этих двух каталогов.Когда что-то меняется в одном из них, он сравнивает фрагменты, которые я сохранил в каталоге «переопределения фрагментов», и если они не совпадают, он восстанавливает мои версии фрагментов.

0 голосов
/ 28 октября 2010

Вы смотрели на плагин для Code Barrel? Он имеет поддержку ревизий, тегов и т. Д. Похоже, это то, что вам нужно. ~ пожав плечами ~ это бесплатно, поэтому плагин, перейдите на codebarrel.com, чтобы получить его.

...