Подтвердить что ты не робот

Как создать фрагмент типа "объемный с" в Visual Studio 2010?

Есть ли способ создать фрагмент "surround с" в visual studio 2010? Я знаю, как создать заменяющий тип фрагмента. Простое окружение с фрагментом может окружать блок текста гиперссылкой asp:. Подобно тому, как по умолчанию "окружающие" фрагменты могут окружать блок кода панелью asp:.

4b9b3361

Ответ 1

Посмотрите статью MSDN на создание фрагментов. Это должно дать вам хорошее начало. Когда вы создаете свой фрагмент, обязательно дайте ему SnippetType SurroundsWith, чтобы сделать фрагмент окружающего выделенного кода.

Для последней Visual Studio (в настоящее время 2017), фрагменты кода в документах Microsoft, а также Пошаговое руководство. Создание фрагмента кода.

Ответ 2

Оказывается, есть некоторые предопределенные идентификаторы, которые недостаточно хорошо документированы. В частности, для фрагментов типа SurroundWith существует идентификатор $selected $. Так, например, код для #if:

...
<Code Language="csharp">
    <![CDATA[#if $expression$ $selected$ $end$ #endif]]>
</Code>
...

Идентификатор $end $ указывает, куда поместить курсор, когда функция Surround завершена. Это действительно все, что нужно. Конечно, не забудьте включить SurroundsWith как SnippetType

Для получения дополнительных примеров попробуйте взглянуть на предопределенные фрагменты в C:\Program Files\Microsoft Visual Studio 10.0\\Snippets\1033 \.

Ответ 4

Пример и некоторые советы (на основе предыдущих ответов) для VS2017:

Пример для фрагмента XML, но я предполагаю, что это будет применяться более или менее к любому языку.

  • Вставьте код ниже в файл и сохраните его как example.snippet
  • из VS do Tools- > Code Snippet Manager, выберите Язык XML, а затем My XML Snippets
  • Нажмите "Импорт" и выберите example.snippet.
  • Нажмите "Готово" и "ОК"
  • В этот момент я перезапустил VS, но такие драконовские меры могут не потребоваться.
  • В XML файле выберите текст, который вы хотите окружить, с помощью тегов para.
  • Ctrl + K, Ctrl + S, выберите "Мои XML-фрагменты", а затем "Пример SurroundWith Snippet".

A <para> тег будет помещен перед вашим текстом и </para> после.

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

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

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Example of a SurroundsWith snippet</Title>
      <Shortcut>shortcutsdontwork</Shortcut>
      <Description>
        complete example of SurroundsWith
        will put para tag on the line above selected text
        and /para end tag on the line below selected text
        will positon the cursor immediately after the
        closing angle bracket of the end tag
      </Description>
      <Author>mikedamay - TheDisappointedProgrammer</Author>
      <SnippetTypes>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Code Language="XML">
        <![CDATA[<para>
        $selected$
        </para>$end$]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

Я ограничу свои редакционные комментарии о поведении фрагментов кода в VS2017, сказав, что реализация необычна для современной команды инструментов Microsoft. В частности, остерегайтесь заявлений о том, что делают ярлыки. Насколько я вижу, они ничего не полезят.