diff options
Diffstat (limited to 'crates/ra_ide/src/syntax_highlighting.rs')
-rw-r--r-- | crates/ra_ide/src/syntax_highlighting.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 7ecb1a027..235e09ffc 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs | |||
@@ -108,14 +108,17 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec<HighlightedRa | |||
108 | match name_kind { | 108 | match name_kind { |
109 | Some(name_kind) => highlight_name(db, name_kind), | 109 | Some(name_kind) => highlight_name(db, name_kind), |
110 | None => name.syntax().parent().map_or("function", |x| match x.kind() { | 110 | None => name.syntax().parent().map_or("function", |x| match x.kind() { |
111 | TYPE_PARAM | STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => "type", | 111 | STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => "type", |
112 | TYPE_PARAM => "type.param", | ||
112 | RECORD_FIELD_DEF => "field", | 113 | RECORD_FIELD_DEF => "field", |
113 | _ => "function", | 114 | _ => "function", |
114 | }), | 115 | }), |
115 | } | 116 | } |
116 | } | 117 | } |
117 | INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE => "literal", | 118 | INT_NUMBER | FLOAT_NUMBER => "literal.numeric", |
118 | LIFETIME => "parameter", | 119 | BYTE => "literal.byte", |
120 | CHAR => "literal.char", | ||
121 | LIFETIME => "type.lifetime", | ||
119 | T![unsafe] => "keyword.unsafe", | 122 | T![unsafe] => "keyword.unsafe", |
120 | k if is_control_keyword(k) => "keyword.control", | 123 | k if is_control_keyword(k) => "keyword.control", |
121 | k if k.is_keyword() => "keyword", | 124 | k if k.is_keyword() => "keyword", |
@@ -224,8 +227,9 @@ fn highlight_name(db: &RootDatabase, name_kind: NameKind) -> &'static str { | |||
224 | Def(hir::ModuleDef::Static(_)) => "constant", | 227 | Def(hir::ModuleDef::Static(_)) => "constant", |
225 | Def(hir::ModuleDef::Trait(_)) => "type", | 228 | Def(hir::ModuleDef::Trait(_)) => "type", |
226 | Def(hir::ModuleDef::TypeAlias(_)) => "type", | 229 | Def(hir::ModuleDef::TypeAlias(_)) => "type", |
227 | Def(hir::ModuleDef::BuiltinType(_)) => "type", | 230 | Def(hir::ModuleDef::BuiltinType(_)) => "type.builtin", |
228 | SelfType(_) | TypeParam(_) => "type", | 231 | SelfType(_) => "type.self", |
232 | TypeParam(_) => "type.param", | ||
229 | Local(local) => { | 233 | Local(local) => { |
230 | if local.is_mut(db) { | 234 | if local.is_mut(db) { |
231 | "variable.mut" | 235 | "variable.mut" |
@@ -255,8 +259,10 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
255 | .builtin { color: #DD6718; } | 259 | .builtin { color: #DD6718; } |
256 | .text { color: #DCDCCC; } | 260 | .text { color: #DCDCCC; } |
257 | .type { color: #7CB8BB; } | 261 | .type { color: #7CB8BB; } |
262 | .type\\.param { color: #20999D; } | ||
258 | .attribute { color: #94BFF3; } | 263 | .attribute { color: #94BFF3; } |
259 | .literal { color: #BFEBBF; } | 264 | .literal { color: #BFEBBF; } |
265 | .literal\\.numeric { color: #6A8759; } | ||
260 | .macro { color: #94BFF3; } | 266 | .macro { color: #94BFF3; } |
261 | .variable { color: #DCDCCC; } | 267 | .variable { color: #DCDCCC; } |
262 | .variable\\.mut { color: #DCDCCC; text-decoration: underline; } | 268 | .variable\\.mut { color: #DCDCCC; text-decoration: underline; } |