From 101b734c2fe4b3e3dad6017e02ff9b126bd98cd2 Mon Sep 17 00:00:00 2001 From: Tomas Coufal Date: Sat, 22 May 2021 19:22:03 +0200 Subject: [PATCH] feat(prettier): Support doNotIndent and commentSpacesFromContent Signed-off-by: Tomas Coufal --- package.json | 2 +- src/languageserver/handlers/settingsHandlers.ts | 8 ++++++++ src/languageservice/services/yamlFormatter.ts | 2 ++ src/languageservice/yamlLanguageService.ts | 2 ++ src/yamlSettings.ts | 2 ++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 51f64e3f4..27ff71d17 100755 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "url": "https://github.com/redhat-developer/yaml-language-server.git" }, "optionalDependencies": { - "prettier": "2.0.5" + "prettier": "2.4.0" }, "dependencies": { "js-yaml": "^4.1.0", diff --git a/src/languageserver/handlers/settingsHandlers.ts b/src/languageserver/handlers/settingsHandlers.ts index 2706ce3b4..95cb589d3 100644 --- a/src/languageserver/handlers/settingsHandlers.ts +++ b/src/languageserver/handlers/settingsHandlers.ts @@ -72,6 +72,14 @@ export class SettingsHandler { this.yamlSettings.yamlFormatterSettings.bracketSpacing = settings.yaml.format.bracketSpacing; } + if (settings.yaml.format.doNotIndent !== undefined) { + this.yamlSettings.yamlFormatterSettings.doNotIndent = settings.yaml.format.doNotIndent; + } + + if (settings.yaml.format.commentSpacesFromContent !== undefined) { + this.yamlSettings.yamlFormatterSettings.commentSpacesFromContent = settings.yaml.format.commentSpacesFromContent; + } + if (settings.yaml.format.enable !== undefined) { this.yamlSettings.yamlFormatterSettings.enable = settings.yaml.format.enable; } diff --git a/src/languageservice/services/yamlFormatter.ts b/src/languageservice/services/yamlFormatter.ts index 203cf7491..692647b8c 100644 --- a/src/languageservice/services/yamlFormatter.ts +++ b/src/languageservice/services/yamlFormatter.ts @@ -42,6 +42,8 @@ export class YAMLFormatter { // 'preserve' is the default for Options.proseWrap. See also server.ts proseWrap: 'always' === options.proseWrap ? 'always' : 'never' === options.proseWrap ? 'never' : 'preserve', printWidth: options.printWidth, + commentSpacesFromContent: options.commentSpacesFromContent, + doNotIndent: options.doNotIndent, }; const formatted = prettier.format(text, prettierOptions); diff --git a/src/languageservice/yamlLanguageService.ts b/src/languageservice/yamlLanguageService.ts index 53b1dd3e3..85555ea5d 100644 --- a/src/languageservice/yamlLanguageService.ts +++ b/src/languageservice/yamlLanguageService.ts @@ -116,6 +116,8 @@ export interface CustomFormatterOptions { proseWrap?: string; printWidth?: number; enable?: boolean; + commentSpacesFromContent?: number; + doNotIndent?: boolean; } export interface LanguageService { diff --git a/src/yamlSettings.ts b/src/yamlSettings.ts index 5041aaffa..ea95c23d0 100644 --- a/src/yamlSettings.ts +++ b/src/yamlSettings.ts @@ -51,6 +51,8 @@ export class SettingsState { proseWrap: 'preserve', printWidth: 80, enable: true, + doNotIndent: false, + commentSpacesFromContent: 1, } as CustomFormatterOptions; yamlShouldHover = true; yamlShouldCompletion = true;