diff --git a/demo/index.html b/demo/index.html index bb54704..9e9786f 100644 --- a/demo/index.html +++ b/demo/index.html @@ -30,6 +30,7 @@ 'vs/basic-languages': '../node_modules/monaco-languages/release/dev', 'vs/language/yaml': '../lib/dev', vs: '../node_modules/monaco-editor-core/dev/vs', + prettier: '../node_modules/prettier', }; if (document.location.protocol === 'http:') { // Add support for running local http server @@ -51,6 +52,8 @@ require([ 'vs/basic-languages/monaco.contribution', 'vs/language/yaml/monaco.contribution', + 'prettier/standalone', + 'prettier/parser-yaml', ], function() { const yaml = `p1: `; const modelUri = monaco.Uri.parse('a://b/foo.json'); @@ -68,6 +71,7 @@ hover: true, completion: true, validate: true, + format: true, schemas: [ { uri: 'http://myserver/foo-schema.json', // id of the first schema diff --git a/src/languageservice/services/yamlFormatter.ts b/src/languageservice/services/yamlFormatter.ts index b21e968..99d2967 100644 --- a/src/languageservice/services/yamlFormatter.ts +++ b/src/languageservice/services/yamlFormatter.ts @@ -35,11 +35,12 @@ export class YAMLFormatter { try { const prettier = require('prettier/standalone'); + const parser = require('prettier/parser-yaml'); const text = document.getText(); const formatted = prettier.format( text, - Object.assign(options, { parser: 'yaml' }) + Object.assign(options, { parser: 'yaml', plugins: [parser] }) ); return [ diff --git a/src/monaco.d.ts b/src/monaco.d.ts index ffff962..eb1a1f6 100644 --- a/src/monaco.d.ts +++ b/src/monaco.d.ts @@ -40,6 +40,8 @@ declare namespace monaco.languages.yaml { * Whether or not kubernetes yaml is supported */ readonly isKubernetes?: boolean; + + readonly format?: boolean; } export interface LanguageServiceDefaults {