Humanity

Edit the world by your favorite way

VSCodeVim に次送ろうと思ってる PR リスト

tyru.hatenablog.com

送ったものはマージされたものの、まだやり残した事がいくつかあって、

  1. p コマンドのリファクタリング
  2. パフォーマンス改善
  3. 漢字仮名交じり文の上で w, b, e, ge を押した時に漢字、ひらがな、カタカナの区切りで止まるようにする

1 はすでにブランチを作成中だけどテストが通らない状態 2 は Vim の lazyredraw 見たく描画を必要な時にのみ行えばいいんじゃないかと計画中 3 はすでに文字のクラス (種類) を判定する処理を Vimソースコードからちまちまと JavaScript に移植したものをすでに作った (以下参照) ので、あとはこのライブラリを npmjs に publish して、VSCodeVim で使うような PR を送れば OK

github.com

(適当な日本語の文章として一番に思い付いたルイズコピペをノリで選んだけど、割と本気で良いデータだったんじゃないかという気がする…)

もちろん Vimソースコードをそのまま移植した訳じゃない。 例えば Vim は様々な文字コードをサポートしているけど、 今回は JavaScript なので文字クラスの情報を取得する対象として Unicode コードポイント (str.codePointAt(0)) だけを対象とすればいい。 そのため必要なさそうな if 文はざっくり無視したけどまだ何か見落としているんじゃないかという気はする… (テストまだ書いてない) 正直ここら辺は自分一人じゃ日本語と英語しかデータセットがなくてチェックしきれないので、とりあえず日本語で上手くいくことを確認したら VSCodeVim に PR 出して、 各国の人にそれぞれの言語で試してもらうという乱暴な解決策にしようかと思っている (もちろん既存の VSCodeVim のテストコードは全て pass した上で)。

あともう一つ重要なのが、ライセンスの問題。 Vimソースコードをそのまま移植したので、とりあえず今は Vim license をそのまま選択している。 けど Node ライブラリで Vim license はよく分からんって事で回避されそうな気がする… 正直自分も分かってない。とりあえず Vim license 同士なら確実に互換性があるだろうって事で Vim license にしてるだけ。 自分としてもライセンスが曖昧なコードを PR として送るつもりはないので、 できれば Node ライブラリでよく使われてる ISC や GitHub に多い MIT にしたい。 ただ Vim license と互換性があるのかが分からない… これは vim_dev とかで Bram に直接聞くしかない気がする (もし互換性ないって言われたらどうしよう…)。

追記:聞いてみたら、返信返ってきて大丈夫そうです。