| 53 | } |
| 54 | |
| 55 | std::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 | } |
no test coverage detected