-
Notifications
You must be signed in to change notification settings - Fork 403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: add delay for disposing inline edit adapter to prevent rejection #4400
Conversation
/next |
Walkthrough在 Changes
Sequence Diagram(s)sequenceDiagram
participant C as 调用者
participant L as ExtHostLanguages
participant A as Adapter
C->>L: 调用 $freeInlineEdit(handle, pid)
L->>L: 启动 setTimeout (100ms 延时)
Note right of L: 延迟后进行资源释放
L->>A: 调用 disposeEdit(pid)
Possibly related PRs
Suggested labels
Suggested reviewers
Warning There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure. 🔧 ESLint
yarn install v1.22.22 ✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/extension/src/hosted/api/vscode/ext.host.language.ts (1)
696-707
: 延迟释放内联编辑适配器的修复看起来合理。通过添加 100ms 的延迟来避免内联编辑适配器在 reject 命令完成之前被销毁的问题,这是一个简单有效的解决方案。注释也清晰地解释了这个修改的目的。
不过建议考虑以下几点改进:
- 可以将延迟时间提取为一个命名常量,使代码更易维护
- 考虑使用
disposableTimeout
而不是setTimeout
,以确保定时器在需要时能被正确清理- setTimeout(() => adapter.disposeEdit(pid), 100); + const INLINE_EDIT_DISPOSE_DELAY = 100; + disposableTimeout(() => adapter.disposeEdit(pid), INLINE_EDIT_DISPOSE_DELAY);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
packages/extension/src/hosted/api/vscode/ext.host.language.ts
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (9)
- GitHub Check: 🚀🚀🚀 Next Version for pull request
- GitHub Check: unittest (ubuntu-latest, 18.x, jsdom)
- GitHub Check: build (ubuntu-latest, 20.x)
- GitHub Check: unittest (ubuntu-latest, 18.x, node)
- GitHub Check: build (macos-latest, 20.x)
- GitHub Check: unittest (macos-latest, 18.x, jsdom)
- GitHub Check: ubuntu-latest, Node.js 20.x
- GitHub Check: unittest (macos-latest, 18.x, node)
- GitHub Check: build-windows
🎉 PR Next publish successful! 3.7.2-next-1740323956.0 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4400 +/- ##
==========================================
- Coverage 53.58% 53.58% -0.01%
==========================================
Files 1651 1651
Lines 101806 101806
Branches 22027 22027
==========================================
- Hits 54557 54552 -5
- Misses 39304 39308 +4
- Partials 7945 7946 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
… issues
Types
Background or solution
当前 freeInlineEdit 的执行时机比 reject 命令执行时机更快,导致命令 dispose 后异常
Changelog
add delay for disposing inline edit adapter to prevent rejection
Summary by CodeRabbit