mirror of
https://github.com/Ed94/metadesk.git
synced 2026-08-06 07:38:45 +00:00
[bugfix] do not use RootFromNode when calculating file coordinates, stop upwards search on the first NodeKind_File node
This commit is contained in:
+12
-4
@@ -2975,16 +2975,24 @@ MD_CodeLocFromFileOffset(MD_String8 filename, MD_u8 *base, MD_u64 offset)
|
|||||||
MD_FUNCTION MD_CodeLoc
|
MD_FUNCTION MD_CodeLoc
|
||||||
MD_CodeLocFromNode(MD_Node *node)
|
MD_CodeLocFromNode(MD_Node *node)
|
||||||
{
|
{
|
||||||
MD_Node *root = MD_RootFromNode(node);
|
MD_Node *file_root = MD_NilNode();
|
||||||
MD_Node *first_tag = root->first_tag;
|
for(MD_Node *parent = node->parent; !MD_NodeIsNil(parent); parent = parent->parent)
|
||||||
|
{
|
||||||
|
if(parent->kind == MD_NodeKind_File)
|
||||||
|
{
|
||||||
|
file_root = parent;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MD_Node *first_tag = file_root->first_tag;
|
||||||
MD_CodeLoc loc = {0};
|
MD_CodeLoc loc = {0};
|
||||||
if(MD_NodeIsNil(first_tag))
|
if(MD_NodeIsNil(first_tag))
|
||||||
{
|
{
|
||||||
loc = MD_CodeLocFromFileOffset(root->string, root->raw_string.str, node->offset);
|
loc = MD_CodeLocFromFileOffset(file_root->string, file_root->raw_string.str, node->offset);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
loc = MD_CodeLocFromFileOffset(root->string, first_tag->raw_string.str, node->offset);
|
loc = MD_CodeLocFromFileOffset(file_root->string, first_tag->raw_string.str, node->offset);
|
||||||
}
|
}
|
||||||
return loc;
|
return loc;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user