From 996e18846dab8e5c4a2846641289f85fe99eb480 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 27 Feb 2020 19:00:10 +0100 Subject: add more tags --- crates/ra_ide/src/syntax_highlighting.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'crates/ra_ide/src/syntax_highlighting.rs') diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index d7bca1193..ae2163f9f 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -255,15 +255,15 @@ fn highlight_name(db: &RootDatabase, def: NameDefinition) -> Highlight { NameDefinition::ModuleDef(def) => match def { hir::ModuleDef::Module(_) => HighlightTag::Module, hir::ModuleDef::Function(_) => HighlightTag::Function, - hir::ModuleDef::Adt(_) => HighlightTag::Type, + hir::ModuleDef::Adt(hir::Adt::Struct(_)) => HighlightTag::Struct, + hir::ModuleDef::Adt(hir::Adt::Enum(_)) => HighlightTag::Enum, + hir::ModuleDef::Adt(hir::Adt::Union(_)) => HighlightTag::Union, hir::ModuleDef::EnumVariant(_) => HighlightTag::Constant, hir::ModuleDef::Const(_) => HighlightTag::Constant, hir::ModuleDef::Static(_) => HighlightTag::Constant, - hir::ModuleDef::Trait(_) => HighlightTag::Type, - hir::ModuleDef::TypeAlias(_) => HighlightTag::Type, - hir::ModuleDef::BuiltinType(_) => { - return HighlightTag::Type | HighlightModifier::Builtin - } + hir::ModuleDef::Trait(_) => HighlightTag::Trait, + hir::ModuleDef::TypeAlias(_) => HighlightTag::TypeAlias, + hir::ModuleDef::BuiltinType(_) => HighlightTag::BuiltinType, }, NameDefinition::SelfType(_) => HighlightTag::TypeSelf, NameDefinition::TypeParam(_) => HighlightTag::TypeParam, @@ -287,7 +287,10 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight { }; match parent.kind() { - STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => HighlightTag::Type.into(), + STRUCT_DEF => HighlightTag::Struct.into(), + ENUM_DEF => HighlightTag::Enum.into(), + TRAIT_DEF => HighlightTag::Trait.into(), + TYPE_ALIAS_DEF => HighlightTag::TypeAlias.into(), TYPE_PARAM => HighlightTag::TypeParam.into(), RECORD_FIELD_DEF => HighlightTag::Field.into(), _ => default, -- cgit v1.2.3 From 701cf436063590c710cd7783032b5e7c3c41af22 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 28 Feb 2020 12:06:54 +0100 Subject: Cleanup highlighting tags --- crates/ra_ide/src/syntax_highlighting.rs | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'crates/ra_ide/src/syntax_highlighting.rs') diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index ae2163f9f..30ca9d8b0 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -177,10 +177,11 @@ fn highlight_element( } }; - match name_kind { + let h = match name_kind { Some(name_kind) => highlight_name(db, name_kind), None => highlight_name_by_syntax(name), - } + }; + h | HighlightModifier::Definition } // Highlight references like the definitions they resolve to @@ -206,12 +207,13 @@ fn highlight_element( // Simple token-based highlighting COMMENT => HighlightTag::Comment.into(), - STRING | RAW_STRING | RAW_BYTE_STRING | BYTE_STRING => HighlightTag::LiteralString.into(), + STRING | RAW_STRING | RAW_BYTE_STRING | BYTE_STRING => HighlightTag::StringLiteral.into(), ATTR => HighlightTag::Attribute.into(), - INT_NUMBER | FLOAT_NUMBER => HighlightTag::LiteralNumeric.into(), - BYTE => HighlightTag::LiteralByte.into(), - CHAR => HighlightTag::LiteralChar.into(), - LIFETIME => HighlightTag::TypeLifetime.into(), + INT_NUMBER | FLOAT_NUMBER => HighlightTag::NumericLiteral.into(), + BYTE => HighlightTag::ByteLiteral.into(), + CHAR => HighlightTag::CharLiteral.into(), + // FIXME: set Declaration for decls + LIFETIME => HighlightTag::Lifetime.into(), k if k.is_keyword() => { let h = Highlight::new(HighlightTag::Keyword); @@ -258,17 +260,18 @@ fn highlight_name(db: &RootDatabase, def: NameDefinition) -> Highlight { hir::ModuleDef::Adt(hir::Adt::Struct(_)) => HighlightTag::Struct, hir::ModuleDef::Adt(hir::Adt::Enum(_)) => HighlightTag::Enum, hir::ModuleDef::Adt(hir::Adt::Union(_)) => HighlightTag::Union, - hir::ModuleDef::EnumVariant(_) => HighlightTag::Constant, + hir::ModuleDef::EnumVariant(_) => HighlightTag::EnumVariant, hir::ModuleDef::Const(_) => HighlightTag::Constant, - hir::ModuleDef::Static(_) => HighlightTag::Constant, + hir::ModuleDef::Static(_) => HighlightTag::Static, hir::ModuleDef::Trait(_) => HighlightTag::Trait, hir::ModuleDef::TypeAlias(_) => HighlightTag::TypeAlias, hir::ModuleDef::BuiltinType(_) => HighlightTag::BuiltinType, }, - NameDefinition::SelfType(_) => HighlightTag::TypeSelf, + NameDefinition::SelfType(_) => HighlightTag::SelfType, NameDefinition::TypeParam(_) => HighlightTag::TypeParam, + // FIXME: distinguish between locals and parameters NameDefinition::Local(local) => { - let mut h = Highlight::new(HighlightTag::Variable); + let mut h = Highlight::new(HighlightTag::Local); if local.is_mut(db) || local.ty(db).is_mutable_reference() { h |= HighlightModifier::Mutable; } @@ -289,6 +292,7 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight { match parent.kind() { STRUCT_DEF => HighlightTag::Struct.into(), ENUM_DEF => HighlightTag::Enum.into(), + UNION_KW => HighlightTag::Union.into(), TRAIT_DEF => HighlightTag::Trait.into(), TYPE_ALIAS_DEF => HighlightTag::TypeAlias.into(), TYPE_PARAM => HighlightTag::TypeParam.into(), @@ -315,7 +319,7 @@ fn highlight_injection( if let Some(range) = literal.open_quote_text_range() { acc.push(HighlightedRange { range, - highlight: HighlightTag::LiteralString.into(), + highlight: HighlightTag::StringLiteral.into(), binding_hash: None, }) } @@ -330,7 +334,7 @@ fn highlight_injection( if let Some(range) = literal.close_quote_text_range() { acc.push(HighlightedRange { range, - highlight: HighlightTag::LiteralString.into(), + highlight: HighlightTag::StringLiteral.into(), binding_hash: None, }) } -- cgit v1.2.3