matchaddpos() が一部重複する pos を描画しない #966

Closed
rickhowe opened this Issue Oct 9, 2016 · 8 comments

Projects

None yet

4 participants

@rickhowe
rickhowe commented Oct 9, 2016

たとえば

call matchaddpos('Error', [[1, 1, 5], [1, 3, 5]])

のように、複数の pos が 2 カラム(2 バイト?)以上重複する場合、
後ろの位置に描画されるべき pos (この場合は [1, 3, 5]) が描画されません。
getmatches() をみると、指定した pos はすべて設定されています。

call matchaddpos('Error', [[1, 1, 5], [1, 5, 5]])

のように、1 カラムの重複ですと両方とも正常に描画されます。

7.4.648 でも 8.0 でも再現します。

@h-east
Member
h-east commented Oct 9, 2016

Vim 8.0.23 on fedora via PuTTYで正しく表示されているように見えます。

$ vim  -Nu NONE --cmd "syntax on" screen.c
call matchaddpos('Error', [[1, 1, 5], [1, 3, 5]])

matchaddpos
スクリーンショットを貼っていただくか、もう少し説明をしていただけると助かります。

@itchyny
itchyny commented Oct 9, 2016

3文字目から5文字 (正確にはbyteかな…) ハイライトされることを期待しているのではないでしょうか

@h-east
Member
h-east commented Oct 9, 2016

@itchyny I see. そうか、リスト3つ目はカラムじゃなくてbyte長でした。Thanks!

@ichizok
Member
ichizok commented Oct 11, 2016

https://gist.github.com/ichizok/f34c9018f5e9e452d3bc78cc9026a720
col < mincol < col + len - 1 のケースが問題なのだと思います。

@ichizok ichizok was assigned by h-east Oct 11, 2016
@h-east
Member
h-east commented Oct 15, 2016 edited

@ichizok テスト私書きます。(書き終えました)

Sent a test patch.
https://groups.google.com/d/msg/vim_dev/Lrkkr3woyqM/vzgvFKt1BAAJ

@ichizok
Member
ichizok commented Oct 15, 2016

@h-east すみません、ありがとうございます。
(描画時の問題と思い込んで、テスト書けないケースだと勘違いしてました...

@h-east
Member
h-east commented Oct 15, 2016

patch 8.0.0033
vim/vim@a6c27ee

@rickhowe Issue登録ありがとうございました。
@ichizok 👍

@h-east h-east closed this Oct 15, 2016
@h-east h-east added the xlose/fixed label Oct 15, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment