File tree 2 files changed +29
-2
lines changed
2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -4,7 +4,6 @@ const { openMockFile, getFirstResponseOfType } = require('./_helpers');
4
4
5
5
const mockFileName = 'main.ts' ;
6
6
7
-
8
7
describe ( 'Errors' , ( ) => {
9
8
it ( 'should return error for unknown property' , ( ) => {
10
9
const server = createServer ( ) ;
@@ -115,4 +114,27 @@ describe('Errors', () => {
115
114
assert . strictEqual ( error . end . offset , 8 ) ;
116
115
} ) ;
117
116
} ) ;
117
+
118
+ it ( 'should not error with interpolation at start, followed by semicolon #22' , ( ) => {
119
+ const server = createServer ( ) ;
120
+
121
+ const lines = [
122
+ "function css(...args){}" ,
123
+ "const mixin = ''" ,
124
+ "css`" ,
125
+ " ${mixin};" ,
126
+ " color: blue;" ,
127
+ "`"
128
+ ]
129
+
130
+ openMockFile ( server , mockFileName , lines . join ( '\n' ) ) ;
131
+
132
+ server . send ( { command : 'semanticDiagnosticsSync' , arguments : { file : mockFileName } } ) ;
133
+
134
+ return server . close ( ) . then ( ( ) => {
135
+ const errorResponse = getFirstResponseOfType ( 'semanticDiagnosticsSync' , server ) ;
136
+ assert . isTrue ( errorResponse . success ) ;
137
+ assert . strictEqual ( errorResponse . body . length , 0 ) ;
138
+ } )
139
+ } )
118
140
} )
Original file line number Diff line number Diff line change @@ -38,7 +38,12 @@ export = (mod: { typescript: typeof ts }) => {
38
38
const placeholder = templateString . slice ( start , end ) ;
39
39
const pre = templateString . slice ( 0 , start ) ;
40
40
const replacementChar = pre . match ( / ( ^ | \n ) \s * $ / g) ? ' ' : 'x' ;
41
- return placeholder . replace ( / ./ gm, c => c === '\n' ? '\n' : replacementChar ) ;
41
+
42
+ let result = placeholder . replace ( / ./ gm, c => c === '\n' ? '\n' : replacementChar ) ;
43
+ if ( replacementChar === ' ' && templateString . charAt ( end ) === ';' ) {
44
+ result = '$a:0' + result . slice ( 4 ) ;
45
+ }
46
+ return result ;
42
47
} ,
43
48
} , { logger } ) ;
44
49
} ,
You can’t perform that action at this time.
0 commit comments