From 1e011e6f91c605b0435f94aca366de83544cc391 Mon Sep 17 00:00:00 2001 From: vadson71 Date: Wed, 10 Jan 2024 12:13:38 +0200 Subject: [PATCH] fix: sonar complaints fix (#688) * fix: sonar complaints fix * fix: changeset * fix: regex complexity * fix: bug fix --- .changeset/lovely-dragons-appear.md | 8 ++++++++ packages/binding-parser/src/lexer/token.ts | 17 +++++++++++++++-- .../test/unit/parser/binding-parser.test.ts | 5 +++-- packages/language-server/src/server.ts | 4 ++-- .../src/extension.ts | 4 ++-- 5 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 .changeset/lovely-dragons-appear.md diff --git a/.changeset/lovely-dragons-appear.md b/.changeset/lovely-dragons-appear.md new file mode 100644 index 000000000..43c23f2cf --- /dev/null +++ b/.changeset/lovely-dragons-appear.md @@ -0,0 +1,8 @@ +--- +"vscode-ui5-language-assistant": patch +"@ui5-language-assistant/language-server": patch +"@ui5-language-assistant/binding-parser": patch +"@ui5-language-assistant/vscode-ui5-language-assistant-bas-ext": patch +--- + +Fixed SonarCloud complaints diff --git a/packages/binding-parser/src/lexer/token.ts b/packages/binding-parser/src/lexer/token.ts index 1a7a399cf..40ab94e14 100644 --- a/packages/binding-parser/src/lexer/token.ts +++ b/packages/binding-parser/src/lexer/token.ts @@ -22,10 +22,23 @@ const whiteSpace = createToken({ // group: Lexer.SKIPPED, line_breaks: true, }); + +const specChars = "#!\"'$%&()*+-./;<=>?@\\^_`~|"; +const charsToEscape = "$()*+./?^|\\"; + +const tokens: string[] = specChars.split("").map((token) => { + if (charsToEscape.includes(token)) { + token = "\\" + token; + } + return token; +}); + +const regExLookup = [">", "/", "/", ...tokens].join("|"); +const pattern = new RegExp(`(?:${regExLookup})+`); + const specialChars = createToken({ name: SPECIAL_CHARS, - pattern: - /(?:#|>|/|/|!|"|\$|%|&|'|\(|\)|\*|\+|-|\.|\/|;|<|=|>|\?|@|\\|\^|_|`|~|\||)+/, + pattern, }); const leftCurly = createToken({ diff --git a/packages/binding-parser/test/unit/parser/binding-parser.test.ts b/packages/binding-parser/test/unit/parser/binding-parser.test.ts index 3bcc14139..05d0acd45 100644 --- a/packages/binding-parser/test/unit/parser/binding-parser.test.ts +++ b/packages/binding-parser/test/unit/parser/binding-parser.test.ts @@ -67,9 +67,10 @@ describe("binding parser", () => { continue; } if (only.includes(t)) { - it.only(`${t}`, async () => { + const cb = async () => { await testParser(t); - }); + }; + it.only(`${t}`, cb); // NOSONAR continue; } it(`${t}`, async () => { diff --git a/packages/language-server/src/server.ts b/packages/language-server/src/server.ts index 411de7aa5..00902c69a 100644 --- a/packages/language-server/src/server.ts +++ b/packages/language-server/src/server.ts @@ -104,7 +104,7 @@ connection.onInitialize( } ); -connection.onInitialized(async () => { +connection.onInitialized(async (): Promise => { getLogger().info("`onInitialized` event"); if (hasConfigurationCapability) { // Register for all configuration changes @@ -266,7 +266,7 @@ const validateOpenDocuments = async (changes: FileEvent[]): Promise => { } }; -connection.onDidChangeWatchedFiles(async (changeEvent) => { +connection.onDidChangeWatchedFiles(async (changeEvent): Promise => { getLogger().debug("`onDidChangeWatchedFiles` event", { changeEvent, }); diff --git a/packages/vscode-ui5-language-assistant/src/extension.ts b/packages/vscode-ui5-language-assistant/src/extension.ts index 79c02c598..8442b00d9 100644 --- a/packages/vscode-ui5-language-assistant/src/extension.ts +++ b/packages/vscode-ui5-language-assistant/src/extension.ts @@ -74,11 +74,11 @@ export async function activate(context: ExtensionContext): Promise { client.start().then(() => { client.onNotification( "UI5LanguageAssistant/ui5Model", - async (model: UI5Model) => await updateCurrentModel(model) + async (model: UI5Model): Promise => await updateCurrentModel(model) ); client.onNotification( "UI5LanguageAssistant/context-error", - async (error: Error) => await handleContextError(error) + (error: Error) => handleContextError(error) ); }); window.onDidChangeActiveTextEditor(async () => {