vim-jetpack icon indicating copy to clipboard operation
vim-jetpack copied to clipboard

feat: pkg.config

Open uga-rosa opened this issue 2 years ago • 9 comments

uga-rosa avatar Oct 05 '22 14:10 uga-rosa

ありがとうございます。この場合、optが設定されていないとき 510行目付近で continue実行されてしまい、configの有無に関係なく 読み込まれてい、またconfigに対する autocmdが実行されないと思われます。

まずテストの追加をお願いします。その後, テストを通過するためにどうすればよいか議論しましょう。 よろしくお願いします。

tani avatar Oct 05 '22 15:10 tani

588行目で plugin.opt = true してますが、これだとまずいですかね?packerとの互換機能なのでこっちで処理していいかなと思ったのですが テスト了解です

uga-rosa avatar Oct 05 '22 15:10 uga-rosa

opt=trueしてましたね。見落としてました。OKだと思います。

tani avatar Oct 05 '22 15:10 tani

うーん、この書き方だとインストールされる前に次の処理に行っちゃうみたいですね。

uga-rosa avatar Oct 06 '22 13:10 uga-rosa

通ったけどVimEnter発行されてるんですかねこれ

uga-rosa avatar Oct 06 '22 13:10 uga-rosa

ありがとうございます. v:vim_did_enter によって発行の有無が確認できますね. そこの確認もお願いできますでしょうか?ありがとうございます.

tani avatar Oct 07 '22 06:10 tani

suiteの中で登録したautocmdが発行されたかどうかってどこに書けばいいんでしよう…?

uga-rosa avatar Oct 07 '22 15:10 uga-rosa

requireが失敗しているということは、インストールできてないってことですよね。どうしてだろう

uga-rosa avatar Oct 14 '22 10:10 uga-rosa

そもそもpacker styleのテストがなかったので足しましたが、これが通ってませんね。

uga-rosa avatar Oct 15 '22 08:10 uga-rosa

ありがとうございます。 package_root の値が packer.nvim の非互換なので、どうしましょうか ...

tani avatar Oct 26 '22 11:10 tani

~~packer.initで設定するのですが、jetpack.initって名前使うのはどうかなあと思いまして。 記法はお任せしますが~~ おっと勘違い。階層違うんですね 他の大半の設定は対応できませんし、ここは互換切ってもいい気はします。そうすると名前も変えた方が良いでしょうが

uga-rosa avatar Oct 26 '22 11:10 uga-rosa

一晩考えさせてください。他の部分はOKです。すばらしい仕事ありがとうございます。

tani avatar Oct 26 '22 11:10 tani

setup(ソース前に読み込む設定)も追加したいんですが、PR分けた方がいいでしょうか?

uga-rosa avatar Oct 26 '22 11:10 uga-rosa

そろそろ考え固まったでしょうか。。。?

uga-rosa avatar Oct 29 '22 07:10 uga-rosa

すみません。体調ダウンしてておくれました! 対応します。

tani avatar Oct 29 '22 07:10 tani

まず、setupについては、すでに paq.nvim対応のために追加しているので、名前空間を分けましょう。 別のプルリクエストでお願いします。以下のような形でどうでしょうか?

require('jetpack.packer').setup { ... }
require('jetpack.packer').startup { ... }
require('jetpack.paq').setup { ... }

tani avatar Oct 29 '22 08:10 tani

package_root については、やはり公式と揃えたいので、 fnamemodifyでディレクトリを適宜調整する処理を挟んでいただけますか?

tani avatar Oct 29 '22 08:10 tani

あー、packerのsetupはconfigと同様のuseで使うフィールド名です。読み込むタイミングが違うやつ。なので名前空間は問題ないですかね。PRは分けます。 packer.initの場所は今ので良いですか?変えた方が?

uga-rosa avatar Oct 29 '22 08:10 uga-rosa

なるほど。名前空間を汚染しないこと承知しました。ご説明ありがとうございます。 PR分けていただけると便利なのでお願いします。

今後さらに互換性を高めるためには上記のように分けたほうが、 より安心して機能追加できるので分けていただけますか?

tani avatar Oct 29 '22 08:10 tani

準備できたのでレビューお願いします。

uga-rosa avatar Oct 29 '22 11:10 uga-rosa

すっかり忘れてました。 nvim-web-deviconsでもplugin/*.vimあるから発火してるのか

uga-rosa avatar Oct 29 '22 12:10 uga-rosa

あ、大丈夫そう? > https://neovim.io/doc/user/autocmd.html uga-rosaさんの需要が満せるか、lua系でもテストしてみていただけますか?

tani avatar Oct 29 '22 12:10 tani

lua/以下はplugin/以下と違って自動読み込みされないのでそっちが問題ですね。autoloadに近い よさげなプラグイン調べて試してみます。

uga-rosa avatar Oct 29 '22 12:10 uga-rosa

度重なる仕様要求すみません。よろしくお願いします。 協力ありがとうございます。心強いです。

tani avatar Oct 29 '22 12:10 tani

ちゃんと(?)落ちました。 イベント設定されてるものは対処できるでしょうが、手動packaddには対応できない気が、、、いいアイデアありますかね

packer.nvimで試したけど手動packaddのconfigは対応してないですね!無視していいかも

uga-rosa avatar Oct 29 '22 12:10 uga-rosa

グローバルにrequire上書きすることで、requireした時に発火するようにハックしたことがあります。流石に邪悪なので、取り下げた案でしたが、もはや致し方なしですかね。packerはどうしているのでしょうか?

tani avatar Oct 29 '22 12:10 tani

packer.load読んでみましたが、こういうのを作ってpackaddの代わりに使うことで対応してますね

function! jetpack#load(pkg_name) abort
  if !has_key(s:packages, a:pkg_name)
    return
  endif
  let pkg = s:packages[a:pkg_name]
  execute 'silent! packadd' a:pkg_name
  if pkg.config !=# ''
    execute pkg.config
  endif
endfunction

setup対応も楽そうなのでこの方針で今書いてます。

uga-rosa avatar Oct 29 '22 12:10 uga-rosa

ご教示くださりありがとうございます。 テスト追加も検討してくださると嬉しいです。 よろしくお願いします。

tani avatar Oct 29 '22 13:10 tani

これでどうでしょう

uga-rosa avatar Oct 29 '22 13:10 uga-rosa

コミット混ぜちゃったので再push ちゃんと通ってますね。これで大丈夫そうかな

uga-rosa avatar Oct 29 '22 13:10 uga-rosa