#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_results)]
#![allow(unused_mut)]
const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_1_0;
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Index {
pub metadata: ::protobuf::MessageField<Metadata>,
pub documents: ::std::vec::Vec<Document>,
pub external_symbols: ::std::vec::Vec<SymbolInformation>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Index {
fn default() -> &'a Index {
<Index as ::protobuf::Message>::default_instance()
}
}
impl Index {
pub fn new() -> Index {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, Metadata>(
"metadata",
|m: &Index| { &m.metadata },
|m: &mut Index| { &mut m.metadata },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"documents",
|m: &Index| { &m.documents },
|m: &mut Index| { &mut m.documents },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"external_symbols",
|m: &Index| { &m.external_symbols },
|m: &mut Index| { &mut m.external_symbols },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Index>(
"Index",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Index {
const NAME: &'static str = "Index";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.metadata)?;
},
18 => {
self.documents.push(is.read_message()?);
},
26 => {
self.external_symbols.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.metadata.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
for value in &self.documents {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
for value in &self.external_symbols {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.metadata.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
}
for v in &self.documents {
::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
};
for v in &self.external_symbols {
::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Index {
Index::new()
}
fn clear(&mut self) {
self.metadata.clear();
self.documents.clear();
self.external_symbols.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Index {
static instance: Index = Index {
metadata: ::protobuf::MessageField::none(),
documents: ::std::vec::Vec::new(),
external_symbols: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Index {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Index").unwrap()).clone()
}
}
impl ::std::fmt::Display for Index {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Index {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Metadata {
pub version: ::protobuf::EnumOrUnknown<ProtocolVersion>,
pub tool_info: ::protobuf::MessageField<ToolInfo>,
pub project_root: ::std::string::String,
pub text_document_encoding: ::protobuf::EnumOrUnknown<TextEncoding>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Metadata {
fn default() -> &'a Metadata {
<Metadata as ::protobuf::Message>::default_instance()
}
}
impl Metadata {
pub fn new() -> Metadata {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(4);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"version",
|m: &Metadata| { &m.version },
|m: &mut Metadata| { &mut m.version },
));
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, ToolInfo>(
"tool_info",
|m: &Metadata| { &m.tool_info },
|m: &mut Metadata| { &mut m.tool_info },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"project_root",
|m: &Metadata| { &m.project_root },
|m: &mut Metadata| { &mut m.project_root },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"text_document_encoding",
|m: &Metadata| { &m.text_document_encoding },
|m: &mut Metadata| { &mut m.text_document_encoding },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Metadata>(
"Metadata",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Metadata {
const NAME: &'static str = "Metadata";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
8 => {
self.version = is.read_enum_or_unknown()?;
},
18 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.tool_info)?;
},
26 => {
self.project_root = is.read_string()?;
},
32 => {
self.text_document_encoding = is.read_enum_or_unknown()?;
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if self.version != ::protobuf::EnumOrUnknown::new(ProtocolVersion::UnspecifiedProtocolVersion) {
my_size += ::protobuf::rt::int32_size(1, self.version.value());
}
if let Some(v) = self.tool_info.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
if !self.project_root.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.project_root);
}
if self.text_document_encoding != ::protobuf::EnumOrUnknown::new(TextEncoding::UnspecifiedTextEncoding) {
my_size += ::protobuf::rt::int32_size(4, self.text_document_encoding.value());
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if self.version != ::protobuf::EnumOrUnknown::new(ProtocolVersion::UnspecifiedProtocolVersion) {
os.write_enum(1, ::protobuf::EnumOrUnknown::value(&self.version))?;
}
if let Some(v) = self.tool_info.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
}
if !self.project_root.is_empty() {
os.write_string(3, &self.project_root)?;
}
if self.text_document_encoding != ::protobuf::EnumOrUnknown::new(TextEncoding::UnspecifiedTextEncoding) {
os.write_enum(4, ::protobuf::EnumOrUnknown::value(&self.text_document_encoding))?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Metadata {
Metadata::new()
}
fn clear(&mut self) {
self.version = ::protobuf::EnumOrUnknown::new(ProtocolVersion::UnspecifiedProtocolVersion);
self.tool_info.clear();
self.project_root.clear();
self.text_document_encoding = ::protobuf::EnumOrUnknown::new(TextEncoding::UnspecifiedTextEncoding);
self.special_fields.clear();
}
fn default_instance() -> &'static Metadata {
static instance: Metadata = Metadata {
version: ::protobuf::EnumOrUnknown::from_i32(0),
tool_info: ::protobuf::MessageField::none(),
project_root: ::std::string::String::new(),
text_document_encoding: ::protobuf::EnumOrUnknown::from_i32(0),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Metadata {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Metadata").unwrap()).clone()
}
}
impl ::std::fmt::Display for Metadata {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Metadata {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct ToolInfo {
pub name: ::std::string::String,
pub version: ::std::string::String,
pub arguments: ::std::vec::Vec<::std::string::String>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a ToolInfo {
fn default() -> &'a ToolInfo {
<ToolInfo as ::protobuf::Message>::default_instance()
}
}
impl ToolInfo {
pub fn new() -> ToolInfo {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"name",
|m: &ToolInfo| { &m.name },
|m: &mut ToolInfo| { &mut m.name },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"version",
|m: &ToolInfo| { &m.version },
|m: &mut ToolInfo| { &mut m.version },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"arguments",
|m: &ToolInfo| { &m.arguments },
|m: &mut ToolInfo| { &mut m.arguments },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ToolInfo>(
"ToolInfo",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for ToolInfo {
const NAME: &'static str = "ToolInfo";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.name = is.read_string()?;
},
18 => {
self.version = is.read_string()?;
},
26 => {
self.arguments.push(is.read_string()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
if !self.version.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.version);
}
for value in &self.arguments {
my_size += ::protobuf::rt::string_size(3, &value);
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
if !self.version.is_empty() {
os.write_string(2, &self.version)?;
}
for v in &self.arguments {
os.write_string(3, &v)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> ToolInfo {
ToolInfo::new()
}
fn clear(&mut self) {
self.name.clear();
self.version.clear();
self.arguments.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static ToolInfo {
static instance: ToolInfo = ToolInfo {
name: ::std::string::String::new(),
version: ::std::string::String::new(),
arguments: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for ToolInfo {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("ToolInfo").unwrap()).clone()
}
}
impl ::std::fmt::Display for ToolInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ToolInfo {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Document {
pub language: ::std::string::String,
pub relative_path: ::std::string::String,
pub occurrences: ::std::vec::Vec<Occurrence>,
pub symbols: ::std::vec::Vec<SymbolInformation>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Document {
fn default() -> &'a Document {
<Document as ::protobuf::Message>::default_instance()
}
}
impl Document {
pub fn new() -> Document {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(4);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"language",
|m: &Document| { &m.language },
|m: &mut Document| { &mut m.language },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"relative_path",
|m: &Document| { &m.relative_path },
|m: &mut Document| { &mut m.relative_path },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"occurrences",
|m: &Document| { &m.occurrences },
|m: &mut Document| { &mut m.occurrences },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"symbols",
|m: &Document| { &m.symbols },
|m: &mut Document| { &mut m.symbols },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Document>(
"Document",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Document {
const NAME: &'static str = "Document";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
34 => {
self.language = is.read_string()?;
},
10 => {
self.relative_path = is.read_string()?;
},
18 => {
self.occurrences.push(is.read_message()?);
},
26 => {
self.symbols.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.language.is_empty() {
my_size += ::protobuf::rt::string_size(4, &self.language);
}
if !self.relative_path.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.relative_path);
}
for value in &self.occurrences {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
for value in &self.symbols {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.language.is_empty() {
os.write_string(4, &self.language)?;
}
if !self.relative_path.is_empty() {
os.write_string(1, &self.relative_path)?;
}
for v in &self.occurrences {
::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
};
for v in &self.symbols {
::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Document {
Document::new()
}
fn clear(&mut self) {
self.language.clear();
self.relative_path.clear();
self.occurrences.clear();
self.symbols.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Document {
static instance: Document = Document {
language: ::std::string::String::new(),
relative_path: ::std::string::String::new(),
occurrences: ::std::vec::Vec::new(),
symbols: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Document {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Document").unwrap()).clone()
}
}
impl ::std::fmt::Display for Document {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Document {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Symbol {
pub scheme: ::std::string::String,
pub package: ::protobuf::MessageField<Package>,
pub descriptors: ::std::vec::Vec<Descriptor>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Symbol {
fn default() -> &'a Symbol {
<Symbol as ::protobuf::Message>::default_instance()
}
}
impl Symbol {
pub fn new() -> Symbol {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"scheme",
|m: &Symbol| { &m.scheme },
|m: &mut Symbol| { &mut m.scheme },
));
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, Package>(
"package",
|m: &Symbol| { &m.package },
|m: &mut Symbol| { &mut m.package },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"descriptors",
|m: &Symbol| { &m.descriptors },
|m: &mut Symbol| { &mut m.descriptors },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Symbol>(
"Symbol",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Symbol {
const NAME: &'static str = "Symbol";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.scheme = is.read_string()?;
},
18 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.package)?;
},
26 => {
self.descriptors.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.scheme.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.scheme);
}
if let Some(v) = self.package.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
for value in &self.descriptors {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.scheme.is_empty() {
os.write_string(1, &self.scheme)?;
}
if let Some(v) = self.package.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
}
for v in &self.descriptors {
::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Symbol {
Symbol::new()
}
fn clear(&mut self) {
self.scheme.clear();
self.package.clear();
self.descriptors.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Symbol {
static instance: Symbol = Symbol {
scheme: ::std::string::String::new(),
package: ::protobuf::MessageField::none(),
descriptors: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Symbol {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Symbol").unwrap()).clone()
}
}
impl ::std::fmt::Display for Symbol {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Symbol {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Package {
pub manager: ::std::string::String,
pub name: ::std::string::String,
pub version: ::std::string::String,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Package {
fn default() -> &'a Package {
<Package as ::protobuf::Message>::default_instance()
}
}
impl Package {
pub fn new() -> Package {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"manager",
|m: &Package| { &m.manager },
|m: &mut Package| { &mut m.manager },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"name",
|m: &Package| { &m.name },
|m: &mut Package| { &mut m.name },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"version",
|m: &Package| { &m.version },
|m: &mut Package| { &mut m.version },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Package>(
"Package",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Package {
const NAME: &'static str = "Package";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.manager = is.read_string()?;
},
18 => {
self.name = is.read_string()?;
},
26 => {
self.version = is.read_string()?;
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.manager.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.manager);
}
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.name);
}
if !self.version.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.version);
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.manager.is_empty() {
os.write_string(1, &self.manager)?;
}
if !self.name.is_empty() {
os.write_string(2, &self.name)?;
}
if !self.version.is_empty() {
os.write_string(3, &self.version)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Package {
Package::new()
}
fn clear(&mut self) {
self.manager.clear();
self.name.clear();
self.version.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Package {
static instance: Package = Package {
manager: ::std::string::String::new(),
name: ::std::string::String::new(),
version: ::std::string::String::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Package {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Package").unwrap()).clone()
}
}
impl ::std::fmt::Display for Package {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Package {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Descriptor {
pub name: ::std::string::String,
pub disambiguator: ::std::string::String,
pub suffix: ::protobuf::EnumOrUnknown<descriptor::Suffix>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Descriptor {
fn default() -> &'a Descriptor {
<Descriptor as ::protobuf::Message>::default_instance()
}
}
impl Descriptor {
pub fn new() -> Descriptor {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"name",
|m: &Descriptor| { &m.name },
|m: &mut Descriptor| { &mut m.name },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"disambiguator",
|m: &Descriptor| { &m.disambiguator },
|m: &mut Descriptor| { &mut m.disambiguator },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"suffix",
|m: &Descriptor| { &m.suffix },
|m: &mut Descriptor| { &mut m.suffix },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Descriptor>(
"Descriptor",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Descriptor {
const NAME: &'static str = "Descriptor";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.name = is.read_string()?;
},
18 => {
self.disambiguator = is.read_string()?;
},
24 => {
self.suffix = is.read_enum_or_unknown()?;
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
if !self.disambiguator.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.disambiguator);
}
if self.suffix != ::protobuf::EnumOrUnknown::new(descriptor::Suffix::UnspecifiedSuffix) {
my_size += ::protobuf::rt::int32_size(3, self.suffix.value());
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
if !self.disambiguator.is_empty() {
os.write_string(2, &self.disambiguator)?;
}
if self.suffix != ::protobuf::EnumOrUnknown::new(descriptor::Suffix::UnspecifiedSuffix) {
os.write_enum(3, ::protobuf::EnumOrUnknown::value(&self.suffix))?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Descriptor {
Descriptor::new()
}
fn clear(&mut self) {
self.name.clear();
self.disambiguator.clear();
self.suffix = ::protobuf::EnumOrUnknown::new(descriptor::Suffix::UnspecifiedSuffix);
self.special_fields.clear();
}
fn default_instance() -> &'static Descriptor {
static instance: Descriptor = Descriptor {
name: ::std::string::String::new(),
disambiguator: ::std::string::String::new(),
suffix: ::protobuf::EnumOrUnknown::from_i32(0),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Descriptor {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Descriptor").unwrap()).clone()
}
}
impl ::std::fmt::Display for Descriptor {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Descriptor {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
pub mod descriptor {
#[derive(Clone,Copy,Eq,Debug)]
pub enum Suffix {
UnspecifiedSuffix, Namespace, Package, Type, Term, Method, TypeParameter, Parameter, Macro, Meta, Local, }
impl ::std::cmp::PartialEq for Suffix {
fn eq(&self, other: &Self) -> bool {
::protobuf::Enum::value(self) == ::protobuf::Enum::value(other)
}
}
impl ::std::hash::Hash for Suffix {
fn hash<H : ::std::hash::Hasher>(&self, state: &mut H) {
state.write_i32(::protobuf::Enum::value(self))
}
}
impl ::protobuf::Enum for Suffix {
const NAME: &'static str = "Suffix";
fn value(&self) -> i32 {
match *self {
Suffix::UnspecifiedSuffix => 0,
Suffix::Namespace => 1,
Suffix::Package => 1,
Suffix::Type => 2,
Suffix::Term => 3,
Suffix::Method => 4,
Suffix::TypeParameter => 5,
Suffix::Parameter => 6,
Suffix::Macro => 9,
Suffix::Meta => 7,
Suffix::Local => 8,
}
}
fn from_i32(value: i32) -> ::std::option::Option<Suffix> {
match value {
0 => ::std::option::Option::Some(Suffix::UnspecifiedSuffix),
1 => ::std::option::Option::Some(Suffix::Namespace),
2 => ::std::option::Option::Some(Suffix::Type),
3 => ::std::option::Option::Some(Suffix::Term),
4 => ::std::option::Option::Some(Suffix::Method),
5 => ::std::option::Option::Some(Suffix::TypeParameter),
6 => ::std::option::Option::Some(Suffix::Parameter),
9 => ::std::option::Option::Some(Suffix::Macro),
7 => ::std::option::Option::Some(Suffix::Meta),
8 => ::std::option::Option::Some(Suffix::Local),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [Suffix] = &[
Suffix::UnspecifiedSuffix,
Suffix::Namespace,
Suffix::Package,
Suffix::Type,
Suffix::Term,
Suffix::Method,
Suffix::TypeParameter,
Suffix::Parameter,
Suffix::Macro,
Suffix::Meta,
Suffix::Local,
];
}
impl ::protobuf::EnumFull for Suffix {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("Descriptor.Suffix").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = match self {
Suffix::UnspecifiedSuffix => 0,
Suffix::Namespace => 1,
Suffix::Package => 2,
Suffix::Type => 3,
Suffix::Term => 4,
Suffix::Method => 5,
Suffix::TypeParameter => 6,
Suffix::Parameter => 7,
Suffix::Macro => 8,
Suffix::Meta => 9,
Suffix::Local => 10,
};
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for Suffix {
fn default() -> Self {
Suffix::UnspecifiedSuffix
}
}
impl Suffix {
pub(in super) fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<Suffix>("Descriptor.Suffix")
}
}
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct SymbolInformation {
pub symbol: ::std::string::String,
pub documentation: ::std::vec::Vec<::std::string::String>,
pub relationships: ::std::vec::Vec<Relationship>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a SymbolInformation {
fn default() -> &'a SymbolInformation {
<SymbolInformation as ::protobuf::Message>::default_instance()
}
}
impl SymbolInformation {
pub fn new() -> SymbolInformation {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(3);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"symbol",
|m: &SymbolInformation| { &m.symbol },
|m: &mut SymbolInformation| { &mut m.symbol },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"documentation",
|m: &SymbolInformation| { &m.documentation },
|m: &mut SymbolInformation| { &mut m.documentation },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"relationships",
|m: &SymbolInformation| { &m.relationships },
|m: &mut SymbolInformation| { &mut m.relationships },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<SymbolInformation>(
"SymbolInformation",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for SymbolInformation {
const NAME: &'static str = "SymbolInformation";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.symbol = is.read_string()?;
},
26 => {
self.documentation.push(is.read_string()?);
},
34 => {
self.relationships.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.symbol.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.symbol);
}
for value in &self.documentation {
my_size += ::protobuf::rt::string_size(3, &value);
};
for value in &self.relationships {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.symbol.is_empty() {
os.write_string(1, &self.symbol)?;
}
for v in &self.documentation {
os.write_string(3, &v)?;
};
for v in &self.relationships {
::protobuf::rt::write_message_field_with_cached_size(4, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> SymbolInformation {
SymbolInformation::new()
}
fn clear(&mut self) {
self.symbol.clear();
self.documentation.clear();
self.relationships.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static SymbolInformation {
static instance: SymbolInformation = SymbolInformation {
symbol: ::std::string::String::new(),
documentation: ::std::vec::Vec::new(),
relationships: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for SymbolInformation {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("SymbolInformation").unwrap()).clone()
}
}
impl ::std::fmt::Display for SymbolInformation {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for SymbolInformation {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Relationship {
pub symbol: ::std::string::String,
pub is_reference: bool,
pub is_implementation: bool,
pub is_type_definition: bool,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Relationship {
fn default() -> &'a Relationship {
<Relationship as ::protobuf::Message>::default_instance()
}
}
impl Relationship {
pub fn new() -> Relationship {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(4);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"symbol",
|m: &Relationship| { &m.symbol },
|m: &mut Relationship| { &mut m.symbol },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"is_reference",
|m: &Relationship| { &m.is_reference },
|m: &mut Relationship| { &mut m.is_reference },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"is_implementation",
|m: &Relationship| { &m.is_implementation },
|m: &mut Relationship| { &mut m.is_implementation },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"is_type_definition",
|m: &Relationship| { &m.is_type_definition },
|m: &mut Relationship| { &mut m.is_type_definition },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Relationship>(
"Relationship",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Relationship {
const NAME: &'static str = "Relationship";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.symbol = is.read_string()?;
},
16 => {
self.is_reference = is.read_bool()?;
},
24 => {
self.is_implementation = is.read_bool()?;
},
32 => {
self.is_type_definition = is.read_bool()?;
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if !self.symbol.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.symbol);
}
if self.is_reference != false {
my_size += 1 + 1;
}
if self.is_implementation != false {
my_size += 1 + 1;
}
if self.is_type_definition != false {
my_size += 1 + 1;
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if !self.symbol.is_empty() {
os.write_string(1, &self.symbol)?;
}
if self.is_reference != false {
os.write_bool(2, self.is_reference)?;
}
if self.is_implementation != false {
os.write_bool(3, self.is_implementation)?;
}
if self.is_type_definition != false {
os.write_bool(4, self.is_type_definition)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Relationship {
Relationship::new()
}
fn clear(&mut self) {
self.symbol.clear();
self.is_reference = false;
self.is_implementation = false;
self.is_type_definition = false;
self.special_fields.clear();
}
fn default_instance() -> &'static Relationship {
static instance: Relationship = Relationship {
symbol: ::std::string::String::new(),
is_reference: false,
is_implementation: false,
is_type_definition: false,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Relationship {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Relationship").unwrap()).clone()
}
}
impl ::std::fmt::Display for Relationship {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Relationship {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Occurrence {
pub range: ::std::vec::Vec<i32>,
pub symbol: ::std::string::String,
pub symbol_roles: i32,
pub override_documentation: ::std::vec::Vec<::std::string::String>,
pub syntax_kind: ::protobuf::EnumOrUnknown<SyntaxKind>,
pub diagnostics: ::std::vec::Vec<Diagnostic>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Occurrence {
fn default() -> &'a Occurrence {
<Occurrence as ::protobuf::Message>::default_instance()
}
}
impl Occurrence {
pub fn new() -> Occurrence {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(6);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"range",
|m: &Occurrence| { &m.range },
|m: &mut Occurrence| { &mut m.range },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"symbol",
|m: &Occurrence| { &m.symbol },
|m: &mut Occurrence| { &mut m.symbol },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"symbol_roles",
|m: &Occurrence| { &m.symbol_roles },
|m: &mut Occurrence| { &mut m.symbol_roles },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"override_documentation",
|m: &Occurrence| { &m.override_documentation },
|m: &mut Occurrence| { &mut m.override_documentation },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"syntax_kind",
|m: &Occurrence| { &m.syntax_kind },
|m: &mut Occurrence| { &mut m.syntax_kind },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"diagnostics",
|m: &Occurrence| { &m.diagnostics },
|m: &mut Occurrence| { &mut m.diagnostics },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Occurrence>(
"Occurrence",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Occurrence {
const NAME: &'static str = "Occurrence";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
is.read_repeated_packed_int32_into(&mut self.range)?;
},
8 => {
self.range.push(is.read_int32()?);
},
18 => {
self.symbol = is.read_string()?;
},
24 => {
self.symbol_roles = is.read_int32()?;
},
34 => {
self.override_documentation.push(is.read_string()?);
},
40 => {
self.syntax_kind = is.read_enum_or_unknown()?;
},
50 => {
self.diagnostics.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
for value in &self.range {
my_size += ::protobuf::rt::int32_size(1, *value);
};
if !self.symbol.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.symbol);
}
if self.symbol_roles != 0 {
my_size += ::protobuf::rt::int32_size(3, self.symbol_roles);
}
for value in &self.override_documentation {
my_size += ::protobuf::rt::string_size(4, &value);
};
if self.syntax_kind != ::protobuf::EnumOrUnknown::new(SyntaxKind::UnspecifiedSyntaxKind) {
my_size += ::protobuf::rt::int32_size(5, self.syntax_kind.value());
}
for value in &self.diagnostics {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
for v in &self.range {
os.write_int32(1, *v)?;
};
if !self.symbol.is_empty() {
os.write_string(2, &self.symbol)?;
}
if self.symbol_roles != 0 {
os.write_int32(3, self.symbol_roles)?;
}
for v in &self.override_documentation {
os.write_string(4, &v)?;
};
if self.syntax_kind != ::protobuf::EnumOrUnknown::new(SyntaxKind::UnspecifiedSyntaxKind) {
os.write_enum(5, ::protobuf::EnumOrUnknown::value(&self.syntax_kind))?;
}
for v in &self.diagnostics {
::protobuf::rt::write_message_field_with_cached_size(6, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Occurrence {
Occurrence::new()
}
fn clear(&mut self) {
self.range.clear();
self.symbol.clear();
self.symbol_roles = 0;
self.override_documentation.clear();
self.syntax_kind = ::protobuf::EnumOrUnknown::new(SyntaxKind::UnspecifiedSyntaxKind);
self.diagnostics.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Occurrence {
static instance: Occurrence = Occurrence {
range: ::std::vec::Vec::new(),
symbol: ::std::string::String::new(),
symbol_roles: 0,
override_documentation: ::std::vec::Vec::new(),
syntax_kind: ::protobuf::EnumOrUnknown::from_i32(0),
diagnostics: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Occurrence {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Occurrence").unwrap()).clone()
}
}
impl ::std::fmt::Display for Occurrence {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Occurrence {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Diagnostic {
pub severity: ::protobuf::EnumOrUnknown<Severity>,
pub code: ::std::string::String,
pub message: ::std::string::String,
pub source: ::std::string::String,
pub tags: ::std::vec::Vec<::protobuf::EnumOrUnknown<DiagnosticTag>>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Diagnostic {
fn default() -> &'a Diagnostic {
<Diagnostic as ::protobuf::Message>::default_instance()
}
}
impl Diagnostic {
pub fn new() -> Diagnostic {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(5);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"severity",
|m: &Diagnostic| { &m.severity },
|m: &mut Diagnostic| { &mut m.severity },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"code",
|m: &Diagnostic| { &m.code },
|m: &mut Diagnostic| { &mut m.code },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"message",
|m: &Diagnostic| { &m.message },
|m: &mut Diagnostic| { &mut m.message },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"source",
|m: &Diagnostic| { &m.source },
|m: &mut Diagnostic| { &mut m.source },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"tags",
|m: &Diagnostic| { &m.tags },
|m: &mut Diagnostic| { &mut m.tags },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Diagnostic>(
"Diagnostic",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Diagnostic {
const NAME: &'static str = "Diagnostic";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
8 => {
self.severity = is.read_enum_or_unknown()?;
},
18 => {
self.code = is.read_string()?;
},
26 => {
self.message = is.read_string()?;
},
34 => {
self.source = is.read_string()?;
},
40 => {
self.tags.push(is.read_enum_or_unknown()?);
},
42 => {
::protobuf::rt::read_repeated_packed_enum_or_unknown_into(is, &mut self.tags)?
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if self.severity != ::protobuf::EnumOrUnknown::new(Severity::UnspecifiedSeverity) {
my_size += ::protobuf::rt::int32_size(1, self.severity.value());
}
if !self.code.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.code);
}
if !self.message.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.message);
}
if !self.source.is_empty() {
my_size += ::protobuf::rt::string_size(4, &self.source);
}
for value in &self.tags {
my_size += ::protobuf::rt::int32_size(5, value.value());
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if self.severity != ::protobuf::EnumOrUnknown::new(Severity::UnspecifiedSeverity) {
os.write_enum(1, ::protobuf::EnumOrUnknown::value(&self.severity))?;
}
if !self.code.is_empty() {
os.write_string(2, &self.code)?;
}
if !self.message.is_empty() {
os.write_string(3, &self.message)?;
}
if !self.source.is_empty() {
os.write_string(4, &self.source)?;
}
for v in &self.tags {
os.write_enum(5, ::protobuf::EnumOrUnknown::value(v))?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Diagnostic {
Diagnostic::new()
}
fn clear(&mut self) {
self.severity = ::protobuf::EnumOrUnknown::new(Severity::UnspecifiedSeverity);
self.code.clear();
self.message.clear();
self.source.clear();
self.tags.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Diagnostic {
static instance: Diagnostic = Diagnostic {
severity: ::protobuf::EnumOrUnknown::from_i32(0),
code: ::std::string::String::new(),
message: ::std::string::String::new(),
source: ::std::string::String::new(),
tags: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Diagnostic {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Diagnostic").unwrap()).clone()
}
}
impl ::std::fmt::Display for Diagnostic {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Diagnostic {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum ProtocolVersion {
UnspecifiedProtocolVersion = 0,
}
impl ::protobuf::Enum for ProtocolVersion {
const NAME: &'static str = "ProtocolVersion";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<ProtocolVersion> {
match value {
0 => ::std::option::Option::Some(ProtocolVersion::UnspecifiedProtocolVersion),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [ProtocolVersion] = &[
ProtocolVersion::UnspecifiedProtocolVersion,
];
}
impl ::protobuf::EnumFull for ProtocolVersion {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("ProtocolVersion").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = *self as usize;
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for ProtocolVersion {
fn default() -> Self {
ProtocolVersion::UnspecifiedProtocolVersion
}
}
impl ProtocolVersion {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<ProtocolVersion>("ProtocolVersion")
}
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum TextEncoding {
UnspecifiedTextEncoding = 0,
UTF8 = 1,
UTF16 = 2,
}
impl ::protobuf::Enum for TextEncoding {
const NAME: &'static str = "TextEncoding";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<TextEncoding> {
match value {
0 => ::std::option::Option::Some(TextEncoding::UnspecifiedTextEncoding),
1 => ::std::option::Option::Some(TextEncoding::UTF8),
2 => ::std::option::Option::Some(TextEncoding::UTF16),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [TextEncoding] = &[
TextEncoding::UnspecifiedTextEncoding,
TextEncoding::UTF8,
TextEncoding::UTF16,
];
}
impl ::protobuf::EnumFull for TextEncoding {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("TextEncoding").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = *self as usize;
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for TextEncoding {
fn default() -> Self {
TextEncoding::UnspecifiedTextEncoding
}
}
impl TextEncoding {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<TextEncoding>("TextEncoding")
}
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum SymbolRole {
UnspecifiedSymbolRole = 0,
Definition = 1,
Import = 2,
WriteAccess = 4,
ReadAccess = 8,
Generated = 16,
Test = 32,
}
impl ::protobuf::Enum for SymbolRole {
const NAME: &'static str = "SymbolRole";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<SymbolRole> {
match value {
0 => ::std::option::Option::Some(SymbolRole::UnspecifiedSymbolRole),
1 => ::std::option::Option::Some(SymbolRole::Definition),
2 => ::std::option::Option::Some(SymbolRole::Import),
4 => ::std::option::Option::Some(SymbolRole::WriteAccess),
8 => ::std::option::Option::Some(SymbolRole::ReadAccess),
16 => ::std::option::Option::Some(SymbolRole::Generated),
32 => ::std::option::Option::Some(SymbolRole::Test),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [SymbolRole] = &[
SymbolRole::UnspecifiedSymbolRole,
SymbolRole::Definition,
SymbolRole::Import,
SymbolRole::WriteAccess,
SymbolRole::ReadAccess,
SymbolRole::Generated,
SymbolRole::Test,
];
}
impl ::protobuf::EnumFull for SymbolRole {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("SymbolRole").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = match self {
SymbolRole::UnspecifiedSymbolRole => 0,
SymbolRole::Definition => 1,
SymbolRole::Import => 2,
SymbolRole::WriteAccess => 3,
SymbolRole::ReadAccess => 4,
SymbolRole::Generated => 5,
SymbolRole::Test => 6,
};
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for SymbolRole {
fn default() -> Self {
SymbolRole::UnspecifiedSymbolRole
}
}
impl SymbolRole {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<SymbolRole>("SymbolRole")
}
}
#[derive(Clone,Copy,Eq,Debug)]
pub enum SyntaxKind {
UnspecifiedSyntaxKind, Comment, PunctuationDelimiter, PunctuationBracket, Keyword, IdentifierKeyword, IdentifierOperator, Identifier, IdentifierBuiltin, IdentifierNull, IdentifierConstant, IdentifierMutableGlobal, IdentifierParameter, IdentifierLocal, IdentifierShadowed, IdentifierNamespace, IdentifierModule, IdentifierFunction, IdentifierFunctionDefinition, IdentifierMacro, IdentifierMacroDefinition, IdentifierType, IdentifierBuiltinType, IdentifierAttribute, RegexEscape, RegexRepeated, RegexWildcard, RegexDelimiter, RegexJoin, StringLiteral, StringLiteralEscape, StringLiteralSpecial, StringLiteralKey, CharacterLiteral, NumericLiteral, BooleanLiteral, Tag, TagAttribute, TagDelimiter, }
impl ::std::cmp::PartialEq for SyntaxKind {
fn eq(&self, other: &Self) -> bool {
::protobuf::Enum::value(self) == ::protobuf::Enum::value(other)
}
}
impl ::std::hash::Hash for SyntaxKind {
fn hash<H : ::std::hash::Hasher>(&self, state: &mut H) {
state.write_i32(::protobuf::Enum::value(self))
}
}
impl ::protobuf::Enum for SyntaxKind {
const NAME: &'static str = "SyntaxKind";
fn value(&self) -> i32 {
match *self {
SyntaxKind::UnspecifiedSyntaxKind => 0,
SyntaxKind::Comment => 1,
SyntaxKind::PunctuationDelimiter => 2,
SyntaxKind::PunctuationBracket => 3,
SyntaxKind::Keyword => 4,
SyntaxKind::IdentifierKeyword => 4,
SyntaxKind::IdentifierOperator => 5,
SyntaxKind::Identifier => 6,
SyntaxKind::IdentifierBuiltin => 7,
SyntaxKind::IdentifierNull => 8,
SyntaxKind::IdentifierConstant => 9,
SyntaxKind::IdentifierMutableGlobal => 10,
SyntaxKind::IdentifierParameter => 11,
SyntaxKind::IdentifierLocal => 12,
SyntaxKind::IdentifierShadowed => 13,
SyntaxKind::IdentifierNamespace => 14,
SyntaxKind::IdentifierModule => 14,
SyntaxKind::IdentifierFunction => 15,
SyntaxKind::IdentifierFunctionDefinition => 16,
SyntaxKind::IdentifierMacro => 17,
SyntaxKind::IdentifierMacroDefinition => 18,
SyntaxKind::IdentifierType => 19,
SyntaxKind::IdentifierBuiltinType => 20,
SyntaxKind::IdentifierAttribute => 21,
SyntaxKind::RegexEscape => 22,
SyntaxKind::RegexRepeated => 23,
SyntaxKind::RegexWildcard => 24,
SyntaxKind::RegexDelimiter => 25,
SyntaxKind::RegexJoin => 26,
SyntaxKind::StringLiteral => 27,
SyntaxKind::StringLiteralEscape => 28,
SyntaxKind::StringLiteralSpecial => 29,
SyntaxKind::StringLiteralKey => 30,
SyntaxKind::CharacterLiteral => 31,
SyntaxKind::NumericLiteral => 32,
SyntaxKind::BooleanLiteral => 33,
SyntaxKind::Tag => 34,
SyntaxKind::TagAttribute => 35,
SyntaxKind::TagDelimiter => 36,
}
}
fn from_i32(value: i32) -> ::std::option::Option<SyntaxKind> {
match value {
0 => ::std::option::Option::Some(SyntaxKind::UnspecifiedSyntaxKind),
1 => ::std::option::Option::Some(SyntaxKind::Comment),
2 => ::std::option::Option::Some(SyntaxKind::PunctuationDelimiter),
3 => ::std::option::Option::Some(SyntaxKind::PunctuationBracket),
4 => ::std::option::Option::Some(SyntaxKind::Keyword),
5 => ::std::option::Option::Some(SyntaxKind::IdentifierOperator),
6 => ::std::option::Option::Some(SyntaxKind::Identifier),
7 => ::std::option::Option::Some(SyntaxKind::IdentifierBuiltin),
8 => ::std::option::Option::Some(SyntaxKind::IdentifierNull),
9 => ::std::option::Option::Some(SyntaxKind::IdentifierConstant),
10 => ::std::option::Option::Some(SyntaxKind::IdentifierMutableGlobal),
11 => ::std::option::Option::Some(SyntaxKind::IdentifierParameter),
12 => ::std::option::Option::Some(SyntaxKind::IdentifierLocal),
13 => ::std::option::Option::Some(SyntaxKind::IdentifierShadowed),
14 => ::std::option::Option::Some(SyntaxKind::IdentifierNamespace),
15 => ::std::option::Option::Some(SyntaxKind::IdentifierFunction),
16 => ::std::option::Option::Some(SyntaxKind::IdentifierFunctionDefinition),
17 => ::std::option::Option::Some(SyntaxKind::IdentifierMacro),
18 => ::std::option::Option::Some(SyntaxKind::IdentifierMacroDefinition),
19 => ::std::option::Option::Some(SyntaxKind::IdentifierType),
20 => ::std::option::Option::Some(SyntaxKind::IdentifierBuiltinType),
21 => ::std::option::Option::Some(SyntaxKind::IdentifierAttribute),
22 => ::std::option::Option::Some(SyntaxKind::RegexEscape),
23 => ::std::option::Option::Some(SyntaxKind::RegexRepeated),
24 => ::std::option::Option::Some(SyntaxKind::RegexWildcard),
25 => ::std::option::Option::Some(SyntaxKind::RegexDelimiter),
26 => ::std::option::Option::Some(SyntaxKind::RegexJoin),
27 => ::std::option::Option::Some(SyntaxKind::StringLiteral),
28 => ::std::option::Option::Some(SyntaxKind::StringLiteralEscape),
29 => ::std::option::Option::Some(SyntaxKind::StringLiteralSpecial),
30 => ::std::option::Option::Some(SyntaxKind::StringLiteralKey),
31 => ::std::option::Option::Some(SyntaxKind::CharacterLiteral),
32 => ::std::option::Option::Some(SyntaxKind::NumericLiteral),
33 => ::std::option::Option::Some(SyntaxKind::BooleanLiteral),
34 => ::std::option::Option::Some(SyntaxKind::Tag),
35 => ::std::option::Option::Some(SyntaxKind::TagAttribute),
36 => ::std::option::Option::Some(SyntaxKind::TagDelimiter),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [SyntaxKind] = &[
SyntaxKind::UnspecifiedSyntaxKind,
SyntaxKind::Comment,
SyntaxKind::PunctuationDelimiter,
SyntaxKind::PunctuationBracket,
SyntaxKind::Keyword,
SyntaxKind::IdentifierKeyword,
SyntaxKind::IdentifierOperator,
SyntaxKind::Identifier,
SyntaxKind::IdentifierBuiltin,
SyntaxKind::IdentifierNull,
SyntaxKind::IdentifierConstant,
SyntaxKind::IdentifierMutableGlobal,
SyntaxKind::IdentifierParameter,
SyntaxKind::IdentifierLocal,
SyntaxKind::IdentifierShadowed,
SyntaxKind::IdentifierNamespace,
SyntaxKind::IdentifierModule,
SyntaxKind::IdentifierFunction,
SyntaxKind::IdentifierFunctionDefinition,
SyntaxKind::IdentifierMacro,
SyntaxKind::IdentifierMacroDefinition,
SyntaxKind::IdentifierType,
SyntaxKind::IdentifierBuiltinType,
SyntaxKind::IdentifierAttribute,
SyntaxKind::RegexEscape,
SyntaxKind::RegexRepeated,
SyntaxKind::RegexWildcard,
SyntaxKind::RegexDelimiter,
SyntaxKind::RegexJoin,
SyntaxKind::StringLiteral,
SyntaxKind::StringLiteralEscape,
SyntaxKind::StringLiteralSpecial,
SyntaxKind::StringLiteralKey,
SyntaxKind::CharacterLiteral,
SyntaxKind::NumericLiteral,
SyntaxKind::BooleanLiteral,
SyntaxKind::Tag,
SyntaxKind::TagAttribute,
SyntaxKind::TagDelimiter,
];
}
impl ::protobuf::EnumFull for SyntaxKind {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("SyntaxKind").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = match self {
SyntaxKind::UnspecifiedSyntaxKind => 0,
SyntaxKind::Comment => 1,
SyntaxKind::PunctuationDelimiter => 2,
SyntaxKind::PunctuationBracket => 3,
SyntaxKind::Keyword => 4,
SyntaxKind::IdentifierKeyword => 5,
SyntaxKind::IdentifierOperator => 6,
SyntaxKind::Identifier => 7,
SyntaxKind::IdentifierBuiltin => 8,
SyntaxKind::IdentifierNull => 9,
SyntaxKind::IdentifierConstant => 10,
SyntaxKind::IdentifierMutableGlobal => 11,
SyntaxKind::IdentifierParameter => 12,
SyntaxKind::IdentifierLocal => 13,
SyntaxKind::IdentifierShadowed => 14,
SyntaxKind::IdentifierNamespace => 15,
SyntaxKind::IdentifierModule => 16,
SyntaxKind::IdentifierFunction => 17,
SyntaxKind::IdentifierFunctionDefinition => 18,
SyntaxKind::IdentifierMacro => 19,
SyntaxKind::IdentifierMacroDefinition => 20,
SyntaxKind::IdentifierType => 21,
SyntaxKind::IdentifierBuiltinType => 22,
SyntaxKind::IdentifierAttribute => 23,
SyntaxKind::RegexEscape => 24,
SyntaxKind::RegexRepeated => 25,
SyntaxKind::RegexWildcard => 26,
SyntaxKind::RegexDelimiter => 27,
SyntaxKind::RegexJoin => 28,
SyntaxKind::StringLiteral => 29,
SyntaxKind::StringLiteralEscape => 30,
SyntaxKind::StringLiteralSpecial => 31,
SyntaxKind::StringLiteralKey => 32,
SyntaxKind::CharacterLiteral => 33,
SyntaxKind::NumericLiteral => 34,
SyntaxKind::BooleanLiteral => 35,
SyntaxKind::Tag => 36,
SyntaxKind::TagAttribute => 37,
SyntaxKind::TagDelimiter => 38,
};
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for SyntaxKind {
fn default() -> Self {
SyntaxKind::UnspecifiedSyntaxKind
}
}
impl SyntaxKind {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<SyntaxKind>("SyntaxKind")
}
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum Severity {
UnspecifiedSeverity = 0,
Error = 1,
Warning = 2,
Information = 3,
Hint = 4,
}
impl ::protobuf::Enum for Severity {
const NAME: &'static str = "Severity";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<Severity> {
match value {
0 => ::std::option::Option::Some(Severity::UnspecifiedSeverity),
1 => ::std::option::Option::Some(Severity::Error),
2 => ::std::option::Option::Some(Severity::Warning),
3 => ::std::option::Option::Some(Severity::Information),
4 => ::std::option::Option::Some(Severity::Hint),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [Severity] = &[
Severity::UnspecifiedSeverity,
Severity::Error,
Severity::Warning,
Severity::Information,
Severity::Hint,
];
}
impl ::protobuf::EnumFull for Severity {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("Severity").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = *self as usize;
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for Severity {
fn default() -> Self {
Severity::UnspecifiedSeverity
}
}
impl Severity {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<Severity>("Severity")
}
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum DiagnosticTag {
UnspecifiedDiagnosticTag = 0,
Unnecessary = 1,
Deprecated = 2,
}
impl ::protobuf::Enum for DiagnosticTag {
const NAME: &'static str = "DiagnosticTag";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<DiagnosticTag> {
match value {
0 => ::std::option::Option::Some(DiagnosticTag::UnspecifiedDiagnosticTag),
1 => ::std::option::Option::Some(DiagnosticTag::Unnecessary),
2 => ::std::option::Option::Some(DiagnosticTag::Deprecated),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [DiagnosticTag] = &[
DiagnosticTag::UnspecifiedDiagnosticTag,
DiagnosticTag::Unnecessary,
DiagnosticTag::Deprecated,
];
}
impl ::protobuf::EnumFull for DiagnosticTag {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("DiagnosticTag").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = *self as usize;
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for DiagnosticTag {
fn default() -> Self {
DiagnosticTag::UnspecifiedDiagnosticTag
}
}
impl DiagnosticTag {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<DiagnosticTag>("DiagnosticTag")
}
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum Language {
UnspecifiedLanguage = 0,
ABAP = 60,
APL = 49,
Ada = 39,
Agda = 45,
AsciiDoc = 86,
Assembly = 58,
Awk = 66,
Bat = 68,
BibTeX = 81,
C = 34,
COBOL = 59,
CPP = 35,
CSS = 26,
CSharp = 1,
Clojure = 8,
Coffeescript = 21,
CommonLisp = 9,
Coq = 47,
Dart = 3,
Delphi = 57,
Diff = 88,
Dockerfile = 80,
Dyalog = 50,
Elixir = 17,
Erlang = 18,
FSharp = 42,
Fish = 65,
Flow = 24,
Fortran = 56,
Git_Commit = 91,
Git_Config = 89,
Git_Rebase = 92,
Go = 33,
Groovy = 7,
HTML = 30,
Hack = 20,
Handlebars = 90,
Haskell = 44,
Idris = 46,
Ini = 72,
J = 51,
JSON = 75,
Java = 6,
JavaScript = 22,
JavaScriptReact = 93,
Jsonnet = 76,
Julia = 55,
Kotlin = 4,
LaTeX = 83,
Lean = 48,
Less = 27,
Lua = 12,
Makefile = 79,
Markdown = 84,
Matlab = 52,
Nix = 77,
OCaml = 41,
Objective_C = 36,
Objective_CPP = 37,
PHP = 19,
PLSQL = 70,
Perl = 13,
PowerShell = 67,
Prolog = 71,
Python = 15,
R = 54,
Racket = 11,
Raku = 14,
Razor = 62,
ReST = 85,
Ruby = 16,
Rust = 40,
SAS = 61,
SCSS = 29,
SML = 43,
SQL = 69,
Sass = 28,
Scala = 5,
Scheme = 10,
ShellScript = 64,
Skylark = 78,
Swift = 2,
TOML = 73,
TeX = 82,
TypeScript = 23,
TypeScriptReact = 94,
VisualBasic = 63,
Vue = 25,
Wolfram = 53,
XML = 31,
XSL = 32,
YAML = 74,
Zig = 38,
}
impl ::protobuf::Enum for Language {
const NAME: &'static str = "Language";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<Language> {
match value {
0 => ::std::option::Option::Some(Language::UnspecifiedLanguage),
60 => ::std::option::Option::Some(Language::ABAP),
49 => ::std::option::Option::Some(Language::APL),
39 => ::std::option::Option::Some(Language::Ada),
45 => ::std::option::Option::Some(Language::Agda),
86 => ::std::option::Option::Some(Language::AsciiDoc),
58 => ::std::option::Option::Some(Language::Assembly),
66 => ::std::option::Option::Some(Language::Awk),
68 => ::std::option::Option::Some(Language::Bat),
81 => ::std::option::Option::Some(Language::BibTeX),
34 => ::std::option::Option::Some(Language::C),
59 => ::std::option::Option::Some(Language::COBOL),
35 => ::std::option::Option::Some(Language::CPP),
26 => ::std::option::Option::Some(Language::CSS),
1 => ::std::option::Option::Some(Language::CSharp),
8 => ::std::option::Option::Some(Language::Clojure),
21 => ::std::option::Option::Some(Language::Coffeescript),
9 => ::std::option::Option::Some(Language::CommonLisp),
47 => ::std::option::Option::Some(Language::Coq),
3 => ::std::option::Option::Some(Language::Dart),
57 => ::std::option::Option::Some(Language::Delphi),
88 => ::std::option::Option::Some(Language::Diff),
80 => ::std::option::Option::Some(Language::Dockerfile),
50 => ::std::option::Option::Some(Language::Dyalog),
17 => ::std::option::Option::Some(Language::Elixir),
18 => ::std::option::Option::Some(Language::Erlang),
42 => ::std::option::Option::Some(Language::FSharp),
65 => ::std::option::Option::Some(Language::Fish),
24 => ::std::option::Option::Some(Language::Flow),
56 => ::std::option::Option::Some(Language::Fortran),
91 => ::std::option::Option::Some(Language::Git_Commit),
89 => ::std::option::Option::Some(Language::Git_Config),
92 => ::std::option::Option::Some(Language::Git_Rebase),
33 => ::std::option::Option::Some(Language::Go),
7 => ::std::option::Option::Some(Language::Groovy),
30 => ::std::option::Option::Some(Language::HTML),
20 => ::std::option::Option::Some(Language::Hack),
90 => ::std::option::Option::Some(Language::Handlebars),
44 => ::std::option::Option::Some(Language::Haskell),
46 => ::std::option::Option::Some(Language::Idris),
72 => ::std::option::Option::Some(Language::Ini),
51 => ::std::option::Option::Some(Language::J),
75 => ::std::option::Option::Some(Language::JSON),
6 => ::std::option::Option::Some(Language::Java),
22 => ::std::option::Option::Some(Language::JavaScript),
93 => ::std::option::Option::Some(Language::JavaScriptReact),
76 => ::std::option::Option::Some(Language::Jsonnet),
55 => ::std::option::Option::Some(Language::Julia),
4 => ::std::option::Option::Some(Language::Kotlin),
83 => ::std::option::Option::Some(Language::LaTeX),
48 => ::std::option::Option::Some(Language::Lean),
27 => ::std::option::Option::Some(Language::Less),
12 => ::std::option::Option::Some(Language::Lua),
79 => ::std::option::Option::Some(Language::Makefile),
84 => ::std::option::Option::Some(Language::Markdown),
52 => ::std::option::Option::Some(Language::Matlab),
77 => ::std::option::Option::Some(Language::Nix),
41 => ::std::option::Option::Some(Language::OCaml),
36 => ::std::option::Option::Some(Language::Objective_C),
37 => ::std::option::Option::Some(Language::Objective_CPP),
19 => ::std::option::Option::Some(Language::PHP),
70 => ::std::option::Option::Some(Language::PLSQL),
13 => ::std::option::Option::Some(Language::Perl),
67 => ::std::option::Option::Some(Language::PowerShell),
71 => ::std::option::Option::Some(Language::Prolog),
15 => ::std::option::Option::Some(Language::Python),
54 => ::std::option::Option::Some(Language::R),
11 => ::std::option::Option::Some(Language::Racket),
14 => ::std::option::Option::Some(Language::Raku),
62 => ::std::option::Option::Some(Language::Razor),
85 => ::std::option::Option::Some(Language::ReST),
16 => ::std::option::Option::Some(Language::Ruby),
40 => ::std::option::Option::Some(Language::Rust),
61 => ::std::option::Option::Some(Language::SAS),
29 => ::std::option::Option::Some(Language::SCSS),
43 => ::std::option::Option::Some(Language::SML),
69 => ::std::option::Option::Some(Language::SQL),
28 => ::std::option::Option::Some(Language::Sass),
5 => ::std::option::Option::Some(Language::Scala),
10 => ::std::option::Option::Some(Language::Scheme),
64 => ::std::option::Option::Some(Language::ShellScript),
78 => ::std::option::Option::Some(Language::Skylark),
2 => ::std::option::Option::Some(Language::Swift),
73 => ::std::option::Option::Some(Language::TOML),
82 => ::std::option::Option::Some(Language::TeX),
23 => ::std::option::Option::Some(Language::TypeScript),
94 => ::std::option::Option::Some(Language::TypeScriptReact),
63 => ::std::option::Option::Some(Language::VisualBasic),
25 => ::std::option::Option::Some(Language::Vue),
53 => ::std::option::Option::Some(Language::Wolfram),
31 => ::std::option::Option::Some(Language::XML),
32 => ::std::option::Option::Some(Language::XSL),
74 => ::std::option::Option::Some(Language::YAML),
38 => ::std::option::Option::Some(Language::Zig),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [Language] = &[
Language::UnspecifiedLanguage,
Language::ABAP,
Language::APL,
Language::Ada,
Language::Agda,
Language::AsciiDoc,
Language::Assembly,
Language::Awk,
Language::Bat,
Language::BibTeX,
Language::C,
Language::COBOL,
Language::CPP,
Language::CSS,
Language::CSharp,
Language::Clojure,
Language::Coffeescript,
Language::CommonLisp,
Language::Coq,
Language::Dart,
Language::Delphi,
Language::Diff,
Language::Dockerfile,
Language::Dyalog,
Language::Elixir,
Language::Erlang,
Language::FSharp,
Language::Fish,
Language::Flow,
Language::Fortran,
Language::Git_Commit,
Language::Git_Config,
Language::Git_Rebase,
Language::Go,
Language::Groovy,
Language::HTML,
Language::Hack,
Language::Handlebars,
Language::Haskell,
Language::Idris,
Language::Ini,
Language::J,
Language::JSON,
Language::Java,
Language::JavaScript,
Language::JavaScriptReact,
Language::Jsonnet,
Language::Julia,
Language::Kotlin,
Language::LaTeX,
Language::Lean,
Language::Less,
Language::Lua,
Language::Makefile,
Language::Markdown,
Language::Matlab,
Language::Nix,
Language::OCaml,
Language::Objective_C,
Language::Objective_CPP,
Language::PHP,
Language::PLSQL,
Language::Perl,
Language::PowerShell,
Language::Prolog,
Language::Python,
Language::R,
Language::Racket,
Language::Raku,
Language::Razor,
Language::ReST,
Language::Ruby,
Language::Rust,
Language::SAS,
Language::SCSS,
Language::SML,
Language::SQL,
Language::Sass,
Language::Scala,
Language::Scheme,
Language::ShellScript,
Language::Skylark,
Language::Swift,
Language::TOML,
Language::TeX,
Language::TypeScript,
Language::TypeScriptReact,
Language::VisualBasic,
Language::Vue,
Language::Wolfram,
Language::XML,
Language::XSL,
Language::YAML,
Language::Zig,
];
}
impl ::protobuf::EnumFull for Language {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("Language").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = match self {
Language::UnspecifiedLanguage => 0,
Language::ABAP => 1,
Language::APL => 2,
Language::Ada => 3,
Language::Agda => 4,
Language::AsciiDoc => 5,
Language::Assembly => 6,
Language::Awk => 7,
Language::Bat => 8,
Language::BibTeX => 9,
Language::C => 10,
Language::COBOL => 11,
Language::CPP => 12,
Language::CSS => 13,
Language::CSharp => 14,
Language::Clojure => 15,
Language::Coffeescript => 16,
Language::CommonLisp => 17,
Language::Coq => 18,
Language::Dart => 19,
Language::Delphi => 20,
Language::Diff => 21,
Language::Dockerfile => 22,
Language::Dyalog => 23,
Language::Elixir => 24,
Language::Erlang => 25,
Language::FSharp => 26,
Language::Fish => 27,
Language::Flow => 28,
Language::Fortran => 29,
Language::Git_Commit => 30,
Language::Git_Config => 31,
Language::Git_Rebase => 32,
Language::Go => 33,
Language::Groovy => 34,
Language::HTML => 35,
Language::Hack => 36,
Language::Handlebars => 37,
Language::Haskell => 38,
Language::Idris => 39,
Language::Ini => 40,
Language::J => 41,
Language::JSON => 42,
Language::Java => 43,
Language::JavaScript => 44,
Language::JavaScriptReact => 45,
Language::Jsonnet => 46,
Language::Julia => 47,
Language::Kotlin => 48,
Language::LaTeX => 49,
Language::Lean => 50,
Language::Less => 51,
Language::Lua => 52,
Language::Makefile => 53,
Language::Markdown => 54,
Language::Matlab => 55,
Language::Nix => 56,
Language::OCaml => 57,
Language::Objective_C => 58,
Language::Objective_CPP => 59,
Language::PHP => 60,
Language::PLSQL => 61,
Language::Perl => 62,
Language::PowerShell => 63,
Language::Prolog => 64,
Language::Python => 65,
Language::R => 66,
Language::Racket => 67,
Language::Raku => 68,
Language::Razor => 69,
Language::ReST => 70,
Language::Ruby => 71,
Language::Rust => 72,
Language::SAS => 73,
Language::SCSS => 74,
Language::SML => 75,
Language::SQL => 76,
Language::Sass => 77,
Language::Scala => 78,
Language::Scheme => 79,
Language::ShellScript => 80,
Language::Skylark => 81,
Language::Swift => 82,
Language::TOML => 83,
Language::TeX => 84,
Language::TypeScript => 85,
Language::TypeScriptReact => 86,
Language::VisualBasic => 87,
Language::Vue => 88,
Language::Wolfram => 89,
Language::XML => 90,
Language::XSL => 91,
Language::YAML => 92,
Language::Zig => 93,
};
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for Language {
fn default() -> Self {
Language::UnspecifiedLanguage
}
}
impl Language {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<Language>("Language")
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\nscip.proto\x12\x04scip\"\xa5\x01\n\x05Index\x12*\n\x08metadata\x18\
\x01\x20\x01(\x0b2\x0e.scip.MetadataR\x08metadata\x12,\n\tdocuments\x18\
\x02\x20\x03(\x0b2\x0e.scip.DocumentR\tdocuments\x12B\n\x10external_symb\
ols\x18\x03\x20\x03(\x0b2\x17.scip.SymbolInformationR\x0fexternalSymbols\
\"\xd5\x01\n\x08Metadata\x12/\n\x07version\x18\x01\x20\x01(\x0e2\x15.sci\
p.ProtocolVersionR\x07version\x12+\n\ttool_info\x18\x02\x20\x01(\x0b2\
\x0e.scip.ToolInfoR\x08toolInfo\x12!\n\x0cproject_root\x18\x03\x20\x01(\
\tR\x0bprojectRoot\x12H\n\x16text_document_encoding\x18\x04\x20\x01(\x0e\
2\x12.scip.TextEncodingR\x14textDocumentEncoding\"V\n\x08ToolInfo\x12\
\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07version\x18\x02\
\x20\x01(\tR\x07version\x12\x1c\n\targuments\x18\x03\x20\x03(\tR\targume\
nts\"\xb2\x01\n\x08Document\x12\x1a\n\x08language\x18\x04\x20\x01(\tR\
\x08language\x12#\n\rrelative_path\x18\x01\x20\x01(\tR\x0crelativePath\
\x122\n\x0boccurrences\x18\x02\x20\x03(\x0b2\x10.scip.OccurrenceR\x0bocc\
urrences\x121\n\x07symbols\x18\x03\x20\x03(\x0b2\x17.scip.SymbolInformat\
ionR\x07symbols\"}\n\x06Symbol\x12\x16\n\x06scheme\x18\x01\x20\x01(\tR\
\x06scheme\x12'\n\x07package\x18\x02\x20\x01(\x0b2\r.scip.PackageR\x07pa\
ckage\x122\n\x0bdescriptors\x18\x03\x20\x03(\x0b2\x10.scip.DescriptorR\
\x0bdescriptors\"Q\n\x07Package\x12\x18\n\x07manager\x18\x01\x20\x01(\tR\
\x07manager\x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x18\n\x07v\
ersion\x18\x03\x20\x01(\tR\x07version\"\x9f\x02\n\nDescriptor\x12\x12\n\
\x04name\x18\x01\x20\x01(\tR\x04name\x12$\n\rdisambiguator\x18\x02\x20\
\x01(\tR\rdisambiguator\x12/\n\x06suffix\x18\x03\x20\x01(\x0e2\x17.scip.\
Descriptor.SuffixR\x06suffix\"\xa5\x01\n\x06Suffix\x12\x15\n\x11Unspecif\
iedSuffix\x10\0\x12\r\n\tNamespace\x10\x01\x12\x0f\n\x07Package\x10\x01\
\x1a\x02\x08\x01\x12\x08\n\x04Type\x10\x02\x12\x08\n\x04Term\x10\x03\x12\
\n\n\x06Method\x10\x04\x12\x11\n\rTypeParameter\x10\x05\x12\r\n\tParamet\
er\x10\x06\x12\t\n\x05Macro\x10\t\x12\x08\n\x04Meta\x10\x07\x12\t\n\x05L\
ocal\x10\x08\x1a\x02\x10\x01\"\x8b\x01\n\x11SymbolInformation\x12\x16\n\
\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12$\n\rdocumentation\x18\x03\
\x20\x03(\tR\rdocumentation\x128\n\rrelationships\x18\x04\x20\x03(\x0b2\
\x12.scip.RelationshipR\rrelationships\"\xa4\x01\n\x0cRelationship\x12\
\x16\n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12!\n\x0cis_reference\
\x18\x02\x20\x01(\x08R\x0bisReference\x12+\n\x11is_implementation\x18\
\x03\x20\x01(\x08R\x10isImplementation\x12,\n\x12is_type_definition\x18\
\x04\x20\x01(\x08R\x10isTypeDefinition\"\xfb\x01\n\nOccurrence\x12\x14\n\
\x05range\x18\x01\x20\x03(\x05R\x05range\x12\x16\n\x06symbol\x18\x02\x20\
\x01(\tR\x06symbol\x12!\n\x0csymbol_roles\x18\x03\x20\x01(\x05R\x0bsymbo\
lRoles\x125\n\x16override_documentation\x18\x04\x20\x03(\tR\x15overrideD\
ocumentation\x121\n\x0bsyntax_kind\x18\x05\x20\x01(\x0e2\x10.scip.Syntax\
KindR\nsyntaxKind\x122\n\x0bdiagnostics\x18\x06\x20\x03(\x0b2\x10.scip.D\
iagnosticR\x0bdiagnostics\"\xa7\x01\n\nDiagnostic\x12*\n\x08severity\x18\
\x01\x20\x01(\x0e2\x0e.scip.SeverityR\x08severity\x12\x12\n\x04code\x18\
\x02\x20\x01(\tR\x04code\x12\x18\n\x07message\x18\x03\x20\x01(\tR\x07mes\
sage\x12\x16\n\x06source\x18\x04\x20\x01(\tR\x06source\x12'\n\x04tags\
\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04tags*1\n\x0fProtocolVe\
rsion\x12\x1e\n\x1aUnspecifiedProtocolVersion\x10\0*@\n\x0cTextEncoding\
\x12\x1b\n\x17UnspecifiedTextEncoding\x10\0\x12\x08\n\x04UTF8\x10\x01\
\x12\t\n\x05UTF16\x10\x02*}\n\nSymbolRole\x12\x19\n\x15UnspecifiedSymbol\
Role\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Import\x10\x02\x12\
\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\x08\x12\r\n\tGen\
erated\x10\x10\x12\x08\n\x04Test\x10\x20*\xea\x06\n\nSyntaxKind\x12\x19\
\n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\
\x14PunctuationDelimiter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\
\x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\
\x02\x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifi\
er\x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifie\
rNull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17Identif\
ierMutableGlobal\x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\
\n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\
\x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\
\x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\
\x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0fIdentifierMacro\
\x10\x11\x12\x1d\n\x19IdentifierMacroDefinition\x10\x12\x12\x12\n\x0eIde\
ntifierType\x10\x13\x12\x19\n\x15IdentifierBuiltinType\x10\x14\x12\x17\n\
\x13IdentifierAttribute\x10\x15\x12\x0f\n\x0bRegexEscape\x10\x16\x12\x11\
\n\rRegexRepeated\x10\x17\x12\x11\n\rRegexWildcard\x10\x18\x12\x12\n\x0e\
RegexDelimiter\x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\x11\n\rStringLiter\
al\x10\x1b\x12\x17\n\x13StringLiteralEscape\x10\x1c\x12\x18\n\x14StringL\
iteralSpecial\x10\x1d\x12\x14\n\x10StringLiteralKey\x10\x1e\x12\x14\n\
\x10CharacterLiteral\x10\x1f\x12\x12\n\x0eNumericLiteral\x10\x20\x12\x12\
\n\x0eBooleanLiteral\x10!\x12\x07\n\x03Tag\x10\"\x12\x10\n\x0cTagAttribu\
te\x10#\x12\x10\n\x0cTagDelimiter\x10$\x1a\x02\x10\x01*V\n\x08Severity\
\x12\x17\n\x13UnspecifiedSeverity\x10\0\x12\t\n\x05Error\x10\x01\x12\x0b\
\n\x07Warning\x10\x02\x12\x0f\n\x0bInformation\x10\x03\x12\x08\n\x04Hint\
\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18UnspecifiedDiagnosticTag\x10\0\
\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\nDeprecated\x10\x02*\xe0\x08\
\n\x08Language\x12\x17\n\x13UnspecifiedLanguage\x10\0\x12\x08\n\x04ABAP\
\x10<\x12\x07\n\x03APL\x101\x12\x07\n\x03Ada\x10'\x12\x08\n\x04Agda\x10-\
\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\n\x08Assembly\x10:\x12\x07\n\x03Awk\
\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\x06BibTeX\x10Q\x12\x05\n\x01C\x10\"\
\x12\t\n\x05COBOL\x10;\x12\x07\n\x03CPP\x10#\x12\x07\n\x03CSS\x10\x1a\
\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\x07Clojure\x10\x08\x12\x10\n\x0cCof\
feescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\x12\x07\n\x03Coq\x10/\x12\
\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\x109\x12\x08\n\x04Diff\x10X\x12\
\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalog\x102\x12\n\n\x06Elixir\x10\x11\
\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FSharp\x10*\x12\x08\n\x04Fish\x10A\
\x12\x08\n\x04Flow\x10\x18\x12\x0b\n\x07Fortran\x108\x12\x0e\n\nGit_Comm\
it\x10[\x12\x0e\n\nGit_Config\x10Y\x12\x0e\n\nGit_Rebase\x10\\\x12\x06\n\
\x02Go\x10!\x12\n\n\x06Groovy\x10\x07\x12\x08\n\x04HTML\x10\x1e\x12\x08\
\n\x04Hack\x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\n\x07Haskell\x10,\
\x12\t\n\x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\x01J\x103\x12\x08\
\n\x04JSON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJavaScript\x10\x16\
\x12\x13\n\x0fJavaScriptReact\x10]\x12\x0b\n\x07Jsonnet\x10L\x12\t\n\x05\
Julia\x107\x12\n\n\x06Kotlin\x10\x04\x12\t\n\x05LaTeX\x10S\x12\x08\n\x04\
Lean\x100\x12\x08\n\x04Less\x10\x1b\x12\x07\n\x03Lua\x10\x0c\x12\x0c\n\
\x08Makefile\x10O\x12\x0c\n\x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\
\x07\n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\x0bObjective_C\x10$\
\x12\x11\n\rObjective_CPP\x10%\x12\x07\n\x03PHP\x10\x13\x12\t\n\x05PLSQL\
\x10F\x12\x08\n\x04Perl\x10\r\x12\x0e\n\nPowerShell\x10C\x12\n\n\x06Prol\
og\x10G\x12\n\n\x06Python\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\
\x10\x0b\x12\x08\n\x04Raku\x10\x0e\x12\t\n\x05Razor\x10>\x12\x08\n\x04Re\
ST\x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rust\x10(\x12\x07\n\x03SA\
S\x10=\x12\x08\n\x04SCSS\x10\x1d\x12\x07\n\x03SML\x10+\x12\x07\n\x03SQL\
\x10E\x12\x08\n\x04Sass\x10\x1c\x12\t\n\x05Scala\x10\x05\x12\n\n\x06Sche\
me\x10\n\x12\x0f\n\x0bShellScript\x10@\x12\x0b\n\x07Skylark\x10N\x12\t\n\
\x05Swift\x10\x02\x12\x08\n\x04TOML\x10I\x12\x07\n\x03TeX\x10R\x12\x0e\n\
\nTypeScript\x10\x17\x12\x13\n\x0fTypeScriptReact\x10^\x12\x0f\n\x0bVisu\
alBasic\x10?\x12\x07\n\x03Vue\x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\
\n\x03XML\x10\x1f\x12\x07\n\x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\
\x07\n\x03Zig\x10&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\x9d\
\xb8\x01\n\x07\x12\x05\n\0\x8c\x04\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\
\x122\xf7\x03\x20An\x20index\x20contains\x20one\x20or\x20more\x20pieces\
\x20of\x20information\x20about\x20a\x20given\x20piece\x20of\n\x20source\
\x20code\x20or\x20software\x20artifact.\x20Complementary\x20information\
\x20can\x20be\x20merged\n\x20together\x20from\x20multiple\x20sources\x20\
to\x20provide\x20a\x20unified\x20code\x20intelligence\n\x20experience.\n\
\n\x20Programs\x20producing\x20a\x20file\x20of\x20this\x20format\x20is\
\x20an\x20\"indexer\"\x20and\x20may\x20operate\n\x20somewhere\x20on\x20t\
he\x20spectrum\x20between\x20precision,\x20such\x20as\x20indexes\x20prod\
uced\x20by\n\x20compiler-backed\x20indexers,\x20and\x20heurstics,\x20suc\
h\x20as\x20indexes\x20produced\x20by\x20local\n\x20syntax-directed\x20an\
alysis\x20for\x20scope\x20rules.\n\n\x08\n\x01\x02\x12\x03\x0c\0\r\n\x08\
\n\x01\x08\x12\x03\x0e\0D\n\t\n\x02\x08\x0b\x12\x03\x0e\0D\n\xd0\x03\n\
\x02\x04\0\x12\x04\x16\0!\x01\x1a\xc3\x03\x20Index\x20represents\x20a\
\x20complete\x20SCIP\x20index\x20for\x20a\x20workspace\x20this\x20is\x20\
rooted\x20at\x20a\n\x20single\x20directory.\x20An\x20Index\x20message\
\x20payload\x20can\x20have\x20a\x20large\x20memory\x20footprint\n\x20and\
\x20it's\x20therefore\x20recommended\x20to\x20emit\x20and\x20consume\x20\
an\x20Index\x20payload\x20one\x20field\n\x20value\x20at\x20a\x20time.\
\x20To\x20permit\x20streaming\x20consumption\x20of\x20an\x20Index\x20pay\
load,\x20the\n\x20`metadata`\x20field\x20must\x20appear\x20at\x20the\x20\
start\x20of\x20the\x20stream\x20and\x20must\x20only\x20appear\n\x20once\
\x20in\x20the\x20stream.\x20Other\x20field\x20values\x20may\x20appear\
\x20in\x20any\x20order.\n\n\n\n\x03\x04\0\x01\x12\x03\x16\x08\r\n)\n\x04\
\x04\0\x02\0\x12\x03\x18\x02\x18\x1a\x1c\x20Metadata\x20about\x20this\
\x20index.\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x18\x02\n\n\x0c\n\x05\
\x04\0\x02\0\x01\x12\x03\x18\x0b\x13\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\
\x18\x16\x17\n3\n\x04\x04\0\x02\x01\x12\x03\x1a\x02\"\x1a&\x20Documents\
\x20that\x20belong\x20to\x20this\x20index.\n\n\x0c\n\x05\x04\0\x02\x01\
\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03\x1a\x0b\x13\
\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x1a\x14\x1d\n\x0c\n\x05\x04\0\x02\
\x01\x03\x12\x03\x1a\x20!\n\xf7\x02\n\x04\x04\0\x02\x02\x12\x03\x20\x022\
\x1a\xe9\x02\x20(optional)\x20Symbols\x20that\x20are\x20referenced\x20fr\
om\x20this\x20index\x20but\x20are\x20defined\x20in\n\x20an\x20external\
\x20package\x20(a\x20separate\x20`Index`\x20message).\x20Leave\x20this\
\x20field\x20empty\n\x20if\x20you\x20assume\x20the\x20external\x20packag\
e\x20will\x20get\x20indexed\x20separately.\x20If\x20the\n\x20external\
\x20package\x20won't\x20get\x20indexed\x20for\x20some\x20reason\x20then\
\x20you\x20can\x20use\x20this\n\x20field\x20to\x20provide\x20hover\x20do\
cumentation\x20for\x20those\x20external\x20symbols.\n\n\x0c\n\x05\x04\0\
\x02\x02\x04\x12\x03\x20\x02\n\n\x0c\n\x05\x04\0\x02\x02\x06\x12\x03\x20\
\x0b\x1c\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x20\x1d-\n\x0c\n\x05\x04\
\0\x02\x02\x03\x12\x03\x2001\n\n\n\x02\x04\x01\x12\x04#\0/\x01\n\n\n\x03\
\x04\x01\x01\x12\x03#\x08\x10\nN\n\x04\x04\x01\x02\0\x12\x03%\x02\x1e\
\x1aA\x20Which\x20version\x20of\x20this\x20protocol\x20was\x20used\x20to\
\x20generate\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03%\
\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03%\x12\x19\n\x0c\n\x05\x04\
\x01\x02\0\x03\x12\x03%\x1c\x1d\nC\n\x04\x04\x01\x02\x01\x12\x03'\x02\
\x19\x1a6\x20Information\x20about\x20the\x20tool\x20that\x20produced\x20\
this\x20index.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03'\x02\n\n\x0c\n\
\x05\x04\x01\x02\x01\x01\x12\x03'\x0b\x14\n\x0c\n\x05\x04\x01\x02\x01\
\x03\x12\x03'\x17\x18\n\xa2\x01\n\x04\x04\x01\x02\x02\x12\x03+\x02\x1a\
\x1a\x94\x01\x20URI-encoded\x20absolute\x20path\x20to\x20the\x20root\x20\
directory\x20of\x20this\x20index.\x20All\n\x20documents\x20in\x20this\
\x20index\x20must\x20appear\x20in\x20a\x20subdirectory\x20of\x20this\x20\
root\n\x20directory.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03+\x02\x08\
\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03+\t\x15\n\x0c\n\x05\x04\x01\x02\
\x02\x03\x12\x03+\x18\x19\nl\n\x04\x04\x01\x02\x03\x12\x03.\x02*\x1a_\
\x20Text\x20encoding\x20of\x20the\x20source\x20files\x20on\x20disk\x20th\
at\x20are\x20referenced\x20from\n\x20`Document.relative_path`.\n\n\x0c\n\
\x05\x04\x01\x02\x03\x06\x12\x03.\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\
\x01\x12\x03.\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03.()\n\n\n\x02\
\x05\0\x12\x041\03\x01\n\n\n\x03\x05\0\x01\x12\x031\x05\x14\n\x0b\n\x04\
\x05\0\x02\0\x12\x032\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x032\x02\x1c\
\n\x0c\n\x05\x05\0\x02\0\x02\x12\x032\x1f\x20\n\n\n\x02\x05\x01\x12\x045\
\09\x01\n\n\n\x03\x05\x01\x01\x12\x035\x05\x11\n\x0b\n\x04\x05\x01\x02\0\
\x12\x036\x02\x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x036\x02\x19\n\x0c\n\
\x05\x05\x01\x02\0\x02\x12\x036\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\
\x037\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x037\x02\x06\n\x0c\n\
\x05\x05\x01\x02\x01\x02\x12\x037\t\n\n\x0b\n\x04\x05\x01\x02\x02\x12\
\x038\x02\x0c\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x038\x02\x07\n\x0c\n\
\x05\x05\x01\x02\x02\x02\x12\x038\n\x0b\n\n\n\x02\x04\x02\x12\x04;\0B\
\x01\n\n\n\x03\x04\x02\x01\x12\x03;\x08\x10\n<\n\x04\x04\x02\x02\0\x12\
\x03=\x02\x12\x1a/\x20Name\x20of\x20the\x20indexer\x20that\x20produced\
\x20this\x20index.\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03=\x02\x08\n\
\x0c\n\x05\x04\x02\x02\0\x01\x12\x03=\t\r\n\x0c\n\x05\x04\x02\x02\0\x03\
\x12\x03=\x10\x11\n?\n\x04\x04\x02\x02\x01\x12\x03?\x02\x15\x1a2\x20Vers\
ion\x20of\x20the\x20indexer\x20that\x20produced\x20this\x20index.\n\n\
\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03?\x02\x08\n\x0c\n\x05\x04\x02\x02\
\x01\x01\x12\x03?\t\x10\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03?\x13\x14\
\nL\n\x04\x04\x02\x02\x02\x12\x03A\x02\x20\x1a?\x20Command-line\x20argum\
ents\x20that\x20were\x20used\x20to\x20invoke\x20this\x20indexer.\n\n\x0c\
\n\x05\x04\x02\x02\x02\x04\x12\x03A\x02\n\n\x0c\n\x05\x04\x02\x02\x02\
\x05\x12\x03A\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03A\x12\x1b\n\
\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03A\x1e\x1f\nH\n\x02\x04\x03\x12\x04\
E\0Y\x01\x1a<\x20Document\x20defines\x20the\x20metadata\x20about\x20a\
\x20source\x20file\x20on\x20disk.\n\n\n\n\x03\x04\x03\x01\x12\x03E\x08\
\x10\n\xa5\x02\n\x04\x04\x03\x02\0\x12\x03J\x02\x16\x1a\x97\x02\x20The\
\x20string\x20ID\x20for\x20the\x20programming\x20language\x20this\x20fil\
e\x20is\x20written\x20in.\n\x20The\x20`Language`\x20enum\x20contains\x20\
the\x20names\x20of\x20most\x20common\x20programming\x20languages.\n\x20T\
his\x20field\x20is\x20typed\x20as\x20a\x20string\x20to\x20permit\x20any\
\x20programming\x20langauge,\x20including\n\x20ones\x20that\x20are\x20no\
t\x20specified\x20by\x20the\x20`Language`\x20enum.\n\n\x0c\n\x05\x04\x03\
\x02\0\x05\x12\x03J\x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03J\t\x11\
\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03J\x14\x15\n\xb5\x03\n\x04\x04\x03\
\x02\x01\x12\x03T\x02\x1b\x1a\xa7\x03\x20(Required)\x20Unique\x20path\
\x20to\x20the\x20text\x20document.\n\n\x201.\x20The\x20path\x20must\x20b\
e\x20relative\x20to\x20the\x20directory\x20supplied\x20in\x20the\x20asso\
ciated\n\x20\x20\x20\x20`Metadata.project_root`.\n\x202.\x20The\x20path\
\x20must\x20not\x20begin\x20with\x20a\x20leading\x20'/'.\n\x203.\x20The\
\x20path\x20must\x20point\x20to\x20a\x20regular\x20file,\x20not\x20a\x20\
symbolic\x20link.\n\x204.\x20The\x20path\x20must\x20use\x20'/'\x20as\x20\
the\x20separator,\x20including\x20on\x20Windows.\n\x205.\x20The\x20path\
\x20must\x20be\x20canonical;\x20it\x20cannot\x20include\x20empty\x20comp\
onents\x20('//'),\n\x20\x20\x20\x20or\x20'.'\x20or\x20'..'.\n\n\x0c\n\
\x05\x04\x03\x02\x01\x05\x12\x03T\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\
\x01\x12\x03T\t\x16\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03T\x19\x1a\n4\
\n\x04\x04\x03\x02\x02\x12\x03V\x02&\x1a'\x20Occurrences\x20that\x20appe\
ar\x20in\x20this\x20file.\n\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x03V\x02\
\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03V\x0b\x15\n\x0c\n\x05\x04\x03\
\x02\x02\x01\x12\x03V\x16!\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03V$%\n=\
\n\x04\x04\x03\x02\x03\x12\x03X\x02)\x1a0\x20Symbols\x20that\x20are\x20d\
efined\x20within\x20this\x20document.\n\n\x0c\n\x05\x04\x03\x02\x03\x04\
\x12\x03X\x02\n\n\x0c\n\x05\x04\x03\x02\x03\x06\x12\x03X\x0b\x1c\n\x0c\n\
\x05\x04\x03\x02\x03\x01\x12\x03X\x1d$\n\x0c\n\x05\x04\x03\x02\x03\x03\
\x12\x03X'(\n\xee\x0f\n\x02\x04\x04\x12\x06\x80\x01\0\x84\x01\x01\x1a\
\xdf\x0f\x20Symbol\x20is\x20similar\x20to\x20a\x20URI,\x20it\x20identifi\
es\x20a\x20class,\x20method,\x20or\x20a\x20local\n\x20variable.\x20`Symb\
olInformation`\x20contains\x20rich\x20metadata\x20about\x20symbols\x20su\
ch\x20as\n\x20the\x20docstring.\n\n\x20Symbol\x20has\x20a\x20standardize\
d\x20string\x20representation,\x20which\x20can\x20be\x20used\n\x20interc\
hangeably\x20with\x20`Symbol`.\x20The\x20syntax\x20for\x20Symbol\x20is\
\x20the\x20following:\n\x20```\n\x20\x20\x20#\x20(<x>)+\x20stands\x20for\
\x20one\x20or\x20more\x20repetitions\x20of\x20<x>\n\x20\x20\x20<symbol>\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<sche\
me>\x20'\x20'\x20<package>\x20'\x20'\x20(<descriptor>)+\x20|\x20'local\
\x20'\x20<local-id>\n\x20\x20\x20<package>\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20::=\x20<manager>\x20'\x20'\x20<package-name>\
\x20'\x20'\x20<version>\n\x20\x20\x20<scheme>\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20any\x20UTF-8,\x20escape\x20sp\
aces\x20with\x20double\x20space.\n\x20\x20\x20<manager>\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20same\x20as\x20above,\x20u\
se\x20the\x20placeholder\x20'.'\x20to\x20indicate\x20an\x20empty\x20valu\
e\n\x20\x20\x20<package-name>\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20\
same\x20as\x20above\n\x20\x20\x20<version>\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20::=\x20same\x20as\x20above\n\x20\x20\x20<des\
criptor>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<namespace>\
\x20|\x20<type>\x20|\x20<term>\x20|\x20<method>\x20|\x20<type-parameter>\
\x20|\x20<parameter>\x20|\x20<meta>\n\x20\x20\x20<namespace>\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<name>\x20'/'\n\x20\x20\x20<t\
ype>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
::=\x20<name>\x20'#'\n\x20\x20\x20<term>\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<name>\x20'.'\n\x20\x20\x20<m\
eta>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
::=\x20<name>\x20':'\n\x20\x20\x20<method>\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<name>\x20'('\x20<method-disambig\
uator>\x20').'\n\x20\x20\x20<type-parameter>\x20\x20\x20\x20\x20\x20\x20\
::=\x20'['\x20<name>\x20']'\n\x20\x20\x20<parameter>\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20::=\x20'('\x20<name>\x20')'\n\x20\x20\x20<na\
me>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\
:=\x20<identifier>\n\x20\x20\x20<method-disambiguator>\x20::=\x20<simple\
-identifier>\n\x20\x20\x20<identifier>\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20::=\x20<simple-identifier>\x20|\x20<escaped-identifier>\n\
\x20\x20\x20<simple-identifier>\x20\x20\x20\x20::=\x20(<identifier-chara\
cter>)+\n\x20\x20\x20<identifier-character>\x20::=\x20'_'\x20|\x20'+'\
\x20|\x20'-'\x20|\x20'$'\x20|\x20ASCII\x20letter\x20or\x20digit\n\x20\
\x20\x20<escaped-identifier>\x20\x20\x20::=\x20'`'\x20(<escaped-characte\
r>)+\x20'`'\n\x20\x20\x20<escaped-characters>\x20\x20\x20::=\x20any\x20U\
TF-8\x20character,\x20escape\x20backticks\x20with\x20double\x20backtick.\
\n\x20```\n\n\x20The\x20list\x20of\x20descriptors\x20for\x20a\x20symbol\
\x20should\x20together\x20form\x20a\x20fully\n\x20qualified\x20name\x20f\
or\x20the\x20symbol.\x20That\x20is,\x20it\x20should\x20serve\x20as\x20a\
\x20unique\n\x20identifier\x20across\x20the\x20package.\x20Typically,\
\x20it\x20will\x20include\x20one\x20descriptor\n\x20for\x20every\x20node\
\x20in\x20the\x20AST\x20(along\x20the\x20ancestry\x20path)\x20between\
\x20the\x20root\x20of\n\x20the\x20file\x20and\x20the\x20node\x20correspo\
nding\x20to\x20the\x20symbol.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x80\x01\
\x08\x0e\n\x0c\n\x04\x04\x04\x02\0\x12\x04\x81\x01\x02\x14\n\r\n\x05\x04\
\x04\x02\0\x05\x12\x04\x81\x01\x02\x08\n\r\n\x05\x04\x04\x02\0\x01\x12\
\x04\x81\x01\t\x0f\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\x81\x01\x12\x13\n\
\x0c\n\x04\x04\x04\x02\x01\x12\x04\x82\x01\x02\x16\n\r\n\x05\x04\x04\x02\
\x01\x06\x12\x04\x82\x01\x02\t\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\x82\
\x01\n\x11\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\x82\x01\x14\x15\n\x0c\n\
\x04\x04\x04\x02\x02\x12\x04\x83\x01\x02&\n\r\n\x05\x04\x04\x02\x02\x04\
\x12\x04\x83\x01\x02\n\n\r\n\x05\x04\x04\x02\x02\x06\x12\x04\x83\x01\x0b\
\x15\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\x83\x01\x16!\n\r\n\x05\x04\
\x04\x02\x02\x03\x12\x04\x83\x01$%\nq\n\x02\x04\x05\x12\x06\x89\x01\0\
\x8d\x01\x01\x1ac\x20Unit\x20of\x20packaging\x20and\x20distribution.\n\n\
\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20module\x20in\x20Go\x20and\
\x20JVM\x20languages.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\x89\x01\x08\x0f\
\n\x0c\n\x04\x04\x05\x02\0\x12\x04\x8a\x01\x02\x15\n\r\n\x05\x04\x05\x02\
\0\x05\x12\x04\x8a\x01\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\x8a\
\x01\t\x10\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\x8a\x01\x13\x14\n\x0c\n\
\x04\x04\x05\x02\x01\x12\x04\x8b\x01\x02\x12\n\r\n\x05\x04\x05\x02\x01\
\x05\x12\x04\x8b\x01\x02\x08\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\x8b\
\x01\t\r\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\x8b\x01\x10\x11\n\x0c\n\
\x04\x04\x05\x02\x02\x12\x04\x8c\x01\x02\x15\n\r\n\x05\x04\x05\x02\x02\
\x05\x12\x04\x8c\x01\x02\x08\n\r\n\x05\x04\x05\x02\x02\x01\x12\x04\x8c\
\x01\t\x10\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\x8c\x01\x13\x14\n\x0c\n\
\x02\x04\x06\x12\x06\x8f\x01\0\xa6\x01\x01\n\x0b\n\x03\x04\x06\x01\x12\
\x04\x8f\x01\x08\x12\n\x0e\n\x04\x04\x06\x04\0\x12\x06\x90\x01\x02\xa2\
\x01\x03\n\r\n\x05\x04\x06\x04\0\x01\x12\x04\x90\x01\x07\r\n\r\n\x05\x04\
\x06\x04\0\x03\x12\x04\x91\x01\x04\x1e\n\x0e\n\x06\x04\x06\x04\0\x03\x02\
\x12\x04\x91\x01\x04\x1e\n\x0e\n\x06\x04\x06\x04\0\x02\0\x12\x04\x92\x01\
\x04\x1a\n\x0f\n\x07\x04\x06\x04\0\x02\0\x01\x12\x04\x92\x01\x04\x15\n\
\x0f\n\x07\x04\x06\x04\0\x02\0\x02\x12\x04\x92\x01\x18\x19\n}\n\x06\x04\
\x06\x04\0\x02\x01\x12\x04\x96\x01\x04\x12\x1am\x20Unit\x20of\x20code\
\x20abstraction\x20and/or\x20namespacing.\n\n\x20NOTE:\x20This\x20corres\
ponds\x20to\x20a\x20package\x20in\x20Go\x20and\x20JVM\x20languages.\n\n\
\x0f\n\x07\x04\x06\x04\0\x02\x01\x01\x12\x04\x96\x01\x04\r\n\x0f\n\x07\
\x04\x06\x04\0\x02\x01\x02\x12\x04\x96\x01\x10\x11\n(\n\x06\x04\x06\x04\
\0\x02\x02\x12\x04\x98\x01\x04\"\x1a\x18\x20Use\x20Namespace\x20instead.\
\n\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x01\x12\x04\x98\x01\x04\x0b\n\x0f\n\
\x07\x04\x06\x04\0\x02\x02\x02\x12\x04\x98\x01\x0e\x0f\n\x0f\n\x07\x04\
\x06\x04\0\x02\x02\x03\x12\x04\x98\x01\x10!\n\x10\n\x08\x04\x06\x04\0\
\x02\x02\x03\x01\x12\x04\x98\x01\x11\x20\n\x0e\n\x06\x04\x06\x04\0\x02\
\x03\x12\x04\x99\x01\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x03\x01\x12\x04\
\x99\x01\x04\x08\n\x0f\n\x07\x04\x06\x04\0\x02\x03\x02\x12\x04\x99\x01\
\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\x02\x04\x12\x04\x9a\x01\x04\r\n\x0f\n\
\x07\x04\x06\x04\0\x02\x04\x01\x12\x04\x9a\x01\x04\x08\n\x0f\n\x07\x04\
\x06\x04\0\x02\x04\x02\x12\x04\x9a\x01\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\
\x02\x05\x12\x04\x9b\x01\x04\x0f\n\x0f\n\x07\x04\x06\x04\0\x02\x05\x01\
\x12\x04\x9b\x01\x04\n\n\x0f\n\x07\x04\x06\x04\0\x02\x05\x02\x12\x04\x9b\
\x01\r\x0e\n\x0e\n\x06\x04\x06\x04\0\x02\x06\x12\x04\x9c\x01\x04\x16\n\
\x0f\n\x07\x04\x06\x04\0\x02\x06\x01\x12\x04\x9c\x01\x04\x11\n\x0f\n\x07\
\x04\x06\x04\0\x02\x06\x02\x12\x04\x9c\x01\x14\x15\n\x0e\n\x06\x04\x06\
\x04\0\x02\x07\x12\x04\x9d\x01\x04\x12\n\x0f\n\x07\x04\x06\x04\0\x02\x07\
\x01\x12\x04\x9d\x01\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x07\x02\x12\x04\
\x9d\x01\x10\x11\n\x0e\n\x06\x04\x06\x04\0\x02\x08\x12\x04\x9e\x01\x04\
\x0e\n\x0f\n\x07\x04\x06\x04\0\x02\x08\x01\x12\x04\x9e\x01\x04\t\n\x0f\n\
\x07\x04\x06\x04\0\x02\x08\x02\x12\x04\x9e\x01\x0c\r\n.\n\x06\x04\x06\
\x04\0\x02\t\x12\x04\xa0\x01\x04\r\x1a\x1e\x20Can\x20be\x20used\x20for\
\x20any\x20purpose.\n\n\x0f\n\x07\x04\x06\x04\0\x02\t\x01\x12\x04\xa0\
\x01\x04\x08\n\x0f\n\x07\x04\x06\x04\0\x02\t\x02\x12\x04\xa0\x01\x0b\x0c\
\n\x0e\n\x06\x04\x06\x04\0\x02\n\x12\x04\xa1\x01\x04\x0e\n\x0f\n\x07\x04\
\x06\x04\0\x02\n\x01\x12\x04\xa1\x01\x04\t\n\x0f\n\x07\x04\x06\x04\0\x02\
\n\x02\x12\x04\xa1\x01\x0c\r\n\x0c\n\x04\x04\x06\x02\0\x12\x04\xa3\x01\
\x02\x12\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\xa3\x01\x02\x08\n\r\n\x05\
\x04\x06\x02\0\x01\x12\x04\xa3\x01\t\r\n\r\n\x05\x04\x06\x02\0\x03\x12\
\x04\xa3\x01\x10\x11\n\x0c\n\x04\x04\x06\x02\x01\x12\x04\xa4\x01\x02\x1b\
\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\xa4\x01\x02\x08\n\r\n\x05\x04\x06\
\x02\x01\x01\x12\x04\xa4\x01\t\x16\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\
\xa4\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xa5\x01\x02\x14\n\r\
\n\x05\x04\x06\x02\x02\x06\x12\x04\xa5\x01\x02\x08\n\r\n\x05\x04\x06\x02\
\x02\x01\x12\x04\xa5\x01\t\x0f\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xa5\
\x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaa\x01\0\xb5\x01\x01\x1au\
\x20SymbolInformation\x20defines\x20metadata\x20about\x20a\x20symbol,\
\x20such\x20as\x20the\x20symbol's\n\x20docstring\x20or\x20what\x20packag\
e\x20it's\x20defined\x20it.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xaa\x01\
\x08\x19\n\xa0\x01\n\x04\x04\x07\x02\0\x12\x04\xad\x01\x02\x14\x1a\x91\
\x01\x20Identifier\x20of\x20this\x20symbol,\x20which\x20can\x20be\x20ref\
erenced\x20from\x20`Occurence.symbol`.\n\x20The\x20string\x20must\x20be\
\x20formatted\x20according\x20to\x20the\x20grammar\x20in\x20`Symbol`.\n\
\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\xad\x01\x02\x08\n\r\n\x05\x04\x07\
\x02\0\x01\x12\x04\xad\x01\t\x0f\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\xad\
\x01\x12\x13\n\xb6\x02\n\x04\x04\x07\x02\x01\x12\x04\xb2\x01\x02$\x1a\
\xa7\x02\x20(optional,\x20but\x20strongly\x20recommended)\x20The\x20mark\
down-formatted\x20documentation\n\x20for\x20this\x20symbol.\x20This\x20f\
ield\x20is\x20repeated\x20to\x20allow\x20different\x20kinds\x20of\n\x20d\
ocumentation.\x20\x20For\x20example,\x20it's\x20nice\x20to\x20include\
\x20both\x20the\x20signature\x20of\x20a\n\x20method\x20(parameters\x20an\
d\x20return\x20type)\x20along\x20with\x20the\x20accompanying\x20docstrin\
g.\n\n\r\n\x05\x04\x07\x02\x01\x04\x12\x04\xb2\x01\x02\n\n\r\n\x05\x04\
\x07\x02\x01\x05\x12\x04\xb2\x01\x0b\x11\n\r\n\x05\x04\x07\x02\x01\x01\
\x12\x04\xb2\x01\x12\x1f\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xb2\x01\"\
#\n^\n\x04\x04\x07\x02\x02\x12\x04\xb4\x01\x02*\x1aP\x20(optional)\x20Re\
lationships\x20to\x20other\x20symbols\x20(e.g.,\x20implements,\x20type\
\x20definition).\n\n\r\n\x05\x04\x07\x02\x02\x04\x12\x04\xb4\x01\x02\n\n\
\r\n\x05\x04\x07\x02\x02\x06\x12\x04\xb4\x01\x0b\x17\n\r\n\x05\x04\x07\
\x02\x02\x01\x12\x04\xb4\x01\x18%\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\
\xb4\x01()\n\x0c\n\x02\x04\x08\x12\x06\xb7\x01\0\xdd\x01\x01\n\x0b\n\x03\
\x04\x08\x01\x12\x04\xb7\x01\x08\x14\n\x0c\n\x04\x04\x08\x02\0\x12\x04\
\xb8\x01\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xb8\x01\x02\x08\n\r\
\n\x05\x04\x08\x02\0\x01\x12\x04\xb8\x01\t\x0f\n\r\n\x05\x04\x08\x02\0\
\x03\x12\x04\xb8\x01\x12\x13\n\x8f\x08\n\x04\x04\x08\x02\x01\x12\x04\xd1\
\x01\x02\x18\x1a\x80\x08\x20When\x20resolving\x20\"Find\x20references\",\
\x20this\x20field\x20documents\x20what\x20other\x20symbols\n\x20should\
\x20be\x20included\x20together\x20with\x20this\x20symbol.\x20For\x20exam\
ple,\x20consider\x20the\n\x20following\x20TypeScript\x20code\x20that\x20\
defines\x20two\x20symbols\x20`Animal#sound()`\x20and\n\x20`Dog#sound()`:\
\n\x20```ts\n\x20interface\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20^^^^^^\x20definition\x20Animal#\n\x20\x20\x20sound():\
\x20string\n\x20\x20\x20^^^^^\x20definition\x20Animal#sound()\n\x20}\n\
\x20class\x20Dog\x20implements\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\
\x20^^^\x20definition\x20Dog#,\x20implementation_symbols\x20=\x20Animal#\
\n\x20\x20\x20public\x20sound():\x20string\x20{\x20return\x20\"woof\"\
\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20definition\x20Do\
g#sound(),\x20references_symbols\x20=\x20Animal#sound(),\x20implementati\
on_symbols\x20=\x20Animal#sound()\n\x20}\n\x20const\x20animal:\x20Animal\
\x20=\x20new\x20Dog()\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20^^^^^^\x20reference\x20Animal#\n\x20console.log(animal.sound\
())\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20^^^^^\x20reference\x20Animal#sound()\n\x20```\n\x20Doing\
\x20\"Find\x20references\"\x20on\x20the\x20symbol\x20`Animal#sound()`\
\x20should\x20return\n\x20references\x20to\x20the\x20`Dog#sound()`\x20me\
thod\x20as\x20well.\x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\
\x20on\x20the\x20`Dog#sound()`\x20method\x20should\x20include\x20referen\
ces\x20to\x20the\n\x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\
\x05\x04\x08\x02\x01\x05\x12\x04\xd1\x01\x02\x06\n\r\n\x05\x04\x08\x02\
\x01\x01\x12\x04\xd1\x01\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\
\xd1\x01\x16\x17\n\xba\x04\n\x04\x04\x08\x02\x02\x12\x04\xda\x01\x02\x1d\
\x1a\xab\x04\x20Similar\x20to\x20`references_symbols`\x20but\x20for\x20\
\"Go\x20to\x20implementation\".\n\x20It's\x20common\x20for\x20the\x20`im\
plementation_symbols`\x20and\x20`references_symbols`\x20fields\n\x20have\
\x20the\x20same\x20values\x20but\x20that's\x20not\x20always\x20the\x20ca\
se.\n\x20In\x20the\x20TypeScript\x20example\x20above,\x20observe\x20that\
\x20`implementation_symbols`\x20has\n\x20the\x20value\x20`\"Animal#\"`\
\x20for\x20the\x20\"Dog#\"\x20symbol\x20while\x20`references_symbols`\
\x20is\n\x20empty.\x20When\x20requesting\x20\"Find\x20references\"\x20on\
\x20the\x20\"Animal#\"\x20symbol\x20we\x20don't\n\x20want\x20to\x20inclu\
de\x20references\x20to\x20\"Dog#\"\x20even\x20if\x20\"Go\x20to\x20implem\
entation\"\x20on\x20the\n\x20\"Animal#\"\x20symbol\x20should\x20navigate\
\x20to\x20the\x20\"Dog#\"\x20symbol.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\
\x04\xda\x01\x02\x06\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xda\x01\x07\
\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xda\x01\x1b\x1c\nP\n\x04\x04\
\x08\x02\x03\x12\x04\xdc\x01\x02\x1e\x1aB\x20Similar\x20to\x20`reference\
s_symbols`\x20but\x20for\x20\"Go\x20to\x20type\x20definition\".\n\n\r\n\
\x05\x04\x08\x02\x03\x05\x12\x04\xdc\x01\x02\x06\n\r\n\x05\x04\x08\x02\
\x03\x01\x12\x04\xdc\x01\x07\x19\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\
\xdc\x01\x1c\x1d\n\x89\x03\n\x02\x05\x02\x12\x06\xe4\x01\0\xf4\x01\x01\
\x1a\xfa\x02\x20SymbolRole\x20declares\x20what\x20\"role\"\x20a\x20symbo\
l\x20has\x20in\x20an\x20occurrence.\x20\x20A\x20role\x20is\n\x20encoded\
\x20as\x20a\x20bitset\x20where\x20each\x20bit\x20represents\x20a\x20diff\
erent\x20role.\x20For\x20example,\n\x20to\x20determine\x20if\x20the\x20`\
Import`\x20role\x20is\x20set,\x20test\x20whether\x20the\x20second\x20bit\
\x20of\x20the\n\x20enum\x20value\x20is\x20defined.\x20In\x20pseudocode,\
\x20this\x20can\x20be\x20implemented\x20with\x20the\n\x20logic:\x20`cons\
t\x20isImportRole\x20=\x20(role.value\x20&\x20SymbolRole.Import.value)\
\x20>\x200`.\n\n\x0b\n\x03\x05\x02\x01\x12\x04\xe4\x01\x05\x0f\nv\n\x04\
\x05\x02\x02\0\x12\x04\xe7\x01\x02\x1c\x1ah\x20This\x20case\x20is\x20not\
\x20meant\x20to\x20be\x20used;\x20it\x20only\x20exists\x20to\x20avoid\
\x20an\x20error\n\x20from\x20the\x20Protobuf\x20code\x20generator.\n\n\r\
\n\x05\x05\x02\x02\0\x01\x12\x04\xe7\x01\x02\x17\n\r\n\x05\x05\x02\x02\0\
\x02\x12\x04\xe7\x01\x1a\x1b\nT\n\x04\x05\x02\x02\x01\x12\x04\xe9\x01\
\x02\x13\x1aF\x20Is\x20the\x20symbol\x20defined\x20here?\x20If\x20not,\
\x20then\x20this\x20is\x20a\x20symbol\x20reference.\n\n\r\n\x05\x05\x02\
\x02\x01\x01\x12\x04\xe9\x01\x02\x0c\n\r\n\x05\x05\x02\x02\x01\x02\x12\
\x04\xe9\x01\x0f\x12\n,\n\x04\x05\x02\x02\x02\x12\x04\xeb\x01\x02\x0f\
\x1a\x1e\x20Is\x20the\x20symbol\x20imported\x20here?\n\n\r\n\x05\x05\x02\
\x02\x02\x01\x12\x04\xeb\x01\x02\x08\n\r\n\x05\x05\x02\x02\x02\x02\x12\
\x04\xeb\x01\x0b\x0e\n+\n\x04\x05\x02\x02\x03\x12\x04\xed\x01\x02\x14\
\x1a\x1d\x20Is\x20the\x20symbol\x20written\x20here?\n\n\r\n\x05\x05\x02\
\x02\x03\x01\x12\x04\xed\x01\x02\r\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\
\xed\x01\x10\x13\n(\n\x04\x05\x02\x02\x04\x12\x04\xef\x01\x02\x13\x1a\
\x1a\x20Is\x20the\x20symbol\x20read\x20here?\n\n\r\n\x05\x05\x02\x02\x04\
\x01\x12\x04\xef\x01\x02\x0c\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\xef\
\x01\x0f\x12\n0\n\x04\x05\x02\x02\x05\x12\x04\xf1\x01\x02\x13\x1a\"\x20I\
s\x20the\x20symbol\x20in\x20generated\x20code?\n\n\r\n\x05\x05\x02\x02\
\x05\x01\x12\x04\xf1\x01\x02\x0b\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\
\xf1\x01\x0e\x12\n+\n\x04\x05\x02\x02\x06\x12\x04\xf3\x01\x02\x0e\x1a\
\x1d\x20Is\x20the\x20symbol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x02\
\x02\x06\x01\x12\x04\xf3\x01\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\
\x04\xf3\x01\t\r\n\x0c\n\x02\x05\x03\x12\x06\xf6\x01\0\xd3\x02\x01\n\x0b\
\n\x03\x05\x03\x01\x12\x04\xf6\x01\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\
\x04\xf7\x01\x02\x1c\n\x0c\n\x04\x05\x03\x03\x02\x12\x04\xf7\x01\x02\x1c\
\n\x0c\n\x04\x05\x03\x02\0\x12\x04\xf9\x01\x02\x1c\n\r\n\x05\x05\x03\x02\
\0\x01\x12\x04\xf9\x01\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\xf9\
\x01\x1a\x1b\n;\n\x04\x05\x03\x02\x01\x12\x04\xfc\x01\x02\x0e\x1a-\x20Co\
mment,\x20including\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\
\x03\x02\x01\x01\x12\x04\xfc\x01\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\
\x04\xfc\x01\x0c\r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\xff\x01\x02\x1b\
\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xff\
\x01\x02\x16\n\r\n\x05\x05\x03\x02\x02\x02\x12\x04\xff\x01\x19\x1a\n2\n\
\x04\x05\x03\x02\x03\x12\x04\x81\x02\x02\x19\x1a$\x20(),\x20{},\x20[]\
\x20when\x20used\x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\
\x04\x81\x02\x02\x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x81\x02\x17\
\x18\n5\n\x04\x05\x03\x02\x04\x12\x04\x84\x02\x02\x0e\x1a'\x20`if`,\x20`\
else`,\x20`return`,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\
\x12\x04\x84\x02\x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\x84\x02\x0c\
\r\n\x0c\n\x04\x05\x03\x02\x05\x12\x04\x85\x02\x02*\n\r\n\x05\x05\x03\
\x02\x05\x01\x12\x04\x85\x02\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\
\x04\x85\x02\x16\x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\x85\x02\x18)\
\n\x0e\n\x06\x05\x03\x02\x05\x03\x01\x12\x04\x85\x02\x19(\n\x1e\n\x04\
\x05\x03\x02\x06\x12\x04\x88\x02\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\
\n\n\r\n\x05\x05\x03\x02\x06\x01\x12\x04\x88\x02\x02\x14\n\r\n\x05\x05\
\x03\x02\x06\x02\x12\x04\x88\x02\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\
\x04\x8b\x02\x02\x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20\
identifier\x20not\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\
\x03\x02\x07\x01\x12\x04\x8b\x02\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\
\x12\x04\x8b\x02\x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\x8d\x02\x02\
\x18\x1a@\x20Identifiers\x20builtin\x20to\x20the\x20language:\x20`min`,\
\x20`print`\x20in\x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\x8d\
\x02\x02\x13\n\r\n\x05\x05\x03\x02\x08\x02\x12\x04\x8d\x02\x16\x17\n[\n\
\x04\x05\x03\x02\t\x12\x04\x8f\x02\x02\x15\x1aM\x20Identifiers\x20repres\
enting\x20`null`-like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20\
in\x20Go.\n\n\r\n\x05\x05\x03\x02\t\x01\x12\x04\x8f\x02\x02\x10\n\r\n\
\x05\x05\x03\x02\t\x02\x12\x04\x8f\x02\x13\x14\n.\n\x04\x05\x03\x02\n\
\x12\x04\x91\x02\x02\x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\
\x20\"hello\"`\n\n\r\n\x05\x05\x03\x02\n\x01\x12\x04\x91\x02\x02\x14\n\r\
\n\x05\x05\x03\x02\n\x02\x12\x04\x91\x02\x17\x18\n'\n\x04\x05\x03\x02\
\x0b\x12\x04\x93\x02\x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20\
in\x20Go\n\n\r\n\x05\x05\x03\x02\x0b\x01\x12\x04\x93\x02\x02\x19\n\r\n\
\x05\x05\x03\x02\x0b\x02\x12\x04\x93\x02\x1c\x1e\n3\n\x04\x05\x03\x02\
\x0c\x12\x04\x95\x02\x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20r\
eferences\n\n\r\n\x05\x05\x03\x02\x0c\x01\x12\x04\x95\x02\x02\x15\n\r\n\
\x05\x05\x03\x02\x0c\x02\x12\x04\x95\x02\x18\x1a\nX\n\x04\x05\x03\x02\r\
\x12\x04\x97\x02\x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20defin\
itions\x20and\x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\
\x05\x03\x02\r\x01\x12\x04\x97\x02\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\
\x12\x04\x97\x02\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\x99\x02\x02\
\x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\x20identifiers\x20in\
\x20an\x20outer\x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\x99\x02\
\x02\x14\n\r\n\x05\x05\x03\x02\x0e\x02\x12\x04\x99\x02\x17\x19\n\xcd\x01\
\n\x04\x05\x03\x02\x0f\x12\x04\x9e\x02\x02\x1b\x1a\xbe\x01\x20Identifier\
\x20representing\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20\
namespacing.\n\n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\
\x20in\x20Go\x20and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\
\x20languages\x20like\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\
\x03\x02\x0f\x01\x12\x04\x9e\x02\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\
\x12\x04\x9e\x02\x18\x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\x9f\x02\x02\
*\n\r\n\x05\x05\x03\x02\x10\x01\x12\x04\x9f\x02\x02\x12\n\r\n\x05\x05\
\x03\x02\x10\x02\x12\x04\x9f\x02\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\
\x12\x04\x9f\x02\x18)\n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\x9f\
\x02\x19(\n4\n\x04\x05\x03\x02\x11\x12\x04\xa2\x02\x02\x1a\x1a&\x20Funct\
ion\x20references,\x20including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\
\x12\x04\xa2\x02\x02\x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\xa2\x02\
\x17\x19\n(\n\x04\x05\x03\x02\x12\x12\x04\xa4\x02\x02$\x1a\x1a\x20Functi\
on\x20definition\x20only\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\xa4\x02\
\x02\x1e\n\r\n\x05\x05\x03\x02\x12\x02\x12\x04\xa4\x02!#\n7\n\x04\x05\
\x03\x02\x13\x12\x04\xa7\x02\x02\x17\x1a)\x20Macro\x20references,\x20inc\
luding\x20invocations\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\xa7\x02\
\x02\x11\n\r\n\x05\x05\x03\x02\x13\x02\x12\x04\xa7\x02\x14\x16\n%\n\x04\
\x05\x03\x02\x14\x12\x04\xa9\x02\x02!\x1a\x17\x20Macro\x20definition\x20\
only\n\n\r\n\x05\x05\x03\x02\x14\x01\x12\x04\xa9\x02\x02\x1b\n\r\n\x05\
\x05\x03\x02\x14\x02\x12\x04\xa9\x02\x1e\x20\n!\n\x04\x05\x03\x02\x15\
\x12\x04\xac\x02\x02\x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\
\x03\x02\x15\x01\x12\x04\xac\x02\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\
\x12\x04\xac\x02\x13\x15\nK\n\x04\x05\x03\x02\x16\x12\x04\xae\x02\x02\
\x1d\x1a=\x20builtin\x20types\x20only,\x20such\x20as\x20`str`\x20for\x20\
Python\x20or\x20`int`\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\
\x04\xae\x02\x02\x17\n\r\n\x05\x05\x03\x02\x16\x02\x12\x04\xae\x02\x1a\
\x1c\n7\n\x04\x05\x03\x02\x17\x12\x04\xb1\x02\x02\x1b\x1a)\x20Python\x20\
decorators,\x20c-like\x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\
\x12\x04\xb1\x02\x02\x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\xb1\x02\
\x18\x1a\n\x14\n\x04\x05\x03\x02\x18\x12\x04\xb4\x02\x02\x13\x1a\x06\x20\
`\\b`\n\n\r\n\x05\x05\x03\x02\x18\x01\x12\x04\xb4\x02\x02\r\n\r\n\x05\
\x05\x03\x02\x18\x02\x12\x04\xb4\x02\x10\x12\n\x18\n\x04\x05\x03\x02\x19\
\x12\x04\xb6\x02\x02\x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\
\x19\x01\x12\x04\xb6\x02\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\
\xb6\x02\x12\x14\n\x13\n\x04\x05\x03\x02\x1a\x12\x04\xb8\x02\x02\x15\x1a\
\x05\x20`.`\n\n\r\n\x05\x05\x03\x02\x1a\x01\x12\x04\xb8\x02\x02\x0f\n\r\
\n\x05\x05\x03\x02\x1a\x02\x12\x04\xb8\x02\x12\x14\n\"\n\x04\x05\x03\x02\
\x1b\x12\x04\xba\x02\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\
\r\n\x05\x05\x03\x02\x1b\x01\x12\x04\xba\x02\x02\x10\n\r\n\x05\x05\x03\
\x02\x1b\x02\x12\x04\xba\x02\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\
\xbc\x02\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\
\x12\x04\xbc\x02\x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xbc\x02\
\x0e\x10\n0\n\x04\x05\x03\x02\x1d\x12\x04\xbf\x02\x02\x15\x1a\"\x20Liter\
al\x20strings:\x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\
\x12\x04\xbf\x02\x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xbf\x02\
\x12\x14\n-\n\x04\x05\x03\x02\x1e\x12\x04\xc1\x02\x02\x1b\x1a\x1f\x20non\
-regex\x20escapes:\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\
\x01\x12\x04\xc1\x02\x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xc1\
\x02\x18\x1a\n_\n\x04\x05\x03\x02\x1f\x12\x04\xc3\x02\x02\x1c\x1aQ\x20da\
tetimes\x20within\x20strings,\x20special\x20words\x20within\x20a\x20stri\
ng,\x20`{}`\x20in\x20format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\
\x12\x04\xc3\x02\x02\x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xc3\x02\
\x19\x1b\nG\n\x04\x05\x03\x02\x20\x12\x04\xc5\x02\x02\x18\x1a9\x20\"key\
\"\x20in\x20{\x20\"key\":\x20\"value\"\x20},\x20useful\x20for\x20example\
\x20in\x20JSON\n\n\r\n\x05\x05\x03\x02\x20\x01\x12\x04\xc5\x02\x02\x12\n\
\r\n\x05\x05\x03\x02\x20\x02\x12\x04\xc5\x02\x15\x17\nV\n\x04\x05\x03\
\x02!\x12\x04\xc7\x02\x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20lan\
guages\x20that\x20differentiate\x20strings\x20and\x20characters\n\n\r\n\
\x05\x05\x03\x02!\x01\x12\x04\xc7\x02\x02\x12\n\r\n\x05\x05\x03\x02!\x02\
\x12\x04\xc7\x02\x15\x17\n9\n\x04\x05\x03\x02\"\x12\x04\xc9\x02\x02\x16\
\x1a+\x20Literal\x20numbers,\x20both\x20floats\x20and\x20integers\n\n\r\
\n\x05\x05\x03\x02\"\x01\x12\x04\xc9\x02\x02\x10\n\r\n\x05\x05\x03\x02\"\
\x02\x12\x04\xc9\x02\x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xcb\x02\
\x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\
\x04\xcb\x02\x02\x10\n\r\n\x05\x05\x03\x02#\x02\x12\x04\xcb\x02\x13\x15\
\n&\n\x04\x05\x03\x02$\x12\x04\xce\x02\x02\x0b\x1a\x18\x20Used\x20for\
\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02$\x01\x12\x04\xce\x02\x02\
\x05\n\r\n\x05\x05\x03\x02$\x02\x12\x04\xce\x02\x08\n\n/\n\x04\x05\x03\
\x02%\x12\x04\xd0\x02\x02\x14\x1a!\x20Attribute\x20name\x20in\x20XML-lik\
e\x20tags\n\n\r\n\x05\x05\x03\x02%\x01\x12\x04\xd0\x02\x02\x0e\n\r\n\x05\
\x05\x03\x02%\x02\x12\x04\xd0\x02\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\
\xd2\x02\x02\x14\x1a\x1e\x20Delimiters\x20for\x20XML-like\x20tags\n\n\r\
\n\x05\x05\x03\x02&\x01\x12\x04\xd2\x02\x02\x0e\n\r\n\x05\x05\x03\x02&\
\x02\x12\x04\xd2\x02\x11\x13\n\xf9\x01\n\x02\x04\t\x12\x06\xda\x02\0\x81\
\x03\x01\x1a\xea\x01\x20Occurrence\x20associates\x20a\x20source\x20posit\
ion\x20with\x20a\x20symbol\x20and/or\x20highlighting\n\x20information.\n\
\n\x20If\x20possible,\x20indexers\x20should\x20try\x20to\x20bundle\x20lo\
gically\x20related\x20information\n\x20across\x20occurrences\x20into\x20\
a\x20single\x20occurrence\x20to\x20reduce\x20payload\x20sizes.\n\n\x0b\n\
\x03\x04\t\x01\x12\x04\xda\x02\x08\x12\n\xc7\x07\n\x04\x04\t\x02\0\x12\
\x04\xed\x02\x02\x1b\x1a\xb8\x07\x20Source\x20position\x20of\x20this\x20\
occurrence.\x20Must\x20be\x20exactly\x20three\x20or\x20four\n\x20element\
s:\n\n\x20-\x20Four\x20elements:\x20`[startLine,\x20startCharacter,\x20e\
ndLine,\x20endCharacter]`\n\x20-\x20Three\x20elements:\x20`[startLine,\
\x20startCharacter,\x20endCharacter]`.\x20The\x20end\x20line\n\x20\x20\
\x20is\x20inferred\x20to\x20have\x20the\x20same\x20value\x20as\x20the\
\x20start\x20line.\n\n\x20Line\x20numbers\x20and\x20characters\x20are\
\x20always\x200-based.\x20Make\x20sure\x20to\x20increment\x20the\n\x20li\
ne/character\x20values\x20before\x20displaying\x20them\x20in\x20an\x20ed\
itor-like\x20UI\x20because\n\x20editors\x20conventionally\x20use\x201-ba\
sed\x20numbers.\n\n\x20Historical\x20note:\x20the\x20original\x20draft\
\x20of\x20this\x20schema\x20had\x20a\x20`Range`\x20message\n\x20type\x20\
with\x20`start`\x20and\x20`end`\x20fields\x20of\x20type\x20`Position`,\
\x20mirroring\x20LSP.\n\x20Benchmarks\x20revealed\x20that\x20this\x20enc\
oding\x20was\x20inefficient\x20and\x20that\x20we\x20could\n\x20reduce\
\x20the\x20total\x20payload\x20size\x20of\x20an\x20index\x20by\x2050%\
\x20by\x20using\x20`repeated\x20int32`\n\x20instead.\x20\x20The\x20`repe\
ated\x20int32`\x20encoding\x20is\x20admittedly\x20more\x20embarrassing\
\x20to\n\x20work\x20with\x20in\x20some\x20programming\x20languages\x20bu\
t\x20we\x20hope\x20the\x20performance\n\x20improvements\x20make\x20up\
\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\xed\x02\x02\n\n\r\n\
\x05\x04\t\x02\0\x05\x12\x04\xed\x02\x0b\x10\n\r\n\x05\x04\t\x02\0\x01\
\x12\x04\xed\x02\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xed\x02\x19\
\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xf0\x02\x02\x14\x1a|\x20(opti\
onal)\x20The\x20symbol\x20that\x20appears\x20at\x20this\x20position.\x20\
See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20to\x20format\x20sym\
bols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xf0\x02\x02\
\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xf0\x02\t\x0f\n\r\n\x05\x04\t\
\x02\x01\x03\x12\x04\xf0\x02\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\x12\
\x04\xf3\x02\x02\x19\x1a\x88\x01\x20(optional)\x20Bitset\x20containing\
\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\x20`SymbolRole`'\
s\x20documentation\x20for\x20how\x20to\x20read\x20and\x20write\x20this\
\x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xf3\x02\x02\x07\n\r\n\
\x05\x04\t\x02\x02\x01\x12\x04\xf3\x02\x08\x14\n\r\n\x05\x04\t\x02\x02\
\x03\x12\x04\xf3\x02\x17\x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\xfc\
\x02\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-formatted\x20documenta\
tion\x20for\x20this\x20specific\x20range.\x20If\n\x20empty,\x20the\x20`S\
ymbol.documentation`\x20field\x20is\x20used\x20instead.\x20One\x20exampl\
e\n\x20where\x20this\x20field\x20might\x20be\x20useful\x20is\x20when\x20\
the\x20symbol\x20represents\x20a\x20generic\n\x20function\x20(with\x20ab\
stract\x20type\x20parameters\x20such\x20as\x20`List<T>`)\x20and\x20at\
\x20this\n\x20occurrence\x20we\x20know\x20the\x20exact\x20values\x20(suc\
h\x20as\x20`List<String>`).\n\n\x20This\x20field\x20can\x20also\x20be\
\x20used\x20for\x20dynamically\x20or\x20gradually\x20typed\x20languages,\
\n\x20which\x20commonly\x20allow\x20for\x20type-changing\x20assignment.\
\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xfc\x02\x02\n\n\r\n\x05\x04\t\x02\
\x03\x05\x12\x04\xfc\x02\x0b\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xfc\
\x02\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xfc\x02+,\nX\n\x04\x04\t\
\x02\x04\x12\x04\xfe\x02\x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\
\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20this\x20rang\
e?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xfe\x02\x02\x0c\n\r\n\x05\x04\t\
\x02\x04\x01\x12\x04\xfe\x02\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\
\xfe\x02\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\x80\x03\x02&\x1aI\x20(op\
tional)\x20Diagnostics\x20that\x20have\x20been\x20reported\x20for\x20thi\
s\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\x80\x03\
\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\x80\x03\x0b\x15\n\r\n\x05\x04\
\t\x02\x05\x01\x12\x04\x80\x03\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\
\x80\x03$%\nw\n\x02\x04\n\x12\x06\x85\x03\0\x90\x03\x01\x1ai\x20Represen\
ts\x20a\x20diagnostic,\x20such\x20as\x20a\x20compiler\x20error\x20or\x20\
warning,\x20which\x20should\x20be\n\x20reported\x20for\x20a\x20document.\
\n\n\x0b\n\x03\x04\n\x01\x12\x04\x85\x03\x08\x12\nW\n\x04\x04\n\x02\0\
\x12\x04\x87\x03\x02\x18\x1aI\x20Should\x20this\x20diagnostic\x20be\x20r\
eported\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20hint?\n\n\r\
\n\x05\x04\n\x02\0\x06\x12\x04\x87\x03\x02\n\n\r\n\x05\x04\n\x02\0\x01\
\x12\x04\x87\x03\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\x87\x03\x16\
\x17\n]\n\x04\x04\n\x02\x01\x12\x04\x89\x03\x02\x12\x1aO\x20(optional)\
\x20Code\x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\x20in\
\x20the\x20user\x20interface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\x89\
\x03\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\x89\x03\t\r\n\r\n\x05\
\x04\n\x02\x01\x03\x12\x04\x89\x03\x10\x11\n+\n\x04\x04\n\x02\x02\x12\
\x04\x8b\x03\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\
\r\n\x05\x04\n\x02\x02\x05\x12\x04\x8b\x03\x02\x08\n\r\n\x05\x04\n\x02\
\x02\x01\x12\x04\x8b\x03\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\x8b\
\x03\x13\x14\n~\n\x04\x04\n\x02\x03\x12\x04\x8e\x03\x02\x14\x1ap\x20(opt\
ional)\x20Human-readable\x20string\x20describing\x20the\x20source\x20of\
\x20this\x20diagnostic,\x20e.g.\n\x20'typescript'\x20or\x20'super\x20lin\
t'.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\x8e\x03\x02\x08\n\r\n\x05\x04\
\n\x02\x03\x01\x12\x04\x8e\x03\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\
\x8e\x03\x12\x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\x8f\x03\x02\"\n\r\n\
\x05\x04\n\x02\x04\x04\x12\x04\x8f\x03\x02\n\n\r\n\x05\x04\n\x02\x04\x06\
\x12\x04\x8f\x03\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\x8f\x03\x19\
\x1d\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\x8f\x03\x20!\n\x0c\n\x02\x05\
\x04\x12\x06\x92\x03\0\x98\x03\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\x92\
\x03\x05\r\n\x0c\n\x04\x05\x04\x02\0\x12\x04\x93\x03\x02\x1a\n\r\n\x05\
\x05\x04\x02\0\x01\x12\x04\x93\x03\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\
\x12\x04\x93\x03\x18\x19\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\x94\x03\x02\
\x0c\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\x94\x03\x02\x07\n\r\n\x05\x05\
\x04\x02\x01\x02\x12\x04\x94\x03\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\
\x04\x95\x03\x02\x0e\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\x95\x03\x02\t\
\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\x95\x03\x0c\r\n\x0c\n\x04\x05\x04\
\x02\x03\x12\x04\x96\x03\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\
\x96\x03\x02\r\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\x96\x03\x10\x11\n\
\x0c\n\x04\x05\x04\x02\x04\x12\x04\x97\x03\x02\x0b\n\r\n\x05\x05\x04\x02\
\x04\x01\x12\x04\x97\x03\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\
\x97\x03\t\n\n\x0c\n\x02\x05\x05\x12\x06\x9a\x03\0\x9e\x03\x01\n\x0b\n\
\x03\x05\x05\x01\x12\x04\x9a\x03\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\
\x04\x9b\x03\x02\x1f\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\x9b\x03\x02\x1a\
\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\x9b\x03\x1d\x1e\n\x0c\n\x04\x05\x05\
\x02\x01\x12\x04\x9c\x03\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\
\x9c\x03\x02\r\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\x9c\x03\x10\x11\n\
\x0c\n\x04\x05\x05\x02\x02\x12\x04\x9d\x03\x02\x11\n\r\n\x05\x05\x05\x02\
\x02\x01\x12\x04\x9d\x03\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\
\x9d\x03\x0f\x10\n\xd6\x03\n\x02\x05\x06\x12\x06\xa6\x03\0\x8c\x04\x01\
\x1a\xc7\x03\x20Language\x20standardises\x20names\x20of\x20common\x20pro\
gramming\x20languages\x20that\x20can\x20be\x20used\n\x20for\x20the\x20`D\
ocument.language`\x20field.\x20The\x20primary\x20purpose\x20of\x20this\
\x20enum\x20is\x20to\n\x20prevent\x20a\x20situation\x20where\x20we\x20ha\
ve\x20a\x20single\x20programming\x20language\x20ends\x20up\x20with\n\x20\
multiple\x20string\x20representations.\x20For\x20example,\x20the\x20C++\
\x20language\x20uses\x20the\x20name\n\x20\"CPlusPlus\"\x20in\x20this\x20\
enum\x20and\x20other\x20names\x20such\x20as\x20\"cpp\"\x20are\x20incompa\
tible.\n\x20Feel\x20free\x20to\x20send\x20a\x20pull-request\x20to\x20add\
\x20missing\x20programming\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\
\x04\xa6\x03\x05\r\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xa7\x03\x02\x1a\n\r\
\n\x05\x05\x06\x02\0\x01\x12\x04\xa7\x03\x02\x15\n\r\n\x05\x05\x06\x02\0\
\x02\x12\x04\xa7\x03\x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xa8\x03\
\x02\x0c\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xa8\x03\x02\x06\n\r\n\x05\
\x05\x06\x02\x01\x02\x12\x04\xa8\x03\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\
\x12\x04\xa9\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xa9\x03\
\x02\x05\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xa9\x03\x08\n\n\x0c\n\x04\
\x05\x06\x02\x03\x12\x04\xaa\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\
\x12\x04\xaa\x03\x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xaa\x03\
\x08\n\n\x0c\n\x04\x05\x06\x02\x04\x12\x04\xab\x03\x02\x0c\n\r\n\x05\x05\
\x06\x02\x04\x01\x12\x04\xab\x03\x02\x06\n\r\n\x05\x05\x06\x02\x04\x02\
\x12\x04\xab\x03\t\x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xac\x03\x02\
\x10\n\r\n\x05\x05\x06\x02\x05\x01\x12\x04\xac\x03\x02\n\n\r\n\x05\x05\
\x06\x02\x05\x02\x12\x04\xac\x03\r\x0f\n\x0c\n\x04\x05\x06\x02\x06\x12\
\x04\xad\x03\x02\x10\n\r\n\x05\x05\x06\x02\x06\x01\x12\x04\xad\x03\x02\n\
\n\r\n\x05\x05\x06\x02\x06\x02\x12\x04\xad\x03\r\x0f\n\x0c\n\x04\x05\x06\
\x02\x07\x12\x04\xae\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\
\xae\x03\x02\x05\n\r\n\x05\x05\x06\x02\x07\x02\x12\x04\xae\x03\x08\n\n\
\x0c\n\x04\x05\x06\x02\x08\x12\x04\xaf\x03\x02\x0b\n\r\n\x05\x05\x06\x02\
\x08\x01\x12\x04\xaf\x03\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\
\xaf\x03\x08\n\n\x0c\n\x04\x05\x06\x02\t\x12\x04\xb0\x03\x02\x0e\n\r\n\
\x05\x05\x06\x02\t\x01\x12\x04\xb0\x03\x02\x08\n\r\n\x05\x05\x06\x02\t\
\x02\x12\x04\xb0\x03\x0b\r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xb1\x03\x02\
\t\n\r\n\x05\x05\x06\x02\n\x01\x12\x04\xb1\x03\x02\x03\n\r\n\x05\x05\x06\
\x02\n\x02\x12\x04\xb1\x03\x06\x08\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\
\xb2\x03\x02\r\n\r\n\x05\x05\x06\x02\x0b\x01\x12\x04\xb2\x03\x02\x07\n\r\
\n\x05\x05\x06\x02\x0b\x02\x12\x04\xb2\x03\n\x0c\nH\n\x04\x05\x06\x02\
\x0c\x12\x04\xb3\x03\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\
\x20chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\x05\x06\x02\
\x0c\x01\x12\x04\xb3\x03\x02\x05\n\r\n\x05\x05\x06\x02\x0c\x02\x12\x04\
\xb3\x03\x08\n\n\x0c\n\x04\x05\x06\x02\r\x12\x04\xb4\x03\x02\x0b\n\r\n\
\x05\x05\x06\x02\r\x01\x12\x04\xb4\x03\x02\x05\n\r\n\x05\x05\x06\x02\r\
\x02\x12\x04\xb4\x03\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\xb5\x03\
\x02\r\n\r\n\x05\x05\x06\x02\x0e\x01\x12\x04\xb5\x03\x02\x08\n\r\n\x05\
\x05\x06\x02\x0e\x02\x12\x04\xb5\x03\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x0f\
\x12\x04\xb6\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\xb6\x03\
\x02\t\n\r\n\x05\x05\x06\x02\x0f\x02\x12\x04\xb6\x03\x0c\r\n\x0c\n\x04\
\x05\x06\x02\x10\x12\x04\xb7\x03\x02\x14\n\r\n\x05\x05\x06\x02\x10\x01\
\x12\x04\xb7\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x02\x12\x04\xb7\x03\
\x11\x13\n\x0c\n\x04\x05\x06\x02\x11\x12\x04\xb8\x03\x02\x11\n\r\n\x05\
\x05\x06\x02\x11\x01\x12\x04\xb8\x03\x02\x0c\n\r\n\x05\x05\x06\x02\x11\
\x02\x12\x04\xb8\x03\x0f\x10\n\x0c\n\x04\x05\x06\x02\x12\x12\x04\xb9\x03\
\x02\x0b\n\r\n\x05\x05\x06\x02\x12\x01\x12\x04\xb9\x03\x02\x05\n\r\n\x05\
\x05\x06\x02\x12\x02\x12\x04\xb9\x03\x08\n\n\x0c\n\x04\x05\x06\x02\x13\
\x12\x04\xba\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x13\x01\x12\x04\xba\x03\
\x02\x06\n\r\n\x05\x05\x06\x02\x13\x02\x12\x04\xba\x03\t\n\n\x0c\n\x04\
\x05\x06\x02\x14\x12\x04\xbb\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x14\x01\
\x12\x04\xbb\x03\x02\x08\n\r\n\x05\x05\x06\x02\x14\x02\x12\x04\xbb\x03\
\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\x04\xbc\x03\x02\x0c\n\r\n\x05\x05\
\x06\x02\x15\x01\x12\x04\xbc\x03\x02\x06\n\r\n\x05\x05\x06\x02\x15\x02\
\x12\x04\xbc\x03\t\x0b\n\x0c\n\x04\x05\x06\x02\x16\x12\x04\xbd\x03\x02\
\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\x04\xbd\x03\x02\x0c\n\r\n\x05\x05\
\x06\x02\x16\x02\x12\x04\xbd\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02\x17\x12\
\x04\xbe\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x17\x01\x12\x04\xbe\x03\x02\
\x08\n\r\n\x05\x05\x06\x02\x17\x02\x12\x04\xbe\x03\x0b\r\n\x0c\n\x04\x05\
\x06\x02\x18\x12\x04\xbf\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x18\x01\x12\
\x04\xbf\x03\x02\x08\n\r\n\x05\x05\x06\x02\x18\x02\x12\x04\xbf\x03\x0b\r\
\n\x0c\n\x04\x05\x06\x02\x19\x12\x04\xc0\x03\x02\x0e\n\r\n\x05\x05\x06\
\x02\x19\x01\x12\x04\xc0\x03\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\
\x04\xc0\x03\x0b\r\n\x0c\n\x04\x05\x06\x02\x1a\x12\x04\xc1\x03\x02\x0e\n\
\r\n\x05\x05\x06\x02\x1a\x01\x12\x04\xc1\x03\x02\x08\n\r\n\x05\x05\x06\
\x02\x1a\x02\x12\x04\xc1\x03\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\
\xc2\x03\x02\x0c\n\r\n\x05\x05\x06\x02\x1b\x01\x12\x04\xc2\x03\x02\x06\n\
\r\n\x05\x05\x06\x02\x1b\x02\x12\x04\xc2\x03\t\x0b\n\x0c\n\x04\x05\x06\
\x02\x1c\x12\x04\xc3\x03\x02\x0c\n\r\n\x05\x05\x06\x02\x1c\x01\x12\x04\
\xc3\x03\x02\x06\n\r\n\x05\x05\x06\x02\x1c\x02\x12\x04\xc3\x03\t\x0b\n\
\x0c\n\x04\x05\x06\x02\x1d\x12\x04\xc4\x03\x02\x0f\n\r\n\x05\x05\x06\x02\
\x1d\x01\x12\x04\xc4\x03\x02\t\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\xc4\
\x03\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x1e\x12\x04\xc5\x03\x02\x12\n\r\n\
\x05\x05\x06\x02\x1e\x01\x12\x04\xc5\x03\x02\x0c\n\r\n\x05\x05\x06\x02\
\x1e\x02\x12\x04\xc5\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xc6\
\x03\x02\x12\n\r\n\x05\x05\x06\x02\x1f\x01\x12\x04\xc6\x03\x02\x0c\n\r\n\
\x05\x05\x06\x02\x1f\x02\x12\x04\xc6\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02\
\x20\x12\x04\xc7\x03\x02\x12\n\r\n\x05\x05\x06\x02\x20\x01\x12\x04\xc7\
\x03\x02\x0c\n\r\n\x05\x05\x06\x02\x20\x02\x12\x04\xc7\x03\x0f\x11\n\x0c\
\n\x04\x05\x06\x02!\x12\x04\xc8\x03\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\
\x04\xc8\x03\x02\x04\n\r\n\x05\x05\x06\x02!\x02\x12\x04\xc8\x03\x07\t\n\
\x0c\n\x04\x05\x06\x02\"\x12\x04\xc9\x03\x02\r\n\r\n\x05\x05\x06\x02\"\
\x01\x12\x04\xc9\x03\x02\x08\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xc9\x03\
\x0b\x0c\n\x0c\n\x04\x05\x06\x02#\x12\x04\xca\x03\x02\x0c\n\r\n\x05\x05\
\x06\x02#\x01\x12\x04\xca\x03\x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\
\xca\x03\t\x0b\n\x0c\n\x04\x05\x06\x02$\x12\x04\xcb\x03\x02\x0c\n\r\n\
\x05\x05\x06\x02$\x01\x12\x04\xcb\x03\x02\x06\n\r\n\x05\x05\x06\x02$\x02\
\x12\x04\xcb\x03\t\x0b\n\x0c\n\x04\x05\x06\x02%\x12\x04\xcc\x03\x02\x12\
\n\r\n\x05\x05\x06\x02%\x01\x12\x04\xcc\x03\x02\x0c\n\r\n\x05\x05\x06\
\x02%\x02\x12\x04\xcc\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\xcd\
\x03\x02\x0f\n\r\n\x05\x05\x06\x02&\x01\x12\x04\xcd\x03\x02\t\n\r\n\x05\
\x05\x06\x02&\x02\x12\x04\xcd\x03\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\
\x04\xce\x03\x02\r\n\r\n\x05\x05\x06\x02'\x01\x12\x04\xce\x03\x02\x07\n\
\r\n\x05\x05\x06\x02'\x02\x12\x04\xce\x03\n\x0c\n\x0c\n\x04\x05\x06\x02(\
\x12\x04\xcf\x03\x02\x0b\n\r\n\x05\x05\x06\x02(\x01\x12\x04\xcf\x03\x02\
\x05\n\r\n\x05\x05\x06\x02(\x02\x12\x04\xcf\x03\x08\n\n\x0c\n\x04\x05\
\x06\x02)\x12\x04\xd0\x03\x02\t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\xd0\
\x03\x02\x03\n\r\n\x05\x05\x06\x02)\x02\x12\x04\xd0\x03\x06\x08\n\x0c\n\
\x04\x05\x06\x02*\x12\x04\xd1\x03\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\
\x04\xd1\x03\x02\x06\n\r\n\x05\x05\x06\x02*\x02\x12\x04\xd1\x03\t\x0b\n\
\x0c\n\x04\x05\x06\x02+\x12\x04\xd2\x03\x02\x0b\n\r\n\x05\x05\x06\x02+\
\x01\x12\x04\xd2\x03\x02\x06\n\r\n\x05\x05\x06\x02+\x02\x12\x04\xd2\x03\
\t\n\n\x0c\n\x04\x05\x06\x02,\x12\x04\xd3\x03\x02\x12\n\r\n\x05\x05\x06\
\x02,\x01\x12\x04\xd3\x03\x02\x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xd3\
\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02-\x12\x04\xd4\x03\x02\x17\n\r\n\x05\
\x05\x06\x02-\x01\x12\x04\xd4\x03\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\
\x04\xd4\x03\x14\x16\n\x0c\n\x04\x05\x06\x02.\x12\x04\xd5\x03\x02\x0f\n\
\r\n\x05\x05\x06\x02.\x01\x12\x04\xd5\x03\x02\t\n\r\n\x05\x05\x06\x02.\
\x02\x12\x04\xd5\x03\x0c\x0e\n\x0c\n\x04\x05\x06\x02/\x12\x04\xd6\x03\
\x02\x0e\n\r\n\x05\x05\x06\x02/\x01\x12\x04\xd6\x03\x02\x07\n\r\n\x05\
\x05\x06\x02/\x02\x12\x04\xd6\x03\x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\
\xd7\x03\x02\r\n\r\n\x05\x05\x06\x020\x01\x12\x04\xd7\x03\x02\x08\n\r\n\
\x05\x05\x06\x020\x02\x12\x04\xd7\x03\x0b\x0c\n\x0c\n\x04\x05\x06\x021\
\x12\x04\xd8\x03\x02\r\n\r\n\x05\x05\x06\x021\x01\x12\x04\xd8\x03\x02\
\x07\n\r\n\x05\x05\x06\x021\x02\x12\x04\xd8\x03\n\x0c\n\x0c\n\x04\x05\
\x06\x022\x12\x04\xd9\x03\x02\x0c\n\r\n\x05\x05\x06\x022\x01\x12\x04\xd9\
\x03\x02\x06\n\r\n\x05\x05\x06\x022\x02\x12\x04\xd9\x03\t\x0b\n\x0c\n\
\x04\x05\x06\x023\x12\x04\xda\x03\x02\x0c\n\r\n\x05\x05\x06\x023\x01\x12\
\x04\xda\x03\x02\x06\n\r\n\x05\x05\x06\x023\x02\x12\x04\xda\x03\t\x0b\n\
\x0c\n\x04\x05\x06\x024\x12\x04\xdb\x03\x02\x0b\n\r\n\x05\x05\x06\x024\
\x01\x12\x04\xdb\x03\x02\x05\n\r\n\x05\x05\x06\x024\x02\x12\x04\xdb\x03\
\x08\n\n\x0c\n\x04\x05\x06\x025\x12\x04\xdc\x03\x02\x10\n\r\n\x05\x05\
\x06\x025\x01\x12\x04\xdc\x03\x02\n\n\r\n\x05\x05\x06\x025\x02\x12\x04\
\xdc\x03\r\x0f\n\x0c\n\x04\x05\x06\x026\x12\x04\xdd\x03\x02\x10\n\r\n\
\x05\x05\x06\x026\x01\x12\x04\xdd\x03\x02\n\n\r\n\x05\x05\x06\x026\x02\
\x12\x04\xdd\x03\r\x0f\n\x0c\n\x04\x05\x06\x027\x12\x04\xde\x03\x02\x0e\
\n\r\n\x05\x05\x06\x027\x01\x12\x04\xde\x03\x02\x08\n\r\n\x05\x05\x06\
\x027\x02\x12\x04\xde\x03\x0b\r\n\x0c\n\x04\x05\x06\x028\x12\x04\xdf\x03\
\x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\xdf\x03\x02\x05\n\r\n\x05\
\x05\x06\x028\x02\x12\x04\xdf\x03\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\
\xe0\x03\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\x04\xe0\x03\x02\x07\n\r\n\
\x05\x05\x06\x029\x02\x12\x04\xe0\x03\n\x0c\n\x0c\n\x04\x05\x06\x02:\x12\
\x04\xe1\x03\x02\x13\n\r\n\x05\x05\x06\x02:\x01\x12\x04\xe1\x03\x02\r\n\
\r\n\x05\x05\x06\x02:\x02\x12\x04\xe1\x03\x10\x12\n\x0c\n\x04\x05\x06\
\x02;\x12\x04\xe2\x03\x02\x15\n\r\n\x05\x05\x06\x02;\x01\x12\x04\xe2\x03\
\x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\xe2\x03\x12\x14\n\x0c\n\x04\
\x05\x06\x02<\x12\x04\xe3\x03\x02\x0b\n\r\n\x05\x05\x06\x02<\x01\x12\x04\
\xe3\x03\x02\x05\n\r\n\x05\x05\x06\x02<\x02\x12\x04\xe3\x03\x08\n\n\x0c\
\n\x04\x05\x06\x02=\x12\x04\xe4\x03\x02\r\n\r\n\x05\x05\x06\x02=\x01\x12\
\x04\xe4\x03\x02\x07\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xe4\x03\n\x0c\n\
\x0c\n\x04\x05\x06\x02>\x12\x04\xe5\x03\x02\x0c\n\r\n\x05\x05\x06\x02>\
\x01\x12\x04\xe5\x03\x02\x06\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xe5\x03\
\t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xe6\x03\x02\x12\n\r\n\x05\x05\
\x06\x02?\x01\x12\x04\xe6\x03\x02\x0c\n\r\n\x05\x05\x06\x02?\x02\x12\x04\
\xe6\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02@\x12\x04\xe7\x03\x02\x0e\n\r\n\
\x05\x05\x06\x02@\x01\x12\x04\xe7\x03\x02\x08\n\r\n\x05\x05\x06\x02@\x02\
\x12\x04\xe7\x03\x0b\r\n\x0c\n\x04\x05\x06\x02A\x12\x04\xe8\x03\x02\x0e\
\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xe8\x03\x02\x08\n\r\n\x05\x05\x06\
\x02A\x02\x12\x04\xe8\x03\x0b\r\n\x0c\n\x04\x05\x06\x02B\x12\x04\xe9\x03\
\x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xe9\x03\x02\x03\n\r\n\x05\x05\
\x06\x02B\x02\x12\x04\xe9\x03\x06\x08\n\x0c\n\x04\x05\x06\x02C\x12\x04\
\xea\x03\x02\x0e\n\r\n\x05\x05\x06\x02C\x01\x12\x04\xea\x03\x02\x08\n\r\
\n\x05\x05\x06\x02C\x02\x12\x04\xea\x03\x0b\r\n\x0c\n\x04\x05\x06\x02D\
\x12\x04\xeb\x03\x02\x0c\n\r\n\x05\x05\x06\x02D\x01\x12\x04\xeb\x03\x02\
\x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\xeb\x03\t\x0b\n\x0c\n\x04\x05\
\x06\x02E\x12\x04\xec\x03\x02\r\n\r\n\x05\x05\x06\x02E\x01\x12\x04\xec\
\x03\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\x04\xec\x03\n\x0c\n\x0c\n\
\x04\x05\x06\x02F\x12\x04\xed\x03\x02\x0c\n\r\n\x05\x05\x06\x02F\x01\x12\
\x04\xed\x03\x02\x06\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xed\x03\t\x0b\n\
\x0c\n\x04\x05\x06\x02G\x12\x04\xee\x03\x02\x0c\n\r\n\x05\x05\x06\x02G\
\x01\x12\x04\xee\x03\x02\x06\n\r\n\x05\x05\x06\x02G\x02\x12\x04\xee\x03\
\t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xef\x03\x02\x0c\n\r\n\x05\x05\
\x06\x02H\x01\x12\x04\xef\x03\x02\x06\n\r\n\x05\x05\x06\x02H\x02\x12\x04\
\xef\x03\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\x04\xf0\x03\x02\x0b\n\r\n\
\x05\x05\x06\x02I\x01\x12\x04\xf0\x03\x02\x05\n\r\n\x05\x05\x06\x02I\x02\
\x12\x04\xf0\x03\x08\n\n\x0c\n\x04\x05\x06\x02J\x12\x04\xf1\x03\x02\x0c\
\n\r\n\x05\x05\x06\x02J\x01\x12\x04\xf1\x03\x02\x06\n\r\n\x05\x05\x06\
\x02J\x02\x12\x04\xf1\x03\t\x0b\n\x0c\n\x04\x05\x06\x02K\x12\x04\xf2\x03\
\x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\xf2\x03\x02\x05\n\r\n\x05\
\x05\x06\x02K\x02\x12\x04\xf2\x03\x08\n\n\x0c\n\x04\x05\x06\x02L\x12\x04\
\xf3\x03\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\x12\x04\xf3\x03\x02\x05\n\r\
\n\x05\x05\x06\x02L\x02\x12\x04\xf3\x03\x08\n\n\x0c\n\x04\x05\x06\x02M\
\x12\x04\xf4\x03\x02\x0c\n\r\n\x05\x05\x06\x02M\x01\x12\x04\xf4\x03\x02\
\x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xf4\x03\t\x0b\n\x0c\n\x04\x05\
\x06\x02N\x12\x04\xf5\x03\x02\x0c\n\r\n\x05\x05\x06\x02N\x01\x12\x04\xf5\
\x03\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\x04\xf5\x03\n\x0b\n\x0c\n\
\x04\x05\x06\x02O\x12\x04\xf6\x03\x02\x0e\n\r\n\x05\x05\x06\x02O\x01\x12\
\x04\xf6\x03\x02\x08\n\r\n\x05\x05\x06\x02O\x02\x12\x04\xf6\x03\x0b\r\n\
\x14\n\x04\x05\x06\x02P\x12\x04\xf7\x03\x02\x13\"\x06\x20Bash\n\n\r\n\
\x05\x05\x06\x02P\x01\x12\x04\xf7\x03\x02\r\n\r\n\x05\x05\x06\x02P\x02\
\x12\x04\xf7\x03\x10\x12\n\x0c\n\x04\x05\x06\x02Q\x12\x04\xf8\x03\x02\
\x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xf8\x03\x02\t\n\r\n\x05\x05\x06\
\x02Q\x02\x12\x04\xf8\x03\x0c\x0e\n\x0c\n\x04\x05\x06\x02R\x12\x04\xf9\
\x03\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\xf9\x03\x02\x07\n\r\n\
\x05\x05\x06\x02R\x02\x12\x04\xf9\x03\n\x0b\n\x0c\n\x04\x05\x06\x02S\x12\
\x04\xfa\x03\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\x12\x04\xfa\x03\x02\x06\
\n\r\n\x05\x05\x06\x02S\x02\x12\x04\xfa\x03\t\x0b\n\x0c\n\x04\x05\x06\
\x02T\x12\x04\xfb\x03\x02\x0b\n\r\n\x05\x05\x06\x02T\x01\x12\x04\xfb\x03\
\x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xfb\x03\x08\n\n\x0c\n\x04\
\x05\x06\x02U\x12\x04\xfc\x03\x02\x12\n\r\n\x05\x05\x06\x02U\x01\x12\x04\
\xfc\x03\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\x04\xfc\x03\x0f\x11\n\
\x0c\n\x04\x05\x06\x02V\x12\x04\xfd\x03\x02\x17\n\r\n\x05\x05\x06\x02V\
\x01\x12\x04\xfd\x03\x02\x11\n\r\n\x05\x05\x06\x02V\x02\x12\x04\xfd\x03\
\x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xfe\x03\x02\x13\n\r\n\x05\x05\
\x06\x02W\x01\x12\x04\xfe\x03\x02\r\n\r\n\x05\x05\x06\x02W\x02\x12\x04\
\xfe\x03\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\xff\x03\x02\x0b\n\r\n\
\x05\x05\x06\x02X\x01\x12\x04\xff\x03\x02\x05\n\r\n\x05\x05\x06\x02X\x02\
\x12\x04\xff\x03\x08\n\n\x0c\n\x04\x05\x06\x02Y\x12\x04\x80\x04\x02\x0f\
\n\r\n\x05\x05\x06\x02Y\x01\x12\x04\x80\x04\x02\t\n\r\n\x05\x05\x06\x02Y\
\x02\x12\x04\x80\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02Z\x12\x04\x81\x04\
\x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\x81\x04\x02\x05\n\r\n\x05\
\x05\x06\x02Z\x02\x12\x04\x81\x04\x08\n\n\x0c\n\x04\x05\x06\x02[\x12\x04\
\x82\x04\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\x04\x82\x04\x02\x05\n\r\
\n\x05\x05\x06\x02[\x02\x12\x04\x82\x04\x08\n\n\x0c\n\x04\x05\x06\x02\\\
\x12\x04\x83\x04\x02\x0c\n\r\n\x05\x05\x06\x02\\\x01\x12\x04\x83\x04\x02\
\x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\x83\x04\t\x0b\n\x92\x03\n\x04\
\x05\x06\x02]\x12\x04\x84\x04\x02\x0b\"\x83\x03\x20NextLanguage\x20=\x20\
95;\n\x20Steps\x20add\x20a\x20new\x20language:\n\x201.\x20Copy-paste\x20\
the\x20\"NextLanguage\x20=\x20N\"\x20line\x20above\n\x202.\x20Increment\
\x20\"NextLanguage\x20=\x20N\"\x20to\x20\"NextLanguage\x20=\x20N+1\"\n\
\x203.\x20Replace\x20\"NextLanguage\x20=\x20N\"\x20with\x20the\x20name\
\x20of\x20the\x20new\x20language.\n\x204.\x20Move\x20the\x20new\x20langu\
age\x20to\x20the\x20correct\x20line\x20above\x20using\x20alphabetical\
\x20order\n\x205.\x20(optional)\x20Add\x20a\x20brief\x20comment\x20behin\
d\x20the\x20language\x20if\x20the\x20name\x20is\x20not\x20self-explanato\
ry\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\x84\x04\x02\x05\n\r\n\x05\x05\
\x06\x02]\x02\x12\x04\x84\x04\x08\nb\x06proto3\
";
fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
static file_descriptor_proto_lazy: ::protobuf::rt::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::Lazy::new();
file_descriptor_proto_lazy.get(|| {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
})
}
pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
static generated_file_descriptor_lazy: ::protobuf::rt::Lazy<::protobuf::reflect::GeneratedFileDescriptor> = ::protobuf::rt::Lazy::new();
static file_descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::FileDescriptor> = ::protobuf::rt::Lazy::new();
file_descriptor.get(|| {
let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
let mut deps = ::std::vec::Vec::with_capacity(0);
let mut messages = ::std::vec::Vec::with_capacity(11);
messages.push(Index::generated_message_descriptor_data());
messages.push(Metadata::generated_message_descriptor_data());
messages.push(ToolInfo::generated_message_descriptor_data());
messages.push(Document::generated_message_descriptor_data());
messages.push(Symbol::generated_message_descriptor_data());
messages.push(Package::generated_message_descriptor_data());
messages.push(Descriptor::generated_message_descriptor_data());
messages.push(SymbolInformation::generated_message_descriptor_data());
messages.push(Relationship::generated_message_descriptor_data());
messages.push(Occurrence::generated_message_descriptor_data());
messages.push(Diagnostic::generated_message_descriptor_data());
let mut enums = ::std::vec::Vec::with_capacity(8);
enums.push(ProtocolVersion::generated_enum_descriptor_data());
enums.push(TextEncoding::generated_enum_descriptor_data());
enums.push(SymbolRole::generated_enum_descriptor_data());
enums.push(SyntaxKind::generated_enum_descriptor_data());
enums.push(Severity::generated_enum_descriptor_data());
enums.push(DiagnosticTag::generated_enum_descriptor_data());
enums.push(Language::generated_enum_descriptor_data());
enums.push(descriptor::Suffix::generated_enum_descriptor_data());
::protobuf::reflect::GeneratedFileDescriptor::new_generated(
file_descriptor_proto(),
deps,
messages,
enums,
)
});
::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
})
}