Hebol
Hebol

Reputation: 111

Define when VS Code shows snippets

Is there any setting where I can define when (not) to show suggestions? Currently I am setting up VS Code for writing LaTeX and I am creating a lot of user snippets. But when I create a snippet whichs prefix starts with a non-letter character, the suggestions menu isn't coming up. For example I have the following snippet:

"rightarrow":{
    "prefix": ["->", "rarrow"],
    "body": "\\rightarrow"
},

but the suggestions menu is not showing up when typing "->". I have to press Ctrl+Space manually to bring up the menu or insert the snippet with Ctrl+P>"Insert Snippet", which makes it hard to write fast:

You can see it on this gif: Suggestion menu not showing up despite inserting the prefix

When I type the text, the suggestion menu pops up and I can hit enter to insert the snippet, but when i type "->" there is no menu that comes up, even though I typed the prefix.

I see that it makes sense that per default it is not showing, but is there a way to show suggestions then too? VS Code only shows it when the prefix starts with a letter, which limits me. Thanks for your help!

Upvotes: 0

Views: 665

Answers (2)

Hebol
Hebol

Reputation: 111

In case someone else has this problem: Another way of solving this somewhat is to assign the command "insertSnippet" to a custom key binding (I used alt+space). This always inserts the snippet if the entire prefix is typed, even if no suggestion is showing up (also when in snippet mode).

Upvotes: 0

Mark
Mark

Reputation: 180657

Okay, I found this issue which looks to be right on:

Snippet doesn't get triggered for certain tokens:

Ok. Thanks for clarifying. Quick suggestion is working on at the end of "words". What a word is can be re-defined by extensions, e.g latex say => is valid word.

[I tested it in a non-latex file where your snippet works fine without manually bringing up intellisense, that was dumb of me ;>}.]

The problem is the latex language must not use the - > characters as word separators, so when you type those characters vscode has chosen to not pop up suggestions because it thinks you may be within a word and doesn't want to constantly pop up suggestions when it doesn't know you are within a word.

By the way, apparently latex snippets provided by an extension are not treated this same way and the suggestions can pop up automatically.

I don't think there is any work-around except to make your own latex snippet extension and see if it works how you want.

Upvotes: 1

Related Questions