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 {