Skip to content

原文(日本語に翻訳)

trimEnd() で末尾の空行が削除される代わりに、意図的な末尾の空行を保持するよう FileWriteTool の行カウントを修正しました。

原文(英語)

Fixed FileWriteTool line counting to preserve intentional trailing blank lines instead of stripping them with trimEnd().

概要

FileWriteToolは以前、ファイルを書き込む際にtrimEnd()を使用して末尾の空白行を自動的に削除していました。この修正により、意図的に記述された末尾の空行がそのまま保持されるようになりました。コードのフォーマットや特定のファイル形式で末尾の空行が必要な場合に、正確にファイルが保存されます。

基本的な使い方

python
# 末尾に空行を含むファイルの書き込み
content = """def hello():
    print("Hello, World!")

"""

# 修正前: trimEnd() により末尾の空行が削除されていた
# 修正後: 末尾の空行がそのまま保持される

Claude Codeでファイルを作成・編集する際、末尾の空行が意図通りに保持されます。

実践例

ユースケース1: Pythonファイルの末尾空行保持

PEP 8では、Pythonファイルの末尾に改行を1つ入れることが推奨されています。

python
# Claude Codeに依頼
# "このPythonファイルを作成してください(末尾に空行あり)"

# 作成されるファイル (example.py)
def calculate(x, y):
    return x + y

class Calculator:
    def add(self, a, b):
        return a + b

# ↑末尾の空行が保持される

ユースケース2: 設定ファイルの末尾改行

多くのリンターやエディタは、ファイルの末尾に改行があることを要求します。

yaml
# .eslintrc.yaml - 末尾の改行が保持される
rules:
  no-console: warn
  no-unused-vars: error
  semi: [error, always]

# ↑末尾の空行が保持され、エディタ警告が発生しない

ユースケース3: Markdownファイルの末尾処理

markdown
# README.md

## プロジェクト概要

このプロジェクトは...

## インストール

```bash
npm install

## 注意点

- この修正はFileWriteToolの行カウントロジックに関するものです
- 既存のファイルへの影響はありません。新規書き込み時の動作が修正されています
- `trimEnd()`による自動トリムが無効化されたため、意図しない末尾空行が残る可能性もあります。ファイル内容を確認することを推奨します
- バージョン2.1.47以降で適用される修正です

## 関連情報

- [Claude Code 公式ドキュメント](https://docs.anthropic.com/ja/docs/claude-code/overview)
- [Claude Code CHANGELOG](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md)
- [Claude Code GitHub リポジトリ](https://github.com/anthropics/claude-code)