1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
//===--- Index.proto - Remote index Protocol Buffers definition -----------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
syntax = "proto2";
package clang.clangd.remote;
// Common final result for streaming requests.
message FinalResult { optional bool has_more = 1; }
message LookupRequest { repeated string ids = 1; }
// The response is a stream of symbol messages and the terminating message
// indicating the end of stream.
message LookupReply {
oneof kind {
Symbol stream_result = 1;
FinalResult final_result = 2;
}
}
message FuzzyFindRequest {
optional string query = 1;
repeated string scopes = 2;
optional bool any_scope = 3;
optional uint32 limit = 4;
optional bool restricted_for_code_completion = 5;
repeated string proximity_paths = 6;
repeated string preferred_types = 7;
}
// The response is a stream of symbol messages, and one terminating has_more
// message.
message FuzzyFindReply {
oneof kind {
Symbol stream_result = 1;
FinalResult final_result = 2;
}
}
message RefsRequest {
repeated string ids = 1;
optional uint32 filter = 2;
optional uint32 limit = 3;
}
// The response is a stream of reference messages, and one terminating has_more
// message.
message RefsReply {
oneof kind {
Ref stream_result = 1;
FinalResult final_result = 2;
}
}
message Symbol {
optional string id = 1;
optional SymbolInfo info = 2;
optional string name = 3;
optional SymbolLocation definition = 4;
optional string scope = 5;
optional SymbolLocation canonical_declaration = 6;
optional int32 references = 7;
reserved 8;
optional string signature = 9;
optional string template_specialization_args = 10;
optional string completion_snippet_suffix = 11;
optional string documentation = 12;
optional string return_type = 13;
optional string type = 14;
repeated HeaderWithReferences headers = 15;
optional uint32 flags = 16;
}
message Ref {
optional SymbolLocation location = 1;
optional uint32 kind = 2;
}
message SymbolInfo {
optional uint32 kind = 1;
optional uint32 subkind = 2;
optional uint32 language = 3;
optional uint32 properties = 4;
}
message SymbolLocation {
optional Position start = 1;
optional Position end = 2;
// clangd::SymbolLocation stores FileURI, but the protocol transmits a the
// relative path. Because paths are different on the remote and local machines
// they will be translated in the marshalling layer.
optional string file_path = 3;
}
message Position {
optional uint32 line = 1;
optional uint32 column = 2;
}
message HeaderWithReferences {
optional string header = 1;
optional uint32 references = 2;
}
message RelationsRequest {
repeated string subjects = 1;
optional uint32 predicate = 2;
optional uint32 limit = 3;
}
// The response is a stream of reference messages, and one terminating has_more
// message.
message RelationsReply {
oneof kind {
Relation stream_result = 1;
FinalResult final_result = 2;
}
}
// This struct does not mirror clangd::Relation but rather the arguments of
// SymbolIndex::relations callback.
message Relation {
optional string subject_id = 1;
optional Symbol object = 2;
}
|