Edited at

project-find-navigation つくった

More than 1 year has passed since last update.

2017.2.17 追記 ここから

メンテしません。代わりに(なると思う人は) https://atom.io/packages/narrow を使ってください。

2017.2.17 追記 ここまで

project-find-navigation

gif

Dirty hack によって、find-and-replace パッケージが提供する、project-find のナビゲーションを改善する。


これは何か?

find-and-replace は project-find を提供している。

プロジェクトの全ファイルを対象に検索出来る機能だ。


この機能自体は良いのだが、ナビゲーションに不満がある。

分かりやすいところでは、キーボード操作で、検索結果を移動できない等。

このパッケージを使うことで、project-find の 検索結果にキーボードで移動できるようになる。


おことわり

このパッケージは、大々的に、直接的に、find-and-replace が提供する内部的な変数や、関数に依存してりう。

将来、 find-and-replace のコードが変わったら動かなくなるかもしれません。

その変更内容があまりにも大きい場合は、このパッケージで追随するのを諦めるかもしれません。

そういう意味でこのパッケージは、本質的には、実験的、コンセプト証明(Proof of concept)的なものです。

project-find の検索結果のナビゲーションをどのように改善できるかという実験です。


機能

以下、このパッケージが提供する機能の概要です。

素の find-and-replace の project-find と比較しています。

アクション
素の project-find
project-find-navigation

mousedown
見つかった位置に移動して範囲選択
見つかった位置にスクロールしてフラッシュ、フォーカスは結果一覧に留まる

dblclick
N/A
見つかった位置に移動して、フラッシュ、範囲選択はしない

confirm
見つかった位置に移動して範囲選択
見つかった位置に移動して、フラッシュ、範囲選択はしない

confirm-and-continue
N/A
見つかった位置にスクロールしてフラッシュ、フォーカスは結果一覧に留まる

select-next-and-confirm
N/A
次のエントリを選択し、confirm-and-continue(オートプレビュー的な動作)

select-prev-and-confirm
N/A
前のエントリを選択し、confirm-and-continue(オートプレビュー的な動作)

activate-results-pane
N/A
検索結果一覧(results-pane) にフォーカスを変える

その他の機能


  • TextEditor 内のマッチをハイライト(decorate), 検索結果一覧を閉じると、自動でハイライトはクリアされる。

  • エントリにジャンプする際、 隣接(adjacent) Pane で開く. これは、例えば検索結果一覧のPane が左 Pane で開いていた場合は、右Paneで、ジャンプターゲットを開くという事。


キーマップ

デフォルトのキーマップは無し。

e.g.

私の設定。 Vim ライクなキーバインドで、検索結果を移動できるようにしている。

'.preview-pane.project-find-navigation':

'l': 'core:move-right'
'h': 'core:move-left'
'j': 'project-find-navigation:select-next-and-confirm'
'k': 'project-find-navigation:select-prev-and-confirm'
'enter': 'project-find-navigation:confirm'

'atom-workspace:not([mini])':
# このキーマップは、window:toggle-full-screen を上書きする(私は使っていないのでOK)
'ctrl-cmd-f': 'project-find-navigation:activate-results-pane'