@@ -6,8 +6,6 @@ Category: common, config
6
6
Website: https://www.freedesktop.org/
7
7
*/
8
8
export default function ( hljs ) {
9
- const regex = hljs . regex ;
10
-
11
9
const FIELD_CODES = {
12
10
className : 'variable' ,
13
11
match : / % [ f F u U c C i I k K v V ] / ,
@@ -16,10 +14,9 @@ export default function(hljs) {
16
14
17
15
const STRINGS = {
18
16
className : 'string' ,
17
+ begin : / " / ,
18
+ end : / " / ,
19
19
contains : [ hljs . BACKSLASH_ESCAPE ] ,
20
- variants : [
21
- { begin : '"' , end : '"' }
22
- ] ,
23
20
relevance : 0
24
21
} ;
25
22
@@ -30,47 +27,20 @@ export default function(hljs) {
30
27
relevance : 0
31
28
} ;
32
29
33
- const BOOL_LITERAL = {
34
- className : 'literal' ,
35
- begin : / \b ( t r u e | f a l s e | T r u e | F a l s e ) \b / ,
36
- relevance : 10
37
- } ;
38
-
39
- const TYPE_LITERAL = {
40
- className : 'literal' ,
41
- begin : / \b ( A p p l i c a t i o n | L i n k | D i r e c t o r y | f o r k i n g | o n e s h o t | O n e S h o t ) \b / ,
42
- relevance : 10
43
- } ;
44
-
45
- const NUMBER = {
46
- className : 'number' ,
47
- relevance : 0 ,
48
- variants : [
49
- { begin : / ( [ + - ] ) ? [ \d ] + ( _ [ \d ] + ) * / } ,
50
- { begin : hljs . NUMBER_RE }
51
- ]
52
- } ;
53
-
54
30
const SECTION = {
55
31
className : 'section' ,
56
32
begin : / ^ \[ ( D e s k t o p E n t r y | U n i t | S e r v i c e | I n s t a l l | S o c k e t | M o u n t | A u t o m o u n t | S w a p | P a t h | T i m e r | S l i c e | S c o p e | M a n a g e r | c o n n e c t i o n | i p v 4 | i p v 6 | 8 0 2 - 3 - e t h e r n e t | 8 0 2 - 1 1 - w i r e l e s s | 8 0 2 - 1 1 - w i r e l e s s - s e c u r i t y | v p n | J o u r n a l | B r i d g e | D e s k t o p A c t i o n \s + [ A - Z a - z 0 - 9 _ - ] + ) \] / ,
57
33
end : / \] / ,
58
34
relevance : 10
59
35
} ;
60
36
61
- const BARE_KEY = / [ A - Z a - z 0 - 9 _ - ] + / ;
62
- const KEY_WITH_INDEX = regex . concat (
63
- BARE_KEY ,
64
- '(\\[[A-Za-z0-9_@.]+\\])?'
65
- ) ;
66
-
67
37
const KEY_VALUE = {
68
- begin : regex . concat ( '^' , KEY_WITH_INDEX , '\\ s*=' ) ,
38
+ begin : / ^ ( [ A - Z a - z 0 - 9 _ - ] + ( \[ [ A - Z a - z 0 - 9 _ @ . ] + \] ) ? ) \ s* = / ,
69
39
returnBegin : true ,
70
40
contains : [
71
41
{
72
42
className : 'attr' ,
73
- begin : KEY_WITH_INDEX ,
43
+ begin : / ^ [ A - Z a - z 0 - 9 _ - ] + ( \[ [ A - Z a - z 0 - 9 _ @ . ] + \] ) ? / ,
74
44
end : / \s * = / ,
75
45
excludeEnd : true ,
76
46
relevance : 10
@@ -81,25 +51,31 @@ export default function(hljs) {
81
51
relevance : 0
82
52
} ,
83
53
{
84
- className : 'literal' ,
85
- begin : / \b ( A p p l i c a t i o n | L i n k | D i r e c t o r y | f o r k i n g | o n e s h o t | O n e S h o t ) \b / ,
86
- relevance : 10
87
- } ,
88
- {
89
- className : 'literal' ,
90
- begin : / \b ( t r u e | f a l s e | T r u e | F a l s e ) \b / ,
91
- relevance : 10
92
- } ,
93
- STRINGS ,
94
- FIELD_CODES ,
95
- COMMENT
54
+ begin : / \S .* / ,
55
+ end : / $ / ,
56
+ excludeBegin : false ,
57
+ contains : [
58
+ {
59
+ className : 'literal' ,
60
+ match : / \b ( A p p l i c a t i o n | L i n k | D i r e c t o r y | f o r k i n g | o n e s h o t | O n e S h o t | t r u e | f a l s e | T r u e | F a l s e ) \b / ,
61
+ relevance : 10
62
+ } ,
63
+ STRINGS ,
64
+ FIELD_CODES
65
+ // 일반 값은 하이라이팅 없음
66
+ ] ,
67
+ relevance : 0
68
+ }
96
69
]
97
70
} ;
98
71
99
72
return {
100
- name : 'Systemd/XDG ' ,
73
+ name : 'Systemd (INI-like) ' ,
101
74
aliases : [ 'desktop' , 'service' , 'mount' , 'socket' , 'timer' , 'nmconnection' , 'systemd' ] ,
102
75
case_insensitive : false ,
76
+ keywords : {
77
+ literal : 'Application Link Directory forking oneshot OneShot true false True False'
78
+ } ,
103
79
contains : [
104
80
COMMENT ,
105
81
SECTION ,
0 commit comments