The specific issue is that PHP snippets wonât trigger at EOF, because the selector wonât match there (the reported scope is always text.html.basic at EOF in a PHP file). Iâll fix this for the next build.
The rules for when snippet fields are cancelled arenât great from a usability POV: they appear to stick around for too long. Thereâs good reasons for why they act like they do, but itâs something I need to address. In the mean time you can press escape to cancel all the snippet fields.
Itâs coming, but in the mean time thereâs a way to create a file in a specific directory: when creating a new file via Ctrl+N, itâll save by default to the directory of the last file you used. Open a file in the directory of interest, then hit Ctrl+N, then Ctrl+S, and youâll be in the right spot.
When I first implemented it, snippets used fuzzy matching on the tab trigger. I didnât particularly like it, because I kept getting snippets unexpectedly inserted when I was just trying to complete a word. I think thereâs some justification for this: snippets already tend to have short tab triggers, and a snippet often isnât really a word completion target, but a code generation mnemonic.
For example, if I have a python function with a function called âclassifyâ, itâs likely typing cls,tab means I want to insert âclassifyâ, rather than generate a class template.