Расширение функциональности Visual Studio «Фрагмент кода» - PullRequest
3 голосов
/ 17 ноября 2011

Когда я пишу тестовый метод, я набираю «testm», нажимаю вкладку и волшебным образом вижу:

[TestMethod]
public void MethodName()
{

}

Когда я набираю methodName, он выделяется (не могу показать это здесь) как «поле», которое я заполняю. Я уверен, что вы все знакомы с этим поведением.

Лично мне нравятся названия для моих методов тестирования, такие как Can_My_Method_Do_That_Thing вместо CanMyMethodDoThatThing . Я нахожу их намного легче читать, и в большинстве случаев они действительно так или иначе являются предложением.

По причинам, в которые я бы предпочел не входить, мне трудно набирать все эти _ символы, и я хотел бы иметь возможность использовать пробел и иметь пробелы в имени автоматически заменяется при нажатии «Enter».

Я слышал, что Visual Studio можно расширять и настраивать и так далее. Это достаточно расширяемо, чтобы сделать это?

Ответы [ 4 ]

7 голосов
/ 24 ноября 2011

Вы можете реализовать и использовать свои собственные фрагменты кода, и Microsoft предоставляет очень хорошее руководство о том, как это можно сделать: Пошаговое руководство. Реализация фрагментов кода

Чтобы быстро взглянуть на то, какРасширение "testm" (это тип Snippet) реализовано "частично", вы можете перейти в каталог c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Test\ и отредактировать файл testmethod.snippet.

Я никогда не реализовывал такого рода "Расширение",но Microsoft Расширение сайта Editor - действительно хороший источник информации о том, как этого можно достичь.Вот где вы должны начать искать.

2 голосов
/ 30 ноября 2011

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

Я нашел этот плагин , который делает (почти) именно то, что вы хотите.

Предостережение заключается в том, что он разработан для NUnit, а не MSTest, поэтому вместо атрибута [TestMethod] вы получите атрибут [Test]. Поскольку это открытый исходный код, его довольно легко изменить в соответствии с вашими требованиями.

1 голос
/ 26 ноября 2011

Лучший способ, который я бы предложил, - изучить расширяемость редактора и решить его. Следующие шаги - это то, что вам может понадобиться.

  1. Привязать ключ к вашему действию "подчеркнуть".
  2. С помощью точек расширяемости редактора вы можете получить доступ к выделенному тексту, обработать его.
  3. И, наконец, замените его.

Одно предложение. Хотя кривая обучения может быть немного высокой из-за необходимости проходить MEF и тому подобное. Но оно того стоит.

0 голосов
/ 24 ноября 2011

Другим подходом, который стоит рассмотреть, будет использование внешнего инструмента для переназначения клавиатуры. Например, должно быть просто заставить AutoHotKey реагировать на последовательность нажатий клавиш testm [Tab] и переключаться в режим, где он отображает пробелы в подчеркивания (или удаляет каждый пробел как как только он напечатан и добавляет подчеркивание). Точно так же клавиша Enter может снова вывести его из этого режима.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...