mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-03 02:23:20 +00:00
Default::default the highlighters
This commit is contained in:
parent
8c6dc5f28a
commit
bab29e65eb
@ -74,7 +74,7 @@ pub(crate) fn highlight(
|
||||
|
||||
let mut current_macro_call: Option<ast::MacroCall> = None;
|
||||
let mut format_string_highlighter = FormatStringHighlighter::default();
|
||||
let mut macro_rules_highlighter = MacroRulesHighlighter::new();
|
||||
let mut macro_rules_highlighter = MacroRulesHighlighter::default();
|
||||
|
||||
// Walk all nodes, keeping track of whether we are inside a macro or not.
|
||||
// If in macro, expand it first and highlight the expanded code.
|
||||
@ -125,8 +125,8 @@ pub(crate) fn highlight(
|
||||
WalkEvent::Leave(Some(mc)) => {
|
||||
assert!(current_macro_call == Some(mc));
|
||||
current_macro_call = None;
|
||||
format_string_highlighter.reset();
|
||||
macro_rules_highlighter.reset();
|
||||
format_string_highlighter = FormatStringHighlighter::default();
|
||||
macro_rules_highlighter = MacroRulesHighlighter::default();
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
@ -12,10 +12,6 @@ pub(super) struct FormatStringHighlighter {
|
||||
}
|
||||
|
||||
impl FormatStringHighlighter {
|
||||
pub(super) fn reset(&mut self) {
|
||||
self.format_string = None;
|
||||
}
|
||||
|
||||
pub(super) fn check_for_format_string(&mut self, parent: &SyntaxNode) {
|
||||
// Check if macro takes a format string and remember it for highlighting later.
|
||||
// The macros that accept a format string expand to a compiler builtin macros
|
||||
|
@ -3,21 +3,14 @@ use syntax::{SyntaxElement, SyntaxKind, SyntaxToken, TextRange, T};
|
||||
|
||||
use crate::{HighlightTag, HighlightedRange};
|
||||
|
||||
#[derive(Default)]
|
||||
pub(super) struct MacroRulesHighlighter {
|
||||
state: Option<MacroMatcherParseState>,
|
||||
}
|
||||
|
||||
impl MacroRulesHighlighter {
|
||||
pub(super) fn new() -> Self {
|
||||
MacroRulesHighlighter { state: None }
|
||||
}
|
||||
|
||||
pub(super) fn init(&mut self) {
|
||||
self.state = Some(MacroMatcherParseState::new());
|
||||
}
|
||||
|
||||
pub(super) fn reset(&mut self) {
|
||||
self.state = None;
|
||||
self.state = Some(MacroMatcherParseState::default());
|
||||
}
|
||||
|
||||
pub(super) fn advance(&mut self, token: &SyntaxToken) {
|
||||
@ -51,8 +44,8 @@ struct MacroMatcherParseState {
|
||||
in_invoc_body: bool,
|
||||
}
|
||||
|
||||
impl MacroMatcherParseState {
|
||||
fn new() -> Self {
|
||||
impl Default for MacroMatcherParseState {
|
||||
fn default() -> Self {
|
||||
MacroMatcherParseState {
|
||||
paren_ty: None,
|
||||
paren_level: 0,
|
||||
|
Loading…
Reference in New Issue
Block a user