@@ -51,8 +51,9 @@ fn try_build_color_information(
5151                let  color_text = & text[ i..j] ; 
5252                if  let  Some ( color)  = parse_hex_color ( color_text)  { 
5353                    let  source_text_range = token. text_range ( ) ; 
54+                     let  start = if  bytes[ i - 1 ]  == b'#'  {  i - 1  }  else  {  i } ; 
5455                    let  text_range = TextRange :: new ( 
55-                         source_text_range. start ( )  + TextSize :: new ( i  as  u32 ) , 
56+                         source_text_range. start ( )  + TextSize :: new ( start  as  u32 ) , 
5657                        source_text_range. start ( )  + TextSize :: new ( j as  u32 ) , 
5758                    ) ; 
5859                    let  lsp_range = document. to_lsp_range ( text_range) ?; 
@@ -110,10 +111,15 @@ pub fn convert_color_to_hex(color: Color, len: usize) -> String {
110111    let  b = ( color. blue  *  255.0 ) . round ( )  as  u8 ; 
111112    match  len { 
112113        6  => format ! ( "{:02X}{:02X}{:02X}" ,  r,  g,  b) , 
114+         7  => format ! ( "#{:02X}{:02X}{:02X}" ,  r,  g,  b) , 
113115        8  => { 
114116            let  a = ( color. alpha  *  255.0 ) . round ( )  as  u8 ; 
115117            format ! ( "{:02X}{:02X}{:02X}{:02X}" ,  r,  g,  b,  a) 
116118        } 
119+         9  => { 
120+             let  a = ( color. alpha  *  255.0 ) . round ( )  as  u8 ; 
121+             format ! ( "#{:02X}{:02X}{:02X}{:02X}" ,  r,  g,  b,  a) 
122+         } 
117123        _ => "" . to_string ( ) , 
118124    } 
119125} 
0 commit comments