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

:mapclear が <buffer> の補完に対応していない #1061

Closed
tyru opened this Issue Jul 30, 2017 · 21 comments

Comments

Projects
None yet
4 participants
@tyru
Member

tyru commented Jul 30, 2017

質問・報告の内容

タイトルの通りです。
:mapclear <Tab> とタイプした時に <buffer> が挿入されてほしいです。
現状では :mapclear ^I のように Tab 文字が直接挿入されてしまいます。

Vimのバージョン

8.0.0809

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 1, 2017

diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index f913b19..e91fc97 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -4223,6 +4223,17 @@ set_one_cmd_context(
 	case CMD_xunmap:
 	    return set_context_in_map_cmd(xp, cmd, arg, forceit,
 						      FALSE, TRUE, ea.cmdidx);
+	case CMD_mapclear:
+	case CMD_nmapclear:
+	case CMD_vmapclear:
+	case CMD_omapclear:
+	case CMD_imapclear:
+	case CMD_cmapclear:
+	case CMD_lmapclear:
+	case CMD_smapclear:
+	case CMD_xmapclear:
+	    return set_context_in_map_cmd(xp, cmd, arg, forceit,
+						      FALSE, TRUE, ea.cmdidx);
 	case CMD_abbreviate:	case CMD_noreabbrev:
 	case CMD_cabbrev:	case CMD_cnoreabbrev:
 	case CMD_iabbrev:	case CMD_inoreabbrev:

気づけばあとは単純作業でしたが、追試は必要かと思います。コードの周囲を見回すに現状こうなっていない理由が何かあるのかもしれないという部分は気になるところであります…。

ntak commented Aug 1, 2017

diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index f913b19..e91fc97 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -4223,6 +4223,17 @@ set_one_cmd_context(
 	case CMD_xunmap:
 	    return set_context_in_map_cmd(xp, cmd, arg, forceit,
 						      FALSE, TRUE, ea.cmdidx);
+	case CMD_mapclear:
+	case CMD_nmapclear:
+	case CMD_vmapclear:
+	case CMD_omapclear:
+	case CMD_imapclear:
+	case CMD_cmapclear:
+	case CMD_lmapclear:
+	case CMD_smapclear:
+	case CMD_xmapclear:
+	    return set_context_in_map_cmd(xp, cmd, arg, forceit,
+						      FALSE, TRUE, ea.cmdidx);
 	case CMD_abbreviate:	case CMD_noreabbrev:
 	case CMD_cabbrev:	case CMD_cnoreabbrev:
 	case CMD_iabbrev:	case CMD_inoreabbrev:

気づけばあとは単純作業でしたが、追試は必要かと思います。コードの周囲を見回すに現状こうなっていない理由が何かあるのかもしれないという部分は気になるところであります…。

@tyru

This comment has been minimized.

Show comment
Hide comment
@tyru

tyru Aug 1, 2017

Member

ありがとうございます!
試してみたのですが、:map 等と同じ補完の動作になっていると思うのですが、
:mapclear は引数として lhs や rhs などの引数は受け取らず、<buffer> ぐらいしか受け取らない(他にもあるかもしれませんが)と思うので、:mapclear <Tab> と押した時点で即座に <buffer> が補完される動作がいいと思うのですが、どうでしょうか?

Member

tyru commented Aug 1, 2017

ありがとうございます!
試してみたのですが、:map 等と同じ補完の動作になっていると思うのですが、
:mapclear は引数として lhs や rhs などの引数は受け取らず、<buffer> ぐらいしか受け取らない(他にもあるかもしれませんが)と思うので、:mapclear <Tab> と押した時点で即座に <buffer> が補完される動作がいいと思うのですが、どうでしょうか?

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Aug 1, 2017

Member

僕も昼間そこまで書いて <buffer> の様な修飾しかいらないわとなって捨てました。

Member

mattn commented Aug 1, 2017

僕も昼間そこまで書いて <buffer> の様な修飾しかいらないわとなって捨てました。

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 1, 2017

ワーオ(´ー`)難易度
set_context_in_mapclear_cmd() を書く利益があるのか、あってもパッチとして各方面に受け入れてもらえるのかがまた考えどころのようで…。

ntak commented Aug 1, 2017

ワーオ(´ー`)難易度
set_context_in_mapclear_cmd() を書く利益があるのか、あってもパッチとして各方面に受け入れてもらえるのかがまた考えどころのようで…。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Aug 1, 2017

Member

lang の message/ctype/time があるくらいなので、あってもいいと思います。

Member

mattn commented Aug 1, 2017

lang の message/ctype/time があるくらいなので、あってもいいと思います。

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Aug 1, 2017

Member

@ntak EXPAND_MESSAGESでgrepすれば、ヒントになると思います。

Member

h-east commented Aug 1, 2017

@ntak EXPAND_MESSAGESでgrepすれば、ヒントになると思います。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Aug 1, 2017

Member

おっ clear しか候補が無いのに補完できる messages さんやw

Member

mattn commented Aug 1, 2017

おっ clear しか候補が無いのに補完できる messages さんやw

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Aug 1, 2017

Member

EXPAND_MESSAGESでgrepすれば、ヒントになると思います。

8.0.0034
vim/vim@9e507ca

Member

h-east commented Aug 1, 2017

EXPAND_MESSAGESでgrepすれば、ヒントになると思います。

8.0.0034
vim/vim@9e507ca

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 1, 2017

ワーオをキメてからこっち撤退か継続かといろいろ悩みましたが、寝て起きたらどうでもよくなり、継続して取り掛かることに今決めました。疲れたら休むべき。ご支援ありがとうございますヽ(´ー`)ノ。

ntak commented Aug 1, 2017

ワーオをキメてからこっち撤退か継続かといろいろ悩みましたが、寝て起きたらどうでもよくなり、継続して取り掛かることに今決めました。疲れたら休むべき。ご支援ありがとうございますヽ(´ー`)ノ。

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 3, 2017

拡張性というものが少しわかった気がします。動作より意味合い的なものが気になるお年頃(44)。
https://gist.github.com/ntak/d3c52e35004ee2f0819444e2b24a27e2

ntak commented Aug 3, 2017

拡張性というものが少しわかった気がします。動作より意味合い的なものが気になるお年頃(44)。
https://gist.github.com/ntak/d3c52e35004ee2f0819444e2b24a27e2

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 3, 2017

と決め打ちしてしまっていますが個人的には使ったことがない mapclear に対して
<buffer> 以外に何が補完できるべきという部分に理解が進んでおりませんで、
今は <buffer> 一項目だけを補完する状態ですが、ほかに入れるべき候補は存在しますでしょうか?
いまいち頼りなくてすみません…。

ntak commented Aug 3, 2017

と決め打ちしてしまっていますが個人的には使ったことがない mapclear に対して
<buffer> 以外に何が補完できるべきという部分に理解が進んでおりませんで、
今は <buffer> 一項目だけを補完する状態ですが、ほかに入れるべき候補は存在しますでしょうか?
いまいち頼りなくてすみません…。

@tyru

This comment has been minimized.

Show comment
Hide comment
@tyru

tyru Aug 4, 2017

Member

@ntak パッチ試しました。バッチリでした!

今は 一項目だけを補完する状態ですが、ほかに入れるべき候補は存在しますでしょうか?

おそらく <buffer> 以外にないかと思います。
念のため不慣れながらも Vim のソースコードを見て、<buffer> に関しては getchar.cmap_clear() で パースされていますが、それ以外の場所で引数の文字列に参照されていなかったので、おそらくないかと思います。

Member

tyru commented Aug 4, 2017

@ntak パッチ試しました。バッチリでした!

今は 一項目だけを補完する状態ですが、ほかに入れるべき候補は存在しますでしょうか?

おそらく <buffer> 以外にないかと思います。
念のため不慣れながらも Vim のソースコードを見て、<buffer> に関しては getchar.cmap_clear() で パースされていますが、それ以外の場所で引数の文字列に参照されていなかったので、おそらくないかと思います。

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 4, 2017

よかった(´ー`)です。
あとはテストを書いて必要があればドキュメントを変更したうえで提出という流れでいきますね。

ntak commented Aug 4, 2017

よかった(´ー`)です。
あとはテストを書いて必要があればドキュメントを変更したうえで提出という流れでいきますね。

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 6, 2017

提出しました。技術の進歩とちょっとの取り残され感と…。
vim/vim#1943

ntak commented Aug 6, 2017

提出しました。技術の進歩とちょっとの取り残され感と…。
vim/vim#1943

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Aug 6, 2017

Member

@ntak 👍
ドキュメントを更新する必要があります。
(:h getcompletion():h :command-completion )

Member

h-east commented Aug 6, 2017

@ntak 👍
ドキュメントを更新する必要があります。
(:h getcompletion():h :command-completion )

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 6, 2017

そうでした。何やってるんだろう。ご指摘ありがとうございます。

ntak commented Aug 6, 2017

そうでした。何やってるんだろう。ご指摘ありがとうございます。

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 6, 2017

再提出の必要があるかと思ったら push に追従していたというのが今日のびっくりハイライトです。

ntak commented Aug 6, 2017

再提出の必要があるかと思ったら push に追従していたというのが今日のびっくりハイライトです。

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Aug 6, 2017

Member

8.0.0878 早い👍
vim/vim@cae92dc

Member

h-east commented Aug 6, 2017

8.0.0878 早い👍
vim/vim@cae92dc

@h-east h-east closed this Aug 6, 2017

@h-east h-east added the xlose/fixed label Aug 6, 2017

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Aug 6, 2017

Member

速いw

Member

mattn commented Aug 6, 2017

速いw

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Aug 6, 2017

わっほい!ヽ(´ー`)ノありがとうございました!

ntak commented Aug 6, 2017

わっほい!ヽ(´ー`)ノありがとうございました!

@tyru

This comment has been minimized.

Show comment
Hide comment
@tyru

tyru Aug 6, 2017

Member

@ntak ありがとうございました!

Member

tyru commented Aug 6, 2017

@ntak ありがとうございました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment