vimdoc-ja
vimdoc-ja copied to clipboard
{hoge ...}形式のシンタックスハイライト
せっかくの{hoge ...}
形式でシンタックスハイライトが効いていないパターンがいくつかあります。
-
{これらのコマンドはViには存在しない}
{Vi にはこれらのコマンドは存在しない}
に直そうと思います。 -
{|+xxx| 機能を有効にしてコンパイルしたときのみ有効}
{Vim: |+xxx| 機能を有効にしてコンパイルしたときのみ有効}
にでも直すのがよいでしょうか。
それともそのままでシンタックスハイライトを効かせる方法有りますか?
({コンパイル時に |+xxx| 機能が...}
という表記の部分もある。) - #31 で修正した、
{訳注: ...}
シンタックスハイライトを効かせる方法有りますか? (#7 と同じ方法?)
関連: https://github.com/vim-jp/issues/issues/197 本体側での対応方法を検討するissue
本体は本体で対応していただくとして、2.の表記が揃っていない部分は {|+xxx| 機能を~}
の形式に揃えておこうと思います。
vim-jp/issues#197 から vimdoc-ja 内の syntax/help_ja.vim を拡張すれば良い、とわかりました。私は賛成。
vim-jp/issues#197 から転載
ヘルプタグに日本語を使う syntax/help_ja.vim の修正
scriptencoding utf-8
syn match helpVim "Vim バージョン [0-9.a-z]\+"
syn region helpNotVi start="{Vim" end="}" contains=helpLeadBlank,helpHyperTextJump
syn match helpSpecial "{[^}]\+}"
syn match helpHyperTextJump "\\\@<!|\S\+|" contains=helpBar
syn match helpHyperTextEntry "\*\S\+\*" contains=helpStar
syn match helpOption "'[^']\+'"
理想郷
めざせ愛生会病院!
参考資料: http://www.aiseikai.or.jp/
愛生会!w 初めて見たときは精神科かとおもった。
これあと残作業はなんですか? @mattn さんが書いた変更を適用するだけ?
するかどうかの採決
すべき。
しちゃっていいと思います。
あ、ちょっと気になる点が。
helpHyperTextJump
ですが、スペースなしで詰めて書かれてた場合、1行に2つ以上リンクがあるとまずい気がします。|hoge|と|bar|
みたいな。
syn match helpHyperTextJump "\\\@<!|\S\{-}|" contains=helpBar
これでどうでしょ。
そういえば関数の引数で-
を使いたいという話を @thincaさんとしたような気がするのですが、何で使いたいって話になったんでしたっけ? >@thinca
今のところ-
を使うとシンタックスハイライトされません。
func({arg-hoge} [, {opt-foo}])
単純に複数単語を使いたい時だったと思います。 ただ、それをやるなら本家側で変わってくれないと無意味なので、ここで議論してもしょうがないですね。
あーすみません、syntax/help.vim
じゃなくてsyntax/help_ja.vim
を直すissueなのですね。勘違いしました。
syn match helpSpecial "{[^}]\+}"
これなんですが、 https://github.com/vim-jp/vimdoc-ja/blob/master/doc/vi_diff.jax#L1006
オリジナルのViではコマンド "{" と "}" は "{" で止まりませんが、POSIXは
こういう所でヒットしちゃいますね。 また、ここみたいな複数行に渡る長い訳注もあるので、
syn match helpSpecial "{\_[^}]\{-}}"
こうしたいところですが、こうすると誤爆箇所更に増えそう。 確認したいんですが、この syntax の元々の目的って何でしょうか。
@thinca あけましておめでとうございます。今年もよろしくお願いします。
この syntax の元々の目的って何でしょうか。
分かりません>< たぶんオリジナルviとの違いを記述する場なのでしょうか。
誤爆箇所更に増えそう。
"{
({
の前が "
)の場合はこのsyntax対象外とするとかどうでしょう?
syn match helpSpecial "\%([^"]\zs\|^\){\_[^{}]\{-}}"
(ついでに'{~{~}~}'等括弧が入れ子になっているところは最内の括弧だけsyntaxされるようにしてみた。) My環境、これで運用してみます。
あれ?vimdoc-ja/syntax/help_ja.vim すごくシンプルになってる。
syn match helpSpecial ~
な行がない。
それは 上で @mattn さんが挙げた例 で、まだ適用されてません。
ありがとう。で?
すいません。どこかわかりにくかったでしょうか? 何がわからなかったのか教えていただけると助かります。
あー構えられちゃったー。(新年の挨拶したのにー...)ってだけです。俺たち相変わらずだね :smile:
え、構えたとはどういう… 挨拶に関してはちょっと迷ったんですが、ここでするべきことじゃないかなーと判断しました。すいません。
これ、自分で言っておきながらですが、helpSpecial じゃなくて helpNotVi が本来の目的ですね。
{これらのコマンドはViには存在しない}
は
{not ...}
のはずなので。 であればアドホックな対応でもいいかなーと思い始めてきた。 それとは別にやるなら helpSpecialJapanese で↑の入れるみたいな対応の方がよさそう。
アドホックな対応と言うのは、具体的にはシンタックス定義に {これらのコマンドは~
のような文字列を直接埋め込むってことで良いでしょうか。
日本語専用のシンタックスファイルなので、私もそれで良さそうに思います。
同じように訳注も専用のシンタックス定義で良さそうです。
改行だけ心配
{これら
の機能はViには存在しない}
こういうのがクリア出来ればいいが
任意位置の空白だと、migemo が吐くような感じの正規表現にする必要がありそうですね。 可能だけど正規表現がすごくみづらくなる。
重くもなる
確かにそれもありますね。