Comment puis-je faire en sorte que vim affiche la classe et la méthode en cours que je modifie


15

Est-ce que quelqu'un sait s'il est possible (ou connaît un script ou plugin vim existant) qui peut créer une "barre d'état" qui montre le nom de la classe et de la méthode (ou fonction) en cours que je modifie?

J'imagine qu'il se connecterait à l'analyseur syntaxique pour le type de fichier du tampon actuel et afficherait un fil d'Ariane pour vous montrer ce que vous modifiez actuellement. Je ne connais pas assez bien Vimscript pour suggérer plus que cela, mais s'il n'y a pas déjà de bonnes solutions, je peux commencer à en pirater une, donc les suggestions par où commencer sont également les bienvenues!

Réponses:


7

Ce script place le nom de la fonction actuelle dans la barre de titre et / ou la ligne d'état. Il utilise ctags pour générer une liste de balises pour le fichier actuel et suppose que la balise précédant l'emplacement du curseur est le nom de la fonction actuelle. Puisqu'il utilise des ctags, il peut être personnalisé pour fonctionner avec différentes langues, même des fichiers texte structurés. Cela fonctionne bien dans la pratique, mais a certaines limites. Si rien d'autre, cela pourrait vous donner un point de départ pour le piratage.


6

Cela fonctionnera si vous installez les plugins de la compagnie aérienne et du tagbar . Ces deux plugins s'intègrent automatiquement et vous obtiendrez la fonction actuelle affichée dans la barre d'état. Si vous voulez avoir la hiérarchie complète des objets (par exemple classe + méthode), vous devrez configurer cela dans votre .vimrc:

let g:airline#extensions#tagbar#flags = 'f'  " show full tag hierarchy

Vous devrez peut-être configurer le fichier de balises pour la barre de balises pour identifier la position actuelle du code, si vous n'utilisez pas encore ctags. Si vous ne le savez pas encore, voici une courte introduction aux ctags .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.