Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
k-takata opened this issue May 9, 2012 · 29 comments
Open

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

k-takata opened this issue May 9, 2012 · 29 comments
Labels

Comments

@k-takata
Copy link
Member

k-takata commented May 9, 2012

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

  1. {これらのコマンドはViには存在しない}
    {Vi にはこれらのコマンドは存在しない} に直そうと思います。
  2. {|+xxx| 機能を有効にしてコンパイルしたときのみ有効}
    {Vim: |+xxx| 機能を有効にしてコンパイルしたときのみ有効} にでも直すのがよいでしょうか。
    それともそのままでシンタックスハイライトを効かせる方法有りますか?
    ({コンパイル時に |+xxx| 機能が...} という表記の部分もある。)
  3. 訳注の表記(quickref.jaxの誤記?) #31 で修正した、{訳注: ...}
    シンタックスハイライトを効かせる方法有りますか? ({Vi m が気持ち悪い #7 と同じ方法?)
k-takata added a commit that referenced this issue May 9, 2012
@koron
Copy link
Member

koron commented May 9, 2012

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

@k-takata
Copy link
Member Author

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

@koron
Copy link
Member

koron commented Jun 8, 2012

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

@mattn
Copy link
Member

mattn commented Jun 8, 2012

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
Copy link
Member

mattn commented Jun 8, 2012

理想郷

@mattn
Copy link
Member

mattn commented Jun 8, 2012

めざせ愛生会病院!

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

@koron
Copy link
Member

koron commented Jun 8, 2012

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

@thinca
Copy link
Member

thinca commented Dec 25, 2012

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

@mattn
Copy link
Member

mattn commented Dec 25, 2012

するかどうかの採決

@koron
Copy link
Member

koron commented Dec 25, 2012

すべき。

@thinca
Copy link
Member

thinca commented Dec 25, 2012

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

@thinca
Copy link
Member

thinca commented Dec 25, 2012

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

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

これでどうでしょ。

@tyru
Copy link
Member

tyru commented Dec 29, 2012

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

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

@thinca
Copy link
Member

thinca commented Dec 29, 2012

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

@tyru
Copy link
Member

tyru commented Dec 29, 2012

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

@thinca
Copy link
Member

thinca commented Jan 16, 2013

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

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

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

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

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

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

@h-east
Copy link
Member

h-east commented Jan 17, 2013

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

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

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

誤爆箇所更に増えそう。

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

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

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

@h-east
Copy link
Member

h-east commented Jan 17, 2013

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

syn match helpSpecial ~

な行がない。

@thinca
Copy link
Member

thinca commented Jan 17, 2013

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

@h-east
Copy link
Member

h-east commented Jan 17, 2013

ありがとう。で?

@thinca
Copy link
Member

thinca commented Jan 17, 2013

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

@h-east
Copy link
Member

h-east commented Jan 17, 2013

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

@thinca
Copy link
Member

thinca commented Jan 17, 2013

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

@mattn
Copy link
Member

mattn commented Jan 17, 2013

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

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

{not ...}

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

@thinca
Copy link
Member

thinca commented Jan 17, 2013

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

@mattn
Copy link
Member

mattn commented Jan 17, 2013

改行だけ心配

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

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

@thinca
Copy link
Member

thinca commented Jan 17, 2013

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

@mattn
Copy link
Member

mattn commented Jan 17, 2013

重くもなる

@thinca
Copy link
Member

thinca commented Jan 17, 2013

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants