SyntaxEditor: Support using two-face syntax definitions

This commit is contained in:
Jeremy Soller 2023-11-02 13:38:25 -06:00
parent ac389d9eeb
commit e62fea5efd
No known key found for this signature in database
GPG key ID: DCFCA852D3906975
2 changed files with 17 additions and 4 deletions

View file

@ -11,19 +11,20 @@ rust-version = "1.65"
[dependencies]
fontdb = { version = "0.15.0", default-features = false }
hashbrown = { version = "0.14.1", optional = true, default-features = false }
libm = "0.2.8"
log = "0.4.20"
rangemap = "1.4.0"
rustc-hash = { version = "1.1.0", default-features = false }
rustybuzz = { version = "0.11.0", default-features = false, features = ["libm"] }
self_cell = "1.0.1"
swash = { version = "0.1.8", optional = true }
syntect = { version = "5.1.0", optional = true }
sys-locale = { version = "0.3.1", optional = true }
two-face = { version = "0.3.0", optional = true }
unicode-linebreak = "0.1.5"
unicode-script = "0.5.5"
unicode-segmentation = "1.10.1"
rangemap = "1.4.0"
hashbrown = { version = "0.14.1", optional = true, default-features = false }
rustc-hash = { version = "1.1.0", default-features = false }
self_cell = "1.0.1"
[dependencies.unicode-bidi]
version = "0.3.13"

View file

@ -22,6 +22,7 @@ pub struct SyntaxSystem {
impl SyntaxSystem {
/// Create a new [`SyntaxSystem`]
#[cfg(not(feature = "two-face"))]
pub fn new() -> Self {
Self {
//TODO: store newlines in buffer
@ -29,6 +30,17 @@ impl SyntaxSystem {
theme_set: ThemeSet::load_defaults(),
}
}
/// Create a new [`SyntaxSystem`] using `[two-face]` definitions
#[cfg(feature = "two-face")]
pub fn new() -> Self {
Self {
//TODO: store newlines in buffer
syntax_set: two_face::syntax::extra_no_newlines(),
//TODO: use two-face themes
theme_set: ThemeSet::load_defaults(),
}
}
}
/// A wrapper of [`Editor`] with syntax highlighting provided by [`SyntaxSystem`]