Title: EditorConfigを反映させるマクロ

1 はじめに

EditorConfig に関してはEditorConfigを参照してください。

.editorconfig を検索し、条件にマッチした場合は、その内容を現在のファイルに適用するマクロです。 (解析には、"EditorConfig C Core" を多少変更して使用しています。)

このマクロの実行には、秀丸エディタ Ver.8.30以降、ht_tools.dll Ver.1.22以降が必要です。 ht_tools.dllは、h-tom's Warehouse - ht_tools.dll から入手してください。

対応しているプロパティは、以下になります。

indent_style
インデントをタブで行うか、スペースで行うか。
indent_size
タブでインデントを行う場合のサイズ
tab_width
タブでインデントを行う場合のサイズ(indent_size が指定されていない場合に使用する)
end_of_line
改行コード
charset
エンコードの指定。以下のエンコードに対応しています。
trim_trailing_whitespace
行末の空白を削除するかどうか。
max_line_length
折り返し桁数の設定
insert_final_newline
末尾に空行を追加するかどうか
root
ファイルの先頭に設定する必要があります。 true の場合、このフォルダより上にある「.editorconfig」の検索を止めます。

2 使い方

2.1 準備

ht_tools.dllを、以下のどこかに置いてください。

2.2 マクロの実行

手動または、自動起動マクロで、マクロを実行してください。 .editorconfigを検索し、マッチする設定があれば、設定の変更を行います。

2.3 マクロの動作

設定変更がある場合は、ダイアログを表示するので、変更を実行するか選択してください。 確認なしで、設定変更も可能です。(マクロの変更が必要です。デフォルトは確認ありです。)

エンコードを変更する場合は、内容を維持したまま、変換を行います。

設定を適応する順番ですが

  1. エンコード変更(変更になった場合は、更新された状態になります。)
  2. BOMの設定(変更になった場合は、更新された状態になります。)
  3. 改行コードの設定(変更になった場合は、更新された状態になります。)
  4. その他の設定
  5. 末尾の空行を追加(変更になった場合は、更新された状態になります。)
  6. インデントの変換(設定時に行う場合)
  7. 行末の空白を削除(設定時に行う場合)

になります。

"max_line_length" で、折り返しを変更する場合、現状の設定より小さくなる時は、確認を行います。 (確認なしに設定しても、問い合わせを行います。)

2.4 マクロの設定

このマクロには、いくつか設定があります。 変更する場合は直接マクロを変更してください。

  1. 確認の有無。設定を変更する場合に、事前に確認するか設定します。デフォルトは「確認あり」です。

    00013|#confirm   = 1; //0:確認なし 1:確認あり
  2. プロパティを変更した場合の動作を設定します。

    現状では、indent_style、trim_trailing_whitespace が影響を受けます。

    00014|#SaveConv  = 0; //秀丸エディタ本体機能有効にし、保存時に行うかどうか  0:実行しない 1:実行する
    00015|#NowConv   = 0; //設定時に、各種変換を行うかどうか                    0:実行しない 1:実行する

    insert_final_newline に関しては、設定時に変更するしかないので、この設定に影響されません。

  3. プロパティを変更した場合の秀丸エディタの状態を設定する。
    マクロを実行すると、「プロパティを変更した場合の動作」の設定内容により、秀丸エディタが更新された状態になります。 そのまま、更新のあった状態にしておくか、更新状態を強制クリアし解除するかの設定になります。 マクロ実行前に更新状態だった箇所も、すべて更新状態がクリアされます。

    00016|#UpdareClr = 0; //編集マークを全て消去して(更新)状態を解除                   0:解除なし   1:解除する

2.4.1 indent_style について

インデントの設定が変更になる場合、マクロの動作設定により動作が異なります。

(a)の場合は、ファイルを保存時に変換が行われる事になり、マクロ実行後、既存のインデントに変化はありません。

(b)の場合は、マクロ実行時に変換を行うため、ファイル全体が、更新された状態になります。

デフォルトは、両方とも"実行しない" の、(基本)のみ動作になります。

「タブ<-->空白の変換」は秀丸エディタの本体の機能を使用します。秀丸エディタの動作を確認してから、設定を変更してください。

動作確認の方法は2つあります。

両方とも、"実行する" にした場合、ファイル保存時の変換は行われません。

各種更新が行われた場合、編集マーク消して(更新)状態を解除する事も可能です。(デフォルトは解除なし) 必要に応じて設定を変更してください。

2.4.2 trim_trailing_whitespace について

行末の空白削除は、マクロの動作設定により動作が異なります。

(a)の場合は、ファイル保存時のみ処理が行われる事になり、マクロ実行後、ファイル内容に変化はありません。

(b)の場合は、マクロ実行時に変換を行うため、対象の行が、更新された状態になります。 (設定により更新状態をクリアする事も可能)

デフォルトは、"ファイル保存時に実行する"です。 "マクロ実行時に実行する" にした場合は、ファイル保存時の処理は行われません。

3 注意事項や制限事項など

4 その他

5 連絡先

6 変更履歴

2013/10/31 Ver.1.0.0β1
2015/11/23 Ver.1.0.1β1
2016/09/01 Ver.1.0.2
2016/09/06 Ver.1.0.3