File tree 2 files changed +62
-0
lines changed
2 files changed +62
-0
lines changed Original file line number Diff line number Diff line change @@ -1304,6 +1304,56 @@ list of substrings of `STR' each followed by its face."
1304
1304
'(" /* " font-lock-comment-delimiter-face
1305
1305
" #[foo] */" font-lock-comment-face )))
1306
1306
1307
+ (ert-deftest font-lock-number-with-type ()
1308
+ (rust-test-font-lock
1309
+ " -123i32"
1310
+ '(" i32" font-lock-type-face ))
1311
+ (rust-test-font-lock
1312
+ " 123u32"
1313
+ '(" u32" font-lock-type-face ))
1314
+ (rust-test-font-lock
1315
+ " 123_123_u32"
1316
+ '(" u32" font-lock-type-face ))
1317
+ (rust-test-font-lock
1318
+ " 0xff_u8"
1319
+ '(" u8" font-lock-type-face ))
1320
+ (rust-test-font-lock
1321
+ " 0b1111_1111_1001_0000i64"
1322
+ '(" i64" font-lock-type-face ))
1323
+ (rust-test-font-lock
1324
+ " 0usize"
1325
+ '(" usize" font-lock-type-face ))
1326
+ (rust-test-font-lock
1327
+ " 123.0f64 + 1."
1328
+ '(" f64" font-lock-type-face ))
1329
+ (rust-test-font-lock
1330
+ " 0.1f32"
1331
+ '(" f32" font-lock-type-face ))
1332
+ (rust-test-font-lock
1333
+ " 12E+99_f64"
1334
+ '(" f64" font-lock-type-face ))
1335
+ (rust-test-font-lock
1336
+ " 5f32"
1337
+ '(" f32" font-lock-type-face ))
1338
+ (rust-test-font-lock
1339
+ " 0x5i32"
1340
+ '(" i32" font-lock-type-face ))
1341
+ (rust-test-font-lock
1342
+ " 1x5i32"
1343
+ '())
1344
+ (rust-test-font-lock
1345
+ " 0x5i321"
1346
+ '())
1347
+ (rust-test-font-lock
1348
+ " fname5f32"
1349
+ '())
1350
+ (rust-test-font-lock
1351
+ " 0x5i32+1"
1352
+ '(" i32" font-lock-type-face ))
1353
+ (rust-test-font-lock
1354
+ " f(0xFFi32)"
1355
+ '(" i32" font-lock-type-face )))
1356
+
1307
1357
(ert-deftest font-lock-double-quote-character-literal ()
1308
1358
(rust-test-font-lock
1309
1359
" '\" '; let"
Original file line number Diff line number Diff line change @@ -361,6 +361,16 @@ See `prettify-symbols-compose-predicate'."
361
361
" bool"
362
362
" str" " char" ))
363
363
364
+ (defconst rust-number-with-type
365
+ (eval-when-compile
366
+ (concat
367
+ " \\ _<\\ (?:0[box]?\\ |[1-9]\\ )[[:digit:]a-fA-F_.]*\\ (?:[eE][+-]?[[:digit:]_]\\ )?"
368
+ (regexp-opt '(" u8" " i8" " u16" " i16" " u32" " i32" " u64" " i64"
369
+ " u128" " i128" " usize" " isize" " f32" " f64" )
370
+ t )
371
+ " \\ _>" ))
372
+ " Regular expression matching a number with a type suffix." )
373
+
364
374
(defvar rust-builtin-formatting-macros
365
375
'(" eprint"
366
376
" eprintln"
@@ -470,6 +480,8 @@ Does not match type annotations of the form \"foo::<\"."
470
480
(" \\ ?" . 'rust-question-mark )
471
481
(" \\ (&+\\ )\\ (?:'\\ (?:\\ <\\ |_\\ )\\ |\\ <\\ |[[({:*_|]\\ )"
472
482
1 'rust-ampersand-face )
483
+ ; ; Numbers with type suffix
484
+ (, rust-number-with-type 1 font-lock-type-face )
473
485
)
474
486
475
487
; ; Ensure we highlight `Foo` in `struct Foo` as a type.
You can’t perform that action at this time.
0 commit comments