diff --git a/src/Domain/Lang/DocommentDomainCSharp.ts b/src/Domain/Lang/DocommentDomainCSharp.ts index dbcdd3d..52726b2 100644 --- a/src/Domain/Lang/DocommentDomainCSharp.ts +++ b/src/Domain/Lang/DocommentDomainCSharp.ts @@ -116,6 +116,7 @@ export class DocommentDomainCSharp extends DocommentDomain { case CodeType.Field: break; case CodeType.Property: + hasReturn = SyntacticAnalysisCSharp.HasPropertyReturn(code); break; case CodeType.None: return ''; diff --git a/src/SyntacticAnalysis/SyntacticAnalysisCSharp.ts b/src/SyntacticAnalysis/SyntacticAnalysisCSharp.ts index 72c4f22..7b225fe 100644 --- a/src/SyntacticAnalysis/SyntacticAnalysisCSharp.ts +++ b/src/SyntacticAnalysis/SyntacticAnalysisCSharp.ts @@ -39,7 +39,7 @@ export class SyntacticAnalysisCSharp { } public static IsProperty(code: string): boolean { - return code.match(/\w+[^)]?\b{/) !== null; + return code.match(/[\w\S]+[^)]?\b\s*{/) !== null; } public static IsField(code: string): boolean { @@ -47,12 +47,12 @@ export class SyntacticAnalysisCSharp { } public static IsMethod(code: string): boolean { - return code.match(/\w\s\w*\s*\(.*\)/) !== null; + return code.match(/[\w\S]\s+[\w\S]+\s*\(.*\)/) !== null; } public static GetMethodParamNameList(code: string): Array { - const params: RegExpMatchArray = code.match(/\w\s\w*\s*\((.*)\)/); + const params: RegExpMatchArray = code.match(/[\w\S]\s+[\w\S]+\s*\((.*)\)/); const isMatched = (params === null || params.length !== 2); if (isMatched) return null; @@ -69,11 +69,21 @@ export class SyntacticAnalysisCSharp { } public static HasMethodReturn(code: string): boolean { - const returns: RegExpMatchArray = code.match(/(\w+)\s\w+\s*\(.*\)/); + const returns: RegExpMatchArray = code.match(/([\w\S]+)\s+[\w\S]+\s*\(.*\)/); const isMatched = (returns === null || returns.length !== 2); if (isMatched) return false; return (returns[1].match(this.RESERVED_WORDS) === null) ? true : false; } + + public static HasPropertyReturn(code: string): boolean { + const returns: RegExpMatchArray = code.match(/([\w\S]+)\s+[\w\S]+\s*\{/); + + const isMatched = (returns === null || returns.length !== 2); + if (isMatched) return false; + + return (returns[1].match(this.RESERVED_WORDS) === null) ? true : false; + } + }