From b28f1afc55600be6266ee5b2c9318dbe1d906fa1 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Thu, 16 May 2024 19:00:20 +0200 Subject: [PATCH] wip --- server/src/handler.ts | 5 +++-- server/src/server.ts | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/server/src/handler.ts b/server/src/handler.ts index 398dc8fa..2b4d2d81 100644 --- a/server/src/handler.ts +++ b/server/src/handler.ts @@ -162,11 +162,12 @@ export class Handler { } public async onDocumentFormatting(params: LServer.DocumentFormattingParams, - experimentalFormatting: boolean): Promise { + experimentalFormatting: boolean, + formattingDisabled: string[]): Promise { if (experimentalFormatting === true) { return new Formatting(this.reg).findEdits(params.textDocument); } else { - return new abaplint.LanguageServer(this.reg).documentFormatting({textDocument: params.textDocument}); + return new abaplint.LanguageServer(this.reg).documentFormatting({textDocument: params.textDocument}, formattingDisabled); } } diff --git a/server/src/server.ts b/server/src/server.ts index 0df08389..11241a8d 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -16,6 +16,7 @@ if (fs.read === undefined) { } let experimentalFormatting = false; +let formattingDisabled: string[] = []; // create a simple text document manager. The text document manager // supports full document sync only @@ -69,6 +70,9 @@ function initialize() { if (params.initializationOptions.formatting?.enable === false) { documentFormattingProvider = false; } + if (params.initializationOptions.formatting?.disabled !== undefined) { + formattingDisabled = params.initializationOptions.formatting.disabled; + } if (params.initializationOptions.formatting?.experimental === true) { experimentalFormatting = true; } @@ -195,7 +199,7 @@ connection.languages.inlayHint.on(async(params) => { connection.onDocumentFormatting(async(params) => { const handler = await getHandler(); - return handler.onDocumentFormatting(params, experimentalFormatting); + return handler.onDocumentFormatting(params, experimentalFormatting, formattingDisabled); }); connection.onDocumentSymbol(async(params) => {