I'm trying to use string interpolation for dynamic snippet content, as described in section 4.4 of the UltiSnips documentation. Given that there's a checkmark next to Execute vim, python and shell code in snippet in the readme of this repository while another bulletpoint makes a reference to Execute shell code with custom shabang (will not support), it is implied that string interpolation should indeed be supported by this extension.
However, as far as I can tell, none of the various interpolation modes work. I've tested this with shell, python and vimscript and I'm getting a variation of this error for each of them:
[coc.nvim]: UnhandledRejection: Vim:E121: Undefined variable: v
Error: request error on "nvim_eval" - Vim:E121: Undefined variable: v
at pX (/home/nonetallt/.config/nvim/plugged/coc.nvim/build/index.js:194:10656)
at Do.resolve (/home/nonetallt/.config/nvim/plugged/coc.nvim/build/index.js:203:2810)
at /home/nonetallt/.config/nvim/plugged/coc.nvim/build/index.js:206:1476
at Array.map (<anonymous>)
at Ac.evalCodeBlocks (/home/nonetallt/.config/nvim/plugged/coc.nvim/build/index.js:206:1445)
at gm.resolve (/home/nonetallt/.config/nvim/plugged/coc.nvim/build/index.js:249:728)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
The only change between interpolation modes is that the "Undefined variable" is whatever word follows after the backticks or exclamation mark. Here's an example snippet that causes the error above:
snippet test-vim "This is a test vim snippet"
`!v system('echo test')`
endsnippet
Another variation, this one for shell interpolation:
snippet test-shell "This is a test shell snippet"
`echo foo`
endsnippet
The shell variation results in Undefined variable: echo. I've tried these snippets with the basic UltiSnips expand command and they work correctly, just not when invoked through this plugin. I don't see this issue as being addressed very clearly despite looking through the previous issues in this repostory. I did manage to find the coc-ultisnips plugin, which might suit my purposes better. However it's still unclear to me whether this plugin is supposed to support string interpolation in snippets or not? If not, then it should addressed clearly in the readme.
Edit:
There seems to be something weird going on with the loading of the snippets. Sometimes after I've had neovim open for a longer period (and probably tinkered with the snippets file by editing and saving it), a second entry gets added to the snippet autocompletion menu. See the following picture for reference:
Here I'm working with a "namespace" snippet that uses string interpolation with vimscript. Notice how two different snippets are sourced:
ns|namespace~
"ns|namespace"~
The one without quotes works but the one with quotes errors with the expected undefined variable. For some reason, only the snippet with quotes is added whenever I open the editor.
Platform information:
Relevant plugins used:
I'm trying to use string interpolation for dynamic snippet content, as described in section 4.4 of the UltiSnips documentation. Given that there's a checkmark next to
Execute vim, python and shell code in snippet
in the readme of this repository while another bulletpoint makes a reference toExecute shell code with custom shabang (will not support)
, it is implied that string interpolation should indeed be supported by this extension.However, as far as I can tell, none of the various interpolation modes work. I've tested this with shell, python and vimscript and I'm getting a variation of this error for each of them:
The only change between interpolation modes is that the "Undefined variable" is whatever word follows after the backticks or exclamation mark. Here's an example snippet that causes the error above:
Another variation, this one for shell interpolation:
The shell variation results in
Undefined variable: echo
. I've tried these snippets with the basic UltiSnips expand command and they work correctly, just not when invoked through this plugin. I don't see this issue as being addressed very clearly despite looking through the previous issues in this repostory. I did manage to find the coc-ultisnips plugin, which might suit my purposes better. However it's still unclear to me whether this plugin is supposed to support string interpolation in snippets or not? If not, then it should addressed clearly in the readme.Edit: There seems to be something weird going on with the loading of the snippets. Sometimes after I've had neovim open for a longer period (and probably tinkered with the snippets file by editing and saving it), a second entry gets added to the snippet autocompletion menu. See the following picture for reference:
Here I'm working with a "namespace" snippet that uses string interpolation with vimscript. Notice how two different snippets are sourced:
The one without quotes works but the one with quotes errors with the expected
undefined variable
. For some reason, only the snippet with quotes is added whenever I open the editor.