From aeef9eb7bb787870689c9f1c4f8b7ac5152a3db0 Mon Sep 17 00:00:00 2001 From: fanjiaojiao0729 Date: Fri, 8 Dec 2023 15:08:10 +0800 Subject: [PATCH] =?UTF-8?q?new=20api=20check=20bug=20fix:=E5=8D=95?= =?UTF-8?q?=E8=AF=8D=E6=8B=86=E5=88=86=E4=B8=8D=E6=AD=A3=E7=A1=AE=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E5=91=8A=E8=AD=A6=E4=B8=8D=E6=AD=A3=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: fanjiaojiao0729 --- .../src/coreImpl/checker/src/words_check.ts | 13 ++++++++--- .../dts_parser/src/utils/checkUtils.ts | 22 +++++++++++-------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/build-tools/dts_parser/src/coreImpl/checker/src/words_check.ts b/build-tools/dts_parser/src/coreImpl/checker/src/words_check.ts index 781809fe55..50a3e53eff 100644 --- a/build-tools/dts_parser/src/coreImpl/checker/src/words_check.ts +++ b/build-tools/dts_parser/src/coreImpl/checker/src/words_check.ts @@ -27,7 +27,8 @@ import { import { BasicApiInfo } from '../../../typedef/parser/ApiInfoDefination'; import { tagsArrayOfOrder, officialTagArr, CommonFunctions } from '../../../utils/checkUtils'; import { AddErrorLogs } from './compile_info'; -import { compositiveResult, compositiveLocalResult } from '../../../utils/checkUtils'; +import { compositiveResult, compositiveLocalResult, punctuationMarkSet } from '../../../utils/checkUtils'; +import { Set } from 'typescript'; const dictionariesContent: string = fs.readFileSync(path.resolve(__dirname, '../config/dictionaries.txt'), 'utf-8'); const dictionariesArr: string[] = dictionariesContent.split(/[(\r\n)\r\n]+/g); @@ -66,8 +67,14 @@ export class WordsCheck { */ static wordsCheck(apiText: string, baseInfo: BasicApiInfo): void { const reg = /\s{2,}/g; - const regx = /(\/\*|\*\/|\*)|\{|\}|\\n|\\r|\@|\.|\:|\,|\;|\(|\)|\"|\'|\//g; - const fullText = apiText.replace(regx, ' ').replace(reg, ' '); + const regx = /(\/\*|\*\/|\*)|\\n|\\r/g; + let fullText: string = apiText.replace(regx, ' '); + punctuationMarkSet.forEach(punctuationMark => { + const punctuationMarkReg = new RegExp(punctuationMark, 'g'); + if (punctuationMarkReg.test(fullText)) { + fullText = fullText.replace(punctuationMarkReg, ' ').replace(reg, ' '); + } + }); let apiWordsArr = fullText.split(/\s/g); const errorWords: string[] = []; apiWordsArr.forEach((apiWord) => { diff --git a/build-tools/dts_parser/src/utils/checkUtils.ts b/build-tools/dts_parser/src/utils/checkUtils.ts index f6d0e48c7f..c0aa040bf1 100644 --- a/build-tools/dts_parser/src/utils/checkUtils.ts +++ b/build-tools/dts_parser/src/utils/checkUtils.ts @@ -237,13 +237,13 @@ export const inheritTagArr: string[] = ['test', 'famodelonly', 'FAModelOnly', 's * Optional tag */ export const optionalTags: string[] = [ - 'throws', 'static', 'fires', 'systemapi', 'famodelonly', 'FAModelOnly', 'stagemodelonly', + 'static', 'fires', 'systemapi', 'famodelonly', 'FAModelOnly', 'stagemodelonly', 'StageModelOnly', 'crossplatform', 'deprecated', 'test', 'form', 'example', 'atomicservice' ]; /** * conditional optional tag */ -export const conditionalOptionalTags: string[] = ['type', 'default', 'readonly', 'permission']; +export const conditionalOptionalTags: string[] = ['type', 'default', 'readonly', 'permission', 'throws']; /** * All api types that can use the permission tag. @@ -263,18 +263,18 @@ export const permissionOptionalTags: ts.SyntaxKind[] = [ * Each api type corresponds to a set of available tags. */ export const apiLegalityCheckTypeMap: Map = new Map([ - [ts.SyntaxKind.CallSignature, ['param', 'returns', 'permission', 'syscap', 'since']], + [ts.SyntaxKind.CallSignature, ['param', 'returns', 'permission', 'throws', 'syscap', 'since']], [ts.SyntaxKind.ClassDeclaration, ['extends', 'syscap', 'since']], - [ts.SyntaxKind.Constructor, ['param', 'syscap', 'permission', 'since']], + [ts.SyntaxKind.Constructor, ['param', 'syscap', 'permission', 'throws', 'since']], [ts.SyntaxKind.EnumDeclaration, ['enum', 'syscap', 'since']], - [ts.SyntaxKind.FunctionDeclaration, ['param', 'returns', 'permission', 'syscap', 'since']], + [ts.SyntaxKind.FunctionDeclaration, ['param', 'returns', 'permission', 'throws', 'syscap', 'since']], [ts.SyntaxKind.InterfaceDeclaration, ['interface', 'typedef', 'extends', 'syscap', 'since']], - [ts.SyntaxKind.MethodDeclaration, ['param', 'returns', 'permission', 'syscap', 'since']], + [ts.SyntaxKind.MethodDeclaration, ['param', 'returns', 'permission', 'throws', 'syscap', 'since']], [ts.SyntaxKind.MethodSignature, ['param', 'returns', 'permission', 'syscap', 'since']], [ts.SyntaxKind.ModuleDeclaration, ['namespace', 'syscap', 'since']], - [ts.SyntaxKind.PropertyDeclaration, ['type', 'default', 'permission', 'readonly', 'syscap', 'since']], - [ts.SyntaxKind.PropertySignature, ['type', 'default', 'permission', 'readonly', 'syscap', 'since']], - [ts.SyntaxKind.VariableStatement, ['constant', 'default', 'permission', 'syscap', 'since']], + [ts.SyntaxKind.PropertyDeclaration, ['type', 'default', 'permission', 'throws', 'readonly', 'syscap', 'since']], + [ts.SyntaxKind.PropertySignature, ['type', 'default', 'permission', 'throws', 'readonly', 'syscap', 'since']], + [ts.SyntaxKind.VariableStatement, ['constant', 'default', 'permission', 'throws', 'syscap', 'since']], ]); /** @@ -286,3 +286,7 @@ export const compositiveResult: ApiResultSimpleInfo[] = []; * An array of local error messages */ export const compositiveLocalResult: ApiResultInfo[] = []; + +export const punctuationMarkSet: Set = new Set(['\\{', '\\}', '\\(', '\\)', '\\[', '\\]', '\\@', '\\.', '\\:', + '\\,', '\\;', '\\(', '\\)', '\\"', '\\/', '\\_', '\\-', '\\=', '\\?', '\\<', '\\>', '\\,', '\\!', '\\#', '\:', '\,', + '\\:', '\\|', '\\%', '\\+', '\\`', '\\\\', '\\\'']); -- Gitee