0

過去の簡単なカスタムフォーマットのためのいくつかのシンタックスハイライトファイルを作成しました(構文ファイルを自分のスキルに基づいて作ることができるようにビットを変更しても) )。gvimの構文がハイライトされている行の種類が異なる

今回は私が混乱していると感じ、私はいくつかの助けに感謝します。

ファイル形式は、すべての行にスペースで区切られた3つの別々の要素が含まれているテキストファイルです。「記号」(一連の英数字とハイフンを含む名前)または「文字列」(一連の任意の文字、スペースは含まれますが、パイプは含みません)。

文字列は、行の先頭または末尾にのみ使用できます。中間要素は、シンボルのみにすることができます。そして文字列は、最初の要素であれば最後にパイプで区切られ、最後の要素であれば先頭に区切られます。

しかし、行はすべての記号、文字列の最初と残りの記号、および文字列の最後と残りの記号でもあります。

文字列は、最初の要素の場合は常にパイプが続き、末尾の要素の場合はパイプの接頭辞を持つ です。

例:

すべてのシンボル

this-is-a-symbol another-one and-another 

まず文字列

This is a string potentially containing any char| symbol symbol 

最終列

symbol symbol |A string at the end of the line 

まずや文字列として最後

This is a string| now-we-have-a-symbol |And here another string 

この4つの例は、正しい書式設定で使用できる唯一の例です。

すべてのシンボルは、異なる色、最初の要素の特定の色、2番目の特定の色、3番目の要素の色を指定する必要があります。 しかし、文字列は位置に関係なく、一意の異なる色を持ちます。

パイプの文字が背景に似た色(正確には同じではない)で「淡色表示」される場合、これは大きなプラスになります。しかし、私はこれを自分で管理できると思う。

表示されていないファイルの行は、エラー(赤色の背景など)として強調表示する必要があります。

いくつかお手伝いしますか?

PS:私は私が最初に正規表現の面で必要だと思ったものよりも簡単な方法を発見した

+1

これはクレイジーフォーマットです。 (それも曖昧です。) – melpomene

+0

私はそれが役に立つ必要があるために、実用的で簡潔だと思います。それはよく定義されていて、私はそれをかなり簡単に、そして正規表現と無関係に解析できます。しかし、私はVimでそれを強調表示する構文を知りません、この文脈で私はそれが狂っていることに同意します。私はそれをやり始めることができないので... – Vasily

+1

これまでに何か試しましたか?あなたの試みを示し、あなたが難しかっている部分を記述することによって、私たちはあなたの熟練度をよりよく理解し、より正確な答えを出すことができます。それが現れたときに、あなたが要件を掲示して誰かにあなたのコードを書いてほしいと思うように見えます。 –

答えて

0

誤解を招くことができます私の例に構文強調表示の並べ替えを適用するのstackoverflow。最後に最初の要素と最後の要素を合わせる必要がありますが、どうすればそれを考えることができないのでしょうか...これは私の解決策です。具体的にはうまくいくようです。それは、フォーマットされていない行を強調表示するだけではありません。今は十分です。忍耐と注意を感謝します。

" Vim syntax file 
" Language:   ff .txt 

if exists("b:current_syntax") 
    finish 
endif 

setlocal iskeyword+=: 

syn match Asymbol /^[a-zA-Z0-9\-]*/
syn match Csymbol/[a-zA-Z0-9\-]*$/ 
syn match Astring /^.*|/
syn match Cstring/|.*$/ 

highlight link Asymbol Constant 
highlight link Csymbol Statement 
highlight link Astring Include 
highlight link Cstring Comment 

let b:current_syntax = "ff" 
関連する問題