ultisnips
ultisnips copied to clipboard
Config file in a symlinked folder not properly recognized when calling UltiSnips Edit
When the .snippets filed are stored in a symlinked folder, calling :UltiSnipsEdit
returns the following error :
UltiSnips was not able to find a default directory for snippets. Do any of ['/home/user/.config/nvim', '/home/user/.vim'] exist AND contain any of the folders in g:UltiSnipsSnippetDirectories ? With default vim settings that would be: ~/.vim/UltiSnips Try :UltiSnipsEdit! instead of :UltiSnipsEdit.
The snippets themselves work just fine.
Expected behavior:
The symlinked file all.snippets
(or the file corresponding to the type of document being edited) is opened by neovim
Actual behavior: An error message appears
Steps to reproduce
- Store the config of UltiSnips in /PathToConfig/UltiSnips/all.snippets
- Create a symlink using
ln -s /PathToConfig/UltiSnips ~/.config/nvim/UltiSnips
- Launch Neovim
- Run the
:UltiSnipsEdit
command
.config/nvim/init.vim
:
"Vimplug plugins
call plug#begin()
Plug 'Sirver/ultisnips'
" Ultisnip configuration
let g:UltiSnipsExpandTrigger='<tab>' " use Tab to expand snippets
let g:UltiSnipsJumpForwardTrigger='jk' " use Tab to move forward through tabstops
let g:UltiSnipsJumpBackwardTrigger='<S-Tab>' " use Shift-Tab to move backward through tabstops
let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/UltiSnips',"UltiSnips"]
call plug#end()
- Operating System: Ubuntu 20.04
- Vim Version: NVIM 0.9.4
Upon further investigation, the error seems to be coming from this piece of code in snippet_manager.py
:
has_storage_dir = (
vim_helper.eval(
"exists('g:UltiSnipsSnippetStorageDirectoryForUltiSnipsEdit')"
)
== "1"
)
Indeed, doing a :echo exists('g:UltiSnipsSnippetStorageDirectoryForUltiSnipsEdit')
returns 0.
Adding this line to the vim/nvim fixed the issue :
let g:UltiSnipsSnippetStorageDirectoryForUltiSnipsEdit=$HOME.'/.config/nvim/UltiSnips'
That being said, the behaviour changed when creating the symlink, and I still don't understand why it stopped working. I'll dig deeper.