#1 Le 01/05/2021, à 09:51
- zephyre123
[RESOLU]Comment créé un snippet avec le plugin ultisnip
Bonjour,
J'aimerai bien créé un snippet avec le plugin ultisnip = https://github.com/SirVer/ultisnips/blo … /README.md
J'ai lu (en diagonale) la doc globalement je comprends comment ça fonctionne et comment les faire.
Le seul souci c'est que je ne sais pas ou placer les snippets dans quel dossier et comment les nommer s'il y a un nom spécifique à donner.
Pouvez vous m'aidez svp ?
Dernière modification par zephyre123 (Le 01/05/2021, à 15:38)
Hors ligne
#2 Le 01/05/2021, à 11:47
- zephyre123
Re : [RESOLU]Comment créé un snippet avec le plugin ultisnip
Bon voici ce que j'ai fais point par point :
- premièrement
crée un répertoire = snippets dans ce repertoire = ~/.vim/bundle/ultisnips
D'après la documentation :h UltiSnips-how-snippets-are-loaded ce répertoire fait partie du runtimepath (je sais pas ce que c'est)
Si j'ai bien compris c'est la ou il va chercher les snippets.
On peut le vérifier avec la commande dans vim = echo &runtimepath
- deuxièmement
J'ai créé dans ce répertoire = ~/.vim/bundle/ultisnips/snippets un fichier = html.snippets
le contenu du fichier html.snippets ci dessous :
snippet a
<a href="$1"${2: class="${3:link}"}>
$0
</a>
endsnippet
Cependant lorsque je lance un fichier html et que je fais le snippet = a + ([tab] = trigger) j'ai l'erreur suivante :
An error occured. This is either a bug in UltiSnips or a bug in a
snippet definition. If you think this is a bug, please report it to
https://github.com/SirVer/ultisnips/issues/new
Please read and follow:
https://github.com/SirVer/ultisnips/blob/master/CONTRIBUTING.md#reproducing-bugs
Following is the full stack trace:
Traceback (most recent call last):
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/err_to_scratch_buffer.py", line 18, in wrapper
return func(self, *args, **kwds)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet_manager.py", line 933, in _track_change
self._try_expand(autotrigger_only=True)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet_manager.py", line 794, in _try_expand
before, snippets = self._can_expand(autotrigger_only)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet_manager.py", line 790, in _can_expand
return before, self._snips(before, False, autotrigger_only)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet_manager.py", line 671, in _snips
source.ensure(filetypes)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet/source/file/base.py", line 31, in ensure
self._load_snippets_for(ft)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet/source/file/base.py", line 53, in _load_snippets_for
self._parse_snippets(ft, fn)
File "/home/pierre/.vim/bundle/ultisnips/pythonx/UltiSnips/snippet/source/file/base.py", line 70, in _parse_snippets
raise SnippetSyntaxError(filename, line_index, msg)
UltiSnips.snippet.source.file.base.SnippetSyntaxError: Invalid line '<a href="$1"${2: class="${3:link}"}>' in html.snippets:2
Bref c'est la merde quoi !
Hors ligne
#3 Le 01/05/2021, à 12:28
- zephyre123
Re : [RESOLU]Comment créé un snippet avec le plugin ultisnip
deuxième méthode que j'ai essayé, trouvé sur stackoverflow : https://stackoverflow.com/questions/321 … s/32176638
J'ai d'abord crée le répertoire comme indiqué :
mkdir -p ~/.vim/my-snippets/UltiSnips
J'ai mis le fichier = html.snippets dans ce dossier ~/.vim/my-snippets/UltiSnips
Contenu du fichier en question :
snippet a
<a href="$1"${2: class="${3:link}"}>
$0
</a>
endsnippet
Mais lorsque je teste, c'est à dire que j'ouvre un fichier.html avec vim et que je tape en mode insertion [tab] y a rien qui se passe donc ça ne fonctionne pas.
Avez vous une idée ?
Hors ligne
#4 Le 01/05/2021, à 15:38
- zephyre123
Re : [RESOLU]Comment créé un snippet avec le plugin ultisnip
C'est bon j'ai trouvé reste plus qu'a savoir comment le paramétré un snippet
Hors ligne