From ed54af337d3993b4e57702e11ff54230fdb1123e Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 24 Jan 2025 12:51:16 -0500 Subject: [PATCH] Support `yaml-language-server` as formatter without `lsp` settings (#23612) - Closes: https://github.com/zed-industries/zed/issues/20183 --- crates/languages/src/yaml.rs | 6 +++++- docs/src/languages/yaml.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/crates/languages/src/yaml.rs b/crates/languages/src/yaml.rs index 91f6e48aaef8aaf10f06f102c37e2d70e9e88508..24ee1c674dcaece5c2e5ee3a51888d6d14f56939 100644 --- a/crates/languages/src/yaml.rs +++ b/crates/languages/src/yaml.rs @@ -143,7 +143,11 @@ impl LspAdapter for YamlLspAdapter { .language(Some(location), Some(&"YAML".into()), cx) .tab_size })?; - let mut options = serde_json::json!({"[yaml]": {"editor.tabSize": tab_size}}); + + let mut options = serde_json::json!({ + "[yaml]": {"editor.tabSize": tab_size}, + "yaml": {"format": {"enable": true}} + }); let project_options = cx.update(|cx| { language_server_settings(delegate.as_ref(), &Self::SERVER_NAME, cx) diff --git a/docs/src/languages/yaml.md b/docs/src/languages/yaml.md index 7b840d08252ca4a7b2ebeb95d0bd6e9568a82ead..971f4742145da5b9701423765b946b2b9158061e 100644 --- a/docs/src/languages/yaml.md +++ b/docs/src/languages/yaml.md @@ -30,6 +30,39 @@ You can configure various [yaml-language-server settings](https://github.com/red Note, settings keys must be nested, so `yaml.keyOrdering` becomes `{"yaml": { "keyOrdering": true }}`. +## Formatting + +By default Zed will use prettier for formatting YAML files. + +### Prettier Formatting + +You can customize the formatting behavior of Prettier. For example to use single-quotes in yaml files add the following to a `.prettierrc`: + +```json +{ + "overrides": [ + { + "files": ["*.yaml", "*.yml"] + "options": { + "singleQuote": false + } + } + ] +} +``` + +### yaml-language-server Formatting + +To use `yaml-language-server` instead of Prettier for YAML formatting, add the following to your Zed settings.json: + +```json + "languages": { + "YAML": { + "formatter": "language_server" + } + } +``` + ## Schemas By default yaml-language-server will attempt to determine the correct schema for a given yaml file and retrieve the appropriate JSON Schema from [Json Schema Store](https://schemastore.org/).