ホームページ >バックエンド開発 >PHPチュートリアル >カスタム sublime text 3 プラグイン
前回はsublime text 3のカスタムプラグインの手順を書きましたが、あくまで入り口と言えるだけで実用的な機能はあまりありません。今回は使い方を紹介します。これは、最近の作業のニーズに基づいています。php コード書式設定ツール php cs fixer は、sublimetext 3 に統合されており、php コードを書式設定するためのプラグインとして機能します。
まず、次のことを行う必要があります。 install php cs fixer、download php-cs-fixer.phar
wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixersudo mv php-cs-fixer.phar /usr/local/bin/phpcssudo chmod +x /usr/local/bin/phpcs
次に、インストールが成功したかどうかを確認します:
phpcs
表示:
Usage: help [options] [--] []
は何でもOKです
このプラグインの目標について話しましょう:
ファイルを保存するときに php ファイルを自動的にフォーマットします
php ファイルをフォーマットするためのキーの組み合わせ
まず、崇高なコマンドが必要です。
class MikeCommand(sublime_plugin.TextCommand): def run(self, edit):
run メソッドでは、 phpcs コマンドを呼び出して php ファイルをフォーマットします
class MikeCommand(sublime_plugin.TextCommand): def run(self, edit): view = self.view; fileName = view.file_name(); suffix = os.path.splitext(fileName)[1][1:] if suffix == 'php': fix(fileName)def fix(phpFile): if not os.path.exists(phpFile): return; command = 'phpcs fix ' + phpFile; os.system(command);
キーマップ内でキーの組み合わせがファイル内で設定されているためです:
[ { "keys": [ "ctrl+alt+k" ], "command": "mike" }]
したがって、ctrl+alt+k を使用すると、コードは自動的に
をフォーマットします。それでは、自動保存中に対応するコマンドを実行するにはどうすればよいでしょうか? Sublime text 3 API は EventListener を提供するので、sublime_plugin.EventListener から継承するクラスを定義し、対応するイベントをリッスンします。 🎜>
class AutoAlign(sublime_plugin.EventListener): def on_post_save(self, view): fileName = view.file_name(); suffix = os.path.splitext(fileName)[1][1:] if suffix == 'php': fix(fileName)その他のイベント タイプについては、EventListener を参照してください。 ここまでで、最初の 2 つの目標は達成されており、その効果を確認できます。コード スタイルのない PHP ファイル:
$value) { $ids = explode(',', $value); asort($ids); $fullPermutation[$key] = md5(implode(',', $ids)); } return $fullPermutation;}ctrl+alt+k または ctrl+ s の後のファイル:
$value) { $ids = explode(',', $value); asort($ids); $fullPermutation[$key] = md5(implode(',', $ids)); } return $fullPermutation;}php-cs はデフォルトで PSR-2 コーディング仕様に従います。ただし、パラメータ を指定してコード スタイルを設定することもできます。ただし、ここには別の問題があります。すべての実行はメイン スレッド内で行われるため、この計算を追加のスレッドに抽出する必要があります。 thread.
class HandlerThread(threading.Thread): def __init__(self, view): self.view = view threading.Thread.__init__(self) def run(self): fileName = self.view.file_name(); suffix = os.path.splitext(fileName)[1][1:] if suffix == 'php': fix(fileName)次に、監視 ctrl+s の実装を変更します:
class AutoAlign(sublime_plugin.EventListener): def on_post_save(self, view): thread = HandlerThread(view) thread.start()sublime text 3 の API は Python 3 で書かれているため、実装では Python 3 を使用します。 threading.Thread、os.path.splitext、os.system を使用するときは覚えておいてください。対応するパッケージを導入してください。
import osimport os.pathimport threadingこれですべての作業が完了しました。また喜んで PHP を書くことができます!多くの場合、言語は単なるツールであり、重要なのはアイデアとアイデアです。私たちは多くの新しいものを生み出すことができることを知っていますが、アイデアがどこから来るのかはわかりません。そうすることで初めて、独自の価値を生み出すことができます~関連記事:
開発者によって最もよく使用されている 7 つの Sublime text 3 プラグイン