私はDocBook5XMLのバンドルに取り組んでいます。これには、次のようなコンテンツが含まれていることがよくあります。
<section>
<title>This is my awesome Java Class called <classname>FunBunny</classname></title>
<para>FunBunny is your friend.</para>
</section>
ウィンドウ下部の関数ポップアップにセクションのタイトルを表示したい。次のバンドルアイテムを使用して、これを部分的に機能させています。
言語文法:
{ patterns = (
{ name = 'meta.tag.xml.docbook5.title';
match = '<title>(.*?)</title>';
/* patterns = ( { include = 'text.xml'; } ); */
},
{ include = 'text.xml'; },
);
}
スコープセレクター付きの設定/設定項目meta.tag.xml.docbook5.title
:
{ showInSymbolList = 1;
symbolTransformation = 's/^\s*<title\s?.*?>\s*(.*)\s*<\/title>/$1/';
}
これの正味の効果は、に基づくタグコンテンツを除いて、ドキュメント内のすべてのタイトル要素が一致し、関数ポップアップに表示されることです。<title></title>
symbolTransformation
他の興味深いもの(図のような)は正式なタイトルを持つ傾向があるので、これだけの機能に満足していますが、1つの問題があります。
タグの内容は、残りの言語文法title
に従って解析および認識されません。text.xml
上記の言語文法のコメントアウトされたpatterns
セクションには、この問題を修正するという望ましい効果はありません。すべてがmeta.tag.xml.docbook5.title
スコープに含まれます。
ここで欲しいものを手に入れる方法はありますか?つまり、関数ポップアップ内のtitle
要素のコンテンツ(オプションでタイトルのみ)は、パーサーによって通常のXMLコンテンツとして認識されます。section