Dash 5の使い方

[Dash](https://kapeli.com/dash) は様々な API リファレンスを高速に検索できる Mac 用アプリケーション。

> 最新のDash 5に合わせてアップデートしました。
> 旧バージョンと一部内容が異なる場合があります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25727/dbaaaa47-f259-3a42-a52e-1796251c5a9a.png">

特徴は

* 主要なライブラリ、フレームワークの API リファレンスをまとめて検索・閲覧できる
* ドキュメントのダウンロードと更新が簡単
* 検索が非常に高速
* IDE 連携やショートカットなど、キー操作に最適化
* ダウンロードは無料だけど、アプリ内課金しないと制限あり🤑

### 基本設定

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25727/f79fab38-76af-93a8-2923-d9aa787565ed.png">

* Launch Dash at login: ログイン時に Dash を起動。必ず ON にしましょう
* Show Dash shortcut: Dash の検索画面を呼び出すショートカット。お好みのキーを設定
* Search using selected text: 選択中のテキストを Dash で検索するショートカット。クリックするとシステム環境設定が起動するので、`Look Up in Dash` をチェックの上、お好みのキーを入力

> `Search using selected text` のショートカットを入力しても Dash の検索が行われない場合、以下を試してみる。
>
> * 利用したいアプリケーション上で、適当なテキストを選択
> * アプリケーションメニューにある `サービス(Services)` にマウスカーソルを当てる
> (サブメニューに `Look Up in Dash` の項目が表示されていればOK)

![Dash-Service](https://qiita-image-store.s3.amazonaws.com/0/25727/06f31b1a-74d7-9dd0-d5da-c628ff3cef30.png)

> Android Studio や RubyMine 等の Intelli J 系 IDE の場合、サービスメニューに `Look Up in Dash` が表示されない。
> その代わりに `Dash` プラグインが提供されているので、これをインストールして IDE のショートカットを設定するとよい。

### ドキュメントのダウンロードと設定

`Preferences` から各種設定を行う。

#### Downloads タブで使いたいドキュメントをダウンロード

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25727/d83e0327-680c-11ee-b0e4-81ed9fbcc97b.png">

* Main Docsets: 各種プラットフォームやフレームワークのドキュメント一覧。
* Cheat Sheets: [新機能]様々のチートシートの一覧。自作もできる。
* User contributed: 他のユーザが作成したドキュメント
* Third-party sources: 各言語・プラットフォームのドキュメントをインストールできる模様(未確認)

#### Docsets タブで検索対象のドキュメントを選択

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25727/57e8296c-d65d-e1a6-a9b1-ce02201a2c3b.png">

> このリストの 2 列目に書かれている "node:" といったキーワードは検索の絞り込みに利用できるので覚えておくとよい。
> ("iphoneos:" → "ios:"、"javascript:" → "js:" と短くしておいた方がさらに便利)

あとは `General` タブの `Show Dash shortcut` を設定しておけばどこからでも呼び出せる。

### 検索とショートカットキー

* 検索ボックスにキーワードを入力すると即座に候補が表示される
* `iphoneos:nsobject` のように初めに docset のキーワードを入力すると対象ドキュメントを絞り込める
* `nsobject description` のようにスペース区切りでキーワードを入力すると、2 語目でページ内検索を行う

その他、覚えておくと便利なショートカット。

| ショートカットキー | 機能 |
|:-------------------|:-----|
| ↓ or ↑ | 検索候補の選択 |
| Command+↓ / Command+↑ | ページスクロール |
| Command+← / Command+→ | 前のページに戻る・進む |
| Command+L or TAB | 検索キーワードの再入力 |

### スニペット

> 以下、Dash 4の内容になっています。
> 後日更新予定。

#### 登録

![Dash-Snippet](https://qiita-image-store.s3.amazonaws.com/0/25727/d0f96528-9b08-4ee7-58e3-5e57fd9dfc84.png)

* Dash のウィンドウを開く。
* 左ペインにある `{}` アイコンを選択。
* `+` アイコンをクリックして `New snippet` を選択。
* 右ペインの `Abbreviation` にスニペットの挿入キーワードを入力。
* 右ペインの中央にコードを入力。
	* `__name__` のように記述すると、挿入時に入力を行うプレースホルダになる。
	* 日付や時間を挿入する `@date` や `@time` のようなプレースホルダもある。

#### 利用

まず Mac OS の設定を変更。

* システム環境設定の「セキュリティとプライバシー」を開く。
* 「プライバシー」タブの「アクセシビリティ」項目にある `Dash` にチェックを入れる。

![Dash-Snippet-Setting](https://qiita-image-store.s3.amazonaws.com/0/25727/670d13b7-0539-5ef2-1855-04286f8d2444.png)

あとはテキストエディタで登録したスニペットのキーワードを入力すると、以下のように挿入内容が表示される。

![Dash-Snippet-Insert](https://qiita-image-store.s3.amazonaws.com/0/25727/79d4c3b7-97c7-41a3-7c44-18c03decf93e.png)


### CheatSheet を自作する

https://github.com/Kapeli/cheatset#readme にほとんど説明されているが、

* cheatset という gem をインストール。
* エディタでチートシートを作成。
* cheatset generate で docset を生成。
* 生成した docset を Finder 上でダブルクリックしてインストール。

インストールするとこんな感じで閲覧できる。

![Dash-CheatSheet](https://qiita-image-store.s3.amazonaws.com/0/25727/a3470147-2e10-65fe-3566-7dea1110860e.png)