Я использую VIM в качестве своего текстового редактора, и я редактирую много файлов WSDL и XML.
Файлы WSDL имеют раздел XSD. Действительно ли там некоторый VIM является плагином, который я могу использовать для пересечения типов XSD? т.е. если у меня есть следующая строка, и каре - то, где '|' знак:
<xsd:element minOccurs="0" name="FooName" type="Magic|FooType"/>
и я нажимаю Ctrl+Alt+Foo (или некоторая другая волшебная комбинация), это получит меня к определению MagicFooType, т.е.:
<xsd:complexType name="MagicFooType">
Я не мог найти, как использовать ctags для этого и всех других плагинов, которые я мог найти, для императивных языков (т.е. Java). Там некоторый плагин/сценарий должен сделать задание?
Я немного наблюдал за этой темой и сам задавался этим вопросом, поскольку я пользователь VIM и работаю с большим количеством очень больших XML файлов и связанных с ними XSD, XSLT и XQuery файлов, и все они могли бы выиграть от такого рода вещей, как я уверен, вы можете себе представить.
После некоторых исследований это можно сделать с помощью ctags, но на данный момент нет ничего, что могло бы создать файл ctags для этого. По сути, ctag выглядит следующим образом:
{tagname}<tab>{tagfile}<tab>{tagaddress}
Поскольку tagaddress - это команда режима ex, она может привести вас в любое место конкретного файла, чтобы вы попали прямо на определение.
По сути, все, что нам нужно сделать, это создать сценарий, который будет работать с WSDL (или XSD, или чем угодно) и, зная местоположение тега и файла, создавать соответствующие строки в файле ctags для отображения всех определений. Звучит как забавный и полезный небольшой проект.
Извините, что это не совсем полный ответ, но это возможно сделать с помощью ctags и даст вам надежность, которую вы ищете.
gd ("go to declaration") не знает о формате XML, но в данном случае может подойти, если предположить, что раздел XSD находится в верхней части WSDL.