@@ -16,8 +16,13 @@ const colorMatchShort = /#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a
1616const rgbaMatch = / r g b a ? \( ( \d + ) \, \s * ( \d + ) \, \s * ( \d + ) (?: \) | \, \s * ( [ \d \. ] + ) \) ) / ;
1717// hsl(60, 100%, 50%)
1818const hslMatch = / h s l \( ( \d + ) , \s * ( [ \d . ] + ) % , \s * ( [ \d . ] + ) % \) / ;
19- // blue
20- const namedColor = / (?< = : | \s + ) ( a l i c e b l u e | a n t i q u e w h i t e | a q u a | a q u a m a r i n e | a z u r e | b e i g e | b i s q u e | b l a c k | b l a n c h e d a l m o n d | b l u e | b l u e v i o l e t | b r o w n | b u r l y w o o d | c a d e t b l u e | c h a r t r e u s e | c h o c o l a t e | c o r a l | c o r n f l o w e r b l u e | c o r n s i l k | c r i m s o n | c y a n | d a r k b l u e | d a r k c y a n | d a r k g o l d e n r o d | d a r k g r a y | d a r k g r e e n | d a r k g r e y | d a r k k h a k i | d a r k m a g e n t a | d a r k o l i v e g r e e n | d a r k o r a n g e | d a r k o r c h i d | d a r k r e d | d a r k s a l m o n | d a r k s e a g r e e n | d a r k s l a t e b l u e | d a r k s l a t e g r a y | d a r k s l a t e g r e y | d a r k t u r q u o i s e | d a r k v i o l e t | d e e p p i n k | d e e p s k y b l u e | d i m g r a y | d i m g r e y | d o d g e r b l u e | f i r e b r i c k | f l o r a l w h i t e | f o r e s t g r e e n | f u c h s i a | g a i n s b o r o | g h o s t w h i t e | g o l d e n r o d | g o l d | g r a y | g r e e n | g r e e n y e l l o w | g r e y | h o n e y d e w | h o t p i n k | i n d i a n r e d | i n d i g o | i v o r y | k h a k i | l a v e n d e r b l u s h | l a v e n d e r | l a w n g r e e n | l e m o n c h i f f o n | l i g h t b l u e | l i g h t c o r a l | l i g h t c y a n | l i g h t g o l d e n r o d y e l l o w | l i g h t g r a y | l i g h t g r e e n | l i g h t g r e y | l i g h t p i n k | l i g h t s a l m o n | l i g h t s e a g r e e n | l i g h t s k y b l u e | l i g h t s l a t e g r a y | l i g h t s l a t e g r e y | l i g h t s t e e l b l u e | l i g h t y e l l o w | l i m e | l i m e g r e e n | l i n e n | m a g e n t a | m a r o o n | m e d i u m a q u a m a r i n e | m e d i u m b l u e | m e d i u m o r c h i d | m e d i u m p u r p l e | m e d i u m s e a g r e e n | m e d i u m s l a t e b l u e | m e d i u m s p r i n g g r e e n | m e d i u m t u r q u o i s e | m e d i u m v i o l e t r e d | m i d n i g h t b l u e | m i n t c r e a m | m i s t y r o s e | m o c c a s i n | n a v a j o w h i t e | n a v y | o l d l a c e | o l i v e | o l i v e d r a b | o r a n g e | o r a n g e r e d | o r c h i d | p a l e g o l d e n r o d | p a l e g r e e n | p a l e t u r q u o i s e | p a l e v i o l e t r e d | p a p a y a w h i p | p e a c h p u f f | p e r u | p i n k | p l u m | p o w d e r b l u e | p u r p l e | r e b e c c a p u r p l e | r e d | r o s y b r o w n | r o y a l b l u e | s a d d l e b r o w n | s a l m o n | s a n d y b r o w n | s e a g r e e n | s e a s h e l l | s i e n n a | s i l v e r | s k y b l u e | s l a t e b l u e | s l a t e g r a y | s l a t e g r e y | s n o w | s p r i n g g r e e n | s t e e l b l u e | t a n | t e a l | t h i s t l e | t o m a t o | t u r q u o i s e | v i o l e t | w h e a t | w h i t e | w h i t e s m o k e | y e l l o w | y e l l o w g r e e n ) (? ! [ \w \- ] ) / i;
19+ // only match if followed by , or :
20+ const namedColor = / (?< = (?: : | , ) \s + ) ( a l i c e b l u e | a n t i q u e w h i t e | a q u a | a q u a m a r i n e | a z u r e | b e i g e | b i s q u e | b l a c k | b l a n c h e d a l m o n d | b l u e | b l u e v i o l e t | b r o w n | b u r l y w o o d | c a d e t b l u e | c h a r t r e u s e | c h o c o l a t e | c o r a l | c o r n f l o w e r b l u e | c o r n s i l k | c r i m s o n | c y a n | d a r k b l u e | d a r k c y a n | d a r k g o l d e n r o d | d a r k g r a y | d a r k g r e e n | d a r k g r e y | d a r k k h a k i | d a r k m a g e n t a | d a r k o l i v e g r e e n | d a r k o r a n g e | d a r k o r c h i d | d a r k r e d | d a r k s a l m o n | d a r k s e a g r e e n | d a r k s l a t e b l u e | d a r k s l a t e g r a y | d a r k s l a t e g r e y | d a r k t u r q u o i s e | d a r k v i o l e t | d e e p p i n k | d e e p s k y b l u e | d i m g r a y | d i m g r e y | d o d g e r b l u e | f i r e b r i c k | f l o r a l w h i t e | f o r e s t g r e e n | f u c h s i a | g a i n s b o r o | g h o s t w h i t e | g o l d e n r o d | g o l d | g r a y | g r e e n | g r e e n y e l l o w | g r e y | h o n e y d e w | h o t p i n k | i n d i a n r e d | i n d i g o | i v o r y | k h a k i | l a v e n d e r b l u s h | l a v e n d e r | l a w n g r e e n | l e m o n c h i f f o n | l i g h t b l u e | l i g h t c o r a l | l i g h t c y a n | l i g h t g o l d e n r o d y e l l o w | l i g h t g r a y | l i g h t g r e e n | l i g h t g r e y | l i g h t p i n k | l i g h t s a l m o n | l i g h t s e a g r e e n | l i g h t s k y b l u e | l i g h t s l a t e g r a y | l i g h t s l a t e g r e y | l i g h t s t e e l b l u e | l i g h t y e l l o w | l i m e | l i m e g r e e n | l i n e n | m a g e n t a | m a r o o n | m e d i u m a q u a m a r i n e | m e d i u m b l u e | m e d i u m o r c h i d | m e d i u m p u r p l e | m e d i u m s e a g r e e n | m e d i u m s l a t e b l u e | m e d i u m s p r i n g g r e e n | m e d i u m t u r q u o i s e | m e d i u m v i o l e t r e d | m i d n i g h t b l u e | m i n t c r e a m | m i s t y r o s e | m o c c a s i n | n a v a j o w h i t e | n a v y | o l d l a c e | o l i v e | o l i v e d r a b | o r a n g e | o r a n g e r e d | o r c h i d | p a l e g o l d e n r o d | p a l e g r e e n | p a l e t u r q u o i s e | p a l e v i o l e t r e d | p a p a y a w h i p | p e a c h p u f f | p e r u | p i n k | p l u m | p o w d e r b l u e | p u r p l e | r e b e c c a p u r p l e | r e d | r o s y b r o w n | r o y a l b l u e | s a d d l e b r o w n | s a l m o n | s a n d y b r o w n | s e a g r e e n | s e a s h e l l | s i e n n a | s i l v e r | s k y b l u e | s l a t e b l u e | s l a t e g r a y | s l a t e g r e y | s n o w | s p r i n g g r e e n | s t e e l b l u e | t a n | t e a l | t h i s t l e | t o m a t o | t u r q u o i s e | v i o l e t | w h e a t | w h i t e | w h i t e s m o k e | y e l l o w | y e l l o w g r e e n ) (? ! [ \w \- ] ) / i;
21+
22+ const totalRegex = new RegExp (
23+ `${ colorMatch . source } |${ colorMatchShort . source } |${ rgbaMatch . source } |${ hslMatch . source } |${ namedColor . source } ` ,
24+ "ig"
25+ ) ;
2126
2227export const colorProvider = {
2328 provideColorPresentations ( color : Color ) {
@@ -44,13 +49,8 @@ export const colorProvider = {
4449 const colors : ColorInformation [ ] = [ ] ;
4550 for ( let i = 0 ; i < document . lineCount ; i ++ ) {
4651 const element = document . lineAt ( i ) ;
47- let match =
48- colorMatch . exec ( element . text ) ??
49- colorMatchShort . exec ( element . text ) ??
50- rgbaMatch . exec ( element . text ) ??
51- hslMatch . exec ( element . text ) ??
52- namedColor . exec ( element . text ) ;
53- if ( match ) {
52+ let match ;
53+ while ( ( match = totalRegex . exec ( element . text ) ) ) {
5454 const color = colorFromString ( match [ 0 ] ) ;
5555 if ( color ) {
5656 colors . push (
0 commit comments