mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-01 15:51:12 +00:00
debugging inline comment bug
This commit is contained in:
parent
30c1d218a7
commit
5bd776f972
17 changed files with 206 additions and 30 deletions
|
@ -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};
|
||||
|
||||
|
@ -147,3 +147,14 @@ pub fn new_arrow_mn(ast_node_id: ASTNodeId, newlines_at_end: usize) -> MarkupNod
|
|||
newlines_at_end,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new_comments_mn(comments: String, ast_node_id: ASTNodeId, newlines_at_end: usize) -> MarkupNode {
|
||||
MarkupNode::Text {
|
||||
content: comments,
|
||||
ast_node_id,
|
||||
syn_high_style: HighlightStyle::Comment,
|
||||
attributes: Attributes::default(),
|
||||
parent_id_opt: None,
|
||||
newlines_at_end,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
use crate::{
|
||||
markup::{common_nodes::new_blank_mn_w_nls, top_level_def::tld_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;
|
||||
|
||||
|
@ -46,6 +43,40 @@ 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
|
||||
} => {
|
||||
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 full_mark_node = tld_w_comments_mark_node(
|
||||
comments.clone(),
|
||||
inner_def_mark_node_id,
|
||||
ast_node_id,
|
||||
mark_node_pool,
|
||||
true
|
||||
)?;
|
||||
|
||||
mark_node_pool.add(full_mark_node)
|
||||
},
|
||||
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 full_mark_node = tld_w_comments_mark_node(
|
||||
comments.clone(),
|
||||
inner_def_mark_node_id,
|
||||
ast_node_id,
|
||||
mark_node_pool,
|
||||
false
|
||||
)?;
|
||||
|
||||
mark_node_pool.add(full_mark_node)
|
||||
},
|
||||
};
|
||||
|
||||
Ok(mark_node_id)
|
||||
|
|
|
@ -4,11 +4,7 @@ use roc_ast::{
|
|||
};
|
||||
use roc_module::symbol::IdentId;
|
||||
|
||||
use crate::{
|
||||
markup::{attribute::Attributes, common_nodes::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};
|
||||
|
||||
pub fn tld_mark_node<'a>(
|
||||
identifier_id: IdentId,
|
||||
|
@ -41,3 +37,33 @@ pub fn tld_mark_node<'a>(
|
|||
|
||||
Ok(full_let_node)
|
||||
}
|
||||
|
||||
pub fn tld_w_comments_mark_node(
|
||||
comments: String,
|
||||
def_mark_node_id: MarkNodeId,
|
||||
ast_node_id: ASTNodeId,
|
||||
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 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,
|
||||
parent_id_opt: None,
|
||||
newlines_at_end: 2,
|
||||
};
|
||||
|
||||
Ok(tld_w_comment_node)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue