Cursor RTL — Cursor用マルチランゲージRTLサポート拡張
概要
Cursor RTLは、Cursor AI Chat上で多言語(特に右→左方向の言語)を自然に表示することを目的としたブラウザ拡張です。要素ごとにテキストの方向性を自動判定するアルゴリズムを用い、ヘブライ語・アラビア語・ペルシャ語などRTL言語が含まれる要素は右寄せ(right-aligned)にし、英語などのLTR言語は左寄せのまま表示します。混在テキストや動的に生成されるチャットメッセージにも対応することで、会話の読みやすさと整合性を向上させます。インストール後はCursorのUIに手を加えることなく、言語ごとの視覚的なズレを自動補正します。
リポジトリの統計情報
- スター数: 24
- フォーク数: 0
- ウォッチャー数: 24
- コミット数: 3
- ファイル数: 12
- メインの言語: TypeScript
主な特徴
- 要素単位の自動方向判定(RTL/LTR)で混在テキストを正しく表示
- ヘブライ語・アラビア語・ペルシャ語に対するデフォルト右寄せサポート
- Cursorの動的コンテンツ(チャットの追加や編集)にも対応
- TypeScriptで記述された軽量な拡張、ドキュメントとスクリーンショットを提供
技術的なポイント
Cursor RTLは「目的に合わせて作られたアルゴリズム」を用いて、DOM内の各要素のテキストを走査し、テキストの方向性を判定して表示スタイルを動的に変更します。判定は一般的にUnicodeの文字レンジ(ヘブライ文字、アラビア文字、ペルシャの拡張など)を検出することで行い、該当文字が優勢な要素にはdir属性やCSSのtext-alignを適用して右寄せにします。逆にLTRが優勢な場合は既存の左寄せを維持します。
実装面では、CursorのチャットUIのように動的に要素が追加・変更される環境を考慮し、MutationObserverなどを用いてDOM変更を監視し、新しく追加されたメッセージ要素に対して再判定を行う設計が想定されます。パフォーマンス面では、走査範囲を必要最小限に限定し、頻繁なDOMアクセスを避けるためのデバウンスやスロットリング、CSSクラスによる一括適用などの工夫が重要です。
また、編集可能な入力フィールドやコンテンツエディタに対しては、ユーザーの入力にリアルタイムで反応する必要があり、入力イベント(input/keydownなど)を監視して、入力中の言語変化にも追従することが望まれます。拡張はTypeScriptで開発されており、型安全性とビルド環境(ツールチェーン)を活用して、拡張機能の信頼性を高めています。ドキュメントが用意されているため、導入手順や挙動の確認も簡便です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- .vscodeignore: file
- LICENSE: file
- README.md: file
…他 7 ファイル
(リポジトリにはドキュメントやスクリーンショット、ビルド設定やソースファイルなど、拡張の配布とメンテナンスに必要なファイル群が含まれています。)
まとめ
Cursor上での多言語・RTL表示問題を手軽に解決する実用的な拡張です。
リポジトリ情報:
- 名前: cursor-ext-rtl
- 説明: 説明なし
- スター数: 24
- 言語: TypeScript
- URL: https://github.com/motcke/cursor-ext-rtl
- オーナー: motcke
- アバター: https://avatars.githubusercontent.com/u/3529897?v=4
READMEの抜粋:
Cursor RTL - Extension
Smart multi-language RTL support for Cursor AI Chat. Uses a purpose-built algorithm that auto-detects text direction per element - Hebrew, Arabic and Persian text is automatically right-aligned, while English text stays left-aligned. Mixed-language conversations just work.
Screenshots
Chat
| Before | After |
|---|---|
| ![Chat before RTL](docs/screenshots/chat-be… |