| name | coding-convention-addendum |
| description | ecritu向けのコーディング規約追補(テキストファイル規約 + Swift基準) |
コーディング規約の追補(ecritu)
このスキルは、既存のコーディング規約で漏れやすい細部を補完するためのルールセットです。
補助資料として、誤検知回避条件を整理したメモと、R01〜R12 を最初から再検査するときの標準手順書を併設しています。
プログラムのソースを含むテキストファイルを作成・レビューするときは、以下のR01〜R12を満たしてください。
運用方針
- 重大度は
ERROR のみです。
- すべて修正必須です。
- 対象はプログラムのソースを含むテキストファイルです。
- 自動生成物、依存パッケージ、ビルド成果物は原則として対象外です。
- 具体的には、
build/、build-device/、build-device-agent/、third_party/sudachidict/、écritu.xcodeproj/xcuserdata/ 配下をチェック対象外とします。
補助資料
- 誤検知回避条件の整理は
./FALSE_POSITIVE_NOTES.md を参照してください。
- R01〜R12 の再検査は
./RESCAN_GUIDE.md の手順を標準としてください。
テキストファイル共通ルール(先頭で確認すること)
✅R01: テキストファイルの改行コードは LF のみ [ERROR]
CR や CRLF は使わず、LF を使用してください。
■ チェック条件
⚠️ 違反例
line1[CRLF]
line2[CRLF]
■ 正しい例
line1[LF]
line2[LF]
✅R02: テキストファイルの文字エンコーディングは UTF-8 [ERROR]
Shift_JIS、EUC-JP、ISO-2022-JP などは使わず、UTF-8 を使用してください。
■ チェック条件
- テキストファイル全体を
UTF-8 として正常に解釈できること
⚠️ 違反例
[UTF-8 decode error]
■ 正しい例
[UTF-8 OK]
✅R03: テキストファイルの末尾は改行で終わる [ERROR]
テキストファイルの末尾の行は、原則として改行コード (LF) で終わるようにしてください。
■ チェック条件
- テキストファイルの末尾に改行コード (
LF) が存在すること
⚠️ 違反例
last line without newline[EOF]
■ 正しい例
last line with newline[LF]
✅R04: UTF-8 の BOM は付けない [ERROR]
UTF-8 のテキストファイルには BOM を付けないでください。
■ チェック条件
UTF-8 のテキストファイル先頭に BOM が存在しないこと
⚠️ 違反例
[BOM]import Foundation
■ 正しい例
import Foundation
✅R05: 行末に空白を残さない [ERROR]
行末 (改行コードの直前) に半角スペースや tab を残さないでください。
■ チェック条件
⚠️ 違反例
let value = 1[space]
■ 正しい例
let value = 1
✅R06: 空白やタブのみを含む行を避ける [ERROR]
プログラムのソースを含むテキストファイルでは、空行は改行だけの行にしてください。
■ チェック条件
⚠️ 違反例
line1
[4 spaces]
line2
■ 正しい例
line1
line2
✅R07: コードファイルで空行を連続させない [ERROR]
コードファイルでは、特段の意図がない限り空行を連続させないでください。
■ チェック条件
.swift、.py、.sh、.yml、.yaml、.json、.xcconfig、.entitlements では、連続する2行以上の空行を認めないこと
- Markdown のコードブロックは対象外とすること
⚠️ 違反例
let value = 1
return value
■ 正しい例
let value = 1
return value
Swift/コード整形ルール
✅R08: Swift のインデントはスペースのみを使い、空白数は4の倍数にする [ERROR]
Swift のコードでは、インデントに tab を使わず、半角スペースで統一してください。
■ チェック条件
.swift の行頭インデントがスペースのみであること
- インデント幅が4の倍数であること
⚠️ 違反例
if enabled {
runTask()
}
■ 正しい例
if enabled {
runTask()
}
✅R09: 中括弧のすぐ内側に空行を置かない [ERROR]
中括弧の直後や直前に不要な空行を置かないでください。
■ チェック条件
- 開き中括弧の直後に空行がないこと
- 閉じ中括弧の直前に空行がないこと
⚠️ 違反例
if enabled {
runTask()
}
■ 正しい例
if enabled {
runTask()
}
✅R10: // コメントの直後には空白を入れる [ERROR]
行コメントを書くときは、// の直後に空白を1つ入れてください。
ただし、URL の https:// などは対象外です。
■ チェック条件
- コメント開始の
// の直後に空白があること
- URL や区切り線としての
// は対象外にすること
⚠️ 違反例
■ 正しい例
✅R11: 括弧のすぐ内側に空白を入れない [ERROR]
コードでは、括弧の直後や直前に不要な空白を入れないでください。
■ チェック条件
( の直後に空白がないこと
) の直前に空白がないこと
- コメント、文字列リテラル、ドキュメント用コードブロックは対象外とすること
⚠️ 違反例
if ( enabled ) {
runTask()
}
■ 正しい例
if (enabled) {
runTask()
}
✅R12: カンマの前後の空白を統一する [ERROR]
コードでは、カンマの前に空白を入れず、カンマの後ろには半角空白を1つ入れてください。
■ チェック条件
, が存在しないこと
- カンマの直後に実コードが続く場合、半角空白1つが続くこと
- コメント、文字列リテラル、ドキュメント用コードブロックは対象外とすること
⚠️ 違反例
let values = [1,2 ,3]
■ 正しい例
let values = [1, 2, 3]