Skip to content

原文(日本語)

分類ルール入力欄で、キーストロークごとにカーソルが末尾にジャンプする問題を修正しました。

原文(英語)

Fixed cursor jumping to end on each keystroke in classifier rule input

概要

Claude Code v2.1.41では、分類ルール(classifier rule)の入力フィールドでテキストを編集する際、キーを押すたびにカーソルが自動的に行末に移動してしまう問題が修正されました。これにより、テキストの中間部分を編集したり、特定の位置にテキストを挿入したりすることが正常にできるようになりました。

問題の詳細

分類ルールとは

分類ルールは、ファイルや操作に対してアクセス制御やポリシーを適用するための設定です。例えば、特定のファイルパターンに対する読み書き権限の制御などに使用されます。

修正前の動作

分類ルール入力欄でテキストを編集しようとすると、キーを押すたびにカーソルが末尾にジャンプし、意図した位置での編集ができませんでした。

text
# 修正前の動作例
入力内容: "*.config.js"
カーソル位置: "*.conf|ig.js" (|はカーソル位置)

# "test"を挿入しようとする
't'を入力 → カーソルが末尾にジャンプ
結果: "*.config.jst|"  ← 意図しない位置に挿入される

# 中間部分の編集が事実上不可能

修正後の動作

カーソルは入力位置に留まり、自然なテキスト編集が可能になりました。

text
# 修正後の動作例
入力内容: "*.config.js"
カーソル位置: "*.conf|ig.js"

# "test"を挿入
"test"を入力
結果: "*.conftestig.js"  ← 期待通りの位置に挿入

# 自由な編集が可能

基本的な使い方

分類ルールの編集

分類ルール設定画面で、自然にテキストを編集できます。

bash
# 設定画面を開く
> /settings

# Classifier Rules セクションで新規ルールを追加
# または既存ルールを編集

# 修正後は、カーソル位置での編集が正常に動作

実践例

ファイルパターンの修正

既存のファイルパターンを編集する際、中間部分の修正が容易になります。

bash
# 既存ルール
Pattern: "**/*.config.js"

# "config" → "settings" に変更したい
# カーソルを "config" の先頭に移動
Pattern: "**/*.|config.js"

# "config"を削除して"settings"を入力(修正後は正常に動作)
Pattern: "**/*.settings.js"

複雑なパス指定の編集

長いパスパターンの一部を修正する場合です。

bash
# 既存ルール
Pattern: "src/components/features/*/config/**/*.ts"

# "features" → "modules" に変更
# カーソルを "features" の位置に移動
Pattern: "src/components/|features/*/config/**/*.ts"

# "features"を削除して"modules"を入力(修正後は正常動作)
Pattern: "src/components/modules/*/config/**/*.ts"

条件式の調整

分類ルールの条件式を細かく調整する場合です。

bash
# 既存ルール条件
Expression: "file.size > 1000 && file.type == 'text'"

# "1000" → "5000" に変更
# カーソルを "1000" の位置に移動
Expression: "file.size > |1000 && file.type == 'text'"

# "1000"を削除して"5000"を入力
Expression: "file.size > 5000 && file.type == 'text'"

正規表現パターンの編集

正規表現を使用した分類ルールの編集です。

bash
# 既存の正規表現パターン
Pattern: "^.*\\.test\\.(js|ts)$"

# "|jsx|tsx"を追加したい
# カーソルを適切な位置に移動
Pattern: "^.*\\.test\\.(js|ts|)$"

# "jsx|tsx"を入力(修正後は正常動作)
Pattern: "^.*\\.test\\.(js|ts|jsx|tsx)$"

複数ルールの一括編集

複数の分類ルールを効率的に編集する場合です。

bash
# ルール1
Pattern: "src/api/**/*.config.js"

# ルール2
Pattern: "src/utils/**/*.config.js"

# ルール3
Pattern: "src/services/**/*.config.js"

# すべての ".config.js" → ".settings.js" に変更
# 各ルールでカーソルを適切に移動して編集可能(修正後)
Pattern: "src/api/**/*.settings.js"
Pattern: "src/utils/**/*.settings.js"
Pattern: "src/services/**/*.settings.js"

この修正の利点

編集効率の向上

  • テキストの任意の位置を自由に編集可能
  • カーソル位置を気にせずスムーズに入力
  • 複雑なパターンの修正が容易

ユーザー体験の改善

  • 直感的なテキスト編集
  • ストレスフリーな操作
  • 標準的なテキストエディタと同じ挙動

設定作業の効率化

  • 分類ルールの作成・編集が高速化
  • タイポの修正が簡単
  • 試行錯誤がしやすい

分類ルールの設定例

ファイルアクセス制御

bash
# 特定のファイルへの書き込みを制限
Rule: Block write access
Pattern: "**/production.config.*"
Action: deny-write

機密ファイルの保護

bash
# 機密情報を含むファイルの読み取り制限
Rule: Protect secrets
Pattern: "**/{.env,.secrets,credentials}*"
Action: require-approval

ディレクトリベースのアクセス制御

bash
# テストディレクトリへの完全アクセス許可
Rule: Allow test directory
Pattern: "tests/**/*"
Action: allow-all

注意点

  • この修正はClaude Code v2.1.41以降で自動的に適用されます
  • 分類ルールの構文自体は変更されていません
  • 既存の分類ルール設定には影響しません

関連する設定画面

  • /settings - 全般設定画面
  • Classifier Rules セクション - 分類ルールの管理
  • Permission Rules セクション - 権限ルールの管理

関連情報