From a5a9be1d177d0af51912449714feac19cdaca5d7 Mon Sep 17 00:00:00 2001 From: Shuai Wang Date: Tue, 17 Mar 2020 14:01:03 +0800 Subject: [PATCH 1/2] fix some known LU LSP editing bugs --- Composer/packages/lib/code-editor/src/languages/lu.ts | 4 ++-- .../language-understanding/src/LUServer.ts | 8 ++++---- .../language-understanding/src/matchingPattern.ts | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Composer/packages/lib/code-editor/src/languages/lu.ts b/Composer/packages/lib/code-editor/src/languages/lu.ts index d709d8206a..69c845192b 100644 --- a/Composer/packages/lib/code-editor/src/languages/lu.ts +++ b/Composer/packages/lib/code-editor/src/languages/lu.ts @@ -36,12 +36,12 @@ export function registerLULanguage(monaco: typeof monacoEditor) { [/^\s*>\s*[\s\S]*$/, { token: 'comments' }], [/^\s*-/, { token: 'utterrance-indentifier', next: 'utterrance' }], [ - /(@\s*)(prebuilt\s*)(age|datetimeV2|dimension|email|geographyV2|keyPhrase|money|number|ordinal|ordinalV2|percentage|personName|phonenumber|temperature|url|datetime)(\s*[\w_,\s]+)/, + /(@\s*)(prebuilt\s+)(age|datetimeV2|dimension|email|geographyV2|keyPhrase|money|number|ordinal|ordinalV2|percentage|personName|phonenumber|temperature|url|datetime)(\s+[\w_,\s]+)/, ['intent-indentifier', 'entity-type', 'prebult-type', 'entity-name'], ], [ // eslint-disable-next-line security/detect-unsafe-regex - /(@\s*)(ml|prebuilt|regex|list|composite|Pattern\.Any|phraseList)(\s*[\w_]+)/, + /(@\s*)(ml|prebuilt|regex|list|composite|Pattern\.Any|phraseList)(\s+[\w_]+)/, ['intent-indentifier', 'entity-type', 'entity-name'], ], [/(@\s*)(\s*[\w_]+)/, ['intent-indentifier', 'entity-name']], diff --git a/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts b/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts index 5d83d0fcac..fb13ff2175 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts @@ -72,7 +72,9 @@ export class LUServer { this.connection.onCompletion(params => this.completion(params)); this.connection.onDocumentOnTypeFormatting(docTypingParams => this.docTypeFormat(docTypingParams)); this.connection.onRequest((method, params) => { + console.log(method); if (method === LABELEXPERIENCEREQUEST) { + console.log('inside'); this.labelingExperienceHandler(params); } else if (InitializeDocumentsMethodName === method) { const { uri, luOption }: { uri: string; luOption?: LUOption } = params; @@ -193,11 +195,9 @@ export class LUServer { const range = Range.create(position.lineNumber - 1, 0, position.lineNumber - 1, position.column); const curLineContent = document.getText(range); // eslint-disable-next-line security/detect-unsafe-regex - const labeledUtterRegex = /^\s*-([^{}]*\s*\{[\w.@:\s]+\s*=\s*[\w.]+\}[^{}]*)+$/; - + const labeledUtterRegex = /^\s*-([^{}]*\s*\{[\w.@:\s]+\s*=\s*[\w.\s]+\}[^{}]*)+$/; if (labeledUtterRegex.test(curLineContent)) { const newText = util.removeLabelsInUtterance(curLineContent); - const newPos = Position.create(position.lineNumber, 0); const newUnlalbelText = newText + '\n'; const editPreviousLine: TextEdit = TextEdit.insert(newPos, newUnlalbelText); @@ -229,7 +229,7 @@ export class LUServer { const pos = params.position; if (key === '\n' && inputState === 'utterance' && lastLineContent.trim() !== '-') { - const newPos = Position.create(pos.line + 1, 0); + const newPos = Position.create(pos.line, 0); const item: TextEdit = TextEdit.insert(newPos, '- '); edits.push(item); } diff --git a/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts b/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts index 8d574d6ffc..f98319650d 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts @@ -210,7 +210,7 @@ export function extractEntityNameInUseFeature(lineContent: string): string { } export function removeLabelsInUtterance(lineContent: string): string { - const entityLabelRegex = /\{\s*[\w.@:\s]+\s*=\s*[\w.]+\s*\}/g; + const entityLabelRegex = /\{\s*[\w.@:\s]+\s*=\s*[\w.@:\s]+\s*\}/g; let match: RegExpMatchArray | null; let resultStr = ''; let startIdx = 0; From 270192fddf062546e253606463a96fccd4ef5dcc Mon Sep 17 00:00:00 2001 From: Shuai Wang Date: Tue, 17 Mar 2020 14:01:38 +0800 Subject: [PATCH 2/2] remove console.log --- .../language-servers/language-understanding/src/LUServer.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts b/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts index fb13ff2175..691b7dbd85 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts @@ -72,9 +72,7 @@ export class LUServer { this.connection.onCompletion(params => this.completion(params)); this.connection.onDocumentOnTypeFormatting(docTypingParams => this.docTypeFormat(docTypingParams)); this.connection.onRequest((method, params) => { - console.log(method); if (method === LABELEXPERIENCEREQUEST) { - console.log('inside'); this.labelingExperienceHandler(params); } else if (InitializeDocumentsMethodName === method) { const { uri, luOption }: { uri: string; luOption?: LUOption } = params;