nodeLocation method
SourceSpan
nodeLocation({
- required SyntacticEntity node,
- required InternalResolvedUnitResult source,
- bool withCommentOrMetadata = false,
Returns SourceSpan
with information about original code for node
from source
Implementation
SourceSpan nodeLocation({
required SyntacticEntity node,
required InternalResolvedUnitResult source,
bool withCommentOrMetadata = false,
}) {
final offset = !withCommentOrMetadata && node is AnnotatedNode
? node.firstTokenAfterCommentAndMetadata.offset
: node.offset;
final end = node.end;
final sourceUrl = Uri.file(source.path);
final offsetLocation = source.lineInfo.getLocation(offset);
final endLocation = source.lineInfo.getLocation(end);
return SourceSpan(
SourceLocation(
offset,
sourceUrl: sourceUrl,
line: offsetLocation.lineNumber,
column: offsetLocation.columnNumber,
),
SourceLocation(
end,
sourceUrl: sourceUrl,
line: endLocation.lineNumber,
column: endLocation.columnNumber,
),
source.content.substring(offset, end),
);
}