vimdoc-ja icon indicating copy to clipboard operation
vimdoc-ja copied to clipboard

{hoge ...}形式のシンタックスハイライト

Open k-takata opened this issue 12 years ago • 29 comments

せっかくの{hoge ...}形式でシンタックスハイライトが効いていないパターンがいくつかあります。

  1. {これらのコマンドはViには存在しない}
    {Vi にはこれらのコマンドは存在しない} に直そうと思います。
  2. {|+xxx| 機能を有効にしてコンパイルしたときのみ有効}
    {Vim: |+xxx| 機能を有効にしてコンパイルしたときのみ有効} にでも直すのがよいでしょうか。
    それともそのままでシンタックスハイライトを効かせる方法有りますか?
    ({コンパイル時に |+xxx| 機能が...} という表記の部分もある。)
  3. #31 で修正した、{訳注: ...}
    シンタックスハイライトを効かせる方法有りますか? (#7 と同じ方法?)

k-takata avatar May 09 '12 12:05 k-takata

関連: https://github.com/vim-jp/issues/issues/197 本体側での対応方法を検討するissue

koron avatar May 09 '12 23:05 koron

本体は本体で対応していただくとして、2.の表記が揃っていない部分は {|+xxx| 機能を~} の形式に揃えておこうと思います。

k-takata avatar May 11 '12 13:05 k-takata

vim-jp/issues#197 から vimdoc-ja 内の syntax/help_ja.vim を拡張すれば良い、とわかりました。私は賛成。

koron avatar Jun 08 '12 01:06 koron

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            "'[^']\+'"

mattn avatar Jun 08 '12 01:06 mattn

理想郷

mattn avatar Jun 08 '12 01:06 mattn

めざせ愛生会病院!

参考資料: http://www.aiseikai.or.jp/

mattn avatar Jun 08 '12 01:06 mattn

愛生会!w 初めて見たときは精神科かとおもった。

koron avatar Jun 08 '12 02:06 koron

これあと残作業はなんですか? @mattn さんが書いた変更を適用するだけ?

thinca avatar Dec 25 '12 07:12 thinca

するかどうかの採決

mattn avatar Dec 25 '12 07:12 mattn

すべき。

koron avatar Dec 25 '12 07:12 koron

しちゃっていいと思います。

thinca avatar Dec 25 '12 07:12 thinca

あ、ちょっと気になる点が。 helpHyperTextJump ですが、スペースなしで詰めて書かれてた場合、1行に2つ以上リンクがあるとまずい気がします。|hoge|と|bar| みたいな。

syn match helpHyperTextJump     "\\\@<!|\S\{-}|" contains=helpBar

これでどうでしょ。

thinca avatar Dec 25 '12 07:12 thinca

そういえば関数の引数で-を使いたいという話を @thincaさんとしたような気がするのですが、何で使いたいって話になったんでしたっけ? >@thinca

今のところ-を使うとシンタックスハイライトされません。 func({arg-hoge} [, {opt-foo}])

tyru avatar Dec 29 '12 16:12 tyru

単純に複数単語を使いたい時だったと思います。 ただ、それをやるなら本家側で変わってくれないと無意味なので、ここで議論してもしょうがないですね。

thinca avatar Dec 29 '12 16:12 thinca

あーすみません、syntax/help.vimじゃなくてsyntax/help_ja.vimを直すissueなのですね。勘違いしました。

tyru avatar Dec 29 '12 16:12 tyru

syn match helpSpecial           "{[^}]\+}"

これなんですが、 https://github.com/vim-jp/vimdoc-ja/blob/master/doc/vi_diff.jax#L1006

オリジナルのViではコマンド "{" と "}" は "{" で止まりませんが、POSIXは

こういう所でヒットしちゃいますね。 また、ここみたいな複数行に渡る長い訳注もあるので、

syn match helpSpecial           "{\_[^}]\{-}}"

こうしたいところですが、こうすると誤爆箇所更に増えそう。 確認したいんですが、この syntax の元々の目的って何でしょうか。

thinca avatar Jan 16 '13 17:01 thinca

@thinca あけましておめでとうございます。今年もよろしくお願いします。

この syntax の元々の目的って何でしょうか。

分かりません>< たぶんオリジナルviとの違いを記述する場なのでしょうか。

誤爆箇所更に増えそう。

"{ ({の前が " )の場合はこのsyntax対象外とするとかどうでしょう?

syn match helpSpecial "\%([^"]\zs\|^\){\_[^{}]\{-}}"

(ついでに'{~{~}~}'等括弧が入れ子になっているところは最内の括弧だけsyntaxされるようにしてみた。) My環境、これで運用してみます。

h-east avatar Jan 17 '13 05:01 h-east

あれ?vimdoc-ja/syntax/help_ja.vim すごくシンプルになってる。

syn match helpSpecial ~

な行がない。

h-east avatar Jan 17 '13 05:01 h-east

それは 上で @mattn さんが挙げた例 で、まだ適用されてません。

thinca avatar Jan 17 '13 05:01 thinca

ありがとう。で?

h-east avatar Jan 17 '13 06:01 h-east

すいません。どこかわかりにくかったでしょうか? 何がわからなかったのか教えていただけると助かります。

thinca avatar Jan 17 '13 06:01 thinca

あー構えられちゃったー。(新年の挨拶したのにー...)ってだけです。俺たち相変わらずだね :smile:

h-east avatar Jan 17 '13 06:01 h-east

え、構えたとはどういう… 挨拶に関してはちょっと迷ったんですが、ここでするべきことじゃないかなーと判断しました。すいません。

thinca avatar Jan 17 '13 06:01 thinca

これ、自分で言っておきながらですが、helpSpecial じゃなくて helpNotVi が本来の目的ですね。

{これらのコマンドはViには存在しない}

{not ...}

のはずなので。 であればアドホックな対応でもいいかなーと思い始めてきた。 それとは別にやるなら helpSpecialJapanese で↑の入れるみたいな対応の方がよさそう。

mattn avatar Jan 17 '13 06:01 mattn

アドホックな対応と言うのは、具体的にはシンタックス定義に {これらのコマンドは~ のような文字列を直接埋め込むってことで良いでしょうか。 日本語専用のシンタックスファイルなので、私もそれで良さそうに思います。 同じように訳注も専用のシンタックス定義で良さそうです。

thinca avatar Jan 17 '13 06:01 thinca

改行だけ心配

                                          {これら
の機能はViには存在しない}

こういうのがクリア出来ればいいが

mattn avatar Jan 17 '13 06:01 mattn

任意位置の空白だと、migemo が吐くような感じの正規表現にする必要がありそうですね。 可能だけど正規表現がすごくみづらくなる。

thinca avatar Jan 17 '13 06:01 thinca

重くもなる

mattn avatar Jan 17 '13 06:01 mattn

確かにそれもありますね。

thinca avatar Jan 17 '13 06:01 thinca