2020年5月30日土曜日

Yasnippet で yard のドキュメントテンプレートを管理する

概要

emacs で Ruby を編集している際に Yard ドキュメントを補完してほしくなったので Yasnippet にテンプレートを補完してみました

環境

  • macOS 10.15.4
  • emacs 25.3.1
    • yasnippet 0.14.0

Yasnippet インストール

  • M-x package-list-packages

melpa がダメな場合は gnu からで良いと思います

新規スニペット登録

ここの情報を元にスニペットを登録していきます

  • M-x yas-new-snippet

or

  • C-c C-n

最初は以下のような情報しかありません
key はスニペットを呼び出す際の名前になります
基本は同じ内容を登録すれば良いと思います

# -*- mode: snippet -*-
# key:
# name:
# --

key, name を決めたらすぐ下に登録したいスニペットを記載します
今回は yard のドキュメント情報なのでコメントが先頭がシャープになっていますがシャープにする必要はありませんのでご注意ください

# -*- mode: snippet -*-
# key: yard-method-abstract
# name: yard-method-abstract
# --
# An alias to {Parser::SourceParser}'s parsing method
# 
# @author hawksnowlog
#
# @see http://example.com Description of URL
# @see SomeOtherClass#method
#
# @deprecated Use {#my_new_method} instead of this method because
#   it uses a library that is no longer supported in Ruby 1.9. 
#   The new method accepts the same parameters.
#
# @abstract
# @private

あとは保存すれば OK です
保存の際にスニペットを使うモードを指定するので今回は ruby-mode を指定します

  • C-c C-c (Save)
  • ruby-mode (Select mode)

.emacs.d/snippets/ruby-mode/yard-method-abstract に保存されます
同じようにいろいろとスニペットを作成していきます
すべて登録できたら M-x yas-describe-tables で確認しましょう

Yasnippet の自動起動

今回はモードを気にせず自動起動するようにします
必要なモードのときのみ起動するようにするには add-hook などと組み合わせてください

  • vim .emacs
; for yanippet
(require 'yasnippet)
(yas-global-mode 1)

動作確認

*.rb ファイルを開いている状態 (ruby-mode が起動している状態) で yas-insert-snippet を実行してみましょう
以下のようにちゃんと登録したスニペットの一覧が表示されて選択することで yard のドキュメントが登録できることが確認できると思います

その他操作方法

スニペットの追加

  • M-x yas-insert-snippet

スニペットの編集

  • M-x yas-visit-snippet

or

  • C-c C-v

最後に

Yasnippet を使って yard のドキュメントテンプレートを管理してみました
パッケージにして package-install でインストールできるようにしてもいいかなと思いました

参考サイト

0 件のコメント:

コメントを投稿