fixed newline issues

This commit is contained in:
Anton-4 2021-12-09 13:55:18 +01:00
parent b3420d793f
commit 9a2187ecd2
17 changed files with 147 additions and 138 deletions

View file

@ -1,4 +1,4 @@
use roc_ast::{lang::core::{ast::ASTNodeId, expr::expr2::ExprId}};
use roc_ast::lang::core::{ast::ASTNodeId, expr::expr2::ExprId};
use crate::{slow_pool::MarkNodeId, syntax_highlight::HighlightStyle};
@ -148,7 +148,11 @@ pub fn new_arrow_mn(ast_node_id: ASTNodeId, newlines_at_end: usize) -> MarkupNod
}
}
pub fn new_comments_mn(comments: String, ast_node_id: ASTNodeId, newlines_at_end: usize) -> MarkupNode {
pub fn new_comments_mn(
comments: String,
ast_node_id: ASTNodeId,
newlines_at_end: usize,
) -> MarkupNode {
MarkupNode::Text {
content: comments,
ast_node_id,

View file

@ -21,6 +21,9 @@ pub fn ast_to_mark_nodes<'a>(
let mut all_mark_node_ids = vec![header_to_markup(&ast.header, mark_node_pool)];
for &def_id in ast.def_ids.iter() {
// for debugging
//println!("{}", def2_to_string(def_id, env.pool));
let def2 = env.pool.get(def_id);
let expr2_markup_id = def2_to_markup(env, def2, def_id, mark_node_pool, interns)?;

View file

@ -1,4 +1,10 @@
use crate::{markup::{common_nodes::new_blank_mn_w_nls, top_level_def::{tld_mark_node, tld_w_comments_mark_node}}, slow_pool::{MarkNodeId, SlowPool}};
use crate::{
markup::{
common_nodes::new_blank_mn_w_nls,
top_level_def::{tld_mark_node, tld_w_comments_mark_node},
},
slow_pool::{MarkNodeId, SlowPool},
};
use super::from_expr2::expr2_to_markup;
@ -43,40 +49,36 @@ pub fn def2_to_markup<'a>(
mark_node_pool.add(tld_mn)
}
Def2::Blank => mark_node_pool.add(new_blank_mn_w_nls(ast_node_id, None, 2)),
Def2::CommentsBefore {
comments,
def_id
} => {
Def2::CommentsBefore { comments, def_id } => {
let inner_def = env.pool.get(*def_id);
let inner_def_mark_node_id = def2_to_markup(env, inner_def, *def_id, mark_node_pool, interns)?;
let inner_def_mark_node_id =
def2_to_markup(env, inner_def, *def_id, mark_node_pool, interns)?;
let full_mark_node = tld_w_comments_mark_node(
comments.clone(),
inner_def_mark_node_id,
ast_node_id,
mark_node_pool,
true
true,
)?;
mark_node_pool.add(full_mark_node)
},
Def2::CommentsAfter {
def_id,
comments
} => {
}
Def2::CommentsAfter { def_id, comments } => {
let inner_def = env.pool.get(*def_id);
let inner_def_mark_node_id = def2_to_markup(env, inner_def, *def_id, mark_node_pool, interns)?;
let inner_def_mark_node_id =
def2_to_markup(env, inner_def, *def_id, mark_node_pool, interns)?;
let full_mark_node = tld_w_comments_mark_node(
comments.clone(),
inner_def_mark_node_id,
ast_node_id,
mark_node_pool,
false
false,
)?;
mark_node_pool.add(full_mark_node)
},
}
};
Ok(mark_node_id)

View file

@ -4,8 +4,17 @@ use roc_ast::{
};
use roc_module::symbol::IdentId;
use crate::{markup::{attribute::Attributes, common_nodes::{new_comments_mn, new_equals_mn}, nodes::MarkupNode}, slow_pool::{MarkNodeId, SlowPool}, syntax_highlight::HighlightStyle};
use crate::{
markup::{
attribute::Attributes,
common_nodes::{new_comments_mn, new_equals_mn},
nodes::MarkupNode,
},
slow_pool::{MarkNodeId, SlowPool},
syntax_highlight::HighlightStyle,
};
// Top Level Defined Value. example: `main = "Hello, World!"`
pub fn tld_mark_node<'a>(
identifier_id: IdentId,
expr_mark_node_id: MarkNodeId,
@ -32,7 +41,7 @@ pub fn tld_mark_node<'a>(
ast_node_id,
children_ids: vec![val_name_mn_id, equals_mn_id, expr_mark_node_id],
parent_id_opt: None,
newlines_at_end: 2,
newlines_at_end: 3,
};
Ok(full_let_node)
@ -45,22 +54,17 @@ pub fn tld_w_comments_mark_node(
mark_node_pool: &mut SlowPool,
comments_before: bool,
) -> ASTResult<MarkupNode> {
let comment_mn_id = mark_node_pool.add(new_comments_mn(comments, ast_node_id, 1));
let comment_mn_id =
mark_node_pool.add(
new_comments_mn(comments, ast_node_id, 1)
);
let children_ids =
if comments_before {
vec![comment_mn_id, def_mark_node_id]
} else {
vec![def_mark_node_id, comment_mn_id]
};
let children_ids = if comments_before {
vec![comment_mn_id, def_mark_node_id]
} else {
vec![def_mark_node_id, comment_mn_id]
};
let tld_w_comment_node = MarkupNode::Nested {
ast_node_id,
children_ids: children_ids,
children_ids,
parent_id_opt: None,
newlines_at_end: 2,
};