6
votes

Traversal XSD dans Vim

J'utilise Vim comme éditeur de texte et je modifie beaucoup de fichiers XML et WSDL.

Les fichiers WSDL ont une section XSD. Y a-t-il un plugin VIM que je peux utiliser pour traverser les types XSD? C'est-à-dire que si j'ai la ligne suivante et que le caret est l'endroit où le '|' signe est: xxx

et j'appuyez sur CTRL + ALT + FOO (ou un autre combo magique), cela me permettra de me donner la définition de Magicfootype, c'est-à-dire: < PRE> XXX

Je n'ai pas pu trouver comment utiliser CTAG pour cela et tous les autres plugins que je pouvais trouver sont destinés aux langues impératives (c.-à-d. Java). Y a-t-il un peu de plugin / script pour faire le travail?


1 commentaires

Ne fermez pas comme les questions Vim / Emacs sont un matériau approprié pour SO - meta.stackexchange.com/questions/25925/vim-questions-so-s u . De plus, la réponse à cette question nécessitera des scripts VIM car il n'ya pas de moyen par défaut de faire ce que l'OP demande.


3 Réponses :


2
votes

GD ("Go to Déclaration") n'est pas au courant du format XML, mais peut faire le travail dans ce cas, en supposant que la section XSD est en haut de la WSDL.


1 commentaires

Merci, un peu mieux que de rechercher manuellement le nom du type, mais comme vous l'avez dit, il n'est pas au courant de XML / XSD et gênant d'utiliser des fichiers volumineux.



2
votes

J'ai regardé ce fil pendant un peu et je me demandais moi-même comme je suis un utilisateur VIM et travaillez avec beaucoup de très grands fichiers XML et associé aux fichiers XSD, XSLT et XQUERY, qui pourraient bénéficier de ce type de Thing, comme je suis sûr que vous pouvez imaginer.

Après quelques recherches, cela peut être fait avec CTAGS, mais il n'y a rien pour le moment qui créera le fichier CTAGS pour cela. Essentiellement, un CTAG ressemble à ceci: xxx

car la commande TagAddress est une commande EX Mode, il peut vous emmener n'importe où dans un fichier particulier à terres sur la définition.

Fondamentalement, tout ce que nous aurions besoin de faire est de créer un script qui fonctionnerait via le WSDL (ou XSD, ou autre) et, en connaissant l'emplacement de la balise et du fichier, créez les lignes appropriées dans un fichier CTAGS pour mapper tous. les définitions. Cela ressemble à un petit projet amusant et utile.

Désolé que ce n'est pas une réponse complète, mais il est possible de faire avec des CTAG et vous donnera la robustesse vous et la recherche de vous et de rechercher.


3 commentaires

Malheureusement, il semble le moyen le plus pratique. Eh bien, qui sait, peut-être cet été entre deux autres projets :) Si je vais y assumer cela dans 1 mois, souhaitez-vous collaborer?


Je serais heureux de oui. En fait, j'en ai déjà discuté avec quelques-uns de mes collègues et nous pensons tous que ce serait une bonne idée. N'hésitez pas à me contacter hors ligne et nous pourrions peut-être discuter des idées de collaboration.


Je ne peux pas voir votre adresse e-mail et je ne trouve aucune autre méthode de communication personnelle sur donc, alors envoyez-moi un email à maayan@maayank.com (ou laissez-le ici, tout ce qui vous convient :)



3
votes

Ceci est relativement facile à réaliser avec CTAGS. J'utilise Vim exclusivement pour l'édition XSD et en combinaison avec des CTAG Exuberant ( http://ctags.sourceforge.net/ ) Cela fonctionne très bien pour moi.

Parce que EXUBERANT CTAGS ne prend pas en charge XSD hors de la boîte, vous devez générer une définition de langue personnalisée.

J'utilise le fichier ci-dessous comme . dans mon projet XSD. Après avoir exécuté la commande CTAGS dans la racine du projet, je peux utiliser la navigation par balise VIM standard ( Ctrl - [ pour suivre et Ctrl-o pour le dos) pour passer aux définitions. < / p>

Pour obtenir Vim pour ramasser des fichiers de balises dans des répertoires parent, j'utilise l'extrait suivant dans mon .vimrc xxx

mettre ceci Dans .CTAGS dans la racine de votre projet. xxx


0 commentaires