tyru / chdir-proj-root.vim

Change directory to project root. (NO LONGER MAINTAINED)
2 stars 0 forks source link

プロジェクトルートの定義をカスタマイズできるようにして欲しい #1

Open thinca opened 10 years ago

thinca commented 10 years ago

rooter.vim の設定方法でいい感じになりそうな予感です。

let g:rooter_patterns = ['Rakefile', '.git/']

見つかったファイルやディレクトリのある位置が root って感じらしいです。

tyru commented 10 years ago

今回の @thinca さんの要望は「ユーザー側でパターンをカスタマイズできるようにしてほしい」って意図で合ってますか?

ちなみにRakefileと.gitについてはVital.Prelude.path2project_root()側で対応済みなので検出は現状でもできます。 https://github.com/vim-jp/vital.vim/commit/0d9c8996521eaff2054358c48fa17cd303a21d25

thinca commented 10 years ago

あ、そのコードは例です。rooter.vim の README から引用しました。

tyru commented 10 years ago

あ、そのコードは例です。

はい、それは分かってるのですが、具体的に @thinca さんが何を求めてるのかちょっと分かってない状態です… グローバル変数とかで検出パターンを変えたいって話だと思ったのですが、これって提案なのか要望どちらでしょう?

thinca commented 10 years ago

要望です。 具体的な例を挙げると、VCS でまだ管理されていない Vim プラグインのプロジェクトを autoload/doc/ で検出して root に移動したいです。

tyru commented 10 years ago

なるほど、確かにそれは良さそうですね。 やっぱhook出来るようにした方が良さそうだなぁ。 ちなみに、ほぼVital.Preludeの方を直すことになりそうです。 2014/09/08 0:23 "thinca" notifications@github.com:

要望です。 具体的な例を挙げると、VCS でまだ管理されていない Vim プラグインのプロジェクトを autoload/ や doc/ で検出して root に移動したいです。

— Reply to this email directly or view it on GitHub https://github.com/tyru/chdir-proj-root.vim/issues/1#issuecomment-54749843 .

tyru commented 10 years ago

hook出来るようにするとして、既存の判定の結果をどのように扱うかも問題ですね。ふーむ。良い案あったら教えて下さい(他人任せ)。

tyru commented 10 years ago
  1. Vital.Prelude.path2project_root() の判定を外部からinject可能にしたメソッドを作る
  2. Vital.Prelude.path2project_root() はそれを使う
  3. 1で作成する関数をchdir-proj-rootでは使う

1の実装はこんな感じで。

引数: {'git': 1} ←gitリポジトリのみを検出するよう指定する 返り値: [1, 'git'] ←gitリポジトリが検出された事を示す

thinca commented 10 years ago

返り値に肝心の root のパスがないようですが…。

tyru commented 10 years ago

oh...