mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 09:26:19 +04:00
Respect lsp definition order for code actions (#9590)
This commit is contained in:
parent
cf99615b43
commit
07cb24abdd
@ -150,6 +150,8 @@ ### Configuring Language Servers for a language
|
||||
|
||||
Different languages can use the same language server instance, e.g. `typescript-language-server` is used for javascript, jsx, tsx and typescript by default.
|
||||
|
||||
The definition order of language servers affects the order in the results list of code action menu.
|
||||
|
||||
In case multiple language servers are specified in the `language-servers` attribute of a `language`,
|
||||
it's often useful to only enable/disable certain language-server features for these language servers.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
use futures_util::{stream::FuturesUnordered, FutureExt};
|
||||
use futures_util::{stream::FuturesOrdered, FutureExt};
|
||||
use helix_lsp::{
|
||||
block_on,
|
||||
lsp::{
|
||||
@ -341,7 +341,7 @@ fn nested_to_flat(
|
||||
|
||||
let mut seen_language_servers = HashSet::new();
|
||||
|
||||
let mut futures: FuturesUnordered<_> = doc
|
||||
let mut futures: FuturesOrdered<_> = doc
|
||||
.language_servers_with_feature(LanguageServerFeature::DocumentSymbols)
|
||||
.filter(|ls| seen_language_servers.insert(ls.id()))
|
||||
.map(|language_server| {
|
||||
@ -416,7 +416,7 @@ pub fn workspace_symbol_picker(cx: &mut Context) {
|
||||
let get_symbols = move |pattern: String, editor: &mut Editor| {
|
||||
let doc = doc!(editor);
|
||||
let mut seen_language_servers = HashSet::new();
|
||||
let mut futures: FuturesUnordered<_> = doc
|
||||
let mut futures: FuturesOrdered<_> = doc
|
||||
.language_servers_with_feature(LanguageServerFeature::WorkspaceSymbols)
|
||||
.filter(|ls| seen_language_servers.insert(ls.id()))
|
||||
.map(|language_server| {
|
||||
@ -574,7 +574,7 @@ pub fn code_action(cx: &mut Context) {
|
||||
|
||||
let mut seen_language_servers = HashSet::new();
|
||||
|
||||
let mut futures: FuturesUnordered<_> = doc
|
||||
let mut futures: FuturesOrdered<_> = doc
|
||||
.language_servers_with_feature(LanguageServerFeature::CodeAction)
|
||||
.filter(|ls| seen_language_servers.insert(ls.id()))
|
||||
// TODO this should probably already been filtered in something like "language_servers_with_feature"
|
||||
|
@ -285,11 +285,6 @@ macro_rules! language_server {
|
||||
let language_server = language_server!(item);
|
||||
let offset_encoding = language_server.offset_encoding();
|
||||
|
||||
let language_server = editor
|
||||
.language_servers
|
||||
.get_by_id(item.language_server_id)
|
||||
.unwrap();
|
||||
|
||||
// resolve item if not yet resolved
|
||||
if !item.resolved {
|
||||
if let Some(resolved) =
|
||||
|
Loading…
Reference in New Issue
Block a user