diff --git a/src/jsonMode.ts b/src/jsonMode.ts index cbdd06e3..cd7b2113 100644 --- a/src/jsonMode.ts +++ b/src/jsonMode.ts @@ -29,8 +29,10 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void { disposables.push(monaco.languages.registerCompletionItemProvider(languageId, new languageFeatures.CompletionAdapter(worker))); disposables.push(monaco.languages.registerHoverProvider(languageId, new languageFeatures.HoverAdapter(worker))); disposables.push(monaco.languages.registerDocumentSymbolProvider(languageId, new languageFeatures.DocumentSymbolAdapter(worker))); - disposables.push(monaco.languages.registerDocumentFormattingEditProvider(languageId, new languageFeatures.DocumentFormattingEditProvider(worker))); - disposables.push(monaco.languages.registerDocumentRangeFormattingEditProvider(languageId, new languageFeatures.DocumentRangeFormattingEditProvider(worker))); + if (!defaults.diagnosticsOptions.disableDefaultFormatter) { + disposables.push(monaco.languages.registerDocumentFormattingEditProvider(languageId, new languageFeatures.DocumentFormattingEditProvider(worker))); + disposables.push(monaco.languages.registerDocumentRangeFormattingEditProvider(languageId, new languageFeatures.DocumentRangeFormattingEditProvider(worker))); + } disposables.push(new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults)); disposables.push(monaco.languages.setTokensProvider(languageId, createTokenizationSupport(true))); disposables.push(monaco.languages.setLanguageConfiguration(languageId, richEditConfiguration)); diff --git a/src/monaco.contribution.ts b/src/monaco.contribution.ts index 2408c6d7..7c6438ca 100644 --- a/src/monaco.contribution.ts +++ b/src/monaco.contribution.ts @@ -45,7 +45,8 @@ const diagnosticDefault: monaco.languages.json.DiagnosticsOptions = { validate: true, allowComments: true, schemas: [], - enableSchemaRequest: false + enableSchemaRequest: false, + disableDefaultFormatter: false }; const jsonDefaults = new LanguageServiceDefaultsImpl('json', diagnosticDefault); diff --git a/src/monaco.d.ts b/src/monaco.d.ts index c1b21edc..83b5517a 100644 --- a/src/monaco.d.ts +++ b/src/monaco.d.ts @@ -30,10 +30,14 @@ declare module monaco.languages.json { */ readonly schema?: any; }[]; + /** + * Disable the default JSON formatter. + */ + readonly disableDefaultFormatter?: boolean; /** * If set, the schema service would load schema content on-demand with 'fetch' if available */ - readonly enableSchemaRequest? : boolean + readonly enableSchemaRequest? : boolean; } export interface LanguageServiceDefaults {