よっしー
こんにちは。よっしーです(^^)
今日は、EditorConfigによる書式設定についてご紹介します。
背景
bashにおけるEditorConfigによる書式設定について調査する機会があったので、そのときの内容を備忘として残しました。
この記事のソースは下記のサイトにアップしています。
実行環境について
実行環境は下記の記事を参考にお願いします。
概要
EditorConfig
は、複数の開発者が異なるエディタを使用している場合でも、コードのスタイルやフォーマットを一貫性のあるものに保つための設定ファイルの仕様です。.editorconfig
という名前の設定ファイルをプロジェクトのルートディレクトリに配置することで、各エディタがその設定に従ってコードを表示・編集します。
以下は、.editorconfig
ファイルの基本的な構造と設定項目の例です。
.editorconfig
の基本構造:.editorconfig
ファイルは、INIファイル形式を採用しており、セクションとキーの組み合わせで構成されています。セクションはファイルタイプを指定し、その下にキーと値のペアが配置されます。 例:
# グローバル設定
root = true
# すべてのファイルに適用する設定
[*]
indent_style = space
indent_size = 2
# 特定のファイルタイプに適用する設定
[*.{js,py}]
indent_size = 4
上記の例では、全てのファイルに対して2スペースのスペースインデントが適用され、JavaScriptとPythonファイルには4スペースのスペースインデントが適用されます。
- 主な設定項目:
indent_style
: インデントのスタイル(”tab”または”space”)。indent_size
: インデントのサイズ。スペースの場合は数値で指定。tab_width
: タブ文字の幅。end_of_line
: 行末の改行文字(”lf”、”cr”、”crlf”)。charset
: ファイルの文字エンコーディング(”utf-8″など)。trim_trailing_whitespace
: 行末の空白を削除するかどうか(trueまたはfalse)。insert_final_newline
: ファイルの最後に空行を挿入するかどうか(trueまたはfalse)。
- 対応エディタ:
EditorConfig
は多くの主要なエディタでサポートされています。代表的なエディタとしては、Visual Studio Code、Sublime Text、Atom、IntelliJ IDEA、Emacs、Vimなどが挙げられます。 エディタがEditorConfig
をサポートしている場合、プロジェクトに.editorconfig
ファイルを追加することで、そのエディタが指定された設定に従ってコードを表示・編集します。
EditorConfig
を使用することで、異なるエディタを使用している開発者間でコードの一貫性を維持しやすくなり、コードレビューやメンテナンスがスムーズになります。
次のセクションからは、実行環境における具体的な修正内容を記載しています。
ファイル一覧
new: work/.editorconfig
work/.editorconfig
[*.sh]
indent_style = space # インデントのスタイル("tab"または"space")
indent_size = 4 # インデントのサイズ。スペースの場合は数値で指定
tab_width = 4 # タブ文字の幅
end_of_line = lf # 行末の改行文字("lf"、"cr"、"crlf")
charset = utf-8 # ファイルの文字エンコーディング("utf-8"など)。
trim_trailing_whitespace = true # 行末の空白を削除するかどうか(trueまたはfalse)。
insert_final_newline = true # ファイルの最後に空行を挿入するかどうか(trueまたはfalse)。
動作確認
下記のコマンドを実行します。
make build
make up
make login
shfmt -w 13_xargs/13_xargs.sh
上記で入れたルールが確認できれば成功です。
- prefix=$(printf "${ESC}[%dm%5s${ESC}[m\n" "$1" "$2" )
+ prefix=$(printf "${ESC}[%dm%5s${ESC}[m\n" "$1" "$2")
おわりに
今日は、EditorConfigによる書式設定についてご紹介しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント