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

Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

DashのSnippetを活用する

Dash

f:id:tbpg:20151207233201j:plain

DashのSnippetを活用します。

Abbreviation

アプリケーション内で補完を実行する際にタイプするワードです。
暴発しないように末尾に #;; などを設定することが推奨されています。

Body

再利用するテキストの断片

Variable Placeholders

Snippetの一部。
Placeholderの前後は __ (アンダースコア2つ)で囲みます。
Snippetを展開する際にPlaceholderを埋めることができます。
Placeholderはデフォルトの値(Placeholder名)を設定できます。
Enterを押せばそのままデフォルトが適用されます。

Special Placeholders

Placeholdersに特別な値を持つ変数を設定できます。

Variable Name Mean
@clipboard クリップボードの中身を展開します
@cursor 展開後のカーソル位置を設定します
@date システム日付を設定します
@time 現在時刻を設定します

Snippetの登録

DashのGUIからSnippetの登録が可能です。

f:id:tbpg:20151210001925g:plain

登録したSnippetの利用

SnippetのAbbreviationを入力すると自動的に補完が実行されます。

f:id:tbpg:20151210001719g:plain

メモ

例えばSublime Textなどエディタ独自のSnippet機能と違って、
独立してスニペットを管理できるのでバラバラのエディタを使ってる
チーム内のSnippet共有にいいかな?と思ったのですが以下の点がやや使いづらい。

  • 連携先でAbbreviation自体のインクリメンタル検索ができない
    • つまりAbbreviationを暗記しているか、忘れたらDashを起動して検索して選ぶ必要がある
    • エディタから利用するならエディタ内で完結したい
  • SnippetのImport, Export機能が見当たらない
    • ひょっとしてGUIで1件1件管理するしかない?

インクリメンタル検索はSublime TextのSnippetだと問題なくできる部分なので、
今まで利用してきた経験と比べて不便さを感じてしまう。
以下、Sublimeの例

f:id:tbpg:20151210001750g:plain

後者はSublimeの機能というよりは、プレーンテキスト(XML)で設定が管理されているので、
自分で色々やれば一括管理もしやすい。
Dashのスニペットはどういった形式で管理されてるのだろう?
少なくともちょっとみてわかるところに情報はなかったように見えるので、時間をかけて探すのはやめておいた。

今のところはAPIドキュメントブラウザとしての利用がメインになりそうかな

※Dashを使い始めたばかりなので私が知らないだけかもしれない

外部資料

Snippet - Dash Guide