Fix duplicated Fix with Assistant
code actions (#22911)
This PR fixes the duplicated `Fix with Assistant` code actions that were being shown in the code actions menu. This fix isn't 100% ideal, as there is an edge case in buffers that are already open when the workspace loads, as we may not observe the feature flags in time to register the code action providers by the time we receive the event that an item was added to the workspace. Closes https://github.com/zed-industries/zed/issues/22400. Release Notes: - Fixed duplicate "Fix with Assistant" entries showing in the code action list.
This commit is contained in:
parent
8b4370f170
commit
2143608b5d
2 changed files with 26 additions and 7 deletions
|
@ -19,6 +19,7 @@ use editor::{
|
|||
Anchor, AnchorRangeExt, CodeActionProvider, Editor, EditorEvent, ExcerptId, ExcerptRange,
|
||||
GutterDimensions, MultiBuffer, MultiBufferSnapshot, ToOffset as _, ToPoint,
|
||||
};
|
||||
use feature_flags::{Assistant2FeatureFlag, FeatureFlagViewExt as _};
|
||||
use fs::Fs;
|
||||
use util::ResultExt;
|
||||
|
||||
|
@ -50,10 +51,17 @@ pub fn init(
|
|||
) {
|
||||
cx.set_global(InlineAssistant::new(fs, prompt_builder, telemetry));
|
||||
cx.observe_new_views(|_workspace: &mut Workspace, cx| {
|
||||
let workspace = cx.view().clone();
|
||||
InlineAssistant::update_global(cx, |inline_assistant, cx| {
|
||||
inline_assistant.register_workspace(&workspace, cx)
|
||||
cx.observe_flag::<Assistant2FeatureFlag, _>({
|
||||
|is_assistant2_enabled, _view, cx| {
|
||||
if is_assistant2_enabled {
|
||||
let workspace = cx.view().clone();
|
||||
InlineAssistant::update_global(cx, |inline_assistant, cx| {
|
||||
inline_assistant.register_workspace(&workspace, cx)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
.detach();
|
||||
})
|
||||
.detach();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue