読者です 読者をやめる 読者になる 読者になる

Milkode0.9リリース - サジェスト検索、パッケージセレクタ、ダイレクトジャンプ

milkode ruby groonga

暑くなりましたね、Milkode0.9をリリースしました。Webアプリの使い勝手向上が主な修正点です。

サジェスト検索、パッケージセレクタ、ダイレクトジャンプといった新機能が入り、直感的に検索出来るようになりました。
デモアプリでは試しにmruby等のソースコードを検索することが出来ます。

インストール

$ gem install milkode

詳しくはこちらをどうぞ - ダウンロード, Gems

サジェストその1 : キーワードにマッチするファイルを合わせて表示


'README'で検索すると、各行に'README'を含む物以外に、ファイル名に含むものを一緒に表示してくれます。

サジェストその2 : 関連ファイルを表示


.hや.hppを開いている時に.cや.cppへのリンクを表示してくれます。

パッケージセレクタ


検索対象のパッケージを切り替えながら検索することが出来ます。

ダイレクトジャンプ

行番号クリック時に表示されるテキスト(ダイレクトパス)を使って直接ジャンプすることが出来ます。

例えば milkode/lib/milkode/cdweb/app.rb を開き、'65行目の数字'をクリックします。アラート画面に /milkode/lib/milkode/cdweb/app.rb:65 が表示されるのでクリップボードにコピーします。

次にホーム画面を開き /milkode/lib/milkode/cdweb/app.rb:65 で検索してみましょう。app.rbの65行目に一発でジャンプすることが出来ます。

この機能を使えば、短いテキストを通じて特定ファイルの一行を簡単に共有することが出来ます。例えばrubyのGC.startの実体は /ruby/gc.c:2766 ですし、mrubyの場合は /mruby/src/gc.c:867 です。それぞれホーム画面から検索してみて下さい。

ダイレクトパスは半角スペースで区切って複数個渡すことも出来ます。例えば、

/mruby/src/state.c:44
/mruby/src/state.c:16
/mruby/src/init.c:35
/mruby/src/gc.c:940
/mruby/src/gc.c:945
/mruby/src/gc.c:867 

を空白で区切って一行にまとめます。

/mruby/src/state.c:44 /mruby/src/state.c:16 /mruby/src/init.c:35 /mruby/src/gc.c:940 /mruby/src/gc.c:945 /mruby/src/gc.c:867 

で検索してみて下さい → 検索結果

mrubyの初期化からGC.start登録までの流れを順番に表示することが出来ました。

ダイレクトパスを使ってエディタで開く

ダイレクトパスはgmilkコマンドにも渡すことが出来ます(-gオプションは省略可能)。

$ gmilk /milkode/lib/milkode/cdweb/app.rb:65
../milkode/lib/milkode/cdweb/app.rb:65:get '/home*' do |path|
  1. milk webで検索、開きたい行のダイレクトパスをコピー
  2. 'gmilk ダイレクトパス' で検索、検索対象のファイルパスが表示される
  3. エディタで開いて編集

・・のように、ウェブアプリとエディタで連携出来るようになります。

リリースノート

  • milk web
    • ページデザインを刷新
      • メインページ以外もTwitter bootstrapに対応
      • デザインの調整
      • ファイル一覧 -> ディレクトリ に文章変更
    • 検索時にキーワードにマッチするファイルも合わせて表示するように
    • パッケージセレクタの追加 (thanks naoler)
      • 現在パッケージ名を選択
      • パッケージの切り替え
    • ダイレクトジャンプ
      • viewモードで行番号をクリックするとダイレクトパス(現在行を表すテキスト)を表示
      • ダイレクトパス入力時に指定行に直接ジャンプ出来るように
    • サジェスト表示
      • .h や .hpp を開いている時に .c や .cpp を表示するように
    • 検索オプション追加
      • fp(fpath_or_packages)
      • k(keyword)
      • 大文字/小文字を区別する(:sensitive)
    • バグ修正
      • 空ファイルを表示出来ない問題を修正
      • 半角スペースを含むファイルが正しく表示出来ない
      • ファイル検索時に次の100件が表示されない
    • ヘルプに文言追加
    • Webアプリのテストを追加(test_cdweb_app)
  • gmilk
    • 引数解析して'-g'オプション無くても-gモードに移行出来るように
    • ダイレクトパス入力時に指定行に直接ジャンプ出来るように
  • database
    • fpath_or_packages(fp)オプションに対応