Skip to content

Conversation

azu
Copy link
Member

@azu azu commented Sep 12, 2025

概要

textlint-rule-ja-no-mixed-periodのエラーメッセージを改善し、ユーザーがエラーの理由と修正方法を理解しやすくしました。

背景・動機

従来のエラーメッセージは「文末が"。"で終わっていません。」という簡潔なものでしたが、以下の課題がありました:

  • なぜ句点が必要なのかが伝わらない
  • どのように修正すべきかが不明確
  • 文中に誤って句点を追加してしまう可能性がある

変更内容

1. エラーメッセージの構造化

各エラーメッセージを以下の3つの要素で構成:

  • 理由: なぜこのルールが重要なのかを説明
  • 修正: 具体的な修正方法を提示
  • : 正しい使用例を表示(句点忘れの場合)

2. パターン別のメッセージ最適化

句点の付け忘れ

変更前:

文末が"。"で終わっていません。

変更後:

文末が"。"で終わっていません。
理由: 句点は文の境界を明確にし、読み手の理解を助けます
修正: 適切な文末表現で文を完結させ、句点を追加してください
例: 「〜です。」「〜ます。」「〜でした。」など

末尾の不要なスペース

変更前:

文末が"。"で終わっていません。末尾に不要なスペースがあります。

変更後:

文末が"。"で終わっていません。
理由: 末尾の不要な空白が句点の代わりになっていません
修正: 空白を削除してください

ピリオドの使用

変更前:

文末が"。"で終わっていません。

変更後:

文末が"。"で終わっていません。
理由: 日本語文章では"。"を使用します
修正: "."を"。"に置き換えてください

3. READMEの充実

以下のセクションを追加:

  • なぜ句点「。」が必要なのか: 句点の重要性を説明
  • エラーメッセージと修正方法: 各エラーパターンの詳細な説明と修正例
  • 自動修正: --fixオプションの使用方法

効果

  • ユーザーがエラーの理由を理解できる
  • 具体的な修正方法が明確になる
  • 文中への誤った句点追加を防げる
  • 初心者にも優しいドキュメントになる

テスト

既存のテストケースを新しいメッセージ形式に対応させました。すべてのテストが通過することを確認済みです。

# テストの実行
npm test

# 実際のファイルでの動作確認
echo "これはテストです" | npx textlint --stdin --rule ja-no-mixed-period

破壊的変更

エラーメッセージの文言が変更されるため、エラーメッセージの文字列に依存した処理がある場合は影響を受ける可能性があります。ただし、エラーの検出ロジックや修正機能(--fix)に変更はありません。

チェックリスト

  • エラーメッセージの改善
  • READMEの更新
  • テストケースの更新
  • 既存の機能への影響なし

🤖 Generated with Claude Code

- エラーメッセージに理由・修正方法・例を追加
- READMEに句点の重要性と詳細な修正例を追加
- テストケースを新しいメッセージ形式に対応

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@azu azu marked this pull request as ready for review September 12, 2025 12:26
@azu azu added the Type: Documentation Documentation only changes label Sep 12, 2025
- Add explicit 'contents: read' permission to test job
- Fixes excessive-permissions warning from zizmor security audit
@azu azu merged commit 1d2b41f into master Sep 12, 2025
4 checks passed
@azu azu deleted the improve-error-messages branch September 12, 2025 23:06
@github-actions github-actions bot mentioned this pull request Sep 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: Documentation Documentation only changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant