diff options
Diffstat (limited to 'support/texlab/src/syntax/latex/printer.rs')
-rw-r--r-- | support/texlab/src/syntax/latex/printer.rs | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/support/texlab/src/syntax/latex/printer.rs b/support/texlab/src/syntax/latex/printer.rs deleted file mode 100644 index ce03778033..0000000000 --- a/support/texlab/src/syntax/latex/printer.rs +++ /dev/null @@ -1,77 +0,0 @@ -use super::ast::*; -use crate::syntax::text::*; -use lsp_types::Position; -use std::sync::Arc; - -#[derive(Debug)] -pub struct LatexPrinter { - pub output: String, - position: Position, -} - -impl LatexPrinter { - pub fn new(start_position: Position) -> Self { - Self { - output: String::new(), - position: start_position, - } - } - - fn synchronize(&mut self, position: Position) { - while self.position.line < position.line { - self.output.push('\n'); - self.position.line += 1; - } - - while self.position.character < position.character { - self.output.push(' '); - self.position.character += 1; - } - } - - fn print_token(&mut self, token: &LatexToken) { - self.synchronize(token.start()); - self.output.push_str(token.text()); - self.position.character += token.end().character - token.start().character; - self.synchronize(token.end()); - } -} - -impl LatexVisitor for LatexPrinter { - fn visit_root(&mut self, root: Arc<LatexRoot>) { - for child in &root.children { - child.accept(self); - } - } - - fn visit_group(&mut self, group: Arc<LatexGroup>) { - self.print_token(&group.left); - for child in &group.children { - child.accept(self); - } - if let Some(right) = &group.right { - self.print_token(right); - } - } - - fn visit_command(&mut self, command: Arc<LatexCommand>) { - self.print_token(&command.name); - for group in &command.groups { - self.visit_group(Arc::clone(&group)); - } - } - - fn visit_text(&mut self, text: Arc<LatexText>) { - for word in &text.words { - self.print_token(word); - } - } - - fn visit_comma(&mut self, comma: Arc<LatexComma>) { - self.print_token(&comma.token); - } - - fn visit_math(&mut self, math: Arc<LatexMath>) { - self.print_token(&math.token) - } -} |