Как я могу найти (и восстановить, если необходимо) созданный мной фрагмент кода?

Я создал фрагмент кода (надеюсь, первый из многих), используя в основном эту статью в качестве руководства.

Казалось, работает. Вот шаги, которые я предпринял:

Сначала я создал этот файл с фрагментом кода (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" вместе с его описанием и ярлыком:

введите описание изображения здесь

Выбор этого добавляет фрагмент с выделенными строками замены:

введите описание изображения здесь

Другие вопросы по тегам