66 LogMessageType ,
77 Message ,
88 LogMessage ,
9- LogBracketMetadata ,
109 MultilineContextVariable ,
1110} from '../../entities' ;
1211import { LineCodeProcessing } from '../../line-code-processing' ;
@@ -15,19 +14,22 @@ import { DebugMessage } from '../DebugMessage';
1514import { DebugMessageLine } from '../DebugMessageLine' ;
1615import {
1716 getMultiLineContextVariable ,
18- closingBracketLine ,
17+ closingContextLine ,
1918} from '../../utilities' ;
2019import { JSDebugMessageAnonymous } from './JSDebugMessageAnonymous' ;
2120import {
22- LogParenthesisMetadata ,
21+ LogContextMetadata ,
2322 NamedFunctionMetadata ,
2423} from '../../entities/extension/logMessage' ;
2524
2625const logMessageTypeVerificationPriority = _ . sortBy (
2726 [
2827 { logMessageType : LogMessageType . ArrayAssignment , priority : 2 } ,
2928 { logMessageType : LogMessageType . ObjectLiteral , priority : 3 } ,
30- { logMessageType : LogMessageType . ObjectFunctionCall , priority : 4 } ,
29+ {
30+ logMessageType : LogMessageType . ObjectFunctionCallAssignment ,
31+ priority : 4 ,
32+ } ,
3133 { logMessageType : LogMessageType . NamedFunction , priority : 6 } ,
3234 { logMessageType : LogMessageType . NamedFunctionAssignment , priority : 5 } ,
3335 { logMessageType : LogMessageType . MultiLineAnonymousFunction , priority : 7 } ,
@@ -74,8 +76,7 @@ export class JSDebugMessage extends DebugMessage {
7476 return / \) { .* } / . test (
7577 document
7678 . lineAt (
77- ( logMessage . metadata as LogParenthesisMetadata )
78- . closingParenthesisLine ,
79+ ( logMessage . metadata as LogContextMetadata ) . closingContextLine ,
7980 )
8081 . text . replace ( / \s / g, '' ) ,
8182 ) ;
@@ -204,7 +205,7 @@ export class JSDebugMessage extends DebugMessage {
204205 if ( multilineBracesVariable ) {
205206 return this . deepObjectProperty (
206207 document ,
207- multilineBracesVariable . openingBracketLine ,
208+ multilineBracesVariable . openingContextLine ,
208209 `${ propertyNameRegexMatch [ 1 ] } .${ path } ` ,
209210 ) ;
210211 }
@@ -219,7 +220,7 @@ export class JSDebugMessage extends DebugMessage {
219220 . text . split ( '=' ) [ 0 ]
220221 . replace ( / ( c o n s t | l e t | v a r ) / , '' )
221222 . trim ( ) } .${ path } `,
222- line : closingBracketLine ( document , line , BracketType . CURLY_BRACES ) ,
223+ line : closingContextLine ( document , line , BracketType . CURLY_BRACES ) ,
223224 } ;
224225 }
225226 return null ;
@@ -232,29 +233,29 @@ export class JSDebugMessage extends DebugMessage {
232233 tabSize : number ,
233234 extensionProperties : ExtensionProperties ,
234235 ) : void {
235- const logMsg : LogMessage = this . logMessage ( document , lineOfSelectedVar ) ;
236- const deepObjectProperty =
237- LogMessageType . MultilineBraces === logMsg . logMessageType
238- ? this . deepObjectProperty (
239- document ,
240- ( logMsg . metadata as LogBracketMetadata ) . openingBracketLine ,
241- selectedVar ,
242- )
243- : null ;
236+ const logMsg : LogMessage = this . logMessage (
237+ document ,
238+ lineOfSelectedVar ,
239+ selectedVar ,
240+ ) ;
244241 const lineOfLogMsg : number = this . line (
245242 document ,
246- deepObjectProperty ? deepObjectProperty . line : lineOfSelectedVar ,
243+ lineOfSelectedVar ,
247244 selectedVar ,
248245 logMsg ,
249246 ) ;
250247 const spacesBeforeMsg : string = this . spacesBeforeLogMsg (
251248 document ,
252- deepObjectProperty ? deepObjectProperty . line : lineOfSelectedVar ,
249+ ( logMsg . metadata as LogContextMetadata ) ?. deepObjectLine
250+ ? ( logMsg . metadata as LogContextMetadata ) ?. deepObjectLine
251+ : lineOfSelectedVar ,
253252 lineOfLogMsg ,
254253 ) ;
255254 const debuggingMsgContent : string = this . constructDebuggingMsgContent (
256255 document ,
257- deepObjectProperty ? deepObjectProperty . path : selectedVar ,
256+ ( logMsg . metadata as LogContextMetadata ) ?. deepObjectPath
257+ ? ( logMsg . metadata as LogContextMetadata ) ?. deepObjectPath
258+ : selectedVar ,
258259 lineOfSelectedVar ,
259260 lineOfLogMsg ,
260261 omit ( extensionProperties , [
@@ -273,8 +274,7 @@ export class JSDebugMessage extends DebugMessage {
273274 const emptyBlockLine =
274275 logMsg . logMessageType === LogMessageType . MultilineParenthesis
275276 ? document . lineAt (
276- ( logMsg . metadata as LogParenthesisMetadata )
277- . closingParenthesisLine ,
277+ ( logMsg . metadata as LogContextMetadata ) . closingContextLine ,
278278 )
279279 : document . lineAt ( ( logMsg . metadata as NamedFunctionMetadata ) . line ) ;
280280 this . emptyBlockDebuggingMsg (
@@ -312,7 +312,11 @@ export class JSDebugMessage extends DebugMessage {
312312 extensionProperties . insertEmptyLineAfterLogMessage ,
313313 ) ;
314314 }
315- logMessage ( document : TextDocument , selectionLine : number ) : LogMessage {
315+ logMessage (
316+ document : TextDocument ,
317+ selectionLine : number ,
318+ selectedVar : string ,
319+ ) : LogMessage {
316320 const currentLineText : string = document . lineAt ( selectionLine ) . text ;
317321 const multilineParenthesisVariable = getMultiLineContextVariable (
318322 document ,
@@ -402,34 +406,90 @@ export class JSDebugMessage extends DebugMessage {
402406 } ;
403407 } ,
404408 [ LogMessageType . MultilineBraces ] : ( ) => {
409+ const isChecked =
410+ multilineBracesVariable !== null &&
411+ ! this . lineCodeProcessing . isAssignedToVariable ( currentLineText ) &&
412+ ! this . lineCodeProcessing . isAffectationToVariable ( currentLineText ) ;
413+ // FIXME: No need for multilineBracesVariable !== null since it contribute already in the value of isChecked boolean
414+ if ( isChecked && multilineBracesVariable !== null ) {
415+ const deepObjectProperty = this . deepObjectProperty (
416+ document ,
417+ multilineBracesVariable ?. openingContextLine ,
418+ selectedVar ,
419+ ) ;
420+ if ( deepObjectProperty ) {
421+ const multilineBracesObjectScope = getMultiLineContextVariable (
422+ document ,
423+ deepObjectProperty . line ,
424+ BracketType . CURLY_BRACES ,
425+ ) ;
426+ return {
427+ isChecked : true ,
428+ metadata : {
429+ openingContextLine :
430+ multilineBracesObjectScope ?. openingContextLine as number ,
431+ closingContextLine :
432+ multilineBracesObjectScope ?. closingContextLine as number ,
433+ deepObjectLine : deepObjectProperty . line ,
434+ deepObjectPath : deepObjectProperty . path ,
435+ } as Pick < LogMessage , 'metadata' > ,
436+ } ;
437+ }
438+ return {
439+ isChecked : true ,
440+ metadata : {
441+ openingContextLine :
442+ multilineBracesVariable ?. openingContextLine as number ,
443+ closingContextLine :
444+ multilineBracesVariable ?. closingContextLine as number ,
445+ } as Pick < LogMessage , 'metadata' > ,
446+ } ;
447+ }
405448 return {
406- isChecked :
407- multilineBracesVariable !== null &&
408- ! this . lineCodeProcessing . isAssignedToVariable ( currentLineText ) ,
409- metadata : {
410- openingBracketLine :
411- multilineBracesVariable ?. openingBracketLine as number ,
412- closingBracketLine :
413- multilineBracesVariable ?. closingBracketLine as number ,
414- } as Pick < LogMessage , 'metadata' > ,
449+ isChecked : false ,
415450 } ;
416451 } ,
417452 [ LogMessageType . MultilineParenthesis ] : ( ) => {
453+ const isChecked = multilineParenthesisVariable !== null ;
454+ if ( isChecked ) {
455+ const isOpeningCurlyBraceContext = document
456+ . lineAt ( multilineParenthesisVariable ?. closingContextLine as number )
457+ . text . includes ( '{' ) ;
458+ const isOpeningParenthesisContext = document
459+ . lineAt ( selectionLine )
460+ . text . includes ( '(' ) ;
461+ if ( isOpeningCurlyBraceContext || isOpeningParenthesisContext ) {
462+ if ( this . lineCodeProcessing . isAssignedToVariable ( currentLineText ) ) {
463+ return {
464+ isChecked : true ,
465+ metadata : {
466+ openingContextLine : selectionLine ,
467+ closingContextLine : closingContextLine (
468+ document ,
469+ multilineParenthesisVariable ?. closingContextLine as number ,
470+ isOpeningCurlyBraceContext
471+ ? BracketType . CURLY_BRACES
472+ : BracketType . PARENTHESIS ,
473+ ) ,
474+ } as Pick < LogMessage , 'metadata' > ,
475+ } ;
476+ }
477+ return {
478+ isChecked : true ,
479+ metadata : {
480+ openingContextLine :
481+ multilineParenthesisVariable ?. openingContextLine as number ,
482+ closingContextLine :
483+ multilineParenthesisVariable ?. closingContextLine as number ,
484+ } as Pick < LogMessage , 'metadata' > ,
485+ } ;
486+ }
487+ }
418488 return {
419- isChecked :
420- multilineParenthesisVariable !== null &&
421- document
422- . lineAt ( multilineParenthesisVariable . closingBracketLine )
423- . text . includes ( '{' ) ,
424- metadata : {
425- openingParenthesisLine :
426- multilineParenthesisVariable ?. openingBracketLine as number ,
427- closingParenthesisLine :
428- multilineParenthesisVariable ?. closingBracketLine as number ,
429- } as Pick < LogMessage , 'metadata' > ,
489+ isChecked : false ,
430490 } ;
431491 } ,
432- [ LogMessageType . ObjectFunctionCall ] : ( ) => {
492+ [ LogMessageType . ObjectFunctionCallAssignment ] : ( ) => {
433493 if ( document . lineCount === selectionLine + 1 ) {
434494 return {
435495 isChecked : false ,
@@ -439,9 +499,10 @@ export class JSDebugMessage extends DebugMessage {
439499 . lineAt ( selectionLine + 1 )
440500 . text . replace ( / \s / g, '' ) ;
441501 return {
442- isChecked : this . lineCodeProcessing . isObjectFunctionCall (
443- `${ currentLineText } \n${ nextLineText } ` ,
444- ) ,
502+ isChecked :
503+ this . lineCodeProcessing . isObjectFunctionCall (
504+ `${ currentLineText } \n${ nextLineText } ` ,
505+ ) && this . lineCodeProcessing . isAssignedToVariable ( currentLineText ) ,
445506 } ;
446507 } ,
447508 [ LogMessageType . NamedFunction ] : ( ) => {
@@ -513,7 +574,7 @@ export class JSDebugMessage extends DebugMessage {
513574 if (
514575 lineOfSelectedVar > currentLineNum &&
515576 lineOfSelectedVar <
516- closingBracketLine (
577+ closingContextLine (
517578 document ,
518579 currentLineNum ,
519580 BracketType . CURLY_BRACES ,
@@ -535,7 +596,7 @@ export class JSDebugMessage extends DebugMessage {
535596 if (
536597 lineOfSelectedVar >= currentLineNum &&
537598 lineOfSelectedVar <
538- closingBracketLine (
599+ closingContextLine (
539600 document ,
540601 currentLineNum ,
541602 BracketType . CURLY_BRACES ,
@@ -576,7 +637,7 @@ export class JSDebugMessage extends DebugMessage {
576637 lines : [ ] ,
577638 } ;
578639 logMessage . spaces = this . spacesBeforeLogMsg ( document , i , i ) ;
579- const closedParenthesisLine = closingBracketLine (
640+ const closedParenthesisLine = closingContextLine (
580641 document ,
581642 i ,
582643 BracketType . PARENTHESIS ,
0 commit comments