From 6dbfbaed076875d748f9732324a3bd05622816d9 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 24 Oct 2019 12:01:27 -0700 Subject: [PATCH 1/2] Start work on a system for testing syntax highlighting --- cli/src/error.rs | 7 + cli/src/highlight.rs | 74 ++------ cli/src/lib.rs | 1 + cli/src/loader.rs | 139 +++++++++++---- cli/src/main.rs | 39 +++- cli/src/test_highlight.rs | 256 +++++++++++++++++++++++++++ cli/src/tests/helpers/fixtures.rs | 25 +-- cli/src/tests/helpers/mod.rs | 2 +- cli/src/tests/highlight_test.rs | 94 +++++----- cli/src/tests/mod.rs | 1 + cli/src/tests/test_highlight_test.rs | 53 ++++++ highlight/README.md | 77 ++++---- highlight/src/c_lib.rs | 28 ++- highlight/src/lib.rs | 256 +++++++++++++-------------- 14 files changed, 699 insertions(+), 353 deletions(-) create mode 100644 cli/src/test_highlight.rs create mode 100644 cli/src/tests/test_highlight_test.rs diff --git a/cli/src/error.rs b/cli/src/error.rs index 3d5a4745..b57f0dd5 100644 --- a/cli/src/error.rs +++ b/cli/src/error.rs @@ -1,3 +1,4 @@ +use super::test_highlight; use std::fmt::Write; use std::io; use tree_sitter::QueryError; @@ -98,6 +99,12 @@ impl From for Error { } } +impl From for Error { + fn from(error: test_highlight::Failure) -> Self { + Error::new(error.message()) + } +} + impl From for Error { fn from(error: String) -> Self { Error::new(error) diff --git a/cli/src/highlight.rs b/cli/src/highlight.rs index 6a174e9d..2fa2e8b0 100644 --- a/cli/src/highlight.rs +++ b/cli/src/highlight.rs @@ -10,9 +10,7 @@ use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::Arc; use std::time::Instant; use std::{fs, io, path, str, thread, usize}; -use tree_sitter_highlight::{ - HighlightConfiguration, HighlightContext, HighlightEvent, Highlighter, HtmlRenderer, -}; +use tree_sitter_highlight::{HighlightConfiguration, HighlightEvent, Highlighter, HtmlRenderer}; pub const HTML_HEADER: &'static str = " @@ -53,8 +51,8 @@ pub struct Style { #[derive(Debug)] pub struct Theme { - pub highlighter: Highlighter, - styles: Vec