カスタム sublime text 3 プラグイン

PHP中文网
リリース: 2023-02-28 15:10:01
オリジナル
1927 人が閲覧しました

前回は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です

このプラグインの目標について話しましょう:

  1. ファイルを保存するときに php ファイルを自動的にフォーマットします

  2. 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 プラグイン

JavaScript 開発者必需品 10 の詳細 Sublime Text プラグインのサンプルコード

Sublime Text3 のショートカット キーの実用的なまとめ

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート