@@ -462,4 +462,52 @@ describe('Impala SQL Syntax Suggestion', () => {
462
462
expect ( suggestion ) . not . toBeUndefined ( ) ;
463
463
expect ( suggestion ?. wordRanges . map ( ( token ) => token . text ) ) . toEqual ( [ 'YEAR' ] ) ;
464
464
} ) ;
465
+
466
+ test ( 'Syntax suggestion after a comment' , ( ) => {
467
+ const sql = `-- the comment\nSELECT * FROM db.` ;
468
+ const pos : CaretPosition = {
469
+ lineNumber : 2 ,
470
+ column : 18 ,
471
+ } ;
472
+
473
+ const syntaxes = impala . getSuggestionAtCaretPosition ( sql , pos ) ?. syntax ;
474
+ const suggestion = syntaxes ?. find (
475
+ ( syn ) => syn . syntaxContextType === EntityContextType . TABLE
476
+ ) ;
477
+
478
+ expect ( suggestion ) . not . toBeUndefined ( ) ;
479
+ expect ( suggestion ?. wordRanges . map ( ( token ) => token . text ) ) . toEqual ( [ 'db' , '.' ] ) ;
480
+ } ) ;
481
+
482
+ test ( 'Syntax suggestion after comments' , ( ) => {
483
+ const sql = `-- the comment 1\n-- the comment 2\nSELECT * FROM db.` ;
484
+ const pos : CaretPosition = {
485
+ lineNumber : 3 ,
486
+ column : 18 ,
487
+ } ;
488
+
489
+ const syntaxes = impala . getSuggestionAtCaretPosition ( sql , pos ) ?. syntax ;
490
+ const suggestion = syntaxes ?. find (
491
+ ( syn ) => syn . syntaxContextType === EntityContextType . TABLE
492
+ ) ;
493
+
494
+ expect ( suggestion ) . not . toBeUndefined ( ) ;
495
+ expect ( suggestion ?. wordRanges . map ( ( token ) => token . text ) ) . toEqual ( [ 'db' , '.' ] ) ;
496
+ } ) ;
497
+
498
+ test ( 'Syntax suggestion after comments' , ( ) => {
499
+ const sql = `-- SELECT FROM t1;\n-- the comment 1\n-- the comment 2\nSELECT * FROM db.` ;
500
+ const pos : CaretPosition = {
501
+ lineNumber : 4 ,
502
+ column : 18 ,
503
+ } ;
504
+
505
+ const syntaxes = impala . getSuggestionAtCaretPosition ( sql , pos ) ?. syntax ;
506
+ const suggestion = syntaxes ?. find (
507
+ ( syn ) => syn . syntaxContextType === EntityContextType . TABLE
508
+ ) ;
509
+
510
+ expect ( suggestion ) . not . toBeUndefined ( ) ;
511
+ expect ( suggestion ?. wordRanges . map ( ( token ) => token . text ) ) . toEqual ( [ 'db' , '.' ] ) ;
512
+ } ) ;
465
513
} ) ;
0 commit comments