mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-27 10:17:15 +00:00
Add modifiers to highlighting for extern crate
This commit is contained in:
parent
de77d7f661
commit
535338d8bb
3 changed files with 31 additions and 2 deletions
|
|
@ -703,7 +703,24 @@ fn highlight_name_ref_by_syntax(
|
|||
};
|
||||
|
||||
match parent.kind() {
|
||||
EXTERN_CRATE => HlTag::Symbol(SymbolKind::Module).into(),
|
||||
EXTERN_CRATE => {
|
||||
let mut h: Highlight = HlTag::Symbol(SymbolKind::Module).into();
|
||||
let is_crate_root = if let Some(extern_crate) = ast::ExternCrate::cast(parent.clone()) {
|
||||
if let Some(first_segment) = extern_crate.name_ref() {
|
||||
first_segment.syntax().text() == name.syntax().text()
|
||||
} else {
|
||||
false
|
||||
}
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
if is_crate_root {
|
||||
h |= HlMod::CrateRoot;
|
||||
}
|
||||
|
||||
h | HlMod::Library
|
||||
},
|
||||
METHOD_CALL_EXPR => ast::MethodCallExpr::cast(parent)
|
||||
.and_then(|it| highlight_method_call(sema, krate, &it, edition))
|
||||
.unwrap_or_else(|| SymbolKind::Method.into()),
|
||||
|
|
|
|||
|
|
@ -51,7 +51,13 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
|||
<span class="comment documentation">//! ```</span>
|
||||
|
||||
<span class="comment documentation">//! ```rust</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module injected">Krate</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="self_keyword crate_root injected">self</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected library">std</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected library">core</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected library">alloc</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected library">proc_macro</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected library">test</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected library">Krate</span><span class="semicolon injected">;</span>
|
||||
<span class="comment documentation">//! ```</span>
|
||||
<span class="keyword">mod</span> <span class="module declaration">outline_module</span><span class="semicolon">;</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -723,6 +723,12 @@ fn test_highlight_doc_comment() {
|
|||
//! ```
|
||||
|
||||
//! ```rust
|
||||
//! extern crate self;
|
||||
//! extern crate std;
|
||||
//! extern crate core;
|
||||
//! extern crate alloc;
|
||||
//! extern crate proc_macro;
|
||||
//! extern crate test;
|
||||
//! extern crate Krate;
|
||||
//! ```
|
||||
mod outline_module;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue