勉強日記

チラ裏

【Emacs】Yasnippetを活用した話

f:id:wand_ta:20190831171247g:plain

  • ↑コンストラクタの名前を間違ってるのはご愛嬌
    • __constructが正しい
  • 入れて満足してほとんど使っていなかった
  • 定形コードを書くのがつらくなってきたので活用開始
  • 今まで使っていなかったことを後悔するくらいには素晴らしい

設定内容

  • 設定はこんなかんじ
# -*- mode: snippet -*-
# name: constructor
# key: ctor
# group: definitions
# --
/** @var ${2:$(yas-text)} */
private \$${3:$(yas-text)};

/**
 * @param ${2:$(yas-text)} \$${3:$(yas-text)}
 */
public function __construct(${2:type} \$${3:name})
{
    \$this->${3:$(yas-text)} = \$${3:$(yas-text)};
}
  • C-i (TAB)で次の入力箇所にジャンプできるのが有能
    • ${2:type}
    • ${3:name}
  • $(yas-text)で、対応する入力箇所の文字列と同期できる
    • ${3:{$(yas-text)}ならば${3:name}の入力内容と同期できる

課題点

  • company-lspの補完とぶつかる
    • C-iでの入力箇所ジャンプが途切れてしまう
    • $(yas-text)でうまく同期できない