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 781809fe5530a1f575746fa49499b0eeabd7067a..50a3e53eff3d6444065f34ab56212ec6be9bab5b 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 f6d0e48c7f89085ead04a52fd9679a3ead6c6890..c0aa040bf1999e3c82ae54d56ac9c5bb689fb057 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(['\\{', '\\}', '\\(', '\\)', '\\[', '\\]', '\\@', '\\.', '\\:', + '\\,', '\\;', '\\(', '\\)', '\\"', '\\/', '\\_', '\\-', '\\=', '\\?', '\\<', '\\>', '\\,', '\\!', '\\#', '\:', '\,', + '\\:', '\\|', '\\%', '\\+', '\\`', '\\\\', '\\\'']);