PHP + flymake
phpでflymake使おうと思ったんだけど
flymakeの設定のしかた調べるのめんどかったから
適当にネット徘徊して設定パクろうと思った。
メモメモ
ついでにjsとrubyのもくっついてますね。
VimからEmacsに乗り換えたので便利機能紹介します - 八発白中
(when (require 'flymake nil t) (global-set-key "\C-cd" 'flymake-display-err-menu-for-current-line) ;; PHP (when (not (fboundp 'flymake-php-init)) (defun flymake-php-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "php" (list "-f" local-file "-l")))) (setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks '(("\.php[345]?$" flymake-php-init)))) (setq flymake-err-line-patterns (cons '("\(\(?:Parse error\|Fatal error\|Warning\): .*\) in \(.*\) on line \([0-9]+\)" 2 3 nil 1) flymake-err-line-patterns))) ;; JavaScript (when (not (fboundp 'flymake-javascript-init)) (defun flymake-javascript-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "/usr/local/bin/jsl" (list "-process" local-file)))) (setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks '(("\.json$" flymake-javascript-init) ("\.js$" flymake-javascript-init)))) (setq flymake-err-line-patterns (cons '("\(.+\)(\([0-9]+\)): \(?:lint \)?\(\(?:Warning\|SyntaxError\):.+\)" 1 2 nil 3) flymake-err-line-patterns))) ;; Ruby (when (not (fboundp 'flymake-ruby-init)) (defun flymake-ruby-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) '("ruby" '("-c" local-file))))) (add-hook 'php-mode-hook '(lambda () (flymake-mode t))) (add-hook 'js-mode-hook (lambda () (flymake-mode t))) (add-hook 'ruby-mode-hook (lambda () (flymake-mode t))))