Conversation
Agent-Logs-Url: https://github.com/Shougo/ddt.vim/sessions/9ff1472a-cd32-48d7-86aa-f699f755c3a9 Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Apply changes from PR #39 to multiple repositories
loader: make registerPath concurrency-safe and add registerPaths (port from dpp.vim #39)
Apr 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports dpp.vim PR #39 to ddt.vim:
registerPathheld the lock across the fullDeno.stat + importPlugincall, serializing all UI extension loads. This refactor moves I/O outside the lock so concurrent calls overlap.denops/ddt/loader.tsregisterPath: fast-path returns early if already registered;Deno.stat+importPluginrun outside the lock; lock acquired only for the state-update critical section with an inner re-check to prevent duplicate registration from concurrent callers that raced past the fast-path#registerand theModwrapper type — logic inlined intoregisterPathregisterPaths(type, paths): new public method — fans out toregisterPathviaPromise.allSettled; logs per-path failures viaconsole.errorwithout throwingTests
denops/ddt/tests/loader_concurrent_test.ts: covers single registration, concurrent same-path idempotency (8 parallel calls), concurrent different paths, non-existent path rejection,registerPathswith mixed valid/invalid paths, overlapping concurrentregisterPaths, re-registration no-opdenops/ddt/tests/testdata/ui_{alpha,beta,gamma}.ts: minimal fixture files exporting aUiclass (adapted from dpp.vim'sExtfixtures to match ddt.vim's"ui"type)denops/ddt/deno.json: added@std/assert@~1.0.7import required by the new testsOriginal prompt
以下の変更を dpp.vim の PR #39 (Shougo/dpp.vim#39) と同様に各リポジトリへ適用してください。
対象リポジトリ: Shougo/ddc.vim, Shougo/ddu.vim, Shougo/ddx.vim, Shougo/ddt.vim
変更内容(実装・テスト両方):
denops/*/loader.ts の改修
テスト追加
既存のコードスタイル・型・パスに合わせて微調整
PR 作成に関するメタデータ
重要な注意点:
もし実装上の差異や追加で確認が必要な点が見つかった場合は、PR の説明にその差分と理由を明記し、該当箇所でコメントしてください。
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Shougo/dpp.vim#39
これと同様の変更を ddc.vim, ddu.vim, ddx.vim, ddt.vim に適用してください。
Assistant: 了解しました — これらのリポジトリに dpp.vim の PR #39 と同様の変更を適用して PR を作成できますが、いくつか確認させてください。
確認事項(短く答えてください):
上の確認をいただければ、承諾後に各リポジトリへ同様の変更を適用して PR を作成します。
User: はい
Assistant: 先ほどのツール呼び出しのダイアログで承認をお願いします — 承認を確認次第、各リポジトリへの変更適用とPR作成を開始します。
User: @copilot Accepted Confirmation: Confirm agent session
Assistant: 開始しました — ご依頼の変更適用作業を開始し、進捗は下のタスクで追跡できます。今から各リポジトリ(Shougo/ddc.vim, Shougo/ddu.vim, Shougo/ddx.vim, Shougo/ddt.vim)に対して以下を順に行います:
進めて問題があればここでお知らせください。追跡用タスクは以下です:
次に、ddc.vim → ddu.vim → ddx.vim → ddt.vim の順で変更を適用して PR を作成します。PR 作成後に各 PR のリンクをここに貼ります。変更の内容や PR の本文で特に追記してほしい点があれば教えてください。
User: @copilot Accepted Confirmation: Confirm agent session
Assistant: 進捗報告です。状況を開始済みの作業に沿ってまとめます。
ただし、この応答では実際のリポジトリ変更・PR 作成ができないため(実行環境の制約)、ddx.vim と ddt.vim への変更を開始してよいか最終確認をお願いします。開始してよければ「開始して」でお知らせください。開始後は各リポジトリの PR リンクを順次こちらに報告します。
User: @copilot Accepted Confirmation: Confirm agent session
Assistant: 承知しました — エージェントセッション確認済みです。これから実作業を開始します。進める内容を簡潔にまとめます。
やること(各リポジトリ: Shougo/ddc.vim, Shougo/ddu.vim, Shougo/ddx.vim, Shougo/ddt.vim)
This pull request was created from Copilot chat.