Skip to content

Commit ee0146e

Browse files
authored
[Perl] Unify namespace scopes (#3352)
This commit... 1. scopes `CORE::` support.namespace as it is a builtin namespace to explicitly address core functionality 2. scopes qualifiers in `package` and `require` statements `variable.namespace`
1 parent 83a8f3e commit ee0146e

File tree

2 files changed

+53
-43
lines changed

2 files changed

+53
-43
lines changed

Perl/Perl.sublime-syntax

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -411,16 +411,18 @@ contexts:
411411
qualified-namespace:
412412
- match: ({{identifier}})?(::)
413413
captures:
414-
1: entity.name.namespace.perl
414+
1: variable.namespace.perl
415415
2: punctuation.accessor.double-colon.perl
416-
set:
417-
- meta_scope: meta.path.perl
418-
- match: ({{identifier}})(::)
419-
captures:
420-
1: entity.name.namespace.perl
421-
2: punctuation.accessor.double-colon.perl
422-
- include: unqualified-namespace
423-
- include: immediately-pop
416+
set: qualified-namespace-content
417+
418+
qualified-namespace-content:
419+
- meta_scope: meta.path.perl
420+
- match: ({{identifier}})(::)
421+
captures:
422+
1: variable.namespace.perl
423+
2: punctuation.accessor.double-colon.perl
424+
- include: unqualified-namespace
425+
- include: immediately-pop
424426

425427
unqualified-namespace:
426428
- match: '{{identifier}}'
@@ -1066,7 +1068,7 @@ contexts:
10661068
# The `meta.path` is not applied for simplicity reasons.
10671069
- match: \b(CORE)(::)(?={{reserved_words}})
10681070
captures:
1069-
1: variable.namespace.perl
1071+
1: support.namespace.perl
10701072
2: punctuation.accessor.double-colon.perl
10711073
# declaration
10721074
- match: \b(?:{{storage_keywords}}){{break}}
@@ -1797,11 +1799,12 @@ contexts:
17971799
###[ VARIABLES ]##############################################################
17981800

17991801
qualified-variables:
1800-
- match: ([$@%*]#?)({{identifier}})?(::)
1802+
- match: ([$@%*]#?)(?:(CORE)|({{identifier}}))?(::)
18011803
captures:
18021804
1: punctuation.definition.variable.perl
1803-
2: variable.namespace.perl
1804-
3: punctuation.accessor.double-colon.perl
1805+
2: support.namespace.perl
1806+
3: variable.namespace.perl
1807+
4: punctuation.accessor.double-colon.perl
18051808
push: [maybe-item-access, qualified-variables-path]
18061809

18071810
qualified-variables-path:

Perl/syntax_test_perl.pl

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ =head1 B<--param>
206206
# <- meta.format.perl punctuation.terminator.format.perl
207207
208208
CORE::format if::format =
209-
#^^^ variable.namespace.perl - meta.format
209+
#^^^ support.namespace.perl - meta.format
210210
# ^^^^^^^^^^^^^^^^^^^^ meta.format.perl
211211
# ^^ punctuation.accessor.double-colon.perl
212212
# ^^^^^^ storage.type.format.perl
@@ -1718,25 +1718,25 @@ =head1 B<--param>
17181718
# ^ punctuation.terminator.statement.perl
17191719
17201720
CORE::q//
1721-
# ^^^^ variable.namespace.perl
1721+
# ^^^^ support.namespace.perl
17221722
# ^^ punctuation.accessor.double-colon.perl
17231723
# ^ support.function.perl
17241724
# ^ punctuation.section.generic.begin.perl
17251725
# ^ punctuation.section.generic.end.perl
17261726
CORE::qq//
1727-
# ^^^^ variable.namespace.perl
1727+
# ^^^^ support.namespace.perl
17281728
# ^^ punctuation.accessor.double-colon.perl
17291729
# ^^ support.function.perl
17301730
# ^ punctuation.section.generic.begin.perl
17311731
# ^ punctuation.section.generic.end.perl
17321732
CORE::qx//
1733-
# ^^^^ variable.namespace.perl
1733+
# ^^^^ support.namespace.perl
17341734
# ^^ punctuation.accessor.double-colon.perl
17351735
# ^^ support.function.perl
17361736
# ^ punctuation.section.generic.begin.perl
17371737
# ^ punctuation.section.generic.end.perl
17381738
CORE::qw//
1739-
# ^^^^ variable.namespace.perl
1739+
# ^^^^ support.namespace.perl
17401740
# ^^ punctuation.accessor.double-colon.perl
17411741
# ^^ support.function.perl
17421742
# ^ punctuation.section.generic.begin.perl
@@ -1830,11 +1830,11 @@ =head1 B<--param>
18301830
# ^ punctuation.terminator.statement.perl
18311831
# ^ comment.line.number-sign.perl punctuation.definition.comment.perl
18321832
CORE::m
1833-
# ^^^^ variable.namespace.perl
1833+
# ^^^^ support.namespace.perl
18341834
# ^^ punctuation.accessor.double-colon.perl
18351835
# ^ support.function.perl
18361836
CORE::m//g
1837-
# ^^^^ variable.namespace.perl
1837+
# ^^^^ support.namespace.perl
18381838
# ^^ punctuation.accessor.double-colon.perl
18391839
# ^ support.function.perl
18401840
# ^ punctuation.section.generic.begin.perl
@@ -2026,11 +2026,11 @@ =head1 B<--param>
20262026
# ^ constant.language.flags.regexp.perl
20272027
# ^ punctuation.terminator.statement.perl
20282028
CORE::s
2029-
# ^^^^ variable.namespace.perl
2029+
# ^^^^ support.namespace.perl
20302030
# ^^ punctuation.accessor.double-colon.perl
20312031
# ^ support.function.perl
20322032
CORE::s///g
2033-
# ^^^^ variable.namespace.perl
2033+
# ^^^^ support.namespace.perl
20342034
# ^^ punctuation.accessor.double-colon.perl
20352035
# ^ support.function.perl
20362036
# ^ punctuation.section.generic.begin.perl
@@ -2062,11 +2062,11 @@ =head1 B<--param>
20622062
# ^^^^ constant.language.flags.regexp.perl
20632063
# ^ punctuation.terminator.statement.perl
20642064
CORE::tr
2065-
# ^^^^ variable.namespace.perl
2065+
# ^^^^ support.namespace.perl
20662066
# ^^ punctuation.accessor.double-colon.perl
20672067
# ^^ support.function.perl
20682068
CORE::tr///g
2069-
# ^^^^ variable.namespace.perl
2069+
# ^^^^ support.namespace.perl
20702070
# ^^ punctuation.accessor.double-colon.perl
20712071
# ^^ support.function.perl
20722072
# ^ punctuation.section.generic.begin.perl
@@ -2098,11 +2098,11 @@ =head1 B<--param>
20982098
# ^^^^ constant.language.flags.regexp.perl
20992099
# ^ punctuation.terminator.statement.perl
21002100
CORE::y
2101-
# ^^^^ variable.namespace.perl
2101+
# ^^^^ support.namespace.perl
21022102
# ^^ punctuation.accessor.double-colon.perl
21032103
# ^ support.function.perl
21042104
CORE::y///g
2105-
# ^^^^ variable.namespace.perl
2105+
# ^^^^ support.namespace.perl
21062106
# ^^ punctuation.accessor.double-colon.perl
21072107
# ^ support.function.perl
21082108
# ^ punctuation.section.generic.begin.perl
@@ -2820,6 +2820,13 @@ =head1 B<--param>
28202820
# ^^^^ meta.item-access.perl
28212821
# ^ punctuation.section.item-access.end.perl
28222822
2823+
$CORE::foo
2824+
# ^^^^^^^^^^ meta.path.perl
2825+
# ^ punctuation.definition.variable.perl
2826+
# ^^^^ support.namespace.perl
2827+
# ^^ punctuation.accessor.double-colon.perl
2828+
# ^^^ variable.other.readwrite.perl
2829+
28232830
###[ VARIABLE DEREFERENCING ]#################################################
28242831
28252832
$$ref $$$refref $$$$refrefref
@@ -3300,7 +3307,7 @@ =head1 B<--param>
33003307
# ^^^^^^^^ meta.namespace.perl meta.path.perl
33013308
# ^ - meta.namespace
33023309
# ^^^^^^^ keyword.declaration.namespace.perl
3303-
# ^^ entity.name.namespace.perl
3310+
# ^^ variable.namespace.perl
33043311
# ^^ punctuation.accessor.double-colon.perl
33053312
# ^^^^ entity.name.namespace.perl
33063313
# ^ punctuation.terminator.statement.perl
@@ -3309,7 +3316,7 @@ =head1 B<--param>
33093316
# ^^^^^^^^ meta.namespace.perl meta.path.perl
33103317
# ^ - meta.namespace
33113318
# ^^^^^^^ keyword.declaration.namespace.perl
3312-
# ^^ entity.name.namespace.perl
3319+
# ^^ variable.namespace.perl
33133320
# ^^ punctuation.accessor.double-colon.perl
33143321
# ^^^^ entity.name.namespace.perl
33153322
# ^ punctuation.terminator.statement.perl
@@ -3318,7 +3325,7 @@ =head1 B<--param>
33183325
# ^^^^^^^^ meta.namespace.perl meta.path.perl
33193326
# ^ - meta.namespace
33203327
# ^^^^^^^ keyword.declaration.namespace.perl
3321-
# ^^ entity.name.namespace.perl
3328+
# ^^ variable.namespace.perl
33223329
# ^^ punctuation.accessor.double-colon.perl
33233330
# ^^^^ entity.name.namespace.perl
33243331
# ^ punctuation.terminator.statement.perl
@@ -3327,9 +3334,9 @@ =head1 B<--param>
33273334
# ^^^^^^^^^^^^^^ meta.namespace.perl meta.path.perl
33283335
# ^ - meta.namespace
33293336
# ^^^^^^^ keyword.declaration.namespace.perl
3330-
# ^^ entity.name.namespace.perl
3337+
# ^^ variable.namespace.perl
33313338
# ^^ punctuation.accessor.double-colon.perl
3332-
# ^^^^ entity.name.namespace.perl
3339+
# ^^^^ variable.namespace.perl
33333340
# ^^ punctuation.accessor.double-colon.perl
33343341
# ^^^^ entity.name.namespace.perl
33353342
# ^ punctuation.terminator.statement.perl
@@ -3339,7 +3346,7 @@ =head1 B<--param>
33393346
NS::NAME
33403347
# ^^ meta.namespace.perl - meta.path
33413348
# ^^^^^^^^ meta.namespace.perl meta.path.perl
3342-
# ^^ entity.name.namespace.perl
3349+
# ^^ variable.namespace.perl
33433350
# ^^ punctuation.accessor.double-colon.perl
33443351
# ^^^^ entity.name.namespace.perl
33453352
v5.24.1;
@@ -3465,7 +3472,7 @@ =head1 B<--param>
34653472
# ^^^^^^^^ meta.preprocessor.require.perl meta.path.perl
34663473
# ^ - meta.preprocessor
34673474
# ^^^^^^^ keyword.control.import.require.perl
3468-
# ^^^ entity.name.namespace.perl
3475+
# ^^^ variable.namespace.perl
34693476
# ^^ punctuation.accessor.double-colon.perl
34703477
# ^^^ entity.name.namespace.perl
34713478
# ^ punctuation.terminator.statement.perl
@@ -3476,7 +3483,7 @@ =head1 B<--param>
34763483
# ^^ meta.preprocessor.require.perl - meta.path
34773484
# ^^^^^^^^ meta.preprocessor.require.perl meta.path.perl
34783485
# ^ - meta.preprocessor
3479-
# ^^^ entity.name.namespace.perl
3486+
# ^^^ variable.namespace.perl
34803487
# ^^ punctuation.accessor.double-colon.perl
34813488
# ^^^ entity.name.namespace.perl
34823489
# ^ punctuation.terminator.statement.perl
@@ -3516,7 +3523,7 @@ =head1 B<--param>
35163523
CORE::require;
35173524
# ^^^^^^ - meta.preprocessor
35183525
# ^^^^^^^ meta.preprocessor.require.perl
3519-
# ^^^^ variable.namespace.perl
3526+
# ^^^^ support.namespace.perl
35203527
# ^^ punctuation.accessor.double-colon.perl
35213528
# ^^^^^^^ keyword.control.import.require.perl
35223529
# ^ punctuation.terminator.statement.perl
@@ -3545,7 +3552,7 @@ =head1 B<--param>
35453552
# ^ meta.preprocessor.require.perl - meta.path
35463553
# ^^^^^^^^^^^^^ - meta.preprocessor.require.perl
35473554
# ^^^^^^^ keyword.control.import.require.perl
3548-
# ^ meta.path.perl entity.name.namespace.perl
3555+
# ^ meta.path.perl variable.namespace.perl
35493556
# ^^ meta.path.perl punctuation.accessor.double-colon.perl
35503557
# ^^^^^ meta.path.perl entity.name.namespace.perl
35513558
# ^^^ keyword.operator.logical.perl
@@ -3581,7 +3588,7 @@ =head1 B<--param>
35813588
# ^^^^^^^^ meta.preprocessor.use.perl meta.path.perl
35823589
# ^ - meta.preprocessor - meta.path
35833590
# ^^^ keyword.control.import.use.perl
3584-
# ^^ entity.name.namespace.perl
3591+
# ^^ variable.namespace.perl
35853592
# ^^ punctuation.accessor.double-colon.perl
35863593
# ^^^^ entity.name.namespace.perl
35873594
# ^ punctuation.terminator.statement.perl
@@ -3592,7 +3599,7 @@ =head1 B<--param>
35923599
# ^^^^^^^^^ meta.preprocessor.use.perl meta.path.perl
35933600
# ^ - meta.preprocessor - meta.path
35943601
# ^^^ keyword.control.import.use.perl
3595-
# ^^^^^^^^ entity.name.namespace.perl
3602+
# ^^^^^^^^ variable.namespace.perl
35963603
# ^^ meta.path.perl punctuation.accessor.double-colon.perl
35973604
# ^^^^^^^^ entity.name.namespace.perl
35983605
# ^^^ variable.namespace.perl
@@ -3602,7 +3609,7 @@ =head1 B<--param>
36023609
CORE::use;
36033610
# ^^^^^^ - meta.preprocessor
36043611
# ^^^ meta.preprocessor.use.perl
3605-
# ^^^^ variable.namespace.perl
3612+
# ^^^^ support.namespace.perl
36063613
# ^^ punctuation.accessor.double-colon.perl
36073614
# ^^^ keyword.control.import.use.perl
36083615
# ^ punctuation.terminator.statement.perl
@@ -3624,7 +3631,7 @@ =head1 B<--param>
36243631
CORE::no;
36253632
# ^^^^^^ - meta.preprocessor
36263633
# ^^ meta.preprocessor.no.perl
3627-
# ^^^^ variable.namespace.perl
3634+
# ^^^^ support.namespace.perl
36283635
# ^^ punctuation.accessor.double-colon.perl
36293636
# ^^ keyword.control.import.no.perl
36303637
# ^ punctuation.terminator.statement.perl
@@ -3692,7 +3699,7 @@ =head1 B<--param>
36923699
# ^ punctuation.terminator.statement.perl
36933700
# ^ punctuation.section.block.end.perl
36943701
CORE::my
3695-
# ^^^^ variable.namespace.perl
3702+
# ^^^^ support.namespace.perl
36963703
# ^^ punctuation.accessor.double-colon.perl
36973704
# ^^ keyword.declaration.variable.perl
36983705
core::my
@@ -4605,7 +4612,7 @@ =head1 B<--param>
46054612
CORE::sub ;
46064613
# ^^^^^^ - meta.function.perl
46074614
# ^^^^ meta.function.perl
4608-
# ^^^^ variable.namespace.perl
4615+
# ^^^^ support.namespace.perl
46094616
# ^^ punctuation.accessor.double-colon.perl
46104617
# ^^^ keyword.declaration.function.perl
46114618
# ^ punctuation.terminator.statement.perl
@@ -5423,7 +5430,7 @@ =head1 B<--param>
54235430
# ^ punctuation.section.group.end.perl
54245431
# ^ punctuation.section.block.begin.perl
54255432
CORE::break;
5426-
# ^^^^ variable.namespace.perl
5433+
# ^^^^ support.namespace.perl
54275434
# ^^ punctuation.accessor.double-colon.perl
54285435
# ^^^^^ keyword.control.flow.break.perl
54295436
}

0 commit comments

Comments
 (0)