vimdoc-ja/doc/tags-ja もdeployする
h-east opened this issue · 15 comments
これ、やってない理由なんかあるんでしたっけ?
ローカルでgit pull後に毎回 :helptagsするの忘れがち。
賛否両論ありますね。プラグインマネージャによるインストールだと、ドキュメントとしてプラグインが配布されてる場合に作者がタグ生成し忘れてたりすると git diff が出ちゃうので、プラグイン界隈では doc/tags* は同梱しないというのが一般的なんですよね。
CIで自動生成するので「タグ生成し忘れ」は発生しないし同梱してもいいかなと思っています。
いまざっくりみてたら vimdoc-ja のほうで .gitignore に指定しているんですね。
@crazymaster doc/tags-ja を含める(= vimdoc-ja の .gitignoreから外す) ことについてなにか意見はありますか?
もともとはこれか。
あるとすれば
- コントリビュータがドキュメントを修正
- git commit -a しちゃう
- tags-ja が含まれた PR がくる
とかでしょうか。
そうですね。なお僕のスタンスは「どちらでもいい」ですが、いくぶんプラグインマネージャに関する知見が多い訳ではないので slack でも意見を募集しています。
vim-jp/vimdoc-ja#21 でも同じ議論をやってたんですね。
自分はもうすっかり忘れてる。
ざっくり見ると当時は
「どっちでも良い」vs「あったらプラグインマネージャはちょっと苦労するね」
みたいな感じで、「あるほうが良い」という立場は明確ではなかった。
だったらなしにしとこう、というくらいの判断だったんだと思います。
現時点においてどうするべきかは、僕は今も「どっちでも良い」
その議論してた時ってvimdoc-ja-workingあったんでしたっけ?
ちなみにローカルでgit pull後に再度:helptagsしても内容変わらないし、タイムスタンプは変わるけど、gitは変更ファイルとみなさないです。
vim のバージョンにより出力されるタグが違うって事が起きた時にどうするかですね。
vim標準のパッケージ機能ではタグファイルを含めることを推奨してますね
:h package-create
そもそも、プラグインマネージャが 無条件 でtags-jaを更新するのどうなの?って思いました。
とりあえず、.vimrcにこんなのを書いて運用してみます。
packadd! vimdoc-ja
let docdir = filter(split(&rtp, ','), 'v:val =~# "vimdoc-ja$"')[0] . '/doc'
let doctag = docdir . '/tags-ja'
if !filereadable(doctag) || getftime(doctag) < getftime(docdir)
exec "helptags" docdir
endif(追記)
いや、:helptagsはgit pullした後に1度だけおこなえばいいので、これは.vimrcに書くべきものではないですね。
package dir下の各リポジトリを更新して、必要な処理があればおこなう関数(とコマンド)を作れよって話か。
vim標準のパッケージ機能ではタグファイルを含めることを推奨してますね
では含めることにしましょう。
(mattnさん、koronさんも「どっちでもいい」という意見なのも踏まえて)
今更ですけど、 helphelp.txt にもタグファイルは同梱するのが望ましい旨が書いてありました。
- Make a package with all the files and the tags file available for download.
Users can drop it in one of the "doc" directories and start use it.
Report this to Bram, so that he can add a link on www.vim.org.
そもそも、プラグインマネージャが 無条件 でtags-jaを更新するのどうなの?って思いました。
この問題を改善するために、まずvim-plugにPRを投げました。
junegunn/vim-plug#773
以下のいずれかの条件に一致したときに:helptagsを実行するようにしました。
- doc/{tags,tags-??x} なファイルが存在しない
- doc/{tags,tags-??x} なファイルがgit管理されていない
他のVimプラグインマネージャも改善されて欲しい👍