1
- Prism . languages . bash = Prism . languages . extend ( 'clike' , {
2
- 'comment' : {
3
- pattern : / ( ^ | [ ^ " { \\ ] ) # .* / ,
4
- lookbehind : true
5
- } ,
6
- 'string' : {
7
- //allow multiline string
8
- pattern : / ( " | ' ) ( \\ ? [ \s \S ] ) * ?\1/ ,
9
- inside : {
10
- //'property' class reused for bash variables
11
- 'property' : / \$ ( [ a - z A - Z 0 - 9 _ # \? \- \* ! @ ] + | \{ [ ^ \} ] + \} ) /
12
- }
13
- } ,
14
- // Redefined to prevent highlighting of numbers in filenames
15
- 'number' : {
16
- pattern : / ( [ ^ \w \. ] ) - ? ( 0 x [ \d A - F a - f ] + | \d * \. ? \d + ( [ E e ] - ? \d + ) ? ) \b / ,
17
- lookbehind : true
18
- } ,
19
- // Originally based on http://ss64.com/bash/
20
- 'function' : / \b (?: a l i a s | a p r o p o s | a p t - g e t | a p t i t u d e | a s p e l l | a w k | b a s e n a m e | b a s h | b c | b g | b u i l t i n | b z i p 2 | c a l | c a t | c d | c f d i s k | c h g r p | c h m o d | c h o w n | c h r o o t | c h k c o n f i g | c k s u m | c l e a r | c m p | c o m m | c o m m a n d | c p | c r o n | c r o n t a b | c s p l i t | c u t | d a t e | d c | d d | d d r e s c u e | d f | d i f f | d i f f 3 | d i g | d i r | d i r c o l o r s | d i r n a m e | d i r s | d m e s g | d u | e g r e p | e j e c t | e n a b l e | e n v | e t h t o o l | e v a l | e x e c | e x p a n d | e x p e c t | e x p o r t | e x p r | f d f o r m a t | f d i s k | f g | f g r e p | f i l e | f i n d | f m t | f o l d | f o r m a t | f r e e | f s c k | f t p | f u s e r | g a w k | g e t o p t s | g i t | g r e p | g r o u p a d d | g r o u p d e l | g r o u p m o d | g r o u p s | g z i p | h a s h | h e a d | h e l p | h g | h i s t o r y | h o s t n a m e | h t o p | i c o n v | i d | i f c o n f i g | i f d o w n | i f u p | i m p o r t | i n s t a l l | j o b s | j o i n | k i l l | k i l l a l l | l e s s | l i n k | l n | l o c a t e | l o g n a m e | l o g o u t | l o o k | l p c | l p r | l p r i n t | l p r i n t d | l p r i n t q | l p r m | l s | l s o f | m a k e | m a n | m k d i r | m k f i f o | m k i s o f s | m k n o d | m o r e | m o s t | m o u n t | m t o o l s | m t r | m v | m m v | n a n o | n e t s t a t | n i c e | n l | n o h u p | n o t i f y - s e n d | n s l o o k u p | o p e n | o p | p a s s w d | p a s t e | p a t h c h k | p i n g | p k i l l | p o p d | p r | p r i n t c a p | p r i n t e n v | p r i n t f | p s | p u s h d | p v | p w d | q u o t a | q u o t a c h e c k | q u o t a c t l | r a m | r a r | r c p | r e a d | r e a d a r r a y | r e a d o n l y | r e b o o t | r e n a m e | r e n i c e | r e m s y n c | r e v | r m | r m d i r | r s y n c | s c r e e n | s c p | s d i f f | s e d | s e q | s e r v i c e | s f t p | s h i f t | s h o p t | s h u t d o w n | s l e e p | s l o c a t e | s o r t | s o u r c e | s p l i t | s s h | s t a t | s t r a c e | s u | s u d o | s u m | s u s p e n d | s y n c | t a i l | t a r | t e e | t e s t | t i m e | t i m e o u t | t i m e s | t o u c h | t o p | t r a c e r o u t e | t r a p | t r | t s o r t | t t y | t y p e | u l i m i t | u m a s k | u m o u n t | u n a l i a s | u n a m e | u n e x p a n d | u n i q | u n i t s | u n r a r | u n s h a r | u p t i m e | u s e r a d d | u s e r d e l | u s e r m o d | u s e r s | u u e n c o d e | u u d e c o d e | v | v d i r | v i | v m s t a t | w a i t | w a t c h | w c | w g e t | w h e r e i s | w h i c h | w h o | w h o a m i | w r i t e | x a r g s | x d g - o p e n | y e s | z i p ) \b / ,
21
- 'keyword' : / \b ( i f | t h e n | e l s e | e l i f | f i | f o r | b r e a k | c o n t i n u e | w h i l e | i n | c a s e | f u n c t i o n | s e l e c t | d o | d o n e | u n t i l | e c h o | e x i t | r e t u r n | s e t | d e c l a r e ) \b /
22
- } ) ;
1
+ ( function ( Prism ) {
2
+ var bashVars = {
3
+ variable : / \$ (?: [ a - z A - Z 0 - 9 _ # \? \- \* ! @ ] + | \{ [ ^ } ] + \} ) /
4
+ } ;
5
+
6
+ Prism . languages . bash = Prism . languages . extend ( 'clike' , {
7
+ 'comment' : {
8
+ pattern : / ( ^ | [ ^ " { \\ ] ) # .* / ,
9
+ lookbehind : true
10
+ } ,
11
+ 'string' : [
12
+ {
13
+ pattern : / " (?: \\ ? [ \s \S ] ) * ?" / g,
14
+ inside : bashVars
15
+ } ,
16
+ // Single quote strings cannot have variables inside
17
+ / ' (?: \\ ? [ \s \S ] ) * ?' / g,
18
+ // Support for Here-Dokuments https://en.wikipedia.org/wiki/Here_document
19
+ {
20
+ pattern : / ( < < \s * ) ( \w + ?) \s * \r ? \n (?: [ \s \S ] ) * ?\r ? \n \2/ g,
21
+ lookbehind : true ,
22
+ inside : bashVars
23
+ }
24
+ ] ,
25
+ // Redefined to prevent highlighting of numbers in filenames
26
+ 'number' : {
27
+ pattern : / ( [ ^ \w \. ] ) - ? ( 0 x [ \d A - F a - f ] + | \d * \. ? \d + ( [ E e ] - ? \d + ) ? ) \b / ,
28
+ lookbehind : true
29
+ } ,
30
+ // Originally based on http://ss64.com/bash/
31
+ 'function' : / \b (?: a l i a s | a p r o p o s | a p t - g e t | a p t i t u d e | a s p e l l | a w k | b a s e n a m e | b a s h | b c | b g | b u i l t i n | b z i p 2 | c a l | c a t | c d | c f d i s k | c h g r p | c h m o d | c h o w n | c h r o o t | c h k c o n f i g | c k s u m | c l e a r | c m p | c o m m | c o m m a n d | c p | c r o n | c r o n t a b | c s p l i t | c u t | d a t e | d c | d d | d d r e s c u e | d f | d i f f | d i f f 3 | d i g | d i r | d i r c o l o r s | d i r n a m e | d i r s | d m e s g | d u | e g r e p | e j e c t | e n a b l e | e n v | e t h t o o l | e v a l | e x e c | e x p a n d | e x p e c t | e x p o r t | e x p r | f d f o r m a t | f d i s k | f g | f g r e p | f i l e | f i n d | f m t | f o l d | f o r m a t | f r e e | f s c k | f t p | f u s e r | g a w k | g e t o p t s | g i t | g r e p | g r o u p a d d | g r o u p d e l | g r o u p m o d | g r o u p s | g z i p | h a s h | h e a d | h e l p | h g | h i s t o r y | h o s t n a m e | h t o p | i c o n v | i d | i f c o n f i g | i f d o w n | i f u p | i m p o r t | i n s t a l l | j o b s | j o i n | k i l l | k i l l a l l | l e s s | l i n k | l n | l o c a t e | l o g n a m e | l o g o u t | l o o k | l p c | l p r | l p r i n t | l p r i n t d | l p r i n t q | l p r m | l s | l s o f | m a k e | m a n | m k d i r | m k f i f o | m k i s o f s | m k n o d | m o r e | m o s t | m o u n t | m t o o l s | m t r | m v | m m v | n a n o | n e t s t a t | n i c e | n l | n o h u p | n o t i f y - s e n d | n s l o o k u p | o p e n | o p | p a s s w d | p a s t e | p a t h c h k | p i n g | p k i l l | p o p d | p r | p r i n t c a p | p r i n t e n v | p r i n t f | p s | p u s h d | p v | p w d | q u o t a | q u o t a c h e c k | q u o t a c t l | r a m | r a r | r c p | r e a d | r e a d a r r a y | r e a d o n l y | r e b o o t | r e n a m e | r e n i c e | r e m s y n c | r e v | r m | r m d i r | r s y n c | s c r e e n | s c p | s d i f f | s e d | s e q | s e r v i c e | s f t p | s h i f t | s h o p t | s h u t d o w n | s l e e p | s l o c a t e | s o r t | s o u r c e | s p l i t | s s h | s t a t | s t r a c e | s u | s u d o | s u m | s u s p e n d | s y n c | t a i l | t a r | t e e | t e s t | t i m e | t i m e o u t | t i m e s | t o u c h | t o p | t r a c e r o u t e | t r a p | t r | t s o r t | t t y | t y p e | u l i m i t | u m a s k | u m o u n t | u n a l i a s | u n a m e | u n e x p a n d | u n i q | u n i t s | u n r a r | u n s h a r | u p t i m e | u s e r a d d | u s e r d e l | u s e r m o d | u s e r s | u u e n c o d e | u u d e c o d e | v | v d i r | v i | v m s t a t | w a i t | w a t c h | w c | w g e t | w h e r e i s | w h i c h | w h o | w h o a m i | w r i t e | x a r g s | x d g - o p e n | y e s | z i p ) \b / ,
32
+ 'keyword' : / \b ( i f | t h e n | e l s e | e l i f | f i | f o r | b r e a k | c o n t i n u e | w h i l e | i n | c a s e | f u n c t i o n | s e l e c t | d o | d o n e | u n t i l | e c h o | e x i t | r e t u r n | s e t | d e c l a r e ) \b /
33
+ } ) ;
23
34
24
- Prism . languages . insertBefore ( 'bash' , 'keyword' , {
25
- //'property' class reused for bash variables
26
- 'property' : / \$ ( [ a - z A - Z 0 - 9 _ # \? \- \* ! @ ] + | \{ [ ^ } ] + \} ) /
27
- } ) ;
28
- Prism . languages . insertBefore ( 'bash' , 'comment' , {
29
- //shebang must be before comment, 'important' class from css reused
30
- 'important' : / ^ # ! \s * \/ b i n \/ b a s h | ^ # ! \s * \/ b i n \/ s h /
31
- } ) ;
35
+ Prism . languages . insertBefore ( 'bash' , 'keyword' , bashVars ) ;
36
+ Prism . languages . insertBefore ( 'bash' , 'comment' , {
37
+ // Shebang must be before comment
38
+ shebang : {
39
+ pattern : / ^ # ! \s * \/ b i n \/ b a s h | ^ # ! \s * \/ b i n \/ s h / ,
40
+ alias : 'important'
41
+ }
42
+ } ) ;
43
+ } ) ( Prism ) ;
0 commit comments