mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-22 07:35:08 +00:00
textDocument/documentSymbol: support unopened files (#548)
This commit is contained in:
parent
06a04d5102
commit
a2ecd9a8f0
@ -252,9 +252,9 @@ QueryFile *MessageHandler::findFile(const std::string &path, int *out_file_id) {
|
||||
|
||||
std::pair<QueryFile *, WorkingFile *>
|
||||
MessageHandler::findOrFail(const std::string &path, ReplyOnce &reply,
|
||||
int *out_file_id) {
|
||||
int *out_file_id, bool allow_unopened) {
|
||||
WorkingFile *wf = wfiles->getFile(path);
|
||||
if (!wf) {
|
||||
if (!wf && !allow_unopened) {
|
||||
reply.notOpened(path);
|
||||
return {nullptr, nullptr};
|
||||
}
|
||||
|
@ -236,7 +236,8 @@ struct MessageHandler {
|
||||
QueryFile *findFile(const std::string &path, int *out_file_id = nullptr);
|
||||
std::pair<QueryFile *, WorkingFile *> findOrFail(const std::string &path,
|
||||
ReplyOnce &reply,
|
||||
int *out_file_id = nullptr);
|
||||
int *out_file_id = nullptr,
|
||||
bool allow_unopened = false);
|
||||
|
||||
private:
|
||||
void bind(const char *method, void (MessageHandler::*handler)(JsonReader &));
|
||||
|
@ -147,8 +147,8 @@ void MessageHandler::textDocument_documentSymbol(JsonReader &reader,
|
||||
|
||||
int file_id;
|
||||
auto [file, wf] =
|
||||
findOrFail(param.textDocument.uri.getPath(), reply, &file_id);
|
||||
if (!wf)
|
||||
findOrFail(param.textDocument.uri.getPath(), reply, &file_id, true);
|
||||
if (!file)
|
||||
return;
|
||||
auto allows = [&](SymbolRef sym) { return !(sym.role & param.excludeRole); };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user