MCPcopy Create free account
hub / github.com/argotorg/solidity / extractSourceUnitNameAndLineColumn

Method extractSourceUnitNameAndLineColumn

libsolidity/lsp/HandlerBase.cpp:55–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55std::pair<std::string, LineColumn> HandlerBase::extractSourceUnitNameAndLineColumn(Json const& _args) const
56{
57 std::string const uri = _args["textDocument"]["uri"].get<std::string>();
58 std::string const sourceUnitName = fileRepository().uriToSourceUnitName(uri);
59 if (!fileRepository().sourceUnits().count(sourceUnitName))
60 BOOST_THROW_EXCEPTION(
61 RequestError(ErrorCode::RequestFailed) <<
62 errinfo_comment("Unknown file: " + uri)
63 );
64
65 auto const lineColumn = parseLineColumn(_args["position"]);
66 if (!lineColumn)
67 BOOST_THROW_EXCEPTION(
68 RequestError(ErrorCode::RequestFailed) <<
69 errinfo_comment(fmt::format(
70 "Unknown position {line}:{column} in file: {file}",
71 fmt::arg("line", lineColumn.value().line),
72 fmt::arg("column", lineColumn.value().column),
73 fmt::arg("file", sourceUnitName)
74 ))
75 );
76
77 return {sourceUnitName, *lineColumn};
78}

Callers 1

operator()Method · 0.80

Calls 5

RequestErrorClass · 0.85
parseLineColumnFunction · 0.85
uriToSourceUnitNameMethod · 0.80
countMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected