Как я могу найти (и восстановить, если необходимо) созданный мной фрагмент кода?
Я создал фрагмент кода (надеюсь, первый из многих), используя в основном эту статью в качестве руководства.
Казалось, работает. Вот шаги, которые я предпринял:
Сначала я создал этот файл с фрагментом кода (HtmlTableRowWithTwoCells.snippet):
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/CodeSnippet">
<CodeSnippet Format="1.0.0">
<!-- The Title of the snippet, this will be shown in the snippets manager. -->
<Title>Create a 2-Cell HTML Table Row</Title>
<!-- The description of the snippet. -->
<Description>Creates a 2-Cell Row to be added to an HtmlTable</Description>
<!-- The author of the snippet. -->
<Author>Warble P. McGorkle for Platypi R Us (Duckbills Unlimited)</Author>
<!-- The set of characters that must be keyed in to insert the snippet. -->
<Shortcut>row2</Shortcut>
<!-- The set of snippet types we're dealing with - either Expansion or -->
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<!-- Now we have the snippet itself. -->
<Snippet>
<Declarations>
<Literal>
<ID>RowName</ID>
<ToolTip>Enter the Row instance name</ToolTip>
<Default>RowName</Default>
</Literal>
<Literal>
<ID>Cell1Name</ID>
<ToolTip>Enter the name for Cell 1</ToolTip>
<Default>Cell1Name</Default>
</Literal>
<Literal>
<ID>Cell2Name</ID>
<ToolTip>Enter the name for Cell 2</ToolTip>
<Default>Cell2Name</Default>
</Literal>
</Declarations>
<!-- Sepecify the code language and the actual snippet content. -->
<Code Language="CSharp" Kind="any">
<![CDATA[
var $RowName$ = new HtmlTableRow();
var $Cell1Name$ = new HtmlTableCell();
var $Cell2Name$ = new HtmlTableCell();
$RowName$.Cells.Add($Cell1Name$);
$RowName$.Cells.Add($Cell2Name$);
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Затем я создал этот файл "манифеста" (.vscontent):
<?xml version="1.0" encoding="utf-8" ?>
<VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005" >
<Content>
<FileName>HtmlTableRowWithTwoCells.snippet</FileName>
<DisplayName>Inserts a 2-Cell HTML Table Row</DisplayName>
<Description>Inserts a 2-Cell Row to be added to an HtmlTable</Description>
<FileContentType>Code Snippet</FileContentType>
<ContentVersion>2.0</ContentVersion>
<Attributes>
<Attribute name="lang" value="csharp"/>
</Attributes>
</Content>
</VSContent>
Я сжал эти два файла вместе, переименовал расширение из.zip в.vsi, дважды щелкнул его и установил в папку "Мои фрагменты кода", выполнив следующие действия:
И это указывает, что фрагмент был установлен в разумном месте:
Тем не менее, когда я пытаюсь добавить фрагмент кода в VS, единственными категориями, которые я вижу, являются следующие (без "My Code Snippets"):
Когда я выбираю Инструменты> Диспетчер фрагментов кода..., я могу перейти к Visual C# > Мои фрагменты кода, но он пуст.
Когда я использую кнопку "Импорт" Диспетчера фрагментов кода и перехожу к местоположению фрагмента и пытаюсь добавить файл фрагмента, я получаю " Выбранные файлы фрагментов недействительны ".
Почему он говорит мне, что он успешно установлен, когда он, очевидно, не (или где он прячется)? Какой огненный обруч я пренебрег, чтобы катапультироваться сам?
Возможно, проблема в "странном" имени файла "манифеста"? ".vscontent" мне кажется странным, но именно об этом говорится в статье, упомянутой выше. Возможно, это было просто из-за недосмотра, и это действительно должно быть [snippetName].vscontent?
ОБНОВИТЬ
По всей видимости, присвоение имени файлу "manifest" *.vscontent"не является проблемой. Может быть, это проблема, но это не проблема, потому что я назвал его так же, как файл.snippets (за исключением расширения), прошел установку процесс, и получили те же точные результаты: кажущийся успех, фактическая деморализация.
Кстати, по умолчанию при выборе категории, в которую нужно поместить фрагмент, диспетчер фрагментов кода устанавливает флажок "Инструменты Microsoft Visual Studio для приложений 2005 > Мои фрагменты кода". Я ранее снял галочку с этого и поставил галочку в самом верхнем "Моем фрагменте кода"; на этот раз я сохранил выбор по умолчанию, плюс мое предпочтительное местоположение / категория плюс "Visual C#"
Но, увы и анон, единственная категория тех, которые, по-видимому, отображаются через Ctrl+K, X в VS, - это C#, и ожидаемый ярлык ("row2") не появляется в раскрывающемся списке фрагмента.
1 ответ
Вот более простой способ (и, как бонус, он работает):
Загрузите дизайнер фрагментов:
Напишите код прямо в Visual Studio:
var RowName = new HtmlTableRow();
var Cell1Name = new HtmlTableCell();
var Cell2Name = new HtmlTableCell();
RowName.Cells.Add(Cell1Name);
RowName.Cells.Add(Cell2Name);
Щелкните правой кнопкой мыши и выберите "Экспортировать как фрагмент"
Это помещает код в конструктор фрагментов кода. Вот как это выглядит после установки нескольких свойств и выбора частей кода, которые можно заменить:
Это довольно просто - наверняка превосходит "старомодный" способ, которым я пытался (что было бы хорошо, если бы это работало).
Все, что мне нужно было сделать, - это щелкнуть правой кнопкой мыши элементы кода, которые я хотел заменить при добавлении нового фрагмента, установить свойства ярлыка и описания фрагмента в обозревателе решений, сохранить его и вуаля!
Теперь, нажимая Ctrl+K, X в VS, вы видите фрагмент в "My Code Snippets" вместе с его описанием и ярлыком:
Выбор этого добавляет фрагмент с выделенными строками замены: