These are chat archives for zplug/zplug

2nd
Feb 2016
Naoki Mizuno
@NigoroJr
Feb 02 2016 01:36

拡張性・機能性という面では neobundle ですね。

なるほど。実は私も「vim-plugのような」と説明されている反面拡張性を重視しているなーと感じていました。

と言っても現状パイプによる記法があるためこれは廃止したい

これはneobundleのように dependsafter のようなものを導入するということでしょうか?それとも依存関係は niceif で全て処理するということでしょうか?

拡張性は飛躍しますが zsh スクリプトを書く必要性が出てくるため

確かにその通りですね。

ログインシェルが zsh でなくとも、/bin/zsh さえインストールされていれば zplug を使えるような

私はadmin権限がなくて/bin/zshもないサーバーには自前で~/usrにzshをインストールして、.bash_profileでexec zshしてますw しかしそのような機能があれば便利かもしれませんね。

そういえば関係ない質問なのですが、.zshrc内でプラグインの設定の変数を設定するときは export FOO=bar したほうがいいのか、 FOO=bar のようにした方がいいのかどっちがベストプラクティス的に正しいんですか?

Naoki Mizuno
@NigoroJr
Feb 02 2016 01:43
今コミット見ました。 on を推奨するということですね。
Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 01:43

これはneobundleのように depends や after のようなものを導入するということでしょうか?それとも依存関係は nice と if で全て処理するということでしょうか?

現状 READONLY な on タグを開放して on:"b4b4r07/enhancd" と言った具合に手動で設定してもらいます(先ほど廃止 commit を push しました)。未定ですが、 neobundle などの実装も参考にしつつ on_cmd なんかも取り入れたら if:"(( $+commands[cmd] ))" を書かなくていいので楽かなとかも考えています。

.bash_profileexec zsh してます

なるほど。bash 向けのサポートはとりあえず後回しかなと考えてます。

そういえば関係ない質問なのですが、

ユーザに設定してもらうなら export でしょうか。

結局 source してしまうと export するしないにかかわらず、そのシェルではグローバル変数として扱われてしまいますね。サブシェルにも用いたいなら export しています。
Naoki Mizuno
@NigoroJr
Feb 02 2016 01:57

on_cmd なんかも取り入れたら

それは便利そうです。その線で on_pathon_funcon_var もあるといいかもしれないと思う一方で無闇にタグを増やしすぎるのもよくないという感じもします。

サブシェルにも用いたいなら export しています。

なるほど、ありがとうございました。

Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 02:06

無闇にタグを増やしすぎるのもよくない

はい、これは同意です。それも含めてタグ整理をしていく必要がありますね。github advanced search を活用して zplug ユーザの zshrc を眺めていたのですが、if:"[[ $OSTYPE == *darwin* ]]" が多かったりして。zshrc にこれがたくさん並ぶくらいならそれだったら on_OS:darwin とかできたらべんりかなと…。

as タグは短いし気に入っていたのですが、DEPRECATED をわかりやすくするために file の代わりとしては使えないかなと考えています。

未プッシュですが、astypefilerename_toofuse と実験段階で開発しています。意見ありますか?

as より type のほうが英語圏の方たちにもわかりやすいですか?
Naoki Mizuno
@NigoroJr
Feb 02 2016 02:22

あー、絵文字関連はMacのみにしたいことが多そうですからね。 on:OS:darwin はちょっとキビシイですよね :sweat_smile:

私は問題ないと思います。私も as はいいと思っているのですが、厳密にいうと zplug 'foo/bar', as:command は「 foo/bar というパッケージ(自体)をコマンドとして使う」となるので、 type の方がいいという考えも分かります。まぁ「foo/bar というパッケージの種類はコマンドである」というのはいいのかという話になりますが :sweat_drops:
分かりやすさとしてはどちらでも問題ないと思っています。私が as → type を提案したのは file → asとかぶっていたからという理由からだったので、 file → rename_to ということなら as はそのままでもいいのではないかとも思います。

Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 02:27
なるほど。as というと = を指してしまうのですね。うーん、難しいところです。現状あるタグを @NigoroJr さんが分かりやすいと思うタグにして教えてくれませんか?(他に変更する余地がありますか?)変更する参考にしたいです。
tag 名の変更は思ったよりも変更範囲が大きいため変更するなら同じタイミングが好ましいのです。
あ、zplug を @NigoroJr さんが開発するものとしてお考えください。現状を気にせず意見してくれるとありがたいです。
Naoki Mizuno
@NigoroJr
Feb 02 2016 02:38
ofusefilerename_to はぴったりの変更です。
commit に関しては、 at と同じにしてしまってもいいのでは?と思うのが正直なところです。
do はこれでいいと思いますが、強いて他の候補を挙げるなら thenrun でしょうか。
as は上述した通りです。
あとはタグ名ではないですが、 ZPLUG_SHALLOWtruefalse のため、 frozentruefalse と同じにすると良いのでは?
他は今のままで問題ないと思います。
Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 02:48

commit に関しては、 at と同じにしてしまってもいいのでは?と

branch/tag も revision を指すだけですからね…確かに。正直この分け方が実装上楽だったという言い訳がありますが。ユーザには関係のない理由なので修正しましょう :smile:
true/false は確かにそうですね。そうすると新規導入した lazy タグもこれに従うほうが良さそうですね。v1 のほうに昨日、workaround 的なコミットしましたが、v1 ではfrom:gh-r がディレクトリを作らずファイルのままのため [[ -e ]] で条件判定していたり、__zplug::load の実装がややこしいことになっています。v2 では __releases__ の実装を zplug 専用に作りましたので、それに合わせて __load__ もリファクタリングしていく予定です。そのため、lazy 含め綺麗に仕様を策定できる予定です。

Naoki Mizuno
@NigoroJr
Feb 02 2016 02:58

この分け方が実装上楽だったという言い訳がありますが。

正当な言い分です。neobundleは rev でSHAでもブランチ名、タグ名でも指定できるので、ちょっと思ったまでです。

了解しました。

ディレクトリを作らずファイルのままのため

はい、私の repos にも fzf-bin がぽつんと佇んでいます。

Naoki Mizuno
@NigoroJr
Feb 02 2016 03:05

make testが通らない件ですが、

diff --git a/test/lib/job/spinner_test.zsh b/test/lib/job/spinner_test.zsh
index abb7daf..1a8ed8d 100644
--- a/test/lib/job/spinner_test.zsh
+++ b/test/lib/job/spinner_test.zsh
@@ -3,6 +3,8 @@
 : before
 {
     source $ZPLUG_ROOT/lib/job/spinner.zsh
+    source $ZPLUG_ROOT/lib/print/print.zsh
+    source $ZPLUG_ROOT/autoload/init.zsh
     local -A zplugs
     local    expect actual
     local -i status_code

こちらのパッチを当てることで一応通るようになったのですが、不思議なのはGentoo以外の他のマシン(MacとUbuntu)ではこの変更なしでテストが通ることです…。

Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 03:07
レポートありがとうございます。もしかすると、$_ZPLUG_LIB_CALLEDprint/print が入っていないとかでしょうか?
Mac/Ubuntu で zplug2 を常用していることで make test が通ってしまうのかと思ったのですが。少なくとも :bug: のようです…
Naoki Mizuno
@NigoroJr
Feb 02 2016 03:11
$ print $_ZPLUG_LIB_CALLED
zplug/variables:core/core:job/polling:print/print:job/spinner:zplug/cache
と表示されますね。ちょっとissueにまとめてみます。
Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 03:13
ありがとうございます :coffee:
Naoki Mizuno
@NigoroJr
Feb 02 2016 03:16

あ、役に立つかは分かりませんが、 source $ZPLUG_ROOT/autoload/init.zsh のみを入れた場合、__spinner_echo__put が見つからないというエラーが一つ出ます。しかし autoload/init.zsh をsourceしないと、以下のようなエラーメッセージが表示されます。

Edit: すみません、長くなってしまったのでissueの方に貼ります。

Naoki Mizuno
@NigoroJr
Feb 02 2016 03:31
CentOSでも試してみたんですが、gitが古すぎてだめでした。1.7.1って……
Masaki ISHIYAMA
@b4b4r07
Feb 02 2016 03:41
お、本当だ。Vagrant で CentOS 立ち上げてみましたが同じくでした。更新止まりすぎですね…。どのみち test 以下はすべて見なおして刷新する予定です。骨の折れる作業ですが…
Naoki Mizuno
@NigoroJr
Feb 02 2016 03:54
分かりました。こちらでももう少し調べてみて、だめそうでしたらPR送らせてもらいます。