mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-22 07:35:08 +00:00
$ccls/fileInfo: optionally dump dependencies, includes and skipped_ranges
This commit is contained in:
parent
3dac492025
commit
86a93b2d71
@ -250,7 +250,7 @@ private:
|
|||||||
void (MessageHandler::*handler)(Param &, ReplyOnce &));
|
void (MessageHandler::*handler)(Param &, ReplyOnce &));
|
||||||
|
|
||||||
void ccls_call(JsonReader &, ReplyOnce &);
|
void ccls_call(JsonReader &, ReplyOnce &);
|
||||||
void ccls_fileInfo(TextDocumentParam &, ReplyOnce &);
|
void ccls_fileInfo(JsonReader &, ReplyOnce &);
|
||||||
void ccls_info(EmptyParam &, ReplyOnce &);
|
void ccls_info(EmptyParam &, ReplyOnce &);
|
||||||
void ccls_inheritance(JsonReader &, ReplyOnce &);
|
void ccls_inheritance(JsonReader &, ReplyOnce &);
|
||||||
void ccls_member(JsonReader &, ReplyOnce &);
|
void ccls_member(JsonReader &, ReplyOnce &);
|
||||||
|
@ -7,8 +7,9 @@
|
|||||||
#include "query.hh"
|
#include "query.hh"
|
||||||
|
|
||||||
namespace ccls {
|
namespace ccls {
|
||||||
REFLECT_STRUCT(QueryFile::Def, path, args, language, skipped_ranges,
|
REFLECT_STRUCT(IndexInclude, line, resolved_path);
|
||||||
dependencies);
|
REFLECT_STRUCT(QueryFile::Def, path, args, language, dependencies, includes,
|
||||||
|
skipped_ranges);
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct Out_cclsInfo {
|
struct Out_cclsInfo {
|
||||||
@ -41,7 +42,16 @@ void MessageHandler::ccls_info(EmptyParam &, ReplyOnce &reply) {
|
|||||||
reply(result);
|
reply(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageHandler::ccls_fileInfo(TextDocumentParam ¶m, ReplyOnce &reply) {
|
struct FileInfoParam : TextDocumentParam {
|
||||||
|
bool dependencies = false;
|
||||||
|
bool includes = false;
|
||||||
|
bool skipped_ranges = false;
|
||||||
|
};
|
||||||
|
REFLECT_STRUCT(FileInfoParam, textDocument, dependencies, includes, skipped_ranges);
|
||||||
|
|
||||||
|
void MessageHandler::ccls_fileInfo(JsonReader &reader, ReplyOnce &reply) {
|
||||||
|
FileInfoParam param;
|
||||||
|
Reflect(reader, param);
|
||||||
QueryFile *file = FindFile(param.textDocument.uri.GetPath());
|
QueryFile *file = FindFile(param.textDocument.uri.GetPath());
|
||||||
if (!file)
|
if (!file)
|
||||||
return;
|
return;
|
||||||
@ -51,8 +61,12 @@ void MessageHandler::ccls_fileInfo(TextDocumentParam ¶m, ReplyOnce &reply) {
|
|||||||
result.path = file->def->path;
|
result.path = file->def->path;
|
||||||
result.args = file->def->args;
|
result.args = file->def->args;
|
||||||
result.language = file->def->language;
|
result.language = file->def->language;
|
||||||
result.includes = file->def->includes;
|
if (param.dependencies)
|
||||||
result.skipped_ranges = file->def->skipped_ranges;
|
result.dependencies = file->def->dependencies;
|
||||||
|
if (param.includes)
|
||||||
|
result.includes = file->def->includes;
|
||||||
|
if (param.skipped_ranges)
|
||||||
|
result.skipped_ranges = file->def->skipped_ranges;
|
||||||
reply(result);
|
reply(result);
|
||||||
}
|
}
|
||||||
} // namespace ccls
|
} // namespace ccls
|
||||||
|
Loading…
Reference in New Issue
Block a user