You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
3.4 KiB
132 lines
3.4 KiB
//===--- 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;
|
|
optional uint32 origin = 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;
|
|
}
|