From d7721f8e5e54fe83955cfa3e56aaf0020e641522 Mon Sep 17 00:00:00 2001 From: Saad Jutt Date: Thu, 20 May 2021 22:41:16 +0500 Subject: [PATCH] fix: comments within/outside the statement --- src/utils/trimComments.spec.ts | 9 +++++++++ src/utils/trimComments.ts | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/utils/trimComments.spec.ts b/src/utils/trimComments.spec.ts index 4ede9c3..712b770 100644 --- a/src/utils/trimComments.spec.ts +++ b/src/utils/trimComments.spec.ts @@ -7,6 +7,15 @@ describe('trimComments', () => { /* some comment */ some code; `) ).toEqual({ statement: 'some code;', commentStarted: false }) + + expect( + trimComments(`/* some comment */ + /* some comment */ CODE_Keyword1 /* some comment */ CODE_Keyword2/* some comment */;/* some comment */ + /* some comment */`) + ).toEqual({ + statement: 'CODE_Keyword1 CODE_Keyword2;', + commentStarted: false + }) }) it('should return statment, having multi-line comment', () => { diff --git a/src/utils/trimComments.ts b/src/utils/trimComments.ts index 670de7a..a6b5d2a 100644 --- a/src/utils/trimComments.ts +++ b/src/utils/trimComments.ts @@ -17,6 +17,18 @@ export const trimComments = ( } else { return { statement: '', commentStarted: true } } + } else if (trimmed.includes('/*')) { + const statementBeforeCommentStarts = trimmed.slice(0, trimmed.indexOf('/*')) + const remainingStatement = trimmed.slice( + trimmed.indexOf('/*'), + trimmed.length + ) + + const result = trimComments(remainingStatement, false) + return { + statement: statementBeforeCommentStarts + result.statement, + commentStarted: result.commentStarted + } } return { statement: trimmed, commentStarted: false } }