@@ -535,7 +535,6 @@ pub fn workspace_diagnostics_picker(cx: &mut Context) {
536struct CodeActionOrCommandItem {
536struct CodeActionOrCommandItem {
537 lsp_item: lsp::CodeActionOrCommand,
537 lsp_item: lsp::CodeActionOrCommand,
538− offset_encoding: OffsetEncoding,
539 language_server_id: usize,
538 language_server_id: usize,
@@ -637,9 +636,9 @@ pub fn code_action(cx: &mut Context) {
638 let code_action_request =
637 let code_action_request =
639 language_server.code_actions(doc.identifier(), range, code_action_context)?;
638 language_server.code_actions(doc.identifier(), range, code_action_context)?;
640− Some((code_action_request, offset_encoding, language_server_id))
639+ Some((code_action_request, language_server_id))
642− .map(|(request, offset_encoding, ls_id)| async move {
641+ .map(|(request, ls_id)| async move {
643 let json = request.await?;
642 let json = request.await?;
644 let response: Option<lsp::CodeActionResponse> = serde_json::from_value(json)?;
643 let response: Option<lsp::CodeActionResponse> = serde_json::from_value(json)?;
645 let mut actions = match response {
644 let mut actions = match response {
@@ -695,7 +694,6 @@ pub fn code_action(cx: &mut Context) {
695 .into_iter()
694 .into_iter()
696 .map(|lsp_item| CodeActionOrCommandItem {
695 .map(|lsp_item| CodeActionOrCommandItem {
697 lsp_item,
696 lsp_item,
699 language_server_id: ls_id,
697 language_server_id: ls_id,
701 .collect())
699 .collect())
@@ -727,7 +725,11 @@ pub fn code_action(cx: &mut Context) {
728 // always present here
726 // always present here
729 let action = action.unwrap();
727 let action = action.unwrap();
730− let offset_encoding = action.offset_encoding;
728+ let Some(language_server) = editor.language_servers.get_by_id(action.language_server_id) else {
729+ editor.set_error("Language Server disappeared");
732+ let offset_encoding = language_server.offset_encoding();
732 match &action.lsp_item {
734 match &action.lsp_item {
733 lsp::CodeActionOrCommand::Command(command) => {
735 lsp::CodeActionOrCommand::Command(command) => {