次のようなグラフのカスタム ファイル形式があります。
node1.link1 : node2
node1.attribute1 : an_attribute_for_node1
node2.my_attribute1 : an_attribute_for_node2
(属性名について特別なことは何もありません。属性は、ドットの左側にその値を見つけることができる場合はリンクです。node2
ファイルのどこかに で始まる行があるため、リンクもそうですnode2.<something>
)。
リンクの場合は属性値を強調表示したいと思います (したがって、node2 を強調表示したいのですが、ではありませんattribute_for_node1
)。
明らかに、この種の構文強調表示は、正しい強調表示を行うためにファイル全体を読み取る必要があるため、行全体の正規表現のみに基づくことはできません。
この種のファイル用の python パーサー ( dict の dict を提供するstring -> (string -> string)
) を既に持っていますが、python が vim 7 の構文強調表示と対話できるかどうかはわかりません。
編集 明確にするために、この例のために作成された辞書は次のとおりです。
d = { 'node1': {'link1': 'node2', 'attribute1': 'an_attribute_for_node1'}, 'node2': {'attribute2': 'an_attribute_for_node2'} }
定義により、次の場合にのみl
ノードのリンクになります。n
d[n][l] in d
名前は意味がなく、形式は構造に依存するだけで、言語キーワードはありません。node2
ノードの名前なので、最初の行で強調表示したいと思います。
より明確になったことを願っています。
誰かがアイデアを持っていますか?