Ярлык для фрагмента кода VS2010 не отображается

Я создал фрагмент кода в VS2010. Когда я начинаю печатать, он не отображается как ярлык. Я назвал это propnch.

Он доступен, когда я использую Ctrl-K, Ctrk-X, но когда я просто начинаю набирать prop ... он не отображается как опция.

Я где-то пропустил какую-то настройку?

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

Изменить: снимки экрана

Я вижу свой фрагмент с помощью Ctrl-K, Ctrl-X (он становится серым, когда я ctrl-PrtScn, чтобы сделать снимок экрана)

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

Но это не отображается с другими ярлыками фрагментов.

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

Код фрагмента находится здесь (взят из этого руководства) и находится в папке «Documents \ Visual Studio 2010 \ Code Snippets \ Visual C # \ My Code Snippets».

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
    <Header>
        <Title>propnch</Title>
        <Shortcut>propnch</Shortcut>
        <Description>Code snippet for property and backing field and ensure 
  that it invokes INotifyPropertyChanigng and INotifyPropertyChanged</Description>
        <Author>Abhishek</Author>
        <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
        </SnippetTypes>
    </Header>
    <Snippet>
        <Declarations>
            <Literal>
                <ID>type</ID>
                <ToolTip>Property type</ToolTip>
                <Default>int</Default>
            </Literal>
            <Literal>
                <ID>property</ID>
                <ToolTip>Property name</ToolTip>
                <Default>MyProperty</Default>
            </Literal>
            <Literal>
                <ID>field</ID>
                <ToolTip>The variable backing this property</ToolTip>
                <Default>myVar</Default>
            </Literal>
        </Declarations>
        <Code Language="csharp"><![CDATA[

private $type$ $field$;

public $type$ $property$
{
    get 
    { 
        return $field$;
    }
    set 
    { 
        this.OnPropertyChanging("$property$");
        $field$ = value;
        this.OnPropertyChanged("$property$");
    }
}
$end$]]>
        </Code>
    </Snippet>
</CodeSnippet>


person big_tommy_7bb    schedule 20.04.2011    source источник
comment
Вы можете добавить снимки экрана, нажав на кнопку с изображением прямо над полем редактирования.   -  person JaredPar    schedule 20.04.2011
comment
Можете ли вы опубликовать свой .snippet? Я успешно скопировал фрагмент с именем propnch, и он отлично работает.   -  person p.campbell    schedule 20.04.2011
comment
Привет, я добавил скриншоты и фрагмент кода.   -  person big_tommy_7bb    schedule 21.04.2011


Ответы (7)


Оказывается, это недостаток дизайна редактора xml в VS2010. В редакторе C # вы просто набираете ярлык и нажимаете вкладку. В редакторе xml требуется еще два нажатия клавиш.

Цитата из документации:

To insert snippets using the shortcut name
    1. Position the cursor where you want to insert the XML snippet.
    2. Type < in the editor pane.
    3. Press ESC to close the IntelliSense complete word list.
    4. Type the shortcut name of the snippet, and press TAB to invoke the XML snippet.
person Oliver    schedule 10.09.2012
comment
Я не понимаю, почему я дал этот ответ, касающийся XML intellisense, поскольку вопрос касается intellisense C #. 4 года назад - я, о чем ты думал? - person Oliver; 18.08.2016
comment
Тем не менее, спасибо вам, 4-х летней давности! Вы спасли меня! - person Varvara Kalinina; 02.11.2016
comment
@Oliver, это был единственный подходящий ответ, который я нашел для моей проблемы с XML IntelliSense и сниппетами. Спасибо! - person Attila Antal; 18.02.2020

Судя по скриншотам, у вас установлен ReSharper, который переопределяет поведение VS IntelliSense. Вы можете либо отключить переопределение Resharper, либо просто добавить прямо в него новый LiveTemplate. Подробнее здесь:

http://www.jetbrains.com/resharper/webhelp/Templates__Applying_Templates__Inserting_Imported_Code_Snippets.html

В моем случае я просто добавил новый шаблон ReSharper:

private $type$ _$loweredProperty$;

public $type$ $property$
{
    get { return _$loweredProperty$;}
    set 
    {
        if (_$loweredProperty$ == value) return;
        _$loweredProperty$ = value;
        OnPropertyChanged("$property$");
    }
}

и это работает даже лучше: вам нужно ввести только два слова - тип и название свойства. Поле поддержки появится с опущенной первой буквой. Вы должны установить "$ loweredProperty $" на нередактируемый макрос и указать его на $ property $. Это всего лишь пара щелчков мышью в редакторе шаблонов.

person Vlad Ogay    schedule 27.06.2012
comment
Спасибо, что мне очень помогло. Resharper спрятал фрагмент testm (который создает новый метод тестирования). Однако теперь мне нужно нажимать Ctrl + J каждый раз, когда я хочу использовать testm. Есть ли способ вернуть определенные фрагменты в intellisense? - person buddybubble; 17.10.2013

Слишком поздно, чтобы понять, но все просто: вам не хватало </CodeSnippets> в конце.

person zanlok    schedule 13.05.2011
comment
Я думаю, это могла быть ошибка копирования и вставки. У меня такая же проблема с парой фрагментов кода, и конечный тег не является причиной. - person Randy Eppinger; 21.06.2011
comment
Я проверил это с закрытием в своем ответе. Он не работал с текстовым текстом, который вы ввели выше, и с моими исправлениями он работал нормально, так что, похоже, это была проблема. - person zanlok; 23.06.2011
comment
У меня такая же проблема с фрагментами, созданными в редакторе фрагментов, закрывающий тег есть, должна быть другая проблема - person Grant Crofton; 13.07.2011
comment
@grant - попробуйте задать новый вопрос. как указано, мой ответ действительно решает проблему в этом случае. - person zanlok; 19.07.2011

CTRL + K + X

или Щелкните правой кнопкой мыши на кодовой странице, чтобы увидеть фрагмент

щелкните правой кнопкой мыши и запустите intellisense в Visualstudio

person Eldho    schedule 05.01.2013

Зайдите в Расширения и обновления Visual Studio, затем нажмите вкладку Онлайн и введите поисковый запрос Bootstrap.

Установите следующие пакеты, чтобы включить intellisense

  1. Пакет Bootstrap
  2. Пакет фрагментов начальной загрузки
person vibs2006    schedule 12.05.2016

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

C: \ Users \% user% \ Documents \ Visual Studio 2015 \ Code Snippets \ XML \ My Xml Snippets \

Для добавления одного из них в документ необходимо вызвать контекстное меню фрагмента, нажав ctrl + K, ctrl + X. Ваши фрагменты будут в «Мои фрагменты XML».

person trueboroda    schedule 29.06.2016

Это может произойти немного поздно, но если вы отлаживаете программу, CTRL K + CTRL X не будет работать. Прекратите отладку вашей программы и попробуйте снова. он работал у меня в VS 2013 и без Resharper.

person apereira    schedule 22.06.2016