J'essaye de configurer une «langue personnalisée» pour la balise vim qui permettrait à la barre de balise d'être utilisée pour afficher les fichiers d'entrée Abaqus Finite Element Analysis.Barre de variables vim: configuration de la langue personnalisée
Je dupliqués des exemples des liens suivants:
http://github.com/majutsushi/tagbar/wiki
http://andrew.stwrt.ca/posts/vim-ctags/
ctags, vimwiki, vim and tagbar-plugin
http://ctags.sourceforge.net/EXTENDING.html
Ceci est la SOF tware J'utilise:
- RHEL 6.7
- vim 7.4
- Tagbar 2.6.1
- Exubérant Ctags 5,8
Exemple d'un fichier d'entrée Abaqus example.inp
** Analyst:
** Comments
** More comments
**
****************************************
** Section Name One
****************************************
*Keyword1
*KEYWORD2
**
****************************************
** Section Name Two
****************************************
*Keyword3
C'est ce que j'ai ajouté à mon fichier de configuration vim ~/.vimrc
let g:tagbar_type_AbaqusINP = {
\ 'ctagstype' : 'AbaqusINP',
\ 'kinds' : [
\ 's:Section',
\ 'k:Keyword'
\ ],
\ 'sort' : 0
\ }
J'ai créé un fichier de configuration ctags ~/.ctags
--langdef=AbaqusINP
--langmap=AbaqusINP:.inp
--regex-AbaqusINP=/^\*\*\*[\*]+\n\*\*[ \tA-Za-z]+/\3/s,Section/
--regex-AbaqusINP=/^\*[A-Za-z]+/\1/k,Keyword/
Quand j'ouvre un fichier d'entrée et alors ouvrez le tagbar rien n'est là. AbaqusINP * .inp est dans la liste lorsque j'appelle ce qui suit à partir de la ligne de commande.
$ ctags --list-maps
Ant *.build.xml
...
AbaqusINP *.inp
Lorsque je tente de créer manuellement un fichier balises je reçois les avertissements suivants pour chaque ligne où un mot-clé est trouvé.
$ ctags example.inp
ctags: Warning: example.inp:8: null expansion of name pattern "\1"
ctags: Warning: example.inp:9: null expansion of name pattern "\1"
ctags: Warning: example.inp:14: null expansion of name pattern "\1"
Le fichier de tags est créé, mais contient uniquement l'en-tête par défaut.
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /[email protected]/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //
Toute réflexion sur pourquoi ctags ne crée pas les balises pour Tagbar à utiliser? Merci de votre aide.
Mise à jour: Clarifier les expressions régulières souhaitées.
J'aimerais que les noms de section et les mots-clés soient associés à des étiquettes. J'ai essayé ces modèles dans vim et ils semblaient fonctionner correctement.
Pour l'exemple.fichier InP ci-dessus, je voudrais l'expression rationnelle des sections pour revenir:
- Nom de la section Un
Section Nom Deux
section_regex = ^\*\*\*[\*]+\n\*\*[ \tA-Za-z]+
Pour le fichier example.inp ci-dessus je voudrais l'expression rationnelle pour les mots-clés à retourner:
- Mot_clé_1
- KEYWORD2
- mot clé3
keyword_regex = ^\*[A-Za-z]+
idée au hasard: essayez d'éviter les motifs multi-lignes – Vitor
Pourriez-vous nous montrer ce que vous essayez de faire correspondre et capturer avec vos regex? De plus, vous n'avez pas de groupes dans le modèle "Section" donc ctags aura du mal à extraire le troisième. – romainl