basic highlighting flow using MarkupNodes

This commit is contained in:
Anton-4 2022-03-04 20:19:05 +01:00
parent 853badf777
commit 37704323b1
No known key found for this signature in database
GPG key ID: C954D6E0F9C0ABFD
16 changed files with 269 additions and 301 deletions

View file

@ -1,4 +1,4 @@
use crate::{syntax_highlight::HighlightStyle};
use crate::{syntax_highlight::HighlightStyle, slow_pool::MarkNodeId};
use super::{attribute::Attributes, nodes, nodes::MarkupNode};
@ -138,3 +138,11 @@ pub fn new_comments_mn(
newlines_at_end,
}
}
pub fn assign_mn(val_name_mn_id: MarkNodeId, equals_mn_id: MarkNodeId, expr_mark_node_id: MarkNodeId) -> MarkupNode {
MarkupNode::Nested {
children_ids: vec![val_name_mn_id, equals_mn_id, expr_mark_node_id],
parent_id_opt: None,
newlines_at_end: 3,
}
}

View file

@ -1,7 +1,7 @@
use crate::{
markup::{
common_nodes::new_blank_mn_w_nls,
top_level_def::{tld_mark_node, tld_w_comments_mark_node}, mark_id_ast_id_map::MarkIdAstIdMap, nodes::MarkupNode,
top_level_def::{assignment_mark_node, tld_w_comments_mark_node}, mark_id_ast_id_map::MarkIdAstIdMap, nodes::MarkupNode,
},
slow_pool::{MarkNodeId, SlowPool},
};
@ -59,7 +59,7 @@ pub fn def2_to_markup<'a>(
)?;
let tld_mn =
tld_mark_node(*identifier_id, expr_mn_id, ast_node_id, mark_node_pool, mark_id_ast_id_map, env)?;
assignment_mark_node(*identifier_id, expr_mn_id, ast_node_id, mark_node_pool, mark_id_ast_id_map, env)?;
add_node(tld_mn, ast_node_id, mark_node_pool, mark_id_ast_id_map)
}

View file

@ -4,3 +4,4 @@ pub mod convert;
pub mod nodes;
pub mod top_level_def;
pub mod mark_id_ast_id_map;
pub mod ast_context;

View file

@ -14,10 +14,10 @@ use crate::{
syntax_highlight::HighlightStyle,
};
use super::{mark_id_ast_id_map::MarkIdAstIdMap, convert::from_def2::add_node};
use super::{mark_id_ast_id_map::MarkIdAstIdMap, convert::from_def2::add_node, common_nodes::assign_mn};
// Top Level Defined Value. example: `main = "Hello, World!"`
pub fn tld_mark_node<'a>(
// represents for example: `main = "Hello, World!"`
pub fn assignment_mark_node<'a>(
identifier_id: IdentId,
expr_mark_node_id: MarkNodeId,
ast_node_id: ASTNodeId,
@ -39,13 +39,7 @@ pub fn tld_mark_node<'a>(
let equals_mn_id = add_node(new_equals_mn(), ast_node_id, mark_node_pool, mark_id_ast_id_map);
let full_let_node = MarkupNode::Nested {
children_ids: vec![val_name_mn_id, equals_mn_id, expr_mark_node_id],
parent_id_opt: None,
newlines_at_end: 3,
};
Ok(full_let_node)
Ok(assign_mn(val_name_mn_id, equals_mn_id, expr_mark_node_id))
}
pub fn tld_w_comments_mark_node(