Use language settings' prettier parsers as a fallback for files with no path (#12273)
Follow-up of https://github.com/zed-industries/zed/pull/12095#issuecomment-2123230762 reverting back part of https://github.com/zed-industries/zed/pull/11558 that was related to `language.toml` parsing. Now all extensions that define `prettier_parser_name` in their language configs, will enable formatting untitled buffers without any extra language settings like ```json { "languages": { "JSON": { "prettier": { "allowed": true, "parser": "json" } } } } ``` Release Notes: - Improved ergonomics of untitled buffer formatting with prettier, no extra language settings are needed by default.
This commit is contained in:
parent
d5fe2c85d8
commit
32f11dfa00
9 changed files with 24 additions and 6 deletions
|
@ -316,8 +316,10 @@ impl Prettier {
|
|||
})
|
||||
.collect();
|
||||
|
||||
if prettier_settings.parser.is_none() && buffer_path.is_none() {
|
||||
log::error!("Formatting unsaved file with prettier failed. No prettier parser configured for language");
|
||||
let prettier_parser = prettier_settings.parser.as_deref().or_else(|| buffer_language.and_then(|language| language.prettier_parser_name()));
|
||||
|
||||
if prettier_parser.is_none() && buffer_path.is_none() {
|
||||
log::error!("Formatting unsaved file with prettier failed. No prettier parser configured for language {buffer_language:?}");
|
||||
return Err(anyhow!("Cannot determine prettier parser for unsaved file"));
|
||||
}
|
||||
|
||||
|
@ -331,7 +333,7 @@ impl Prettier {
|
|||
anyhow::Ok(FormatParams {
|
||||
text: buffer.text(),
|
||||
options: FormatOptions {
|
||||
parser: prettier_settings.parser.clone(),
|
||||
parser: prettier_parser.map(ToOwned::to_owned),
|
||||
plugins,
|
||||
path: buffer_path,
|
||||
prettier_options,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue