Allow user to use multiple formatters (#14846)
Fixes #4822 - [x] Release note - [ ] Surface formatting errors via a toast - [x] Doc updates - [x] Have "language-server" accept an optional name of the server. Release Notes: - `format` and `format_on_save` now accept an array of formatting actions to run. - `language_server` formatter option now accepts the name of a language server to use (e.g. `{"language_server": {"name: "ruff"}}`); when not specified, a primary language server is used. --------- Co-authored-by: Thorsten <thorsten@zed.dev>
This commit is contained in:
parent
53b711c2b4
commit
3d1bf09299
7 changed files with 565 additions and 130 deletions
|
@ -13,7 +13,7 @@ use futures::{
|
|||
};
|
||||
use gpui::{AsyncAppContext, Model, ModelContext, Task, WeakModel};
|
||||
use language::{
|
||||
language_settings::{Formatter, LanguageSettings},
|
||||
language_settings::{Formatter, LanguageSettings, SelectedFormatter},
|
||||
Buffer, LanguageServerName, LocalFile,
|
||||
};
|
||||
use lsp::{LanguageServer, LanguageServerId};
|
||||
|
@ -30,8 +30,12 @@ pub fn prettier_plugins_for_language(
|
|||
language_settings: &LanguageSettings,
|
||||
) -> Option<&HashSet<String>> {
|
||||
match &language_settings.formatter {
|
||||
Formatter::Prettier { .. } | Formatter::Auto => Some(&language_settings.prettier.plugins),
|
||||
Formatter::LanguageServer | Formatter::External { .. } | Formatter::CodeActions(_) => None,
|
||||
SelectedFormatter::Auto => Some(&language_settings.prettier.plugins),
|
||||
|
||||
SelectedFormatter::List(list) => list
|
||||
.as_ref()
|
||||
.contains(&Formatter::Prettier)
|
||||
.then_some(&language_settings.prettier.plugins),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue