#![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_2_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 text: ::std::string::String,
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(5);
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 },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"text",
|m: &Document| { &m.text },
|m: &mut Document| { &mut m.text },
));
::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()?);
},
42 => {
self.text = 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.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;
};
if !self.text.is_empty() {
my_size += ::protobuf::rt::string_size(5, &self.text);
}
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)?;
};
if !self.text.is_empty() {
os.write_string(5, &self.text)?;
}
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.text.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(),
text: ::std::string::String::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, Meta, Local, Macro, }
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::Meta => 7,
Suffix::Local => 8,
Suffix::Macro => 9,
}
}
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),
7 => ::std::option::Option::Some(Suffix::Meta),
8 => ::std::option::Option::Some(Suffix::Local),
9 => ::std::option::Option::Some(Suffix::Macro),
_ => ::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::Meta,
Suffix::Local,
Suffix::Macro,
];
}
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::Meta => 8,
Suffix::Local => 9,
Suffix::Macro => 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 kind: ::protobuf::EnumOrUnknown<symbol_information::Kind>,
pub display_name: ::std::string::String,
pub signature_documentation: ::protobuf::MessageField<Document>,
pub enclosing_symbol: ::std::string::String,
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(7);
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 },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"kind",
|m: &SymbolInformation| { &m.kind },
|m: &mut SymbolInformation| { &mut m.kind },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"display_name",
|m: &SymbolInformation| { &m.display_name },
|m: &mut SymbolInformation| { &mut m.display_name },
));
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, Document>(
"signature_documentation",
|m: &SymbolInformation| { &m.signature_documentation },
|m: &mut SymbolInformation| { &mut m.signature_documentation },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"enclosing_symbol",
|m: &SymbolInformation| { &m.enclosing_symbol },
|m: &mut SymbolInformation| { &mut m.enclosing_symbol },
));
::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()?);
},
40 => {
self.kind = is.read_enum_or_unknown()?;
},
50 => {
self.display_name = is.read_string()?;
},
58 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.signature_documentation)?;
},
66 => {
self.enclosing_symbol = 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.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;
};
if self.kind != ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind) {
my_size += ::protobuf::rt::int32_size(5, self.kind.value());
}
if !self.display_name.is_empty() {
my_size += ::protobuf::rt::string_size(6, &self.display_name);
}
if let Some(v) = self.signature_documentation.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
if !self.enclosing_symbol.is_empty() {
my_size += ::protobuf::rt::string_size(8, &self.enclosing_symbol);
}
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)?;
};
if self.kind != ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind) {
os.write_enum(5, ::protobuf::EnumOrUnknown::value(&self.kind))?;
}
if !self.display_name.is_empty() {
os.write_string(6, &self.display_name)?;
}
if let Some(v) = self.signature_documentation.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(7, v, os)?;
}
if !self.enclosing_symbol.is_empty() {
os.write_string(8, &self.enclosing_symbol)?;
}
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.kind = ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind);
self.display_name.clear();
self.signature_documentation.clear();
self.enclosing_symbol.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(),
kind: ::protobuf::EnumOrUnknown::from_i32(0),
display_name: ::std::string::String::new(),
signature_documentation: ::protobuf::MessageField::none(),
enclosing_symbol: ::std::string::String::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>;
}
pub mod symbol_information {
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum Kind {
UnspecifiedKind = 0,
AbstractMethod = 66,
Accessor = 72,
Array = 1,
Assertion = 2,
AssociatedType = 3,
Attribute = 4,
Axiom = 5,
Boolean = 6,
Class = 7,
Constant = 8,
Constructor = 9,
Contract = 62,
DataFamily = 10,
Delegate = 73,
Enum = 11,
EnumMember = 12,
Error = 63,
Event = 13,
Fact = 14,
Field = 15,
File = 16,
Function = 17,
Getter = 18,
Grammar = 19,
Instance = 20,
Interface = 21,
Key = 22,
Lang = 23,
Lemma = 24,
Library = 64,
Macro = 25,
Method = 26,
MethodAlias = 74,
MethodReceiver = 27,
MethodSpecification = 67,
Message = 28,
Modifier = 65,
Module = 29,
Namespace = 30,
Null = 31,
Number = 32,
Object = 33,
Operator = 34,
Package = 35,
PackageObject = 36,
Parameter = 37,
ParameterLabel = 38,
Pattern = 39,
Predicate = 40,
Property = 41,
Protocol = 42,
ProtocolMethod = 68,
PureVirtualMethod = 69,
Quasiquoter = 43,
SelfParameter = 44,
Setter = 45,
Signature = 46,
SingletonClass = 75,
SingletonMethod = 76,
StaticDataMember = 77,
StaticEvent = 78,
StaticField = 79,
StaticMethod = 80,
StaticProperty = 81,
StaticVariable = 82,
String = 48,
Struct = 49,
Subscript = 47,
Tactic = 50,
Theorem = 51,
ThisParameter = 52,
Trait = 53,
TraitMethod = 70,
Type = 54,
TypeAlias = 55,
TypeClass = 56,
TypeClassMethod = 71,
TypeFamily = 57,
TypeParameter = 58,
Union = 59,
Value = 60,
Variable = 61,
}
impl ::protobuf::Enum for Kind {
const NAME: &'static str = "Kind";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<Kind> {
match value {
0 => ::std::option::Option::Some(Kind::UnspecifiedKind),
66 => ::std::option::Option::Some(Kind::AbstractMethod),
72 => ::std::option::Option::Some(Kind::Accessor),
1 => ::std::option::Option::Some(Kind::Array),
2 => ::std::option::Option::Some(Kind::Assertion),
3 => ::std::option::Option::Some(Kind::AssociatedType),
4 => ::std::option::Option::Some(Kind::Attribute),
5 => ::std::option::Option::Some(Kind::Axiom),
6 => ::std::option::Option::Some(Kind::Boolean),
7 => ::std::option::Option::Some(Kind::Class),
8 => ::std::option::Option::Some(Kind::Constant),
9 => ::std::option::Option::Some(Kind::Constructor),
62 => ::std::option::Option::Some(Kind::Contract),
10 => ::std::option::Option::Some(Kind::DataFamily),
73 => ::std::option::Option::Some(Kind::Delegate),
11 => ::std::option::Option::Some(Kind::Enum),
12 => ::std::option::Option::Some(Kind::EnumMember),
63 => ::std::option::Option::Some(Kind::Error),
13 => ::std::option::Option::Some(Kind::Event),
14 => ::std::option::Option::Some(Kind::Fact),
15 => ::std::option::Option::Some(Kind::Field),
16 => ::std::option::Option::Some(Kind::File),
17 => ::std::option::Option::Some(Kind::Function),
18 => ::std::option::Option::Some(Kind::Getter),
19 => ::std::option::Option::Some(Kind::Grammar),
20 => ::std::option::Option::Some(Kind::Instance),
21 => ::std::option::Option::Some(Kind::Interface),
22 => ::std::option::Option::Some(Kind::Key),
23 => ::std::option::Option::Some(Kind::Lang),
24 => ::std::option::Option::Some(Kind::Lemma),
64 => ::std::option::Option::Some(Kind::Library),
25 => ::std::option::Option::Some(Kind::Macro),
26 => ::std::option::Option::Some(Kind::Method),
74 => ::std::option::Option::Some(Kind::MethodAlias),
27 => ::std::option::Option::Some(Kind::MethodReceiver),
67 => ::std::option::Option::Some(Kind::MethodSpecification),
28 => ::std::option::Option::Some(Kind::Message),
65 => ::std::option::Option::Some(Kind::Modifier),
29 => ::std::option::Option::Some(Kind::Module),
30 => ::std::option::Option::Some(Kind::Namespace),
31 => ::std::option::Option::Some(Kind::Null),
32 => ::std::option::Option::Some(Kind::Number),
33 => ::std::option::Option::Some(Kind::Object),
34 => ::std::option::Option::Some(Kind::Operator),
35 => ::std::option::Option::Some(Kind::Package),
36 => ::std::option::Option::Some(Kind::PackageObject),
37 => ::std::option::Option::Some(Kind::Parameter),
38 => ::std::option::Option::Some(Kind::ParameterLabel),
39 => ::std::option::Option::Some(Kind::Pattern),
40 => ::std::option::Option::Some(Kind::Predicate),
41 => ::std::option::Option::Some(Kind::Property),
42 => ::std::option::Option::Some(Kind::Protocol),
68 => ::std::option::Option::Some(Kind::ProtocolMethod),
69 => ::std::option::Option::Some(Kind::PureVirtualMethod),
43 => ::std::option::Option::Some(Kind::Quasiquoter),
44 => ::std::option::Option::Some(Kind::SelfParameter),
45 => ::std::option::Option::Some(Kind::Setter),
46 => ::std::option::Option::Some(Kind::Signature),
75 => ::std::option::Option::Some(Kind::SingletonClass),
76 => ::std::option::Option::Some(Kind::SingletonMethod),
77 => ::std::option::Option::Some(Kind::StaticDataMember),
78 => ::std::option::Option::Some(Kind::StaticEvent),
79 => ::std::option::Option::Some(Kind::StaticField),
80 => ::std::option::Option::Some(Kind::StaticMethod),
81 => ::std::option::Option::Some(Kind::StaticProperty),
82 => ::std::option::Option::Some(Kind::StaticVariable),
48 => ::std::option::Option::Some(Kind::String),
49 => ::std::option::Option::Some(Kind::Struct),
47 => ::std::option::Option::Some(Kind::Subscript),
50 => ::std::option::Option::Some(Kind::Tactic),
51 => ::std::option::Option::Some(Kind::Theorem),
52 => ::std::option::Option::Some(Kind::ThisParameter),
53 => ::std::option::Option::Some(Kind::Trait),
70 => ::std::option::Option::Some(Kind::TraitMethod),
54 => ::std::option::Option::Some(Kind::Type),
55 => ::std::option::Option::Some(Kind::TypeAlias),
56 => ::std::option::Option::Some(Kind::TypeClass),
71 => ::std::option::Option::Some(Kind::TypeClassMethod),
57 => ::std::option::Option::Some(Kind::TypeFamily),
58 => ::std::option::Option::Some(Kind::TypeParameter),
59 => ::std::option::Option::Some(Kind::Union),
60 => ::std::option::Option::Some(Kind::Value),
61 => ::std::option::Option::Some(Kind::Variable),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [Kind] = &[
Kind::UnspecifiedKind,
Kind::AbstractMethod,
Kind::Accessor,
Kind::Array,
Kind::Assertion,
Kind::AssociatedType,
Kind::Attribute,
Kind::Axiom,
Kind::Boolean,
Kind::Class,
Kind::Constant,
Kind::Constructor,
Kind::Contract,
Kind::DataFamily,
Kind::Delegate,
Kind::Enum,
Kind::EnumMember,
Kind::Error,
Kind::Event,
Kind::Fact,
Kind::Field,
Kind::File,
Kind::Function,
Kind::Getter,
Kind::Grammar,
Kind::Instance,
Kind::Interface,
Kind::Key,
Kind::Lang,
Kind::Lemma,
Kind::Library,
Kind::Macro,
Kind::Method,
Kind::MethodAlias,
Kind::MethodReceiver,
Kind::MethodSpecification,
Kind::Message,
Kind::Modifier,
Kind::Module,
Kind::Namespace,
Kind::Null,
Kind::Number,
Kind::Object,
Kind::Operator,
Kind::Package,
Kind::PackageObject,
Kind::Parameter,
Kind::ParameterLabel,
Kind::Pattern,
Kind::Predicate,
Kind::Property,
Kind::Protocol,
Kind::ProtocolMethod,
Kind::PureVirtualMethod,
Kind::Quasiquoter,
Kind::SelfParameter,
Kind::Setter,
Kind::Signature,
Kind::SingletonClass,
Kind::SingletonMethod,
Kind::StaticDataMember,
Kind::StaticEvent,
Kind::StaticField,
Kind::StaticMethod,
Kind::StaticProperty,
Kind::StaticVariable,
Kind::String,
Kind::Struct,
Kind::Subscript,
Kind::Tactic,
Kind::Theorem,
Kind::ThisParameter,
Kind::Trait,
Kind::TraitMethod,
Kind::Type,
Kind::TypeAlias,
Kind::TypeClass,
Kind::TypeClassMethod,
Kind::TypeFamily,
Kind::TypeParameter,
Kind::Union,
Kind::Value,
Kind::Variable,
];
}
impl ::protobuf::EnumFull for Kind {
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("SymbolInformation.Kind").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = match self {
Kind::UnspecifiedKind => 0,
Kind::AbstractMethod => 1,
Kind::Accessor => 2,
Kind::Array => 3,
Kind::Assertion => 4,
Kind::AssociatedType => 5,
Kind::Attribute => 6,
Kind::Axiom => 7,
Kind::Boolean => 8,
Kind::Class => 9,
Kind::Constant => 10,
Kind::Constructor => 11,
Kind::Contract => 12,
Kind::DataFamily => 13,
Kind::Delegate => 14,
Kind::Enum => 15,
Kind::EnumMember => 16,
Kind::Error => 17,
Kind::Event => 18,
Kind::Fact => 19,
Kind::Field => 20,
Kind::File => 21,
Kind::Function => 22,
Kind::Getter => 23,
Kind::Grammar => 24,
Kind::Instance => 25,
Kind::Interface => 26,
Kind::Key => 27,
Kind::Lang => 28,
Kind::Lemma => 29,
Kind::Library => 30,
Kind::Macro => 31,
Kind::Method => 32,
Kind::MethodAlias => 33,
Kind::MethodReceiver => 34,
Kind::MethodSpecification => 35,
Kind::Message => 36,
Kind::Modifier => 37,
Kind::Module => 38,
Kind::Namespace => 39,
Kind::Null => 40,
Kind::Number => 41,
Kind::Object => 42,
Kind::Operator => 43,
Kind::Package => 44,
Kind::PackageObject => 45,
Kind::Parameter => 46,
Kind::ParameterLabel => 47,
Kind::Pattern => 48,
Kind::Predicate => 49,
Kind::Property => 50,
Kind::Protocol => 51,
Kind::ProtocolMethod => 52,
Kind::PureVirtualMethod => 53,
Kind::Quasiquoter => 54,
Kind::SelfParameter => 55,
Kind::Setter => 56,
Kind::Signature => 57,
Kind::SingletonClass => 58,
Kind::SingletonMethod => 59,
Kind::StaticDataMember => 60,
Kind::StaticEvent => 61,
Kind::StaticField => 62,
Kind::StaticMethod => 63,
Kind::StaticProperty => 64,
Kind::StaticVariable => 65,
Kind::String => 66,
Kind::Struct => 67,
Kind::Subscript => 68,
Kind::Tactic => 69,
Kind::Theorem => 70,
Kind::ThisParameter => 71,
Kind::Trait => 72,
Kind::TraitMethod => 73,
Kind::Type => 74,
Kind::TypeAlias => 75,
Kind::TypeClass => 76,
Kind::TypeClassMethod => 77,
Kind::TypeFamily => 78,
Kind::TypeParameter => 79,
Kind::Union => 80,
Kind::Value => 81,
Kind::Variable => 82,
};
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for Kind {
fn default() -> Self {
Kind::UnspecifiedKind
}
}
impl Kind {
pub(in super) fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<Kind>("SymbolInformation.Kind")
}
}
}
#[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 is_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(5);
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 },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"is_definition",
|m: &Relationship| { &m.is_definition },
|m: &mut Relationship| { &mut m.is_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()?;
},
40 => {
self.is_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;
}
if self.is_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)?;
}
if self.is_definition != false {
os.write_bool(5, self.is_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.is_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,
is_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 enclosing_range: ::std::vec::Vec<i32>,
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(7);
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 },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"enclosing_range",
|m: &Occurrence| { &m.enclosing_range },
|m: &mut Occurrence| { &mut m.enclosing_range },
));
::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()?);
},
58 => {
is.read_repeated_packed_int32_into(&mut self.enclosing_range)?;
},
56 => {
self.enclosing_range.push(is.read_int32()?);
},
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;
};
for value in &self.enclosing_range {
my_size += ::protobuf::rt::int32_size(7, *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<()> {
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)?;
};
for v in &self.enclosing_range {
os.write_int32(7, *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() -> 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.enclosing_range.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(),
enclosing_range: ::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,
ForwardDefinition = 64,
}
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),
64 => ::std::option::Option::Some(SymbolRole::ForwardDefinition),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [SymbolRole] = &[
SymbolRole::UnspecifiedSymbolRole,
SymbolRole::Definition,
SymbolRole::Import,
SymbolRole::WriteAccess,
SymbolRole::ReadAccess,
SymbolRole::Generated,
SymbolRole::Test,
SymbolRole::ForwardDefinition,
];
}
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,
SymbolRole::ForwardDefinition => 7,
};
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,
Apex = 96,
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,
CUDA = 97,
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,
GraphQL = 98,
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,
Justfile = 109,
Kotlin = 4,
LaTeX = 83,
Lean = 48,
Less = 27,
Lua = 12,
Luau = 108,
Makefile = 79,
Markdown = 84,
Matlab = 52,
Nickel = 110,
Nix = 77,
OCaml = 41,
Objective_C = 36,
Objective_CPP = 37,
Pascal = 99,
PHP = 19,
PLSQL = 70,
Perl = 13,
PowerShell = 67,
Prolog = 71,
Protobuf = 100,
Python = 15,
R = 54,
Racket = 11,
Raku = 14,
Razor = 62,
Repro = 102,
ReST = 85,
Ruby = 16,
Rust = 40,
SAS = 61,
SCSS = 29,
SML = 43,
SQL = 69,
Sass = 28,
Scala = 5,
Scheme = 10,
ShellScript = 64,
Skylark = 78,
Slang = 107,
Solidity = 95,
Svelte = 106,
Swift = 2,
Tcl = 101,
TOML = 73,
TeX = 82,
Thrift = 103,
TypeScript = 23,
TypeScriptReact = 94,
Verilog = 104,
VHDL = 105,
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),
96 => ::std::option::Option::Some(Language::Apex),
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),
97 => ::std::option::Option::Some(Language::CUDA),
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),
98 => ::std::option::Option::Some(Language::GraphQL),
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),
109 => ::std::option::Option::Some(Language::Justfile),
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),
108 => ::std::option::Option::Some(Language::Luau),
79 => ::std::option::Option::Some(Language::Makefile),
84 => ::std::option::Option::Some(Language::Markdown),
52 => ::std::option::Option::Some(Language::Matlab),
110 => ::std::option::Option::Some(Language::Nickel),
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),
99 => ::std::option::Option::Some(Language::Pascal),
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),
100 => ::std::option::Option::Some(Language::Protobuf),
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),
102 => ::std::option::Option::Some(Language::Repro),
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),
107 => ::std::option::Option::Some(Language::Slang),
95 => ::std::option::Option::Some(Language::Solidity),
106 => ::std::option::Option::Some(Language::Svelte),
2 => ::std::option::Option::Some(Language::Swift),
101 => ::std::option::Option::Some(Language::Tcl),
73 => ::std::option::Option::Some(Language::TOML),
82 => ::std::option::Option::Some(Language::TeX),
103 => ::std::option::Option::Some(Language::Thrift),
23 => ::std::option::Option::Some(Language::TypeScript),
94 => ::std::option::Option::Some(Language::TypeScriptReact),
104 => ::std::option::Option::Some(Language::Verilog),
105 => ::std::option::Option::Some(Language::VHDL),
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::Apex,
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::CUDA,
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::GraphQL,
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::Justfile,
Language::Kotlin,
Language::LaTeX,
Language::Lean,
Language::Less,
Language::Lua,
Language::Luau,
Language::Makefile,
Language::Markdown,
Language::Matlab,
Language::Nickel,
Language::Nix,
Language::OCaml,
Language::Objective_C,
Language::Objective_CPP,
Language::Pascal,
Language::PHP,
Language::PLSQL,
Language::Perl,
Language::PowerShell,
Language::Prolog,
Language::Protobuf,
Language::Python,
Language::R,
Language::Racket,
Language::Raku,
Language::Razor,
Language::Repro,
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::Slang,
Language::Solidity,
Language::Svelte,
Language::Swift,
Language::Tcl,
Language::TOML,
Language::TeX,
Language::Thrift,
Language::TypeScript,
Language::TypeScriptReact,
Language::Verilog,
Language::VHDL,
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::Apex => 2,
Language::APL => 3,
Language::Ada => 4,
Language::Agda => 5,
Language::AsciiDoc => 6,
Language::Assembly => 7,
Language::Awk => 8,
Language::Bat => 9,
Language::BibTeX => 10,
Language::C => 11,
Language::COBOL => 12,
Language::CPP => 13,
Language::CSS => 14,
Language::CSharp => 15,
Language::Clojure => 16,
Language::Coffeescript => 17,
Language::CommonLisp => 18,
Language::Coq => 19,
Language::CUDA => 20,
Language::Dart => 21,
Language::Delphi => 22,
Language::Diff => 23,
Language::Dockerfile => 24,
Language::Dyalog => 25,
Language::Elixir => 26,
Language::Erlang => 27,
Language::FSharp => 28,
Language::Fish => 29,
Language::Flow => 30,
Language::Fortran => 31,
Language::Git_Commit => 32,
Language::Git_Config => 33,
Language::Git_Rebase => 34,
Language::Go => 35,
Language::GraphQL => 36,
Language::Groovy => 37,
Language::HTML => 38,
Language::Hack => 39,
Language::Handlebars => 40,
Language::Haskell => 41,
Language::Idris => 42,
Language::Ini => 43,
Language::J => 44,
Language::JSON => 45,
Language::Java => 46,
Language::JavaScript => 47,
Language::JavaScriptReact => 48,
Language::Jsonnet => 49,
Language::Julia => 50,
Language::Justfile => 51,
Language::Kotlin => 52,
Language::LaTeX => 53,
Language::Lean => 54,
Language::Less => 55,
Language::Lua => 56,
Language::Luau => 57,
Language::Makefile => 58,
Language::Markdown => 59,
Language::Matlab => 60,
Language::Nickel => 61,
Language::Nix => 62,
Language::OCaml => 63,
Language::Objective_C => 64,
Language::Objective_CPP => 65,
Language::Pascal => 66,
Language::PHP => 67,
Language::PLSQL => 68,
Language::Perl => 69,
Language::PowerShell => 70,
Language::Prolog => 71,
Language::Protobuf => 72,
Language::Python => 73,
Language::R => 74,
Language::Racket => 75,
Language::Raku => 76,
Language::Razor => 77,
Language::Repro => 78,
Language::ReST => 79,
Language::Ruby => 80,
Language::Rust => 81,
Language::SAS => 82,
Language::SCSS => 83,
Language::SML => 84,
Language::SQL => 85,
Language::Sass => 86,
Language::Scala => 87,
Language::Scheme => 88,
Language::ShellScript => 89,
Language::Skylark => 90,
Language::Slang => 91,
Language::Solidity => 92,
Language::Svelte => 93,
Language::Swift => 94,
Language::Tcl => 95,
Language::TOML => 96,
Language::TeX => 97,
Language::Thrift => 98,
Language::TypeScript => 99,
Language::TypeScriptReact => 100,
Language::Verilog => 101,
Language::VHDL => 102,
Language::VisualBasic => 103,
Language::Vue => 104,
Language::Wolfram => 105,
Language::XML => 106,
Language::XSL => 107,
Language::YAML => 108,
Language::Zig => 109,
};
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\"\xc6\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\x12\x12\n\x04text\x18\x05\x20\x01(\tR\x04text\"}\n\x06Sy\
mbol\x12\x16\n\x06scheme\x18\x01\x20\x01(\tR\x06scheme\x12'\n\x07package\
\x18\x02\x20\x01(\x0b2\r.scip.PackageR\x07package\x122\n\x0bdescriptors\
\x18\x03\x20\x03(\x0b2\x10.scip.DescriptorR\x0bdescriptors\"Q\n\x07Packa\
ge\x12\x18\n\x07manager\x18\x01\x20\x01(\tR\x07manager\x12\x12\n\x04name\
\x18\x02\x20\x01(\tR\x04name\x12\x18\n\x07version\x18\x03\x20\x01(\tR\
\x07version\"\x9f\x02\n\nDescriptor\x12\x12\n\x04name\x18\x01\x20\x01(\t\
R\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\x11UnspecifiedSuffix\x10\0\x12\r\n\tNam\
espace\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\tParameter\x10\x06\x12\x08\n\x04Me\
ta\x10\x07\x12\t\n\x05Local\x10\x08\x12\t\n\x05Macro\x10\t\x1a\x02\x10\
\x01\"\xab\x0c\n\x11SymbolInformation\x12\x16\n\x06symbol\x18\x01\x20\
\x01(\tR\x06symbol\x12$\n\rdocumentation\x18\x03\x20\x03(\tR\rdocumentat\
ion\x128\n\rrelationships\x18\x04\x20\x03(\x0b2\x12.scip.RelationshipR\r\
relationships\x120\n\x04kind\x18\x05\x20\x01(\x0e2\x1c.scip.SymbolInform\
ation.KindR\x04kind\x12!\n\x0cdisplay_name\x18\x06\x20\x01(\tR\x0bdispla\
yName\x12G\n\x17signature_documentation\x18\x07\x20\x01(\x0b2\x0e.scip.D\
ocumentR\x16signatureDocumentation\x12)\n\x10enclosing_symbol\x18\x08\
\x20\x01(\tR\x0fenclosingSymbol\"\xd4\t\n\x04Kind\x12\x13\n\x0fUnspecifi\
edKind\x10\0\x12\x12\n\x0eAbstractMethod\x10B\x12\x0c\n\x08Accessor\x10H\
\x12\t\n\x05Array\x10\x01\x12\r\n\tAssertion\x10\x02\x12\x12\n\x0eAssoci\
atedType\x10\x03\x12\r\n\tAttribute\x10\x04\x12\t\n\x05Axiom\x10\x05\x12\
\x0b\n\x07Boolean\x10\x06\x12\t\n\x05Class\x10\x07\x12\x0c\n\x08Constant\
\x10\x08\x12\x0f\n\x0bConstructor\x10\t\x12\x0c\n\x08Contract\x10>\x12\
\x0e\n\nDataFamily\x10\n\x12\x0c\n\x08Delegate\x10I\x12\x08\n\x04Enum\
\x10\x0b\x12\x0e\n\nEnumMember\x10\x0c\x12\t\n\x05Error\x10?\x12\t\n\x05\
Event\x10\r\x12\x08\n\x04Fact\x10\x0e\x12\t\n\x05Field\x10\x0f\x12\x08\n\
\x04File\x10\x10\x12\x0c\n\x08Function\x10\x11\x12\n\n\x06Getter\x10\x12\
\x12\x0b\n\x07Grammar\x10\x13\x12\x0c\n\x08Instance\x10\x14\x12\r\n\tInt\
erface\x10\x15\x12\x07\n\x03Key\x10\x16\x12\x08\n\x04Lang\x10\x17\x12\t\
\n\x05Lemma\x10\x18\x12\x0b\n\x07Library\x10@\x12\t\n\x05Macro\x10\x19\
\x12\n\n\x06Method\x10\x1a\x12\x0f\n\x0bMethodAlias\x10J\x12\x12\n\x0eMe\
thodReceiver\x10\x1b\x12\x17\n\x13MethodSpecification\x10C\x12\x0b\n\x07\
Message\x10\x1c\x12\x0c\n\x08Modifier\x10A\x12\n\n\x06Module\x10\x1d\x12\
\r\n\tNamespace\x10\x1e\x12\x08\n\x04Null\x10\x1f\x12\n\n\x06Number\x10\
\x20\x12\n\n\x06Object\x10!\x12\x0c\n\x08Operator\x10\"\x12\x0b\n\x07Pac\
kage\x10#\x12\x11\n\rPackageObject\x10$\x12\r\n\tParameter\x10%\x12\x12\
\n\x0eParameterLabel\x10&\x12\x0b\n\x07Pattern\x10'\x12\r\n\tPredicate\
\x10(\x12\x0c\n\x08Property\x10)\x12\x0c\n\x08Protocol\x10*\x12\x12\n\
\x0eProtocolMethod\x10D\x12\x15\n\x11PureVirtualMethod\x10E\x12\x0f\n\
\x0bQuasiquoter\x10+\x12\x11\n\rSelfParameter\x10,\x12\n\n\x06Setter\x10\
-\x12\r\n\tSignature\x10.\x12\x12\n\x0eSingletonClass\x10K\x12\x13\n\x0f\
SingletonMethod\x10L\x12\x14\n\x10StaticDataMember\x10M\x12\x0f\n\x0bSta\
ticEvent\x10N\x12\x0f\n\x0bStaticField\x10O\x12\x10\n\x0cStaticMethod\
\x10P\x12\x12\n\x0eStaticProperty\x10Q\x12\x12\n\x0eStaticVariable\x10R\
\x12\n\n\x06String\x100\x12\n\n\x06Struct\x101\x12\r\n\tSubscript\x10/\
\x12\n\n\x06Tactic\x102\x12\x0b\n\x07Theorem\x103\x12\x11\n\rThisParamet\
er\x104\x12\t\n\x05Trait\x105\x12\x0f\n\x0bTraitMethod\x10F\x12\x08\n\
\x04Type\x106\x12\r\n\tTypeAlias\x107\x12\r\n\tTypeClass\x108\x12\x13\n\
\x0fTypeClassMethod\x10G\x12\x0e\n\nTypeFamily\x109\x12\x11\n\rTypeParam\
eter\x10:\x12\t\n\x05Union\x10;\x12\t\n\x05Value\x10<\x12\x0c\n\x08Varia\
ble\x10=\"\xc9\x01\n\x0cRelationship\x12\x16\n\x06symbol\x18\x01\x20\x01\
(\tR\x06symbol\x12!\n\x0cis_reference\x18\x02\x20\x01(\x08R\x0bisReferen\
ce\x12+\n\x11is_implementation\x18\x03\x20\x01(\x08R\x10isImplementation\
\x12,\n\x12is_type_definition\x18\x04\x20\x01(\x08R\x10isTypeDefinition\
\x12#\n\ris_definition\x18\x05\x20\x01(\x08R\x0cisDefinition\"\xa4\x02\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\x0bsymbolRoles\x125\n\x16override_documentation\x18\x04\
\x20\x03(\tR\x15overrideDocumentation\x121\n\x0bsyntax_kind\x18\x05\x20\
\x01(\x0e2\x10.scip.SyntaxKindR\nsyntaxKind\x122\n\x0bdiagnostics\x18\
\x06\x20\x03(\x0b2\x10.scip.DiagnosticR\x0bdiagnostics\x12'\n\x0fenclosi\
ng_range\x18\x07\x20\x03(\x05R\x0eenclosingRange\"\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\x07message\x12\x16\n\x06source\x18\x04\x20\x01(\tR\x06s\
ource\x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04ta\
gs*1\n\x0fProtocolVersion\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*\x94\x01\n\nSymbolRole\x12\x19\
\n\x15UnspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\
\x06Import\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAcces\
s\x10\x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20\x12\x15\n\
\x11ForwardDefinition\x10@*\xea\x06\n\nSyntaxKind\x12\x19\n\x15Unspecifi\
edSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\x14Punctuation\
Delimiter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\x12\x0b\n\x07K\
eyword\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\x02\x08\x01\
\x12\x16\n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifier\x10\x06\
\x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifierNull\x10\
\x08\x12\x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17IdentifierMutabl\
eGlobal\x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\n\x0fIden\
tifierLocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\x17\n\x13I\
dentifierNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\x0e\x1a\x02\
\x08\x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\x1cIdentifier\
FunctionDefinition\x10\x10\x12\x13\n\x0fIdentifierMacro\x10\x11\x12\x1d\
\n\x19IdentifierMacroDefinition\x10\x12\x12\x12\n\x0eIdentifierType\x10\
\x13\x12\x19\n\x15IdentifierBuiltinType\x10\x14\x12\x17\n\x13IdentifierA\
ttribute\x10\x15\x12\x0f\n\x0bRegexEscape\x10\x16\x12\x11\n\rRegexRepeat\
ed\x10\x17\x12\x11\n\rRegexWildcard\x10\x18\x12\x12\n\x0eRegexDelimiter\
\x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\x11\n\rStringLiteral\x10\x1b\x12\
\x17\n\x13StringLiteralEscape\x10\x1c\x12\x18\n\x14StringLiteralSpecial\
\x10\x1d\x12\x14\n\x10StringLiteralKey\x10\x1e\x12\x14\n\x10CharacterLit\
eral\x10\x1f\x12\x12\n\x0eNumericLiteral\x10\x20\x12\x12\n\x0eBooleanLit\
eral\x10!\x12\x07\n\x03Tag\x10\"\x12\x10\n\x0cTagAttribute\x10#\x12\x10\
\n\x0cTagDelimiter\x10$\x1a\x02\x10\x01*V\n\x08Severity\x12\x17\n\x13Uns\
pecifiedSeverity\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\rDia\
gnosticTag\x12\x1c\n\x18UnspecifiedDiagnosticTag\x10\0\x12\x0f\n\x0bUnne\
cessary\x10\x01\x12\x0e\n\nDeprecated\x10\x02*\x9b\n\n\x08Language\x12\
\x17\n\x13UnspecifiedLanguage\x10\0\x12\x08\n\x04ABAP\x10<\x12\x08\n\x04\
Apex\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\
\x0cCoffeescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\x12\x07\n\x03Coq\
\x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\
\x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalo\
g\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FS\
harp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\x04Flow\x10\x18\x12\x0b\n\x07\
Fortran\x108\x12\x0e\n\nGit_Commit\x10[\x12\x0e\n\nGit_Config\x10Y\x12\
\x0e\n\nGit_Rebase\x10\\\x12\x06\n\x02Go\x10!\x12\x0b\n\x07GraphQL\x10b\
\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\x04JS\
ON\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\x05Julia\
\x107\x12\x0c\n\x08Justfile\x10m\x12\n\n\x06Kotlin\x10\x04\x12\t\n\x05La\
TeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\x10\x1b\x12\x07\n\x03L\
ua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Makefile\x10O\x12\x0c\n\
\x08Markdown\x10T\x12\n\n\x06Matlab\x104\x12\n\n\x06Nickel\x10n\x12\x07\
\n\x03Nix\x10M\x12\t\n\x05OCaml\x10)\x12\x0f\n\x0bObjective_C\x10$\x12\
\x11\n\rObjective_CPP\x10%\x12\n\n\x06Pascal\x10c\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\x06Prolog\x10G\x12\x0c\n\x08Protobuf\x10d\x12\n\n\x06Pytho\
n\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\x10\x0b\x12\x08\n\x04Rak\
u\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repro\x10f\x12\x08\n\x04ReST\
\x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rust\x10(\x12\x07\n\x03SAS\
\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\
\x05Slang\x10k\x12\x0c\n\x08Solidity\x10_\x12\n\n\x06Svelte\x10j\x12\t\n\
\x05Swift\x10\x02\x12\x07\n\x03Tcl\x10e\x12\x08\n\x04TOML\x10I\x12\x07\n\
\x03TeX\x10R\x12\n\n\x06Thrift\x10g\x12\x0e\n\nTypeScript\x10\x17\x12\
\x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilog\x10h\x12\x08\n\x04VH\
DL\x10i\x12\x0f\n\x0bVisualBasic\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\xef\xa3\x02\n\x07\x12\x05\n\0\xb2\x06\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\x20\
piece\x20of\n\x20source\x20code\x20or\x20software\x20artifact.\x20Comple\
mentary\x20information\x20can\x20be\x20merged\n\x20together\x20from\x20m\
ultiple\x20sources\x20to\x20provide\x20a\x20unified\x20code\x20intellige\
nce\n\x20experience.\n\n\x20Programs\x20producing\x20a\x20file\x20of\x20\
this\x20format\x20is\x20an\x20\"indexer\"\x20and\x20may\x20operate\n\x20\
somewhere\x20on\x20the\x20spectrum\x20between\x20precision,\x20such\x20a\
s\x20indexes\x20produced\x20by\n\x20compiler-backed\x20indexers,\x20and\
\x20heurstics,\x20such\x20as\x20indexes\x20produced\x20by\x20local\n\x20\
syntax-directed\x20analysis\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\x20Inde\
x\x20represents\x20a\x20complete\x20SCIP\x20index\x20for\x20a\x20workspa\
ce\x20this\x20is\x20rooted\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\x20an\x20Index\x20payload\x20one\x20field\n\x20value\
\x20at\x20a\x20time.\x20To\x20permit\x20streaming\x20consumption\x20of\
\x20an\x20Index\x20payload,\x20the\n\x20`metadata`\x20field\x20must\x20a\
ppear\x20at\x20the\x20start\x20of\x20the\x20stream\x20and\x20must\x20onl\
y\x20appear\n\x20once\x20in\x20the\x20stream.\x20Other\x20field\x20value\
s\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\xf6\x03\n\x04\x04\0\x02\
\x02\x12\x03\x20\x022\x1a\xe9\x02\x20(optional)\x20Symbols\x20that\x20ar\
e\x20referenced\x20from\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\x20\
external\x20package\x20will\x20get\x20indexed\x20separately.\x20If\x20th\
e\n\x20external\x20package\x20won't\x20get\x20indexed\x20for\x20some\x20\
reason\x20then\x20you\x20can\x20use\x20this\n\x20field\x20to\x20provide\
\x20hover\x20documentation\x20for\x20those\x20external\x20symbols.\n\"}\
\x20IMPORTANT:\x20When\x20adding\x20a\x20new\x20field\x20to\x20`Index`\
\x20here,\x20add\x20a\x20matching\n\x20function\x20in\x20`IndexVisitor`\
\x20and\x20update\x20`ParseStreaming`.\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%\01\x01\n\n\n\x03\x04\x01\
\x01\x12\x03%\x08\x10\nN\n\x04\x04\x01\x02\0\x12\x03'\x02\x1e\x1aA\x20Wh\
ich\x20version\x20of\x20this\x20protocol\x20was\x20used\x20to\x20generat\
e\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\x20\
Information\x20about\x20the\x20tool\x20that\x20produced\x20this\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\x20directory\
\x20of\x20this\x20index.\x20All\n\x20documents\x20in\x20this\x20index\
\x20must\x20appear\x20in\x20a\x20subdirectory\x20of\x20this\x20root\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\x030\x02*\x1a_\x20Tex\
t\x20encoding\x20of\x20the\x20source\x20files\x20on\x20disk\x20that\x20a\
re\x20referenced\x20from\n\x20`Document.relative_path`.\n\n\x0c\n\x05\
\x04\x01\x02\x03\x06\x12\x030\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\
\x12\x030\x0f%\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x030()\n\n\n\x02\x05\
\0\x12\x043\05\x01\n\n\n\x03\x05\0\x01\x12\x033\x05\x14\n\x0b\n\x04\x05\
\0\x02\0\x12\x034\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x034\x02\x1c\n\
\x0c\n\x05\x05\0\x02\0\x02\x12\x034\x1f\x20\n\n\n\x02\x05\x01\x12\x047\0\
;\x01\n\n\n\x03\x05\x01\x01\x12\x037\x05\x11\n\x0b\n\x04\x05\x01\x02\0\
\x12\x038\x02\x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x038\x02\x19\n\x0c\n\
\x05\x05\x01\x02\0\x02\x12\x038\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\
\x039\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x039\x02\x06\n\x0c\n\
\x05\x05\x01\x02\x01\x02\x12\x039\t\n\n\x0b\n\x04\x05\x01\x02\x02\x12\
\x03:\x02\x0c\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03:\x02\x07\n\x0c\n\
\x05\x05\x01\x02\x02\x02\x12\x03:\n\x0b\n\n\n\x02\x04\x02\x12\x04=\0D\
\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\x03A\x02\x15\x1a2\x20Vers\
ion\x20of\x20the\x20indexer\x20that\x20produced\x20this\x20index.\n\n\
\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03A\x02\x08\n\x0c\n\x05\x04\x02\x02\
\x01\x01\x12\x03A\t\x10\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03A\x13\x14\
\nL\n\x04\x04\x02\x02\x02\x12\x03C\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\x03C\x02\n\n\x0c\n\x05\x04\x02\x02\x02\
\x05\x12\x03C\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03C\x12\x1b\n\
\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03C\x1e\x1f\nH\n\x02\x04\x03\x12\x04\
G\0h\x01\x1a<\x20Document\x20defines\x20the\x20metadata\x20about\x20a\
\x20source\x20file\x20on\x20disk.\n\n\n\n\x03\x04\x03\x01\x12\x03G\x08\
\x10\n\xa5\x02\n\x04\x04\x03\x02\0\x12\x03L\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\x20language,\x20including\n\x20ones\x20that\x20are\x20no\
t\x20specified\x20by\x20the\x20`Language`\x20enum.\n\n\x0c\n\x05\x04\x03\
\x02\0\x05\x12\x03L\x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03L\t\x11\
\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03L\x14\x15\n\xb5\x03\n\x04\x04\x03\
\x02\x01\x12\x03V\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\x03V\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\
\x01\x12\x03V\t\x16\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03V\x19\x1a\n4\
\n\x04\x04\x03\x02\x02\x12\x03X\x02&\x1a'\x20Occurrences\x20that\x20appe\
ar\x20in\x20this\x20file.\n\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x03X\x02\
\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03X\x0b\x15\n\x0c\n\x05\x04\x03\
\x02\x02\x01\x12\x03X\x16!\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03X$%\n\
\xea\x01\n\x04\x04\x03\x02\x03\x12\x03^\x02)\x1a\xdc\x01\x20Symbols\x20t\
hat\x20are\x20\"defined\"\x20within\x20this\x20document.\n\n\x20This\x20\
should\x20include\x20symbols\x20which\x20technically\x20do\x20not\x20hav\
e\x20any\x20definition,\n\x20but\x20have\x20a\x20reference\x20and\x20are\
\x20defined\x20by\x20some\x20other\x20symbol\x20(see\n\x20Relationship.i\
s_definition).\n\n\x0c\n\x05\x04\x03\x02\x03\x04\x12\x03^\x02\n\n\x0c\n\
\x05\x04\x03\x02\x03\x06\x12\x03^\x0b\x1c\n\x0c\n\x05\x04\x03\x02\x03\
\x01\x12\x03^\x1d$\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03^'(\n\xf7\x03\
\n\x04\x04\x03\x02\x04\x12\x03g\x02\x12\x1a\xe9\x03\x20(optional)\x20Tex\
t\x20contents\x20of\x20the\x20this\x20document.\x20Indexers\x20are\x20no\
t\x20expected\x20to\n\x20include\x20the\x20text\x20by\x20default.\x20It'\
s\x20preferrable\x20that\x20clients\x20read\x20the\x20text\n\x20contents\
\x20from\x20the\x20file\x20system\x20by\x20resolving\x20the\x20absolute\
\x20path\x20from\x20joining\n\x20`Index.metadata.project_root`\x20and\
\x20`Document.relative_path`.\x20This\x20field\x20was\n\x20introduced\
\x20to\x20support\x20`SymbolInformation.signature_documentation`,\x20but\
\x20it\n\x20can\x20be\x20used\x20for\x20other\x20purposes\x20as\x20well,\
\x20for\x20example\x20testing\x20or\x20when\x20working\n\x20with\x20virt\
ual/in-memory\x20documents.\n\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x03g\
\x02\x08\n\x0c\n\x05\x04\x03\x02\x04\x01\x12\x03g\t\r\n\x0c\n\x05\x04\
\x03\x02\x04\x03\x12\x03g\x10\x11\n\xa4\x11\n\x02\x04\x04\x12\x06\x94\
\x01\0\x98\x01\x01\x1a\x95\x11\x20Symbol\x20is\x20similar\x20to\x20a\x20\
URI,\x20it\x20identifies\x20a\x20class,\x20method,\x20or\x20a\x20local\n\
\x20variable.\x20`SymbolInformation`\x20contains\x20rich\x20metadata\x20\
about\x20symbols\x20such\x20as\n\x20the\x20docstring.\n\n\x20Symbol\x20h\
as\x20a\x20standardized\x20string\x20representation,\x20which\x20can\x20\
be\x20used\n\x20interchangeably\x20with\x20`Symbol`.\x20The\x20syntax\
\x20for\x20Symbol\x20is\x20the\x20following:\n\x20```\n\x20#\x20(<x>)+\
\x20stands\x20for\x20one\x20or\x20more\x20repetitions\x20of\x20<x>\n\x20\
<symbol>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\
\x20<scheme>\x20'\x20'\x20<package>\x20'\x20'\x20(<descriptor>)+\x20|\
\x20'local\x20'\x20<local-id>\n\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<scheme>\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20::=\x20any\x20UTF-8,\x20escape\x20spaces\x20\
with\x20double\x20space.\n\x20<manager>\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20::=\x20same\x20as\x20above,\x20use\x20the\x20pla\
ceholder\x20'.'\x20to\x20indicate\x20an\x20empty\x20value\n\x20<package-\
name>\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20same\x20as\x20above\n\
\x20<version>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\
\x20same\x20as\x20above\n\x20<descriptor>\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>\
\x20|\x20<macro>\n\x20<namespace>\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20::=\x20<name>\x20'/'\n\x20<type>\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<name>\x20'#'\n\x20<term>\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\
\x20<name>\x20'.'\n\x20<meta>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20::=\x20<name>\x20':'\n\x20<macro>\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<name>\
\x20'!'\n\x20<method>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20::=\x20<name>\x20'('\x20<method-disambiguator>\x20').'\n\x20\
<type-parameter>\x20\x20\x20\x20\x20\x20\x20::=\x20'['\x20<name>\x20']'\
\n\x20<parameter>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20\
'('\x20<name>\x20')'\n\x20<name>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20::=\x20<identifier>\n\x20<method-disambiguat\
or>\x20::=\x20<simple-identifier>\n\x20<identifier>\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20::=\x20<simple-identifier>\x20|\x20<escaped-iden\
tifier>\n\x20<simple-identifier>\x20\x20\x20\x20::=\x20(<identifier-char\
acter>)+\n\x20<identifier-character>\x20::=\x20'_'\x20|\x20'+'\x20|\x20'\
-'\x20|\x20'$'\x20|\x20ASCII\x20letter\x20or\x20digit\n\x20<escaped-iden\
tifier>\x20\x20\x20::=\x20'`'\x20(<escaped-character>)+\x20'`'\n\x20<esc\
aped-characters>\x20\x20\x20::=\x20any\x20UTF-8\x20character,\x20escape\
\x20backticks\x20with\x20double\x20backtick.\n\x20<local-id>\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20::=\x20<simple-identifier>\n\x20\
```\n\n\x20The\x20list\x20of\x20descriptors\x20for\x20a\x20symbol\x20sho\
uld\x20together\x20form\x20a\x20fully\n\x20qualified\x20name\x20for\x20t\
he\x20symbol.\x20That\x20is,\x20it\x20should\x20serve\x20as\x20a\x20uniq\
ue\n\x20identifier\x20across\x20the\x20package.\x20Typically,\x20it\x20w\
ill\x20include\x20one\x20descriptor\n\x20for\x20every\x20node\x20in\x20t\
he\x20AST\x20(along\x20the\x20ancestry\x20path)\x20between\x20the\x20roo\
t\x20of\n\x20the\x20file\x20and\x20the\x20node\x20corresponding\x20to\
\x20the\x20symbol.\n\n\x20Local\x20symbols\x20MUST\x20only\x20be\x20used\
\x20for\x20entities\x20which\x20are\x20local\x20to\x20a\x20Document,\n\
\x20and\x20cannot\x20be\x20accessed\x20from\x20outside\x20the\x20Documen\
t.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x94\x01\x08\x0e\n\x0c\n\x04\x04\x04\
\x02\0\x12\x04\x95\x01\x02\x14\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\x95\
\x01\x02\x08\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\x95\x01\t\x0f\n\r\n\x05\
\x04\x04\x02\0\x03\x12\x04\x95\x01\x12\x13\n\x0c\n\x04\x04\x04\x02\x01\
\x12\x04\x96\x01\x02\x16\n\r\n\x05\x04\x04\x02\x01\x06\x12\x04\x96\x01\
\x02\t\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\x96\x01\n\x11\n\r\n\x05\x04\
\x04\x02\x01\x03\x12\x04\x96\x01\x14\x15\n\x0c\n\x04\x04\x04\x02\x02\x12\
\x04\x97\x01\x02&\n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\x97\x01\x02\n\n\
\r\n\x05\x04\x04\x02\x02\x06\x12\x04\x97\x01\x0b\x15\n\r\n\x05\x04\x04\
\x02\x02\x01\x12\x04\x97\x01\x16!\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\
\x97\x01$%\nq\n\x02\x04\x05\x12\x06\x9d\x01\0\xa1\x01\x01\x1ac\x20Unit\
\x20of\x20packaging\x20and\x20distribution.\n\n\x20NOTE:\x20This\x20corr\
esponds\x20to\x20a\x20module\x20in\x20Go\x20and\x20JVM\x20languages.\n\n\
\x0b\n\x03\x04\x05\x01\x12\x04\x9d\x01\x08\x0f\n\x0c\n\x04\x04\x05\x02\0\
\x12\x04\x9e\x01\x02\x15\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\x9e\x01\x02\
\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\x9e\x01\t\x10\n\r\n\x05\x04\x05\
\x02\0\x03\x12\x04\x9e\x01\x13\x14\n\x0c\n\x04\x04\x05\x02\x01\x12\x04\
\x9f\x01\x02\x12\n\r\n\x05\x04\x05\x02\x01\x05\x12\x04\x9f\x01\x02\x08\n\
\r\n\x05\x04\x05\x02\x01\x01\x12\x04\x9f\x01\t\r\n\r\n\x05\x04\x05\x02\
\x01\x03\x12\x04\x9f\x01\x10\x11\n\x0c\n\x04\x04\x05\x02\x02\x12\x04\xa0\
\x01\x02\x15\n\r\n\x05\x04\x05\x02\x02\x05\x12\x04\xa0\x01\x02\x08\n\r\n\
\x05\x04\x05\x02\x02\x01\x12\x04\xa0\x01\t\x10\n\r\n\x05\x04\x05\x02\x02\
\x03\x12\x04\xa0\x01\x13\x14\n\x0c\n\x02\x04\x06\x12\x06\xa3\x01\0\xba\
\x01\x01\n\x0b\n\x03\x04\x06\x01\x12\x04\xa3\x01\x08\x12\n\x0e\n\x04\x04\
\x06\x04\0\x12\x06\xa4\x01\x02\xb6\x01\x03\n\r\n\x05\x04\x06\x04\0\x01\
\x12\x04\xa4\x01\x07\r\n\r\n\x05\x04\x06\x04\0\x03\x12\x04\xa5\x01\x04\
\x1e\n\x0e\n\x06\x04\x06\x04\0\x03\x02\x12\x04\xa5\x01\x04\x1e\n\x0e\n\
\x06\x04\x06\x04\0\x02\0\x12\x04\xa6\x01\x04\x1a\n\x0f\n\x07\x04\x06\x04\
\0\x02\0\x01\x12\x04\xa6\x01\x04\x15\n\x0f\n\x07\x04\x06\x04\0\x02\0\x02\
\x12\x04\xa6\x01\x18\x19\n}\n\x06\x04\x06\x04\0\x02\x01\x12\x04\xaa\x01\
\x04\x12\x1am\x20Unit\x20of\x20code\x20abstraction\x20and/or\x20namespac\
ing.\n\n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20\
Go\x20and\x20JVM\x20languages.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x01\x01\
\x12\x04\xaa\x01\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x01\x02\x12\x04\xaa\
\x01\x10\x11\n(\n\x06\x04\x06\x04\0\x02\x02\x12\x04\xac\x01\x04\"\x1a\
\x18\x20Use\x20Namespace\x20instead.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x02\
\x01\x12\x04\xac\x01\x04\x0b\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x02\x12\
\x04\xac\x01\x0e\x0f\n\x0f\n\x07\x04\x06\x04\0\x02\x02\x03\x12\x04\xac\
\x01\x10!\n\x10\n\x08\x04\x06\x04\0\x02\x02\x03\x01\x12\x04\xac\x01\x11\
\x20\n\x0e\n\x06\x04\x06\x04\0\x02\x03\x12\x04\xad\x01\x04\r\n\x0f\n\x07\
\x04\x06\x04\0\x02\x03\x01\x12\x04\xad\x01\x04\x08\n\x0f\n\x07\x04\x06\
\x04\0\x02\x03\x02\x12\x04\xad\x01\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\x02\
\x04\x12\x04\xae\x01\x04\r\n\x0f\n\x07\x04\x06\x04\0\x02\x04\x01\x12\x04\
\xae\x01\x04\x08\n\x0f\n\x07\x04\x06\x04\0\x02\x04\x02\x12\x04\xae\x01\
\x0b\x0c\n\x0e\n\x06\x04\x06\x04\0\x02\x05\x12\x04\xaf\x01\x04\x0f\n\x0f\
\n\x07\x04\x06\x04\0\x02\x05\x01\x12\x04\xaf\x01\x04\n\n\x0f\n\x07\x04\
\x06\x04\0\x02\x05\x02\x12\x04\xaf\x01\r\x0e\n\x0e\n\x06\x04\x06\x04\0\
\x02\x06\x12\x04\xb0\x01\x04\x16\n\x0f\n\x07\x04\x06\x04\0\x02\x06\x01\
\x12\x04\xb0\x01\x04\x11\n\x0f\n\x07\x04\x06\x04\0\x02\x06\x02\x12\x04\
\xb0\x01\x14\x15\n\x0e\n\x06\x04\x06\x04\0\x02\x07\x12\x04\xb1\x01\x04\
\x12\n\x0f\n\x07\x04\x06\x04\0\x02\x07\x01\x12\x04\xb1\x01\x04\r\n\x0f\n\
\x07\x04\x06\x04\0\x02\x07\x02\x12\x04\xb1\x01\x10\x11\n.\n\x06\x04\x06\
\x04\0\x02\x08\x12\x04\xb3\x01\x04\r\x1a\x1e\x20Can\x20be\x20used\x20for\
\x20any\x20purpose.\n\n\x0f\n\x07\x04\x06\x04\0\x02\x08\x01\x12\x04\xb3\
\x01\x04\x08\n\x0f\n\x07\x04\x06\x04\0\x02\x08\x02\x12\x04\xb3\x01\x0b\
\x0c\n\x0e\n\x06\x04\x06\x04\0\x02\t\x12\x04\xb4\x01\x04\x0e\n\x0f\n\x07\
\x04\x06\x04\0\x02\t\x01\x12\x04\xb4\x01\x04\t\n\x0f\n\x07\x04\x06\x04\0\
\x02\t\x02\x12\x04\xb4\x01\x0c\r\n\x0e\n\x06\x04\x06\x04\0\x02\n\x12\x04\
\xb5\x01\x04\x0e\n\x0f\n\x07\x04\x06\x04\0\x02\n\x01\x12\x04\xb5\x01\x04\
\t\n\x0f\n\x07\x04\x06\x04\0\x02\n\x02\x12\x04\xb5\x01\x0c\r\n\x0c\n\x04\
\x04\x06\x02\0\x12\x04\xb7\x01\x02\x12\n\r\n\x05\x04\x06\x02\0\x05\x12\
\x04\xb7\x01\x02\x08\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xb7\x01\t\r\n\r\
\n\x05\x04\x06\x02\0\x03\x12\x04\xb7\x01\x10\x11\n\x0c\n\x04\x04\x06\x02\
\x01\x12\x04\xb8\x01\x02\x1b\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\xb8\
\x01\x02\x08\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\xb8\x01\t\x16\n\r\n\
\x05\x04\x06\x02\x01\x03\x12\x04\xb8\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\
\x02\x12\x04\xb9\x01\x02\x14\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xb9\
\x01\x02\x08\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xb9\x01\t\x0f\n\r\n\
\x05\x04\x06\x02\x02\x03\x12\x04\xb9\x01\x12\x13\n\x83\x01\n\x02\x04\x07\
\x12\x06\xbe\x01\0\x8a\x03\x01\x1au\x20SymbolInformation\x20defines\x20m\
etadata\x20about\x20a\x20symbol,\x20such\x20as\x20the\x20symbol's\n\x20d\
ocstring\x20or\x20what\x20package\x20it's\x20defined\x20it.\n\n\x0b\n\
\x03\x04\x07\x01\x12\x04\xbe\x01\x08\x19\n\xa0\x01\n\x04\x04\x07\x02\0\
\x12\x04\xc1\x01\x02\x14\x1a\x91\x01\x20Identifier\x20of\x20this\x20symb\
ol,\x20which\x20can\x20be\x20referenced\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\xc1\
\x01\x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xc1\x01\t\x0f\n\r\n\x05\
\x04\x07\x02\0\x03\x12\x04\xc1\x01\x12\x13\n\xb4\x03\n\x04\x04\x07\x02\
\x01\x12\x04\xc8\x01\x02$\x1a\xa5\x03\x20(optional,\x20but\x20strongly\
\x20recommended)\x20The\x20markdown-formatted\x20documentation\n\x20for\
\x20this\x20symbol.\x20Use\x20`SymbolInformation.signature_documentation\
`\x20to\n\x20document\x20the\x20method/class/type\x20signature\x20of\x20\
this\x20symbol.\n\x20Due\x20to\x20historical\x20reasons,\x20indexers\x20\
may\x20include\x20signature\x20documentation\x20in\n\x20this\x20field\
\x20by\x20rendering\x20markdown\x20code\x20blocks.\x20New\x20indexers\
\x20should\x20only\n\x20include\x20non-code\x20documentation\x20in\x20th\
is\x20field,\x20for\x20example\x20docstrings.\n\n\r\n\x05\x04\x07\x02\
\x01\x04\x12\x04\xc8\x01\x02\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\xc8\
\x01\x0b\x11\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xc8\x01\x12\x1f\n\r\n\
\x05\x04\x07\x02\x01\x03\x12\x04\xc8\x01\"#\n^\n\x04\x04\x07\x02\x02\x12\
\x04\xca\x01\x02*\x1aP\x20(optional)\x20Relationships\x20to\x20other\x20\
symbols\x20(e.g.,\x20implements,\x20type\x20definition).\n\n\r\n\x05\x04\
\x07\x02\x02\x04\x12\x04\xca\x01\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\
\x04\xca\x01\x0b\x17\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xca\x01\x18%\
\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xca\x01()\n\xa4\x01\n\x04\x04\x07\
\x02\x03\x12\x04\xce\x01\x02\x10\x1a\x95\x01\x20The\x20kind\x20of\x20thi\
s\x20symbol.\x20Use\x20this\x20field\x20instead\x20of\n\x20`SymbolDescri\
ptor.Suffix`\x20to\x20determine\x20whether\x20something\x20is,\x20for\
\x20example,\x20a\n\x20class\x20or\x20a\x20method.\n\n\r\n\x05\x04\x07\
\x02\x03\x06\x12\x04\xce\x01\x02\x06\n\r\n\x05\x04\x07\x02\x03\x01\x12\
\x04\xce\x01\x07\x0b\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\xce\x01\x0e\
\x0f\n\xf5\x05\n\x04\x04\x07\x04\0\x12\x06\xdd\x01\x02\xe6\x02\x03\x1a\
\xe4\x05\x20(optional)\x20Kind\x20represents\x20the\x20fine-grained\x20c\
ategory\x20of\x20a\x20symbol,\x20suitable\x20for\x20presenting\n\x20info\
rmation\x20about\x20the\x20symbol's\x20meaning\x20in\x20the\x20language.\
\n\n\x20For\x20example:\n\x20-\x20A\x20Java\x20method\x20would\x20have\
\x20the\x20kind\x20`Method`\x20while\x20a\x20Go\x20function\x20would\n\
\x20\x20\x20have\x20the\x20kind\x20`Function`,\x20even\x20if\x20the\x20s\
ymbols\x20for\x20these\x20use\x20the\x20same\n\x20\x20\x20syntax\x20for\
\x20the\x20descriptor\x20`SymbolDescriptor.Suffix.Method`.\n\x20-\x20A\
\x20Go\x20struct\x20has\x20the\x20symbol\x20kind\x20`Struct`\x20while\
\x20a\x20Java\x20class\x20has\n\x20\x20\x20the\x20symbol\x20kind\x20`Cla\
ss`\x20even\x20if\x20they\x20both\x20have\x20the\x20same\x20descriptor:\
\n\x20\x20\x20`SymbolDescriptor.Suffix.Type`.\n\n\x20Since\x20Kind\x20is\
\x20more\x20fine-grained\x20than\x20Suffix:\n\x20-\x20If\x20two\x20symbo\
ls\x20have\x20the\x20same\x20Kind,\x20they\x20should\x20share\x20the\x20\
same\x20Suffix.\n\x20-\x20If\x20two\x20symbols\x20have\x20different\x20S\
uffixes,\x20they\x20should\x20have\x20different\x20Kinds.\n\n\r\n\x05\
\x04\x07\x04\0\x01\x12\x04\xdd\x01\x07\x0b\n\x0e\n\x06\x04\x07\x04\0\x02\
\0\x12\x04\xde\x01\x06\x1a\n\x0f\n\x07\x04\x07\x04\0\x02\0\x01\x12\x04\
\xde\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\0\x02\x12\x04\xde\x01\x18\
\x19\nR\n\x06\x04\x07\x04\0\x02\x01\x12\x04\xe0\x01\x06\x1a\x1aB\x20A\
\x20method\x20which\x20may\x20or\x20may\x20not\x20have\x20a\x20body.\x20\
For\x20Java,\x20Kotlin\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x01\
\x12\x04\xe0\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x02\x12\x04\
\xe0\x01\x17\x19\n*\n\x06\x04\x07\x04\0\x02\x02\x12\x04\xe2\x01\x06\x14\
\x1a\x1a\x20For\x20Ruby's\x20attr_accessor\n\n\x0f\n\x07\x04\x07\x04\0\
\x02\x02\x01\x12\x04\xe2\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x02\
\x02\x12\x04\xe2\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x03\x12\x04\
\xe3\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x01\x12\x04\xe3\x01\
\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x02\x12\x04\xe3\x01\x0e\x0f\n\
\x1b\n\x06\x04\x07\x04\0\x02\x04\x12\x04\xe5\x01\x06\x14\x1a\x0b\x20For\
\x20Alloy\n\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x01\x12\x04\xe5\x01\x06\
\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x02\x12\x04\xe5\x01\x12\x13\n\x0e\
\n\x06\x04\x07\x04\0\x02\x05\x12\x04\xe6\x01\x06\x19\n\x0f\n\x07\x04\x07\
\x04\0\x02\x05\x01\x12\x04\xe6\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\
\x05\x02\x12\x04\xe6\x01\x17\x18\n\x19\n\x06\x04\x07\x04\0\x02\x06\x12\
\x04\xe8\x01\x06\x14\x1a\t\x20For\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\x02\
\x06\x01\x12\x04\xe8\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x02\
\x12\x04\xe8\x01\x12\x13\n\x1a\n\x06\x04\x07\x04\0\x02\x07\x12\x04\xea\
\x01\x06\x10\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x07\
\x01\x12\x04\xea\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x07\x02\x12\
\x04\xea\x01\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x08\x12\x04\xeb\x01\
\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x08\x01\x12\x04\xeb\x01\x06\r\n\
\x0f\n\x07\x04\x07\x04\0\x02\x08\x02\x12\x04\xeb\x01\x10\x11\n\x0e\n\x06\
\x04\x07\x04\0\x02\t\x12\x04\xec\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\
\x02\t\x01\x12\x04\xec\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\t\x02\
\x12\x04\xec\x01\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\n\x12\x04\xed\x01\
\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\n\x01\x12\x04\xed\x01\x06\x0e\n\
\x0f\n\x07\x04\x07\x04\0\x02\n\x02\x12\x04\xed\x01\x11\x12\n\x0e\n\x06\
\x04\x07\x04\0\x02\x0b\x12\x04\xee\x01\x06\x16\n\x0f\n\x07\x04\x07\x04\0\
\x02\x0b\x01\x12\x04\xee\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x0b\
\x02\x12\x04\xee\x01\x14\x15\n\x1e\n\x06\x04\x07\x04\0\x02\x0c\x12\x04\
\xf0\x01\x06\x14\x1a\x0e\x20For\x20Solidity\n\n\x0f\n\x07\x04\x07\x04\0\
\x02\x0c\x01\x12\x04\xf0\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\
\x02\x12\x04\xf0\x01\x11\x13\n\x1d\n\x06\x04\x07\x04\0\x02\r\x12\x04\xf2\
\x01\x06\x16\x1a\r\x20For\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\x02\r\
\x01\x12\x04\xf2\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\r\x02\x12\x04\
\xf2\x01\x13\x15\n\x1f\n\x06\x04\x07\x04\0\x02\x0e\x12\x04\xf4\x01\x06\
\x14\x1a\x0f\x20For\x20C#\x20and\x20F#\n\n\x0f\n\x07\x04\x07\x04\0\x02\
\x0e\x01\x12\x04\xf4\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x0e\x02\
\x12\x04\xf4\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x0f\x12\x04\xf5\
\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x01\x12\x04\xf5\x01\x06\n\
\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x02\x12\x04\xf5\x01\r\x0f\n\x0e\n\x06\
\x04\x07\x04\0\x02\x10\x12\x04\xf6\x01\x06\x16\n\x0f\n\x07\x04\x07\x04\0\
\x02\x10\x01\x12\x04\xf6\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x10\
\x02\x12\x04\xf6\x01\x13\x15\n\x0e\n\x06\x04\x07\x04\0\x02\x11\x12\x04\
\xf7\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x01\x12\x04\xf7\x01\
\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x02\x12\x04\xf7\x01\x0e\x10\n\
\x0e\n\x06\x04\x07\x04\0\x02\x12\x12\x04\xf8\x01\x06\x11\n\x0f\n\x07\x04\
\x07\x04\0\x02\x12\x01\x12\x04\xf8\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\
\x02\x12\x02\x12\x04\xf8\x01\x0e\x10\n\x1b\n\x06\x04\x07\x04\0\x02\x13\
\x12\x04\xfa\x01\x06\x10\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\
\x04\0\x02\x13\x01\x12\x04\xfa\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\
\x13\x02\x12\x04\xfa\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x14\x12\x04\
\xfb\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x14\x01\x12\x04\xfb\x01\
\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x14\x02\x12\x04\xfb\x01\x0e\x10\n\
\x0e\n\x06\x04\x07\x04\0\x02\x15\x12\x04\xfc\x01\x06\x10\n\x0f\n\x07\x04\
\x07\x04\0\x02\x15\x01\x12\x04\xfc\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\
\x02\x15\x02\x12\x04\xfc\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x16\x12\
\x04\xfd\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x16\x01\x12\x04\xfd\
\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x16\x02\x12\x04\xfd\x01\x11\
\x13\n;\n\x06\x04\x07\x04\0\x02\x17\x12\x04\xff\x01\x06\x12\x1a+\x20For\
\x20'get'\x20in\x20Swift,\x20'attr_reader'\x20in\x20Ruby\n\n\x0f\n\x07\
\x04\x07\x04\0\x02\x17\x01\x12\x04\xff\x01\x06\x0c\n\x0f\n\x07\x04\x07\
\x04\0\x02\x17\x02\x12\x04\xff\x01\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x02\
\x18\x12\x04\x81\x02\x06\x13\x1a\n\x20For\x20Raku\n\n\x0f\n\x07\x04\x07\
\x04\0\x02\x18\x01\x12\x04\x81\x02\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\
\x18\x02\x12\x04\x81\x02\x10\x12\n)\n\x06\x04\x07\x04\0\x02\x19\x12\x04\
\x83\x02\x06\x14\x1a\x19\x20For\x20Purescript\x20and\x20Lean\n\n\x0f\n\
\x07\x04\x07\x04\0\x02\x19\x01\x12\x04\x83\x02\x06\x0e\n\x0f\n\x07\x04\
\x07\x04\0\x02\x19\x02\x12\x04\x83\x02\x11\x13\n\x0e\n\x06\x04\x07\x04\0\
\x02\x1a\x12\x04\x84\x02\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x01\
\x12\x04\x84\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x02\x12\x04\
\x84\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02\x1b\x12\x04\x85\x02\x06\
\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x1b\x01\x12\x04\x85\x02\x06\t\n\x0f\n\
\x07\x04\x07\x04\0\x02\x1b\x02\x12\x04\x85\x02\x0c\x0e\n\x1c\n\x06\x04\
\x07\x04\0\x02\x1c\x12\x04\x87\x02\x06\x10\x1a\x0c\x20For\x20Racket\n\n\
\x0f\n\x07\x04\x07\x04\0\x02\x1c\x01\x12\x04\x87\x02\x06\n\n\x0f\n\x07\
\x04\x07\x04\0\x02\x1c\x02\x12\x04\x87\x02\r\x0f\n\x1a\n\x06\x04\x07\x04\
\0\x02\x1d\x12\x04\x89\x02\x06\x11\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\
\x04\x07\x04\0\x02\x1d\x01\x12\x04\x89\x02\x06\x0b\n\x0f\n\x07\x04\x07\
\x04\0\x02\x1d\x02\x12\x04\x89\x02\x0e\x10\n\x1e\n\x06\x04\x07\x04\0\x02\
\x1e\x12\x04\x8b\x02\x06\x13\x1a\x0e\x20For\x20solidity\n\n\x0f\n\x07\
\x04\x07\x04\0\x02\x1e\x01\x12\x04\x8b\x02\x06\r\n\x0f\n\x07\x04\x07\x04\
\0\x02\x1e\x02\x12\x04\x8b\x02\x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02\x1f\
\x12\x04\x8c\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x1f\x01\x12\x04\
\x8c\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x1f\x02\x12\x04\x8c\x02\
\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x20\x12\x04\x8d\x02\x06\x12\n\x0f\
\n\x07\x04\x07\x04\0\x02\x20\x01\x12\x04\x8d\x02\x06\x0c\n\x0f\n\x07\x04\
\x07\x04\0\x02\x20\x02\x12\x04\x8d\x02\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\
\x02!\x12\x04\x8f\x02\x06\x17\x1a\n\x20For\x20Ruby\n\n\x0f\n\x07\x04\x07\
\x04\0\x02!\x01\x12\x04\x8f\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02!\
\x02\x12\x04\x8f\x02\x14\x16\n\x94\x01\n\x06\x04\x07\x04\0\x02\"\x12\x04\
\x92\x02\x06\x1a\x1a\x83\x01\x20Analogous\x20to\x20'ThisParameter'\x20an\
d\x20'SelfParameter',\x20but\x20for\x20languages\n\x20like\x20Go\x20wher\
e\x20the\x20receiver\x20doesn't\x20have\x20a\x20conventional\x20name.\n\
\n\x0f\n\x07\x04\x07\x04\0\x02\"\x01\x12\x04\x92\x02\x06\x14\n\x0f\n\x07\
\x04\x07\x04\0\x02\"\x02\x12\x04\x92\x02\x17\x19\n8\n\x06\x04\x07\x04\0\
\x02#\x12\x04\x94\x02\x06\x1f\x1a(\x20Analogous\x20to\x20'AbstractMethod\
',\x20for\x20Go.\n\n\x0f\n\x07\x04\x07\x04\0\x02#\x01\x12\x04\x94\x02\
\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02#\x02\x12\x04\x94\x02\x1c\x1e\n\
\x1e\n\x06\x04\x07\x04\0\x02$\x12\x04\x96\x02\x06\x13\x1a\x0e\x20For\x20\
Protobuf\n\n\x0f\n\x07\x04\x07\x04\0\x02$\x01\x12\x04\x96\x02\x06\r\n\
\x0f\n\x07\x04\x07\x04\0\x02$\x02\x12\x04\x96\x02\x10\x12\n\x1e\n\x06\
\x04\x07\x04\0\x02%\x12\x04\x98\x02\x06\x14\x1a\x0e\x20For\x20Solidity\n\
\n\x0f\n\x07\x04\x07\x04\0\x02%\x01\x12\x04\x98\x02\x06\x0e\n\x0f\n\x07\
\x04\x07\x04\0\x02%\x02\x12\x04\x98\x02\x11\x13\n\x0e\n\x06\x04\x07\x04\
\0\x02&\x12\x04\x99\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02&\x01\x12\
\x04\x99\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02&\x02\x12\x04\x99\x02\
\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02'\x12\x04\x9a\x02\x06\x15\n\x0f\n\
\x07\x04\x07\x04\0\x02'\x01\x12\x04\x9a\x02\x06\x0f\n\x0f\n\x07\x04\x07\
\x04\0\x02'\x02\x12\x04\x9a\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02(\
\x12\x04\x9b\x02\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02(\x01\x12\x04\x9b\
\x02\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02(\x02\x12\x04\x9b\x02\r\x0f\n\
\x0e\n\x06\x04\x07\x04\0\x02)\x12\x04\x9c\x02\x06\x12\n\x0f\n\x07\x04\
\x07\x04\0\x02)\x01\x12\x04\x9c\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\
\x02)\x02\x12\x04\x9c\x02\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02*\x12\x04\
\x9d\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02*\x01\x12\x04\x9d\x02\x06\
\x0c\n\x0f\n\x07\x04\x07\x04\0\x02*\x02\x12\x04\x9d\x02\x0f\x11\n\x0e\n\
\x06\x04\x07\x04\0\x02+\x12\x04\x9e\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\
\0\x02+\x01\x12\x04\x9e\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02+\x02\
\x12\x04\x9e\x02\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02,\x12\x04\x9f\x02\
\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02,\x01\x12\x04\x9f\x02\x06\r\n\x0f\
\n\x07\x04\x07\x04\0\x02,\x02\x12\x04\x9f\x02\x10\x12\n\x0e\n\x06\x04\
\x07\x04\0\x02-\x12\x04\xa0\x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02-\
\x01\x12\x04\xa0\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02-\x02\x12\x04\
\xa0\x02\x16\x18\n\x0e\n\x06\x04\x07\x04\0\x02.\x12\x04\xa1\x02\x06\x15\
\n\x0f\n\x07\x04\x07\x04\0\x02.\x01\x12\x04\xa1\x02\x06\x0f\n\x0f\n\x07\
\x04\x07\x04\0\x02.\x02\x12\x04\xa1\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\
\0\x02/\x12\x04\xa2\x02\x06\x1a\n\x0f\n\x07\x04\x07\x04\0\x02/\x01\x12\
\x04\xa2\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02/\x02\x12\x04\xa2\x02\
\x17\x19\n/\n\x06\x04\x07\x04\0\x020\x12\x04\xa4\x02\x06\x13\x1a\x1f\x20\
For\x20Haskell's\x20PatternSynonyms\n\n\x0f\n\x07\x04\x07\x04\0\x020\x01\
\x12\x04\xa4\x02\x06\r\n\x0f\n\x07\x04\x07\x04\0\x020\x02\x12\x04\xa4\
\x02\x10\x12\n\x1b\n\x06\x04\x07\x04\0\x021\x12\x04\xa6\x02\x06\x15\x1a\
\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\x04\0\x021\x01\x12\x04\xa6\
\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x021\x02\x12\x04\xa6\x02\x12\x14\
\n\x0e\n\x06\x04\x07\x04\0\x022\x12\x04\xa7\x02\x06\x14\n\x0f\n\x07\x04\
\x07\x04\0\x022\x01\x12\x04\xa7\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\
\x022\x02\x12\x04\xa7\x02\x11\x13\nQ\n\x06\x04\x07\x04\0\x023\x12\x04\
\xa9\x02\x06\x14\x1aA\x20Analogous\x20to\x20'Trait'\x20and\x20'TypeClass\
',\x20for\x20Swift\x20and\x20Objective-C\n\n\x0f\n\x07\x04\x07\x04\0\x02\
3\x01\x12\x04\xa9\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x023\x02\x12\x04\
\xa9\x02\x11\x13\nK\n\x06\x04\x07\x04\0\x024\x12\x04\xab\x02\x06\x1a\x1a\
;\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20Swift\x20and\x20Obje\
ctive-C.\n\n\x0f\n\x07\x04\x07\x04\0\x024\x01\x12\x04\xab\x02\x06\x14\n\
\x0f\n\x07\x04\x07\x04\0\x024\x02\x12\x04\xab\x02\x17\x19\n9\n\x06\x04\
\x07\x04\0\x025\x12\x04\xad\x02\x06\x1d\x1a)\x20Analogous\x20to\x20'Abst\
ractMethod',\x20for\x20C++.\n\n\x0f\n\x07\x04\x07\x04\0\x025\x01\x12\x04\
\xad\x02\x06\x17\n\x0f\n\x07\x04\x07\x04\0\x025\x02\x12\x04\xad\x02\x1a\
\x1c\n\x1d\n\x06\x04\x07\x04\0\x026\x12\x04\xaf\x02\x06\x17\x1a\r\x20For\
\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\x026\x01\x12\x04\xaf\x02\x06\x11\
\n\x0f\n\x07\x04\x07\x04\0\x026\x02\x12\x04\xaf\x02\x14\x16\n4\n\x06\x04\
\x07\x04\0\x027\x12\x04\xb1\x02\x06\x19\x1a$\x20'self'\x20in\x20Python,\
\x20Rust,\x20Swift\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x027\x01\x12\x04\
\xb1\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x027\x02\x12\x04\xb1\x02\x16\
\x18\n;\n\x06\x04\x07\x04\0\x028\x12\x04\xb3\x02\x06\x12\x1a+\x20For\x20\
'set'\x20in\x20Swift,\x20'attr_writer'\x20in\x20Ruby\n\n\x0f\n\x07\x04\
\x07\x04\0\x028\x01\x12\x04\xb3\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\
\x028\x02\x12\x04\xb3\x02\x0f\x11\n3\n\x06\x04\x07\x04\0\x029\x12\x04\
\xb5\x02\x06\x15\x1a#\x20For\x20Alloy,\x20analogous\x20to\x20'Struct'.\n\
\n\x0f\n\x07\x04\x07\x04\0\x029\x01\x12\x04\xb5\x02\x06\x0f\n\x0f\n\x07\
\x04\x07\x04\0\x029\x02\x12\x04\xb5\x02\x12\x14\n\x1a\n\x06\x04\x07\x04\
\0\x02:\x12\x04\xb7\x02\x06\x1a\x1a\n\x20For\x20Ruby\n\n\x0f\n\x07\x04\
\x07\x04\0\x02:\x01\x12\x04\xb7\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\
\x02:\x02\x12\x04\xb7\x02\x17\x19\n8\n\x06\x04\x07\x04\0\x02;\x12\x04\
\xb9\x02\x06\x1b\x1a(\x20Analogous\x20to\x20'StaticMethod',\x20for\x20Ru\
by.\n\n\x0f\n\x07\x04\x07\x04\0\x02;\x01\x12\x04\xb9\x02\x06\x15\n\x0f\n\
\x07\x04\x07\x04\0\x02;\x02\x12\x04\xb9\x02\x18\x1a\n5\n\x06\x04\x07\x04\
\0\x02<\x12\x04\xbb\x02\x06\x1c\x1a%\x20Analogous\x20to\x20'StaticField'\
,\x20for\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\x02<\x01\x12\x04\xbb\x02\x06\
\x16\n\x0f\n\x07\x04\x07\x04\0\x02<\x02\x12\x04\xbb\x02\x19\x1b\n\x18\n\
\x06\x04\x07\x04\0\x02=\x12\x04\xbd\x02\x06\x17\x1a\x08\x20For\x20C#\n\n\
\x0f\n\x07\x04\x07\x04\0\x02=\x01\x12\x04\xbd\x02\x06\x11\n\x0f\n\x07\
\x04\x07\x04\0\x02=\x02\x12\x04\xbd\x02\x14\x16\n\x18\n\x06\x04\x07\x04\
\0\x02>\x12\x04\xbf\x02\x06\x17\x1a\x08\x20For\x20C#\n\n\x0f\n\x07\x04\
\x07\x04\0\x02>\x01\x12\x04\xbf\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\
\x02>\x02\x12\x04\xbf\x02\x14\x16\n(\n\x06\x04\x07\x04\0\x02?\x12\x04\
\xc1\x02\x06\x18\x1a\x18\x20For\x20Java,\x20C#,\x20C++\x20etc.\n\n\x0f\n\
\x07\x04\x07\x04\0\x02?\x01\x12\x04\xc1\x02\x06\x12\n\x0f\n\x07\x04\x07\
\x04\0\x02?\x02\x12\x04\xc1\x02\x15\x17\n)\n\x06\x04\x07\x04\0\x02@\x12\
\x04\xc3\x02\x06\x1a\x1a\x19\x20For\x20C#,\x20TypeScript\x20etc.\n\n\x0f\
\n\x07\x04\x07\x04\0\x02@\x01\x12\x04\xc3\x02\x06\x14\n\x0f\n\x07\x04\
\x07\x04\0\x02@\x02\x12\x04\xc3\x02\x17\x19\n\x1c\n\x06\x04\x07\x04\0\
\x02A\x12\x04\xc5\x02\x06\x1a\x1a\x0c\x20For\x20C,\x20C++\n\n\x0f\n\x07\
\x04\x07\x04\0\x02A\x01\x12\x04\xc5\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\
\0\x02A\x02\x12\x04\xc5\x02\x17\x19\n\x0e\n\x06\x04\x07\x04\0\x02B\x12\
\x04\xc6\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02B\x01\x12\x04\xc6\x02\
\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02B\x02\x12\x04\xc6\x02\x0f\x11\n\
\x0e\n\x06\x04\x07\x04\0\x02C\x12\x04\xc7\x02\x06\x12\n\x0f\n\x07\x04\
\x07\x04\0\x02C\x01\x12\x04\xc7\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\
\x02C\x02\x12\x04\xc7\x02\x0f\x11\n\x1b\n\x06\x04\x07\x04\0\x02D\x12\x04\
\xc9\x02\x06\x15\x1a\x0b\x20For\x20Swift\n\n\x0f\n\x07\x04\x07\x04\0\x02\
D\x01\x12\x04\xc9\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02D\x02\x12\x04\
\xc9\x02\x12\x14\n\x1a\n\x06\x04\x07\x04\0\x02E\x12\x04\xcb\x02\x06\x12\
\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02E\x01\x12\x04\xcb\
\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02E\x02\x12\x04\xcb\x02\x0f\x11\
\n\x1a\n\x06\x04\x07\x04\0\x02F\x12\x04\xcd\x02\x06\x13\x1a\n\x20For\x20\
Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02F\x01\x12\x04\xcd\x02\x06\r\n\x0f\n\
\x07\x04\x07\x04\0\x02F\x02\x12\x04\xcd\x02\x10\x12\nU\n\x06\x04\x07\x04\
\0\x02G\x12\x04\xd0\x02\x06\x19\x1aE\x20Method\x20receiver\x20for\x20lan\
guages\n\x20'this'\x20in\x20JavaScript,\x20C++,\x20Java\x20etc.\n\n\x0f\
\n\x07\x04\x07\x04\0\x02G\x01\x12\x04\xd0\x02\x06\x13\n\x0f\n\x07\x04\
\x07\x04\0\x02G\x02\x12\x04\xd0\x02\x16\x18\nO\n\x06\x04\x07\x04\0\x02H\
\x12\x04\xd2\x02\x06\x11\x1a?\x20Analogous\x20to\x20'Protocol'\x20and\
\x20'TypeClass',\x20for\x20Rust,\x20Scala\x20etc.\n\n\x0f\n\x07\x04\x07\
\x04\0\x02H\x01\x12\x04\xd2\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02H\
\x02\x12\x04\xd2\x02\x0e\x10\nE\n\x06\x04\x07\x04\0\x02I\x12\x04\xd4\x02\
\x06\x17\x1a5\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20Rust,\
\x20Scala\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02I\x01\x12\x04\xd4\x02\
\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02I\x02\x12\x04\xd4\x02\x14\x16\n\
\x89\x01\n\x06\x04\x07\x04\0\x02J\x12\x04\xd7\x02\x06\x10\x1ay\x20Data\
\x20type\x20definition\x20for\x20languages\x20like\x20OCaml\x20which\x20\
use\x20`type`\n\x20rather\x20than\x20separate\x20keywords\x20like\x20`st\
ruct`\x20and\x20`enum`.\n\n\x0f\n\x07\x04\x07\x04\0\x02J\x01\x12\x04\xd7\
\x02\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02J\x02\x12\x04\xd7\x02\r\x0f\n\
\x0e\n\x06\x04\x07\x04\0\x02K\x12\x04\xd8\x02\x06\x15\n\x0f\n\x07\x04\
\x07\x04\0\x02K\x01\x12\x04\xd8\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\
\x02K\x02\x12\x04\xd8\x02\x12\x14\nS\n\x06\x04\x07\x04\0\x02L\x12\x04\
\xda\x02\x06\x15\x1aC\x20Analogous\x20to\x20'Trait'\x20and\x20'Protocol'\
,\x20for\x20Haskell,\x20Purescript\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\
\x02L\x01\x12\x04\xda\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02L\x02\x12\
\x04\xda\x02\x12\x14\nM\n\x06\x04\x07\x04\0\x02M\x12\x04\xdc\x02\x06\x1b\
\x1a=\x20Analogous\x20to\x20'AbstractMethod',\x20for\x20Haskell,\x20Pure\
script\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02M\x01\x12\x04\xdc\x02\x06\
\x15\n\x0f\n\x07\x04\x07\x04\0\x02M\x02\x12\x04\xdc\x02\x18\x1a\n\x1d\n\
\x06\x04\x07\x04\0\x02N\x12\x04\xde\x02\x06\x16\x1a\r\x20For\x20Haskell\
\n\n\x0f\n\x07\x04\x07\x04\0\x02N\x01\x12\x04\xde\x02\x06\x10\n\x0f\n\
\x07\x04\x07\x04\0\x02N\x02\x12\x04\xde\x02\x13\x15\n\x0e\n\x06\x04\x07\
\x04\0\x02O\x12\x04\xdf\x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02O\x01\
\x12\x04\xdf\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02O\x02\x12\x04\xdf\
\x02\x16\x18\n(\n\x06\x04\x07\x04\0\x02P\x12\x04\xe1\x02\x06\x11\x1a\x18\
\x20For\x20C,\x20C++,\x20Capn\x20Proto\n\n\x0f\n\x07\x04\x07\x04\0\x02P\
\x01\x12\x04\xe1\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02P\x02\x12\x04\
\xe1\x02\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02Q\x12\x04\xe2\x02\x06\x11\
\n\x0f\n\x07\x04\x07\x04\0\x02Q\x01\x12\x04\xe2\x02\x06\x0b\n\x0f\n\x07\
\x04\x07\x04\0\x02Q\x02\x12\x04\xe2\x02\x0e\x10\n[\n\x06\x04\x07\x04\0\
\x02R\x12\x04\xe3\x02\x06\x14\"K\x20Next\x20=\x2083;\n\x20Feel\x20free\
\x20to\x20open\x20a\x20PR\x20proposing\x20new\x20language-specific\x20ki\
nds.\n\n\x0f\n\x07\x04\x07\x04\0\x02R\x01\x12\x04\xe3\x02\x06\x0e\n\x0f\
\n\x07\x04\x07\x04\0\x02R\x02\x12\x04\xe3\x02\x11\x13\n\xf3\x03\n\x04\
\x04\x07\x02\x04\x12\x04\xf0\x02\x02\x1a\x1a\xe4\x03\x20(optional)\x20Th\
e\x20name\x20of\x20this\x20symbol\x20as\x20it\x20should\x20be\x20display\
ed\x20to\x20the\x20user.\n\x20For\x20example,\x20the\x20symbol\x20\"com/\
example/MyClass#myMethod(+1).\"\x20should\x20have\x20the\n\x20display\
\x20name\x20\"myMethod\".\x20The\x20`symbol`\x20field\x20is\x20not\x20a\
\x20reliable\x20source\x20of\n\x20the\x20display\x20name\x20for\x20sever\
al\x20reasons:\n\n\x20-\x20Local\x20symbols\x20don't\x20encode\x20the\
\x20name.\n\x20-\x20Some\x20languages\x20have\x20case-insensitive\x20nam\
es,\x20so\x20the\x20symbol\x20is\x20all-lowercase.\n\x20-\x20The\x20symb\
ol\x20may\x20encode\x20names\x20with\x20special\x20characters\x20that\
\x20should\x20not\x20be\n\x20\x20\x20displayed\x20to\x20the\x20user.\n\n\
\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xf0\x02\x02\x08\n\r\n\x05\x04\x07\
\x02\x04\x01\x12\x04\xf0\x02\t\x15\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\
\xf0\x02\x18\x19\n\xc4\x03\n\x04\x04\x07\x02\x05\x12\x04\xf7\x02\x02'\
\x1a\xb5\x03\x20(optional)\x20The\x20signature\x20of\x20this\x20symbol\
\x20as\x20it's\x20displayed\x20in\x20API\n\x20documentation\x20or\x20in\
\x20hover\x20tooltips.\x20For\x20example,\x20a\x20Java\x20method\x20that\
\x20adds\n\x20two\x20numbers\x20this\x20would\x20have\x20`Document.langu\
age\x20=\x20\"java\"`\x20and\x20`Document.text\n\x20=\x20\"void\x20add(i\
nt\x20a,\x20int\x20b)\".\x20The\x20`language`\x20and\x20`text`\x20fields\
\x20are\x20required\n\x20while\x20other\x20fields\x20such\x20as\x20`Docu\
mentation.occurrences`\x20can\x20be\x20optionally\n\x20included\x20to\
\x20support\x20hyperlinking\x20referenced\x20symbols\x20in\x20the\x20sig\
nature.\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\xf7\x02\x02\n\n\r\n\x05\
\x04\x07\x02\x05\x01\x12\x04\xf7\x02\x0b\"\n\r\n\x05\x04\x07\x02\x05\x03\
\x12\x04\xf7\x02%&\n\xc9\x08\n\x04\x04\x07\x02\x06\x12\x04\x89\x03\x02\
\x1e\x1a\xba\x08\x20(optional)\x20The\x20enclosing\x20symbol\x20if\x20th\
is\x20is\x20a\x20local\x20symbol.\x20\x20For\x20non-local\n\x20symbols,\
\x20the\x20enclosing\x20symbol\x20should\x20be\x20parsed\x20from\x20the\
\x20`symbol`\x20field\n\x20using\x20the\x20`Descriptor`\x20grammar.\n\n\
\x20The\x20primary\x20use-case\x20for\x20this\x20field\x20is\x20to\x20al\
low\x20local\x20symbol\x20to\x20be\x20displayed\n\x20in\x20a\x20symbol\
\x20hierarchy\x20for\x20API\x20documentation.\x20It's\x20OK\x20to\x20lea\
ve\x20this\x20field\n\x20empty\x20for\x20local\x20variables\x20since\x20\
local\x20variables\x20usually\x20don't\x20belong\x20in\x20API\n\x20docum\
entation.\x20However,\x20in\x20the\x20situation\x20that\x20you\x20wish\
\x20to\x20include\x20a\x20local\n\x20symbol\x20in\x20the\x20hierarchy,\
\x20then\x20you\x20can\x20use\x20`enclosing_symbol`\x20to\x20locate\x20t\
he\n\x20\"parent\"\x20or\x20\"owner\"\x20of\x20this\x20local\x20symbol.\
\x20For\x20example,\x20a\x20Java\x20indexer\x20may\n\x20choose\x20to\x20\
use\x20local\x20symbols\x20for\x20private\x20class\x20fields\x20while\
\x20providing\x20an\n\x20`enclosing_symbol`\x20to\x20reference\x20the\
\x20enclosing\x20class\x20to\x20allow\x20the\x20field\x20to\n\x20be\x20p\
art\x20of\x20the\x20class\x20documentation\x20hierarchy.\x20From\x20the\
\x20perspective\x20of\x20an\n\x20author\x20of\x20an\x20indexer,\x20the\
\x20decision\x20to\x20use\x20a\x20local\x20symbol\x20or\x20global\x20sym\
bol\n\x20should\x20exclusively\x20be\x20determined\x20whether\x20the\x20\
local\x20symbol\x20is\x20accessible\n\x20outside\x20the\x20document,\x20\
not\x20by\x20the\x20capability\x20to\x20find\x20the\x20enclosing\n\x20sy\
mbol.\n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\x89\x03\x02\x08\n\r\n\x05\
\x04\x07\x02\x06\x01\x12\x04\x89\x03\t\x19\n\r\n\x05\x04\x07\x02\x06\x03\
\x12\x04\x89\x03\x1c\x1d\n\x0c\n\x02\x04\x08\x12\x06\x8d\x03\0\xc5\x03\
\x01\n\x0b\n\x03\x04\x08\x01\x12\x04\x8d\x03\x08\x14\n\x0c\n\x04\x04\x08\
\x02\0\x12\x04\x8e\x03\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\x8e\
\x03\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\x8e\x03\t\x0f\n\r\n\x05\
\x04\x08\x02\0\x03\x12\x04\x8e\x03\x12\x13\n\xde\x08\n\x04\x04\x08\x02\
\x01\x12\x04\xa7\x03\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\
\x20references\",\x20this\x20field\x20documents\x20what\x20other\x20symb\
ols\n\x20should\x20be\x20included\x20together\x20with\x20this\x20symbol.\
\x20For\x20example,\x20consider\x20the\n\x20following\x20TypeScript\x20c\
ode\x20that\x20defines\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\x20Anima\
l#sound()\n\x20}\n\x20class\x20Dog\x20implements\x20Animal\x20{\n\x20\
\x20\x20\x20\x20\x20\x20^^^\x20definition\x20Dog#,\x20relationships\x20=\
\x20[{symbol:\x20\"Animal#\",\x20is_implementation:\x20true}]\n\x20\x20\
\x20public\x20sound():\x20string\x20{\x20return\x20\"woof\"\x20}\n\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20definition\x20Dog#sound(),\
\x20references_symbols\x20=\x20Animal#sound(),\x20relationships\x20=\x20\
[{symbol:\x20\"Animal#sound()\",\x20is_implementation:true,\x20is_refere\
nce:\x20true}]\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\x20refere\
nces\"\x20on\x20the\x20symbol\x20`Animal#sound()`\x20should\x20return\n\
\x20references\x20to\x20the\x20`Dog#sound()`\x20method\x20as\x20well.\
\x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\x20on\x20the\x20`Do\
g#sound()`\x20method\x20should\x20include\x20references\x20to\x20the\n\
\x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\x05\x04\x08\x02\
\x01\x05\x12\x04\xa7\x03\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\
\xa7\x03\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xa7\x03\x16\x17\n\
\xee\x03\n\x04\x04\x08\x02\x02\x12\x04\xb0\x03\x02\x1d\x1a\xdf\x03\x20Si\
milar\x20to\x20`is_reference`\x20but\x20for\x20\"Find\x20implementations\
\".\n\x20It's\x20common\x20for\x20`is_implementation`\x20and\x20`is_refe\
rence`\x20to\x20both\x20be\x20true\x20but\n\x20it's\x20not\x20always\x20\
the\x20case.\n\x20In\x20the\x20TypeScript\x20example\x20above,\x20observ\
e\x20that\x20`Dog#`\x20has\x20an\n\x20`is_implementation`\x20relationshi\
p\x20with\x20`\"Animal#\"`\x20but\x20not\x20`is_reference`.\n\x20This\
\x20is\x20because\x20\"Find\x20references\"\x20on\x20the\x20\"Animal#\"\
\x20symbol\x20should\x20not\x20return\n\x20\"Dog#\".\x20We\x20only\x20wa\
nt\x20\"Dog#\"\x20to\x20return\x20as\x20a\x20result\x20for\x20\"Find\n\
\x20implementations\"\x20on\x20the\x20\"Animal#\"\x20symbol.\n\n\r\n\x05\
\x04\x08\x02\x02\x05\x12\x04\xb0\x03\x02\x06\n\r\n\x05\x04\x08\x02\x02\
\x01\x12\x04\xb0\x03\x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xb0\
\x03\x1b\x1c\nP\n\x04\x04\x08\x02\x03\x12\x04\xb2\x03\x02\x1e\x1aB\x20Si\
milar\x20to\x20`references_symbols`\x20but\x20for\x20\"Go\x20to\x20type\
\x20definition\".\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xb2\x03\x02\
\x06\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xb2\x03\x07\x19\n\r\n\x05\x04\
\x08\x02\x03\x03\x12\x04\xb2\x03\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\
\x12\x04\xc3\x03\x02\x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20b\
ehavior\x20of\x20\"Go\x20to\x20definition\"\x20and\x20\"Find\x20referenc\
es\"\n\x20for\x20symbols\x20which\x20do\x20not\x20have\x20a\x20definitio\
n\x20of\x20their\x20own\x20or\x20could\n\x20potentially\x20have\x20multi\
ple\x20definitions.\n\n\x20For\x20example,\x20in\x20a\x20language\x20wit\
h\x20single\x20inheritance\x20and\x20no\x20field\x20overriding,\n\x20inh\
erited\x20fields\x20can\x20reuse\x20the\x20same\x20symbol\x20as\x20the\
\x20ancestor\x20which\x20declares\n\x20the\x20field.\x20In\x20such\x20a\
\x20situation,\x20is_definition\x20is\x20not\x20needed.\n\n\x20On\x20the\
\x20other\x20hand,\x20in\x20languages\x20with\x20single\x20inheritance\
\x20and\x20some\x20form\n\x20of\x20mixins,\x20you\x20can\x20use\x20is_de\
finition\x20to\x20relate\x20the\x20symbol\x20to\x20the\n\x20matching\x20\
symbol\x20in\x20ancestor\x20classes,\x20and\x20is_reference\x20to\x20rel\
ate\x20the\n\x20symbol\x20to\x20the\x20matching\x20symbol\x20in\x20mixin\
s.\n\n\x20NOTE:\x20At\x20the\x20moment,\x20due\x20to\x20limitations\x20o\
f\x20the\x20SCIP\x20to\x20LSIF\x20conversion,\n\x20only\x20global\x20sym\
bols\x20in\x20an\x20index\x20are\x20allowed\x20to\x20use\x20is_definitio\
n.\n\x20The\x20relationship\x20may\x20not\x20get\x20recorded\x20if\x20ei\
ther\x20symbol\x20is\x20local.\n\"A\x20Update\x20registerInverseRelation\
ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\
\x02\x04\x05\x12\x04\xc3\x03\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\
\x04\xc3\x03\x07\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xc3\x03\x17\
\x18\n\x88\x03\n\x02\x05\x02\x12\x06\xcc\x03\0\xe2\x03\x01\x1a\xf9\x02\
\x20SymbolRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20\
in\x20an\x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bi\
tset\x20where\x20each\x20bit\x20represents\x20a\x20different\x20role.\
\x20For\x20example,\n\x20to\x20determine\x20if\x20the\x20`Import`\x20rol\
e\x20is\x20set,\x20test\x20whether\x20the\x20second\x20bit\x20of\x20the\
\n\x20enum\x20value\x20is\x20defined.\x20In\x20pseudocode,\x20this\x20ca\
n\x20be\x20implemented\x20with\x20the\n\x20logic:\x20`const\x20isImportR\
ole\x20=\x20(role.value\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\
\x0b\n\x03\x05\x02\x01\x12\x04\xcc\x03\x05\x0f\nv\n\x04\x05\x02\x02\0\
\x12\x04\xcf\x03\x02\x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20t\
o\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\xcf\x03\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\
\xcf\x03\x1a\x1b\nT\n\x04\x05\x02\x02\x01\x12\x04\xd1\x03\x02\x13\x1aF\
\x20Is\x20the\x20symbol\x20defined\x20here?\x20If\x20not,\x20then\x20thi\
s\x20is\x20a\x20symbol\x20reference.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\
\x04\xd1\x03\x02\x0c\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xd1\x03\x0f\
\x12\n,\n\x04\x05\x02\x02\x02\x12\x04\xd3\x03\x02\x0f\x1a\x1e\x20Is\x20t\
he\x20symbol\x20imported\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\
\x04\xd3\x03\x02\x08\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xd3\x03\x0b\
\x0e\n+\n\x04\x05\x02\x02\x03\x12\x04\xd5\x03\x02\x14\x1a\x1d\x20Is\x20t\
he\x20symbol\x20written\x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\
\xd5\x03\x02\r\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\xd5\x03\x10\x13\n(\
\n\x04\x05\x02\x02\x04\x12\x04\xd7\x03\x02\x13\x1a\x1a\x20Is\x20the\x20s\
ymbol\x20read\x20here?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\xd7\x03\
\x02\x0c\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\xd7\x03\x0f\x12\n0\n\x04\
\x05\x02\x02\x05\x12\x04\xd9\x03\x02\x13\x1a\"\x20Is\x20the\x20symbol\
\x20in\x20generated\x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\xd9\
\x03\x02\x0b\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\xd9\x03\x0e\x12\n+\n\
\x04\x05\x02\x02\x06\x12\x04\xdb\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20sym\
bol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\xdb\
\x03\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\x04\xdb\x03\t\r\n\xed\x01\
\n\x04\x05\x02\x02\x07\x12\x04\xe1\x03\x02\x1b\x1a\xde\x01\x20Is\x20this\
\x20a\x20signature\x20for\x20a\x20symbol\x20that\x20is\x20defined\x20els\
ewhere?\n\n\x20Applies\x20to\x20forward\x20declarations\x20for\x20langua\
ges\x20like\x20C,\x20C++\n\x20and\x20Objective-C,\x20as\x20well\x20as\
\x20`val`\x20declarations\x20in\x20interface\n\x20files\x20in\x20languag\
es\x20like\x20SML\x20and\x20OCaml.\n\n\r\n\x05\x05\x02\x02\x07\x01\x12\
\x04\xe1\x03\x02\x13\n\r\n\x05\x05\x02\x02\x07\x02\x12\x04\xe1\x03\x16\
\x1a\n\x0c\n\x02\x05\x03\x12\x06\xe4\x03\0\xc1\x04\x01\n\x0b\n\x03\x05\
\x03\x01\x12\x04\xe4\x03\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\x04\xe5\x03\
\x02\x1c\n\x0c\n\x04\x05\x03\x03\x02\x12\x04\xe5\x03\x02\x1c\n\x0c\n\x04\
\x05\x03\x02\0\x12\x04\xe7\x03\x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\
\x04\xe7\x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\xe7\x03\x1a\x1b\
\n;\n\x04\x05\x03\x02\x01\x12\x04\xea\x03\x02\x0e\x1a-\x20Comment,\x20in\
cluding\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\
\x01\x12\x04\xea\x03\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\xea\x03\
\x0c\r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\xed\x03\x02\x1b\x1a\r\x20`;`\
\x20`.`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xed\x03\x02\x16\n\
\r\n\x05\x05\x03\x02\x02\x02\x12\x04\xed\x03\x19\x1a\n2\n\x04\x05\x03\
\x02\x03\x12\x04\xef\x03\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20use\
d\x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\xef\x03\x02\
\x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\xef\x03\x17\x18\n5\n\x04\x05\
\x03\x02\x04\x12\x04\xf2\x03\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\
`,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\xf2\x03\
\x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\xf2\x03\x0c\r\n\x0c\n\x04\
\x05\x03\x02\x05\x12\x04\xf3\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\
\x04\xf3\x03\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\xf3\x03\x16\
\x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\xf3\x03\x18)\n\x0e\n\x06\x05\
\x03\x02\x05\x03\x01\x12\x04\xf3\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\
\x12\x04\xf6\x03\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\
\x03\x02\x06\x01\x12\x04\xf6\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\
\x12\x04\xf6\x03\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\x04\xf9\x03\x02\
\x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20identifier\x20no\
t\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\
\x12\x04\xf9\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xf9\x03\
\x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\xfb\x03\x02\x18\x1a@\x20Identi\
fiers\x20builtin\x20to\x20the\x20language:\x20`min`,\x20`print`\x20in\
\x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\xfb\x03\x02\x13\n\r\
\n\x05\x05\x03\x02\x08\x02\x12\x04\xfb\x03\x16\x17\n[\n\x04\x05\x03\x02\
\t\x12\x04\xfd\x03\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\
-like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\
\n\x05\x05\x03\x02\t\x01\x12\x04\xfd\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\
\x02\x12\x04\xfd\x03\x13\x14\n.\n\x04\x05\x03\x02\n\x12\x04\xff\x03\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\xff\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\
\x02\x12\x04\xff\x03\x17\x18\n'\n\x04\x05\x03\x02\x0b\x12\x04\x81\x04\
\x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\
\x05\x03\x02\x0b\x01\x12\x04\x81\x04\x02\x19\n\r\n\x05\x05\x03\x02\x0b\
\x02\x12\x04\x81\x04\x1c\x1e\n3\n\x04\x05\x03\x02\x0c\x12\x04\x83\x04\
\x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20references\n\n\r\n\
\x05\x05\x03\x02\x0c\x01\x12\x04\x83\x04\x02\x15\n\r\n\x05\x05\x03\x02\
\x0c\x02\x12\x04\x83\x04\x18\x1a\nX\n\x04\x05\x03\x02\r\x12\x04\x85\x04\
\x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20definitions\x20and\
\x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\x05\x03\x02\
\r\x01\x12\x04\x85\x04\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\x12\x04\x85\
\x04\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\x87\x04\x02\x1a\x1a=\x20Id\
entifiers\x20that\x20shadow\x20other\x20identifiers\x20in\x20an\x20outer\
\x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\x87\x04\x02\x14\n\r\n\
\x05\x05\x03\x02\x0e\x02\x12\x04\x87\x04\x17\x19\n\xcd\x01\n\x04\x05\x03\
\x02\x0f\x12\x04\x8c\x04\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\
ng\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\
\n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20\
and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\x20languages\x20l\
ike\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\
\x04\x8c\x04\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\x12\x04\x8c\x04\x18\
\x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\x8d\x04\x02*\n\r\n\x05\x05\x03\
\x02\x10\x01\x12\x04\x8d\x04\x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\
\x04\x8d\x04\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\x12\x04\x8d\x04\x18)\
\n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\x8d\x04\x19(\n4\n\x04\x05\
\x03\x02\x11\x12\x04\x90\x04\x02\x1a\x1a&\x20Function\x20references,\x20\
including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\x12\x04\x90\x04\x02\
\x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\x90\x04\x17\x19\n(\n\x04\x05\
\x03\x02\x12\x12\x04\x92\x04\x02$\x1a\x1a\x20Function\x20definition\x20o\
nly\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\x92\x04\x02\x1e\n\r\n\x05\
\x05\x03\x02\x12\x02\x12\x04\x92\x04!#\n7\n\x04\x05\x03\x02\x13\x12\x04\
\x95\x04\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\
s\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\x95\x04\x02\x11\n\r\n\x05\x05\
\x03\x02\x13\x02\x12\x04\x95\x04\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\
\x04\x97\x04\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\
\x03\x02\x14\x01\x12\x04\x97\x04\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\
\x12\x04\x97\x04\x1e\x20\n!\n\x04\x05\x03\x02\x15\x12\x04\x9a\x04\x02\
\x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\
\x04\x9a\x04\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\x12\x04\x9a\x04\x13\
\x15\nK\n\x04\x05\x03\x02\x16\x12\x04\x9c\x04\x02\x1d\x1a=\x20builtin\
\x20types\x20only,\x20such\x20as\x20`str`\x20for\x20Python\x20or\x20`int\
`\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\x04\x9c\x04\x02\x17\n\
\r\n\x05\x05\x03\x02\x16\x02\x12\x04\x9c\x04\x1a\x1c\n7\n\x04\x05\x03\
\x02\x17\x12\x04\x9f\x04\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\
\x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\x12\x04\x9f\x04\x02\
\x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\x9f\x04\x18\x1a\n\x14\n\x04\
\x05\x03\x02\x18\x12\x04\xa2\x04\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\
\x05\x03\x02\x18\x01\x12\x04\xa2\x04\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\
\x12\x04\xa2\x04\x10\x12\n\x18\n\x04\x05\x03\x02\x19\x12\x04\xa4\x04\x02\
\x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xa4\
\x04\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\xa4\x04\x12\x14\n\x13\
\n\x04\x05\x03\x02\x1a\x12\x04\xa6\x04\x02\x15\x1a\x05\x20`.`\n\n\r\n\
\x05\x05\x03\x02\x1a\x01\x12\x04\xa6\x04\x02\x0f\n\r\n\x05\x05\x03\x02\
\x1a\x02\x12\x04\xa6\x04\x12\x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xa8\
\x04\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\
\x02\x1b\x01\x12\x04\xa8\x04\x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\
\x04\xa8\x04\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\xaa\x04\x02\x11\
\x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\x12\x04\xaa\x04\
\x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xaa\x04\x0e\x10\n0\n\x04\
\x05\x03\x02\x1d\x12\x04\xad\x04\x02\x15\x1a\"\x20Literal\x20strings:\
\x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\x12\x04\xad\x04\
\x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xad\x04\x12\x14\n-\n\x04\
\x05\x03\x02\x1e\x12\x04\xaf\x04\x02\x1b\x1a\x1f\x20non-regex\x20escapes\
:\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xaf\x04\
\x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xaf\x04\x18\x1a\n_\n\x04\
\x05\x03\x02\x1f\x12\x04\xb1\x04\x02\x1c\x1aQ\x20datetimes\x20within\x20\
strings,\x20special\x20words\x20within\x20a\x20string,\x20`{}`\x20in\x20\
format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\x12\x04\xb1\x04\x02\
\x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xb1\x04\x19\x1b\nG\n\x04\x05\
\x03\x02\x20\x12\x04\xb3\x04\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\xb3\x04\x02\x12\n\r\n\x05\x05\x03\x02\
\x20\x02\x12\x04\xb3\x04\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xb5\x04\
\x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20languages\x20that\x20dif\
ferentiate\x20strings\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\
\x12\x04\xb5\x04\x02\x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xb5\x04\x15\
\x17\n9\n\x04\x05\x03\x02\"\x12\x04\xb7\x04\x02\x16\x1a+\x20Literal\x20n\
umbers,\x20both\x20floats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\
\x01\x12\x04\xb7\x04\x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xb7\x04\
\x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xb9\x04\x02\x16\x1a\x11\x20`tr\
ue`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\x04\xb9\x04\x02\x10\n\r\
\n\x05\x05\x03\x02#\x02\x12\x04\xb9\x04\x13\x15\n&\n\x04\x05\x03\x02$\
\x12\x04\xbc\x04\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\
\r\n\x05\x05\x03\x02$\x01\x12\x04\xbc\x04\x02\x05\n\r\n\x05\x05\x03\x02$\
\x02\x12\x04\xbc\x04\x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xbe\x04\x02\x14\
\x1a!\x20Attribute\x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\
\x02%\x01\x12\x04\xbe\x04\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xbe\
\x04\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\xc0\x04\x02\x14\x1a\x1e\x20De\
limiters\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\
\xc0\x04\x02\x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xc0\x04\x11\x13\n\
\xf9\x01\n\x02\x04\t\x12\x06\xc8\x04\0\x97\x05\x01\x1a\xea\x01\x20Occurr\
ence\x20associates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20\
and/or\x20highlighting\n\x20information.\n\n\x20If\x20possible,\x20index\
ers\x20should\x20try\x20to\x20bundle\x20logically\x20related\x20informat\
ion\n\x20across\x20occurrences\x20into\x20a\x20single\x20occurrence\x20t\
o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xc8\x04\
\x08\x12\n\xc6\x07\n\x04\x04\t\x02\0\x12\x04\xdb\x04\x02\x1b\x1a\xb7\x07\
\x20Source\x20position\x20of\x20this\x20occurrence.\x20Must\x20be\x20exa\
ctly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\
\x20`[startLine,\x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\
\x20Three\x20elements:\x20`[startLine,\x20startCharacter,\x20endCharacte\
r]`.\x20The\x20end\x20line\n\x20\x20\x20is\x20inferred\x20to\x20have\x20\
the\x20same\x20value\x20as\x20the\x20start\x20line.\n\n\x20Line\x20numbe\
rs\x20and\x20characters\x20are\x20always\x200-based.\x20Make\x20sure\x20\
to\x20increment\x20the\n\x20line/character\x20values\x20before\x20displa\
ying\x20them\x20in\x20an\x20editor-like\x20UI\x20because\n\x20editors\
\x20conventionally\x20use\x201-based\x20numbers.\n\n\x20Historical\x20no\
te:\x20the\x20original\x20draft\x20of\x20this\x20schema\x20had\x20a\x20`\
Range`\x20message\n\x20type\x20with\x20`start`\x20and\x20`end`\x20fields\
\x20of\x20type\x20`Position`,\x20mirroring\x20LSP.\n\x20Benchmarks\x20re\
vealed\x20that\x20this\x20encoding\x20was\x20inefficient\x20and\x20that\
\x20we\x20could\n\x20reduce\x20the\x20total\x20payload\x20size\x20of\x20\
an\x20index\x20by\x2050%\x20by\x20using\x20`repeated\x20int32`\n\x20inst\
ead.\x20The\x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20mo\
re\x20embarrassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\
\x20languages\x20but\x20we\x20hope\x20the\x20performance\n\x20improvemen\
ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\xdb\
\x04\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xdb\x04\x0b\x10\n\r\n\x05\
\x04\t\x02\0\x01\x12\x04\xdb\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\
\x04\xdb\x04\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xde\x04\x02\
\x14\x1a|\x20(optional)\x20The\x20symbol\x20that\x20appears\x20at\x20thi\
s\x20position.\x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20t\
o\x20format\x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\
\x12\x04\xde\x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xde\x04\t\
\x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xde\x04\x12\x13\n\x97\x01\n\x04\
\x04\t\x02\x02\x12\x04\xe1\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\
et\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\xe1\
\x04\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xe1\x04\x08\x14\n\r\n\
\x05\x04\t\x02\x02\x03\x12\x04\xe1\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\
\x03\x12\x04\xea\x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\
ted\x20documentation\x20for\x20this\x20specific\x20range.\x20If\n\x20emp\
ty,\x20the\x20`Symbol.documentation`\x20field\x20is\x20used\x20instead.\
\x20One\x20example\n\x20where\x20this\x20field\x20might\x20be\x20useful\
\x20is\x20when\x20the\x20symbol\x20represents\x20a\x20generic\n\x20funct\
ion\x20(with\x20abstract\x20type\x20parameters\x20such\x20as\x20`List<T>\
`)\x20and\x20at\x20this\n\x20occurrence\x20we\x20know\x20the\x20exact\
\x20values\x20(such\x20as\x20`List<String>`).\n\n\x20This\x20field\x20ca\
n\x20also\x20be\x20used\x20for\x20dynamically\x20or\x20gradually\x20type\
d\x20languages,\n\x20which\x20commonly\x20allow\x20for\x20type-changing\
\x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xea\x04\x02\n\n\r\
\n\x05\x04\t\x02\x03\x05\x12\x04\xea\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\
\x01\x12\x04\xea\x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xea\x04+,\
\nX\n\x04\x04\t\x02\x04\x12\x04\xec\x04\x02\x1d\x1aJ\x20(optional)\x20Wh\
at\x20syntax\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20\
this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xec\x04\x02\x0c\n\r\
\n\x05\x04\t\x02\x04\x01\x12\x04\xec\x04\r\x18\n\r\n\x05\x04\t\x02\x04\
\x03\x12\x04\xec\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\xee\x04\x02&\
\x1aI\x20(optional)\x20Diagnostics\x20that\x20have\x20been\x20reported\
\x20for\x20this\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\
\x04\xee\x04\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xee\x04\x0b\x15\n\
\r\n\x05\x04\t\x02\x05\x01\x12\x04\xee\x04\x16!\n\r\n\x05\x04\t\x02\x05\
\x03\x12\x04\xee\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\x96\x05\x02\
%\x1a\xf1\x0b\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\
\x20the\x20sibling\x20`range`\x20field,\x20source\n\x20position\x20of\
\x20the\x20nearest\x20non-trivial\x20enclosing\x20AST\x20node.\x20This\
\x20range\x20must\n\x20enclose\x20the\x20`range`\x20field.\x20Example\
\x20applications\x20that\x20make\x20use\x20of\x20the\n\x20enclosing_rang\
e\x20field:\n\n\x20-\x20Call\x20hierarchies:\x20to\x20determine\x20what\
\x20symbols\x20are\x20references\x20from\x20the\x20body\n\x20\x20\x20of\
\x20a\x20function\n\x20-\x20Symbol\x20outline:\x20to\x20display\x20bread\
crumbs\x20from\x20the\x20cursor\x20position\x20to\x20the\n\x20\x20\x20ro\
ot\x20of\x20the\x20file\n\x20-\x20Expand\x20selection:\x20to\x20select\
\x20the\x20nearest\x20enclosing\x20AST\x20node.\n\x20-\x20Highlight\x20r\
ange:\x20to\x20indicate\x20the\x20AST\x20expression\x20that\x20is\x20ass\
ociated\x20with\x20a\n\x20\x20\x20hover\x20popover\n\n\x20For\x20definit\
ion\x20occurrences,\x20the\x20enclosing\x20range\x20should\x20indicate\
\x20the\n\x20start/end\x20bounds\x20of\x20the\x20entire\x20definition\
\x20AST\x20node,\x20including\n\x20documentation.\n\x20```\n\x20const\
\x20n\x20=\x203\n\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20^^^^^^^^^^^\
\x20enclosing_range\n\n\x20/**\x20Parses\x20the\x20string\x20into\x20som\
ething\x20*/\n\x20^\x20enclosing_range\x20start\x20---------------------\
-----------------|\n\x20function\x20parse(input\x20string):\x20string\
\x20{\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20^^^^^\x20range\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20retur\
n\x20input.slice(n)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20|\n\x20}\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20^\x20\
enclosing_range\x20end\x20<---------------------------------------|\n\
\x20```\n\x20For\x20reference\x20occurrences,\x20the\x20enclosing\x20ran\
ge\x20should\x20indicate\x20the\x20start/end\n\x20bounds\x20of\x20the\
\x20parent\x20expression.\n\x20```\n\x20const\x20a\x20=\x20a.b\n\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20^^^\x20enclosing_range\n\x20const\x20b\x20=\
\x20a.b(41).f(42).g(43)\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosing_range\n\x20```\n\n\r\n\x05\
\x04\t\x02\x06\x04\x12\x04\x96\x05\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\
\x04\x96\x05\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\x96\x05\x11\x20\
\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\x96\x05#$\nw\n\x02\x04\n\x12\x06\
\x9b\x05\0\xa6\x05\x01\x1ai\x20Represents\x20a\x20diagnostic,\x20such\
\x20as\x20a\x20compiler\x20error\x20or\x20warning,\x20which\x20should\
\x20be\n\x20reported\x20for\x20a\x20document.\n\n\x0b\n\x03\x04\n\x01\
\x12\x04\x9b\x05\x08\x12\nW\n\x04\x04\n\x02\0\x12\x04\x9d\x05\x02\x18\
\x1aI\x20Should\x20this\x20diagnostic\x20be\x20reported\x20as\x20an\x20e\
rror,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\x05\x04\n\x02\0\x06\
\x12\x04\x9d\x05\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\x04\x9d\x05\x0b\x13\
\n\r\n\x05\x04\n\x02\0\x03\x12\x04\x9d\x05\x16\x17\n]\n\x04\x04\n\x02\
\x01\x12\x04\x9f\x05\x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\
\x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\x20user\x20inte\
rface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\x9f\x05\x02\x08\n\r\n\x05\
\x04\n\x02\x01\x01\x12\x04\x9f\x05\t\r\n\r\n\x05\x04\n\x02\x01\x03\x12\
\x04\x9f\x05\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xa1\x05\x02\x15\x1a\
\x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\n\x02\x02\
\x05\x12\x04\xa1\x05\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xa1\x05\
\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xa1\x05\x13\x14\n~\n\x04\x04\
\n\x02\x03\x12\x04\xa4\x05\x02\x14\x1ap\x20(optional)\x20Human-readable\
\x20string\x20describing\x20the\x20source\x20of\x20this\x20diagnostic,\
\x20e.g.\n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\n\
\x02\x03\x05\x12\x04\xa4\x05\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\
\xa4\x05\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xa4\x05\x12\x13\n\x0c\
\n\x04\x04\n\x02\x04\x12\x04\xa5\x05\x02\"\n\r\n\x05\x04\n\x02\x04\x04\
\x12\x04\xa5\x05\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xa5\x05\x0b\
\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xa5\x05\x19\x1d\n\r\n\x05\x04\n\
\x02\x04\x03\x12\x04\xa5\x05\x20!\n\x0c\n\x02\x05\x04\x12\x06\xa8\x05\0\
\xae\x05\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xa8\x05\x05\r\n\x0c\n\x04\
\x05\x04\x02\0\x12\x04\xa9\x05\x02\x1a\n\r\n\x05\x05\x04\x02\0\x01\x12\
\x04\xa9\x05\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xa9\x05\x18\x19\
\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xaa\x05\x02\x0c\n\r\n\x05\x05\x04\
\x02\x01\x01\x12\x04\xaa\x05\x02\x07\n\r\n\x05\x05\x04\x02\x01\x02\x12\
\x04\xaa\x05\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xab\x05\x02\x0e\n\
\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xab\x05\x02\t\n\r\n\x05\x05\x04\x02\
\x02\x02\x12\x04\xab\x05\x0c\r\n\x0c\n\x04\x05\x04\x02\x03\x12\x04\xac\
\x05\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xac\x05\x02\r\n\r\n\
\x05\x05\x04\x02\x03\x02\x12\x04\xac\x05\x10\x11\n\x0c\n\x04\x05\x04\x02\
\x04\x12\x04\xad\x05\x02\x0b\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xad\
\x05\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xad\x05\t\n\n\x0c\n\
\x02\x05\x05\x12\x06\xb0\x05\0\xb4\x05\x01\n\x0b\n\x03\x05\x05\x01\x12\
\x04\xb0\x05\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xb1\x05\x02\x1f\n\
\r\n\x05\x05\x05\x02\0\x01\x12\x04\xb1\x05\x02\x1a\n\r\n\x05\x05\x05\x02\
\0\x02\x12\x04\xb1\x05\x1d\x1e\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xb2\
\x05\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xb2\x05\x02\r\n\r\n\
\x05\x05\x05\x02\x01\x02\x12\x04\xb2\x05\x10\x11\n\x0c\n\x04\x05\x05\x02\
\x02\x12\x04\xb3\x05\x02\x11\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xb3\
\x05\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xb3\x05\x0f\x10\n\xd0\
\x03\n\x02\x05\x06\x12\x06\xbc\x05\0\xb2\x06\x01\x1a\xc1\x03\x20Language\
\x20standardises\x20names\x20of\x20common\x20programming\x20languages\
\x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.language`\x20\
field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\x20to\n\
\x20prevent\x20a\x20situation\x20where\x20we\x20have\x20a\x20single\x20p\
rogramming\x20language\x20ends\x20up\x20with\n\x20multiple\x20string\x20\
representations.\x20For\x20example,\x20the\x20C++\x20language\x20uses\
\x20the\x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\x20other\x20na\
mes\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\x20free\
\x20to\x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20programmi\
ng\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\x04\xbc\x05\x05\r\n\x0c\n\
\x04\x05\x06\x02\0\x12\x04\xbd\x05\x02\x1a\n\r\n\x05\x05\x06\x02\0\x01\
\x12\x04\xbd\x05\x02\x15\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xbd\x05\x18\
\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xbe\x05\x02\x0c\n\r\n\x05\x05\
\x06\x02\x01\x01\x12\x04\xbe\x05\x02\x06\n\r\n\x05\x05\x06\x02\x01\x02\
\x12\x04\xbe\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xbf\x05\x02\
\x0c\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xbf\x05\x02\x06\n\r\n\x05\x05\
\x06\x02\x02\x02\x12\x04\xbf\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x03\x12\
\x04\xc0\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xc0\x05\x02\
\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xc0\x05\x08\n\n\x0c\n\x04\x05\
\x06\x02\x04\x12\x04\xc1\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x04\x01\x12\
\x04\xc1\x05\x02\x05\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xc1\x05\x08\n\
\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xc2\x05\x02\x0c\n\r\n\x05\x05\x06\
\x02\x05\x01\x12\x04\xc2\x05\x02\x06\n\r\n\x05\x05\x06\x02\x05\x02\x12\
\x04\xc2\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x06\x12\x04\xc3\x05\x02\x10\n\
\r\n\x05\x05\x06\x02\x06\x01\x12\x04\xc3\x05\x02\n\n\r\n\x05\x05\x06\x02\
\x06\x02\x12\x04\xc3\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\x07\x12\x04\xc4\
\x05\x02\x10\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\xc4\x05\x02\n\n\r\n\
\x05\x05\x06\x02\x07\x02\x12\x04\xc4\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\
\x08\x12\x04\xc5\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x08\x01\x12\x04\xc5\
\x05\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\xc5\x05\x08\n\n\x0c\n\
\x04\x05\x06\x02\t\x12\x04\xc6\x05\x02\x0b\n\r\n\x05\x05\x06\x02\t\x01\
\x12\x04\xc6\x05\x02\x05\n\r\n\x05\x05\x06\x02\t\x02\x12\x04\xc6\x05\x08\
\n\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xc7\x05\x02\x0e\n\r\n\x05\x05\x06\
\x02\n\x01\x12\x04\xc7\x05\x02\x08\n\r\n\x05\x05\x06\x02\n\x02\x12\x04\
\xc7\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\xc8\x05\x02\t\n\r\n\
\x05\x05\x06\x02\x0b\x01\x12\x04\xc8\x05\x02\x03\n\r\n\x05\x05\x06\x02\
\x0b\x02\x12\x04\xc8\x05\x06\x08\n\x0c\n\x04\x05\x06\x02\x0c\x12\x04\xc9\
\x05\x02\r\n\r\n\x05\x05\x06\x02\x0c\x01\x12\x04\xc9\x05\x02\x07\n\r\n\
\x05\x05\x06\x02\x0c\x02\x12\x04\xc9\x05\n\x0c\nH\n\x04\x05\x06\x02\r\
\x12\x04\xca\x05\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20\
chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\x05\x06\x02\r\
\x01\x12\x04\xca\x05\x02\x05\n\r\n\x05\x05\x06\x02\r\x02\x12\x04\xca\x05\
\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\xcb\x05\x02\x0b\n\r\n\x05\x05\
\x06\x02\x0e\x01\x12\x04\xcb\x05\x02\x05\n\r\n\x05\x05\x06\x02\x0e\x02\
\x12\x04\xcb\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x0f\x12\x04\xcc\x05\x02\r\
\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\xcc\x05\x02\x08\n\r\n\x05\x05\x06\
\x02\x0f\x02\x12\x04\xcc\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x10\x12\x04\
\xcd\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x01\x12\x04\xcd\x05\x02\t\n\r\
\n\x05\x05\x06\x02\x10\x02\x12\x04\xcd\x05\x0c\r\n\x0c\n\x04\x05\x06\x02\
\x11\x12\x04\xce\x05\x02\x14\n\r\n\x05\x05\x06\x02\x11\x01\x12\x04\xce\
\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x11\x02\x12\x04\xce\x05\x11\x13\n\x0c\
\n\x04\x05\x06\x02\x12\x12\x04\xcf\x05\x02\x11\n\r\n\x05\x05\x06\x02\x12\
\x01\x12\x04\xcf\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x12\x02\x12\x04\xcf\
\x05\x0f\x10\n\x0c\n\x04\x05\x06\x02\x13\x12\x04\xd0\x05\x02\x0b\n\r\n\
\x05\x05\x06\x02\x13\x01\x12\x04\xd0\x05\x02\x05\n\r\n\x05\x05\x06\x02\
\x13\x02\x12\x04\xd0\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x14\x12\x04\xd1\
\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x14\x01\x12\x04\xd1\x05\x02\x06\n\r\n\
\x05\x05\x06\x02\x14\x02\x12\x04\xd1\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\
\x15\x12\x04\xd2\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x15\x01\x12\x04\xd2\
\x05\x02\x06\n\r\n\x05\x05\x06\x02\x15\x02\x12\x04\xd2\x05\t\n\n\x0c\n\
\x04\x05\x06\x02\x16\x12\x04\xd3\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x16\
\x01\x12\x04\xd3\x05\x02\x08\n\r\n\x05\x05\x06\x02\x16\x02\x12\x04\xd3\
\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x17\x12\x04\xd4\x05\x02\x0c\n\r\n\x05\
\x05\x06\x02\x17\x01\x12\x04\xd4\x05\x02\x06\n\r\n\x05\x05\x06\x02\x17\
\x02\x12\x04\xd4\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x18\x12\x04\xd5\x05\
\x02\x12\n\r\n\x05\x05\x06\x02\x18\x01\x12\x04\xd5\x05\x02\x0c\n\r\n\x05\
\x05\x06\x02\x18\x02\x12\x04\xd5\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x19\
\x12\x04\xd6\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x19\x01\x12\x04\xd6\x05\
\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\x04\xd6\x05\x0b\r\n\x0c\n\x04\
\x05\x06\x02\x1a\x12\x04\xd7\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x1a\x01\
\x12\x04\xd7\x05\x02\x08\n\r\n\x05\x05\x06\x02\x1a\x02\x12\x04\xd7\x05\
\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\xd8\x05\x02\x0e\n\r\n\x05\x05\
\x06\x02\x1b\x01\x12\x04\xd8\x05\x02\x08\n\r\n\x05\x05\x06\x02\x1b\x02\
\x12\x04\xd8\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1c\x12\x04\xd9\x05\x02\
\x0e\n\r\n\x05\x05\x06\x02\x1c\x01\x12\x04\xd9\x05\x02\x08\n\r\n\x05\x05\
\x06\x02\x1c\x02\x12\x04\xd9\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1d\x12\
\x04\xda\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1d\x01\x12\x04\xda\x05\x02\
\x06\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\xda\x05\t\x0b\n\x0c\n\x04\x05\
\x06\x02\x1e\x12\x04\xdb\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1e\x01\x12\
\x04\xdb\x05\x02\x06\n\r\n\x05\x05\x06\x02\x1e\x02\x12\x04\xdb\x05\t\x0b\
\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xdc\x05\x02\x0f\n\r\n\x05\x05\x06\
\x02\x1f\x01\x12\x04\xdc\x05\x02\t\n\r\n\x05\x05\x06\x02\x1f\x02\x12\x04\
\xdc\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x20\x12\x04\xdd\x05\x02\x12\n\r\
\n\x05\x05\x06\x02\x20\x01\x12\x04\xdd\x05\x02\x0c\n\r\n\x05\x05\x06\x02\
\x20\x02\x12\x04\xdd\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02!\x12\x04\xde\
\x05\x02\x12\n\r\n\x05\x05\x06\x02!\x01\x12\x04\xde\x05\x02\x0c\n\r\n\
\x05\x05\x06\x02!\x02\x12\x04\xde\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\"\
\x12\x04\xdf\x05\x02\x12\n\r\n\x05\x05\x06\x02\"\x01\x12\x04\xdf\x05\x02\
\x0c\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xdf\x05\x0f\x11\n\x0c\n\x04\x05\
\x06\x02#\x12\x04\xe0\x05\x02\n\n\r\n\x05\x05\x06\x02#\x01\x12\x04\xe0\
\x05\x02\x04\n\r\n\x05\x05\x06\x02#\x02\x12\x04\xe0\x05\x07\t\n\x0c\n\
\x04\x05\x06\x02$\x12\x04\xe1\x05\x02\x0f\n\r\n\x05\x05\x06\x02$\x01\x12\
\x04\xe1\x05\x02\t\n\r\n\x05\x05\x06\x02$\x02\x12\x04\xe1\x05\x0c\x0e\n\
\x0c\n\x04\x05\x06\x02%\x12\x04\xe2\x05\x02\r\n\r\n\x05\x05\x06\x02%\x01\
\x12\x04\xe2\x05\x02\x08\n\r\n\x05\x05\x06\x02%\x02\x12\x04\xe2\x05\x0b\
\x0c\n\x0c\n\x04\x05\x06\x02&\x12\x04\xe3\x05\x02\x0c\n\r\n\x05\x05\x06\
\x02&\x01\x12\x04\xe3\x05\x02\x06\n\r\n\x05\x05\x06\x02&\x02\x12\x04\xe3\
\x05\t\x0b\n\x0c\n\x04\x05\x06\x02'\x12\x04\xe4\x05\x02\x0c\n\r\n\x05\
\x05\x06\x02'\x01\x12\x04\xe4\x05\x02\x06\n\r\n\x05\x05\x06\x02'\x02\x12\
\x04\xe4\x05\t\x0b\n\x0c\n\x04\x05\x06\x02(\x12\x04\xe5\x05\x02\x12\n\r\
\n\x05\x05\x06\x02(\x01\x12\x04\xe5\x05\x02\x0c\n\r\n\x05\x05\x06\x02(\
\x02\x12\x04\xe5\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02)\x12\x04\xe6\x05\
\x02\x0f\n\r\n\x05\x05\x06\x02)\x01\x12\x04\xe6\x05\x02\t\n\r\n\x05\x05\
\x06\x02)\x02\x12\x04\xe6\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02*\x12\x04\
\xe7\x05\x02\r\n\r\n\x05\x05\x06\x02*\x01\x12\x04\xe7\x05\x02\x07\n\r\n\
\x05\x05\x06\x02*\x02\x12\x04\xe7\x05\n\x0c\n\x0c\n\x04\x05\x06\x02+\x12\
\x04\xe8\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\x01\x12\x04\xe8\x05\x02\x05\
\n\r\n\x05\x05\x06\x02+\x02\x12\x04\xe8\x05\x08\n\n\x0c\n\x04\x05\x06\
\x02,\x12\x04\xe9\x05\x02\t\n\r\n\x05\x05\x06\x02,\x01\x12\x04\xe9\x05\
\x02\x03\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xe9\x05\x06\x08\n\x0c\n\x04\
\x05\x06\x02-\x12\x04\xea\x05\x02\x0c\n\r\n\x05\x05\x06\x02-\x01\x12\x04\
\xea\x05\x02\x06\n\r\n\x05\x05\x06\x02-\x02\x12\x04\xea\x05\t\x0b\n\x0c\
\n\x04\x05\x06\x02.\x12\x04\xeb\x05\x02\x0b\n\r\n\x05\x05\x06\x02.\x01\
\x12\x04\xeb\x05\x02\x06\n\r\n\x05\x05\x06\x02.\x02\x12\x04\xeb\x05\t\n\
\n\x0c\n\x04\x05\x06\x02/\x12\x04\xec\x05\x02\x12\n\r\n\x05\x05\x06\x02/\
\x01\x12\x04\xec\x05\x02\x0c\n\r\n\x05\x05\x06\x02/\x02\x12\x04\xec\x05\
\x0f\x11\n\x0c\n\x04\x05\x06\x020\x12\x04\xed\x05\x02\x17\n\r\n\x05\x05\
\x06\x020\x01\x12\x04\xed\x05\x02\x11\n\r\n\x05\x05\x06\x020\x02\x12\x04\
\xed\x05\x14\x16\n\x0c\n\x04\x05\x06\x021\x12\x04\xee\x05\x02\x0f\n\r\n\
\x05\x05\x06\x021\x01\x12\x04\xee\x05\x02\t\n\r\n\x05\x05\x06\x021\x02\
\x12\x04\xee\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x022\x12\x04\xef\x05\x02\
\x0e\n\r\n\x05\x05\x06\x022\x01\x12\x04\xef\x05\x02\x07\n\r\n\x05\x05\
\x06\x022\x02\x12\x04\xef\x05\x0b\r\n\x0c\n\x04\x05\x06\x023\x12\x04\xf0\
\x05\x02\x11\n\r\n\x05\x05\x06\x023\x01\x12\x04\xf0\x05\x02\n\n\r\n\x05\
\x05\x06\x023\x02\x12\x04\xf0\x05\r\x10\n\x0c\n\x04\x05\x06\x024\x12\x04\
\xf1\x05\x02\r\n\r\n\x05\x05\x06\x024\x01\x12\x04\xf1\x05\x02\x08\n\r\n\
\x05\x05\x06\x024\x02\x12\x04\xf1\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x025\
\x12\x04\xf2\x05\x02\r\n\r\n\x05\x05\x06\x025\x01\x12\x04\xf2\x05\x02\
\x07\n\r\n\x05\x05\x06\x025\x02\x12\x04\xf2\x05\n\x0c\n\x0c\n\x04\x05\
\x06\x026\x12\x04\xf3\x05\x02\x0c\n\r\n\x05\x05\x06\x026\x01\x12\x04\xf3\
\x05\x02\x06\n\r\n\x05\x05\x06\x026\x02\x12\x04\xf3\x05\t\x0b\n\x0c\n\
\x04\x05\x06\x027\x12\x04\xf4\x05\x02\x0c\n\r\n\x05\x05\x06\x027\x01\x12\
\x04\xf4\x05\x02\x06\n\r\n\x05\x05\x06\x027\x02\x12\x04\xf4\x05\t\x0b\n\
\x0c\n\x04\x05\x06\x028\x12\x04\xf5\x05\x02\x0b\n\r\n\x05\x05\x06\x028\
\x01\x12\x04\xf5\x05\x02\x05\n\r\n\x05\x05\x06\x028\x02\x12\x04\xf5\x05\
\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\xf6\x05\x02\r\n\r\n\x05\x05\x06\
\x029\x01\x12\x04\xf6\x05\x02\x06\n\r\n\x05\x05\x06\x029\x02\x12\x04\xf6\
\x05\t\x0c\n\x0c\n\x04\x05\x06\x02:\x12\x04\xf7\x05\x02\x10\n\r\n\x05\
\x05\x06\x02:\x01\x12\x04\xf7\x05\x02\n\n\r\n\x05\x05\x06\x02:\x02\x12\
\x04\xf7\x05\r\x0f\n\x0c\n\x04\x05\x06\x02;\x12\x04\xf8\x05\x02\x10\n\r\
\n\x05\x05\x06\x02;\x01\x12\x04\xf8\x05\x02\n\n\r\n\x05\x05\x06\x02;\x02\
\x12\x04\xf8\x05\r\x0f\n\x0c\n\x04\x05\x06\x02<\x12\x04\xf9\x05\x02\x0e\
\n\r\n\x05\x05\x06\x02<\x01\x12\x04\xf9\x05\x02\x08\n\r\n\x05\x05\x06\
\x02<\x02\x12\x04\xf9\x05\x0b\r\n(\n\x04\x05\x06\x02=\x12\x04\xfa\x05\
\x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\x05\x05\x06\x02=\x01\
\x12\x04\xfa\x05\x02\x08\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xfa\x05\x0b\
\x0e\n\x0c\n\x04\x05\x06\x02>\x12\x04\xfb\x05\x02\x0b\n\r\n\x05\x05\x06\
\x02>\x01\x12\x04\xfb\x05\x02\x05\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xfb\
\x05\x08\n\n\x0c\n\x04\x05\x06\x02?\x12\x04\xfc\x05\x02\r\n\r\n\x05\x05\
\x06\x02?\x01\x12\x04\xfc\x05\x02\x07\n\r\n\x05\x05\x06\x02?\x02\x12\x04\
\xfc\x05\n\x0c\n\x0c\n\x04\x05\x06\x02@\x12\x04\xfd\x05\x02\x13\n\r\n\
\x05\x05\x06\x02@\x01\x12\x04\xfd\x05\x02\r\n\r\n\x05\x05\x06\x02@\x02\
\x12\x04\xfd\x05\x10\x12\n\x0c\n\x04\x05\x06\x02A\x12\x04\xfe\x05\x02\
\x15\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xfe\x05\x02\x0f\n\r\n\x05\x05\
\x06\x02A\x02\x12\x04\xfe\x05\x12\x14\n\x0c\n\x04\x05\x06\x02B\x12\x04\
\xff\x05\x02\x0e\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xff\x05\x02\x08\n\r\
\n\x05\x05\x06\x02B\x02\x12\x04\xff\x05\x0b\r\n\x0c\n\x04\x05\x06\x02C\
\x12\x04\x80\x06\x02\x0b\n\r\n\x05\x05\x06\x02C\x01\x12\x04\x80\x06\x02\
\x05\n\r\n\x05\x05\x06\x02C\x02\x12\x04\x80\x06\x08\n\n\x0c\n\x04\x05\
\x06\x02D\x12\x04\x81\x06\x02\r\n\r\n\x05\x05\x06\x02D\x01\x12\x04\x81\
\x06\x02\x07\n\r\n\x05\x05\x06\x02D\x02\x12\x04\x81\x06\n\x0c\n\x0c\n\
\x04\x05\x06\x02E\x12\x04\x82\x06\x02\x0c\n\r\n\x05\x05\x06\x02E\x01\x12\
\x04\x82\x06\x02\x06\n\r\n\x05\x05\x06\x02E\x02\x12\x04\x82\x06\t\x0b\n\
\x0c\n\x04\x05\x06\x02F\x12\x04\x83\x06\x02\x12\n\r\n\x05\x05\x06\x02F\
\x01\x12\x04\x83\x06\x02\x0c\n\r\n\x05\x05\x06\x02F\x02\x12\x04\x83\x06\
\x0f\x11\n\x0c\n\x04\x05\x06\x02G\x12\x04\x84\x06\x02\x0e\n\r\n\x05\x05\
\x06\x02G\x01\x12\x04\x84\x06\x02\x08\n\r\n\x05\x05\x06\x02G\x02\x12\x04\
\x84\x06\x0b\r\n\x0c\n\x04\x05\x06\x02H\x12\x04\x85\x06\x02\x11\n\r\n\
\x05\x05\x06\x02H\x01\x12\x04\x85\x06\x02\n\n\r\n\x05\x05\x06\x02H\x02\
\x12\x04\x85\x06\r\x10\n\x0c\n\x04\x05\x06\x02I\x12\x04\x86\x06\x02\x0e\
\n\r\n\x05\x05\x06\x02I\x01\x12\x04\x86\x06\x02\x08\n\r\n\x05\x05\x06\
\x02I\x02\x12\x04\x86\x06\x0b\r\n\x0c\n\x04\x05\x06\x02J\x12\x04\x87\x06\
\x02\t\n\r\n\x05\x05\x06\x02J\x01\x12\x04\x87\x06\x02\x03\n\r\n\x05\x05\
\x06\x02J\x02\x12\x04\x87\x06\x06\x08\n\x0c\n\x04\x05\x06\x02K\x12\x04\
\x88\x06\x02\x0e\n\r\n\x05\x05\x06\x02K\x01\x12\x04\x88\x06\x02\x08\n\r\
\n\x05\x05\x06\x02K\x02\x12\x04\x88\x06\x0b\r\n\x0c\n\x04\x05\x06\x02L\
\x12\x04\x89\x06\x02\x0c\n\r\n\x05\x05\x06\x02L\x01\x12\x04\x89\x06\x02\
\x06\n\r\n\x05\x05\x06\x02L\x02\x12\x04\x89\x06\t\x0b\n\x0c\n\x04\x05\
\x06\x02M\x12\x04\x8a\x06\x02\r\n\r\n\x05\x05\x06\x02M\x01\x12\x04\x8a\
\x06\x02\x07\n\r\n\x05\x05\x06\x02M\x02\x12\x04\x8a\x06\n\x0c\n2\n\x04\
\x05\x06\x02N\x12\x04\x8b\x06\x02\x0e\"$\x20Internal\x20language\x20for\
\x20testing\x20SCIP\n\n\r\n\x05\x05\x06\x02N\x01\x12\x04\x8b\x06\x02\x07\
\n\r\n\x05\x05\x06\x02N\x02\x12\x04\x8b\x06\n\r\n\x0c\n\x04\x05\x06\x02O\
\x12\x04\x8c\x06\x02\x0c\n\r\n\x05\x05\x06\x02O\x01\x12\x04\x8c\x06\x02\
\x06\n\r\n\x05\x05\x06\x02O\x02\x12\x04\x8c\x06\t\x0b\n\x0c\n\x04\x05\
\x06\x02P\x12\x04\x8d\x06\x02\x0c\n\r\n\x05\x05\x06\x02P\x01\x12\x04\x8d\
\x06\x02\x06\n\r\n\x05\x05\x06\x02P\x02\x12\x04\x8d\x06\t\x0b\n\x0c\n\
\x04\x05\x06\x02Q\x12\x04\x8e\x06\x02\x0c\n\r\n\x05\x05\x06\x02Q\x01\x12\
\x04\x8e\x06\x02\x06\n\r\n\x05\x05\x06\x02Q\x02\x12\x04\x8e\x06\t\x0b\n\
\x0c\n\x04\x05\x06\x02R\x12\x04\x8f\x06\x02\x0b\n\r\n\x05\x05\x06\x02R\
\x01\x12\x04\x8f\x06\x02\x05\n\r\n\x05\x05\x06\x02R\x02\x12\x04\x8f\x06\
\x08\n\n\x0c\n\x04\x05\x06\x02S\x12\x04\x90\x06\x02\x0c\n\r\n\x05\x05\
\x06\x02S\x01\x12\x04\x90\x06\x02\x06\n\r\n\x05\x05\x06\x02S\x02\x12\x04\
\x90\x06\t\x0b\n\x0c\n\x04\x05\x06\x02T\x12\x04\x91\x06\x02\x0b\n\r\n\
\x05\x05\x06\x02T\x01\x12\x04\x91\x06\x02\x05\n\r\n\x05\x05\x06\x02T\x02\
\x12\x04\x91\x06\x08\n\n\x0c\n\x04\x05\x06\x02U\x12\x04\x92\x06\x02\x0b\
\n\r\n\x05\x05\x06\x02U\x01\x12\x04\x92\x06\x02\x05\n\r\n\x05\x05\x06\
\x02U\x02\x12\x04\x92\x06\x08\n\n\x0c\n\x04\x05\x06\x02V\x12\x04\x93\x06\
\x02\x0c\n\r\n\x05\x05\x06\x02V\x01\x12\x04\x93\x06\x02\x06\n\r\n\x05\
\x05\x06\x02V\x02\x12\x04\x93\x06\t\x0b\n\x0c\n\x04\x05\x06\x02W\x12\x04\
\x94\x06\x02\x0c\n\r\n\x05\x05\x06\x02W\x01\x12\x04\x94\x06\x02\x07\n\r\
\n\x05\x05\x06\x02W\x02\x12\x04\x94\x06\n\x0b\n\x0c\n\x04\x05\x06\x02X\
\x12\x04\x95\x06\x02\x0e\n\r\n\x05\x05\x06\x02X\x01\x12\x04\x95\x06\x02\
\x08\n\r\n\x05\x05\x06\x02X\x02\x12\x04\x95\x06\x0b\r\n\x14\n\x04\x05\
\x06\x02Y\x12\x04\x96\x06\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\x06\x02Y\
\x01\x12\x04\x96\x06\x02\r\n\r\n\x05\x05\x06\x02Y\x02\x12\x04\x96\x06\
\x10\x12\n\x0c\n\x04\x05\x06\x02Z\x12\x04\x97\x06\x02\x0f\n\r\n\x05\x05\
\x06\x02Z\x01\x12\x04\x97\x06\x02\t\n\r\n\x05\x05\x06\x02Z\x02\x12\x04\
\x97\x06\x0c\x0e\n\x0c\n\x04\x05\x06\x02[\x12\x04\x98\x06\x02\x0e\n\r\n\
\x05\x05\x06\x02[\x01\x12\x04\x98\x06\x02\x07\n\r\n\x05\x05\x06\x02[\x02\
\x12\x04\x98\x06\n\r\n\x0c\n\x04\x05\x06\x02\\\x12\x04\x99\x06\x02\x10\n\
\r\n\x05\x05\x06\x02\\\x01\x12\x04\x99\x06\x02\n\n\r\n\x05\x05\x06\x02\\\
\x02\x12\x04\x99\x06\r\x0f\n\x0c\n\x04\x05\x06\x02]\x12\x04\x9a\x06\x02\
\x0f\n\r\n\x05\x05\x06\x02]\x01\x12\x04\x9a\x06\x02\x08\n\r\n\x05\x05\
\x06\x02]\x02\x12\x04\x9a\x06\x0b\x0e\n\x0c\n\x04\x05\x06\x02^\x12\x04\
\x9b\x06\x02\x0c\n\r\n\x05\x05\x06\x02^\x01\x12\x04\x9b\x06\x02\x07\n\r\
\n\x05\x05\x06\x02^\x02\x12\x04\x9b\x06\n\x0b\n\x0c\n\x04\x05\x06\x02_\
\x12\x04\x9c\x06\x02\x0c\n\r\n\x05\x05\x06\x02_\x01\x12\x04\x9c\x06\x02\
\x05\n\r\n\x05\x05\x06\x02_\x02\x12\x04\x9c\x06\x08\x0b\n\x0c\n\x04\x05\
\x06\x02`\x12\x04\x9d\x06\x02\x0c\n\r\n\x05\x05\x06\x02`\x01\x12\x04\x9d\
\x06\x02\x06\n\r\n\x05\x05\x06\x02`\x02\x12\x04\x9d\x06\t\x0b\n\x0c\n\
\x04\x05\x06\x02a\x12\x04\x9e\x06\x02\x0b\n\r\n\x05\x05\x06\x02a\x01\x12\
\x04\x9e\x06\x02\x05\n\r\n\x05\x05\x06\x02a\x02\x12\x04\x9e\x06\x08\n\n\
\x0c\n\x04\x05\x06\x02b\x12\x04\x9f\x06\x02\x0f\n\r\n\x05\x05\x06\x02b\
\x01\x12\x04\x9f\x06\x02\x08\n\r\n\x05\x05\x06\x02b\x02\x12\x04\x9f\x06\
\x0b\x0e\n\x0c\n\x04\x05\x06\x02c\x12\x04\xa0\x06\x02\x12\n\r\n\x05\x05\
\x06\x02c\x01\x12\x04\xa0\x06\x02\x0c\n\r\n\x05\x05\x06\x02c\x02\x12\x04\
\xa0\x06\x0f\x11\n\x0c\n\x04\x05\x06\x02d\x12\x04\xa1\x06\x02\x17\n\r\n\
\x05\x05\x06\x02d\x01\x12\x04\xa1\x06\x02\x11\n\r\n\x05\x05\x06\x02d\x02\
\x12\x04\xa1\x06\x14\x16\n\x0c\n\x04\x05\x06\x02e\x12\x04\xa2\x06\x02\
\x10\n\r\n\x05\x05\x06\x02e\x01\x12\x04\xa2\x06\x02\t\n\r\n\x05\x05\x06\
\x02e\x02\x12\x04\xa2\x06\x0c\x0f\n\x0c\n\x04\x05\x06\x02f\x12\x04\xa3\
\x06\x02\r\n\r\n\x05\x05\x06\x02f\x01\x12\x04\xa3\x06\x02\x06\n\r\n\x05\
\x05\x06\x02f\x02\x12\x04\xa3\x06\t\x0c\n\x0c\n\x04\x05\x06\x02g\x12\x04\
\xa4\x06\x02\x13\n\r\n\x05\x05\x06\x02g\x01\x12\x04\xa4\x06\x02\r\n\r\n\
\x05\x05\x06\x02g\x02\x12\x04\xa4\x06\x10\x12\n\x0c\n\x04\x05\x06\x02h\
\x12\x04\xa5\x06\x02\x0b\n\r\n\x05\x05\x06\x02h\x01\x12\x04\xa5\x06\x02\
\x05\n\r\n\x05\x05\x06\x02h\x02\x12\x04\xa5\x06\x08\n\n\x0c\n\x04\x05\
\x06\x02i\x12\x04\xa6\x06\x02\x0f\n\r\n\x05\x05\x06\x02i\x01\x12\x04\xa6\
\x06\x02\t\n\r\n\x05\x05\x06\x02i\x02\x12\x04\xa6\x06\x0c\x0e\n\x0c\n\
\x04\x05\x06\x02j\x12\x04\xa7\x06\x02\x0b\n\r\n\x05\x05\x06\x02j\x01\x12\
\x04\xa7\x06\x02\x05\n\r\n\x05\x05\x06\x02j\x02\x12\x04\xa7\x06\x08\n\n\
\x0c\n\x04\x05\x06\x02k\x12\x04\xa8\x06\x02\x0b\n\r\n\x05\x05\x06\x02k\
\x01\x12\x04\xa8\x06\x02\x05\n\r\n\x05\x05\x06\x02k\x02\x12\x04\xa8\x06\
\x08\n\n\x0c\n\x04\x05\x06\x02l\x12\x04\xa9\x06\x02\x0c\n\r\n\x05\x05\
\x06\x02l\x01\x12\x04\xa9\x06\x02\x06\n\r\n\x05\x05\x06\x02l\x02\x12\x04\
\xa9\x06\t\x0b\n\x93\x03\n\x04\x05\x06\x02m\x12\x04\xaa\x06\x02\x0b\"\
\x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\x20add\x20a\x20new\x20l\
anguage:\n\x201.\x20Copy-paste\x20the\x20\"NextLanguage\x20=\x20N\"\x20l\
ine\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\x20language\x20to\x20the\x20correct\x20line\
\x20above\x20using\x20alphabetical\x20order\n\x205.\x20(optional)\x20Add\
\x20a\x20brief\x20comment\x20behind\x20the\x20language\x20if\x20the\x20n\
ame\x20is\x20not\x20self-explanatory\n\n\r\n\x05\x05\x06\x02m\x01\x12\
\x04\xaa\x06\x02\x05\n\r\n\x05\x05\x06\x02m\x02\x12\x04\xaa\x06\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(9);
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());
enums.push(symbol_information::Kind::generated_enum_descriptor_data());
::protobuf::reflect::GeneratedFileDescriptor::new_generated(
file_descriptor_proto(),
deps,
messages,
enums,
)
});
::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
})
}