@@ -256,41 +256,7 @@ class DisplayFile {
256
256
conditions : [ ]
257
257
} ;
258
258
259
- let inString = false ;
260
- let value = `` ;
261
-
262
- keywordStrings . forEach ( keywordString => {
263
- if ( keywordString . startsWith ( `'` ) ) {
264
- inString = true ;
265
- keywordString = keywordString . substring ( 1 ) ;
266
-
267
- if ( keywordString . endsWith ( `'` ) || keywordString . endsWith ( `-` ) ) {
268
- keywordString = keywordString . substring ( 0 , keywordString . length - 1 ) ;
269
- }
270
-
271
- result . value = keywordString ;
272
- value += `!` ;
273
- return ;
274
- }
275
-
276
- if ( keywordString . endsWith ( '-' ) ) {
277
- if ( inString )
278
- result . value += keywordString . substring ( 0 , keywordString . length - 1 ) ;
279
- else
280
- value += keywordString . substring ( 0 , keywordString . length - 1 ) ;
281
- } else
282
- if ( keywordString . endsWith ( `'` ) ) {
283
- if ( inString ) {
284
- result . value += keywordString . substring ( 0 , keywordString . length - 1 ) ;
285
- inString = false ;
286
- }
287
- } else {
288
- value += keywordString + ` ` ;
289
- }
290
-
291
- value += `!` ;
292
- } ) ;
293
-
259
+ let value = keywordStrings . join ( ` !` ) + ` !` ;
294
260
let conditionalLine = 1 ;
295
261
296
262
if ( value . length > 0 ) {
@@ -299,24 +265,45 @@ class DisplayFile {
299
265
let inBrakcets = 0 ;
300
266
let word = `` ;
301
267
let innerValue = `` ;
268
+ let inString = false ;
302
269
303
270
for ( let i = 0 ; i < value . length ; i ++ ) {
304
271
switch ( value [ i ] ) {
272
+ case `+` :
273
+ case `-` :
274
+ if ( ! inString ) {
275
+ innerValue += value [ i ] ;
276
+ }
277
+ break ;
278
+
305
279
case `!` :
306
- if ( inBrakcets > 0 ) {
280
+ if ( inBrakcets > 0 && ! inString ) {
307
281
innerValue += value [ i ] ;
308
282
} else {
309
283
conditionalLine += 1 ;
310
284
}
311
285
break ;
286
+
287
+ case `'` :
288
+ if ( inString ) {
289
+ inBrakcets = 0 ;
290
+ inString = false ;
291
+
292
+ result . value = innerValue ;
293
+ innerValue = `` ;
294
+ } else {
295
+ inString = true ;
296
+ }
297
+ break ;
298
+
312
299
case `(` :
313
300
inBrakcets ++ ;
314
301
break ;
315
302
case `)` :
316
303
inBrakcets -- ;
317
304
break ;
318
305
case ` ` :
319
- if ( inBrakcets > 0 ) {
306
+ if ( inBrakcets > 0 || inString ) {
320
307
innerValue += value [ i ] ;
321
308
} else {
322
309
if ( word . length > 0 ) {
@@ -334,7 +321,7 @@ class DisplayFile {
334
321
}
335
322
break ;
336
323
default :
337
- if ( inBrakcets > 0 )
324
+ if ( inBrakcets > 0 || inString )
338
325
innerValue += value [ i ] ;
339
326
else
340
327
word += value [ i ] ;
0 commit comments