# CudaText プラグイン: 「ディスクの勝利」 (外部変更時に自動リロードを強制) CudaText には、ファイルが読み込まれた瞬間にサイレントにファイルをリロードする組み込みオプションがありません。 ディスク上の変更 — すべての組み込みの「ディスク上の変更」モードでは、引き続きいくつかの変更が表示されます。 リロード前のプロンプトの種類(モーダルまたはモーダルレス) (「default.json」の「ui_notif_confirm」を参照、値は「0」から「4」、すべて 聞く)。このプラグインはそのギャップを埋めます。**ディスクは常に優先されます**。プロンプトは一切表示されません。 ここにアーカイブされているため、誰もこのために CudaText プラグイン API を再派生する必要はありません また。プラグイン自体の信頼できる情報源は次のとおりです。 このフォルダー内の[`cuda_disk_wins/`](.././cuda_disk_wins/)。 ## 何をするのか - 開いているすべての名前付きファイルを 1 秒に 1 回ポーリングします (次のように構成可能) 「__init__.py」の「TIMER_INTERVAL」)。 - ディスク上のファイルの mtime が変更された場合、プラグインはそれを再読み込みして呼び出します。 `Editor.set_text_all()` — **保存されていない変更を上書きします。 何も尋ねずにエディタータブ**。 - その後「変更済み」フラグをクリアします (`PROP_MODIFIED = False`)。 タブは何も分岐していないかのようにきれいに見えます。 - ベストエフォートにより、キャレットの位置と表示されている上部の行が復元されます。 リロードします。 - `Plugins → Disk Wins` の下に 2 つのコマンドを追加します。 - `自動リロードのオン/オフを切り替えます` - 「今すぐチェック」 (手動ワンショットチェック) ## 設定ではなくプラグインを使用する理由 CudaText 独自のファイルウォッチャー (`ui_notif`) は、「ask」動作のみを提供します。 | `ui_notif_confirm` |行動 | |---------------------|-----------------------------------------------------| | 0 |モーダルなしのプロンプト、常に | | 1 |モーダルなしのプロンプト (エディターが変更された場合、または Undo が空でない場合) | 2 |モーダルなしのプロンプト (エディターが変更された場合) | | 3 |モーダル プロンプト、常に | | 4 |モーダルプロンプト (エディターが変更された場合) | 「自動的にリロード、プロンプトなし、続行」を意味する値はありません。 したがって、この小さなプラグインは、独自のポーリング ループを実行してリロードします。 Python API を介して直接。 ## インストール ```bash mkdir -p ~/.config/cudatext/py cp -r cuda_disk_wins ~/.config/cudatext/py/ ``` CudaTextを再起動します。 **重要:** また、CudaText 自体の変更通知ダイアログも無効にします。 プラグインと競合しません。で `~/.config/cudatext/settings/user.json`: ```json { "ui_notif": false } ``` (UI の「オプション → 設定 – ユーザー設定」に相当します。) 再起動 この変更後に再び CudaText が使用されます。 ## 注意事項 - これは意図的に破壊的なものです。保存されていないエディターの編集は破棄されます。 ファイルが外部で変更された瞬間にサイレントに実行されます。それがすべてです プラグインのポイント — 時々保存しておきたい場合はインストールしないでください。 外部変更よりもローカル編集。 - ファイルの mtime の変更にのみ反応します。エディタ自体に入力する リロードはトリガーされません (フィードバック ループはありません)。 - ファイルが外部で削除された場合、プラグインは削除されるまで何も行いません。 再び表示されます (クラッシュやリロード試行の繰り返しはありません)。 - エンコーディングは「PROP_ENC」経由で読み取られ、最も近い Python コーデックにマッピングされます。 まだ使用していないエンコーディングを使用する場合は、「__init__.py」の「ENC_MAP」を拡張します。 リストされています。 ## 起源 「保存されていないエディターよりもファイルシステムの変更を常に優先する」ために構築されています CudaText のセットアップ時に議論される「バッファ、確認なし」要件 Arch の `yay -S cudatext-qt6-bin python` 経由。