LoginSignup
1
2

More than 5 years have passed since last update.

Coda2 プラグインの作り方【PHP PSR-2 Fixer から学ぶ】

Last updated at Posted at 2018-01-03
1 / 22

スクリーンショット 2018-01-04 1.52.21.png


 スクリーンショット 2018-01-04 1.52.21.png Coda2 とは

  • Panic社のコーディング・エディタ
  • 有料(税込9,800円)
  • WEB開発向けの単体アプリ。

  • SSH接続、ファイル転送、ターミナル、MySQL、Git、Webサイトのプレビュー付きなど、Web開発のコーディングに必要なものを1つのアプリにパックしたようなアプリ。

お金を払ったので使い倒したい

∴ プラグインを作りたい(PHPで)


学ぶとは真似ぶ

車輪の再発明とは写経


やりたいこと

  1. プラグインの呼び出し(実行)
  2. コードを TEMP に保存
  3. TEMP のコードを PHP で整形する
  4. 整形結果を返してオリジナルに反映

PHP PSR-2 Fixer プラグインとは

コード整形プラグイン。 PHP のソースコードを PSR-2 に準拠するように PHP_CodeSniffer を使って整形してくれるプラグイン。コード規約が PSR-2 縛りの場合に便利。


PSR-2_Before-After.png


PHP PSR-2 Fixer プラグインのダウンロード


プラグイン・ファイル
「xxx.codaplugin」を作るのに必要なもの


スクリーンショット 2018-01-04 3.08.54.pngCoda Plug-In Creator

スクリプトや同梱ファイルをドラッグ&ドロップして実行すると .codaplugin にコンパイルしてくれる。

ダウンロード: http://download.panic.com/coda/Coda%20Plug-in%20Creator.zip


プラグインの構造を覗いてみる


"PHP PSR-2 Fixer.codaplugin"の場合

  • プラグインを右クリックして「パッケージの内容を表示」でも同じものが見れる
  • プラグインの保存先: /Users/<user>/Library/Application Support/Coda 2/Plug-ins/

"Coda Plug-In Creator" が作ってくれるので、余り深く考えないことにする


"Coda Plug-In Creator" で
"PHP PSR-2 Fixer.codaplugin" を開いてみる


説明
スクリーンショット 2018-01-04 3.28.39.png コマンド名:
「コマンド」メニューからプラグイン名を選んだ時のメニュー名

説明
スクリーンショット 2018-01-04 3.28.39.png 実行スクリプト:
ソースを TEMP にコピーし、④で指定された PHP ファイルを実行させるシェル・スクリプト。[fixer.sh のソースを読む]

説明
スクリーンショット 2018-01-04 3.28.39.png スクリプトへのデータの渡し方:
ここでは全体を "fixer.sh" に渡すので「書類」。処理結果で置き換えるので「現在の書類と置換」

説明
スクリーンショット 2018-01-04 3.28.39.png 実処理ファイル:
PSR-2 にコードを整形するPHPファイル phpcbf.phar と 整形ルールのファイル rules.xml
phpcbf.pharPHP_CodeSniffer-vオプション付きで PHPアーカイブしたもの

総括

独自処理の PHP を作って .phar 化して差し替えてプラグインをコンパイルすれば、PHPで独自プラグインが作れそう。

WordPress のPHPコード規約に準拠した PHP-Codesniffer のXMLと差し替えるとか。

整形以外のプラグインを作りたい場合は、Coda Plug-in Kitのサンプルが参考になるかも。


参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2