@@ -234,6 +234,179 @@ Execute (syntax):
234
234
AssertEqual SyntaxOf('\./\.'), 'nixPath'
235
235
AssertEqual SyntaxOf('/etc/passwd'), 'nixPath'
236
236
237
+ Given nix (path-with-interpolation-simple):
238
+ ./snens/${bar}/baz
239
+
240
+ Execute (syntax):
241
+ AssertEqual SyntaxOf('./'), 'nixInterpolatedPath'
242
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
243
+ AssertEqual SyntaxOf('/baz'), 'nixInterpolatedPath'
244
+ AssertEqual SyntaxAt(1, 8), 'nixInterpolatedPath'
245
+ AssertEqual SyntaxAt(1, 15), 'nixInterpolatedPath'
246
+
247
+ Given nix (path-with-interpolation-in-path-part):
248
+ ./snens/${bar}kek/end
249
+
250
+ Execute (syntax):
251
+ AssertEqual SyntaxOf('./'), 'nixInterpolatedPath'
252
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
253
+ AssertEqual SyntaxOf('/end'), 'nixInterpolatedPath'
254
+ AssertEqual SyntaxAt(1, 8), 'nixInterpolatedPath'
255
+ AssertEqual SyntaxAt(1, 14), 'nixInterpolationDelimiter'
256
+ AssertEqual SyntaxAt(1, 15), 'nixInterpolatedPath'
257
+
258
+ Given nix (path-with-interpolation-and-prefix):
259
+ ./snens/pre${bar}
260
+
261
+ Execute (syntax):
262
+ AssertEqual SyntaxOf('./'), 'nixInterpolatedPath'
263
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
264
+ AssertEqual SyntaxAt(1, 8), 'nixInterpolatedPath'
265
+ AssertEqual SyntaxAt(1, 12), 'nixInterpolationDelimiter'
266
+ AssertEqual SyntaxAt(1, 17), 'nixInterpolationDelimiter'
267
+
268
+ Given nix (path-with-interpolation-suffix):
269
+ ./snens/pre${bar}suff
270
+
271
+ Execute (syntax):
272
+ AssertEqual SyntaxOf('./'), 'nixInterpolatedPath'
273
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
274
+ AssertEqual SyntaxAt(1, 8), 'nixInterpolatedPath'
275
+ AssertEqual SyntaxAt(1, 12), 'nixInterpolationDelimiter'
276
+ AssertEqual SyntaxAt(1, 17), 'nixInterpolationDelimiter'
277
+ AssertEqual SyntaxOf('suff'), 'nixInterpolatedPath'
278
+
279
+ Given nix (path-with-interpolation-in-mid-part):
280
+ ./snens/pre${bar}/kek
281
+
282
+ Execute (syntax):
283
+ AssertEqual SyntaxOf('./'), 'nixInterpolatedPath'
284
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
285
+ AssertEqual SyntaxOf('/kek'), 'nixInterpolatedPath'
286
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
287
+
288
+ Given nix (path-with-multiple-interpolations):
289
+ ./snens/${bar}${baz}
290
+
291
+ Execute (syntax):
292
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
293
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
294
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
295
+ AssertEqual SyntaxOf('baz'), 'nixInterpolationParam'
296
+ AssertEqual SyntaxAt(1, 20), 'nixInterpolationDelimiter'
297
+
298
+ Given nix (path-with-multiple-interpolations-and-infix):
299
+ ./snens/${bar}in${baz}
300
+
301
+ Execute (syntax):
302
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
303
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
304
+ AssertEqual SyntaxOf('in'), 'nixInterpolatedPath'
305
+ AssertEqual SyntaxAt(1, 17), 'nixInterpolationDelimiter'
306
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
307
+ AssertEqual SyntaxOf('baz'), 'nixInterpolationParam'
308
+ AssertEqual SyntaxAt(1, 22), 'nixInterpolationDelimiter'
309
+ AssertEqual SyntaxAt(1, 14), 'nixInterpolationDelimiter'
310
+
311
+ Given nix (path-with-multiple-interpolations-and-suffix):
312
+ ./snens/${bar}in${baz}suff
313
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
314
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
315
+ AssertEqual SyntaxOf('in'), 'nixInterpolatedPath'
316
+ AssertEqual SyntaxAt(1, 17), 'nixInterpolationDelimiter'
317
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
318
+ AssertEqual SyntaxOf('baz'), 'nixInterpolationParam'
319
+ AssertEqual SyntaxAt(1, 22), 'nixInterpolationDelimiter'
320
+ AssertEqual SyntaxAt(1, 14), 'nixInterpolationDelimiter'
321
+ AssertEqual SyntaxOf('suff'), 'nixInterpolatedPath'
322
+
323
+ Execute (syntax):
324
+
325
+ Given nix (path-with-multiple-interpolations-and-prefix):
326
+ ./snens/pre${bar}in${baz}
327
+
328
+ Execute (syntax):
329
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
330
+ AssertEqual SyntaxAt(1, 12), 'nixInterpolationDelimiter'
331
+ AssertEqual SyntaxOf('in'), 'nixInterpolatedPath'
332
+ AssertEqual SyntaxAt(1, 20), 'nixInterpolationDelimiter'
333
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
334
+ AssertEqual SyntaxOf('baz'), 'nixInterpolationParam'
335
+ AssertEqual SyntaxAt(1, 25), 'nixInterpolationDelimiter'
336
+ AssertEqual SyntaxAt(1, 17), 'nixInterpolationDelimiter'
337
+
338
+ Given nix (path-with-multiple-interpolations-and-dir-suffix):
339
+ ./snens/${bar}in${baz}/suff
340
+
341
+ Execute (syntax):
342
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
343
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
344
+ AssertEqual SyntaxOf('in'), 'nixInterpolatedPath'
345
+ AssertEqual SyntaxAt(1, 17), 'nixInterpolationDelimiter'
346
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
347
+ AssertEqual SyntaxOf('baz'), 'nixInterpolationParam'
348
+ AssertEqual SyntaxAt(1, 22), 'nixInterpolationDelimiter'
349
+ AssertEqual SyntaxAt(1, 14), 'nixInterpolationDelimiter'
350
+ AssertEqual SyntaxAt(1, 23), 'nixInterpolatedPath'
351
+
352
+ Given nix (path-with-multiple-interpolations-in-separate-dirs):
353
+ ./snens/${bar}/${baz}
354
+
355
+ Execute (syntax):
356
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
357
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
358
+ AssertEqual SyntaxAt(1, 16), 'nixInterpolationDelimiter'
359
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
360
+ AssertEqual SyntaxOf('baz'), 'nixInterpolationParam'
361
+ AssertEqual SyntaxAt(1, 21), 'nixInterpolationDelimiter'
362
+ AssertEqual SyntaxAt(1, 14), 'nixInterpolationDelimiter'
363
+ AssertEqual SyntaxAt(1, 15), 'nixInterpolatedPath'
364
+
365
+ Given nix (homepath-with-interpolation):
366
+ ~/${snens}
367
+
368
+ Execute (syntax):
369
+ AssertEqual SyntaxOf('\~/'), 'nixInterpolatedPath'
370
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
371
+ AssertEqual SyntaxOf('snens'), 'nixInterpolationParam'
372
+
373
+ Given nix (path-with-invalid-infix):
374
+ ./snens/${bar}in!${baz}
375
+
376
+ Execute (syntax):
377
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
378
+ AssertEqual SyntaxAt(1, 8), 'nixInterpolatedPath'
379
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
380
+ AssertEqual SyntaxOf('bar'), 'nixInterpolationParam'
381
+ AssertEqual SyntaxOf('in'), 'nixInterpolatedPath'
382
+ # invalid syntax. Just make sure this isn't misinterpreted as a path.
383
+ AssertEqual SyntaxOf('!'), 'nixOperator'
384
+ AssertEqual SyntaxAt(1, 18), ''
385
+ AssertEqual SyntaxOf('baz'), 'nixArgumentDefinition'
386
+
387
+ Given nix (path-with-recursive-interpolation):
388
+ ./snens/${bar.${baz}}/suff
389
+
390
+ Execute (syntax):
391
+ AssertEqual SyntaxOf('./snens'), 'nixInterpolatedPath'
392
+ AssertEqual SyntaxAt(1, 9), 'nixInterpolationDelimiter'
393
+ AssertEqual SyntaxAt(1, 15), 'nixInterpolationDelimiter'
394
+ AssertEqual SyntaxAt(1, 21), 'nixInterpolationDelimiter'
395
+ AssertEqual SyntaxAt(1, 11), 'nixInterpolationParam'
396
+ AssertEqual SyntaxAt(1, 22), 'nixInterpolatedPath'
397
+
398
+ Given nix (path-with-multiline-subexpr):
399
+ foo/${
400
+ "bar"
401
+ }
402
+
403
+ Execute (syntax):
404
+ AssertEqual SyntaxOf('foo/'), 'nixInterpolatedPath'
405
+ AssertEqual SyntaxOf('${'), 'nixInterpolationDelimiter'
406
+ AssertEqual SyntaxOf('"'), 'nixStringDelimiter'
407
+ AssertEqual SyntaxOf('bar'), 'nixSimpleString'
408
+ AssertEqual SyntaxOf('}'), 'nixInterpolationDelimiter'
409
+
237
410
Given nix (let):
238
411
let
239
412
foo = true;
0 commit comments