個人的なyapfの設定

備忘用のメモ。

yapfはgofmtのpython版的なもの。autopep8みたいな代替も存在している。

github.com

少しだけ違うフォーマットでつかいたかった。yayapfを作った。消したい。

github.com

こういうformatに対応したかった

こういうformatに対応したかった

from foo import (
    x,
    y,
)
from foo import (  # NOQA
    x,
    y,
)

emacsの設定

  1. M-x list-packagespy-yapf 選んでインストール
  2. 以下を追加
;; yapf
(defun my:py-yapf-buffer ()
  (interactive)
  (lexical-let ((yapf (or (pickup-file "bin/yayapf") "yapf")))
    (flet ((executable-find (cmd) t))
      (py-yapf-bf--apply-executable-to-buffer
       "yapf"
       (lambda (errbuf file)
         (apply 'call-process yapf nil errbuf nil
                       (append py-yapf-options `("--in-place", file))))
       nil "py" t))))
(autoload 'py-yapf-bf--apply-executable-to-buffer "py-yapf" nil)

"C-x C-s" に my:py-yapf-buffer を割り当ててる。(保存は自動で行う設定にしている)