【組み込みツール】Keil自作整形プラグイン

1 予備チュートリアル

2 はじめに

  上記のプレチュートリアルでは、keil のダウンロード、インストール、設定は非常に明確でしたが、最近問題に遭遇しました。つまり、AStyle プラグインを使用してフォーマットした後でも、インターネット上にあるコードは非常に乱雑です。 、行末ファイルの末尾のスペースや空白行はまだ削除できません。これは強迫性障害にとって非常に不快です。なぜなら、行末のスペースを削除するVSCodeのファイル保存設定が気に入っているからです。ファイルの最後に空白行があるので、Keil にこの「古代のエディター」を丸ごと渡したいと思います。

3 Keilプラグイン制作

  幸いなことに、Keil は古いスタイルではありますが、プラグイン拡張機能もサポートしているため、目的の機能を実現するプラグインを作成できます。ただし、最初にプラグインの動作原理を基本的に理解する必要があります。 。

  プラグインはメニュー バーの [ツール] で設定します。
ここに画像の説明を挿入

ここに画像の説明を挿入

このインターフェイスは非常にシンプルで、実行コマンド (ボタンをクリックしたときにどのコマンドが実行されるか)、初期位置 (コマンドが実行される位置。現在のフォルダーの問題が関係する可能性があります)、パラメーター (コマンドの実行時に追加する必要がありますパラメータ); 右側の 3 つのチェック ボックスは、Run Minimized操作中にブラック ボックスが生成されないことを意味します (存在する場合)。文字通りの意味は、Prompt for Argumentパラメータ入力のプロンプトがポップアップ表示されることです。は使用されておらず、Run Independent単独で実行しても無駄です。
  ポイントとなるのは、!E現在編集中のテキストファイルを示すパラメータ部分で、$E現在編集中のテキストファイルが置かれているフォルダを示します。その他はあまり一般的には使用されません。

詳しい手順については、この記事を参照してください


  基本的なロジックを理解したら、プラグインの作成を開始できます。使用するプログラミング言語は最も馴染みのある Python ですが、ここでのコマンドは py スクリプトをサポートしていないため、それ自体を実行プログラムとしてエクスポートする必要があります。 pyinstaller パッケージを使用します。

[Python] pyinstaller 完全なチュートリアル

  私が達成したい機能は主に、各行の末尾の空白スペースとファイルの末尾の余分な空白行を削除することです(空白行は1行だけ保持されます)。コードは次のとおりです。

## format.py
import chardet, sys, glob

def format_file(filename, default_encoding='gb2312'):
    '''	@func: 去除文件末空白行, 去除行尾空格
        @para	filename:文件名; default_encoding:默认编码
        @return: None
    '''
    try:
        content = open(filename, 'rb').read()  # 以字节方式读取
    except:
        print("文件"+filename+"打开失败")
    source_encoding = chardet.detect(content)['encoding']
    string = content.decode(source_encoding if source_encoding else default_encoding, 'ignore')
    out = "\n".join(map(str.rstrip, string.rstrip().splitlines())) #删除文件末空行,并去除行尾空格
    out = out + "\n"  #行尾加一行空行
    if out == string:
        print("文件"+filename+"不需要格式化")
        return
    with open(filename, 'w') as f:
        f.write(out)
    print("文件"+filename+"格式化完成")

if __name__ ==  "__main__":
    try:
        filename = sys.argv
        filelist = sum(list(map(glob.glob, filename[1:])), []) #获取所有文件名
        # print(filelist)
        list(map(format_file, filelist))
    except Exception as e:
        print(str(e))
        # print("参数传入错误或没有传入参数")

次に、pyinstaller を使用してスクリプトを実行可能プログラムにエクスポートします。

pyinstaller -Fw ./format.py

.c以下の図に従ってパラメータを設定でき、フォルダー内のすべての.hファイルがフォーマットされます。

ここに画像の説明を挿入

4 その他のチュートリアル

おすすめ

転載: blog.csdn.net/ZHOU_YONG915/article/details/130645513