mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-31 23:38:45 +00:00
Make doc comment highlight injection configurable
This commit is contained in:
parent
9a201873b8
commit
9700c95ced
4 changed files with 22 additions and 4 deletions
|
@ -38,11 +38,19 @@ pub struct HlRange {
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
|
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
|
||||||
pub struct HighlightConfig {
|
pub struct HighlightConfig {
|
||||||
|
/// Whether to highlight strings
|
||||||
pub strings: bool,
|
pub strings: bool,
|
||||||
|
/// Whether to highlight punctuation
|
||||||
pub punctuation: bool,
|
pub punctuation: bool,
|
||||||
|
/// Whether to specialize punctuation highlights
|
||||||
pub specialize_punctuation: bool,
|
pub specialize_punctuation: bool,
|
||||||
pub specialize_operator: bool,
|
/// Whether to highlight operator
|
||||||
pub operator: bool,
|
pub operator: bool,
|
||||||
|
/// Whether to specialize operator highlights
|
||||||
|
pub specialize_operator: bool,
|
||||||
|
/// Whether to inject highlights into doc comments
|
||||||
|
pub inject_doc_comment: bool,
|
||||||
|
/// Whether to highlight unresolved things be their syntax
|
||||||
pub syntactic_name_ref_highlighting: bool,
|
pub syntactic_name_ref_highlighting: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -325,9 +333,11 @@ fn traverse(
|
||||||
Enter(it) => it,
|
Enter(it) => it,
|
||||||
Leave(NodeOrToken::Token(_)) => continue,
|
Leave(NodeOrToken::Token(_)) => continue,
|
||||||
Leave(NodeOrToken::Node(node)) => {
|
Leave(NodeOrToken::Node(node)) => {
|
||||||
// Doc comment highlighting injection, we do this when leaving the node
|
if config.inject_doc_comment {
|
||||||
// so that we overwrite the highlighting of the doc comment itself.
|
// Doc comment highlighting injection, we do this when leaving the node
|
||||||
inject::doc_comment(hl, sema, config, file_id, &node);
|
// so that we overwrite the highlighting of the doc comment itself.
|
||||||
|
inject::doc_comment(hl, sema, config, file_id, &node);
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,6 +31,7 @@ pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: boo
|
||||||
specialize_punctuation: true,
|
specialize_punctuation: true,
|
||||||
specialize_operator: true,
|
specialize_operator: true,
|
||||||
operator: true,
|
operator: true,
|
||||||
|
inject_doc_comment: true,
|
||||||
syntactic_name_ref_highlighting: false,
|
syntactic_name_ref_highlighting: false,
|
||||||
},
|
},
|
||||||
file_id,
|
file_id,
|
||||||
|
|
|
@ -12,6 +12,7 @@ const HL_CONFIG: HighlightConfig = HighlightConfig {
|
||||||
specialize_punctuation: true,
|
specialize_punctuation: true,
|
||||||
specialize_operator: true,
|
specialize_operator: true,
|
||||||
operator: true,
|
operator: true,
|
||||||
|
inject_doc_comment: true,
|
||||||
syntactic_name_ref_highlighting: false,
|
syntactic_name_ref_highlighting: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -411,6 +411,11 @@ config_data! {
|
||||||
/// When enabled, rust-analyzer will emit special token types for operator tokens instead
|
/// When enabled, rust-analyzer will emit special token types for operator tokens instead
|
||||||
/// of the generic `operator` token type.
|
/// of the generic `operator` token type.
|
||||||
semanticHighlighting_operator_specialization_enable: bool = "false",
|
semanticHighlighting_operator_specialization_enable: bool = "false",
|
||||||
|
/// Inject additional highlighting into doc comments.
|
||||||
|
///
|
||||||
|
/// When enabled, rust-analyzer will highlight rust source in doc comments as well as intra
|
||||||
|
/// doc links.
|
||||||
|
semanticHighlighting_doc_comment_inject_enable: bool = "true",
|
||||||
|
|
||||||
/// Show full signature of the callable. Only shows parameters if disabled.
|
/// Show full signature of the callable. Only shows parameters if disabled.
|
||||||
signatureInfo_detail: SignatureDetail = "\"full\"",
|
signatureInfo_detail: SignatureDetail = "\"full\"",
|
||||||
|
@ -1200,6 +1205,7 @@ impl Config {
|
||||||
.semanticHighlighting_punctuation_specialization_enable,
|
.semanticHighlighting_punctuation_specialization_enable,
|
||||||
operator: self.data.semanticHighlighting_operator_enable,
|
operator: self.data.semanticHighlighting_operator_enable,
|
||||||
specialize_operator: self.data.semanticHighlighting_operator_specialization_enable,
|
specialize_operator: self.data.semanticHighlighting_operator_specialization_enable,
|
||||||
|
inject_doc_comment: self.data.semanticHighlighting_doc_comment_inject_enable,
|
||||||
syntactic_name_ref_highlighting: false,
|
syntactic_name_ref_highlighting: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue