diff --git a/bindings/go/scip/parse_test.go b/bindings/go/scip/parse_test.go index 04ce7564..27064950 100644 --- a/bindings/go/scip/parse_test.go +++ b/bindings/go/scip/parse_test.go @@ -22,7 +22,7 @@ func TestEmpty(t *testing.T) { } func TestFuzz(t *testing.T) { - pat := regexp.MustCompile("^(state|sizeCache|unknownFields|SignatureDocumentation)$") + pat := regexp.MustCompile("^(state|sizeCache|unknownFields|SignatureDocumentation|TypedRange|TypedEnclosingRange)$") f := fuzz.New().NumElements(0, 2).SkipFieldsWithPattern(pat) for i := 0; i < 100; i++ { index := Index{} @@ -72,7 +72,7 @@ func TestLargeDocuments(t *testing.T) { } func TestDocumentsOnly(t *testing.T) { - pat := regexp.MustCompile("^(state|sizeCache|unknownFields|SignatureDocumentation)$") + pat := regexp.MustCompile("^(state|sizeCache|unknownFields|SignatureDocumentation|TypedRange|TypedEnclosingRange)$") f := fuzz.New().NumElements(0, 2).SkipFieldsWithPattern(pat) for i := 0; i < 100; i++ { index := Index{} diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index b2da5971..91eab7f9 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -2226,6 +2226,136 @@ func (x *Relationship) GetIsDefinition() bool { return false } +// SingleLineRange represents a half-open [start, end) range within a single line. +type SingleLineRange struct { + state protoimpl.MessageState `protogen:"open.v1"` + Line int32 `protobuf:"varint,1,opt,name=line,proto3" json:"line,omitempty"` + StartCharacter int32 `protobuf:"varint,2,opt,name=start_character,json=startCharacter,proto3" json:"start_character,omitempty"` + EndCharacter int32 `protobuf:"varint,3,opt,name=end_character,json=endCharacter,proto3" json:"end_character,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SingleLineRange) Reset() { + *x = SingleLineRange{} + mi := &file_scip_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SingleLineRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SingleLineRange) ProtoMessage() {} + +func (x *SingleLineRange) ProtoReflect() protoreflect.Message { + mi := &file_scip_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SingleLineRange.ProtoReflect.Descriptor instead. +func (*SingleLineRange) Descriptor() ([]byte, []int) { + return file_scip_proto_rawDescGZIP(), []int{9} +} + +func (x *SingleLineRange) GetLine() int32 { + if x != nil { + return x.Line + } + return 0 +} + +func (x *SingleLineRange) GetStartCharacter() int32 { + if x != nil { + return x.StartCharacter + } + return 0 +} + +func (x *SingleLineRange) GetEndCharacter() int32 { + if x != nil { + return x.EndCharacter + } + return 0 +} + +// MultiLineRange represents a half-open [start, end) range spanning multiple lines. +type MultiLineRange struct { + state protoimpl.MessageState `protogen:"open.v1"` + StartLine int32 `protobuf:"varint,1,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"` + StartCharacter int32 `protobuf:"varint,2,opt,name=start_character,json=startCharacter,proto3" json:"start_character,omitempty"` + EndLine int32 `protobuf:"varint,3,opt,name=end_line,json=endLine,proto3" json:"end_line,omitempty"` + EndCharacter int32 `protobuf:"varint,4,opt,name=end_character,json=endCharacter,proto3" json:"end_character,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MultiLineRange) Reset() { + *x = MultiLineRange{} + mi := &file_scip_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MultiLineRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiLineRange) ProtoMessage() {} + +func (x *MultiLineRange) ProtoReflect() protoreflect.Message { + mi := &file_scip_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiLineRange.ProtoReflect.Descriptor instead. +func (*MultiLineRange) Descriptor() ([]byte, []int) { + return file_scip_proto_rawDescGZIP(), []int{10} +} + +func (x *MultiLineRange) GetStartLine() int32 { + if x != nil { + return x.StartLine + } + return 0 +} + +func (x *MultiLineRange) GetStartCharacter() int32 { + if x != nil { + return x.StartCharacter + } + return 0 +} + +func (x *MultiLineRange) GetEndLine() int32 { + if x != nil { + return x.EndLine + } + return 0 +} + +func (x *MultiLineRange) GetEndCharacter() int32 { + if x != nil { + return x.EndCharacter + } + return 0 +} + // Occurrence associates a source position with a symbol and/or highlighting // information. // @@ -2233,12 +2363,22 @@ func (x *Relationship) GetIsDefinition() bool { // across occurrences into a single occurrence to reduce payload sizes. type Occurrence struct { state protoimpl.MessageState `protogen:"open.v1"` - // Half-open [start, end) range of this occurrence. Must be exactly three or four - // elements: + // Deprecated: Use `single_line_range` or `multi_line_range` instead. // - // - Four elements: `[startLine, startCharacter, endLine, endCharacter]` - // - Three elements: `[startLine, startCharacter, endCharacter]`. The end line - // is inferred to have the same value as the start line. + // Half-open [start, end) range. Must be exactly three or four elements: + // - Three elements: `[startLine, startCharacter, endCharacter]` (single-line) + // - Four elements: `[startLine, startCharacter, endLine, endCharacter]` + // + // Historical note: the original draft of this schema had a `Range` message + // type with `start` and `end` fields of type `Position`, mirroring LSP. + // Benchmarks revealed that this encoding was inefficient and that we could + // reduce the total payload size of an index by 50% by using `repeated int32` + // instead. However, the lack of type safety led to the introduction of + // `single_line_range` and `multi_line_range` as typed alternatives. + // + // Deprecated: Marked as deprecated in scip.proto. + Range []int32 `protobuf:"varint,1,rep,packed,name=range,proto3" json:"range,omitempty"` + // Half-open [start, end) source range of this occurrence. // // It is allowed for the range to be empty (i.e. start==end). // @@ -2249,14 +2389,11 @@ type Occurrence struct { // The 'character' value is interpreted based on the PositionEncoding for // the Document. // - // Historical note: the original draft of this schema had a `Range` message - // type with `start` and `end` fields of type `Position`, mirroring LSP. - // Benchmarks revealed that this encoding was inefficient and that we could - // reduce the total payload size of an index by 50% by using `repeated int32` - // instead. The `repeated int32` encoding is admittedly more embarrassing to - // work with in some programming languages but we hope the performance - // improvements make up for it. - Range []int32 `protobuf:"varint,1,rep,packed,name=range,proto3" json:"range,omitempty"` + // Types that are valid to be assigned to TypedRange: + // + // *Occurrence_SingleLineRange + // *Occurrence_MultiLineRange + TypedRange isOccurrence_TypedRange `protobuf_oneof:"typed_range"` // (optional) The symbol that appears at this position. See // `SymbolInformation.symbol` for how to format symbols as strings. Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` @@ -2276,12 +2413,14 @@ type Occurrence struct { SyntaxKind SyntaxKind `protobuf:"varint,5,opt,name=syntax_kind,json=syntaxKind,proto3,enum=scip.SyntaxKind" json:"syntax_kind,omitempty"` // (optional) Diagnostics that have been reported for this specific range. Diagnostics []*Diagnostic `protobuf:"bytes,6,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` - // (optional) Using the same encoding as the sibling `range` field, half-open - // source range of the nearest non-trivial enclosing AST node. This range must - // enclose the `range` field. Example applications that make use of the - // enclosing_range field: + // Deprecated: Use `typed_enclosing_range` instead. + // + // Deprecated: Marked as deprecated in scip.proto. + EnclosingRange []int32 `protobuf:"varint,7,rep,packed,name=enclosing_range,json=enclosingRange,proto3" json:"enclosing_range,omitempty"` + // (optional) Half-open source range of the nearest non-trivial enclosing AST + // node. This range must enclose the occurrence range. Example applications: // - // - Call hierarchies: to determine what symbols are references from the body + // - Call hierarchies: to determine what symbols are referenced from the body // of a function // - Symbol outline: to display breadcrumbs from the cursor position to the // root of the file @@ -2338,14 +2477,19 @@ type Occurrence struct { // ^^^^^^^^^^^^^ enclosing_range // // ``` - EnclosingRange []int32 `protobuf:"varint,7,rep,packed,name=enclosing_range,json=enclosingRange,proto3" json:"enclosing_range,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // + // Types that are valid to be assigned to TypedEnclosingRange: + // + // *Occurrence_SingleLineEnclosingRange + // *Occurrence_MultiLineEnclosingRange + TypedEnclosingRange isOccurrence_TypedEnclosingRange `protobuf_oneof:"typed_enclosing_range"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Occurrence) Reset() { *x = Occurrence{} - mi := &file_scip_proto_msgTypes[9] + mi := &file_scip_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2357,7 +2501,7 @@ func (x *Occurrence) String() string { func (*Occurrence) ProtoMessage() {} func (x *Occurrence) ProtoReflect() protoreflect.Message { - mi := &file_scip_proto_msgTypes[9] + mi := &file_scip_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,9 +2514,10 @@ func (x *Occurrence) ProtoReflect() protoreflect.Message { // Deprecated: Use Occurrence.ProtoReflect.Descriptor instead. func (*Occurrence) Descriptor() ([]byte, []int) { - return file_scip_proto_rawDescGZIP(), []int{9} + return file_scip_proto_rawDescGZIP(), []int{11} } +// Deprecated: Marked as deprecated in scip.proto. func (x *Occurrence) GetRange() []int32 { if x != nil { return x.Range @@ -2380,6 +2525,31 @@ func (x *Occurrence) GetRange() []int32 { return nil } +func (x *Occurrence) GetTypedRange() isOccurrence_TypedRange { + if x != nil { + return x.TypedRange + } + return nil +} + +func (x *Occurrence) GetSingleLineRange() *SingleLineRange { + if x != nil { + if x, ok := x.TypedRange.(*Occurrence_SingleLineRange); ok { + return x.SingleLineRange + } + } + return nil +} + +func (x *Occurrence) GetMultiLineRange() *MultiLineRange { + if x != nil { + if x, ok := x.TypedRange.(*Occurrence_MultiLineRange); ok { + return x.MultiLineRange + } + } + return nil +} + func (x *Occurrence) GetSymbol() string { if x != nil { return x.Symbol @@ -2415,6 +2585,7 @@ func (x *Occurrence) GetDiagnostics() []*Diagnostic { return nil } +// Deprecated: Marked as deprecated in scip.proto. func (x *Occurrence) GetEnclosingRange() []int32 { if x != nil { return x.EnclosingRange @@ -2422,6 +2593,65 @@ func (x *Occurrence) GetEnclosingRange() []int32 { return nil } +func (x *Occurrence) GetTypedEnclosingRange() isOccurrence_TypedEnclosingRange { + if x != nil { + return x.TypedEnclosingRange + } + return nil +} + +func (x *Occurrence) GetSingleLineEnclosingRange() *SingleLineRange { + if x != nil { + if x, ok := x.TypedEnclosingRange.(*Occurrence_SingleLineEnclosingRange); ok { + return x.SingleLineEnclosingRange + } + } + return nil +} + +func (x *Occurrence) GetMultiLineEnclosingRange() *MultiLineRange { + if x != nil { + if x, ok := x.TypedEnclosingRange.(*Occurrence_MultiLineEnclosingRange); ok { + return x.MultiLineEnclosingRange + } + } + return nil +} + +type isOccurrence_TypedRange interface { + isOccurrence_TypedRange() +} + +type Occurrence_SingleLineRange struct { + // Range spanning a single line. + SingleLineRange *SingleLineRange `protobuf:"bytes,8,opt,name=single_line_range,json=singleLineRange,proto3,oneof"` +} + +type Occurrence_MultiLineRange struct { + // Range spanning multiple lines. + MultiLineRange *MultiLineRange `protobuf:"bytes,9,opt,name=multi_line_range,json=multiLineRange,proto3,oneof"` +} + +func (*Occurrence_SingleLineRange) isOccurrence_TypedRange() {} + +func (*Occurrence_MultiLineRange) isOccurrence_TypedRange() {} + +type isOccurrence_TypedEnclosingRange interface { + isOccurrence_TypedEnclosingRange() +} + +type Occurrence_SingleLineEnclosingRange struct { + SingleLineEnclosingRange *SingleLineRange `protobuf:"bytes,10,opt,name=single_line_enclosing_range,json=singleLineEnclosingRange,proto3,oneof"` +} + +type Occurrence_MultiLineEnclosingRange struct { + MultiLineEnclosingRange *MultiLineRange `protobuf:"bytes,11,opt,name=multi_line_enclosing_range,json=multiLineEnclosingRange,proto3,oneof"` +} + +func (*Occurrence_SingleLineEnclosingRange) isOccurrence_TypedEnclosingRange() {} + +func (*Occurrence_MultiLineEnclosingRange) isOccurrence_TypedEnclosingRange() {} + // Represents a diagnostic, such as a compiler error or warning, which should be // reported for a document. type Diagnostic struct { @@ -2442,7 +2672,7 @@ type Diagnostic struct { func (x *Diagnostic) Reset() { *x = Diagnostic{} - mi := &file_scip_proto_msgTypes[10] + mi := &file_scip_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2454,7 +2684,7 @@ func (x *Diagnostic) String() string { func (*Diagnostic) ProtoMessage() {} func (x *Diagnostic) ProtoReflect() protoreflect.Message { - mi := &file_scip_proto_msgTypes[10] + mi := &file_scip_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2467,7 +2697,7 @@ func (x *Diagnostic) ProtoReflect() protoreflect.Message { // Deprecated: Use Diagnostic.ProtoReflect.Descriptor instead. func (*Diagnostic) Descriptor() ([]byte, []int) { - return file_scip_proto_rawDescGZIP(), []int{10} + return file_scip_proto_rawDescGZIP(), []int{12} } func (x *Diagnostic) GetSeverity() Severity { @@ -2670,17 +2900,34 @@ const file_scip_proto_rawDesc = "" + "\fis_reference\x18\x02 \x01(\bR\visReference\x12+\n" + "\x11is_implementation\x18\x03 \x01(\bR\x10isImplementation\x12,\n" + "\x12is_type_definition\x18\x04 \x01(\bR\x10isTypeDefinition\x12#\n" + - "\ris_definition\x18\x05 \x01(\bR\fisDefinition\"\xa4\x02\n" + + "\ris_definition\x18\x05 \x01(\bR\fisDefinition\"s\n" + + "\x0fSingleLineRange\x12\x12\n" + + "\x04line\x18\x01 \x01(\x05R\x04line\x12'\n" + + "\x0fstart_character\x18\x02 \x01(\x05R\x0estartCharacter\x12#\n" + + "\rend_character\x18\x03 \x01(\x05R\fendCharacter\"\x98\x01\n" + + "\x0eMultiLineRange\x12\x1d\n" + "\n" + - "Occurrence\x12\x14\n" + - "\x05range\x18\x01 \x03(\x05R\x05range\x12\x16\n" + + "start_line\x18\x01 \x01(\x05R\tstartLine\x12'\n" + + "\x0fstart_character\x18\x02 \x01(\x05R\x0estartCharacter\x12\x19\n" + + "\bend_line\x18\x03 \x01(\x05R\aendLine\x12#\n" + + "\rend_character\x18\x04 \x01(\x05R\fendCharacter\"\x88\x05\n" + + "\n" + + "Occurrence\x12\x18\n" + + "\x05range\x18\x01 \x03(\x05B\x02\x18\x01R\x05range\x12C\n" + + "\x11single_line_range\x18\b \x01(\v2\x15.scip.SingleLineRangeH\x00R\x0fsingleLineRange\x12@\n" + + "\x10multi_line_range\x18\t \x01(\v2\x14.scip.MultiLineRangeH\x00R\x0emultiLineRange\x12\x16\n" + "\x06symbol\x18\x02 \x01(\tR\x06symbol\x12!\n" + "\fsymbol_roles\x18\x03 \x01(\x05R\vsymbolRoles\x125\n" + "\x16override_documentation\x18\x04 \x03(\tR\x15overrideDocumentation\x121\n" + "\vsyntax_kind\x18\x05 \x01(\x0e2\x10.scip.SyntaxKindR\n" + "syntaxKind\x122\n" + - "\vdiagnostics\x18\x06 \x03(\v2\x10.scip.DiagnosticR\vdiagnostics\x12'\n" + - "\x0fenclosing_range\x18\a \x03(\x05R\x0eenclosingRange\"\xa7\x01\n" + + "\vdiagnostics\x18\x06 \x03(\v2\x10.scip.DiagnosticR\vdiagnostics\x12+\n" + + "\x0fenclosing_range\x18\a \x03(\x05B\x02\x18\x01R\x0eenclosingRange\x12V\n" + + "\x1bsingle_line_enclosing_range\x18\n" + + " \x01(\v2\x15.scip.SingleLineRangeH\x01R\x18singleLineEnclosingRange\x12S\n" + + "\x1amulti_line_enclosing_range\x18\v \x01(\v2\x14.scip.MultiLineRangeH\x01R\x17multiLineEnclosingRangeB\r\n" + + "\vtyped_rangeB\x17\n" + + "\x15typed_enclosing_range\"\xa7\x01\n" + "\n" + "Diagnostic\x12*\n" + "\bseverity\x18\x01 \x01(\x0e2\x0e.scip.SeverityR\bseverity\x12\x12\n" + @@ -2920,7 +3167,7 @@ func file_scip_proto_rawDescGZIP() []byte { } var file_scip_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_scip_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_scip_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_scip_proto_goTypes = []any{ (ProtocolVersion)(0), // 0: scip.ProtocolVersion (TextEncoding)(0), // 1: scip.TextEncoding @@ -2941,8 +3188,10 @@ var file_scip_proto_goTypes = []any{ (*Descriptor)(nil), // 16: scip.Descriptor (*SymbolInformation)(nil), // 17: scip.SymbolInformation (*Relationship)(nil), // 18: scip.Relationship - (*Occurrence)(nil), // 19: scip.Occurrence - (*Diagnostic)(nil), // 20: scip.Diagnostic + (*SingleLineRange)(nil), // 19: scip.SingleLineRange + (*MultiLineRange)(nil), // 20: scip.MultiLineRange + (*Occurrence)(nil), // 21: scip.Occurrence + (*Diagnostic)(nil), // 22: scip.Diagnostic } var file_scip_proto_depIdxs = []int32{ 11, // 0: scip.Index.metadata:type_name -> scip.Metadata @@ -2951,7 +3200,7 @@ var file_scip_proto_depIdxs = []int32{ 0, // 3: scip.Metadata.version:type_name -> scip.ProtocolVersion 12, // 4: scip.Metadata.tool_info:type_name -> scip.ToolInfo 1, // 5: scip.Metadata.text_document_encoding:type_name -> scip.TextEncoding - 19, // 6: scip.Document.occurrences:type_name -> scip.Occurrence + 21, // 6: scip.Document.occurrences:type_name -> scip.Occurrence 17, // 7: scip.Document.symbols:type_name -> scip.SymbolInformation 2, // 8: scip.Document.position_encoding:type_name -> scip.PositionEncoding 15, // 9: scip.Symbol.package:type_name -> scip.Package @@ -2960,15 +3209,19 @@ var file_scip_proto_depIdxs = []int32{ 18, // 12: scip.SymbolInformation.relationships:type_name -> scip.Relationship 9, // 13: scip.SymbolInformation.kind:type_name -> scip.SymbolInformation.Kind 13, // 14: scip.SymbolInformation.signature_documentation:type_name -> scip.Document - 4, // 15: scip.Occurrence.syntax_kind:type_name -> scip.SyntaxKind - 20, // 16: scip.Occurrence.diagnostics:type_name -> scip.Diagnostic - 5, // 17: scip.Diagnostic.severity:type_name -> scip.Severity - 6, // 18: scip.Diagnostic.tags:type_name -> scip.DiagnosticTag - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 19, // 15: scip.Occurrence.single_line_range:type_name -> scip.SingleLineRange + 20, // 16: scip.Occurrence.multi_line_range:type_name -> scip.MultiLineRange + 4, // 17: scip.Occurrence.syntax_kind:type_name -> scip.SyntaxKind + 22, // 18: scip.Occurrence.diagnostics:type_name -> scip.Diagnostic + 19, // 19: scip.Occurrence.single_line_enclosing_range:type_name -> scip.SingleLineRange + 20, // 20: scip.Occurrence.multi_line_enclosing_range:type_name -> scip.MultiLineRange + 5, // 21: scip.Diagnostic.severity:type_name -> scip.Severity + 6, // 22: scip.Diagnostic.tags:type_name -> scip.DiagnosticTag + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_scip_proto_init() } @@ -2976,13 +3229,19 @@ func file_scip_proto_init() { if File_scip_proto != nil { return } + file_scip_proto_msgTypes[11].OneofWrappers = []any{ + (*Occurrence_SingleLineRange)(nil), + (*Occurrence_MultiLineRange)(nil), + (*Occurrence_SingleLineEnclosingRange)(nil), + (*Occurrence_MultiLineEnclosingRange)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_scip_proto_rawDesc), len(file_scip_proto_rawDesc)), NumEnums: 10, - NumMessages: 11, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/bindings/haskell/src/Proto/Scip.hs b/bindings/haskell/src/Proto/Scip.hs index 968c0c2e..7d96375b 100644 --- a/bindings/haskell/src/Proto/Scip.hs +++ b/bindings/haskell/src/Proto/Scip.hs @@ -9,16 +9,20 @@ module Proto.Scip ( Descriptor'Suffix'UnrecognizedValue, Diagnostic(), DiagnosticTag(..), DiagnosticTag(), DiagnosticTag'UnrecognizedValue, Document(), Index(), Language(..), - Language(), Language'UnrecognizedValue, Metadata(), Occurrence(), - Package(), PositionEncoding(..), PositionEncoding(), + Language(), Language'UnrecognizedValue, Metadata(), + MultiLineRange(), Occurrence(), Occurrence'TypedRange(..), + Occurrence'TypedEnclosingRange(..), _Occurrence'SingleLineRange, + _Occurrence'MultiLineRange, _Occurrence'SingleLineEnclosingRange, + _Occurrence'MultiLineEnclosingRange, Package(), + PositionEncoding(..), PositionEncoding(), PositionEncoding'UnrecognizedValue, ProtocolVersion(..), ProtocolVersion(), ProtocolVersion'UnrecognizedValue, Relationship(), Severity(..), Severity(), - Severity'UnrecognizedValue, Symbol(), SymbolInformation(), - SymbolInformation'Kind(..), SymbolInformation'Kind(), - SymbolInformation'Kind'UnrecognizedValue, SymbolRole(..), - SymbolRole(), SymbolRole'UnrecognizedValue, SyntaxKind(..), - SyntaxKind(IdentifierKeyword, IdentifierModule), + Severity'UnrecognizedValue, SingleLineRange(), Symbol(), + SymbolInformation(), SymbolInformation'Kind(..), + SymbolInformation'Kind(), SymbolInformation'Kind'UnrecognizedValue, + SymbolRole(..), SymbolRole(), SymbolRole'UnrecognizedValue, + SyntaxKind(..), SyntaxKind(IdentifierKeyword, IdentifierModule), SyntaxKind'UnrecognizedValue, TextEncoding(..), TextEncoding(), TextEncoding'UnrecognizedValue, ToolInfo() ) where @@ -2524,6 +2528,245 @@ instance Control.DeepSeq.NFData Metadata where (_Metadata'textDocumentEncoding x__) ())))) {- | Fields : + * 'Proto.Scip_Fields.startLine' @:: Lens' MultiLineRange Data.Int.Int32@ + * 'Proto.Scip_Fields.startCharacter' @:: Lens' MultiLineRange Data.Int.Int32@ + * 'Proto.Scip_Fields.endLine' @:: Lens' MultiLineRange Data.Int.Int32@ + * 'Proto.Scip_Fields.endCharacter' @:: Lens' MultiLineRange Data.Int.Int32@ -} +data MultiLineRange + = MultiLineRange'_constructor {_MultiLineRange'startLine :: !Data.Int.Int32, + _MultiLineRange'startCharacter :: !Data.Int.Int32, + _MultiLineRange'endLine :: !Data.Int.Int32, + _MultiLineRange'endCharacter :: !Data.Int.Int32, + _MultiLineRange'_unknownFields :: !Data.ProtoLens.FieldSet} + deriving stock (Prelude.Eq, Prelude.Ord) +instance Prelude.Show MultiLineRange where + showsPrec _ __x __s + = Prelude.showChar + '{' + (Prelude.showString + (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) +instance Data.ProtoLens.Field.HasField MultiLineRange "startLine" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _MultiLineRange'startLine + (\ x__ y__ -> x__ {_MultiLineRange'startLine = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField MultiLineRange "startCharacter" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _MultiLineRange'startCharacter + (\ x__ y__ -> x__ {_MultiLineRange'startCharacter = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField MultiLineRange "endLine" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _MultiLineRange'endLine + (\ x__ y__ -> x__ {_MultiLineRange'endLine = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField MultiLineRange "endCharacter" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _MultiLineRange'endCharacter + (\ x__ y__ -> x__ {_MultiLineRange'endCharacter = y__})) + Prelude.id +instance Data.ProtoLens.Message MultiLineRange where + messageName _ = Data.Text.pack "scip.MultiLineRange" + packedMessageDescriptor _ + = "\n\ + \\SOMultiLineRange\DC2\GS\n\ + \\n\ + \start_line\CAN\SOH \SOH(\ENQR\tstartLine\DC2'\n\ + \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2\EM\n\ + \\bend_line\CAN\ETX \SOH(\ENQR\aendLine\DC2#\n\ + \\rend_character\CAN\EOT \SOH(\ENQR\fendCharacter" + packedFileDescriptor _ = packedFileDescriptor + fieldsByTag + = let + startLine__field_descriptor + = Data.ProtoLens.FieldDescriptor + "start_line" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional + (Data.ProtoLens.Field.field @"startLine")) :: + Data.ProtoLens.FieldDescriptor MultiLineRange + startCharacter__field_descriptor + = Data.ProtoLens.FieldDescriptor + "start_character" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional + (Data.ProtoLens.Field.field @"startCharacter")) :: + Data.ProtoLens.FieldDescriptor MultiLineRange + endLine__field_descriptor + = Data.ProtoLens.FieldDescriptor + "end_line" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"endLine")) :: + Data.ProtoLens.FieldDescriptor MultiLineRange + endCharacter__field_descriptor + = Data.ProtoLens.FieldDescriptor + "end_character" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional + (Data.ProtoLens.Field.field @"endCharacter")) :: + Data.ProtoLens.FieldDescriptor MultiLineRange + in + Data.Map.fromList + [(Data.ProtoLens.Tag 1, startLine__field_descriptor), + (Data.ProtoLens.Tag 2, startCharacter__field_descriptor), + (Data.ProtoLens.Tag 3, endLine__field_descriptor), + (Data.ProtoLens.Tag 4, endCharacter__field_descriptor)] + unknownFields + = Lens.Family2.Unchecked.lens + _MultiLineRange'_unknownFields + (\ x__ y__ -> x__ {_MultiLineRange'_unknownFields = y__}) + defMessage + = MultiLineRange'_constructor + {_MultiLineRange'startLine = Data.ProtoLens.fieldDefault, + _MultiLineRange'startCharacter = Data.ProtoLens.fieldDefault, + _MultiLineRange'endLine = Data.ProtoLens.fieldDefault, + _MultiLineRange'endCharacter = Data.ProtoLens.fieldDefault, + _MultiLineRange'_unknownFields = []} + parseMessage + = let + loop :: + MultiLineRange + -> Data.ProtoLens.Encoding.Bytes.Parser MultiLineRange + loop x + = do end <- Data.ProtoLens.Encoding.Bytes.atEnd + if end then + do (let missing = [] + in + if Prelude.null missing then + Prelude.return () + else + Prelude.fail + ((Prelude.++) + "Missing required fields: " + (Prelude.show (missing :: [Prelude.String])))) + Prelude.return + (Lens.Family2.over + Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) + else + do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt + case tag of + 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "start_line" + loop + (Lens.Family2.set (Data.ProtoLens.Field.field @"startLine") y x) + 16 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "start_character" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"startCharacter") y x) + 24 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "end_line" + loop (Lens.Family2.set (Data.ProtoLens.Field.field @"endLine") y x) + 32 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "end_character" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"endCharacter") y x) + wire + -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire + wire + loop + (Lens.Family2.over + Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) + in + (Data.ProtoLens.Encoding.Bytes.) + (do loop Data.ProtoLens.defMessage) "MultiLineRange" + buildMessage + = \ _x + -> (Data.Monoid.<>) + (let + _v = Lens.Family2.view (Data.ProtoLens.Field.field @"startLine") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 8) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + ((Data.Monoid.<>) + (let + _v + = Lens.Family2.view + (Data.ProtoLens.Field.field @"startCharacter") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 16) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + ((Data.Monoid.<>) + (let + _v = Lens.Family2.view (Data.ProtoLens.Field.field @"endLine") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 24) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + ((Data.Monoid.<>) + (let + _v + = Lens.Family2.view (Data.ProtoLens.Field.field @"endCharacter") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 32) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + (Data.ProtoLens.Encoding.Wire.buildFieldSet + (Lens.Family2.view Data.ProtoLens.unknownFields _x))))) +instance Control.DeepSeq.NFData MultiLineRange where + rnf + = \ x__ + -> Control.DeepSeq.deepseq + (_MultiLineRange'_unknownFields x__) + (Control.DeepSeq.deepseq + (_MultiLineRange'startLine x__) + (Control.DeepSeq.deepseq + (_MultiLineRange'startCharacter x__) + (Control.DeepSeq.deepseq + (_MultiLineRange'endLine x__) + (Control.DeepSeq.deepseq (_MultiLineRange'endCharacter x__) ())))) +{- | Fields : + * 'Proto.Scip_Fields.range' @:: Lens' Occurrence [Data.Int.Int32]@ * 'Proto.Scip_Fields.vec'range' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@ * 'Proto.Scip_Fields.symbol' @:: Lens' Occurrence Data.Text.Text@ @@ -2534,7 +2777,17 @@ instance Control.DeepSeq.NFData Metadata where * 'Proto.Scip_Fields.diagnostics' @:: Lens' Occurrence [Diagnostic]@ * 'Proto.Scip_Fields.vec'diagnostics' @:: Lens' Occurrence (Data.Vector.Vector Diagnostic)@ * 'Proto.Scip_Fields.enclosingRange' @:: Lens' Occurrence [Data.Int.Int32]@ - * 'Proto.Scip_Fields.vec'enclosingRange' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@ -} + * 'Proto.Scip_Fields.vec'enclosingRange' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@ + * 'Proto.Scip_Fields.maybe'typedRange' @:: Lens' Occurrence (Prelude.Maybe Occurrence'TypedRange)@ + * 'Proto.Scip_Fields.maybe'singleLineRange' @:: Lens' Occurrence (Prelude.Maybe SingleLineRange)@ + * 'Proto.Scip_Fields.singleLineRange' @:: Lens' Occurrence SingleLineRange@ + * 'Proto.Scip_Fields.maybe'multiLineRange' @:: Lens' Occurrence (Prelude.Maybe MultiLineRange)@ + * 'Proto.Scip_Fields.multiLineRange' @:: Lens' Occurrence MultiLineRange@ + * 'Proto.Scip_Fields.maybe'typedEnclosingRange' @:: Lens' Occurrence (Prelude.Maybe Occurrence'TypedEnclosingRange)@ + * 'Proto.Scip_Fields.maybe'singleLineEnclosingRange' @:: Lens' Occurrence (Prelude.Maybe SingleLineRange)@ + * 'Proto.Scip_Fields.singleLineEnclosingRange' @:: Lens' Occurrence SingleLineRange@ + * 'Proto.Scip_Fields.maybe'multiLineEnclosingRange' @:: Lens' Occurrence (Prelude.Maybe MultiLineRange)@ + * 'Proto.Scip_Fields.multiLineEnclosingRange' @:: Lens' Occurrence MultiLineRange@ -} data Occurrence = Occurrence'_constructor {_Occurrence'range :: !(Data.Vector.Unboxed.Vector Data.Int.Int32), _Occurrence'symbol :: !Data.Text.Text, @@ -2543,6 +2796,8 @@ data Occurrence _Occurrence'syntaxKind :: !SyntaxKind, _Occurrence'diagnostics :: !(Data.Vector.Vector Diagnostic), _Occurrence'enclosingRange :: !(Data.Vector.Unboxed.Vector Data.Int.Int32), + _Occurrence'typedRange :: !(Prelude.Maybe Occurrence'TypedRange), + _Occurrence'typedEnclosingRange :: !(Prelude.Maybe Occurrence'TypedEnclosingRange), _Occurrence'_unknownFields :: !Data.ProtoLens.FieldSet} deriving stock (Prelude.Eq, Prelude.Ord) instance Prelude.Show Occurrence where @@ -2551,6 +2806,14 @@ instance Prelude.Show Occurrence where '{' (Prelude.showString (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) +data Occurrence'TypedRange + = Occurrence'SingleLineRange !SingleLineRange | + Occurrence'MultiLineRange !MultiLineRange + deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord) +data Occurrence'TypedEnclosingRange + = Occurrence'SingleLineEnclosingRange !SingleLineRange | + Occurrence'MultiLineEnclosingRange !MultiLineRange + deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord) instance Data.ProtoLens.Field.HasField Occurrence "range" [Data.Int.Int32] where fieldOf _ = (Prelude..) @@ -2633,20 +2896,153 @@ instance Data.ProtoLens.Field.HasField Occurrence "vec'enclosingRange" (Data.Vec _Occurrence'enclosingRange (\ x__ y__ -> x__ {_Occurrence'enclosingRange = y__})) Prelude.id +instance Data.ProtoLens.Field.HasField Occurrence "maybe'typedRange" (Prelude.Maybe Occurrence'TypedRange) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedRange + (\ x__ y__ -> x__ {_Occurrence'typedRange = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField Occurrence "maybe'singleLineRange" (Prelude.Maybe SingleLineRange) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedRange + (\ x__ y__ -> x__ {_Occurrence'typedRange = y__})) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'SingleLineRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'SingleLineRange y__)) +instance Data.ProtoLens.Field.HasField Occurrence "singleLineRange" SingleLineRange where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedRange + (\ x__ y__ -> x__ {_Occurrence'typedRange = y__})) + ((Prelude..) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'SingleLineRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'SingleLineRange y__)) + (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)) +instance Data.ProtoLens.Field.HasField Occurrence "maybe'multiLineRange" (Prelude.Maybe MultiLineRange) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedRange + (\ x__ y__ -> x__ {_Occurrence'typedRange = y__})) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'MultiLineRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'MultiLineRange y__)) +instance Data.ProtoLens.Field.HasField Occurrence "multiLineRange" MultiLineRange where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedRange + (\ x__ y__ -> x__ {_Occurrence'typedRange = y__})) + ((Prelude..) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'MultiLineRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'MultiLineRange y__)) + (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)) +instance Data.ProtoLens.Field.HasField Occurrence "maybe'typedEnclosingRange" (Prelude.Maybe Occurrence'TypedEnclosingRange) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedEnclosingRange + (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField Occurrence "maybe'singleLineEnclosingRange" (Prelude.Maybe SingleLineRange) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedEnclosingRange + (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__})) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'SingleLineEnclosingRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'SingleLineEnclosingRange y__)) +instance Data.ProtoLens.Field.HasField Occurrence "singleLineEnclosingRange" SingleLineRange where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedEnclosingRange + (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__})) + ((Prelude..) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'SingleLineEnclosingRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'SingleLineEnclosingRange y__)) + (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)) +instance Data.ProtoLens.Field.HasField Occurrence "maybe'multiLineEnclosingRange" (Prelude.Maybe MultiLineRange) where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedEnclosingRange + (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__})) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'MultiLineEnclosingRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'MultiLineEnclosingRange y__)) +instance Data.ProtoLens.Field.HasField Occurrence "multiLineEnclosingRange" MultiLineRange where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _Occurrence'typedEnclosingRange + (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__})) + ((Prelude..) + (Lens.Family2.Unchecked.lens + (\ x__ + -> case x__ of + (Prelude.Just (Occurrence'MultiLineEnclosingRange x__val)) + -> Prelude.Just x__val + _otherwise -> Prelude.Nothing) + (\ _ y__ -> Prelude.fmap Occurrence'MultiLineEnclosingRange y__)) + (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)) instance Data.ProtoLens.Message Occurrence where messageName _ = Data.Text.pack "scip.Occurrence" packedMessageDescriptor _ = "\n\ \\n\ - \Occurrence\DC2\DC4\n\ - \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrange\DC2\SYN\n\ + \Occurrence\DC2\CAN\n\ + \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrangeB\STX\CAN\SOH\DC2C\n\ + \\DC1single_line_range\CAN\b \SOH(\v2\NAK.scip.SingleLineRangeH\NULR\SIsingleLineRange\DC2@\n\ + \\DLEmulti_line_range\CAN\t \SOH(\v2\DC4.scip.MultiLineRangeH\NULR\SOmultiLineRange\DC2\SYN\n\ \\ACKsymbol\CAN\STX \SOH(\tR\ACKsymbol\DC2!\n\ \\fsymbol_roles\CAN\ETX \SOH(\ENQR\vsymbolRoles\DC25\n\ \\SYNoverride_documentation\CAN\EOT \ETX(\tR\NAKoverrideDocumentation\DC21\n\ \\vsyntax_kind\CAN\ENQ \SOH(\SO2\DLE.scip.SyntaxKindR\n\ \syntaxKind\DC22\n\ - \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2'\n\ - \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRange" + \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2+\n\ + \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRangeB\STX\CAN\SOH\DC2V\n\ + \\ESCsingle_line_enclosing_range\CAN\n\ + \ \SOH(\v2\NAK.scip.SingleLineRangeH\SOHR\CANsingleLineEnclosingRange\DC2S\n\ + \\SUBmulti_line_enclosing_range\CAN\v \SOH(\v2\DC4.scip.MultiLineRangeH\SOHR\ETBmultiLineEnclosingRangeB\r\n\ + \\vtyped_rangeB\ETB\n\ + \\NAKtyped_enclosing_range" packedFileDescriptor _ = packedFileDescriptor fieldsByTag = let @@ -2711,6 +3107,38 @@ instance Data.ProtoLens.Message Occurrence where Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"enclosingRange")) :: Data.ProtoLens.FieldDescriptor Occurrence + singleLineRange__field_descriptor + = Data.ProtoLens.FieldDescriptor + "single_line_range" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor SingleLineRange) + (Data.ProtoLens.OptionalField + (Data.ProtoLens.Field.field @"maybe'singleLineRange")) :: + Data.ProtoLens.FieldDescriptor Occurrence + multiLineRange__field_descriptor + = Data.ProtoLens.FieldDescriptor + "multi_line_range" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor MultiLineRange) + (Data.ProtoLens.OptionalField + (Data.ProtoLens.Field.field @"maybe'multiLineRange")) :: + Data.ProtoLens.FieldDescriptor Occurrence + singleLineEnclosingRange__field_descriptor + = Data.ProtoLens.FieldDescriptor + "single_line_enclosing_range" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor SingleLineRange) + (Data.ProtoLens.OptionalField + (Data.ProtoLens.Field.field @"maybe'singleLineEnclosingRange")) :: + Data.ProtoLens.FieldDescriptor Occurrence + multiLineEnclosingRange__field_descriptor + = Data.ProtoLens.FieldDescriptor + "multi_line_enclosing_range" + (Data.ProtoLens.MessageField Data.ProtoLens.MessageType :: + Data.ProtoLens.FieldTypeDescriptor MultiLineRange) + (Data.ProtoLens.OptionalField + (Data.ProtoLens.Field.field @"maybe'multiLineEnclosingRange")) :: + Data.ProtoLens.FieldDescriptor Occurrence in Data.Map.fromList [(Data.ProtoLens.Tag 1, range__field_descriptor), @@ -2719,7 +3147,12 @@ instance Data.ProtoLens.Message Occurrence where (Data.ProtoLens.Tag 4, overrideDocumentation__field_descriptor), (Data.ProtoLens.Tag 5, syntaxKind__field_descriptor), (Data.ProtoLens.Tag 6, diagnostics__field_descriptor), - (Data.ProtoLens.Tag 7, enclosingRange__field_descriptor)] + (Data.ProtoLens.Tag 7, enclosingRange__field_descriptor), + (Data.ProtoLens.Tag 8, singleLineRange__field_descriptor), + (Data.ProtoLens.Tag 9, multiLineRange__field_descriptor), + (Data.ProtoLens.Tag 10, + singleLineEnclosingRange__field_descriptor), + (Data.ProtoLens.Tag 11, multiLineEnclosingRange__field_descriptor)] unknownFields = Lens.Family2.Unchecked.lens _Occurrence'_unknownFields @@ -2733,6 +3166,8 @@ instance Data.ProtoLens.Message Occurrence where _Occurrence'syntaxKind = Data.ProtoLens.fieldDefault, _Occurrence'diagnostics = Data.Vector.Generic.empty, _Occurrence'enclosingRange = Data.Vector.Generic.empty, + _Occurrence'typedRange = Prelude.Nothing, + _Occurrence'typedEnclosingRange = Prelude.Nothing, _Occurrence'_unknownFields = []} parseMessage = let @@ -2912,6 +3347,50 @@ instance Data.ProtoLens.Message Occurrence where loop x mutable'diagnostics y mutable'overrideDocumentation mutable'range + 66 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) + "single_line_range" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"singleLineRange") y x) + mutable'diagnostics mutable'enclosingRange + mutable'overrideDocumentation mutable'range + 74 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) + "multi_line_range" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"multiLineRange") y x) + mutable'diagnostics mutable'enclosingRange + mutable'overrideDocumentation mutable'range + 82 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) + "single_line_enclosing_range" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"singleLineEnclosingRange") y x) + mutable'diagnostics mutable'enclosingRange + mutable'overrideDocumentation mutable'range + 90 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt + Data.ProtoLens.Encoding.Bytes.isolate + (Prelude.fromIntegral len) Data.ProtoLens.parseMessage) + "multi_line_enclosing_range" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"multiLineEnclosingRange") y x) + mutable'diagnostics mutable'enclosingRange + mutable'overrideDocumentation mutable'range wire -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire wire @@ -3049,8 +3528,68 @@ instance Data.ProtoLens.Message Occurrence where Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral) p)))) - (Data.ProtoLens.Encoding.Wire.buildFieldSet - (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))) + ((Data.Monoid.<>) + (case + Lens.Family2.view + (Data.ProtoLens.Field.field @"maybe'typedRange") _x + of + Prelude.Nothing -> Data.Monoid.mempty + (Prelude.Just (Occurrence'SingleLineRange v)) + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 66) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral + (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes bs)) + Data.ProtoLens.encodeMessage v) + (Prelude.Just (Occurrence'MultiLineRange v)) + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 74) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral + (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes bs)) + Data.ProtoLens.encodeMessage v)) + ((Data.Monoid.<>) + (case + Lens.Family2.view + (Data.ProtoLens.Field.field + @"maybe'typedEnclosingRange") + _x + of + Prelude.Nothing -> Data.Monoid.mempty + (Prelude.Just (Occurrence'SingleLineEnclosingRange v)) + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 82) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral + (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes + bs)) + Data.ProtoLens.encodeMessage v) + (Prelude.Just (Occurrence'MultiLineEnclosingRange v)) + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 90) + ((Prelude..) + (\ bs + -> (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt + (Prelude.fromIntegral + (Data.ByteString.length bs))) + (Data.ProtoLens.Encoding.Bytes.putBytes + bs)) + Data.ProtoLens.encodeMessage v)) + (Data.ProtoLens.Encoding.Wire.buildFieldSet + (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))))) instance Control.DeepSeq.NFData Occurrence where rnf = \ x__ @@ -3068,7 +3607,56 @@ instance Control.DeepSeq.NFData Occurrence where (_Occurrence'syntaxKind x__) (Control.DeepSeq.deepseq (_Occurrence'diagnostics x__) - (Control.DeepSeq.deepseq (_Occurrence'enclosingRange x__) ()))))))) + (Control.DeepSeq.deepseq + (_Occurrence'enclosingRange x__) + (Control.DeepSeq.deepseq + (_Occurrence'typedRange x__) + (Control.DeepSeq.deepseq + (_Occurrence'typedEnclosingRange x__) ()))))))))) +instance Control.DeepSeq.NFData Occurrence'TypedRange where + rnf (Occurrence'SingleLineRange x__) = Control.DeepSeq.rnf x__ + rnf (Occurrence'MultiLineRange x__) = Control.DeepSeq.rnf x__ +instance Control.DeepSeq.NFData Occurrence'TypedEnclosingRange where + rnf (Occurrence'SingleLineEnclosingRange x__) + = Control.DeepSeq.rnf x__ + rnf (Occurrence'MultiLineEnclosingRange x__) + = Control.DeepSeq.rnf x__ +_Occurrence'SingleLineRange :: + Data.ProtoLens.Prism.Prism' Occurrence'TypedRange SingleLineRange +_Occurrence'SingleLineRange + = Data.ProtoLens.Prism.prism' + Occurrence'SingleLineRange + (\ p__ + -> case p__ of + (Occurrence'SingleLineRange p__val) -> Prelude.Just p__val + _otherwise -> Prelude.Nothing) +_Occurrence'MultiLineRange :: + Data.ProtoLens.Prism.Prism' Occurrence'TypedRange MultiLineRange +_Occurrence'MultiLineRange + = Data.ProtoLens.Prism.prism' + Occurrence'MultiLineRange + (\ p__ + -> case p__ of + (Occurrence'MultiLineRange p__val) -> Prelude.Just p__val + _otherwise -> Prelude.Nothing) +_Occurrence'SingleLineEnclosingRange :: + Data.ProtoLens.Prism.Prism' Occurrence'TypedEnclosingRange SingleLineRange +_Occurrence'SingleLineEnclosingRange + = Data.ProtoLens.Prism.prism' + Occurrence'SingleLineEnclosingRange + (\ p__ + -> case p__ of + (Occurrence'SingleLineEnclosingRange p__val) -> Prelude.Just p__val + _otherwise -> Prelude.Nothing) +_Occurrence'MultiLineEnclosingRange :: + Data.ProtoLens.Prism.Prism' Occurrence'TypedEnclosingRange MultiLineRange +_Occurrence'MultiLineEnclosingRange + = Data.ProtoLens.Prism.prism' + Occurrence'MultiLineEnclosingRange + (\ p__ + -> case p__ of + (Occurrence'MultiLineEnclosingRange p__val) -> Prelude.Just p__val + _otherwise -> Prelude.Nothing) {- | Fields : * 'Proto.Scip_Fields.manager' @:: Lens' Package Data.Text.Text@ @@ -3783,6 +4371,201 @@ instance Control.DeepSeq.NFData Severity where rnf x__ = Prelude.seq x__ () {- | Fields : + * 'Proto.Scip_Fields.line' @:: Lens' SingleLineRange Data.Int.Int32@ + * 'Proto.Scip_Fields.startCharacter' @:: Lens' SingleLineRange Data.Int.Int32@ + * 'Proto.Scip_Fields.endCharacter' @:: Lens' SingleLineRange Data.Int.Int32@ -} +data SingleLineRange + = SingleLineRange'_constructor {_SingleLineRange'line :: !Data.Int.Int32, + _SingleLineRange'startCharacter :: !Data.Int.Int32, + _SingleLineRange'endCharacter :: !Data.Int.Int32, + _SingleLineRange'_unknownFields :: !Data.ProtoLens.FieldSet} + deriving stock (Prelude.Eq, Prelude.Ord) +instance Prelude.Show SingleLineRange where + showsPrec _ __x __s + = Prelude.showChar + '{' + (Prelude.showString + (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s)) +instance Data.ProtoLens.Field.HasField SingleLineRange "line" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _SingleLineRange'line + (\ x__ y__ -> x__ {_SingleLineRange'line = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField SingleLineRange "startCharacter" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _SingleLineRange'startCharacter + (\ x__ y__ -> x__ {_SingleLineRange'startCharacter = y__})) + Prelude.id +instance Data.ProtoLens.Field.HasField SingleLineRange "endCharacter" Data.Int.Int32 where + fieldOf _ + = (Prelude..) + (Lens.Family2.Unchecked.lens + _SingleLineRange'endCharacter + (\ x__ y__ -> x__ {_SingleLineRange'endCharacter = y__})) + Prelude.id +instance Data.ProtoLens.Message SingleLineRange where + messageName _ = Data.Text.pack "scip.SingleLineRange" + packedMessageDescriptor _ + = "\n\ + \\SISingleLineRange\DC2\DC2\n\ + \\EOTline\CAN\SOH \SOH(\ENQR\EOTline\DC2'\n\ + \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2#\n\ + \\rend_character\CAN\ETX \SOH(\ENQR\fendCharacter" + packedFileDescriptor _ = packedFileDescriptor + fieldsByTag + = let + line__field_descriptor + = Data.ProtoLens.FieldDescriptor + "line" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"line")) :: + Data.ProtoLens.FieldDescriptor SingleLineRange + startCharacter__field_descriptor + = Data.ProtoLens.FieldDescriptor + "start_character" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional + (Data.ProtoLens.Field.field @"startCharacter")) :: + Data.ProtoLens.FieldDescriptor SingleLineRange + endCharacter__field_descriptor + = Data.ProtoLens.FieldDescriptor + "end_character" + (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field :: + Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32) + (Data.ProtoLens.PlainField + Data.ProtoLens.Optional + (Data.ProtoLens.Field.field @"endCharacter")) :: + Data.ProtoLens.FieldDescriptor SingleLineRange + in + Data.Map.fromList + [(Data.ProtoLens.Tag 1, line__field_descriptor), + (Data.ProtoLens.Tag 2, startCharacter__field_descriptor), + (Data.ProtoLens.Tag 3, endCharacter__field_descriptor)] + unknownFields + = Lens.Family2.Unchecked.lens + _SingleLineRange'_unknownFields + (\ x__ y__ -> x__ {_SingleLineRange'_unknownFields = y__}) + defMessage + = SingleLineRange'_constructor + {_SingleLineRange'line = Data.ProtoLens.fieldDefault, + _SingleLineRange'startCharacter = Data.ProtoLens.fieldDefault, + _SingleLineRange'endCharacter = Data.ProtoLens.fieldDefault, + _SingleLineRange'_unknownFields = []} + parseMessage + = let + loop :: + SingleLineRange + -> Data.ProtoLens.Encoding.Bytes.Parser SingleLineRange + loop x + = do end <- Data.ProtoLens.Encoding.Bytes.atEnd + if end then + do (let missing = [] + in + if Prelude.null missing then + Prelude.return () + else + Prelude.fail + ((Prelude.++) + "Missing required fields: " + (Prelude.show (missing :: [Prelude.String])))) + Prelude.return + (Lens.Family2.over + Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x) + else + do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt + case tag of + 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "line" + loop (Lens.Family2.set (Data.ProtoLens.Field.field @"line") y x) + 16 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "start_character" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"startCharacter") y x) + 24 + -> do y <- (Data.ProtoLens.Encoding.Bytes.) + (Prelude.fmap + Prelude.fromIntegral + Data.ProtoLens.Encoding.Bytes.getVarInt) + "end_character" + loop + (Lens.Family2.set + (Data.ProtoLens.Field.field @"endCharacter") y x) + wire + -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire + wire + loop + (Lens.Family2.over + Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) + in + (Data.ProtoLens.Encoding.Bytes.) + (do loop Data.ProtoLens.defMessage) "SingleLineRange" + buildMessage + = \ _x + -> (Data.Monoid.<>) + (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"line") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 8) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + ((Data.Monoid.<>) + (let + _v + = Lens.Family2.view + (Data.ProtoLens.Field.field @"startCharacter") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 16) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + ((Data.Monoid.<>) + (let + _v + = Lens.Family2.view (Data.ProtoLens.Field.field @"endCharacter") _x + in + if (Prelude.==) _v Data.ProtoLens.fieldDefault then + Data.Monoid.mempty + else + (Data.Monoid.<>) + (Data.ProtoLens.Encoding.Bytes.putVarInt 24) + ((Prelude..) + Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v)) + (Data.ProtoLens.Encoding.Wire.buildFieldSet + (Lens.Family2.view Data.ProtoLens.unknownFields _x)))) +instance Control.DeepSeq.NFData SingleLineRange where + rnf + = \ x__ + -> Control.DeepSeq.deepseq + (_SingleLineRange'_unknownFields x__) + (Control.DeepSeq.deepseq + (_SingleLineRange'line x__) + (Control.DeepSeq.deepseq + (_SingleLineRange'startCharacter x__) + (Control.DeepSeq.deepseq (_SingleLineRange'endCharacter x__) ()))) +{- | Fields : + * 'Proto.Scip_Fields.scheme' @:: Lens' Symbol Data.Text.Text@ * 'Proto.Scip_Fields.package' @:: Lens' Symbol Package@ * 'Proto.Scip_Fields.maybe'package' @:: Lens' Symbol (Prelude.Maybe Package)@ @@ -6186,17 +6969,34 @@ packedFileDescriptor \\fis_reference\CAN\STX \SOH(\bR\visReference\DC2+\n\ \\DC1is_implementation\CAN\ETX \SOH(\bR\DLEisImplementation\DC2,\n\ \\DC2is_type_definition\CAN\EOT \SOH(\bR\DLEisTypeDefinition\DC2#\n\ - \\ris_definition\CAN\ENQ \SOH(\bR\fisDefinition\"\164\STX\n\ - \\n\ - \Occurrence\DC2\DC4\n\ - \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrange\DC2\SYN\n\ + \\ris_definition\CAN\ENQ \SOH(\bR\fisDefinition\"s\n\ + \\SISingleLineRange\DC2\DC2\n\ + \\EOTline\CAN\SOH \SOH(\ENQR\EOTline\DC2'\n\ + \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2#\n\ + \\rend_character\CAN\ETX \SOH(\ENQR\fendCharacter\"\152\SOH\n\ + \\SOMultiLineRange\DC2\GS\n\ + \\n\ + \start_line\CAN\SOH \SOH(\ENQR\tstartLine\DC2'\n\ + \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2\EM\n\ + \\bend_line\CAN\ETX \SOH(\ENQR\aendLine\DC2#\n\ + \\rend_character\CAN\EOT \SOH(\ENQR\fendCharacter\"\136\ENQ\n\ + \\n\ + \Occurrence\DC2\CAN\n\ + \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrangeB\STX\CAN\SOH\DC2C\n\ + \\DC1single_line_range\CAN\b \SOH(\v2\NAK.scip.SingleLineRangeH\NULR\SIsingleLineRange\DC2@\n\ + \\DLEmulti_line_range\CAN\t \SOH(\v2\DC4.scip.MultiLineRangeH\NULR\SOmultiLineRange\DC2\SYN\n\ \\ACKsymbol\CAN\STX \SOH(\tR\ACKsymbol\DC2!\n\ \\fsymbol_roles\CAN\ETX \SOH(\ENQR\vsymbolRoles\DC25\n\ \\SYNoverride_documentation\CAN\EOT \ETX(\tR\NAKoverrideDocumentation\DC21\n\ \\vsyntax_kind\CAN\ENQ \SOH(\SO2\DLE.scip.SyntaxKindR\n\ \syntaxKind\DC22\n\ - \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2'\n\ - \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRange\"\167\SOH\n\ + \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2+\n\ + \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRangeB\STX\CAN\SOH\DC2V\n\ + \\ESCsingle_line_enclosing_range\CAN\n\ + \ \SOH(\v2\NAK.scip.SingleLineRangeH\SOHR\CANsingleLineEnclosingRange\DC2S\n\ + \\SUBmulti_line_enclosing_range\CAN\v \SOH(\v2\DC4.scip.MultiLineRangeH\SOHR\ETBmultiLineEnclosingRangeB\r\n\ + \\vtyped_rangeB\ETB\n\ + \\NAKtyped_enclosing_range\"\167\SOH\n\ \\n\ \Diagnostic\DC2*\n\ \\bseverity\CAN\SOH \SOH(\SO2\SO.scip.SeverityR\bseverity\DC2\DC2\n\ @@ -6421,9 +7221,9 @@ packedFileDescriptor \\ETXXML\DLE\US\DC2\a\n\ \\ETXXSL\DLE \DC2\b\n\ \\EOTYAML\DLEJ\DC2\a\n\ - \\ETXZig\DLE&B-Z+github.com/scip-code/scip/bindings/go/scip/J\188\183\STX\n\ + \\ETXZig\DLE&B-Z+github.com/scip-code/scip/bindings/go/scip/J\197\191\STX\n\ \\a\DC2\ENQ\n\ - \\NUL\239\ACK\SOH\n\ + \\NUL\136\a\SOH\n\ \\130\EOT\n\ \\SOH\f\DC2\ETX\n\ \\NUL\DC22\247\ETX An index contains one or more pieces of information about a given piece of\n\ @@ -8161,22 +8961,128 @@ packedFileDescriptor \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\235\EOT\STX\SO\n\ \\r\n\ \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\235\EOT\DC1\DC3\n\ + \_\n\ + \\STX\EOT\t\DC2\ACK\239\EOT\NUL\243\EOT\SOH\SUBQ SingleLineRange represents a half-open [start, end) range within a single line.\n\ + \\n\ + \\v\n\ + \\ETX\EOT\t\SOH\DC2\EOT\239\EOT\b\ETB\n\ + \\f\n\ + \\EOT\EOT\t\STX\NUL\DC2\EOT\240\EOT\STX\DC1\n\ + \\r\n\ + \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\240\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\240\EOT\b\f\n\ + \\r\n\ + \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\240\EOT\SI\DLE\n\ + \\f\n\ + \\EOT\EOT\t\STX\SOH\DC2\EOT\241\EOT\STX\FS\n\ + \\r\n\ + \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\241\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\241\EOT\b\ETB\n\ + \\r\n\ + \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\241\EOT\SUB\ESC\n\ + \\f\n\ + \\EOT\EOT\t\STX\STX\DC2\EOT\242\EOT\STX\SUB\n\ + \\r\n\ + \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\242\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\242\EOT\b\NAK\n\ + \\r\n\ + \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\242\EOT\CAN\EM\n\ + \a\n\ + \\STX\EOT\n\ + \\DC2\ACK\246\EOT\NUL\251\EOT\SOH\SUBS MultiLineRange represents a half-open [start, end) range spanning multiple lines.\n\ + \\n\ + \\v\n\ + \\ETX\EOT\n\ + \\SOH\DC2\EOT\246\EOT\b\SYN\n\ + \\f\n\ + \\EOT\EOT\n\ + \\STX\NUL\DC2\EOT\247\EOT\STX\ETB\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\NUL\ENQ\DC2\EOT\247\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\NUL\SOH\DC2\EOT\247\EOT\b\DC2\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\NUL\ETX\DC2\EOT\247\EOT\NAK\SYN\n\ + \\f\n\ + \\EOT\EOT\n\ + \\STX\SOH\DC2\EOT\248\EOT\STX\FS\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\SOH\ENQ\DC2\EOT\248\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\SOH\SOH\DC2\EOT\248\EOT\b\ETB\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\SOH\ETX\DC2\EOT\248\EOT\SUB\ESC\n\ + \\f\n\ + \\EOT\EOT\n\ + \\STX\STX\DC2\EOT\249\EOT\STX\NAK\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\STX\ENQ\DC2\EOT\249\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\STX\SOH\DC2\EOT\249\EOT\b\DLE\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\STX\ETX\DC2\EOT\249\EOT\DC3\DC4\n\ + \\f\n\ + \\EOT\EOT\n\ + \\STX\ETX\DC2\EOT\250\EOT\STX\SUB\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\ETX\ENQ\DC2\EOT\250\EOT\STX\a\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\ETX\SOH\DC2\EOT\250\EOT\b\NAK\n\ + \\r\n\ + \\ENQ\EOT\n\ + \\STX\ETX\ETX\DC2\EOT\250\EOT\CAN\EM\n\ \\249\SOH\n\ - \\STX\EOT\t\DC2\ACK\243\EOT\NUL\212\ENQ\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ + \\STX\EOT\v\DC2\ACK\130\ENQ\NUL\237\ENQ\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\ \ information.\n\ \\n\ \ If possible, indexers should try to bundle logically related information\n\ \ across occurrences into a single occurrence to reduce payload sizes.\n\ \\n\ \\v\n\ - \\ETX\EOT\t\SOH\DC2\EOT\243\EOT\b\DC2\n\ - \\232\b\n\ - \\EOT\EOT\t\STX\NUL\DC2\EOT\139\ENQ\STX\ESC\SUB\217\b Half-open [start, end) range of this occurrence. Must be exactly three or four\n\ - \ elements:\n\ + \\ETX\EOT\v\SOH\DC2\EOT\130\ENQ\b\DC2\n\ + \\224\ENQ\n\ + \\EOT\EOT\v\STX\NUL\DC2\EOT\143\ENQ\STX/\SUB\209\ENQ Deprecated: Use `single_line_range` or `multi_line_range` instead.\n\ \\n\ + \ Half-open [start, end) range. Must be exactly three or four elements:\n\ + \ - Three elements: `[startLine, startCharacter, endCharacter]` (single-line)\n\ \ - Four elements: `[startLine, startCharacter, endLine, endCharacter]`\n\ - \ - Three elements: `[startLine, startCharacter, endCharacter]`. The end line\n\ - \ is inferred to have the same value as the start line.\n\ + \\n\ + \ Historical note: the original draft of this schema had a `Range` message\n\ + \ type with `start` and `end` fields of type `Position`, mirroring LSP.\n\ + \ Benchmarks revealed that this encoding was inefficient and that we could\n\ + \ reduce the total payload size of an index by 50% by using `repeated int32`\n\ + \ instead. However, the lack of type safety led to the introduction of\n\ + \ `single_line_range` and `multi_line_range` as typed alternatives.\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\v\STX\NUL\EOT\DC2\EOT\143\ENQ\STX\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\v\STX\NUL\ENQ\DC2\EOT\143\ENQ\v\DLE\n\ + \\r\n\ + \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\143\ENQ\DC1\SYN\n\ + \\r\n\ + \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\143\ENQ\EM\SUB\n\ + \\r\n\ + \\ENQ\EOT\v\STX\NUL\b\DC2\EOT\143\ENQ\ESC.\n\ + \\SO\n\ + \\ACK\EOT\v\STX\NUL\b\ETX\DC2\EOT\143\ENQ\FS-\n\ + \\164\ETX\n\ + \\EOT\EOT\v\b\NUL\DC2\ACK\155\ENQ\STX\160\ENQ\ETX\SUB\147\ETX Half-open [start, end) source range of this occurrence.\n\ \\n\ \ It is allowed for the range to be empty (i.e. start==end).\n\ \\n\ @@ -8187,45 +9093,48 @@ packedFileDescriptor \ The 'character' value is interpreted based on the PositionEncoding for\n\ \ the Document.\n\ \\n\ - \ Historical note: the original draft of this schema had a `Range` message\n\ - \ type with `start` and `end` fields of type `Position`, mirroring LSP.\n\ - \ Benchmarks revealed that this encoding was inefficient and that we could\n\ - \ reduce the total payload size of an index by 50% by using `repeated int32`\n\ - \ instead. The `repeated int32` encoding is admittedly more embarrassing to\n\ - \ work with in some programming languages but we hope the performance\n\ - \ improvements make up for it.\n\ + \\r\n\ + \\ENQ\EOT\v\b\NUL\SOH\DC2\EOT\155\ENQ\b\DC3\n\ + \-\n\ + \\EOT\EOT\v\STX\SOH\DC2\EOT\157\ENQ\EOT*\SUB\US Range spanning a single line.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\EOT\DC2\EOT\139\ENQ\STX\n\ + \\ENQ\EOT\v\STX\SOH\ACK\DC2\EOT\157\ENQ\EOT\DC3\n\ + \\r\n\ + \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\157\ENQ\DC4%\n\ + \\r\n\ + \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\157\ENQ()\n\ + \.\n\ + \\EOT\EOT\v\STX\STX\DC2\EOT\159\ENQ\EOT(\SUB Range spanning multiple lines.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\139\ENQ\v\DLE\n\ + \\ENQ\EOT\v\STX\STX\ACK\DC2\EOT\159\ENQ\EOT\DC2\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\139\ENQ\DC1\SYN\n\ + \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\159\ENQ\DC3#\n\ \\r\n\ - \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\139\ENQ\EM\SUB\n\ + \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\159\ENQ&'\n\ \\138\SOH\n\ - \\EOT\EOT\t\STX\SOH\DC2\EOT\142\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ + \\EOT\EOT\v\STX\ETX\DC2\EOT\163\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\ \ `SymbolInformation.symbol` for how to format symbols as strings.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\142\ENQ\STX\b\n\ + \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\163\ENQ\STX\b\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\142\ENQ\t\SI\n\ + \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\163\ENQ\t\SI\n\ \\r\n\ - \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\142\ENQ\DC2\DC3\n\ + \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\163\ENQ\DC2\DC3\n\ \\151\SOH\n\ - \\EOT\EOT\t\STX\STX\DC2\EOT\145\ENQ\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ + \\EOT\EOT\v\STX\EOT\DC2\EOT\166\ENQ\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\ \ See `SymbolRole`'s documentation for how to read and write this field.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\145\ENQ\STX\a\n\ + \\ENQ\EOT\v\STX\EOT\ENQ\DC2\EOT\166\ENQ\STX\a\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\145\ENQ\b\DC4\n\ + \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\166\ENQ\b\DC4\n\ \\r\n\ - \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\145\ENQ\ETB\CAN\n\ + \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\166\ENQ\ETB\CAN\n\ \\241\ETX\n\ - \\EOT\EOT\t\STX\ETX\DC2\EOT\154\ENQ\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ + \\EOT\EOT\v\STX\ENQ\DC2\EOT\175\ENQ\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\ \ empty, the `Symbol.documentation` field is used instead. One example\n\ \ where this field might be useful is when the symbol represents a generic\n\ \ function (with abstract type parameters such as `List`) and at this\n\ @@ -8235,42 +9144,56 @@ packedFileDescriptor \ which commonly allow for type-changing assignment.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\EOT\DC2\EOT\154\ENQ\STX\n\ + \\ENQ\EOT\v\STX\ENQ\EOT\DC2\EOT\175\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\154\ENQ\v\DC1\n\ + \\ENQ\EOT\v\STX\ENQ\ENQ\DC2\EOT\175\ENQ\v\DC1\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\154\ENQ\DC2(\n\ + \\ENQ\EOT\v\STX\ENQ\SOH\DC2\EOT\175\ENQ\DC2(\n\ \\r\n\ - \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\154\ENQ+,\n\ + \\ENQ\EOT\v\STX\ENQ\ETX\DC2\EOT\175\ENQ+,\n\ \X\n\ - \\EOT\EOT\t\STX\EOT\DC2\EOT\156\ENQ\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ + \\EOT\EOT\v\STX\ACK\DC2\EOT\177\ENQ\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\ACK\DC2\EOT\156\ENQ\STX\f\n\ + \\ENQ\EOT\v\STX\ACK\ACK\DC2\EOT\177\ENQ\STX\f\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\156\ENQ\r\CAN\n\ + \\ENQ\EOT\v\STX\ACK\SOH\DC2\EOT\177\ENQ\r\CAN\n\ \\r\n\ - \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\156\ENQ\ESC\FS\n\ + \\ENQ\EOT\v\STX\ACK\ETX\DC2\EOT\177\ENQ\ESC\FS\n\ \W\n\ - \\EOT\EOT\t\STX\ENQ\DC2\EOT\158\ENQ\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ + \\EOT\EOT\v\STX\a\DC2\EOT\179\ENQ\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\EOT\DC2\EOT\158\ENQ\STX\n\ + \\ENQ\EOT\v\STX\a\EOT\DC2\EOT\179\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\ACK\DC2\EOT\158\ENQ\v\NAK\n\ + \\ENQ\EOT\v\STX\a\ACK\DC2\EOT\179\ENQ\v\NAK\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\SOH\DC2\EOT\158\ENQ\SYN!\n\ + \\ENQ\EOT\v\STX\a\SOH\DC2\EOT\179\ENQ\SYN!\n\ \\r\n\ - \\ENQ\EOT\t\STX\ENQ\ETX\DC2\EOT\158\ENQ$%\n\ - \\183\SO\n\ - \\EOT\EOT\t\STX\ACK\DC2\EOT\211\ENQ\STX%\SUB\168\SO (optional) Using the same encoding as the sibling `range` field, half-open\n\ - \ source range of the nearest non-trivial enclosing AST node. This range must\n\ - \ enclose the `range` field. Example applications that make use of the\n\ - \ enclosing_range field:\n\ + \\ENQ\EOT\v\STX\a\ETX\DC2\EOT\179\ENQ$%\n\ + \@\n\ + \\EOT\EOT\v\STX\b\DC2\EOT\181\ENQ\STX9\SUB2 Deprecated: Use `typed_enclosing_range` instead.\n\ \\n\ - \ - Call hierarchies: to determine what symbols are references from the body\n\ + \\r\n\ + \\ENQ\EOT\v\STX\b\EOT\DC2\EOT\181\ENQ\STX\n\ + \\n\ + \\r\n\ + \\ENQ\EOT\v\STX\b\ENQ\DC2\EOT\181\ENQ\v\DLE\n\ + \\r\n\ + \\ENQ\EOT\v\STX\b\SOH\DC2\EOT\181\ENQ\DC1 \n\ + \\r\n\ + \\ENQ\EOT\v\STX\b\ETX\DC2\EOT\181\ENQ#$\n\ + \\r\n\ + \\ENQ\EOT\v\STX\b\b\DC2\EOT\181\ENQ%8\n\ + \\SO\n\ + \\ACK\EOT\v\STX\b\b\ETX\DC2\EOT\181\ENQ&7\n\ + \\217\r\n\ + \\EOT\EOT\v\b\SOH\DC2\ACK\233\ENQ\STX\236\ENQ\ETX\SUB\200\r (optional) Half-open source range of the nearest non-trivial enclosing AST\n\ + \ node. This range must enclose the occurrence range. Example applications:\n\ + \\n\ + \ - Call hierarchies: to determine what symbols are referenced from the body\n\ \ of a function\n\ \ - Symbol outline: to display breadcrumbs from the cursor position to the\n\ \ root of the file\n\ @@ -8319,152 +9242,142 @@ packedFileDescriptor \ ```\n\ \\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\EOT\DC2\EOT\211\ENQ\STX\n\ - \\n\ + \\ENQ\EOT\v\b\SOH\SOH\DC2\EOT\233\ENQ\b\GS\n\ + \\f\n\ + \\EOT\EOT\v\STX\t\DC2\EOT\234\ENQ\EOT5\n\ + \\r\n\ + \\ENQ\EOT\v\STX\t\ACK\DC2\EOT\234\ENQ\EOT\DC3\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\ENQ\DC2\EOT\211\ENQ\v\DLE\n\ + \\ENQ\EOT\v\STX\t\SOH\DC2\EOT\234\ENQ\DC4/\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\SOH\DC2\EOT\211\ENQ\DC1 \n\ + \\ENQ\EOT\v\STX\t\ETX\DC2\EOT\234\ENQ24\n\ + \\f\n\ + \\EOT\EOT\v\STX\n\ + \\DC2\EOT\235\ENQ\EOT3\n\ + \\r\n\ + \\ENQ\EOT\v\STX\n\ + \\ACK\DC2\EOT\235\ENQ\EOT\DC2\n\ \\r\n\ - \\ENQ\EOT\t\STX\ACK\ETX\DC2\EOT\211\ENQ#$\n\ + \\ENQ\EOT\v\STX\n\ + \\SOH\DC2\EOT\235\ENQ\DC3-\n\ + \\r\n\ + \\ENQ\EOT\v\STX\n\ + \\ETX\DC2\EOT\235\ENQ02\n\ \w\n\ - \\STX\EOT\n\ - \\DC2\ACK\216\ENQ\NUL\227\ENQ\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ + \\STX\EOT\f\DC2\ACK\241\ENQ\NUL\252\ENQ\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\ \ reported for a document.\n\ \\n\ \\v\n\ - \\ETX\EOT\n\ - \\SOH\DC2\EOT\216\ENQ\b\DC2\n\ + \\ETX\EOT\f\SOH\DC2\EOT\241\ENQ\b\DC2\n\ \W\n\ - \\EOT\EOT\n\ - \\STX\NUL\DC2\EOT\218\ENQ\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ + \\EOT\EOT\f\STX\NUL\DC2\EOT\243\ENQ\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\NUL\ACK\DC2\EOT\218\ENQ\STX\n\ + \\ENQ\EOT\f\STX\NUL\ACK\DC2\EOT\243\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\NUL\SOH\DC2\EOT\218\ENQ\v\DC3\n\ + \\ENQ\EOT\f\STX\NUL\SOH\DC2\EOT\243\ENQ\v\DC3\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\NUL\ETX\DC2\EOT\218\ENQ\SYN\ETB\n\ + \\ENQ\EOT\f\STX\NUL\ETX\DC2\EOT\243\ENQ\SYN\ETB\n\ \]\n\ - \\EOT\EOT\n\ - \\STX\SOH\DC2\EOT\220\ENQ\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ + \\EOT\EOT\f\STX\SOH\DC2\EOT\245\ENQ\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\SOH\ENQ\DC2\EOT\220\ENQ\STX\b\n\ + \\ENQ\EOT\f\STX\SOH\ENQ\DC2\EOT\245\ENQ\STX\b\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\SOH\SOH\DC2\EOT\220\ENQ\t\r\n\ + \\ENQ\EOT\f\STX\SOH\SOH\DC2\EOT\245\ENQ\t\r\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\SOH\ETX\DC2\EOT\220\ENQ\DLE\DC1\n\ + \\ENQ\EOT\f\STX\SOH\ETX\DC2\EOT\245\ENQ\DLE\DC1\n\ \+\n\ - \\EOT\EOT\n\ - \\STX\STX\DC2\EOT\222\ENQ\STX\NAK\SUB\GS Message of this diagnostic.\n\ + \\EOT\EOT\f\STX\STX\DC2\EOT\247\ENQ\STX\NAK\SUB\GS Message of this diagnostic.\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\STX\ENQ\DC2\EOT\222\ENQ\STX\b\n\ + \\ENQ\EOT\f\STX\STX\ENQ\DC2\EOT\247\ENQ\STX\b\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\STX\SOH\DC2\EOT\222\ENQ\t\DLE\n\ + \\ENQ\EOT\f\STX\STX\SOH\DC2\EOT\247\ENQ\t\DLE\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\STX\ETX\DC2\EOT\222\ENQ\DC3\DC4\n\ + \\ENQ\EOT\f\STX\STX\ETX\DC2\EOT\247\ENQ\DC3\DC4\n\ \~\n\ - \\EOT\EOT\n\ - \\STX\ETX\DC2\EOT\225\ENQ\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ + \\EOT\EOT\f\STX\ETX\DC2\EOT\250\ENQ\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\ \ 'typescript' or 'super lint'.\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\ETX\ENQ\DC2\EOT\225\ENQ\STX\b\n\ + \\ENQ\EOT\f\STX\ETX\ENQ\DC2\EOT\250\ENQ\STX\b\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\ETX\SOH\DC2\EOT\225\ENQ\t\SI\n\ + \\ENQ\EOT\f\STX\ETX\SOH\DC2\EOT\250\ENQ\t\SI\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\ETX\ETX\DC2\EOT\225\ENQ\DC2\DC3\n\ + \\ENQ\EOT\f\STX\ETX\ETX\DC2\EOT\250\ENQ\DC2\DC3\n\ \\f\n\ - \\EOT\EOT\n\ - \\STX\EOT\DC2\EOT\226\ENQ\STX\"\n\ + \\EOT\EOT\f\STX\EOT\DC2\EOT\251\ENQ\STX\"\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\EOT\DC2\EOT\226\ENQ\STX\n\ + \\ENQ\EOT\f\STX\EOT\EOT\DC2\EOT\251\ENQ\STX\n\ \\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\ACK\DC2\EOT\226\ENQ\v\CAN\n\ + \\ENQ\EOT\f\STX\EOT\ACK\DC2\EOT\251\ENQ\v\CAN\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\SOH\DC2\EOT\226\ENQ\EM\GS\n\ + \\ENQ\EOT\f\STX\EOT\SOH\DC2\EOT\251\ENQ\EM\GS\n\ \\r\n\ - \\ENQ\EOT\n\ - \\STX\EOT\ETX\DC2\EOT\226\ENQ !\n\ + \\ENQ\EOT\f\STX\EOT\ETX\DC2\EOT\251\ENQ !\n\ \\f\n\ - \\STX\ENQ\ENQ\DC2\ACK\229\ENQ\NUL\235\ENQ\SOH\n\ + \\STX\ENQ\ENQ\DC2\ACK\254\ENQ\NUL\132\ACK\SOH\n\ \\v\n\ - \\ETX\ENQ\ENQ\SOH\DC2\EOT\229\ENQ\ENQ\r\n\ + \\ETX\ENQ\ENQ\SOH\DC2\EOT\254\ENQ\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\230\ENQ\STX\SUB\n\ + \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\255\ENQ\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\230\ENQ\STX\NAK\n\ + \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\255\ENQ\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\230\ENQ\CAN\EM\n\ + \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\255\ENQ\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\231\ENQ\STX\f\n\ + \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\128\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\231\ENQ\STX\a\n\ + \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\128\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\231\ENQ\n\ + \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\128\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\232\ENQ\STX\SO\n\ + \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\129\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\232\ENQ\STX\t\n\ + \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\129\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\232\ENQ\f\r\n\ + \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\129\ACK\f\r\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\233\ENQ\STX\DC2\n\ + \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\130\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\233\ENQ\STX\r\n\ + \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\130\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\233\ENQ\DLE\DC1\n\ + \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\130\ACK\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\234\ENQ\STX\v\n\ + \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\131\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\234\ENQ\STX\ACK\n\ + \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\131\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\234\ENQ\t\n\ + \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\131\ACK\t\n\ \\n\ \\f\n\ - \\STX\ENQ\ACK\DC2\ACK\237\ENQ\NUL\241\ENQ\SOH\n\ + \\STX\ENQ\ACK\DC2\ACK\134\ACK\NUL\138\ACK\SOH\n\ \\v\n\ - \\ETX\ENQ\ACK\SOH\DC2\EOT\237\ENQ\ENQ\DC2\n\ + \\ETX\ENQ\ACK\SOH\DC2\EOT\134\ACK\ENQ\DC2\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\238\ENQ\STX\US\n\ + \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\135\ACK\STX\US\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\238\ENQ\STX\SUB\n\ + \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\135\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\238\ENQ\GS\RS\n\ + \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\135\ACK\GS\RS\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\239\ENQ\STX\DC2\n\ + \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\136\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\239\ENQ\STX\r\n\ + \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\136\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\239\ENQ\DLE\DC1\n\ + \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\136\ACK\DLE\DC1\n\ \\f\n\ - \\EOT\ENQ\ACK\STX\STX\DC2\EOT\240\ENQ\STX\DC1\n\ + \\EOT\ENQ\ACK\STX\STX\DC2\EOT\137\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\240\ENQ\STX\f\n\ + \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\137\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\240\ENQ\SI\DLE\n\ + \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\137\ACK\SI\DLE\n\ \\208\ETX\n\ - \\STX\ENQ\a\DC2\ACK\249\ENQ\NUL\239\ACK\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ + \\STX\ENQ\a\DC2\ACK\146\ACK\NUL\136\a\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\ \ for the `Document.language` field. The primary purpose of this enum is to\n\ \ prevent a situation where we have a single programming language ends up with\n\ \ multiple string representations. For example, the C++ language uses the name\n\ @@ -8472,709 +9385,709 @@ packedFileDescriptor \ Feel free to send a pull-request to add missing programming languages.\n\ \\n\ \\v\n\ - \\ETX\ENQ\a\SOH\DC2\EOT\249\ENQ\ENQ\r\n\ + \\ETX\ENQ\a\SOH\DC2\EOT\146\ACK\ENQ\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\NUL\DC2\EOT\250\ENQ\STX\SUB\n\ + \\EOT\ENQ\a\STX\NUL\DC2\EOT\147\ACK\STX\SUB\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\250\ENQ\STX\NAK\n\ + \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\147\ACK\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\250\ENQ\CAN\EM\n\ + \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\147\ACK\CAN\EM\n\ \\f\n\ - \\EOT\ENQ\a\STX\SOH\DC2\EOT\251\ENQ\STX\f\n\ + \\EOT\ENQ\a\STX\SOH\DC2\EOT\148\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\251\ENQ\STX\ACK\n\ + \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\148\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\251\ENQ\t\v\n\ + \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\148\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\STX\DC2\EOT\252\ENQ\STX\f\n\ + \\EOT\ENQ\a\STX\STX\DC2\EOT\149\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\252\ENQ\STX\ACK\n\ + \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\149\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\252\ENQ\t\v\n\ + \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\149\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\ETX\DC2\EOT\253\ENQ\STX\v\n\ + \\EOT\ENQ\a\STX\ETX\DC2\EOT\150\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\253\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\150\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\253\ENQ\b\n\ + \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\150\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\EOT\DC2\EOT\254\ENQ\STX\v\n\ + \\EOT\ENQ\a\STX\EOT\DC2\EOT\151\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\254\ENQ\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\151\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\254\ENQ\b\n\ + \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\151\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\ENQ\DC2\EOT\255\ENQ\STX\f\n\ + \\EOT\ENQ\a\STX\ENQ\DC2\EOT\152\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\255\ENQ\STX\ACK\n\ + \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\152\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\255\ENQ\t\v\n\ + \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\152\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\ACK\DC2\EOT\128\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\ACK\DC2\EOT\153\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\128\ACK\STX\n\ + \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\153\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\128\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\153\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX\a\DC2\EOT\129\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\a\DC2\EOT\154\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\129\ACK\STX\n\ + \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\154\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\129\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\154\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX\b\DC2\EOT\130\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\b\DC2\EOT\155\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\130\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\155\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\130\ACK\b\n\ + \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\155\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\t\DC2\EOT\131\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\t\DC2\EOT\156\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\131\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\156\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\131\ACK\b\n\ + \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\156\ACK\b\n\ \\n\ \\f\n\ \\EOT\ENQ\a\STX\n\ - \\DC2\EOT\132\ACK\STX\SO\n\ + \\DC2\EOT\157\ACK\STX\SO\n\ \\r\n\ \\ENQ\ENQ\a\STX\n\ - \\SOH\DC2\EOT\132\ACK\STX\b\n\ + \\SOH\DC2\EOT\157\ACK\STX\b\n\ \\r\n\ \\ENQ\ENQ\a\STX\n\ - \\STX\DC2\EOT\132\ACK\v\r\n\ + \\STX\DC2\EOT\157\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\v\DC2\EOT\133\ACK\STX\t\n\ + \\EOT\ENQ\a\STX\v\DC2\EOT\158\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\133\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\158\ACK\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\133\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\158\ACK\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STX\f\DC2\EOT\134\ACK\STX\r\n\ + \\EOT\ENQ\a\STX\f\DC2\EOT\159\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\134\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\159\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\134\ACK\n\ + \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\159\ACK\n\ \\f\n\ \H\n\ - \\EOT\ENQ\a\STX\r\DC2\EOT\135\ACK\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ + \\EOT\ENQ\a\STX\r\DC2\EOT\160\ACK\STX\v\": C++ (the name \"CPP\" was chosen for consistency with LSP)\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\135\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\160\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\135\ACK\b\n\ + \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\160\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SO\DC2\EOT\136\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\SO\DC2\EOT\161\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\136\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\161\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\136\ACK\b\n\ + \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\161\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SI\DC2\EOT\137\ACK\STX\r\n\ + \\EOT\ENQ\a\STX\SI\DC2\EOT\162\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\137\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\162\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\137\ACK\v\f\n\ + \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\162\ACK\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX\DLE\DC2\EOT\138\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\DLE\DC2\EOT\163\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\138\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\163\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\138\ACK\f\r\n\ + \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\163\ACK\f\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC1\DC2\EOT\139\ACK\STX\DC4\n\ + \\EOT\ENQ\a\STX\DC1\DC2\EOT\164\ACK\STX\DC4\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\139\ACK\STX\SO\n\ + \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\164\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\139\ACK\DC1\DC3\n\ + \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\164\ACK\DC1\DC3\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC2\DC2\EOT\140\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STX\DC2\DC2\EOT\165\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\140\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\165\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\140\ACK\SI\DLE\n\ + \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\165\ACK\SI\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC3\DC2\EOT\141\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\DC3\DC2\EOT\166\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\141\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\166\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\141\ACK\b\n\ + \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\166\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\DC4\DC2\EOT\142\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\DC4\DC2\EOT\167\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\142\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\167\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\142\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\167\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\NAK\DC2\EOT\143\ACK\STX\v\n\ + \\EOT\ENQ\a\STX\NAK\DC2\EOT\168\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\143\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\168\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\143\ACK\t\n\ + \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\168\ACK\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX\SYN\DC2\EOT\144\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\SYN\DC2\EOT\169\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\144\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\169\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\144\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\169\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\ETB\DC2\EOT\145\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\ETB\DC2\EOT\170\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\145\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\170\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\145\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\170\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\CAN\DC2\EOT\146\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX\CAN\DC2\EOT\171\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\146\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\171\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\146\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\171\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX\EM\DC2\EOT\147\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\EM\DC2\EOT\172\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\147\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\172\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\147\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\172\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\SUB\DC2\EOT\148\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\SUB\DC2\EOT\173\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\148\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\173\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\148\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\173\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\ESC\DC2\EOT\149\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\ESC\DC2\EOT\174\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\149\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\174\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\149\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\174\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\FS\DC2\EOT\150\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX\FS\DC2\EOT\175\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\150\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\175\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\150\ACK\v\r\n\ + \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\175\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\GS\DC2\EOT\151\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\GS\DC2\EOT\176\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\151\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\176\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\151\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\176\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\RS\DC2\EOT\152\ACK\STX\f\n\ + \\EOT\ENQ\a\STX\RS\DC2\EOT\177\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\152\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\177\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\152\ACK\t\v\n\ + \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\177\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX\US\DC2\EOT\153\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX\US\DC2\EOT\178\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\153\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\178\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\153\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\178\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX \DC2\EOT\154\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX \DC2\EOT\179\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX \SOH\DC2\EOT\154\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX \SOH\DC2\EOT\179\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX \STX\DC2\EOT\154\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX \STX\DC2\EOT\179\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX!\DC2\EOT\155\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX!\DC2\EOT\180\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\155\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\180\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX!\STX\DC2\EOT\155\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX!\STX\DC2\EOT\180\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX\"\DC2\EOT\156\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX\"\DC2\EOT\181\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\156\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\181\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\156\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\181\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX#\DC2\EOT\157\ACK\STX\n\ + \\EOT\ENQ\a\STX#\DC2\EOT\182\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\157\ACK\STX\EOT\n\ + \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\182\ACK\STX\EOT\n\ \\r\n\ - \\ENQ\ENQ\a\STX#\STX\DC2\EOT\157\ACK\a\t\n\ + \\ENQ\ENQ\a\STX#\STX\DC2\EOT\182\ACK\a\t\n\ \\f\n\ - \\EOT\ENQ\a\STX$\DC2\EOT\158\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX$\DC2\EOT\183\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\158\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\183\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX$\STX\DC2\EOT\158\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX$\STX\DC2\EOT\183\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX%\DC2\EOT\159\ACK\STX\r\n\ + \\EOT\ENQ\a\STX%\DC2\EOT\184\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\159\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\184\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX%\STX\DC2\EOT\159\ACK\v\f\n\ + \\ENQ\ENQ\a\STX%\STX\DC2\EOT\184\ACK\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX&\DC2\EOT\160\ACK\STX\f\n\ + \\EOT\ENQ\a\STX&\DC2\EOT\185\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\160\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\185\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX&\STX\DC2\EOT\160\ACK\t\v\n\ + \\ENQ\ENQ\a\STX&\STX\DC2\EOT\185\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX'\DC2\EOT\161\ACK\STX\f\n\ + \\EOT\ENQ\a\STX'\DC2\EOT\186\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\161\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\186\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX'\STX\DC2\EOT\161\ACK\t\v\n\ + \\ENQ\ENQ\a\STX'\STX\DC2\EOT\186\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX(\DC2\EOT\162\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX(\DC2\EOT\187\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\162\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\187\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX(\STX\DC2\EOT\162\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX(\STX\DC2\EOT\187\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX)\DC2\EOT\163\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX)\DC2\EOT\188\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\163\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\188\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX)\STX\DC2\EOT\163\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX)\STX\DC2\EOT\188\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX*\DC2\EOT\164\ACK\STX\r\n\ + \\EOT\ENQ\a\STX*\DC2\EOT\189\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\164\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\189\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX*\STX\DC2\EOT\164\ACK\n\ + \\ENQ\ENQ\a\STX*\STX\DC2\EOT\189\ACK\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX+\DC2\EOT\165\ACK\STX\v\n\ + \\EOT\ENQ\a\STX+\DC2\EOT\190\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\165\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\190\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX+\STX\DC2\EOT\165\ACK\b\n\ + \\ENQ\ENQ\a\STX+\STX\DC2\EOT\190\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX,\DC2\EOT\166\ACK\STX\t\n\ + \\EOT\ENQ\a\STX,\DC2\EOT\191\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\166\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\191\ACK\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STX,\STX\DC2\EOT\166\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STX,\STX\DC2\EOT\191\ACK\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STX-\DC2\EOT\167\ACK\STX\f\n\ + \\EOT\ENQ\a\STX-\DC2\EOT\192\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\167\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\192\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX-\STX\DC2\EOT\167\ACK\t\v\n\ + \\ENQ\ENQ\a\STX-\STX\DC2\EOT\192\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX.\DC2\EOT\168\ACK\STX\v\n\ + \\EOT\ENQ\a\STX.\DC2\EOT\193\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\168\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\193\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX.\STX\DC2\EOT\168\ACK\t\n\ + \\ENQ\ENQ\a\STX.\STX\DC2\EOT\193\ACK\t\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX/\DC2\EOT\169\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STX/\DC2\EOT\194\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\169\ACK\STX\f\n\ + \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\194\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX/\STX\DC2\EOT\169\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STX/\STX\DC2\EOT\194\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STX0\DC2\EOT\170\ACK\STX\ETB\n\ + \\EOT\ENQ\a\STX0\DC2\EOT\195\ACK\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\170\ACK\STX\DC1\n\ + \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\195\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX0\STX\DC2\EOT\170\ACK\DC4\SYN\n\ + \\ENQ\ENQ\a\STX0\STX\DC2\EOT\195\ACK\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\a\STX1\DC2\EOT\171\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX1\DC2\EOT\196\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\171\ACK\STX\t\n\ + \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\196\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STX1\STX\DC2\EOT\171\ACK\f\SO\n\ + \\ENQ\ENQ\a\STX1\STX\DC2\EOT\196\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX2\DC2\EOT\172\ACK\STX\r\n\ + \\EOT\ENQ\a\STX2\DC2\EOT\197\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\172\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\197\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX2\STX\DC2\EOT\172\ACK\n\ + \\ENQ\ENQ\a\STX2\STX\DC2\EOT\197\ACK\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX3\DC2\EOT\173\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STX3\DC2\EOT\198\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\173\ACK\STX\n\ + \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\198\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX3\STX\DC2\EOT\173\ACK\r\DLE\n\ + \\ENQ\ENQ\a\STX3\STX\DC2\EOT\198\ACK\r\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STX4\DC2\EOT\174\ACK\STX\r\n\ + \\EOT\ENQ\a\STX4\DC2\EOT\199\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\174\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\199\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX4\STX\DC2\EOT\174\ACK\v\f\n\ + \\ENQ\ENQ\a\STX4\STX\DC2\EOT\199\ACK\v\f\n\ \\f\n\ - \\EOT\ENQ\a\STX5\DC2\EOT\175\ACK\STX\r\n\ + \\EOT\ENQ\a\STX5\DC2\EOT\200\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\175\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\200\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX5\STX\DC2\EOT\175\ACK\n\ + \\ENQ\ENQ\a\STX5\STX\DC2\EOT\200\ACK\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX6\DC2\EOT\176\ACK\STX\f\n\ + \\EOT\ENQ\a\STX6\DC2\EOT\201\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\176\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\201\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX6\STX\DC2\EOT\176\ACK\t\v\n\ + \\ENQ\ENQ\a\STX6\STX\DC2\EOT\201\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX7\DC2\EOT\177\ACK\STX\f\n\ + \\EOT\ENQ\a\STX7\DC2\EOT\202\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\177\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\202\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX7\STX\DC2\EOT\177\ACK\t\v\n\ + \\ENQ\ENQ\a\STX7\STX\DC2\EOT\202\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STX8\DC2\EOT\178\ACK\STX\v\n\ + \\EOT\ENQ\a\STX8\DC2\EOT\203\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\178\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\203\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX8\STX\DC2\EOT\178\ACK\b\n\ + \\ENQ\ENQ\a\STX8\STX\DC2\EOT\203\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX9\DC2\EOT\179\ACK\STX\r\n\ + \\EOT\ENQ\a\STX9\DC2\EOT\204\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\179\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\204\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX9\STX\DC2\EOT\179\ACK\t\f\n\ + \\ENQ\ENQ\a\STX9\STX\DC2\EOT\204\ACK\t\f\n\ \\f\n\ - \\EOT\ENQ\a\STX:\DC2\EOT\180\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX:\DC2\EOT\205\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\180\ACK\STX\n\ + \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\205\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX:\STX\DC2\EOT\180\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX:\STX\DC2\EOT\205\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX;\DC2\EOT\181\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX;\DC2\EOT\206\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\181\ACK\STX\n\ + \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\206\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX;\STX\DC2\EOT\181\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX;\STX\DC2\EOT\206\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX<\DC2\EOT\182\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX<\DC2\EOT\207\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\182\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\207\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX<\STX\DC2\EOT\182\ACK\v\r\n\ + \\ENQ\ENQ\a\STX<\STX\DC2\EOT\207\ACK\v\r\n\ \(\n\ - \\EOT\ENQ\a\STX=\DC2\EOT\183\ACK\STX\SI\"\SUB https://nickel-lang.org/\n\ + \\EOT\ENQ\a\STX=\DC2\EOT\208\ACK\STX\SI\"\SUB https://nickel-lang.org/\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\183\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\208\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX=\STX\DC2\EOT\183\ACK\v\SO\n\ + \\ENQ\ENQ\a\STX=\STX\DC2\EOT\208\ACK\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX>\DC2\EOT\184\ACK\STX\v\n\ + \\EOT\ENQ\a\STX>\DC2\EOT\209\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\184\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\209\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX>\STX\DC2\EOT\184\ACK\b\n\ + \\ENQ\ENQ\a\STX>\STX\DC2\EOT\209\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STX?\DC2\EOT\185\ACK\STX\r\n\ + \\EOT\ENQ\a\STX?\DC2\EOT\210\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\185\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\210\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX?\STX\DC2\EOT\185\ACK\n\ + \\ENQ\ENQ\a\STX?\STX\DC2\EOT\210\ACK\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STX@\DC2\EOT\186\ACK\STX\DC3\n\ + \\EOT\ENQ\a\STX@\DC2\EOT\211\ACK\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\186\ACK\STX\r\n\ + \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\211\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STX@\STX\DC2\EOT\186\ACK\DLE\DC2\n\ + \\ENQ\ENQ\a\STX@\STX\DC2\EOT\211\ACK\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXA\DC2\EOT\187\ACK\STX\NAK\n\ + \\EOT\ENQ\a\STXA\DC2\EOT\212\ACK\STX\NAK\n\ \\r\n\ - \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\187\ACK\STX\SI\n\ + \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\212\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXA\STX\DC2\EOT\187\ACK\DC2\DC4\n\ + \\ENQ\ENQ\a\STXA\STX\DC2\EOT\212\ACK\DC2\DC4\n\ \\f\n\ - \\EOT\ENQ\a\STXB\DC2\EOT\188\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXB\DC2\EOT\213\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\188\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\213\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXB\STX\DC2\EOT\188\ACK\v\r\n\ + \\ENQ\ENQ\a\STXB\STX\DC2\EOT\213\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXC\DC2\EOT\189\ACK\STX\v\n\ + \\EOT\ENQ\a\STXC\DC2\EOT\214\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\189\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\214\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXC\STX\DC2\EOT\189\ACK\b\n\ + \\ENQ\ENQ\a\STXC\STX\DC2\EOT\214\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXD\DC2\EOT\190\ACK\STX\r\n\ + \\EOT\ENQ\a\STXD\DC2\EOT\215\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\190\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\215\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXD\STX\DC2\EOT\190\ACK\n\ + \\ENQ\ENQ\a\STXD\STX\DC2\EOT\215\ACK\n\ \\f\n\ \\f\n\ - \\EOT\ENQ\a\STXE\DC2\EOT\191\ACK\STX\f\n\ + \\EOT\ENQ\a\STXE\DC2\EOT\216\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\191\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\216\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXE\STX\DC2\EOT\191\ACK\t\v\n\ + \\ENQ\ENQ\a\STXE\STX\DC2\EOT\216\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXF\DC2\EOT\192\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STXF\DC2\EOT\217\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\192\ACK\STX\f\n\ + \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\217\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXF\STX\DC2\EOT\192\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STXF\STX\DC2\EOT\217\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STXG\DC2\EOT\193\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXG\DC2\EOT\218\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\193\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\218\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXG\STX\DC2\EOT\193\ACK\v\r\n\ + \\ENQ\ENQ\a\STXG\STX\DC2\EOT\218\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXH\DC2\EOT\194\ACK\STX\DC1\n\ + \\EOT\ENQ\a\STXH\DC2\EOT\219\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\194\ACK\STX\n\ + \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\219\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXH\STX\DC2\EOT\194\ACK\r\DLE\n\ + \\ENQ\ENQ\a\STXH\STX\DC2\EOT\219\ACK\r\DLE\n\ \\f\n\ - \\EOT\ENQ\a\STXI\DC2\EOT\195\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXI\DC2\EOT\220\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\195\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\220\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXI\STX\DC2\EOT\195\ACK\v\r\n\ + \\ENQ\ENQ\a\STXI\STX\DC2\EOT\220\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXJ\DC2\EOT\196\ACK\STX\t\n\ + \\EOT\ENQ\a\STXJ\DC2\EOT\221\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\196\ACK\STX\ETX\n\ + \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\221\ACK\STX\ETX\n\ \\r\n\ - \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\196\ACK\ACK\b\n\ + \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\221\ACK\ACK\b\n\ \\f\n\ - \\EOT\ENQ\a\STXK\DC2\EOT\197\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXK\DC2\EOT\222\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\197\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\222\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXK\STX\DC2\EOT\197\ACK\v\r\n\ + \\ENQ\ENQ\a\STXK\STX\DC2\EOT\222\ACK\v\r\n\ \\f\n\ - \\EOT\ENQ\a\STXL\DC2\EOT\198\ACK\STX\f\n\ + \\EOT\ENQ\a\STXL\DC2\EOT\223\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\198\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\223\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXL\STX\DC2\EOT\198\ACK\t\v\n\ + \\ENQ\ENQ\a\STXL\STX\DC2\EOT\223\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXM\DC2\EOT\199\ACK\STX\r\n\ + \\EOT\ENQ\a\STXM\DC2\EOT\224\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\199\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\224\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXM\STX\DC2\EOT\199\ACK\n\ + \\ENQ\ENQ\a\STXM\STX\DC2\EOT\224\ACK\n\ \\f\n\ \2\n\ - \\EOT\ENQ\a\STXN\DC2\EOT\200\ACK\STX\SO\"$ Internal language for testing SCIP\n\ + \\EOT\ENQ\a\STXN\DC2\EOT\225\ACK\STX\SO\"$ Internal language for testing SCIP\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\200\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\225\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXN\STX\DC2\EOT\200\ACK\n\ + \\ENQ\ENQ\a\STXN\STX\DC2\EOT\225\ACK\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\a\STXO\DC2\EOT\201\ACK\STX\f\n\ + \\EOT\ENQ\a\STXO\DC2\EOT\226\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\201\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\226\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXO\STX\DC2\EOT\201\ACK\t\v\n\ + \\ENQ\ENQ\a\STXO\STX\DC2\EOT\226\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXP\DC2\EOT\202\ACK\STX\f\n\ + \\EOT\ENQ\a\STXP\DC2\EOT\227\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\202\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\227\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXP\STX\DC2\EOT\202\ACK\t\v\n\ + \\ENQ\ENQ\a\STXP\STX\DC2\EOT\227\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXQ\DC2\EOT\203\ACK\STX\f\n\ + \\EOT\ENQ\a\STXQ\DC2\EOT\228\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\203\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\228\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\203\ACK\t\v\n\ + \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\228\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXR\DC2\EOT\204\ACK\STX\v\n\ + \\EOT\ENQ\a\STXR\DC2\EOT\229\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\204\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\229\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXR\STX\DC2\EOT\204\ACK\b\n\ + \\ENQ\ENQ\a\STXR\STX\DC2\EOT\229\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXS\DC2\EOT\205\ACK\STX\f\n\ + \\EOT\ENQ\a\STXS\DC2\EOT\230\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\205\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\230\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXS\STX\DC2\EOT\205\ACK\t\v\n\ + \\ENQ\ENQ\a\STXS\STX\DC2\EOT\230\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXT\DC2\EOT\206\ACK\STX\v\n\ + \\EOT\ENQ\a\STXT\DC2\EOT\231\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\206\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\231\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXT\STX\DC2\EOT\206\ACK\b\n\ + \\ENQ\ENQ\a\STXT\STX\DC2\EOT\231\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXU\DC2\EOT\207\ACK\STX\v\n\ + \\EOT\ENQ\a\STXU\DC2\EOT\232\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\207\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\232\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXU\STX\DC2\EOT\207\ACK\b\n\ + \\ENQ\ENQ\a\STXU\STX\DC2\EOT\232\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXV\DC2\EOT\208\ACK\STX\f\n\ + \\EOT\ENQ\a\STXV\DC2\EOT\233\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\208\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\233\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXV\STX\DC2\EOT\208\ACK\t\v\n\ + \\ENQ\ENQ\a\STXV\STX\DC2\EOT\233\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXW\DC2\EOT\209\ACK\STX\f\n\ + \\EOT\ENQ\a\STXW\DC2\EOT\234\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\209\ACK\STX\a\n\ + \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\234\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STXW\STX\DC2\EOT\209\ACK\n\ + \\ENQ\ENQ\a\STXW\STX\DC2\EOT\234\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\a\STXX\DC2\EOT\210\ACK\STX\SO\n\ + \\EOT\ENQ\a\STXX\DC2\EOT\235\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\210\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\235\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXX\STX\DC2\EOT\210\ACK\v\r\n\ + \\ENQ\ENQ\a\STXX\STX\DC2\EOT\235\ACK\v\r\n\ \\DC4\n\ - \\EOT\ENQ\a\STXY\DC2\EOT\211\ACK\STX\DC3\"\ACK Bash\n\ + \\EOT\ENQ\a\STXY\DC2\EOT\236\ACK\STX\DC3\"\ACK Bash\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\211\ACK\STX\r\n\ + \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\236\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXY\STX\DC2\EOT\211\ACK\DLE\DC2\n\ + \\ENQ\ENQ\a\STXY\STX\DC2\EOT\236\ACK\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXZ\DC2\EOT\212\ACK\STX\SI\n\ + \\EOT\ENQ\a\STXZ\DC2\EOT\237\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\212\ACK\STX\t\n\ + \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\237\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\212\ACK\f\SO\n\ + \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\237\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX[\DC2\EOT\213\ACK\STX\SO\n\ + \\EOT\ENQ\a\STX[\DC2\EOT\238\ACK\STX\SO\n\ \\r\n\ - \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\213\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\238\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX[\STX\DC2\EOT\213\ACK\n\ + \\ENQ\ENQ\a\STX[\STX\DC2\EOT\238\ACK\n\ \\r\n\ \\f\n\ - \\EOT\ENQ\a\STX\\\DC2\EOT\214\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STX\\\DC2\EOT\239\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\214\ACK\STX\n\ + \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\239\ACK\STX\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\214\ACK\r\SI\n\ + \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\239\ACK\r\SI\n\ \\f\n\ - \\EOT\ENQ\a\STX]\DC2\EOT\215\ACK\STX\SI\n\ + \\EOT\ENQ\a\STX]\DC2\EOT\240\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\215\ACK\STX\b\n\ + \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\240\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STX]\STX\DC2\EOT\215\ACK\v\SO\n\ + \\ENQ\ENQ\a\STX]\STX\DC2\EOT\240\ACK\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STX^\DC2\EOT\216\ACK\STX\f\n\ + \\EOT\ENQ\a\STX^\DC2\EOT\241\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\216\ACK\STX\a\n\ + \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\241\ACK\STX\a\n\ \\r\n\ - \\ENQ\ENQ\a\STX^\STX\DC2\EOT\216\ACK\n\ + \\ENQ\ENQ\a\STX^\STX\DC2\EOT\241\ACK\n\ \\v\n\ \\f\n\ - \\EOT\ENQ\a\STX_\DC2\EOT\217\ACK\STX\f\n\ + \\EOT\ENQ\a\STX_\DC2\EOT\242\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\217\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\242\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STX_\STX\DC2\EOT\217\ACK\b\v\n\ + \\ENQ\ENQ\a\STX_\STX\DC2\EOT\242\ACK\b\v\n\ \\f\n\ - \\EOT\ENQ\a\STX`\DC2\EOT\218\ACK\STX\f\n\ + \\EOT\ENQ\a\STX`\DC2\EOT\243\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\218\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\243\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STX`\STX\DC2\EOT\218\ACK\t\v\n\ + \\ENQ\ENQ\a\STX`\STX\DC2\EOT\243\ACK\t\v\n\ \\f\n\ - \\EOT\ENQ\a\STXa\DC2\EOT\219\ACK\STX\v\n\ + \\EOT\ENQ\a\STXa\DC2\EOT\244\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\219\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\244\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXa\STX\DC2\EOT\219\ACK\b\n\ + \\ENQ\ENQ\a\STXa\STX\DC2\EOT\244\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXb\DC2\EOT\220\ACK\STX\SI\n\ + \\EOT\ENQ\a\STXb\DC2\EOT\245\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\220\ACK\STX\b\n\ + \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\245\ACK\STX\b\n\ \\r\n\ - \\ENQ\ENQ\a\STXb\STX\DC2\EOT\220\ACK\v\SO\n\ + \\ENQ\ENQ\a\STXb\STX\DC2\EOT\245\ACK\v\SO\n\ \\f\n\ - \\EOT\ENQ\a\STXc\DC2\EOT\221\ACK\STX\DC2\n\ + \\EOT\ENQ\a\STXc\DC2\EOT\246\ACK\STX\DC2\n\ \\r\n\ - \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\221\ACK\STX\f\n\ + \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\246\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXc\STX\DC2\EOT\221\ACK\SI\DC1\n\ + \\ENQ\ENQ\a\STXc\STX\DC2\EOT\246\ACK\SI\DC1\n\ \\f\n\ - \\EOT\ENQ\a\STXd\DC2\EOT\222\ACK\STX\ETB\n\ + \\EOT\ENQ\a\STXd\DC2\EOT\247\ACK\STX\ETB\n\ \\r\n\ - \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\222\ACK\STX\DC1\n\ + \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\247\ACK\STX\DC1\n\ \\r\n\ - \\ENQ\ENQ\a\STXd\STX\DC2\EOT\222\ACK\DC4\SYN\n\ + \\ENQ\ENQ\a\STXd\STX\DC2\EOT\247\ACK\DC4\SYN\n\ \\f\n\ - \\EOT\ENQ\a\STXe\DC2\EOT\223\ACK\STX\DLE\n\ + \\EOT\ENQ\a\STXe\DC2\EOT\248\ACK\STX\DLE\n\ \\r\n\ - \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\223\ACK\STX\t\n\ + \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\248\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXe\STX\DC2\EOT\223\ACK\f\SI\n\ + \\ENQ\ENQ\a\STXe\STX\DC2\EOT\248\ACK\f\SI\n\ \\f\n\ - \\EOT\ENQ\a\STXf\DC2\EOT\224\ACK\STX\r\n\ + \\EOT\ENQ\a\STXf\DC2\EOT\249\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\224\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\249\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXf\STX\DC2\EOT\224\ACK\t\f\n\ + \\ENQ\ENQ\a\STXf\STX\DC2\EOT\249\ACK\t\f\n\ \\f\n\ - \\EOT\ENQ\a\STXg\DC2\EOT\225\ACK\STX\DC3\n\ + \\EOT\ENQ\a\STXg\DC2\EOT\250\ACK\STX\DC3\n\ \\r\n\ - \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\225\ACK\STX\r\n\ + \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\250\ACK\STX\r\n\ \\r\n\ - \\ENQ\ENQ\a\STXg\STX\DC2\EOT\225\ACK\DLE\DC2\n\ + \\ENQ\ENQ\a\STXg\STX\DC2\EOT\250\ACK\DLE\DC2\n\ \\f\n\ - \\EOT\ENQ\a\STXh\DC2\EOT\226\ACK\STX\v\n\ + \\EOT\ENQ\a\STXh\DC2\EOT\251\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\226\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\251\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXh\STX\DC2\EOT\226\ACK\b\n\ + \\ENQ\ENQ\a\STXh\STX\DC2\EOT\251\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXi\DC2\EOT\227\ACK\STX\SI\n\ + \\EOT\ENQ\a\STXi\DC2\EOT\252\ACK\STX\SI\n\ \\r\n\ - \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\227\ACK\STX\t\n\ + \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\252\ACK\STX\t\n\ \\r\n\ - \\ENQ\ENQ\a\STXi\STX\DC2\EOT\227\ACK\f\SO\n\ + \\ENQ\ENQ\a\STXi\STX\DC2\EOT\252\ACK\f\SO\n\ \\f\n\ - \\EOT\ENQ\a\STXj\DC2\EOT\228\ACK\STX\v\n\ + \\EOT\ENQ\a\STXj\DC2\EOT\253\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\228\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\253\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXj\STX\DC2\EOT\228\ACK\b\n\ + \\ENQ\ENQ\a\STXj\STX\DC2\EOT\253\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXk\DC2\EOT\229\ACK\STX\v\n\ + \\EOT\ENQ\a\STXk\DC2\EOT\254\ACK\STX\v\n\ \\r\n\ - \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\229\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\254\ACK\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXk\STX\DC2\EOT\229\ACK\b\n\ + \\ENQ\ENQ\a\STXk\STX\DC2\EOT\254\ACK\b\n\ \\n\ \\f\n\ - \\EOT\ENQ\a\STXl\DC2\EOT\230\ACK\STX\f\n\ + \\EOT\ENQ\a\STXl\DC2\EOT\255\ACK\STX\f\n\ \\r\n\ - \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\230\ACK\STX\ACK\n\ + \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\255\ACK\STX\ACK\n\ \\r\n\ - \\ENQ\ENQ\a\STXl\STX\DC2\EOT\230\ACK\t\v\n\ + \\ENQ\ENQ\a\STXl\STX\DC2\EOT\255\ACK\t\v\n\ \\147\ETX\n\ - \\EOT\ENQ\a\STXm\DC2\EOT\231\ACK\STX\v\"\132\ETX NextLanguage = 111;\n\ + \\EOT\ENQ\a\STXm\DC2\EOT\128\a\STX\v\"\132\ETX NextLanguage = 111;\n\ \ Steps add a new language:\n\ \ 1. Copy-paste the \"NextLanguage = N\" line above\n\ \ 2. Increment \"NextLanguage = N\" to \"NextLanguage = N+1\"\n\ @@ -9183,7 +10096,7 @@ packedFileDescriptor \ 5. (optional) Add a brief comment behind the language if the name is not self-explanatory\n\ \\n\ \\r\n\ - \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\231\ACK\STX\ENQ\n\ + \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\128\a\STX\ENQ\n\ \\r\n\ - \\ENQ\ENQ\a\STXm\STX\DC2\EOT\231\ACK\b\n\ + \\ENQ\ENQ\a\STXm\STX\DC2\EOT\128\a\b\n\ \b\ACKproto3" \ No newline at end of file diff --git a/bindings/haskell/src/Proto/Scip_Fields.hs b/bindings/haskell/src/Proto/Scip_Fields.hs index 2008de89..803c18df 100644 --- a/bindings/haskell/src/Proto/Scip_Fields.hs +++ b/bindings/haskell/src/Proto/Scip_Fields.hs @@ -86,6 +86,17 @@ enclosingSymbol :: Data.ProtoLens.Field.HasField s "enclosingSymbol" a) => Lens.Family2.LensLike' f s a enclosingSymbol = Data.ProtoLens.Field.field @"enclosingSymbol" +endCharacter :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "endCharacter" a) => + Lens.Family2.LensLike' f s a +endCharacter = Data.ProtoLens.Field.field @"endCharacter" +endLine :: + forall f s a. + (Prelude.Functor f, Data.ProtoLens.Field.HasField s "endLine" a) => + Lens.Family2.LensLike' f s a +endLine = Data.ProtoLens.Field.field @"endLine" externalSymbols :: forall f s a. (Prelude.Functor f, @@ -127,6 +138,11 @@ language :: Data.ProtoLens.Field.HasField s "language" a) => Lens.Family2.LensLike' f s a language = Data.ProtoLens.Field.field @"language" +line :: + forall f s a. + (Prelude.Functor f, Data.ProtoLens.Field.HasField s "line" a) => + Lens.Family2.LensLike' f s a +line = Data.ProtoLens.Field.field @"line" manager :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "manager" a) => @@ -138,6 +154,20 @@ maybe'metadata :: Data.ProtoLens.Field.HasField s "maybe'metadata" a) => Lens.Family2.LensLike' f s a maybe'metadata = Data.ProtoLens.Field.field @"maybe'metadata" +maybe'multiLineEnclosingRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'multiLineEnclosingRange" a) => + Lens.Family2.LensLike' f s a +maybe'multiLineEnclosingRange + = Data.ProtoLens.Field.field @"maybe'multiLineEnclosingRange" +maybe'multiLineRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'multiLineRange" a) => + Lens.Family2.LensLike' f s a +maybe'multiLineRange + = Data.ProtoLens.Field.field @"maybe'multiLineRange" maybe'package :: forall f s a. (Prelude.Functor f, @@ -151,12 +181,39 @@ maybe'signatureDocumentation :: Lens.Family2.LensLike' f s a maybe'signatureDocumentation = Data.ProtoLens.Field.field @"maybe'signatureDocumentation" +maybe'singleLineEnclosingRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'singleLineEnclosingRange" a) => + Lens.Family2.LensLike' f s a +maybe'singleLineEnclosingRange + = Data.ProtoLens.Field.field @"maybe'singleLineEnclosingRange" +maybe'singleLineRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'singleLineRange" a) => + Lens.Family2.LensLike' f s a +maybe'singleLineRange + = Data.ProtoLens.Field.field @"maybe'singleLineRange" maybe'toolInfo :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'toolInfo" a) => Lens.Family2.LensLike' f s a maybe'toolInfo = Data.ProtoLens.Field.field @"maybe'toolInfo" +maybe'typedEnclosingRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'typedEnclosingRange" a) => + Lens.Family2.LensLike' f s a +maybe'typedEnclosingRange + = Data.ProtoLens.Field.field @"maybe'typedEnclosingRange" +maybe'typedRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "maybe'typedRange" a) => + Lens.Family2.LensLike' f s a +maybe'typedRange = Data.ProtoLens.Field.field @"maybe'typedRange" message :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "message" a) => @@ -168,6 +225,19 @@ metadata :: Data.ProtoLens.Field.HasField s "metadata" a) => Lens.Family2.LensLike' f s a metadata = Data.ProtoLens.Field.field @"metadata" +multiLineEnclosingRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "multiLineEnclosingRange" a) => + Lens.Family2.LensLike' f s a +multiLineEnclosingRange + = Data.ProtoLens.Field.field @"multiLineEnclosingRange" +multiLineRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "multiLineRange" a) => + Lens.Family2.LensLike' f s a +multiLineRange = Data.ProtoLens.Field.field @"multiLineRange" name :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) => @@ -238,11 +308,36 @@ signatureDocumentation :: Lens.Family2.LensLike' f s a signatureDocumentation = Data.ProtoLens.Field.field @"signatureDocumentation" +singleLineEnclosingRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "singleLineEnclosingRange" a) => + Lens.Family2.LensLike' f s a +singleLineEnclosingRange + = Data.ProtoLens.Field.field @"singleLineEnclosingRange" +singleLineRange :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "singleLineRange" a) => + Lens.Family2.LensLike' f s a +singleLineRange = Data.ProtoLens.Field.field @"singleLineRange" source :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "source" a) => Lens.Family2.LensLike' f s a source = Data.ProtoLens.Field.field @"source" +startCharacter :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "startCharacter" a) => + Lens.Family2.LensLike' f s a +startCharacter = Data.ProtoLens.Field.field @"startCharacter" +startLine :: + forall f s a. + (Prelude.Functor f, + Data.ProtoLens.Field.HasField s "startLine" a) => + Lens.Family2.LensLike' f s a +startLine = Data.ProtoLens.Field.field @"startLine" suffix :: forall f s a. (Prelude.Functor f, Data.ProtoLens.Field.HasField s "suffix" a) => diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index 77e37648..433f1d05 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -2531,6 +2531,342 @@ impl ::protobuf::reflect::ProtobufValue for Relationship { type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; } +/// SingleLineRange represents a half-open [start, end) range within a single line. +// @@protoc_insertion_point(message:scip.SingleLineRange) +#[derive(PartialEq,Clone,Default,Debug)] +pub struct SingleLineRange { + // message fields + // @@protoc_insertion_point(field:scip.SingleLineRange.line) + pub line: i32, + // @@protoc_insertion_point(field:scip.SingleLineRange.start_character) + pub start_character: i32, + // @@protoc_insertion_point(field:scip.SingleLineRange.end_character) + pub end_character: i32, + // special fields + // @@protoc_insertion_point(special_field:scip.SingleLineRange.special_fields) + pub special_fields: ::protobuf::SpecialFields, +} + +impl<'a> ::std::default::Default for &'a SingleLineRange { + fn default() -> &'a SingleLineRange { + ::default_instance() + } +} + +impl SingleLineRange { + pub fn new() -> SingleLineRange { + ::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::<_, _>( + "line", + |m: &SingleLineRange| { &m.line }, + |m: &mut SingleLineRange| { &mut m.line }, + )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "start_character", + |m: &SingleLineRange| { &m.start_character }, + |m: &mut SingleLineRange| { &mut m.start_character }, + )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "end_character", + |m: &SingleLineRange| { &m.end_character }, + |m: &mut SingleLineRange| { &mut m.end_character }, + )); + ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( + "SingleLineRange", + fields, + oneofs, + ) + } +} + +impl ::protobuf::Message for SingleLineRange { + const NAME: &'static str = "SingleLineRange"; + + 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.line = is.read_int32()?; + }, + 16 => { + self.start_character = is.read_int32()?; + }, + 24 => { + self.end_character = is.read_int32()?; + }, + tag => { + ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; + }, + }; + } + ::std::result::Result::Ok(()) + } + + // Compute sizes of nested messages + #[allow(unused_variables)] + fn compute_size(&self) -> u64 { + let mut my_size = 0; + if self.line != 0 { + my_size += ::protobuf::rt::int32_size(1, self.line); + } + if self.start_character != 0 { + my_size += ::protobuf::rt::int32_size(2, self.start_character); + } + if self.end_character != 0 { + my_size += ::protobuf::rt::int32_size(3, self.end_character); + } + 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.line != 0 { + os.write_int32(1, self.line)?; + } + if self.start_character != 0 { + os.write_int32(2, self.start_character)?; + } + if self.end_character != 0 { + os.write_int32(3, self.end_character)?; + } + 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() -> SingleLineRange { + SingleLineRange::new() + } + + fn clear(&mut self) { + self.line = 0; + self.start_character = 0; + self.end_character = 0; + self.special_fields.clear(); + } + + fn default_instance() -> &'static SingleLineRange { + static instance: SingleLineRange = SingleLineRange { + line: 0, + start_character: 0, + end_character: 0, + special_fields: ::protobuf::SpecialFields::new(), + }; + &instance + } +} + +impl ::protobuf::MessageFull for SingleLineRange { + 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("SingleLineRange").unwrap()).clone() + } +} + +impl ::std::fmt::Display for SingleLineRange { + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + ::protobuf::text_format::fmt(self, f) + } +} + +impl ::protobuf::reflect::ProtobufValue for SingleLineRange { + type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; +} + +/// MultiLineRange represents a half-open [start, end) range spanning multiple lines. +// @@protoc_insertion_point(message:scip.MultiLineRange) +#[derive(PartialEq,Clone,Default,Debug)] +pub struct MultiLineRange { + // message fields + // @@protoc_insertion_point(field:scip.MultiLineRange.start_line) + pub start_line: i32, + // @@protoc_insertion_point(field:scip.MultiLineRange.start_character) + pub start_character: i32, + // @@protoc_insertion_point(field:scip.MultiLineRange.end_line) + pub end_line: i32, + // @@protoc_insertion_point(field:scip.MultiLineRange.end_character) + pub end_character: i32, + // special fields + // @@protoc_insertion_point(special_field:scip.MultiLineRange.special_fields) + pub special_fields: ::protobuf::SpecialFields, +} + +impl<'a> ::std::default::Default for &'a MultiLineRange { + fn default() -> &'a MultiLineRange { + ::default_instance() + } +} + +impl MultiLineRange { + pub fn new() -> MultiLineRange { + ::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::<_, _>( + "start_line", + |m: &MultiLineRange| { &m.start_line }, + |m: &mut MultiLineRange| { &mut m.start_line }, + )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "start_character", + |m: &MultiLineRange| { &m.start_character }, + |m: &mut MultiLineRange| { &mut m.start_character }, + )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "end_line", + |m: &MultiLineRange| { &m.end_line }, + |m: &mut MultiLineRange| { &mut m.end_line }, + )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "end_character", + |m: &MultiLineRange| { &m.end_character }, + |m: &mut MultiLineRange| { &mut m.end_character }, + )); + ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( + "MultiLineRange", + fields, + oneofs, + ) + } +} + +impl ::protobuf::Message for MultiLineRange { + const NAME: &'static str = "MultiLineRange"; + + 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.start_line = is.read_int32()?; + }, + 16 => { + self.start_character = is.read_int32()?; + }, + 24 => { + self.end_line = is.read_int32()?; + }, + 32 => { + self.end_character = is.read_int32()?; + }, + tag => { + ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; + }, + }; + } + ::std::result::Result::Ok(()) + } + + // Compute sizes of nested messages + #[allow(unused_variables)] + fn compute_size(&self) -> u64 { + let mut my_size = 0; + if self.start_line != 0 { + my_size += ::protobuf::rt::int32_size(1, self.start_line); + } + if self.start_character != 0 { + my_size += ::protobuf::rt::int32_size(2, self.start_character); + } + if self.end_line != 0 { + my_size += ::protobuf::rt::int32_size(3, self.end_line); + } + if self.end_character != 0 { + my_size += ::protobuf::rt::int32_size(4, self.end_character); + } + 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.start_line != 0 { + os.write_int32(1, self.start_line)?; + } + if self.start_character != 0 { + os.write_int32(2, self.start_character)?; + } + if self.end_line != 0 { + os.write_int32(3, self.end_line)?; + } + if self.end_character != 0 { + os.write_int32(4, self.end_character)?; + } + 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() -> MultiLineRange { + MultiLineRange::new() + } + + fn clear(&mut self) { + self.start_line = 0; + self.start_character = 0; + self.end_line = 0; + self.end_character = 0; + self.special_fields.clear(); + } + + fn default_instance() -> &'static MultiLineRange { + static instance: MultiLineRange = MultiLineRange { + start_line: 0, + start_character: 0, + end_line: 0, + end_character: 0, + special_fields: ::protobuf::SpecialFields::new(), + }; + &instance + } +} + +impl ::protobuf::MessageFull for MultiLineRange { + 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("MultiLineRange").unwrap()).clone() + } +} + +impl ::std::fmt::Display for MultiLineRange { + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + ::protobuf::text_format::fmt(self, f) + } +} + +impl ::protobuf::reflect::ProtobufValue for MultiLineRange { + type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; +} + /// Occurrence associates a source position with a symbol and/or highlighting /// information. /// @@ -2540,29 +2876,18 @@ impl ::protobuf::reflect::ProtobufValue for Relationship { #[derive(PartialEq,Clone,Default,Debug)] pub struct Occurrence { // message fields - /// Half-open [start, end) range of this occurrence. Must be exactly three or four - /// elements: + /// Deprecated: Use `single_line_range` or `multi_line_range` instead. /// + /// Half-open [start, end) range. Must be exactly three or four elements: + /// - Three elements: `[startLine, startCharacter, endCharacter]` (single-line) /// - Four elements: `[startLine, startCharacter, endLine, endCharacter]` - /// - Three elements: `[startLine, startCharacter, endCharacter]`. The end line - /// is inferred to have the same value as the start line. - /// - /// It is allowed for the range to be empty (i.e. start==end). - /// - /// Line numbers and characters are always 0-based. Make sure to increment the - /// line/character values before displaying them in an editor-like UI because - /// editors conventionally use 1-based numbers. - /// - /// The 'character' value is interpreted based on the PositionEncoding for - /// the Document. /// /// Historical note: the original draft of this schema had a `Range` message /// type with `start` and `end` fields of type `Position`, mirroring LSP. /// Benchmarks revealed that this encoding was inefficient and that we could /// reduce the total payload size of an index by 50% by using `repeated int32` - /// instead. The `repeated int32` encoding is admittedly more embarrassing to - /// work with in some programming languages but we hope the performance - /// improvements make up for it. + /// instead. However, the lack of type safety led to the introduction of + /// `single_line_range` and `multi_line_range` as typed alternatives. // @@protoc_insertion_point(field:scip.Occurrence.range) pub range: ::std::vec::Vec, /// (optional) The symbol that appears at this position. See @@ -2589,8 +2914,12 @@ pub struct Occurrence { /// (optional) Diagnostics that have been reported for this specific range. // @@protoc_insertion_point(field:scip.Occurrence.diagnostics) pub diagnostics: ::std::vec::Vec, + /// Deprecated: Use `typed_enclosing_range` instead. // @@protoc_insertion_point(field:scip.Occurrence.enclosing_range) pub enclosing_range: ::std::vec::Vec, + // message oneof groups + pub typed_range: ::std::option::Option, + pub typed_enclosing_range: ::std::option::Option, // special fields // @@protoc_insertion_point(special_field:scip.Occurrence.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -2607,14 +2936,224 @@ impl Occurrence { ::std::default::Default::default() } + // .scip.SingleLineRange single_line_range = 8; + + pub fn single_line_range(&self) -> &SingleLineRange { + match self.typed_range { + ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(ref v)) => v, + _ => ::default_instance(), + } + } + + pub fn clear_single_line_range(&mut self) { + self.typed_range = ::std::option::Option::None; + } + + pub fn has_single_line_range(&self) -> bool { + match self.typed_range { + ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(..)) => true, + _ => false, + } + } + + // Param is passed by value, moved + pub fn set_single_line_range(&mut self, v: SingleLineRange) { + self.typed_range = ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(v)) + } + + // Mutable pointer to the field. + pub fn mut_single_line_range(&mut self) -> &mut SingleLineRange { + if let ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(_)) = self.typed_range { + } else { + self.typed_range = ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(SingleLineRange::new())); + } + match self.typed_range { + ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(ref mut v)) => v, + _ => panic!(), + } + } + + // Take field + pub fn take_single_line_range(&mut self) -> SingleLineRange { + if self.has_single_line_range() { + match self.typed_range.take() { + ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(v)) => v, + _ => panic!(), + } + } else { + SingleLineRange::new() + } + } + + // .scip.MultiLineRange multi_line_range = 9; + + pub fn multi_line_range(&self) -> &MultiLineRange { + match self.typed_range { + ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(ref v)) => v, + _ => ::default_instance(), + } + } + + pub fn clear_multi_line_range(&mut self) { + self.typed_range = ::std::option::Option::None; + } + + pub fn has_multi_line_range(&self) -> bool { + match self.typed_range { + ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(..)) => true, + _ => false, + } + } + + // Param is passed by value, moved + pub fn set_multi_line_range(&mut self, v: MultiLineRange) { + self.typed_range = ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(v)) + } + + // Mutable pointer to the field. + pub fn mut_multi_line_range(&mut self) -> &mut MultiLineRange { + if let ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(_)) = self.typed_range { + } else { + self.typed_range = ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(MultiLineRange::new())); + } + match self.typed_range { + ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(ref mut v)) => v, + _ => panic!(), + } + } + + // Take field + pub fn take_multi_line_range(&mut self) -> MultiLineRange { + if self.has_multi_line_range() { + match self.typed_range.take() { + ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(v)) => v, + _ => panic!(), + } + } else { + MultiLineRange::new() + } + } + + // .scip.SingleLineRange single_line_enclosing_range = 10; + + pub fn single_line_enclosing_range(&self) -> &SingleLineRange { + match self.typed_enclosing_range { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(ref v)) => v, + _ => ::default_instance(), + } + } + + pub fn clear_single_line_enclosing_range(&mut self) { + self.typed_enclosing_range = ::std::option::Option::None; + } + + pub fn has_single_line_enclosing_range(&self) -> bool { + match self.typed_enclosing_range { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(..)) => true, + _ => false, + } + } + + // Param is passed by value, moved + pub fn set_single_line_enclosing_range(&mut self, v: SingleLineRange) { + self.typed_enclosing_range = ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(v)) + } + + // Mutable pointer to the field. + pub fn mut_single_line_enclosing_range(&mut self) -> &mut SingleLineRange { + if let ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(_)) = self.typed_enclosing_range { + } else { + self.typed_enclosing_range = ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(SingleLineRange::new())); + } + match self.typed_enclosing_range { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(ref mut v)) => v, + _ => panic!(), + } + } + + // Take field + pub fn take_single_line_enclosing_range(&mut self) -> SingleLineRange { + if self.has_single_line_enclosing_range() { + match self.typed_enclosing_range.take() { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(v)) => v, + _ => panic!(), + } + } else { + SingleLineRange::new() + } + } + + // .scip.MultiLineRange multi_line_enclosing_range = 11; + + pub fn multi_line_enclosing_range(&self) -> &MultiLineRange { + match self.typed_enclosing_range { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(ref v)) => v, + _ => ::default_instance(), + } + } + + pub fn clear_multi_line_enclosing_range(&mut self) { + self.typed_enclosing_range = ::std::option::Option::None; + } + + pub fn has_multi_line_enclosing_range(&self) -> bool { + match self.typed_enclosing_range { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(..)) => true, + _ => false, + } + } + + // Param is passed by value, moved + pub fn set_multi_line_enclosing_range(&mut self, v: MultiLineRange) { + self.typed_enclosing_range = ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(v)) + } + + // Mutable pointer to the field. + pub fn mut_multi_line_enclosing_range(&mut self) -> &mut MultiLineRange { + if let ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(_)) = self.typed_enclosing_range { + } else { + self.typed_enclosing_range = ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(MultiLineRange::new())); + } + match self.typed_enclosing_range { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(ref mut v)) => v, + _ => panic!(), + } + } + + // Take field + pub fn take_multi_line_enclosing_range(&mut self) -> MultiLineRange { + if self.has_multi_line_enclosing_range() { + match self.typed_enclosing_range.take() { + ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(v)) => v, + _ => panic!(), + } + } else { + MultiLineRange::new() + } + } + 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); + let mut fields = ::std::vec::Vec::with_capacity(11); + let mut oneofs = ::std::vec::Vec::with_capacity(2); 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_oneof_message_has_get_mut_set_accessor::<_, SingleLineRange>( + "single_line_range", + Occurrence::has_single_line_range, + Occurrence::single_line_range, + Occurrence::mut_single_line_range, + Occurrence::set_single_line_range, + )); + fields.push(::protobuf::reflect::rt::v2::make_oneof_message_has_get_mut_set_accessor::<_, MultiLineRange>( + "multi_line_range", + Occurrence::has_multi_line_range, + Occurrence::multi_line_range, + Occurrence::mut_multi_line_range, + Occurrence::set_multi_line_range, + )); fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( "symbol", |m: &Occurrence| { &m.symbol }, @@ -2645,6 +3184,22 @@ impl Occurrence { |m: &Occurrence| { &m.enclosing_range }, |m: &mut Occurrence| { &mut m.enclosing_range }, )); + fields.push(::protobuf::reflect::rt::v2::make_oneof_message_has_get_mut_set_accessor::<_, SingleLineRange>( + "single_line_enclosing_range", + Occurrence::has_single_line_enclosing_range, + Occurrence::single_line_enclosing_range, + Occurrence::mut_single_line_enclosing_range, + Occurrence::set_single_line_enclosing_range, + )); + fields.push(::protobuf::reflect::rt::v2::make_oneof_message_has_get_mut_set_accessor::<_, MultiLineRange>( + "multi_line_enclosing_range", + Occurrence::has_multi_line_enclosing_range, + Occurrence::multi_line_enclosing_range, + Occurrence::mut_multi_line_enclosing_range, + Occurrence::set_multi_line_enclosing_range, + )); + oneofs.push(occurrence::Typed_range::generated_oneof_descriptor_data()); + oneofs.push(occurrence::Typed_enclosing_range::generated_oneof_descriptor_data()); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "Occurrence", fields, @@ -2669,6 +3224,12 @@ impl ::protobuf::Message for Occurrence { 8 => { self.range.push(is.read_int32()?); }, + 66 => { + self.typed_range = ::std::option::Option::Some(occurrence::Typed_range::SingleLineRange(is.read_message()?)); + }, + 74 => { + self.typed_range = ::std::option::Option::Some(occurrence::Typed_range::MultiLineRange(is.read_message()?)); + }, 18 => { self.symbol = is.read_string()?; }, @@ -2690,6 +3251,12 @@ impl ::protobuf::Message for Occurrence { 56 => { self.enclosing_range.push(is.read_int32()?); }, + 82 => { + self.typed_enclosing_range = ::std::option::Option::Some(occurrence::Typed_enclosing_range::SingleLineEnclosingRange(is.read_message()?)); + }, + 90 => { + self.typed_enclosing_range = ::std::option::Option::Some(occurrence::Typed_enclosing_range::MultiLineEnclosingRange(is.read_message()?)); + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -2720,6 +3287,30 @@ impl ::protobuf::Message for Occurrence { my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; }; my_size += ::protobuf::rt::vec_packed_int32_size(7, &self.enclosing_range); + if let ::std::option::Option::Some(ref v) = self.typed_range { + match v { + &occurrence::Typed_range::SingleLineRange(ref v) => { + let len = v.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; + }, + &occurrence::Typed_range::MultiLineRange(ref v) => { + let len = v.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; + }, + }; + } + if let ::std::option::Option::Some(ref v) = self.typed_enclosing_range { + match v { + &occurrence::Typed_enclosing_range::SingleLineEnclosingRange(ref v) => { + let len = v.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; + }, + &occurrence::Typed_enclosing_range::MultiLineEnclosingRange(ref v) => { + let len = v.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 @@ -2743,6 +3334,26 @@ impl ::protobuf::Message for Occurrence { ::protobuf::rt::write_message_field_with_cached_size(6, v, os)?; }; os.write_repeated_packed_int32(7, &self.enclosing_range)?; + if let ::std::option::Option::Some(ref v) = self.typed_range { + match v { + &occurrence::Typed_range::SingleLineRange(ref v) => { + ::protobuf::rt::write_message_field_with_cached_size(8, v, os)?; + }, + &occurrence::Typed_range::MultiLineRange(ref v) => { + ::protobuf::rt::write_message_field_with_cached_size(9, v, os)?; + }, + }; + } + if let ::std::option::Option::Some(ref v) = self.typed_enclosing_range { + match v { + &occurrence::Typed_enclosing_range::SingleLineEnclosingRange(ref v) => { + ::protobuf::rt::write_message_field_with_cached_size(10, v, os)?; + }, + &occurrence::Typed_enclosing_range::MultiLineEnclosingRange(ref v) => { + ::protobuf::rt::write_message_field_with_cached_size(11, v, os)?; + }, + }; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -2761,12 +3372,16 @@ impl ::protobuf::Message for Occurrence { fn clear(&mut self) { self.range.clear(); + self.typed_range = ::std::option::Option::None; + self.typed_range = ::std::option::Option::None; 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.typed_enclosing_range = ::std::option::Option::None; + self.typed_enclosing_range = ::std::option::Option::None; self.special_fields.clear(); } @@ -2779,6 +3394,8 @@ impl ::protobuf::Message for Occurrence { syntax_kind: ::protobuf::EnumOrUnknown::from_i32(0), diagnostics: ::std::vec::Vec::new(), enclosing_range: ::std::vec::Vec::new(), + typed_range: ::std::option::Option::None, + typed_enclosing_range: ::std::option::Option::None, special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -2802,6 +3419,62 @@ impl ::protobuf::reflect::ProtobufValue for Occurrence { type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; } +/// Nested message and enums of message `Occurrence` +pub mod occurrence { + + #[derive(Clone,PartialEq,Debug)] + #[non_exhaustive] + // @@protoc_insertion_point(oneof:scip.Occurrence.typed_range) + pub enum Typed_range { + // @@protoc_insertion_point(oneof_field:scip.Occurrence.single_line_range) + SingleLineRange(super::SingleLineRange), + // @@protoc_insertion_point(oneof_field:scip.Occurrence.multi_line_range) + MultiLineRange(super::MultiLineRange), + } + + impl ::protobuf::Oneof for Typed_range { + } + + impl ::protobuf::OneofFull for Typed_range { + fn descriptor() -> ::protobuf::reflect::OneofDescriptor { + static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::OneofDescriptor> = ::protobuf::rt::Lazy::new(); + descriptor.get(|| ::descriptor().oneof_by_name("typed_range").unwrap()).clone() + } + } + + impl Typed_range { + pub(in super) fn generated_oneof_descriptor_data() -> ::protobuf::reflect::GeneratedOneofDescriptorData { + ::protobuf::reflect::GeneratedOneofDescriptorData::new::("typed_range") + } + } + + #[derive(Clone,PartialEq,Debug)] + #[non_exhaustive] + // @@protoc_insertion_point(oneof:scip.Occurrence.typed_enclosing_range) + pub enum Typed_enclosing_range { + // @@protoc_insertion_point(oneof_field:scip.Occurrence.single_line_enclosing_range) + SingleLineEnclosingRange(super::SingleLineRange), + // @@protoc_insertion_point(oneof_field:scip.Occurrence.multi_line_enclosing_range) + MultiLineEnclosingRange(super::MultiLineRange), + } + + impl ::protobuf::Oneof for Typed_enclosing_range { + } + + impl ::protobuf::OneofFull for Typed_enclosing_range { + fn descriptor() -> ::protobuf::reflect::OneofDescriptor { + static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::OneofDescriptor> = ::protobuf::rt::Lazy::new(); + descriptor.get(|| ::descriptor().oneof_by_name("typed_enclosing_range").unwrap()).clone() + } + } + + impl Typed_enclosing_range { + pub(in super) fn generated_oneof_descriptor_data() -> ::protobuf::reflect::GeneratedOneofDescriptorData { + ::protobuf::reflect::GeneratedOneofDescriptorData::new::("typed_enclosing_range") + } + } +} + /// Represents a diagnostic, such as a compiler error or warning, which should be /// reported for a document. // @@protoc_insertion_point(message:scip.Diagnostic) @@ -4581,196 +5254,209 @@ static file_descriptor_proto_data: &'static [u8] = b"\ e\x18\x02\x20\x01(\x08R\x0bisReference\x12+\n\x11is_implementation\x18\ \x03\x20\x01(\x08R\x10isImplementation\x12,\n\x12is_type_definition\x18\ \x04\x20\x01(\x08R\x10isTypeDefinition\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\x15overrideDocumen\ - tation\x121\n\x0bsyntax_kind\x18\x05\x20\x01(\x0e2\x10.scip.SyntaxKindR\ - \nsyntaxKind\x122\n\x0bdiagnostics\x18\x06\x20\x03(\x0b2\x10.scip.Diagno\ - sticR\x0bdiagnostics\x12'\n\x0fenclosing_range\x18\x07\x20\x03(\x05R\x0e\ - enclosingRange\"\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\x06source\x12'\n\x04tags\x18\x05\ - \x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04tags*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*\xa4\x01\n\x10PositionEncoding\x12\x1f\n\x1bUnspecif\ - iedPositionEncoding\x10\0\x12#\n\x1fUTF8CodeUnitOffsetFromLineStart\x10\ - \x01\x12$\n\x20UTF16CodeUnitOffsetFromLineStart\x10\x02\x12$\n\x20UTF32C\ - odeUnitOffsetFromLineStart\x10\x03*\x94\x01\n\nSymbolRole\x12\x19\n\x15U\ - nspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Impo\ - rt\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\ - \x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20\x12\x15\n\x11F\ - orwardDefinition\x10@*\xea\x06\n\nSyntaxKind\x12\x19\n\x15UnspecifiedSyn\ - taxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\x14PunctuationDelim\ - iter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\x12\x0b\n\x07Keywor\ - d\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\x17IdentifierMutableGlobal\ - \x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\n\x0fIdentifierL\ - ocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\x17\n\x13Identifi\ - erNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\x0e\x1a\x02\x08\ - \x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\x1cIdentifierFunc\ - tionDefinition\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/scip-code/scip/b\ - indings/go/scip/J\xbc\xb7\x02\n\x07\x12\x05\n\0\xef\x06\x01\n\x82\x04\n\ - \x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\x20contains\x20one\x20o\ - r\x20more\x20pieces\x20of\x20information\x20about\x20a\x20given\x20piece\ - \x20of\n\x20source\x20code\x20or\x20software\x20artifact.\x20Complementa\ - ry\x20information\x20can\x20be\x20merged\n\x20together\x20from\x20multip\ - le\x20sources\x20to\x20provide\x20a\x20unified\x20code\x20intelligence\n\ - \x20experience.\n\n\x20Programs\x20producing\x20a\x20file\x20of\x20this\ - \x20format\x20is\x20an\x20\"indexer\"\x20and\x20may\x20operate\n\x20some\ - where\x20on\x20the\x20spectrum\x20between\x20precision,\x20such\x20as\ - \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\0B\n\t\n\x02\x08\x0b\x12\ - \x03\x0e\0B\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%\02\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\n\xe0\x01\n\x04\x04\x01\x02\x03\x12\x031\x02*\x1a\ - \xd2\x01\x20Text\x20encoding\x20of\x20the\x20source\x20files\x20on\x20di\ - sk\x20that\x20are\x20referenced\x20from\n\x20`Document.relative_path`.\ - \x20This\x20value\x20is\x20unrelated\x20to\x20the\x20`Document.text`\n\ - \x20field,\x20which\x20is\x20a\x20Protobuf\x20string\x20and\x20hence\x20\ - must\x20be\x20UTF-8\x20encoded.\n\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\ - \x031\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x031\x0f%\n\x0c\n\x05\ - \x04\x01\x02\x03\x03\x12\x031()\n\n\n\x02\x05\0\x12\x044\06\x01\n\n\n\ - \x03\x05\0\x01\x12\x034\x05\x14\n\x0b\n\x04\x05\0\x02\0\x12\x035\x02!\n\ - \x0c\n\x05\x05\0\x02\0\x01\x12\x035\x02\x1c\n\x0c\n\x05\x05\0\x02\0\x02\ - \x12\x035\x1f\x20\n\n\n\x02\x05\x01\x12\x048\0<\x01\n\n\n\x03\x05\x01\ - \x01\x12\x038\x05\x11\n\x0b\n\x04\x05\x01\x02\0\x12\x039\x02\x1e\n\x0c\n\ - \x05\x05\x01\x02\0\x01\x12\x039\x02\x19\n\x0c\n\x05\x05\x01\x02\0\x02\ - \x12\x039\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\x03:\x02\x0b\n\x0c\n\ - \x05\x05\x01\x02\x01\x01\x12\x03:\x02\x06\n\x0c\n\x05\x05\x01\x02\x01\ - \x02\x12\x03:\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>\0E\x01\n\n\n\x03\x04\x02\ - \x01\x12\x03>\x08\x10\n<\n\x04\x04\x02\x02\0\x12\x03@\x02\x12\x1a/\x20Na\ - me\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\x03B\x02\x15\x1a2\x20Version\x20of\x20the\x20indexe\ - r\x20that\x20produced\x20this\x20index.\n\n\x0c\n\x05\x04\x02\x02\x01\ - \x05\x12\x03B\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03B\t\x10\n\ - \x0c\n\x05\x04\x02\x02\x01\x03\x12\x03B\x13\x14\nL\n\x04\x04\x02\x02\x02\ - \x12\x03D\x02\x20\x1a?\x20Command-line\x20arguments\x20that\x20were\x20u\ - sed\x20to\x20invoke\x20this\x20indexer.\n\n\x0c\n\x05\x04\x02\x02\x02\ - \x04\x12\x03D\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03D\x0b\x11\n\ - \x0c\n\x05\x04\x02\x02\x02\x01\x12\x03D\x12\x1b\n\x0c\n\x05\x04\x02\x02\ - \x02\x03\x12\x03D\x1e\x1f\nH\n\x02\x04\x03\x12\x04H\0u\x01\x1a<\x20Docum\ - ent\x20defines\x20the\x20metadata\x20about\x20a\x20source\x20file\x20on\ - \x20disk.\n\n\n\n\x03\x04\x03\x01\x12\x03H\x08\x10\n\xa5\x02\n\x04\x04\ - \x03\x02\0\x12\x03M\x02\x16\x1a\x97\x02\x20The\x20string\x20ID\x20for\ - \x20the\x20programming\x20language\x20this\x20file\x20is\x20written\x20i\ - n.\n\x20The\x20`Language`\x20enum\x20contains\x20the\x20names\x20of\x20m\ - ost\x20common\x20programming\x20languages.\n\x20This\x20field\x20is\x20t\ - yped\x20as\x20a\x20string\x20to\x20permit\x20any\x20programming\x20langu\ - age,\x20including\n\x20ones\x20that\x20are\x20not\x20specified\x20by\x20\ - the\x20`Language`\x20enum.\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x03M\x02\ - \x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03M\t\x11\n\x0c\n\x05\x04\x03\ - \x02\0\x03\x12\x03M\x14\x15\n\xb5\x03\n\x04\x04\x03\x02\x01\x12\x03W\x02\ - \x1b\x1a\xa7\x03\x20(Required)\x20Unique\x20path\x20to\x20the\x20text\ - \x20document.\n\n\x201.\x20The\x20path\x20must\x20be\x20relative\x20to\ + \x01(\x08R\x0cisDefinition\"s\n\x0fSingleLineRange\x12\x12\n\x04line\x18\ + \x01\x20\x01(\x05R\x04line\x12'\n\x0fstart_character\x18\x02\x20\x01(\ + \x05R\x0estartCharacter\x12#\n\rend_character\x18\x03\x20\x01(\x05R\x0ce\ + ndCharacter\"\x98\x01\n\x0eMultiLineRange\x12\x1d\n\nstart_line\x18\x01\ + \x20\x01(\x05R\tstartLine\x12'\n\x0fstart_character\x18\x02\x20\x01(\x05\ + R\x0estartCharacter\x12\x19\n\x08end_line\x18\x03\x20\x01(\x05R\x07endLi\ + ne\x12#\n\rend_character\x18\x04\x20\x01(\x05R\x0cendCharacter\"\x88\x05\ + \n\nOccurrence\x12\x18\n\x05range\x18\x01\x20\x03(\x05R\x05rangeB\x02\ + \x18\x01\x12C\n\x11single_line_range\x18\x08\x20\x01(\x0b2\x15.scip.Sing\ + leLineRangeH\0R\x0fsingleLineRange\x12@\n\x10multi_line_range\x18\t\x20\ + \x01(\x0b2\x14.scip.MultiLineRangeH\0R\x0emultiLineRange\x12\x16\n\x06sy\ + mbol\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\x0fenclosing_range\ + \x18\x07\x20\x03(\x05R\x0eenclosingRangeB\x02\x18\x01\x12V\n\x1bsingle_l\ + ine_enclosing_range\x18\n\x20\x01(\x0b2\x15.scip.SingleLineRangeH\x01R\ + \x18singleLineEnclosingRange\x12S\n\x1amulti_line_enclosing_range\x18\ + \x0b\x20\x01(\x0b2\x14.scip.MultiLineRangeH\x01R\x17multiLineEnclosingRa\ + ngeB\r\n\x0btyped_rangeB\x17\n\x15typed_enclosing_range\"\xa7\x01\n\nDia\ + gnostic\x12*\n\x08severity\x18\x01\x20\x01(\x0e2\x0e.scip.SeverityR\x08s\ + everity\x12\x12\n\x04code\x18\x02\x20\x01(\tR\x04code\x12\x18\n\x07messa\ + ge\x18\x03\x20\x01(\tR\x07message\x12\x16\n\x06source\x18\x04\x20\x01(\t\ + R\x06source\x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\ + \x04tags*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*\xa4\x01\n\x10Positi\ + onEncoding\x12\x1f\n\x1bUnspecifiedPositionEncoding\x10\0\x12#\n\x1fUTF8\ + CodeUnitOffsetFromLineStart\x10\x01\x12$\n\x20UTF16CodeUnitOffsetFromLin\ + eStart\x10\x02\x12$\n\x20UTF32CodeUnitOffsetFromLineStart\x10\x03*\x94\ + \x01\n\nSymbolRole\x12\x19\n\x15UnspecifiedSymbolRole\x10\0\x12\x0e\n\nD\ + efinition\x10\x01\x12\n\n\x06Import\x10\x02\x12\x0f\n\x0bWriteAccess\x10\ + \x04\x12\x0e\n\nReadAccess\x10\x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\ + \x04Test\x10\x20\x12\x15\n\x11ForwardDefinition\x10@*\xea\x06\n\nSyntaxK\ + ind\x12\x19\n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\ + \x01\x12\x18\n\x14PunctuationDelimiter\x10\x02\x12\x16\n\x12PunctuationB\ + racket\x10\x03\x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierKeywo\ + rd\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\x17IdentifierMutableGlobal\x10\n\x12\x17\n\x13IdentifierParam\ + eter\x10\x0b\x12\x13\n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12Identifie\ + rShadowed\x10\r\x12\x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10Id\ + entifierModule\x10\x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\ + \x10\x0f\x12\x20\n\x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0f\ + IdentifierMacro\x10\x11\x12\x1d\n\x19IdentifierMacroDefinition\x10\x12\ + \x12\x12\n\x0eIdentifierType\x10\x13\x12\x19\n\x15IdentifierBuiltinType\ + \x10\x14\x12\x17\n\x13IdentifierAttribute\x10\x15\x12\x0f\n\x0bRegexEsca\ + pe\x10\x16\x12\x11\n\rRegexRepeated\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\x10CharacterLiteral\x10\x1f\x12\x12\n\x0eNumericLiter\ + al\x10\x20\x12\x12\n\x0eBooleanLiteral\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\x13UnspecifiedSeverity\x10\0\x12\t\n\x05E\ + rror\x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x0f\n\x0bInformation\x10\ + \x03\x12\x08\n\x04Hint\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18Unspecifi\ + edDiagnosticTag\x10\0\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\nDeprec\ + ated\x10\x02*\x9b\n\n\x08Language\x12\x17\n\x13UnspecifiedLanguage\x10\0\ + \x12\x08\n\x04ABAP\x10<\x12\x08\n\x04Apex\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\nCommo\ + nLisp\x10\t\x12\x07\n\x03Coq\x10/\x12\x08\n\x04CUDA\x10a\x12\x08\n\x04Da\ + rt\x10\x03\x12\n\n\x06Delphi\x109\x12\x08\n\x04Diff\x10X\x12\x0e\n\nDock\ + erfile\x10P\x12\n\n\x06Dyalog\x102\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06\ + Erlang\x10\x12\x12\n\n\x06FSharp\x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\ + \x04Flow\x10\x18\x12\x0b\n\x07Fortran\x108\x12\x0e\n\nGit_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\x04H\ + TML\x10\x1e\x12\x08\n\x04Hack\x10\x14\x12\x0e\n\nHandlebars\x10Z\x12\x0b\ + \n\x07Haskell\x10,\x12\t\n\x05Idris\x10.\x12\x07\n\x03Ini\x10H\x12\x05\n\ + \x01J\x103\x12\x08\n\x04JSON\x10K\x12\x08\n\x04Java\x10\x06\x12\x0e\n\nJ\ + avaScript\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\x05LaTeX\x10S\x12\x08\n\x04Lean\x100\x12\x08\n\x04Less\ + \x10\x1b\x12\x07\n\x03Lua\x10\x0c\x12\x08\n\x04Luau\x10l\x12\x0c\n\x08Ma\ + kefile\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\x10\ + c\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\x06Python\x10\x0f\x12\x05\n\x01R\x106\x12\n\n\x06Racket\ + \x10\x0b\x12\x08\n\x04Raku\x10\x0e\x12\t\n\x05Razor\x10>\x12\t\n\x05Repr\ + o\x10f\x12\x08\n\x04ReST\x10U\x12\x08\n\x04Ruby\x10\x10\x12\x08\n\x04Rus\ + t\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\x06Scheme\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\n\ + TypeScript\x10\x17\x12\x13\n\x0fTypeScriptReact\x10^\x12\x0b\n\x07Verilo\ + g\x10h\x12\x08\n\x04VHDL\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+gi\ + thub.com/scip-code/scip/bindings/go/scip/J\xc5\xbf\x02\n\x07\x12\x05\n\0\ + \x88\x07\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\ + \x20contains\x20one\x20or\x20more\x20pieces\x20of\x20information\x20abou\ + t\x20a\x20given\x20piece\x20of\n\x20source\x20code\x20or\x20software\x20\ + artifact.\x20Complementary\x20information\x20can\x20be\x20merged\n\x20to\ + gether\x20from\x20multiple\x20sources\x20to\x20provide\x20a\x20unified\ + \x20code\x20intelligence\n\x20experience.\n\n\x20Programs\x20producing\ + \x20a\x20file\x20of\x20this\x20format\x20is\x20an\x20\"indexer\"\x20and\ + \x20may\x20operate\n\x20somewhere\x20on\x20the\x20spectrum\x20between\ + \x20precision,\x20such\x20as\x20indexes\x20produced\x20by\n\x20compiler-\ + backed\x20indexers,\x20and\x20heurstics,\x20such\x20as\x20indexes\x20pro\ + duced\x20by\x20local\n\x20syntax-directed\x20analysis\x20for\x20scope\ + \x20rules.\n\n\x08\n\x01\x02\x12\x03\x0c\0\r\n\x08\n\x01\x08\x12\x03\x0e\ + \0B\n\t\n\x02\x08\x0b\x12\x03\x0e\0B\n\xd0\x03\n\x02\x04\0\x12\x04\x16\0\ + #\x01\x1a\xc3\x03\x20Index\x20represents\x20a\x20complete\x20SCIP\x20ind\ + ex\x20for\x20a\x20workspace\x20this\x20is\x20rooted\x20at\x20a\n\x20sing\ + le\x20directory.\x20An\x20Index\x20message\x20payload\x20can\x20have\x20\ + a\x20large\x20memory\x20footprint\n\x20and\x20it's\x20therefore\x20recom\ + mended\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\x20appear\x20at\x20the\x20start\x20of\x20the\x20stream\ + \x20and\x20must\x20only\x20appear\n\x20once\x20in\x20the\x20stream.\x20O\ + ther\x20field\x20values\x20may\x20appear\x20in\x20any\x20order.\n\n\n\n\ + \x03\x04\0\x01\x12\x03\x16\x08\r\n)\n\x04\x04\0\x02\0\x12\x03\x18\x02\ + \x18\x1a\x1c\x20Metadata\x20about\x20this\x20index.\n\n\x0c\n\x05\x04\0\ + \x02\0\x06\x12\x03\x18\x02\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x0b\ + \x13\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x18\x16\x17\n3\n\x04\x04\0\x02\ + \x01\x12\x03\x1a\x02\"\x1a&\x20Documents\x20that\x20belong\x20to\x20this\ + \x20index.\n\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\ + \x04\0\x02\x01\x06\x12\x03\x1a\x0b\x13\n\x0c\n\x05\x04\0\x02\x01\x01\x12\ + \x03\x1a\x14\x1d\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x1a\x20!\n\xf6\ + \x03\n\x04\x04\0\x02\x02\x12\x03\x20\x022\x1a\xe9\x02\x20(optional)\x20S\ + ymbols\x20that\x20are\x20referenced\x20from\x20this\x20index\x20but\x20a\ + re\x20defined\x20in\n\x20an\x20external\x20package\x20(a\x20separate\x20\ + `Index`\x20message).\x20Leave\x20this\x20field\x20empty\n\x20if\x20you\ + \x20assume\x20the\x20external\x20package\x20will\x20get\x20indexed\x20se\ + parately.\x20If\x20the\n\x20external\x20package\x20won't\x20get\x20index\ + ed\x20for\x20some\x20reason\x20then\x20you\x20can\x20use\x20this\n\x20fi\ + eld\x20to\x20provide\x20hover\x20documentation\x20for\x20those\x20extern\ + al\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%\02\x01\n\ + \n\n\x03\x04\x01\x01\x12\x03%\x08\x10\nN\n\x04\x04\x01\x02\0\x12\x03'\ + \x02\x1e\x1aA\x20Which\x20version\x20of\x20this\x20protocol\x20was\x20us\ + ed\x20to\x20generate\x20this\x20index?\n\n\x0c\n\x05\x04\x01\x02\0\x06\ + \x12\x03'\x02\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03'\x12\x19\n\x0c\n\ + \x05\x04\x01\x02\0\x03\x12\x03'\x1c\x1d\nC\n\x04\x04\x01\x02\x01\x12\x03\ + )\x02\x19\x1a6\x20Information\x20about\x20the\x20tool\x20that\x20produce\ + d\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\x20thi\ + s\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\n\xe0\x01\n\x04\x04\x01\x02\x03\x12\x031\ + \x02*\x1a\xd2\x01\x20Text\x20encoding\x20of\x20the\x20source\x20files\ + \x20on\x20disk\x20that\x20are\x20referenced\x20from\n\x20`Document.relat\ + ive_path`.\x20This\x20value\x20is\x20unrelated\x20to\x20the\x20`Document\ + .text`\n\x20field,\x20which\x20is\x20a\x20Protobuf\x20string\x20and\x20h\ + ence\x20must\x20be\x20UTF-8\x20encoded.\n\n\x0c\n\x05\x04\x01\x02\x03\ + \x06\x12\x031\x02\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x031\x0f%\n\ + \x0c\n\x05\x04\x01\x02\x03\x03\x12\x031()\n\n\n\x02\x05\0\x12\x044\06\ + \x01\n\n\n\x03\x05\0\x01\x12\x034\x05\x14\n\x0b\n\x04\x05\0\x02\0\x12\ + \x035\x02!\n\x0c\n\x05\x05\0\x02\0\x01\x12\x035\x02\x1c\n\x0c\n\x05\x05\ + \0\x02\0\x02\x12\x035\x1f\x20\n\n\n\x02\x05\x01\x12\x048\0<\x01\n\n\n\ + \x03\x05\x01\x01\x12\x038\x05\x11\n\x0b\n\x04\x05\x01\x02\0\x12\x039\x02\ + \x1e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x039\x02\x19\n\x0c\n\x05\x05\x01\ + \x02\0\x02\x12\x039\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x01\x12\x03:\x02\x0b\ + \n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03:\x02\x06\n\x0c\n\x05\x05\x01\ + \x02\x01\x02\x12\x03:\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>\0E\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\x03B\x02\x15\x1a2\x20Version\x20of\x20the\x20in\ + dexer\x20that\x20produced\x20this\x20index.\n\n\x0c\n\x05\x04\x02\x02\ + \x01\x05\x12\x03B\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03B\t\x10\ + \n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03B\x13\x14\nL\n\x04\x04\x02\x02\ + \x02\x12\x03D\x02\x20\x1a?\x20Command-line\x20arguments\x20that\x20were\ + \x20used\x20to\x20invoke\x20this\x20indexer.\n\n\x0c\n\x05\x04\x02\x02\ + \x02\x04\x12\x03D\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03D\x0b\x11\ + \n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03D\x12\x1b\n\x0c\n\x05\x04\x02\ + \x02\x02\x03\x12\x03D\x1e\x1f\nH\n\x02\x04\x03\x12\x04H\0u\x01\x1a<\x20D\ + ocument\x20defines\x20the\x20metadata\x20about\x20a\x20source\x20file\ + \x20on\x20disk.\n\n\n\n\x03\x04\x03\x01\x12\x03H\x08\x10\n\xa5\x02\n\x04\ + \x04\x03\x02\0\x12\x03M\x02\x16\x1a\x97\x02\x20The\x20string\x20ID\x20fo\ + r\x20the\x20programming\x20language\x20this\x20file\x20is\x20written\x20\ + in.\n\x20The\x20`Language`\x20enum\x20contains\x20the\x20names\x20of\x20\ + most\x20common\x20programming\x20languages.\n\x20This\x20field\x20is\x20\ + typed\x20as\x20a\x20string\x20to\x20permit\x20any\x20programming\x20lang\ + uage,\x20including\n\x20ones\x20that\x20are\x20not\x20specified\x20by\ + \x20the\x20`Language`\x20enum.\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x03M\ + \x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03M\t\x11\n\x0c\n\x05\x04\ + \x03\x02\0\x03\x12\x03M\x14\x15\n\xb5\x03\n\x04\x04\x03\x02\x01\x12\x03W\ + \x02\x1b\x1a\xa7\x03\x20(Required)\x20Unique\x20path\x20to\x20the\x20tex\ + t\x20document.\n\n\x201.\x20The\x20path\x20must\x20be\x20relative\x20to\ \x20the\x20directory\x20supplied\x20in\x20the\x20associated\n\x20\x20\ \x20\x20`Metadata.project_root`.\n\x202.\x20The\x20path\x20must\x20not\ \x20begin\x20with\x20a\x20leading\x20'/'.\n\x203.\x20The\x20path\x20must\ @@ -5563,418 +6249,463 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \xe9\x04\x02\x0e\n\r\n\x05\x05\x04\x02%\x02\x12\x04\xe9\x04\x11\x13\n,\n\ \x04\x05\x04\x02&\x12\x04\xeb\x04\x02\x14\x1a\x1e\x20Delimiters\x20for\ \x20XML-like\x20tags\n\n\r\n\x05\x05\x04\x02&\x01\x12\x04\xeb\x04\x02\ - \x0e\n\r\n\x05\x05\x04\x02&\x02\x12\x04\xeb\x04\x11\x13\n\xf9\x01\n\x02\ - \x04\t\x12\x06\xf3\x04\0\xd4\x05\x01\x1a\xea\x01\x20Occurrence\x20associ\ - ates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20and/or\x20high\ - lighting\n\x20information.\n\n\x20If\x20possible,\x20indexers\x20should\ - \x20try\x20to\x20bundle\x20logically\x20related\x20information\n\x20acro\ - ss\x20occurrences\x20into\x20a\x20single\x20occurrence\x20to\x20reduce\ - \x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xf3\x04\x08\x12\n\ - \xe8\x08\n\x04\x04\t\x02\0\x12\x04\x8b\x05\x02\x1b\x1a\xd9\x08\x20Half-o\ - pen\x20[start,\x20end)\x20range\x20of\x20this\x20occurrence.\x20Must\x20\ - be\x20exactly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20\ - elements:\x20`[startLine,\x20startCharacter,\x20endLine,\x20endCharacter\ - ]`\n\x20-\x20Three\x20elements:\x20`[startLine,\x20startCharacter,\x20en\ - dCharacter]`.\x20The\x20end\x20line\n\x20\x20\x20is\x20inferred\x20to\ - \x20have\x20the\x20same\x20value\x20as\x20the\x20start\x20line.\n\n\x20I\ - t\x20is\x20allowed\x20for\x20the\x20range\x20to\x20be\x20empty\x20(i.e.\ - \x20start==end).\n\n\x20Line\x20numbers\x20and\x20characters\x20are\x20a\ - lways\x200-based.\x20Make\x20sure\x20to\x20increment\x20the\n\x20line/ch\ - aracter\x20values\x20before\x20displaying\x20them\x20in\x20an\x20editor-\ - like\x20UI\x20because\n\x20editors\x20conventionally\x20use\x201-based\ - \x20numbers.\n\n\x20The\x20'character'\x20value\x20is\x20interpreted\x20\ - based\x20on\x20the\x20PositionEncoding\x20for\n\x20the\x20Document.\n\n\ - \x20Historical\x20note:\x20the\x20original\x20draft\x20of\x20this\x20sch\ - ema\x20had\x20a\x20`Range`\x20message\n\x20type\x20with\x20`start`\x20an\ - d\x20`end`\x20fields\x20of\x20type\x20`Position`,\x20mirroring\x20LSP.\n\ - \x20Benchmarks\x20revealed\x20that\x20this\x20encoding\x20was\x20ineffic\ - ient\x20and\x20that\x20we\x20could\n\x20reduce\x20the\x20total\x20payloa\ - d\x20size\x20of\x20an\x20index\x20by\x2050%\x20by\x20using\x20`repeated\ - \x20int32`\n\x20instead.\x20The\x20`repeated\x20int32`\x20encoding\x20is\ - \x20admittedly\x20more\x20embarrassing\x20to\n\x20work\x20with\x20in\x20\ - some\x20programming\x20languages\x20but\x20we\x20hope\x20the\x20performa\ - nce\n\x20improvements\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\ - \0\x04\x12\x04\x8b\x05\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\x8b\x05\ - \x0b\x10\n\r\n\x05\x04\t\x02\0\x01\x12\x04\x8b\x05\x11\x16\n\r\n\x05\x04\ - \t\x02\0\x03\x12\x04\x8b\x05\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\ - \x04\x8e\x05\x02\x14\x1a|\x20(optional)\x20The\x20symbol\x20that\x20appe\ - ars\x20at\x20this\x20position.\x20See\n\x20`SymbolInformation.symbol`\ - \x20for\x20how\x20to\x20format\x20symbols\x20as\x20strings.\n\n\r\n\x05\ - \x04\t\x02\x01\x05\x12\x04\x8e\x05\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\ - \x12\x04\x8e\x05\t\x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x8e\x05\x12\ - \x13\n\x97\x01\n\x04\x04\t\x02\x02\x12\x04\x91\x05\x02\x19\x1a\x88\x01\ - \x20(optional)\x20Bitset\x20containing\x20`SymbolRole`s\x20in\x20this\ - \x20occurrence.\n\x20See\x20`SymbolRole`'s\x20documentation\x20for\x20ho\ - w\x20to\x20read\x20and\x20write\x20this\x20field.\n\n\r\n\x05\x04\t\x02\ - \x02\x05\x12\x04\x91\x05\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x91\ - \x05\x08\x14\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x91\x05\x17\x18\n\xf1\ - \x03\n\x04\x04\t\x02\x03\x12\x04\x9a\x05\x02-\x1a\xe2\x03\x20(optional)\ - \x20CommonMark-formatted\x20documentation\x20for\x20this\x20specific\x20\ - range.\x20If\n\x20empty,\x20the\x20`Symbol.documentation`\x20field\x20is\ - \x20used\x20instead.\x20One\x20example\n\x20where\x20this\x20field\x20mi\ - ght\x20be\x20useful\x20is\x20when\x20the\x20symbol\x20represents\x20a\ - \x20generic\n\x20function\x20(with\x20abstract\x20type\x20parameters\x20\ - such\x20as\x20`List`)\x20and\x20at\x20this\n\x20occurrence\x20we\x20k\ - now\x20the\x20exact\x20values\x20(such\x20as\x20`List`).\n\n\x20\ - This\x20field\x20can\x20also\x20be\x20used\x20for\x20dynamically\x20or\ - \x20gradually\x20typed\x20languages,\n\x20which\x20commonly\x20allow\x20\ - for\x20type-changing\x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\ - \x04\x9a\x05\x02\n\n\r\n\x05\x04\t\x02\x03\x05\x12\x04\x9a\x05\x0b\x11\n\ - \r\n\x05\x04\t\x02\x03\x01\x12\x04\x9a\x05\x12(\n\r\n\x05\x04\t\x02\x03\ - \x03\x12\x04\x9a\x05+,\nX\n\x04\x04\t\x02\x04\x12\x04\x9c\x05\x02\x1d\ - \x1aJ\x20(optional)\x20What\x20syntax\x20highlighting\x20class\x20should\ - \x20be\x20used\x20for\x20this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\ - \x12\x04\x9c\x05\x02\x0c\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\x9c\x05\r\ - \x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\x9c\x05\x1b\x1c\nW\n\x04\x04\t\ - \x02\x05\x12\x04\x9e\x05\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\x9e\x05\x02\n\n\r\n\x05\x04\t\x02\x05\ - \x06\x12\x04\x9e\x05\x0b\x15\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\x9e\x05\ - \x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\x9e\x05$%\n\xb7\x0e\n\x04\x04\ - \t\x02\x06\x12\x04\xd3\x05\x02%\x1a\xa8\x0e\x20(optional)\x20Using\x20th\ - e\x20same\x20encoding\x20as\x20the\x20sibling\x20`range`\x20field,\x20ha\ - lf-open\n\x20source\x20range\x20of\x20the\x20nearest\x20non-trivial\x20e\ - nclosing\x20AST\x20node.\x20This\x20range\x20must\n\x20enclose\x20the\ - \x20`range`\x20field.\x20Example\x20applications\x20that\x20make\x20use\ - \x20of\x20the\n\x20enclosing_range\x20field:\n\n\x20-\x20Call\x20hierarc\ - hies:\x20to\x20determine\x20what\x20symbols\x20are\x20references\x20from\ - \x20the\x20body\n\x20\x20\x20of\x20a\x20function\n\x20-\x20Symbol\x20out\ - line:\x20to\x20display\x20breadcrumbs\x20from\x20the\x20cursor\x20positi\ - on\x20to\x20the\n\x20\x20\x20root\x20of\x20the\x20file\n\x20-\x20Expand\ - \x20selection:\x20to\x20select\x20the\x20nearest\x20enclosing\x20AST\x20\ - node.\n\x20-\x20Highlight\x20range:\x20to\x20indicate\x20the\x20AST\x20e\ - xpression\x20that\x20is\x20associated\x20with\x20a\n\x20\x20\x20hover\ - \x20popover\n\n\x20For\x20definition\x20occurrences,\x20the\x20enclosing\ - \x20range\x20should\x20indicate\x20the\n\x20start/end\x20bounds\x20of\ - \x20the\x20entire\x20definition\x20AST\x20node,\x20including\n\x20docume\ - ntation.\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\x20something\x20*/\n\x20^\x20enclosing_range\ - \x20start\x20--------------------------------------|\n\x20function\x20pa\ - rse(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\ + \x0e\n\r\n\x05\x05\x04\x02&\x02\x12\x04\xeb\x04\x11\x13\n_\n\x02\x04\t\ + \x12\x06\xef\x04\0\xf3\x04\x01\x1aQ\x20SingleLineRange\x20represents\x20\ + a\x20half-open\x20[start,\x20end)\x20range\x20within\x20a\x20single\x20l\ + ine.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xef\x04\x08\x17\n\x0c\n\x04\x04\t\ + \x02\0\x12\x04\xf0\x04\x02\x11\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xf0\x04\ + \x02\x07\n\r\n\x05\x04\t\x02\0\x01\x12\x04\xf0\x04\x08\x0c\n\r\n\x05\x04\ + \t\x02\0\x03\x12\x04\xf0\x04\x0f\x10\n\x0c\n\x04\x04\t\x02\x01\x12\x04\ + \xf1\x04\x02\x1c\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xf1\x04\x02\x07\n\r\ + \n\x05\x04\t\x02\x01\x01\x12\x04\xf1\x04\x08\x17\n\r\n\x05\x04\t\x02\x01\ + \x03\x12\x04\xf1\x04\x1a\x1b\n\x0c\n\x04\x04\t\x02\x02\x12\x04\xf2\x04\ + \x02\x1a\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xf2\x04\x02\x07\n\r\n\x05\ + \x04\t\x02\x02\x01\x12\x04\xf2\x04\x08\x15\n\r\n\x05\x04\t\x02\x02\x03\ + \x12\x04\xf2\x04\x18\x19\na\n\x02\x04\n\x12\x06\xf6\x04\0\xfb\x04\x01\ + \x1aS\x20MultiLineRange\x20represents\x20a\x20half-open\x20[start,\x20en\ + d)\x20range\x20spanning\x20multiple\x20lines.\n\n\x0b\n\x03\x04\n\x01\ + \x12\x04\xf6\x04\x08\x16\n\x0c\n\x04\x04\n\x02\0\x12\x04\xf7\x04\x02\x17\ + \n\r\n\x05\x04\n\x02\0\x05\x12\x04\xf7\x04\x02\x07\n\r\n\x05\x04\n\x02\0\ + \x01\x12\x04\xf7\x04\x08\x12\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xf7\x04\ + \x15\x16\n\x0c\n\x04\x04\n\x02\x01\x12\x04\xf8\x04\x02\x1c\n\r\n\x05\x04\ + \n\x02\x01\x05\x12\x04\xf8\x04\x02\x07\n\r\n\x05\x04\n\x02\x01\x01\x12\ + \x04\xf8\x04\x08\x17\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xf8\x04\x1a\x1b\ + \n\x0c\n\x04\x04\n\x02\x02\x12\x04\xf9\x04\x02\x15\n\r\n\x05\x04\n\x02\ + \x02\x05\x12\x04\xf9\x04\x02\x07\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xf9\ + \x04\x08\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xf9\x04\x13\x14\n\x0c\n\ + \x04\x04\n\x02\x03\x12\x04\xfa\x04\x02\x1a\n\r\n\x05\x04\n\x02\x03\x05\ + \x12\x04\xfa\x04\x02\x07\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xfa\x04\x08\ + \x15\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xfa\x04\x18\x19\n\xf9\x01\n\x02\ + \x04\x0b\x12\x06\x82\x05\0\xed\x05\x01\x1a\xea\x01\x20Occurrence\x20asso\ + ciates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20and/or\x20hi\ + ghlighting\n\x20information.\n\n\x20If\x20possible,\x20indexers\x20shoul\ + d\x20try\x20to\x20bundle\x20logically\x20related\x20information\n\x20acr\ + oss\x20occurrences\x20into\x20a\x20single\x20occurrence\x20to\x20reduce\ + \x20payload\x20sizes.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\x82\x05\x08\x12\ + \n\xe0\x05\n\x04\x04\x0b\x02\0\x12\x04\x8f\x05\x02/\x1a\xd1\x05\x20Depre\ + cated:\x20Use\x20`single_line_range`\x20or\x20`multi_line_range`\x20inst\ + ead.\n\n\x20Half-open\x20[start,\x20end)\x20range.\x20Must\x20be\x20exac\ + tly\x20three\x20or\x20four\x20elements:\n\x20-\x20Three\x20elements:\x20\ + `[startLine,\x20startCharacter,\x20endCharacter]`\x20(single-line)\n\x20\ + -\x20Four\x20elements:\x20`[startLine,\x20startCharacter,\x20endLine,\ + \x20endCharacter]`\n\n\x20Historical\x20note:\x20the\x20original\x20draf\ + t\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\x20revealed\x20that\x20this\x20e\ + ncoding\x20was\x20inefficient\x20and\x20that\x20we\x20could\n\x20reduce\ + \x20the\x20total\x20payload\x20size\x20of\x20an\x20index\x20by\x2050%\ + \x20by\x20using\x20`repeated\x20int32`\n\x20instead.\x20However,\x20the\ + \x20lack\x20of\x20type\x20safety\x20led\x20to\x20the\x20introduction\x20\ + of\n\x20`single_line_range`\x20and\x20`multi_line_range`\x20as\x20typed\ + \x20alternatives.\n\n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\x8f\x05\x02\n\n\ + \r\n\x05\x04\x0b\x02\0\x05\x12\x04\x8f\x05\x0b\x10\n\r\n\x05\x04\x0b\x02\ + \0\x01\x12\x04\x8f\x05\x11\x16\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\x8f\ + \x05\x19\x1a\n\r\n\x05\x04\x0b\x02\0\x08\x12\x04\x8f\x05\x1b.\n\x0e\n\ + \x06\x04\x0b\x02\0\x08\x03\x12\x04\x8f\x05\x1c-\n\xa4\x03\n\x04\x04\x0b\ + \x08\0\x12\x06\x9b\x05\x02\xa0\x05\x03\x1a\x93\x03\x20Half-open\x20[star\ + t,\x20end)\x20source\x20range\x20of\x20this\x20occurrence.\n\n\x20It\x20\ + is\x20allowed\x20for\x20the\x20range\x20to\x20be\x20empty\x20(i.e.\x20st\ + art==end).\n\n\x20Line\x20numbers\x20and\x20characters\x20are\x20always\ + \x200-based.\x20Make\x20sure\x20to\x20increment\x20the\n\x20line/charact\ + er\x20values\x20before\x20displaying\x20them\x20in\x20an\x20editor-like\ + \x20UI\x20because\n\x20editors\x20conventionally\x20use\x201-based\x20nu\ + mbers.\n\n\x20The\x20'character'\x20value\x20is\x20interpreted\x20based\ + \x20on\x20the\x20PositionEncoding\x20for\n\x20the\x20Document.\n\n\r\n\ + \x05\x04\x0b\x08\0\x01\x12\x04\x9b\x05\x08\x13\n-\n\x04\x04\x0b\x02\x01\ + \x12\x04\x9d\x05\x04*\x1a\x1f\x20Range\x20spanning\x20a\x20single\x20lin\ + e.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\x9d\x05\x04\x13\n\r\n\x05\x04\ + \x0b\x02\x01\x01\x12\x04\x9d\x05\x14%\n\r\n\x05\x04\x0b\x02\x01\x03\x12\ + \x04\x9d\x05()\n.\n\x04\x04\x0b\x02\x02\x12\x04\x9f\x05\x04(\x1a\x20\x20\ + Range\x20spanning\x20multiple\x20lines.\n\n\r\n\x05\x04\x0b\x02\x02\x06\ + \x12\x04\x9f\x05\x04\x12\n\r\n\x05\x04\x0b\x02\x02\x01\x12\x04\x9f\x05\ + \x13#\n\r\n\x05\x04\x0b\x02\x02\x03\x12\x04\x9f\x05&'\n\x8a\x01\n\x04\ + \x04\x0b\x02\x03\x12\x04\xa3\x05\x02\x14\x1a|\x20(optional)\x20The\x20sy\ + mbol\x20that\x20appears\x20at\x20this\x20position.\x20See\n\x20`SymbolIn\ + formation.symbol`\x20for\x20how\x20to\x20format\x20symbols\x20as\x20stri\ + ngs.\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xa3\x05\x02\x08\n\r\n\x05\ + \x04\x0b\x02\x03\x01\x12\x04\xa3\x05\t\x0f\n\r\n\x05\x04\x0b\x02\x03\x03\ + \x12\x04\xa3\x05\x12\x13\n\x97\x01\n\x04\x04\x0b\x02\x04\x12\x04\xa6\x05\ + \x02\x19\x1a\x88\x01\x20(optional)\x20Bitset\x20containing\x20`SymbolRol\ + e`s\x20in\x20this\x20occurrence.\n\x20See\x20`SymbolRole`'s\x20documenta\ + tion\x20for\x20how\x20to\x20read\x20and\x20write\x20this\x20field.\n\n\r\ + \n\x05\x04\x0b\x02\x04\x05\x12\x04\xa6\x05\x02\x07\n\r\n\x05\x04\x0b\x02\ + \x04\x01\x12\x04\xa6\x05\x08\x14\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\ + \xa6\x05\x17\x18\n\xf1\x03\n\x04\x04\x0b\x02\x05\x12\x04\xaf\x05\x02-\ + \x1a\xe2\x03\x20(optional)\x20CommonMark-formatted\x20documentation\x20f\ + or\x20this\x20specific\x20range.\x20If\n\x20empty,\x20the\x20`Symbol.doc\ + umentation`\x20field\x20is\x20used\x20instead.\x20One\x20example\n\x20wh\ + ere\x20this\x20field\x20might\x20be\x20useful\x20is\x20when\x20the\x20sy\ + mbol\x20represents\x20a\x20generic\n\x20function\x20(with\x20abstract\ + \x20type\x20parameters\x20such\x20as\x20`List`)\x20and\x20at\x20this\ + \n\x20occurrence\x20we\x20know\x20the\x20exact\x20values\x20(such\x20as\ + \x20`List`).\n\n\x20This\x20field\x20can\x20also\x20be\x20used\ + \x20for\x20dynamically\x20or\x20gradually\x20typed\x20languages,\n\x20wh\ + ich\x20commonly\x20allow\x20for\x20type-changing\x20assignment.\n\n\r\n\ + \x05\x04\x0b\x02\x05\x04\x12\x04\xaf\x05\x02\n\n\r\n\x05\x04\x0b\x02\x05\ + \x05\x12\x04\xaf\x05\x0b\x11\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\xaf\ + \x05\x12(\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\xaf\x05+,\nX\n\x04\x04\ + \x0b\x02\x06\x12\x04\xb1\x05\x02\x1d\x1aJ\x20(optional)\x20What\x20synta\ + x\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20this\x20ran\ + ge?\n\n\r\n\x05\x04\x0b\x02\x06\x06\x12\x04\xb1\x05\x02\x0c\n\r\n\x05\ + \x04\x0b\x02\x06\x01\x12\x04\xb1\x05\r\x18\n\r\n\x05\x04\x0b\x02\x06\x03\ + \x12\x04\xb1\x05\x1b\x1c\nW\n\x04\x04\x0b\x02\x07\x12\x04\xb3\x05\x02&\ + \x1aI\x20(optional)\x20Diagnostics\x20that\x20have\x20been\x20reported\ + \x20for\x20this\x20specific\x20range.\n\n\r\n\x05\x04\x0b\x02\x07\x04\ + \x12\x04\xb3\x05\x02\n\n\r\n\x05\x04\x0b\x02\x07\x06\x12\x04\xb3\x05\x0b\ + \x15\n\r\n\x05\x04\x0b\x02\x07\x01\x12\x04\xb3\x05\x16!\n\r\n\x05\x04\ + \x0b\x02\x07\x03\x12\x04\xb3\x05$%\n@\n\x04\x04\x0b\x02\x08\x12\x04\xb5\ + \x05\x029\x1a2\x20Deprecated:\x20Use\x20`typed_enclosing_range`\x20inste\ + ad.\n\n\r\n\x05\x04\x0b\x02\x08\x04\x12\x04\xb5\x05\x02\n\n\r\n\x05\x04\ + \x0b\x02\x08\x05\x12\x04\xb5\x05\x0b\x10\n\r\n\x05\x04\x0b\x02\x08\x01\ + \x12\x04\xb5\x05\x11\x20\n\r\n\x05\x04\x0b\x02\x08\x03\x12\x04\xb5\x05#$\ + \n\r\n\x05\x04\x0b\x02\x08\x08\x12\x04\xb5\x05%8\n\x0e\n\x06\x04\x0b\x02\ + \x08\x08\x03\x12\x04\xb5\x05&7\n\xd9\r\n\x04\x04\x0b\x08\x01\x12\x06\xe9\ + \x05\x02\xec\x05\x03\x1a\xc8\r\x20(optional)\x20Half-open\x20source\x20r\ + ange\x20of\x20the\x20nearest\x20non-trivial\x20enclosing\x20AST\n\x20nod\ + e.\x20This\x20range\x20must\x20enclose\x20the\x20occurrence\x20range.\ + \x20Example\x20applications:\n\n\x20-\x20Call\x20hierarchies:\x20to\x20d\ + etermine\x20what\x20symbols\x20are\x20referenced\x20from\x20the\x20body\ + \n\x20\x20\x20of\x20a\x20function\n\x20-\x20Symbol\x20outline:\x20to\x20\ + display\x20breadcrumbs\x20from\x20the\x20cursor\x20position\x20to\x20the\ + \n\x20\x20\x20root\x20of\x20the\x20file\n\x20-\x20Expand\x20selection:\ + \x20to\x20select\x20the\x20nearest\x20enclosing\x20AST\x20node.\n\x20-\ + \x20Highlight\x20range:\x20to\x20indicate\x20the\x20AST\x20expression\ + \x20that\x20is\x20associated\x20with\x20a\n\x20\x20\x20hover\x20popover\ + \n\n\x20For\x20definition\x20occurrences,\x20the\x20enclosing\x20range\ + \x20should\x20indicate\x20the\n\x20start/end\x20bounds\x20of\x20the\x20e\ + ntire\x20definition\x20AST\x20node,\x20including\n\x20documentation.\n\ + \x20```\n\x20const\x20n\x20=\x203\n\x20\x20\x20\x20\x20\x20\x20^\x20rang\ + e\n\x20^^^^^^^^^^^\x20enclosing_range\n\n\x20/**\x20Parses\x20the\x20str\ + ing\x20into\x20something\x20*/\n\x20^\x20enclosing_range\x20start\x20---\ + -----------------------------------|\n\x20function\x20parse(input\x20str\ + ing):\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\ - |\n\x20\x20\x20\x20\x20return\x20input.slice(n)\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\x20return\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\x20\x20\x20\x20|\n\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\ - \x20\x20\x20\x20|\n\x20^\x20enclosing_range\x20end\x20<-----------------\ - ----------------------|\n\x20```\n\n\x20Any\x20attributes/decorators/att\ - ached\x20macros\x20should\x20also\x20be\x20part\x20of\x20the\n\x20enclos\ - ing\x20range.\n\n\x20```python\n\x20@cache\n\x20^\x20enclosing_range\x20\ - start---------------------|\n\x20def\x20factorial(n):\x20\x20\x20\x20\ + |\n\x20^\x20enclosing_range\x20end\x20<---------------------------------\ + ------|\n\x20```\n\n\x20Any\x20attributes/decorators/attached\x20macros\ + \x20should\x20also\x20be\x20part\x20of\x20the\n\x20enclosing\x20range.\n\ + \n\x20```python\n\x20@cache\n\x20^\x20enclosing_range\x20start----------\ + -----------|\n\x20def\x20factorial(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|\n\x20\x20\x20\x20\x20return\x20n\x20*\x20factorial\ - (n-1)\x20if\x20n\x20else\x201\x20\x20\x20|\n\x20<\x20enclosing_range\x20\ - end-----------------------|\n\n\x20```\n\n\x20For\x20reference\x20occurr\ - ences,\x20the\x20enclosing\x20range\x20should\x20indicate\x20the\x20star\ - t/end\n\x20bounds\x20of\x20the\x20parent\x20expression.\n\x20```\n\x20co\ - nst\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^^^\x20enclo\ - sing_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_r\ - ange\n\x20```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xd3\x05\x02\n\n\r\n\ - \x05\x04\t\x02\x06\x05\x12\x04\xd3\x05\x0b\x10\n\r\n\x05\x04\t\x02\x06\ - \x01\x12\x04\xd3\x05\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xd3\x05\ - #$\nw\n\x02\x04\n\x12\x06\xd8\x05\0\xe3\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\xd8\x05\x08\x12\nW\n\x04\x04\n\x02\0\x12\ - \x04\xda\x05\x02\x18\x1aI\x20Should\x20this\x20diagnostic\x20be\x20repor\ - ted\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\ - \x05\x04\n\x02\0\x06\x12\x04\xda\x05\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\ - \x04\xda\x05\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xda\x05\x16\x17\n\ - ]\n\x04\x04\n\x02\x01\x12\x04\xdc\x05\x02\x12\x1aO\x20(optional)\x20Code\ - \x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\ - \x20user\x20interface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xdc\x05\x02\ - \x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xdc\x05\t\r\n\r\n\x05\x04\n\x02\ - \x01\x03\x12\x04\xdc\x05\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xde\x05\ - \x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\ - \n\x02\x02\x05\x12\x04\xde\x05\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\ - \x04\xde\x05\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xde\x05\x13\x14\n\ - ~\n\x04\x04\n\x02\x03\x12\x04\xe1\x05\x02\x14\x1ap\x20(optional)\x20Huma\ - n-readable\x20string\x20describing\x20the\x20source\x20of\x20this\x20dia\ - gnostic,\x20e.g.\n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\ - \x04\n\x02\x03\x05\x12\x04\xe1\x05\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\ - \x12\x04\xe1\x05\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xe1\x05\x12\ - \x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\xe2\x05\x02\"\n\r\n\x05\x04\n\x02\ - \x04\x04\x12\x04\xe2\x05\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xe2\ - \x05\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe2\x05\x19\x1d\n\r\n\ - \x05\x04\n\x02\x04\x03\x12\x04\xe2\x05\x20!\n\x0c\n\x02\x05\x05\x12\x06\ - \xe5\x05\0\xeb\x05\x01\n\x0b\n\x03\x05\x05\x01\x12\x04\xe5\x05\x05\r\n\ - \x0c\n\x04\x05\x05\x02\0\x12\x04\xe6\x05\x02\x1a\n\r\n\x05\x05\x05\x02\0\ - \x01\x12\x04\xe6\x05\x02\x15\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xe6\x05\ - \x18\x19\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xe7\x05\x02\x0c\n\r\n\x05\ - \x05\x05\x02\x01\x01\x12\x04\xe7\x05\x02\x07\n\r\n\x05\x05\x05\x02\x01\ - \x02\x12\x04\xe7\x05\n\x0b\n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xe8\x05\ - \x02\x0e\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xe8\x05\x02\t\n\r\n\x05\ - \x05\x05\x02\x02\x02\x12\x04\xe8\x05\x0c\r\n\x0c\n\x04\x05\x05\x02\x03\ - \x12\x04\xe9\x05\x02\x12\n\r\n\x05\x05\x05\x02\x03\x01\x12\x04\xe9\x05\ - \x02\r\n\r\n\x05\x05\x05\x02\x03\x02\x12\x04\xe9\x05\x10\x11\n\x0c\n\x04\ - \x05\x05\x02\x04\x12\x04\xea\x05\x02\x0b\n\r\n\x05\x05\x05\x02\x04\x01\ - \x12\x04\xea\x05\x02\x06\n\r\n\x05\x05\x05\x02\x04\x02\x12\x04\xea\x05\t\ - \n\n\x0c\n\x02\x05\x06\x12\x06\xed\x05\0\xf1\x05\x01\n\x0b\n\x03\x05\x06\ - \x01\x12\x04\xed\x05\x05\x12\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xee\x05\ - \x02\x1f\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xee\x05\x02\x1a\n\r\n\x05\ - \x05\x06\x02\0\x02\x12\x04\xee\x05\x1d\x1e\n\x0c\n\x04\x05\x06\x02\x01\ - \x12\x04\xef\x05\x02\x12\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xef\x05\ - \x02\r\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\xef\x05\x10\x11\n\x0c\n\x04\ - \x05\x06\x02\x02\x12\x04\xf0\x05\x02\x11\n\r\n\x05\x05\x06\x02\x02\x01\ - \x12\x04\xf0\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xf0\x05\ - \x0f\x10\n\xd0\x03\n\x02\x05\x07\x12\x06\xf9\x05\0\xef\x06\x01\x1a\xc1\ - \x03\x20Language\x20standardises\x20names\x20of\x20common\x20programming\ - \x20languages\x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.\ - language`\x20field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\ - \x20is\x20to\n\x20prevent\x20a\x20situation\x20where\x20we\x20have\x20a\ - \x20single\x20programming\x20language\x20ends\x20up\x20with\n\x20multipl\ - e\x20string\x20representations.\x20For\x20example,\x20the\x20C++\x20lang\ - uage\x20uses\x20the\x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\ - \x20other\x20names\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\ - \x20Feel\x20free\x20to\x20send\x20a\x20pull-request\x20to\x20add\x20miss\ - ing\x20programming\x20languages.\n\n\x0b\n\x03\x05\x07\x01\x12\x04\xf9\ - \x05\x05\r\n\x0c\n\x04\x05\x07\x02\0\x12\x04\xfa\x05\x02\x1a\n\r\n\x05\ - \x05\x07\x02\0\x01\x12\x04\xfa\x05\x02\x15\n\r\n\x05\x05\x07\x02\0\x02\ - \x12\x04\xfa\x05\x18\x19\n\x0c\n\x04\x05\x07\x02\x01\x12\x04\xfb\x05\x02\ - \x0c\n\r\n\x05\x05\x07\x02\x01\x01\x12\x04\xfb\x05\x02\x06\n\r\n\x05\x05\ - \x07\x02\x01\x02\x12\x04\xfb\x05\t\x0b\n\x0c\n\x04\x05\x07\x02\x02\x12\ - \x04\xfc\x05\x02\x0c\n\r\n\x05\x05\x07\x02\x02\x01\x12\x04\xfc\x05\x02\ - \x06\n\r\n\x05\x05\x07\x02\x02\x02\x12\x04\xfc\x05\t\x0b\n\x0c\n\x04\x05\ - \x07\x02\x03\x12\x04\xfd\x05\x02\x0b\n\r\n\x05\x05\x07\x02\x03\x01\x12\ - \x04\xfd\x05\x02\x05\n\r\n\x05\x05\x07\x02\x03\x02\x12\x04\xfd\x05\x08\n\ - \n\x0c\n\x04\x05\x07\x02\x04\x12\x04\xfe\x05\x02\x0b\n\r\n\x05\x05\x07\ - \x02\x04\x01\x12\x04\xfe\x05\x02\x05\n\r\n\x05\x05\x07\x02\x04\x02\x12\ - \x04\xfe\x05\x08\n\n\x0c\n\x04\x05\x07\x02\x05\x12\x04\xff\x05\x02\x0c\n\ - \r\n\x05\x05\x07\x02\x05\x01\x12\x04\xff\x05\x02\x06\n\r\n\x05\x05\x07\ - \x02\x05\x02\x12\x04\xff\x05\t\x0b\n\x0c\n\x04\x05\x07\x02\x06\x12\x04\ - \x80\x06\x02\x10\n\r\n\x05\x05\x07\x02\x06\x01\x12\x04\x80\x06\x02\n\n\r\ - \n\x05\x05\x07\x02\x06\x02\x12\x04\x80\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\ - \x07\x12\x04\x81\x06\x02\x10\n\r\n\x05\x05\x07\x02\x07\x01\x12\x04\x81\ - \x06\x02\n\n\r\n\x05\x05\x07\x02\x07\x02\x12\x04\x81\x06\r\x0f\n\x0c\n\ - \x04\x05\x07\x02\x08\x12\x04\x82\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x08\ - \x01\x12\x04\x82\x06\x02\x05\n\r\n\x05\x05\x07\x02\x08\x02\x12\x04\x82\ - \x06\x08\n\n\x0c\n\x04\x05\x07\x02\t\x12\x04\x83\x06\x02\x0b\n\r\n\x05\ - \x05\x07\x02\t\x01\x12\x04\x83\x06\x02\x05\n\r\n\x05\x05\x07\x02\t\x02\ - \x12\x04\x83\x06\x08\n\n\x0c\n\x04\x05\x07\x02\n\x12\x04\x84\x06\x02\x0e\ - \n\r\n\x05\x05\x07\x02\n\x01\x12\x04\x84\x06\x02\x08\n\r\n\x05\x05\x07\ - \x02\n\x02\x12\x04\x84\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x0b\x12\x04\x85\ - \x06\x02\t\n\r\n\x05\x05\x07\x02\x0b\x01\x12\x04\x85\x06\x02\x03\n\r\n\ - \x05\x05\x07\x02\x0b\x02\x12\x04\x85\x06\x06\x08\n\x0c\n\x04\x05\x07\x02\ - \x0c\x12\x04\x86\x06\x02\r\n\r\n\x05\x05\x07\x02\x0c\x01\x12\x04\x86\x06\ - \x02\x07\n\r\n\x05\x05\x07\x02\x0c\x02\x12\x04\x86\x06\n\x0c\nH\n\x04\ - \x05\x07\x02\r\x12\x04\x87\x06\x02\x0b\":\x20C++\x20(the\x20name\x20\"CP\ - P\"\x20was\x20chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\ - \x05\x07\x02\r\x01\x12\x04\x87\x06\x02\x05\n\r\n\x05\x05\x07\x02\r\x02\ - \x12\x04\x87\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0e\x12\x04\x88\x06\x02\ - \x0b\n\r\n\x05\x05\x07\x02\x0e\x01\x12\x04\x88\x06\x02\x05\n\r\n\x05\x05\ - \x07\x02\x0e\x02\x12\x04\x88\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0f\x12\ - \x04\x89\x06\x02\r\n\r\n\x05\x05\x07\x02\x0f\x01\x12\x04\x89\x06\x02\x08\ - \n\r\n\x05\x05\x07\x02\x0f\x02\x12\x04\x89\x06\x0b\x0c\n\x0c\n\x04\x05\ - \x07\x02\x10\x12\x04\x8a\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x10\x01\x12\ - \x04\x8a\x06\x02\t\n\r\n\x05\x05\x07\x02\x10\x02\x12\x04\x8a\x06\x0c\r\n\ - \x0c\n\x04\x05\x07\x02\x11\x12\x04\x8b\x06\x02\x14\n\r\n\x05\x05\x07\x02\ - \x11\x01\x12\x04\x8b\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x11\x02\x12\x04\ - \x8b\x06\x11\x13\n\x0c\n\x04\x05\x07\x02\x12\x12\x04\x8c\x06\x02\x11\n\r\ - \n\x05\x05\x07\x02\x12\x01\x12\x04\x8c\x06\x02\x0c\n\r\n\x05\x05\x07\x02\ - \x12\x02\x12\x04\x8c\x06\x0f\x10\n\x0c\n\x04\x05\x07\x02\x13\x12\x04\x8d\ - \x06\x02\x0b\n\r\n\x05\x05\x07\x02\x13\x01\x12\x04\x8d\x06\x02\x05\n\r\n\ - \x05\x05\x07\x02\x13\x02\x12\x04\x8d\x06\x08\n\n\x0c\n\x04\x05\x07\x02\ - \x14\x12\x04\x8e\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x14\x01\x12\x04\x8e\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02\x14\x02\x12\x04\x8e\x06\t\x0b\n\x0c\n\ - \x04\x05\x07\x02\x15\x12\x04\x8f\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x15\ - \x01\x12\x04\x8f\x06\x02\x06\n\r\n\x05\x05\x07\x02\x15\x02\x12\x04\x8f\ - \x06\t\n\n\x0c\n\x04\x05\x07\x02\x16\x12\x04\x90\x06\x02\x0e\n\r\n\x05\ - \x05\x07\x02\x16\x01\x12\x04\x90\x06\x02\x08\n\r\n\x05\x05\x07\x02\x16\ - \x02\x12\x04\x90\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x17\x12\x04\x91\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02\x17\x01\x12\x04\x91\x06\x02\x06\n\r\n\x05\ - \x05\x07\x02\x17\x02\x12\x04\x91\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x18\ - \x12\x04\x92\x06\x02\x12\n\r\n\x05\x05\x07\x02\x18\x01\x12\x04\x92\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02\x18\x02\x12\x04\x92\x06\x0f\x11\n\x0c\n\ - \x04\x05\x07\x02\x19\x12\x04\x93\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x19\ - \x01\x12\x04\x93\x06\x02\x08\n\r\n\x05\x05\x07\x02\x19\x02\x12\x04\x93\ - \x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1a\x12\x04\x94\x06\x02\x0e\n\r\n\x05\ - \x05\x07\x02\x1a\x01\x12\x04\x94\x06\x02\x08\n\r\n\x05\x05\x07\x02\x1a\ - \x02\x12\x04\x94\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1b\x12\x04\x95\x06\ - \x02\x0e\n\r\n\x05\x05\x07\x02\x1b\x01\x12\x04\x95\x06\x02\x08\n\r\n\x05\ - \x05\x07\x02\x1b\x02\x12\x04\x95\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1c\ - \x12\x04\x96\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x1c\x01\x12\x04\x96\x06\ - \x02\x08\n\r\n\x05\x05\x07\x02\x1c\x02\x12\x04\x96\x06\x0b\r\n\x0c\n\x04\ - \x05\x07\x02\x1d\x12\x04\x97\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x1d\x01\ - \x12\x04\x97\x06\x02\x06\n\r\n\x05\x05\x07\x02\x1d\x02\x12\x04\x97\x06\t\ - \x0b\n\x0c\n\x04\x05\x07\x02\x1e\x12\x04\x98\x06\x02\x0c\n\r\n\x05\x05\ - \x07\x02\x1e\x01\x12\x04\x98\x06\x02\x06\n\r\n\x05\x05\x07\x02\x1e\x02\ - \x12\x04\x98\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x1f\x12\x04\x99\x06\x02\ - \x0f\n\r\n\x05\x05\x07\x02\x1f\x01\x12\x04\x99\x06\x02\t\n\r\n\x05\x05\ - \x07\x02\x1f\x02\x12\x04\x99\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02\x20\x12\ - \x04\x9a\x06\x02\x12\n\r\n\x05\x05\x07\x02\x20\x01\x12\x04\x9a\x06\x02\ - \x0c\n\r\n\x05\x05\x07\x02\x20\x02\x12\x04\x9a\x06\x0f\x11\n\x0c\n\x04\ - \x05\x07\x02!\x12\x04\x9b\x06\x02\x12\n\r\n\x05\x05\x07\x02!\x01\x12\x04\ - \x9b\x06\x02\x0c\n\r\n\x05\x05\x07\x02!\x02\x12\x04\x9b\x06\x0f\x11\n\ - \x0c\n\x04\x05\x07\x02\"\x12\x04\x9c\x06\x02\x12\n\r\n\x05\x05\x07\x02\"\ - \x01\x12\x04\x9c\x06\x02\x0c\n\r\n\x05\x05\x07\x02\"\x02\x12\x04\x9c\x06\ - \x0f\x11\n\x0c\n\x04\x05\x07\x02#\x12\x04\x9d\x06\x02\n\n\r\n\x05\x05\ - \x07\x02#\x01\x12\x04\x9d\x06\x02\x04\n\r\n\x05\x05\x07\x02#\x02\x12\x04\ - \x9d\x06\x07\t\n\x0c\n\x04\x05\x07\x02$\x12\x04\x9e\x06\x02\x0f\n\r\n\ - \x05\x05\x07\x02$\x01\x12\x04\x9e\x06\x02\t\n\r\n\x05\x05\x07\x02$\x02\ - \x12\x04\x9e\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02%\x12\x04\x9f\x06\x02\r\ - \n\r\n\x05\x05\x07\x02%\x01\x12\x04\x9f\x06\x02\x08\n\r\n\x05\x05\x07\ - \x02%\x02\x12\x04\x9f\x06\x0b\x0c\n\x0c\n\x04\x05\x07\x02&\x12\x04\xa0\ - \x06\x02\x0c\n\r\n\x05\x05\x07\x02&\x01\x12\x04\xa0\x06\x02\x06\n\r\n\ - \x05\x05\x07\x02&\x02\x12\x04\xa0\x06\t\x0b\n\x0c\n\x04\x05\x07\x02'\x12\ - \x04\xa1\x06\x02\x0c\n\r\n\x05\x05\x07\x02'\x01\x12\x04\xa1\x06\x02\x06\ - \n\r\n\x05\x05\x07\x02'\x02\x12\x04\xa1\x06\t\x0b\n\x0c\n\x04\x05\x07\ - \x02(\x12\x04\xa2\x06\x02\x12\n\r\n\x05\x05\x07\x02(\x01\x12\x04\xa2\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02(\x02\x12\x04\xa2\x06\x0f\x11\n\x0c\n\x04\ - \x05\x07\x02)\x12\x04\xa3\x06\x02\x0f\n\r\n\x05\x05\x07\x02)\x01\x12\x04\ - \xa3\x06\x02\t\n\r\n\x05\x05\x07\x02)\x02\x12\x04\xa3\x06\x0c\x0e\n\x0c\ - \n\x04\x05\x07\x02*\x12\x04\xa4\x06\x02\r\n\r\n\x05\x05\x07\x02*\x01\x12\ - \x04\xa4\x06\x02\x07\n\r\n\x05\x05\x07\x02*\x02\x12\x04\xa4\x06\n\x0c\n\ - \x0c\n\x04\x05\x07\x02+\x12\x04\xa5\x06\x02\x0b\n\r\n\x05\x05\x07\x02+\ - \x01\x12\x04\xa5\x06\x02\x05\n\r\n\x05\x05\x07\x02+\x02\x12\x04\xa5\x06\ - \x08\n\n\x0c\n\x04\x05\x07\x02,\x12\x04\xa6\x06\x02\t\n\r\n\x05\x05\x07\ - \x02,\x01\x12\x04\xa6\x06\x02\x03\n\r\n\x05\x05\x07\x02,\x02\x12\x04\xa6\ - \x06\x06\x08\n\x0c\n\x04\x05\x07\x02-\x12\x04\xa7\x06\x02\x0c\n\r\n\x05\ - \x05\x07\x02-\x01\x12\x04\xa7\x06\x02\x06\n\r\n\x05\x05\x07\x02-\x02\x12\ - \x04\xa7\x06\t\x0b\n\x0c\n\x04\x05\x07\x02.\x12\x04\xa8\x06\x02\x0b\n\r\ - \n\x05\x05\x07\x02.\x01\x12\x04\xa8\x06\x02\x06\n\r\n\x05\x05\x07\x02.\ - \x02\x12\x04\xa8\x06\t\n\n\x0c\n\x04\x05\x07\x02/\x12\x04\xa9\x06\x02\ - \x12\n\r\n\x05\x05\x07\x02/\x01\x12\x04\xa9\x06\x02\x0c\n\r\n\x05\x05\ - \x07\x02/\x02\x12\x04\xa9\x06\x0f\x11\n\x0c\n\x04\x05\x07\x020\x12\x04\ - \xaa\x06\x02\x17\n\r\n\x05\x05\x07\x020\x01\x12\x04\xaa\x06\x02\x11\n\r\ - \n\x05\x05\x07\x020\x02\x12\x04\xaa\x06\x14\x16\n\x0c\n\x04\x05\x07\x021\ - \x12\x04\xab\x06\x02\x0f\n\r\n\x05\x05\x07\x021\x01\x12\x04\xab\x06\x02\ - \t\n\r\n\x05\x05\x07\x021\x02\x12\x04\xab\x06\x0c\x0e\n\x0c\n\x04\x05\ - \x07\x022\x12\x04\xac\x06\x02\r\n\r\n\x05\x05\x07\x022\x01\x12\x04\xac\ - \x06\x02\x07\n\r\n\x05\x05\x07\x022\x02\x12\x04\xac\x06\n\x0c\n\x0c\n\ - \x04\x05\x07\x023\x12\x04\xad\x06\x02\x11\n\r\n\x05\x05\x07\x023\x01\x12\ - \x04\xad\x06\x02\n\n\r\n\x05\x05\x07\x023\x02\x12\x04\xad\x06\r\x10\n\ - \x0c\n\x04\x05\x07\x024\x12\x04\xae\x06\x02\r\n\r\n\x05\x05\x07\x024\x01\ - \x12\x04\xae\x06\x02\x08\n\r\n\x05\x05\x07\x024\x02\x12\x04\xae\x06\x0b\ - \x0c\n\x0c\n\x04\x05\x07\x025\x12\x04\xaf\x06\x02\r\n\r\n\x05\x05\x07\ - \x025\x01\x12\x04\xaf\x06\x02\x07\n\r\n\x05\x05\x07\x025\x02\x12\x04\xaf\ - \x06\n\x0c\n\x0c\n\x04\x05\x07\x026\x12\x04\xb0\x06\x02\x0c\n\r\n\x05\ - \x05\x07\x026\x01\x12\x04\xb0\x06\x02\x06\n\r\n\x05\x05\x07\x026\x02\x12\ - \x04\xb0\x06\t\x0b\n\x0c\n\x04\x05\x07\x027\x12\x04\xb1\x06\x02\x0c\n\r\ - \n\x05\x05\x07\x027\x01\x12\x04\xb1\x06\x02\x06\n\r\n\x05\x05\x07\x027\ - \x02\x12\x04\xb1\x06\t\x0b\n\x0c\n\x04\x05\x07\x028\x12\x04\xb2\x06\x02\ - \x0b\n\r\n\x05\x05\x07\x028\x01\x12\x04\xb2\x06\x02\x05\n\r\n\x05\x05\ - \x07\x028\x02\x12\x04\xb2\x06\x08\n\n\x0c\n\x04\x05\x07\x029\x12\x04\xb3\ - \x06\x02\r\n\r\n\x05\x05\x07\x029\x01\x12\x04\xb3\x06\x02\x06\n\r\n\x05\ - \x05\x07\x029\x02\x12\x04\xb3\x06\t\x0c\n\x0c\n\x04\x05\x07\x02:\x12\x04\ - \xb4\x06\x02\x10\n\r\n\x05\x05\x07\x02:\x01\x12\x04\xb4\x06\x02\n\n\r\n\ - \x05\x05\x07\x02:\x02\x12\x04\xb4\x06\r\x0f\n\x0c\n\x04\x05\x07\x02;\x12\ - \x04\xb5\x06\x02\x10\n\r\n\x05\x05\x07\x02;\x01\x12\x04\xb5\x06\x02\n\n\ - \r\n\x05\x05\x07\x02;\x02\x12\x04\xb5\x06\r\x0f\n\x0c\n\x04\x05\x07\x02<\ - \x12\x04\xb6\x06\x02\x0e\n\r\n\x05\x05\x07\x02<\x01\x12\x04\xb6\x06\x02\ - \x08\n\r\n\x05\x05\x07\x02<\x02\x12\x04\xb6\x06\x0b\r\n(\n\x04\x05\x07\ - \x02=\x12\x04\xb7\x06\x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\ - \x05\x05\x07\x02=\x01\x12\x04\xb7\x06\x02\x08\n\r\n\x05\x05\x07\x02=\x02\ - \x12\x04\xb7\x06\x0b\x0e\n\x0c\n\x04\x05\x07\x02>\x12\x04\xb8\x06\x02\ - \x0b\n\r\n\x05\x05\x07\x02>\x01\x12\x04\xb8\x06\x02\x05\n\r\n\x05\x05\ - \x07\x02>\x02\x12\x04\xb8\x06\x08\n\n\x0c\n\x04\x05\x07\x02?\x12\x04\xb9\ - \x06\x02\r\n\r\n\x05\x05\x07\x02?\x01\x12\x04\xb9\x06\x02\x07\n\r\n\x05\ - \x05\x07\x02?\x02\x12\x04\xb9\x06\n\x0c\n\x0c\n\x04\x05\x07\x02@\x12\x04\ - \xba\x06\x02\x13\n\r\n\x05\x05\x07\x02@\x01\x12\x04\xba\x06\x02\r\n\r\n\ - \x05\x05\x07\x02@\x02\x12\x04\xba\x06\x10\x12\n\x0c\n\x04\x05\x07\x02A\ - \x12\x04\xbb\x06\x02\x15\n\r\n\x05\x05\x07\x02A\x01\x12\x04\xbb\x06\x02\ - \x0f\n\r\n\x05\x05\x07\x02A\x02\x12\x04\xbb\x06\x12\x14\n\x0c\n\x04\x05\ - \x07\x02B\x12\x04\xbc\x06\x02\x0e\n\r\n\x05\x05\x07\x02B\x01\x12\x04\xbc\ - \x06\x02\x08\n\r\n\x05\x05\x07\x02B\x02\x12\x04\xbc\x06\x0b\r\n\x0c\n\ - \x04\x05\x07\x02C\x12\x04\xbd\x06\x02\x0b\n\r\n\x05\x05\x07\x02C\x01\x12\ - \x04\xbd\x06\x02\x05\n\r\n\x05\x05\x07\x02C\x02\x12\x04\xbd\x06\x08\n\n\ - \x0c\n\x04\x05\x07\x02D\x12\x04\xbe\x06\x02\r\n\r\n\x05\x05\x07\x02D\x01\ - \x12\x04\xbe\x06\x02\x07\n\r\n\x05\x05\x07\x02D\x02\x12\x04\xbe\x06\n\ - \x0c\n\x0c\n\x04\x05\x07\x02E\x12\x04\xbf\x06\x02\x0c\n\r\n\x05\x05\x07\ - \x02E\x01\x12\x04\xbf\x06\x02\x06\n\r\n\x05\x05\x07\x02E\x02\x12\x04\xbf\ - \x06\t\x0b\n\x0c\n\x04\x05\x07\x02F\x12\x04\xc0\x06\x02\x12\n\r\n\x05\ - \x05\x07\x02F\x01\x12\x04\xc0\x06\x02\x0c\n\r\n\x05\x05\x07\x02F\x02\x12\ - \x04\xc0\x06\x0f\x11\n\x0c\n\x04\x05\x07\x02G\x12\x04\xc1\x06\x02\x0e\n\ - \r\n\x05\x05\x07\x02G\x01\x12\x04\xc1\x06\x02\x08\n\r\n\x05\x05\x07\x02G\ - \x02\x12\x04\xc1\x06\x0b\r\n\x0c\n\x04\x05\x07\x02H\x12\x04\xc2\x06\x02\ - \x11\n\r\n\x05\x05\x07\x02H\x01\x12\x04\xc2\x06\x02\n\n\r\n\x05\x05\x07\ - \x02H\x02\x12\x04\xc2\x06\r\x10\n\x0c\n\x04\x05\x07\x02I\x12\x04\xc3\x06\ - \x02\x0e\n\r\n\x05\x05\x07\x02I\x01\x12\x04\xc3\x06\x02\x08\n\r\n\x05\ - \x05\x07\x02I\x02\x12\x04\xc3\x06\x0b\r\n\x0c\n\x04\x05\x07\x02J\x12\x04\ - \xc4\x06\x02\t\n\r\n\x05\x05\x07\x02J\x01\x12\x04\xc4\x06\x02\x03\n\r\n\ - \x05\x05\x07\x02J\x02\x12\x04\xc4\x06\x06\x08\n\x0c\n\x04\x05\x07\x02K\ - \x12\x04\xc5\x06\x02\x0e\n\r\n\x05\x05\x07\x02K\x01\x12\x04\xc5\x06\x02\ - \x08\n\r\n\x05\x05\x07\x02K\x02\x12\x04\xc5\x06\x0b\r\n\x0c\n\x04\x05\ - \x07\x02L\x12\x04\xc6\x06\x02\x0c\n\r\n\x05\x05\x07\x02L\x01\x12\x04\xc6\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02L\x02\x12\x04\xc6\x06\t\x0b\n\x0c\n\ - \x04\x05\x07\x02M\x12\x04\xc7\x06\x02\r\n\r\n\x05\x05\x07\x02M\x01\x12\ - \x04\xc7\x06\x02\x07\n\r\n\x05\x05\x07\x02M\x02\x12\x04\xc7\x06\n\x0c\n2\ - \n\x04\x05\x07\x02N\x12\x04\xc8\x06\x02\x0e\"$\x20Internal\x20language\ - \x20for\x20testing\x20SCIP\n\n\r\n\x05\x05\x07\x02N\x01\x12\x04\xc8\x06\ - \x02\x07\n\r\n\x05\x05\x07\x02N\x02\x12\x04\xc8\x06\n\r\n\x0c\n\x04\x05\ - \x07\x02O\x12\x04\xc9\x06\x02\x0c\n\r\n\x05\x05\x07\x02O\x01\x12\x04\xc9\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02O\x02\x12\x04\xc9\x06\t\x0b\n\x0c\n\ - \x04\x05\x07\x02P\x12\x04\xca\x06\x02\x0c\n\r\n\x05\x05\x07\x02P\x01\x12\ - \x04\xca\x06\x02\x06\n\r\n\x05\x05\x07\x02P\x02\x12\x04\xca\x06\t\x0b\n\ - \x0c\n\x04\x05\x07\x02Q\x12\x04\xcb\x06\x02\x0c\n\r\n\x05\x05\x07\x02Q\ - \x01\x12\x04\xcb\x06\x02\x06\n\r\n\x05\x05\x07\x02Q\x02\x12\x04\xcb\x06\ - \t\x0b\n\x0c\n\x04\x05\x07\x02R\x12\x04\xcc\x06\x02\x0b\n\r\n\x05\x05\ - \x07\x02R\x01\x12\x04\xcc\x06\x02\x05\n\r\n\x05\x05\x07\x02R\x02\x12\x04\ - \xcc\x06\x08\n\n\x0c\n\x04\x05\x07\x02S\x12\x04\xcd\x06\x02\x0c\n\r\n\ - \x05\x05\x07\x02S\x01\x12\x04\xcd\x06\x02\x06\n\r\n\x05\x05\x07\x02S\x02\ - \x12\x04\xcd\x06\t\x0b\n\x0c\n\x04\x05\x07\x02T\x12\x04\xce\x06\x02\x0b\ - \n\r\n\x05\x05\x07\x02T\x01\x12\x04\xce\x06\x02\x05\n\r\n\x05\x05\x07\ - \x02T\x02\x12\x04\xce\x06\x08\n\n\x0c\n\x04\x05\x07\x02U\x12\x04\xcf\x06\ - \x02\x0b\n\r\n\x05\x05\x07\x02U\x01\x12\x04\xcf\x06\x02\x05\n\r\n\x05\ - \x05\x07\x02U\x02\x12\x04\xcf\x06\x08\n\n\x0c\n\x04\x05\x07\x02V\x12\x04\ - \xd0\x06\x02\x0c\n\r\n\x05\x05\x07\x02V\x01\x12\x04\xd0\x06\x02\x06\n\r\ - \n\x05\x05\x07\x02V\x02\x12\x04\xd0\x06\t\x0b\n\x0c\n\x04\x05\x07\x02W\ - \x12\x04\xd1\x06\x02\x0c\n\r\n\x05\x05\x07\x02W\x01\x12\x04\xd1\x06\x02\ - \x07\n\r\n\x05\x05\x07\x02W\x02\x12\x04\xd1\x06\n\x0b\n\x0c\n\x04\x05\ - \x07\x02X\x12\x04\xd2\x06\x02\x0e\n\r\n\x05\x05\x07\x02X\x01\x12\x04\xd2\ - \x06\x02\x08\n\r\n\x05\x05\x07\x02X\x02\x12\x04\xd2\x06\x0b\r\n\x14\n\ - \x04\x05\x07\x02Y\x12\x04\xd3\x06\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\ - \x07\x02Y\x01\x12\x04\xd3\x06\x02\r\n\r\n\x05\x05\x07\x02Y\x02\x12\x04\ - \xd3\x06\x10\x12\n\x0c\n\x04\x05\x07\x02Z\x12\x04\xd4\x06\x02\x0f\n\r\n\ - \x05\x05\x07\x02Z\x01\x12\x04\xd4\x06\x02\t\n\r\n\x05\x05\x07\x02Z\x02\ - \x12\x04\xd4\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02[\x12\x04\xd5\x06\x02\ - \x0e\n\r\n\x05\x05\x07\x02[\x01\x12\x04\xd5\x06\x02\x07\n\r\n\x05\x05\ - \x07\x02[\x02\x12\x04\xd5\x06\n\r\n\x0c\n\x04\x05\x07\x02\\\x12\x04\xd6\ - \x06\x02\x10\n\r\n\x05\x05\x07\x02\\\x01\x12\x04\xd6\x06\x02\n\n\r\n\x05\ - \x05\x07\x02\\\x02\x12\x04\xd6\x06\r\x0f\n\x0c\n\x04\x05\x07\x02]\x12\ - \x04\xd7\x06\x02\x0f\n\r\n\x05\x05\x07\x02]\x01\x12\x04\xd7\x06\x02\x08\ - \n\r\n\x05\x05\x07\x02]\x02\x12\x04\xd7\x06\x0b\x0e\n\x0c\n\x04\x05\x07\ - \x02^\x12\x04\xd8\x06\x02\x0c\n\r\n\x05\x05\x07\x02^\x01\x12\x04\xd8\x06\ - \x02\x07\n\r\n\x05\x05\x07\x02^\x02\x12\x04\xd8\x06\n\x0b\n\x0c\n\x04\ - \x05\x07\x02_\x12\x04\xd9\x06\x02\x0c\n\r\n\x05\x05\x07\x02_\x01\x12\x04\ - \xd9\x06\x02\x05\n\r\n\x05\x05\x07\x02_\x02\x12\x04\xd9\x06\x08\x0b\n\ - \x0c\n\x04\x05\x07\x02`\x12\x04\xda\x06\x02\x0c\n\r\n\x05\x05\x07\x02`\ - \x01\x12\x04\xda\x06\x02\x06\n\r\n\x05\x05\x07\x02`\x02\x12\x04\xda\x06\ - \t\x0b\n\x0c\n\x04\x05\x07\x02a\x12\x04\xdb\x06\x02\x0b\n\r\n\x05\x05\ - \x07\x02a\x01\x12\x04\xdb\x06\x02\x05\n\r\n\x05\x05\x07\x02a\x02\x12\x04\ - \xdb\x06\x08\n\n\x0c\n\x04\x05\x07\x02b\x12\x04\xdc\x06\x02\x0f\n\r\n\ - \x05\x05\x07\x02b\x01\x12\x04\xdc\x06\x02\x08\n\r\n\x05\x05\x07\x02b\x02\ - \x12\x04\xdc\x06\x0b\x0e\n\x0c\n\x04\x05\x07\x02c\x12\x04\xdd\x06\x02\ - \x12\n\r\n\x05\x05\x07\x02c\x01\x12\x04\xdd\x06\x02\x0c\n\r\n\x05\x05\ - \x07\x02c\x02\x12\x04\xdd\x06\x0f\x11\n\x0c\n\x04\x05\x07\x02d\x12\x04\ - \xde\x06\x02\x17\n\r\n\x05\x05\x07\x02d\x01\x12\x04\xde\x06\x02\x11\n\r\ - \n\x05\x05\x07\x02d\x02\x12\x04\xde\x06\x14\x16\n\x0c\n\x04\x05\x07\x02e\ - \x12\x04\xdf\x06\x02\x10\n\r\n\x05\x05\x07\x02e\x01\x12\x04\xdf\x06\x02\ - \t\n\r\n\x05\x05\x07\x02e\x02\x12\x04\xdf\x06\x0c\x0f\n\x0c\n\x04\x05\ - \x07\x02f\x12\x04\xe0\x06\x02\r\n\r\n\x05\x05\x07\x02f\x01\x12\x04\xe0\ - \x06\x02\x06\n\r\n\x05\x05\x07\x02f\x02\x12\x04\xe0\x06\t\x0c\n\x0c\n\ - \x04\x05\x07\x02g\x12\x04\xe1\x06\x02\x13\n\r\n\x05\x05\x07\x02g\x01\x12\ - \x04\xe1\x06\x02\r\n\r\n\x05\x05\x07\x02g\x02\x12\x04\xe1\x06\x10\x12\n\ - \x0c\n\x04\x05\x07\x02h\x12\x04\xe2\x06\x02\x0b\n\r\n\x05\x05\x07\x02h\ - \x01\x12\x04\xe2\x06\x02\x05\n\r\n\x05\x05\x07\x02h\x02\x12\x04\xe2\x06\ - \x08\n\n\x0c\n\x04\x05\x07\x02i\x12\x04\xe3\x06\x02\x0f\n\r\n\x05\x05\ - \x07\x02i\x01\x12\x04\xe3\x06\x02\t\n\r\n\x05\x05\x07\x02i\x02\x12\x04\ - \xe3\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02j\x12\x04\xe4\x06\x02\x0b\n\r\n\ - \x05\x05\x07\x02j\x01\x12\x04\xe4\x06\x02\x05\n\r\n\x05\x05\x07\x02j\x02\ - \x12\x04\xe4\x06\x08\n\n\x0c\n\x04\x05\x07\x02k\x12\x04\xe5\x06\x02\x0b\ - \n\r\n\x05\x05\x07\x02k\x01\x12\x04\xe5\x06\x02\x05\n\r\n\x05\x05\x07\ - \x02k\x02\x12\x04\xe5\x06\x08\n\n\x0c\n\x04\x05\x07\x02l\x12\x04\xe6\x06\ - \x02\x0c\n\r\n\x05\x05\x07\x02l\x01\x12\x04\xe6\x06\x02\x06\n\r\n\x05\ - \x05\x07\x02l\x02\x12\x04\xe6\x06\t\x0b\n\x93\x03\n\x04\x05\x07\x02m\x12\ - \x04\xe7\x06\x02\x0b\"\x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\ + \x20|\n\x20\x20\x20\x20\x20return\x20n\x20*\x20factorial(n-1)\x20if\x20n\ + \x20else\x201\x20\x20\x20|\n\x20<\x20enclosing_range\x20end-------------\ + ----------|\n\n\x20```\n\n\x20For\x20reference\x20occurrences,\x20the\ + \x20enclosing\x20range\x20should\x20indicate\x20the\x20start/end\n\x20bo\ + unds\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\x0b\x08\x01\x01\x12\x04\xe9\x05\x08\x1d\n\x0c\n\x04\ + \x04\x0b\x02\t\x12\x04\xea\x05\x045\n\r\n\x05\x04\x0b\x02\t\x06\x12\x04\ + \xea\x05\x04\x13\n\r\n\x05\x04\x0b\x02\t\x01\x12\x04\xea\x05\x14/\n\r\n\ + \x05\x04\x0b\x02\t\x03\x12\x04\xea\x0524\n\x0c\n\x04\x04\x0b\x02\n\x12\ + \x04\xeb\x05\x043\n\r\n\x05\x04\x0b\x02\n\x06\x12\x04\xeb\x05\x04\x12\n\ + \r\n\x05\x04\x0b\x02\n\x01\x12\x04\xeb\x05\x13-\n\r\n\x05\x04\x0b\x02\n\ + \x03\x12\x04\xeb\x0502\nw\n\x02\x04\x0c\x12\x06\xf1\x05\0\xfc\x05\x01\ + \x1ai\x20Represents\x20a\x20diagnostic,\x20such\x20as\x20a\x20compiler\ + \x20error\x20or\x20warning,\x20which\x20should\x20be\n\x20reported\x20fo\ + r\x20a\x20document.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xf1\x05\x08\x12\nW\ + \n\x04\x04\x0c\x02\0\x12\x04\xf3\x05\x02\x18\x1aI\x20Should\x20this\x20d\ + iagnostic\x20be\x20reported\x20as\x20an\x20error,\x20warning,\x20info,\ + \x20or\x20hint?\n\n\r\n\x05\x04\x0c\x02\0\x06\x12\x04\xf3\x05\x02\n\n\r\ + \n\x05\x04\x0c\x02\0\x01\x12\x04\xf3\x05\x0b\x13\n\r\n\x05\x04\x0c\x02\0\ + \x03\x12\x04\xf3\x05\x16\x17\n]\n\x04\x04\x0c\x02\x01\x12\x04\xf5\x05\ + \x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\x20diagnostic,\x20whic\ + h\x20might\x20appear\x20in\x20the\x20user\x20interface.\n\n\r\n\x05\x04\ + \x0c\x02\x01\x05\x12\x04\xf5\x05\x02\x08\n\r\n\x05\x04\x0c\x02\x01\x01\ + \x12\x04\xf5\x05\t\r\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xf5\x05\x10\ + \x11\n+\n\x04\x04\x0c\x02\x02\x12\x04\xf7\x05\x02\x15\x1a\x1d\x20Message\ + \x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\x0c\x02\x02\x05\x12\x04\ + \xf7\x05\x02\x08\n\r\n\x05\x04\x0c\x02\x02\x01\x12\x04\xf7\x05\t\x10\n\r\ + \n\x05\x04\x0c\x02\x02\x03\x12\x04\xf7\x05\x13\x14\n~\n\x04\x04\x0c\x02\ + \x03\x12\x04\xfa\x05\x02\x14\x1ap\x20(optional)\x20Human-readable\x20str\ + ing\x20describing\x20the\x20source\x20of\x20this\x20diagnostic,\x20e.g.\ + \n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\x0c\x02\x03\ + \x05\x12\x04\xfa\x05\x02\x08\n\r\n\x05\x04\x0c\x02\x03\x01\x12\x04\xfa\ + \x05\t\x0f\n\r\n\x05\x04\x0c\x02\x03\x03\x12\x04\xfa\x05\x12\x13\n\x0c\n\ + \x04\x04\x0c\x02\x04\x12\x04\xfb\x05\x02\"\n\r\n\x05\x04\x0c\x02\x04\x04\ + \x12\x04\xfb\x05\x02\n\n\r\n\x05\x04\x0c\x02\x04\x06\x12\x04\xfb\x05\x0b\ + \x18\n\r\n\x05\x04\x0c\x02\x04\x01\x12\x04\xfb\x05\x19\x1d\n\r\n\x05\x04\ + \x0c\x02\x04\x03\x12\x04\xfb\x05\x20!\n\x0c\n\x02\x05\x05\x12\x06\xfe\ + \x05\0\x84\x06\x01\n\x0b\n\x03\x05\x05\x01\x12\x04\xfe\x05\x05\r\n\x0c\n\ + \x04\x05\x05\x02\0\x12\x04\xff\x05\x02\x1a\n\r\n\x05\x05\x05\x02\0\x01\ + \x12\x04\xff\x05\x02\x15\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xff\x05\x18\ + \x19\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\x80\x06\x02\x0c\n\r\n\x05\x05\ + \x05\x02\x01\x01\x12\x04\x80\x06\x02\x07\n\r\n\x05\x05\x05\x02\x01\x02\ + \x12\x04\x80\x06\n\x0b\n\x0c\n\x04\x05\x05\x02\x02\x12\x04\x81\x06\x02\ + \x0e\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\x81\x06\x02\t\n\r\n\x05\x05\ + \x05\x02\x02\x02\x12\x04\x81\x06\x0c\r\n\x0c\n\x04\x05\x05\x02\x03\x12\ + \x04\x82\x06\x02\x12\n\r\n\x05\x05\x05\x02\x03\x01\x12\x04\x82\x06\x02\r\ + \n\r\n\x05\x05\x05\x02\x03\x02\x12\x04\x82\x06\x10\x11\n\x0c\n\x04\x05\ + \x05\x02\x04\x12\x04\x83\x06\x02\x0b\n\r\n\x05\x05\x05\x02\x04\x01\x12\ + \x04\x83\x06\x02\x06\n\r\n\x05\x05\x05\x02\x04\x02\x12\x04\x83\x06\t\n\n\ + \x0c\n\x02\x05\x06\x12\x06\x86\x06\0\x8a\x06\x01\n\x0b\n\x03\x05\x06\x01\ + \x12\x04\x86\x06\x05\x12\n\x0c\n\x04\x05\x06\x02\0\x12\x04\x87\x06\x02\ + \x1f\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\x87\x06\x02\x1a\n\r\n\x05\x05\ + \x06\x02\0\x02\x12\x04\x87\x06\x1d\x1e\n\x0c\n\x04\x05\x06\x02\x01\x12\ + \x04\x88\x06\x02\x12\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\x88\x06\x02\r\ + \n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\x88\x06\x10\x11\n\x0c\n\x04\x05\ + \x06\x02\x02\x12\x04\x89\x06\x02\x11\n\r\n\x05\x05\x06\x02\x02\x01\x12\ + \x04\x89\x06\x02\x0c\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\x89\x06\x0f\ + \x10\n\xd0\x03\n\x02\x05\x07\x12\x06\x92\x06\0\x88\x07\x01\x1a\xc1\x03\ + \x20Language\x20standardises\x20names\x20of\x20common\x20programming\x20\ + languages\x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.lang\ + uage`\x20field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\ + \x20to\n\x20prevent\x20a\x20situation\x20where\x20we\x20have\x20a\x20sin\ + gle\x20programming\x20language\x20ends\x20up\x20with\n\x20multiple\x20st\ + ring\x20representations.\x20For\x20example,\x20the\x20C++\x20language\ + \x20uses\x20the\x20name\n\x20\"CPP\"\x20in\x20this\x20enum\x20and\x20oth\ + er\x20names\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\ + \x20free\x20to\x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20p\ + rogramming\x20languages.\n\n\x0b\n\x03\x05\x07\x01\x12\x04\x92\x06\x05\r\ + \n\x0c\n\x04\x05\x07\x02\0\x12\x04\x93\x06\x02\x1a\n\r\n\x05\x05\x07\x02\ + \0\x01\x12\x04\x93\x06\x02\x15\n\r\n\x05\x05\x07\x02\0\x02\x12\x04\x93\ + \x06\x18\x19\n\x0c\n\x04\x05\x07\x02\x01\x12\x04\x94\x06\x02\x0c\n\r\n\ + \x05\x05\x07\x02\x01\x01\x12\x04\x94\x06\x02\x06\n\r\n\x05\x05\x07\x02\ + \x01\x02\x12\x04\x94\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x02\x12\x04\x95\ + \x06\x02\x0c\n\r\n\x05\x05\x07\x02\x02\x01\x12\x04\x95\x06\x02\x06\n\r\n\ + \x05\x05\x07\x02\x02\x02\x12\x04\x95\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\ + \x03\x12\x04\x96\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x03\x01\x12\x04\x96\ + \x06\x02\x05\n\r\n\x05\x05\x07\x02\x03\x02\x12\x04\x96\x06\x08\n\n\x0c\n\ + \x04\x05\x07\x02\x04\x12\x04\x97\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x04\ + \x01\x12\x04\x97\x06\x02\x05\n\r\n\x05\x05\x07\x02\x04\x02\x12\x04\x97\ + \x06\x08\n\n\x0c\n\x04\x05\x07\x02\x05\x12\x04\x98\x06\x02\x0c\n\r\n\x05\ + \x05\x07\x02\x05\x01\x12\x04\x98\x06\x02\x06\n\r\n\x05\x05\x07\x02\x05\ + \x02\x12\x04\x98\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x06\x12\x04\x99\x06\ + \x02\x10\n\r\n\x05\x05\x07\x02\x06\x01\x12\x04\x99\x06\x02\n\n\r\n\x05\ + \x05\x07\x02\x06\x02\x12\x04\x99\x06\r\x0f\n\x0c\n\x04\x05\x07\x02\x07\ + \x12\x04\x9a\x06\x02\x10\n\r\n\x05\x05\x07\x02\x07\x01\x12\x04\x9a\x06\ + \x02\n\n\r\n\x05\x05\x07\x02\x07\x02\x12\x04\x9a\x06\r\x0f\n\x0c\n\x04\ + \x05\x07\x02\x08\x12\x04\x9b\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x08\x01\ + \x12\x04\x9b\x06\x02\x05\n\r\n\x05\x05\x07\x02\x08\x02\x12\x04\x9b\x06\ + \x08\n\n\x0c\n\x04\x05\x07\x02\t\x12\x04\x9c\x06\x02\x0b\n\r\n\x05\x05\ + \x07\x02\t\x01\x12\x04\x9c\x06\x02\x05\n\r\n\x05\x05\x07\x02\t\x02\x12\ + \x04\x9c\x06\x08\n\n\x0c\n\x04\x05\x07\x02\n\x12\x04\x9d\x06\x02\x0e\n\r\ + \n\x05\x05\x07\x02\n\x01\x12\x04\x9d\x06\x02\x08\n\r\n\x05\x05\x07\x02\n\ + \x02\x12\x04\x9d\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x0b\x12\x04\x9e\x06\ + \x02\t\n\r\n\x05\x05\x07\x02\x0b\x01\x12\x04\x9e\x06\x02\x03\n\r\n\x05\ + \x05\x07\x02\x0b\x02\x12\x04\x9e\x06\x06\x08\n\x0c\n\x04\x05\x07\x02\x0c\ + \x12\x04\x9f\x06\x02\r\n\r\n\x05\x05\x07\x02\x0c\x01\x12\x04\x9f\x06\x02\ + \x07\n\r\n\x05\x05\x07\x02\x0c\x02\x12\x04\x9f\x06\n\x0c\nH\n\x04\x05\ + \x07\x02\r\x12\x04\xa0\x06\x02\x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\ + \x20was\x20chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\x05\ + \x07\x02\r\x01\x12\x04\xa0\x06\x02\x05\n\r\n\x05\x05\x07\x02\r\x02\x12\ + \x04\xa0\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0e\x12\x04\xa1\x06\x02\x0b\n\ + \r\n\x05\x05\x07\x02\x0e\x01\x12\x04\xa1\x06\x02\x05\n\r\n\x05\x05\x07\ + \x02\x0e\x02\x12\x04\xa1\x06\x08\n\n\x0c\n\x04\x05\x07\x02\x0f\x12\x04\ + \xa2\x06\x02\r\n\r\n\x05\x05\x07\x02\x0f\x01\x12\x04\xa2\x06\x02\x08\n\r\ + \n\x05\x05\x07\x02\x0f\x02\x12\x04\xa2\x06\x0b\x0c\n\x0c\n\x04\x05\x07\ + \x02\x10\x12\x04\xa3\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x10\x01\x12\x04\ + \xa3\x06\x02\t\n\r\n\x05\x05\x07\x02\x10\x02\x12\x04\xa3\x06\x0c\r\n\x0c\ + \n\x04\x05\x07\x02\x11\x12\x04\xa4\x06\x02\x14\n\r\n\x05\x05\x07\x02\x11\ + \x01\x12\x04\xa4\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x11\x02\x12\x04\xa4\ + \x06\x11\x13\n\x0c\n\x04\x05\x07\x02\x12\x12\x04\xa5\x06\x02\x11\n\r\n\ + \x05\x05\x07\x02\x12\x01\x12\x04\xa5\x06\x02\x0c\n\r\n\x05\x05\x07\x02\ + \x12\x02\x12\x04\xa5\x06\x0f\x10\n\x0c\n\x04\x05\x07\x02\x13\x12\x04\xa6\ + \x06\x02\x0b\n\r\n\x05\x05\x07\x02\x13\x01\x12\x04\xa6\x06\x02\x05\n\r\n\ + \x05\x05\x07\x02\x13\x02\x12\x04\xa6\x06\x08\n\n\x0c\n\x04\x05\x07\x02\ + \x14\x12\x04\xa7\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x14\x01\x12\x04\xa7\ + \x06\x02\x06\n\r\n\x05\x05\x07\x02\x14\x02\x12\x04\xa7\x06\t\x0b\n\x0c\n\ + \x04\x05\x07\x02\x15\x12\x04\xa8\x06\x02\x0b\n\r\n\x05\x05\x07\x02\x15\ + \x01\x12\x04\xa8\x06\x02\x06\n\r\n\x05\x05\x07\x02\x15\x02\x12\x04\xa8\ + \x06\t\n\n\x0c\n\x04\x05\x07\x02\x16\x12\x04\xa9\x06\x02\x0e\n\r\n\x05\ + \x05\x07\x02\x16\x01\x12\x04\xa9\x06\x02\x08\n\r\n\x05\x05\x07\x02\x16\ + \x02\x12\x04\xa9\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x17\x12\x04\xaa\x06\ + \x02\x0c\n\r\n\x05\x05\x07\x02\x17\x01\x12\x04\xaa\x06\x02\x06\n\r\n\x05\ + \x05\x07\x02\x17\x02\x12\x04\xaa\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x18\ + \x12\x04\xab\x06\x02\x12\n\r\n\x05\x05\x07\x02\x18\x01\x12\x04\xab\x06\ + \x02\x0c\n\r\n\x05\x05\x07\x02\x18\x02\x12\x04\xab\x06\x0f\x11\n\x0c\n\ + \x04\x05\x07\x02\x19\x12\x04\xac\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x19\ + \x01\x12\x04\xac\x06\x02\x08\n\r\n\x05\x05\x07\x02\x19\x02\x12\x04\xac\ + \x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1a\x12\x04\xad\x06\x02\x0e\n\r\n\x05\ + \x05\x07\x02\x1a\x01\x12\x04\xad\x06\x02\x08\n\r\n\x05\x05\x07\x02\x1a\ + \x02\x12\x04\xad\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1b\x12\x04\xae\x06\ + \x02\x0e\n\r\n\x05\x05\x07\x02\x1b\x01\x12\x04\xae\x06\x02\x08\n\r\n\x05\ + \x05\x07\x02\x1b\x02\x12\x04\xae\x06\x0b\r\n\x0c\n\x04\x05\x07\x02\x1c\ + \x12\x04\xaf\x06\x02\x0e\n\r\n\x05\x05\x07\x02\x1c\x01\x12\x04\xaf\x06\ + \x02\x08\n\r\n\x05\x05\x07\x02\x1c\x02\x12\x04\xaf\x06\x0b\r\n\x0c\n\x04\ + \x05\x07\x02\x1d\x12\x04\xb0\x06\x02\x0c\n\r\n\x05\x05\x07\x02\x1d\x01\ + \x12\x04\xb0\x06\x02\x06\n\r\n\x05\x05\x07\x02\x1d\x02\x12\x04\xb0\x06\t\ + \x0b\n\x0c\n\x04\x05\x07\x02\x1e\x12\x04\xb1\x06\x02\x0c\n\r\n\x05\x05\ + \x07\x02\x1e\x01\x12\x04\xb1\x06\x02\x06\n\r\n\x05\x05\x07\x02\x1e\x02\ + \x12\x04\xb1\x06\t\x0b\n\x0c\n\x04\x05\x07\x02\x1f\x12\x04\xb2\x06\x02\ + \x0f\n\r\n\x05\x05\x07\x02\x1f\x01\x12\x04\xb2\x06\x02\t\n\r\n\x05\x05\ + \x07\x02\x1f\x02\x12\x04\xb2\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02\x20\x12\ + \x04\xb3\x06\x02\x12\n\r\n\x05\x05\x07\x02\x20\x01\x12\x04\xb3\x06\x02\ + \x0c\n\r\n\x05\x05\x07\x02\x20\x02\x12\x04\xb3\x06\x0f\x11\n\x0c\n\x04\ + \x05\x07\x02!\x12\x04\xb4\x06\x02\x12\n\r\n\x05\x05\x07\x02!\x01\x12\x04\ + \xb4\x06\x02\x0c\n\r\n\x05\x05\x07\x02!\x02\x12\x04\xb4\x06\x0f\x11\n\ + \x0c\n\x04\x05\x07\x02\"\x12\x04\xb5\x06\x02\x12\n\r\n\x05\x05\x07\x02\"\ + \x01\x12\x04\xb5\x06\x02\x0c\n\r\n\x05\x05\x07\x02\"\x02\x12\x04\xb5\x06\ + \x0f\x11\n\x0c\n\x04\x05\x07\x02#\x12\x04\xb6\x06\x02\n\n\r\n\x05\x05\ + \x07\x02#\x01\x12\x04\xb6\x06\x02\x04\n\r\n\x05\x05\x07\x02#\x02\x12\x04\ + \xb6\x06\x07\t\n\x0c\n\x04\x05\x07\x02$\x12\x04\xb7\x06\x02\x0f\n\r\n\ + \x05\x05\x07\x02$\x01\x12\x04\xb7\x06\x02\t\n\r\n\x05\x05\x07\x02$\x02\ + \x12\x04\xb7\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02%\x12\x04\xb8\x06\x02\r\ + \n\r\n\x05\x05\x07\x02%\x01\x12\x04\xb8\x06\x02\x08\n\r\n\x05\x05\x07\ + \x02%\x02\x12\x04\xb8\x06\x0b\x0c\n\x0c\n\x04\x05\x07\x02&\x12\x04\xb9\ + \x06\x02\x0c\n\r\n\x05\x05\x07\x02&\x01\x12\x04\xb9\x06\x02\x06\n\r\n\ + \x05\x05\x07\x02&\x02\x12\x04\xb9\x06\t\x0b\n\x0c\n\x04\x05\x07\x02'\x12\ + \x04\xba\x06\x02\x0c\n\r\n\x05\x05\x07\x02'\x01\x12\x04\xba\x06\x02\x06\ + \n\r\n\x05\x05\x07\x02'\x02\x12\x04\xba\x06\t\x0b\n\x0c\n\x04\x05\x07\ + \x02(\x12\x04\xbb\x06\x02\x12\n\r\n\x05\x05\x07\x02(\x01\x12\x04\xbb\x06\ + \x02\x0c\n\r\n\x05\x05\x07\x02(\x02\x12\x04\xbb\x06\x0f\x11\n\x0c\n\x04\ + \x05\x07\x02)\x12\x04\xbc\x06\x02\x0f\n\r\n\x05\x05\x07\x02)\x01\x12\x04\ + \xbc\x06\x02\t\n\r\n\x05\x05\x07\x02)\x02\x12\x04\xbc\x06\x0c\x0e\n\x0c\ + \n\x04\x05\x07\x02*\x12\x04\xbd\x06\x02\r\n\r\n\x05\x05\x07\x02*\x01\x12\ + \x04\xbd\x06\x02\x07\n\r\n\x05\x05\x07\x02*\x02\x12\x04\xbd\x06\n\x0c\n\ + \x0c\n\x04\x05\x07\x02+\x12\x04\xbe\x06\x02\x0b\n\r\n\x05\x05\x07\x02+\ + \x01\x12\x04\xbe\x06\x02\x05\n\r\n\x05\x05\x07\x02+\x02\x12\x04\xbe\x06\ + \x08\n\n\x0c\n\x04\x05\x07\x02,\x12\x04\xbf\x06\x02\t\n\r\n\x05\x05\x07\ + \x02,\x01\x12\x04\xbf\x06\x02\x03\n\r\n\x05\x05\x07\x02,\x02\x12\x04\xbf\ + \x06\x06\x08\n\x0c\n\x04\x05\x07\x02-\x12\x04\xc0\x06\x02\x0c\n\r\n\x05\ + \x05\x07\x02-\x01\x12\x04\xc0\x06\x02\x06\n\r\n\x05\x05\x07\x02-\x02\x12\ + \x04\xc0\x06\t\x0b\n\x0c\n\x04\x05\x07\x02.\x12\x04\xc1\x06\x02\x0b\n\r\ + \n\x05\x05\x07\x02.\x01\x12\x04\xc1\x06\x02\x06\n\r\n\x05\x05\x07\x02.\ + \x02\x12\x04\xc1\x06\t\n\n\x0c\n\x04\x05\x07\x02/\x12\x04\xc2\x06\x02\ + \x12\n\r\n\x05\x05\x07\x02/\x01\x12\x04\xc2\x06\x02\x0c\n\r\n\x05\x05\ + \x07\x02/\x02\x12\x04\xc2\x06\x0f\x11\n\x0c\n\x04\x05\x07\x020\x12\x04\ + \xc3\x06\x02\x17\n\r\n\x05\x05\x07\x020\x01\x12\x04\xc3\x06\x02\x11\n\r\ + \n\x05\x05\x07\x020\x02\x12\x04\xc3\x06\x14\x16\n\x0c\n\x04\x05\x07\x021\ + \x12\x04\xc4\x06\x02\x0f\n\r\n\x05\x05\x07\x021\x01\x12\x04\xc4\x06\x02\ + \t\n\r\n\x05\x05\x07\x021\x02\x12\x04\xc4\x06\x0c\x0e\n\x0c\n\x04\x05\ + \x07\x022\x12\x04\xc5\x06\x02\r\n\r\n\x05\x05\x07\x022\x01\x12\x04\xc5\ + \x06\x02\x07\n\r\n\x05\x05\x07\x022\x02\x12\x04\xc5\x06\n\x0c\n\x0c\n\ + \x04\x05\x07\x023\x12\x04\xc6\x06\x02\x11\n\r\n\x05\x05\x07\x023\x01\x12\ + \x04\xc6\x06\x02\n\n\r\n\x05\x05\x07\x023\x02\x12\x04\xc6\x06\r\x10\n\ + \x0c\n\x04\x05\x07\x024\x12\x04\xc7\x06\x02\r\n\r\n\x05\x05\x07\x024\x01\ + \x12\x04\xc7\x06\x02\x08\n\r\n\x05\x05\x07\x024\x02\x12\x04\xc7\x06\x0b\ + \x0c\n\x0c\n\x04\x05\x07\x025\x12\x04\xc8\x06\x02\r\n\r\n\x05\x05\x07\ + \x025\x01\x12\x04\xc8\x06\x02\x07\n\r\n\x05\x05\x07\x025\x02\x12\x04\xc8\ + \x06\n\x0c\n\x0c\n\x04\x05\x07\x026\x12\x04\xc9\x06\x02\x0c\n\r\n\x05\ + \x05\x07\x026\x01\x12\x04\xc9\x06\x02\x06\n\r\n\x05\x05\x07\x026\x02\x12\ + \x04\xc9\x06\t\x0b\n\x0c\n\x04\x05\x07\x027\x12\x04\xca\x06\x02\x0c\n\r\ + \n\x05\x05\x07\x027\x01\x12\x04\xca\x06\x02\x06\n\r\n\x05\x05\x07\x027\ + \x02\x12\x04\xca\x06\t\x0b\n\x0c\n\x04\x05\x07\x028\x12\x04\xcb\x06\x02\ + \x0b\n\r\n\x05\x05\x07\x028\x01\x12\x04\xcb\x06\x02\x05\n\r\n\x05\x05\ + \x07\x028\x02\x12\x04\xcb\x06\x08\n\n\x0c\n\x04\x05\x07\x029\x12\x04\xcc\ + \x06\x02\r\n\r\n\x05\x05\x07\x029\x01\x12\x04\xcc\x06\x02\x06\n\r\n\x05\ + \x05\x07\x029\x02\x12\x04\xcc\x06\t\x0c\n\x0c\n\x04\x05\x07\x02:\x12\x04\ + \xcd\x06\x02\x10\n\r\n\x05\x05\x07\x02:\x01\x12\x04\xcd\x06\x02\n\n\r\n\ + \x05\x05\x07\x02:\x02\x12\x04\xcd\x06\r\x0f\n\x0c\n\x04\x05\x07\x02;\x12\ + \x04\xce\x06\x02\x10\n\r\n\x05\x05\x07\x02;\x01\x12\x04\xce\x06\x02\n\n\ + \r\n\x05\x05\x07\x02;\x02\x12\x04\xce\x06\r\x0f\n\x0c\n\x04\x05\x07\x02<\ + \x12\x04\xcf\x06\x02\x0e\n\r\n\x05\x05\x07\x02<\x01\x12\x04\xcf\x06\x02\ + \x08\n\r\n\x05\x05\x07\x02<\x02\x12\x04\xcf\x06\x0b\r\n(\n\x04\x05\x07\ + \x02=\x12\x04\xd0\x06\x02\x0f\"\x1a\x20https://nickel-lang.org/\n\n\r\n\ + \x05\x05\x07\x02=\x01\x12\x04\xd0\x06\x02\x08\n\r\n\x05\x05\x07\x02=\x02\ + \x12\x04\xd0\x06\x0b\x0e\n\x0c\n\x04\x05\x07\x02>\x12\x04\xd1\x06\x02\ + \x0b\n\r\n\x05\x05\x07\x02>\x01\x12\x04\xd1\x06\x02\x05\n\r\n\x05\x05\ + \x07\x02>\x02\x12\x04\xd1\x06\x08\n\n\x0c\n\x04\x05\x07\x02?\x12\x04\xd2\ + \x06\x02\r\n\r\n\x05\x05\x07\x02?\x01\x12\x04\xd2\x06\x02\x07\n\r\n\x05\ + \x05\x07\x02?\x02\x12\x04\xd2\x06\n\x0c\n\x0c\n\x04\x05\x07\x02@\x12\x04\ + \xd3\x06\x02\x13\n\r\n\x05\x05\x07\x02@\x01\x12\x04\xd3\x06\x02\r\n\r\n\ + \x05\x05\x07\x02@\x02\x12\x04\xd3\x06\x10\x12\n\x0c\n\x04\x05\x07\x02A\ + \x12\x04\xd4\x06\x02\x15\n\r\n\x05\x05\x07\x02A\x01\x12\x04\xd4\x06\x02\ + \x0f\n\r\n\x05\x05\x07\x02A\x02\x12\x04\xd4\x06\x12\x14\n\x0c\n\x04\x05\ + \x07\x02B\x12\x04\xd5\x06\x02\x0e\n\r\n\x05\x05\x07\x02B\x01\x12\x04\xd5\ + \x06\x02\x08\n\r\n\x05\x05\x07\x02B\x02\x12\x04\xd5\x06\x0b\r\n\x0c\n\ + \x04\x05\x07\x02C\x12\x04\xd6\x06\x02\x0b\n\r\n\x05\x05\x07\x02C\x01\x12\ + \x04\xd6\x06\x02\x05\n\r\n\x05\x05\x07\x02C\x02\x12\x04\xd6\x06\x08\n\n\ + \x0c\n\x04\x05\x07\x02D\x12\x04\xd7\x06\x02\r\n\r\n\x05\x05\x07\x02D\x01\ + \x12\x04\xd7\x06\x02\x07\n\r\n\x05\x05\x07\x02D\x02\x12\x04\xd7\x06\n\ + \x0c\n\x0c\n\x04\x05\x07\x02E\x12\x04\xd8\x06\x02\x0c\n\r\n\x05\x05\x07\ + \x02E\x01\x12\x04\xd8\x06\x02\x06\n\r\n\x05\x05\x07\x02E\x02\x12\x04\xd8\ + \x06\t\x0b\n\x0c\n\x04\x05\x07\x02F\x12\x04\xd9\x06\x02\x12\n\r\n\x05\ + \x05\x07\x02F\x01\x12\x04\xd9\x06\x02\x0c\n\r\n\x05\x05\x07\x02F\x02\x12\ + \x04\xd9\x06\x0f\x11\n\x0c\n\x04\x05\x07\x02G\x12\x04\xda\x06\x02\x0e\n\ + \r\n\x05\x05\x07\x02G\x01\x12\x04\xda\x06\x02\x08\n\r\n\x05\x05\x07\x02G\ + \x02\x12\x04\xda\x06\x0b\r\n\x0c\n\x04\x05\x07\x02H\x12\x04\xdb\x06\x02\ + \x11\n\r\n\x05\x05\x07\x02H\x01\x12\x04\xdb\x06\x02\n\n\r\n\x05\x05\x07\ + \x02H\x02\x12\x04\xdb\x06\r\x10\n\x0c\n\x04\x05\x07\x02I\x12\x04\xdc\x06\ + \x02\x0e\n\r\n\x05\x05\x07\x02I\x01\x12\x04\xdc\x06\x02\x08\n\r\n\x05\ + \x05\x07\x02I\x02\x12\x04\xdc\x06\x0b\r\n\x0c\n\x04\x05\x07\x02J\x12\x04\ + \xdd\x06\x02\t\n\r\n\x05\x05\x07\x02J\x01\x12\x04\xdd\x06\x02\x03\n\r\n\ + \x05\x05\x07\x02J\x02\x12\x04\xdd\x06\x06\x08\n\x0c\n\x04\x05\x07\x02K\ + \x12\x04\xde\x06\x02\x0e\n\r\n\x05\x05\x07\x02K\x01\x12\x04\xde\x06\x02\ + \x08\n\r\n\x05\x05\x07\x02K\x02\x12\x04\xde\x06\x0b\r\n\x0c\n\x04\x05\ + \x07\x02L\x12\x04\xdf\x06\x02\x0c\n\r\n\x05\x05\x07\x02L\x01\x12\x04\xdf\ + \x06\x02\x06\n\r\n\x05\x05\x07\x02L\x02\x12\x04\xdf\x06\t\x0b\n\x0c\n\ + \x04\x05\x07\x02M\x12\x04\xe0\x06\x02\r\n\r\n\x05\x05\x07\x02M\x01\x12\ + \x04\xe0\x06\x02\x07\n\r\n\x05\x05\x07\x02M\x02\x12\x04\xe0\x06\n\x0c\n2\ + \n\x04\x05\x07\x02N\x12\x04\xe1\x06\x02\x0e\"$\x20Internal\x20language\ + \x20for\x20testing\x20SCIP\n\n\r\n\x05\x05\x07\x02N\x01\x12\x04\xe1\x06\ + \x02\x07\n\r\n\x05\x05\x07\x02N\x02\x12\x04\xe1\x06\n\r\n\x0c\n\x04\x05\ + \x07\x02O\x12\x04\xe2\x06\x02\x0c\n\r\n\x05\x05\x07\x02O\x01\x12\x04\xe2\ + \x06\x02\x06\n\r\n\x05\x05\x07\x02O\x02\x12\x04\xe2\x06\t\x0b\n\x0c\n\ + \x04\x05\x07\x02P\x12\x04\xe3\x06\x02\x0c\n\r\n\x05\x05\x07\x02P\x01\x12\ + \x04\xe3\x06\x02\x06\n\r\n\x05\x05\x07\x02P\x02\x12\x04\xe3\x06\t\x0b\n\ + \x0c\n\x04\x05\x07\x02Q\x12\x04\xe4\x06\x02\x0c\n\r\n\x05\x05\x07\x02Q\ + \x01\x12\x04\xe4\x06\x02\x06\n\r\n\x05\x05\x07\x02Q\x02\x12\x04\xe4\x06\ + \t\x0b\n\x0c\n\x04\x05\x07\x02R\x12\x04\xe5\x06\x02\x0b\n\r\n\x05\x05\ + \x07\x02R\x01\x12\x04\xe5\x06\x02\x05\n\r\n\x05\x05\x07\x02R\x02\x12\x04\ + \xe5\x06\x08\n\n\x0c\n\x04\x05\x07\x02S\x12\x04\xe6\x06\x02\x0c\n\r\n\ + \x05\x05\x07\x02S\x01\x12\x04\xe6\x06\x02\x06\n\r\n\x05\x05\x07\x02S\x02\ + \x12\x04\xe6\x06\t\x0b\n\x0c\n\x04\x05\x07\x02T\x12\x04\xe7\x06\x02\x0b\ + \n\r\n\x05\x05\x07\x02T\x01\x12\x04\xe7\x06\x02\x05\n\r\n\x05\x05\x07\ + \x02T\x02\x12\x04\xe7\x06\x08\n\n\x0c\n\x04\x05\x07\x02U\x12\x04\xe8\x06\ + \x02\x0b\n\r\n\x05\x05\x07\x02U\x01\x12\x04\xe8\x06\x02\x05\n\r\n\x05\ + \x05\x07\x02U\x02\x12\x04\xe8\x06\x08\n\n\x0c\n\x04\x05\x07\x02V\x12\x04\ + \xe9\x06\x02\x0c\n\r\n\x05\x05\x07\x02V\x01\x12\x04\xe9\x06\x02\x06\n\r\ + \n\x05\x05\x07\x02V\x02\x12\x04\xe9\x06\t\x0b\n\x0c\n\x04\x05\x07\x02W\ + \x12\x04\xea\x06\x02\x0c\n\r\n\x05\x05\x07\x02W\x01\x12\x04\xea\x06\x02\ + \x07\n\r\n\x05\x05\x07\x02W\x02\x12\x04\xea\x06\n\x0b\n\x0c\n\x04\x05\ + \x07\x02X\x12\x04\xeb\x06\x02\x0e\n\r\n\x05\x05\x07\x02X\x01\x12\x04\xeb\ + \x06\x02\x08\n\r\n\x05\x05\x07\x02X\x02\x12\x04\xeb\x06\x0b\r\n\x14\n\ + \x04\x05\x07\x02Y\x12\x04\xec\x06\x02\x13\"\x06\x20Bash\n\n\r\n\x05\x05\ + \x07\x02Y\x01\x12\x04\xec\x06\x02\r\n\r\n\x05\x05\x07\x02Y\x02\x12\x04\ + \xec\x06\x10\x12\n\x0c\n\x04\x05\x07\x02Z\x12\x04\xed\x06\x02\x0f\n\r\n\ + \x05\x05\x07\x02Z\x01\x12\x04\xed\x06\x02\t\n\r\n\x05\x05\x07\x02Z\x02\ + \x12\x04\xed\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02[\x12\x04\xee\x06\x02\ + \x0e\n\r\n\x05\x05\x07\x02[\x01\x12\x04\xee\x06\x02\x07\n\r\n\x05\x05\ + \x07\x02[\x02\x12\x04\xee\x06\n\r\n\x0c\n\x04\x05\x07\x02\\\x12\x04\xef\ + \x06\x02\x10\n\r\n\x05\x05\x07\x02\\\x01\x12\x04\xef\x06\x02\n\n\r\n\x05\ + \x05\x07\x02\\\x02\x12\x04\xef\x06\r\x0f\n\x0c\n\x04\x05\x07\x02]\x12\ + \x04\xf0\x06\x02\x0f\n\r\n\x05\x05\x07\x02]\x01\x12\x04\xf0\x06\x02\x08\ + \n\r\n\x05\x05\x07\x02]\x02\x12\x04\xf0\x06\x0b\x0e\n\x0c\n\x04\x05\x07\ + \x02^\x12\x04\xf1\x06\x02\x0c\n\r\n\x05\x05\x07\x02^\x01\x12\x04\xf1\x06\ + \x02\x07\n\r\n\x05\x05\x07\x02^\x02\x12\x04\xf1\x06\n\x0b\n\x0c\n\x04\ + \x05\x07\x02_\x12\x04\xf2\x06\x02\x0c\n\r\n\x05\x05\x07\x02_\x01\x12\x04\ + \xf2\x06\x02\x05\n\r\n\x05\x05\x07\x02_\x02\x12\x04\xf2\x06\x08\x0b\n\ + \x0c\n\x04\x05\x07\x02`\x12\x04\xf3\x06\x02\x0c\n\r\n\x05\x05\x07\x02`\ + \x01\x12\x04\xf3\x06\x02\x06\n\r\n\x05\x05\x07\x02`\x02\x12\x04\xf3\x06\ + \t\x0b\n\x0c\n\x04\x05\x07\x02a\x12\x04\xf4\x06\x02\x0b\n\r\n\x05\x05\ + \x07\x02a\x01\x12\x04\xf4\x06\x02\x05\n\r\n\x05\x05\x07\x02a\x02\x12\x04\ + \xf4\x06\x08\n\n\x0c\n\x04\x05\x07\x02b\x12\x04\xf5\x06\x02\x0f\n\r\n\ + \x05\x05\x07\x02b\x01\x12\x04\xf5\x06\x02\x08\n\r\n\x05\x05\x07\x02b\x02\ + \x12\x04\xf5\x06\x0b\x0e\n\x0c\n\x04\x05\x07\x02c\x12\x04\xf6\x06\x02\ + \x12\n\r\n\x05\x05\x07\x02c\x01\x12\x04\xf6\x06\x02\x0c\n\r\n\x05\x05\ + \x07\x02c\x02\x12\x04\xf6\x06\x0f\x11\n\x0c\n\x04\x05\x07\x02d\x12\x04\ + \xf7\x06\x02\x17\n\r\n\x05\x05\x07\x02d\x01\x12\x04\xf7\x06\x02\x11\n\r\ + \n\x05\x05\x07\x02d\x02\x12\x04\xf7\x06\x14\x16\n\x0c\n\x04\x05\x07\x02e\ + \x12\x04\xf8\x06\x02\x10\n\r\n\x05\x05\x07\x02e\x01\x12\x04\xf8\x06\x02\ + \t\n\r\n\x05\x05\x07\x02e\x02\x12\x04\xf8\x06\x0c\x0f\n\x0c\n\x04\x05\ + \x07\x02f\x12\x04\xf9\x06\x02\r\n\r\n\x05\x05\x07\x02f\x01\x12\x04\xf9\ + \x06\x02\x06\n\r\n\x05\x05\x07\x02f\x02\x12\x04\xf9\x06\t\x0c\n\x0c\n\ + \x04\x05\x07\x02g\x12\x04\xfa\x06\x02\x13\n\r\n\x05\x05\x07\x02g\x01\x12\ + \x04\xfa\x06\x02\r\n\r\n\x05\x05\x07\x02g\x02\x12\x04\xfa\x06\x10\x12\n\ + \x0c\n\x04\x05\x07\x02h\x12\x04\xfb\x06\x02\x0b\n\r\n\x05\x05\x07\x02h\ + \x01\x12\x04\xfb\x06\x02\x05\n\r\n\x05\x05\x07\x02h\x02\x12\x04\xfb\x06\ + \x08\n\n\x0c\n\x04\x05\x07\x02i\x12\x04\xfc\x06\x02\x0f\n\r\n\x05\x05\ + \x07\x02i\x01\x12\x04\xfc\x06\x02\t\n\r\n\x05\x05\x07\x02i\x02\x12\x04\ + \xfc\x06\x0c\x0e\n\x0c\n\x04\x05\x07\x02j\x12\x04\xfd\x06\x02\x0b\n\r\n\ + \x05\x05\x07\x02j\x01\x12\x04\xfd\x06\x02\x05\n\r\n\x05\x05\x07\x02j\x02\ + \x12\x04\xfd\x06\x08\n\n\x0c\n\x04\x05\x07\x02k\x12\x04\xfe\x06\x02\x0b\ + \n\r\n\x05\x05\x07\x02k\x01\x12\x04\xfe\x06\x02\x05\n\r\n\x05\x05\x07\ + \x02k\x02\x12\x04\xfe\x06\x08\n\n\x0c\n\x04\x05\x07\x02l\x12\x04\xff\x06\ + \x02\x0c\n\r\n\x05\x05\x07\x02l\x01\x12\x04\xff\x06\x02\x06\n\r\n\x05\ + \x05\x07\x02l\x02\x12\x04\xff\x06\t\x0b\n\x93\x03\n\x04\x05\x07\x02m\x12\ + \x04\x80\x07\x02\x0b\"\x84\x03\x20NextLanguage\x20=\x20111;\n\x20Steps\ \x20add\x20a\x20new\x20language:\n\x201.\x20Copy-paste\x20the\x20\"NextL\ anguage\x20=\x20N\"\x20line\x20above\n\x202.\x20Increment\x20\"NextLangu\ age\x20=\x20N\"\x20to\x20\"NextLanguage\x20=\x20N+1\"\n\x203.\x20Replace\ @@ -5983,8 +6714,8 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20correct\x20line\x20above\x20using\x20alphabetical\x20order\n\x205.\ \x20(optional)\x20Add\x20a\x20brief\x20comment\x20behind\x20the\x20langu\ age\x20if\x20the\x20name\x20is\x20not\x20self-explanatory\n\n\r\n\x05\ - \x05\x07\x02m\x01\x12\x04\xe7\x06\x02\x05\n\r\n\x05\x05\x07\x02m\x02\x12\ - \x04\xe7\x06\x08\nb\x06proto3\ + \x05\x07\x02m\x01\x12\x04\x80\x07\x02\x05\n\r\n\x05\x05\x07\x02m\x02\x12\ + \x04\x80\x07\x08\nb\x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file @@ -6002,7 +6733,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { 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); + let mut messages = ::std::vec::Vec::with_capacity(13); messages.push(Index::generated_message_descriptor_data()); messages.push(Metadata::generated_message_descriptor_data()); messages.push(ToolInfo::generated_message_descriptor_data()); @@ -6012,6 +6743,8 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { messages.push(Descriptor::generated_message_descriptor_data()); messages.push(SymbolInformation::generated_message_descriptor_data()); messages.push(Relationship::generated_message_descriptor_data()); + messages.push(SingleLineRange::generated_message_descriptor_data()); + messages.push(MultiLineRange::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(10); diff --git a/bindings/typescript/scip_pb.ts b/bindings/typescript/scip_pb.ts index 9bb1633d..1b45ec9d 100644 --- a/bindings/typescript/scip_pb.ts +++ b/bindings/typescript/scip_pb.ts @@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file scip.proto. */ export const file_scip: GenFile = /*@__PURE__*/ - fileDesc("CgpzY2lwLnByb3RvEgRzY2lwIn8KBUluZGV4EiAKCG1ldGFkYXRhGAEgASgLMg4uc2NpcC5NZXRhZGF0YRIhCglkb2N1bWVudHMYAiADKAsyDi5zY2lwLkRvY3VtZW50EjEKEGV4dGVybmFsX3N5bWJvbHMYAyADKAsyFy5zY2lwLlN5bWJvbEluZm9ybWF0aW9uIp8BCghNZXRhZGF0YRImCgd2ZXJzaW9uGAEgASgOMhUuc2NpcC5Qcm90b2NvbFZlcnNpb24SIQoJdG9vbF9pbmZvGAIgASgLMg4uc2NpcC5Ub29sSW5mbxIUCgxwcm9qZWN0X3Jvb3QYAyABKAkSMgoWdGV4dF9kb2N1bWVudF9lbmNvZGluZxgEIAEoDjISLnNjaXAuVGV4dEVuY29kaW5nIjwKCFRvb2xJbmZvEgwKBG5hbWUYASABKAkSDwoHdmVyc2lvbhgCIAEoCRIRCglhcmd1bWVudHMYAyADKAkixQEKCERvY3VtZW50EhAKCGxhbmd1YWdlGAQgASgJEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSJQoLb2NjdXJyZW5jZXMYAiADKAsyEC5zY2lwLk9jY3VycmVuY2USKAoHc3ltYm9scxgDIAMoCzIXLnNjaXAuU3ltYm9sSW5mb3JtYXRpb24SDAoEdGV4dBgFIAEoCRIxChFwb3NpdGlvbl9lbmNvZGluZxgGIAEoDjIWLnNjaXAuUG9zaXRpb25FbmNvZGluZyJfCgZTeW1ib2wSDgoGc2NoZW1lGAEgASgJEh4KB3BhY2thZ2UYAiABKAsyDS5zY2lwLlBhY2thZ2USJQoLZGVzY3JpcHRvcnMYAyADKAsyEC5zY2lwLkRlc2NyaXB0b3IiOQoHUGFja2FnZRIPCgdtYW5hZ2VyGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoCSKCAgoKRGVzY3JpcHRvchIMCgRuYW1lGAEgASgJEhUKDWRpc2FtYmlndWF0b3IYAiABKAkSJwoGc3VmZml4GAMgASgOMhcuc2NpcC5EZXNjcmlwdG9yLlN1ZmZpeCKlAQoGU3VmZml4EhUKEVVuc3BlY2lmaWVkU3VmZml4EAASDQoJTmFtZXNwYWNlEAESDwoHUGFja2FnZRABGgIIARIICgRUeXBlEAISCAoEVGVybRADEgoKBk1ldGhvZBAEEhEKDVR5cGVQYXJhbWV0ZXIQBRINCglQYXJhbWV0ZXIQBhIICgRNZXRhEAcSCQoFTG9jYWwQCBIJCgVNYWNybxAJGgIQASLwCwoRU3ltYm9sSW5mb3JtYXRpb24SDgoGc3ltYm9sGAEgASgJEhUKDWRvY3VtZW50YXRpb24YAyADKAkSKQoNcmVsYXRpb25zaGlwcxgEIAMoCzISLnNjaXAuUmVsYXRpb25zaGlwEioKBGtpbmQYBSABKA4yHC5zY2lwLlN5bWJvbEluZm9ybWF0aW9uLktpbmQSFAoMZGlzcGxheV9uYW1lGAYgASgJEi8KF3NpZ25hdHVyZV9kb2N1bWVudGF0aW9uGAcgASgLMg4uc2NpcC5Eb2N1bWVudBIYChBlbmNsb3Npbmdfc3ltYm9sGAggASgJIvsJCgRLaW5kEhMKD1Vuc3BlY2lmaWVkS2luZBAAEhIKDkFic3RyYWN0TWV0aG9kEEISDAoIQWNjZXNzb3IQSBIJCgVBcnJheRABEg0KCUFzc2VydGlvbhACEhIKDkFzc29jaWF0ZWRUeXBlEAMSDQoJQXR0cmlidXRlEAQSCQoFQXhpb20QBRILCgdCb29sZWFuEAYSCQoFQ2xhc3MQBxILCgdDb25jZXB0EFYSDAoIQ29uc3RhbnQQCBIPCgtDb25zdHJ1Y3RvchAJEgwKCENvbnRyYWN0ED4SDgoKRGF0YUZhbWlseRAKEgwKCERlbGVnYXRlEEkSCAoERW51bRALEg4KCkVudW1NZW1iZXIQDBIJCgVFcnJvchA/EgkKBUV2ZW50EA0SDQoJRXh0ZW5zaW9uEFQSCAoERmFjdBAOEgkKBUZpZWxkEA8SCAoERmlsZRAQEgwKCEZ1bmN0aW9uEBESCgoGR2V0dGVyEBISCwoHR3JhbW1hchATEgwKCEluc3RhbmNlEBQSDQoJSW50ZXJmYWNlEBUSBwoDS2V5EBYSCAoETGFuZxAXEgkKBUxlbW1hEBgSCwoHTGlicmFyeRBAEgkKBU1hY3JvEBkSCgoGTWV0aG9kEBoSDwoLTWV0aG9kQWxpYXMQShISCg5NZXRob2RSZWNlaXZlchAbEhcKE01ldGhvZFNwZWNpZmljYXRpb24QQxILCgdNZXNzYWdlEBwSCQoFTWl4aW4QVRIMCghNb2RpZmllchBBEgoKBk1vZHVsZRAdEg0KCU5hbWVzcGFjZRAeEggKBE51bGwQHxIKCgZOdW1iZXIQIBIKCgZPYmplY3QQIRIMCghPcGVyYXRvchAiEgsKB1BhY2thZ2UQIxIRCg1QYWNrYWdlT2JqZWN0ECQSDQoJUGFyYW1ldGVyECUSEgoOUGFyYW1ldGVyTGFiZWwQJhILCgdQYXR0ZXJuECcSDQoJUHJlZGljYXRlECgSDAoIUHJvcGVydHkQKRIMCghQcm90b2NvbBAqEhIKDlByb3RvY29sTWV0aG9kEEQSFQoRUHVyZVZpcnR1YWxNZXRob2QQRRIPCgtRdWFzaXF1b3RlchArEhEKDVNlbGZQYXJhbWV0ZXIQLBIKCgZTZXR0ZXIQLRINCglTaWduYXR1cmUQLhISCg5TaW5nbGV0b25DbGFzcxBLEhMKD1NpbmdsZXRvbk1ldGhvZBBMEhQKEFN0YXRpY0RhdGFNZW1iZXIQTRIPCgtTdGF0aWNFdmVudBBOEg8KC1N0YXRpY0ZpZWxkEE8SEAoMU3RhdGljTWV0aG9kEFASEgoOU3RhdGljUHJvcGVydHkQURISCg5TdGF0aWNWYXJpYWJsZRBSEgoKBlN0cmluZxAwEgoKBlN0cnVjdBAxEg0KCVN1YnNjcmlwdBAvEgoKBlRhY3RpYxAyEgsKB1RoZW9yZW0QMxIRCg1UaGlzUGFyYW1ldGVyEDQSCQoFVHJhaXQQNRIPCgtUcmFpdE1ldGhvZBBGEggKBFR5cGUQNhINCglUeXBlQWxpYXMQNxINCglUeXBlQ2xhc3MQOBITCg9UeXBlQ2xhc3NNZXRob2QQRxIOCgpUeXBlRmFtaWx5EDkSEQoNVHlwZVBhcmFtZXRlchA6EgkKBVVuaW9uEDsSCQoFVmFsdWUQPBIMCghWYXJpYWJsZRA9IoIBCgxSZWxhdGlvbnNoaXASDgoGc3ltYm9sGAEgASgJEhQKDGlzX3JlZmVyZW5jZRgCIAEoCBIZChFpc19pbXBsZW1lbnRhdGlvbhgDIAEoCBIaChJpc190eXBlX2RlZmluaXRpb24YBCABKAgSFQoNaXNfZGVmaW5pdGlvbhgFIAEoCCLIAQoKT2NjdXJyZW5jZRINCgVyYW5nZRgBIAMoBRIOCgZzeW1ib2wYAiABKAkSFAoMc3ltYm9sX3JvbGVzGAMgASgFEh4KFm92ZXJyaWRlX2RvY3VtZW50YXRpb24YBCADKAkSJQoLc3ludGF4X2tpbmQYBSABKA4yEC5zY2lwLlN5bnRheEtpbmQSJQoLZGlhZ25vc3RpY3MYBiADKAsyEC5zY2lwLkRpYWdub3N0aWMSFwoPZW5jbG9zaW5nX3JhbmdlGAcgAygFIoABCgpEaWFnbm9zdGljEiAKCHNldmVyaXR5GAEgASgOMg4uc2NpcC5TZXZlcml0eRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSDgoGc291cmNlGAQgASgJEiEKBHRhZ3MYBSADKA4yEy5zY2lwLkRpYWdub3N0aWNUYWcqMQoPUHJvdG9jb2xWZXJzaW9uEh4KGlVuc3BlY2lmaWVkUHJvdG9jb2xWZXJzaW9uEAAqQAoMVGV4dEVuY29kaW5nEhsKF1Vuc3BlY2lmaWVkVGV4dEVuY29kaW5nEAASCAoEVVRGOBABEgkKBVVURjE2EAIqpAEKEFBvc2l0aW9uRW5jb2RpbmcSHwobVW5zcGVjaWZpZWRQb3NpdGlvbkVuY29kaW5nEAASIwofVVRGOENvZGVVbml0T2Zmc2V0RnJvbUxpbmVTdGFydBABEiQKIFVURjE2Q29kZVVuaXRPZmZzZXRGcm9tTGluZVN0YXJ0EAISJAogVVRGMzJDb2RlVW5pdE9mZnNldEZyb21MaW5lU3RhcnQQAyqUAQoKU3ltYm9sUm9sZRIZChVVbnNwZWNpZmllZFN5bWJvbFJvbGUQABIOCgpEZWZpbml0aW9uEAESCgoGSW1wb3J0EAISDwoLV3JpdGVBY2Nlc3MQBBIOCgpSZWFkQWNjZXNzEAgSDQoJR2VuZXJhdGVkEBASCAoEVGVzdBAgEhUKEUZvcndhcmREZWZpbml0aW9uEEAq6gYKClN5bnRheEtpbmQSGQoVVW5zcGVjaWZpZWRTeW50YXhLaW5kEAASCwoHQ29tbWVudBABEhgKFFB1bmN0dWF0aW9uRGVsaW1pdGVyEAISFgoSUHVuY3R1YXRpb25CcmFja2V0EAMSCwoHS2V5d29yZBAEEhkKEUlkZW50aWZpZXJLZXl3b3JkEAQaAggBEhYKEklkZW50aWZpZXJPcGVyYXRvchAFEg4KCklkZW50aWZpZXIQBhIVChFJZGVudGlmaWVyQnVpbHRpbhAHEhIKDklkZW50aWZpZXJOdWxsEAgSFgoSSWRlbnRpZmllckNvbnN0YW50EAkSGwoXSWRlbnRpZmllck11dGFibGVHbG9iYWwQChIXChNJZGVudGlmaWVyUGFyYW1ldGVyEAsSEwoPSWRlbnRpZmllckxvY2FsEAwSFgoSSWRlbnRpZmllclNoYWRvd2VkEA0SFwoTSWRlbnRpZmllck5hbWVzcGFjZRAOEhgKEElkZW50aWZpZXJNb2R1bGUQDhoCCAESFgoSSWRlbnRpZmllckZ1bmN0aW9uEA8SIAocSWRlbnRpZmllckZ1bmN0aW9uRGVmaW5pdGlvbhAQEhMKD0lkZW50aWZpZXJNYWNybxAREh0KGUlkZW50aWZpZXJNYWNyb0RlZmluaXRpb24QEhISCg5JZGVudGlmaWVyVHlwZRATEhkKFUlkZW50aWZpZXJCdWlsdGluVHlwZRAUEhcKE0lkZW50aWZpZXJBdHRyaWJ1dGUQFRIPCgtSZWdleEVzY2FwZRAWEhEKDVJlZ2V4UmVwZWF0ZWQQFxIRCg1SZWdleFdpbGRjYXJkEBgSEgoOUmVnZXhEZWxpbWl0ZXIQGRINCglSZWdleEpvaW4QGhIRCg1TdHJpbmdMaXRlcmFsEBsSFwoTU3RyaW5nTGl0ZXJhbEVzY2FwZRAcEhgKFFN0cmluZ0xpdGVyYWxTcGVjaWFsEB0SFAoQU3RyaW5nTGl0ZXJhbEtleRAeEhQKEENoYXJhY3RlckxpdGVyYWwQHxISCg5OdW1lcmljTGl0ZXJhbBAgEhIKDkJvb2xlYW5MaXRlcmFsECESBwoDVGFnECISEAoMVGFnQXR0cmlidXRlECMSEAoMVGFnRGVsaW1pdGVyECQaAhABKlYKCFNldmVyaXR5EhcKE1Vuc3BlY2lmaWVkU2V2ZXJpdHkQABIJCgVFcnJvchABEgsKB1dhcm5pbmcQAhIPCgtJbmZvcm1hdGlvbhADEggKBEhpbnQQBCpOCg1EaWFnbm9zdGljVGFnEhwKGFVuc3BlY2lmaWVkRGlhZ25vc3RpY1RhZxAAEg8KC1VubmVjZXNzYXJ5EAESDgoKRGVwcmVjYXRlZBACKpsKCghMYW5ndWFnZRIXChNVbnNwZWNpZmllZExhbmd1YWdlEAASCAoEQUJBUBA8EggKBEFwZXgQYBIHCgNBUEwQMRIHCgNBZGEQJxIICgRBZ2RhEC0SDAoIQXNjaWlEb2MQVhIMCghBc3NlbWJseRA6EgcKA0F3axBCEgcKA0JhdBBEEgoKBkJpYlRlWBBREgUKAUMQIhIJCgVDT0JPTBA7EgcKA0NQUBAjEgcKA0NTUxAaEgoKBkNTaGFycBABEgsKB0Nsb2p1cmUQCBIQCgxDb2ZmZWVzY3JpcHQQFRIOCgpDb21tb25MaXNwEAkSBwoDQ29xEC8SCAoEQ1VEQRBhEggKBERhcnQQAxIKCgZEZWxwaGkQORIICgREaWZmEFgSDgoKRG9ja2VyZmlsZRBQEgoKBkR5YWxvZxAyEgoKBkVsaXhpchAREgoKBkVybGFuZxASEgoKBkZTaGFycBAqEggKBEZpc2gQQRIICgRGbG93EBgSCwoHRm9ydHJhbhA4Eg4KCkdpdF9Db21taXQQWxIOCgpHaXRfQ29uZmlnEFkSDgoKR2l0X1JlYmFzZRBcEgYKAkdvECESCwoHR3JhcGhRTBBiEgoKBkdyb292eRAHEggKBEhUTUwQHhIICgRIYWNrEBQSDgoKSGFuZGxlYmFycxBaEgsKB0hhc2tlbGwQLBIJCgVJZHJpcxAuEgcKA0luaRBIEgUKAUoQMxIICgRKU09OEEsSCAoESmF2YRAGEg4KCkphdmFTY3JpcHQQFhITCg9KYXZhU2NyaXB0UmVhY3QQXRILCgdKc29ubmV0EEwSCQoFSnVsaWEQNxIMCghKdXN0ZmlsZRBtEgoKBktvdGxpbhAEEgkKBUxhVGVYEFMSCAoETGVhbhAwEggKBExlc3MQGxIHCgNMdWEQDBIICgRMdWF1EGwSDAoITWFrZWZpbGUQTxIMCghNYXJrZG93bhBUEgoKBk1hdGxhYhA0EgoKBk5pY2tlbBBuEgcKA05peBBNEgkKBU9DYW1sECkSDwoLT2JqZWN0aXZlX0MQJBIRCg1PYmplY3RpdmVfQ1BQECUSCgoGUGFzY2FsEGMSBwoDUEhQEBMSCQoFUExTUUwQRhIICgRQZXJsEA0SDgoKUG93ZXJTaGVsbBBDEgoKBlByb2xvZxBHEgwKCFByb3RvYnVmEGQSCgoGUHl0aG9uEA8SBQoBUhA2EgoKBlJhY2tldBALEggKBFJha3UQDhIJCgVSYXpvchA+EgkKBVJlcHJvEGYSCAoEUmVTVBBVEggKBFJ1YnkQEBIICgRSdXN0ECgSBwoDU0FTED0SCAoEU0NTUxAdEgcKA1NNTBArEgcKA1NRTBBFEggKBFNhc3MQHBIJCgVTY2FsYRAFEgoKBlNjaGVtZRAKEg8KC1NoZWxsU2NyaXB0EEASCwoHU2t5bGFyaxBOEgkKBVNsYW5nEGsSDAoIU29saWRpdHkQXxIKCgZTdmVsdGUQahIJCgVTd2lmdBACEgcKA1RjbBBlEggKBFRPTUwQSRIHCgNUZVgQUhIKCgZUaHJpZnQQZxIOCgpUeXBlU2NyaXB0EBcSEwoPVHlwZVNjcmlwdFJlYWN0EF4SCwoHVmVyaWxvZxBoEggKBFZIREwQaRIPCgtWaXN1YWxCYXNpYxA/EgcKA1Z1ZRAZEgsKB1dvbGZyYW0QNRIHCgNYTUwQHxIHCgNYU0wQIBIICgRZQU1MEEoSBwoDWmlnECZCLVorZ2l0aHViLmNvbS9zY2lwLWNvZGUvc2NpcC9iaW5kaW5ncy9nby9zY2lwL2IGcHJvdG8z"); + fileDesc("CgpzY2lwLnByb3RvEgRzY2lwIn8KBUluZGV4EiAKCG1ldGFkYXRhGAEgASgLMg4uc2NpcC5NZXRhZGF0YRIhCglkb2N1bWVudHMYAiADKAsyDi5zY2lwLkRvY3VtZW50EjEKEGV4dGVybmFsX3N5bWJvbHMYAyADKAsyFy5zY2lwLlN5bWJvbEluZm9ybWF0aW9uIp8BCghNZXRhZGF0YRImCgd2ZXJzaW9uGAEgASgOMhUuc2NpcC5Qcm90b2NvbFZlcnNpb24SIQoJdG9vbF9pbmZvGAIgASgLMg4uc2NpcC5Ub29sSW5mbxIUCgxwcm9qZWN0X3Jvb3QYAyABKAkSMgoWdGV4dF9kb2N1bWVudF9lbmNvZGluZxgEIAEoDjISLnNjaXAuVGV4dEVuY29kaW5nIjwKCFRvb2xJbmZvEgwKBG5hbWUYASABKAkSDwoHdmVyc2lvbhgCIAEoCRIRCglhcmd1bWVudHMYAyADKAkixQEKCERvY3VtZW50EhAKCGxhbmd1YWdlGAQgASgJEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSJQoLb2NjdXJyZW5jZXMYAiADKAsyEC5zY2lwLk9jY3VycmVuY2USKAoHc3ltYm9scxgDIAMoCzIXLnNjaXAuU3ltYm9sSW5mb3JtYXRpb24SDAoEdGV4dBgFIAEoCRIxChFwb3NpdGlvbl9lbmNvZGluZxgGIAEoDjIWLnNjaXAuUG9zaXRpb25FbmNvZGluZyJfCgZTeW1ib2wSDgoGc2NoZW1lGAEgASgJEh4KB3BhY2thZ2UYAiABKAsyDS5zY2lwLlBhY2thZ2USJQoLZGVzY3JpcHRvcnMYAyADKAsyEC5zY2lwLkRlc2NyaXB0b3IiOQoHUGFja2FnZRIPCgdtYW5hZ2VyGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoCSKCAgoKRGVzY3JpcHRvchIMCgRuYW1lGAEgASgJEhUKDWRpc2FtYmlndWF0b3IYAiABKAkSJwoGc3VmZml4GAMgASgOMhcuc2NpcC5EZXNjcmlwdG9yLlN1ZmZpeCKlAQoGU3VmZml4EhUKEVVuc3BlY2lmaWVkU3VmZml4EAASDQoJTmFtZXNwYWNlEAESDwoHUGFja2FnZRABGgIIARIICgRUeXBlEAISCAoEVGVybRADEgoKBk1ldGhvZBAEEhEKDVR5cGVQYXJhbWV0ZXIQBRINCglQYXJhbWV0ZXIQBhIICgRNZXRhEAcSCQoFTG9jYWwQCBIJCgVNYWNybxAJGgIQASLwCwoRU3ltYm9sSW5mb3JtYXRpb24SDgoGc3ltYm9sGAEgASgJEhUKDWRvY3VtZW50YXRpb24YAyADKAkSKQoNcmVsYXRpb25zaGlwcxgEIAMoCzISLnNjaXAuUmVsYXRpb25zaGlwEioKBGtpbmQYBSABKA4yHC5zY2lwLlN5bWJvbEluZm9ybWF0aW9uLktpbmQSFAoMZGlzcGxheV9uYW1lGAYgASgJEi8KF3NpZ25hdHVyZV9kb2N1bWVudGF0aW9uGAcgASgLMg4uc2NpcC5Eb2N1bWVudBIYChBlbmNsb3Npbmdfc3ltYm9sGAggASgJIvsJCgRLaW5kEhMKD1Vuc3BlY2lmaWVkS2luZBAAEhIKDkFic3RyYWN0TWV0aG9kEEISDAoIQWNjZXNzb3IQSBIJCgVBcnJheRABEg0KCUFzc2VydGlvbhACEhIKDkFzc29jaWF0ZWRUeXBlEAMSDQoJQXR0cmlidXRlEAQSCQoFQXhpb20QBRILCgdCb29sZWFuEAYSCQoFQ2xhc3MQBxILCgdDb25jZXB0EFYSDAoIQ29uc3RhbnQQCBIPCgtDb25zdHJ1Y3RvchAJEgwKCENvbnRyYWN0ED4SDgoKRGF0YUZhbWlseRAKEgwKCERlbGVnYXRlEEkSCAoERW51bRALEg4KCkVudW1NZW1iZXIQDBIJCgVFcnJvchA/EgkKBUV2ZW50EA0SDQoJRXh0ZW5zaW9uEFQSCAoERmFjdBAOEgkKBUZpZWxkEA8SCAoERmlsZRAQEgwKCEZ1bmN0aW9uEBESCgoGR2V0dGVyEBISCwoHR3JhbW1hchATEgwKCEluc3RhbmNlEBQSDQoJSW50ZXJmYWNlEBUSBwoDS2V5EBYSCAoETGFuZxAXEgkKBUxlbW1hEBgSCwoHTGlicmFyeRBAEgkKBU1hY3JvEBkSCgoGTWV0aG9kEBoSDwoLTWV0aG9kQWxpYXMQShISCg5NZXRob2RSZWNlaXZlchAbEhcKE01ldGhvZFNwZWNpZmljYXRpb24QQxILCgdNZXNzYWdlEBwSCQoFTWl4aW4QVRIMCghNb2RpZmllchBBEgoKBk1vZHVsZRAdEg0KCU5hbWVzcGFjZRAeEggKBE51bGwQHxIKCgZOdW1iZXIQIBIKCgZPYmplY3QQIRIMCghPcGVyYXRvchAiEgsKB1BhY2thZ2UQIxIRCg1QYWNrYWdlT2JqZWN0ECQSDQoJUGFyYW1ldGVyECUSEgoOUGFyYW1ldGVyTGFiZWwQJhILCgdQYXR0ZXJuECcSDQoJUHJlZGljYXRlECgSDAoIUHJvcGVydHkQKRIMCghQcm90b2NvbBAqEhIKDlByb3RvY29sTWV0aG9kEEQSFQoRUHVyZVZpcnR1YWxNZXRob2QQRRIPCgtRdWFzaXF1b3RlchArEhEKDVNlbGZQYXJhbWV0ZXIQLBIKCgZTZXR0ZXIQLRINCglTaWduYXR1cmUQLhISCg5TaW5nbGV0b25DbGFzcxBLEhMKD1NpbmdsZXRvbk1ldGhvZBBMEhQKEFN0YXRpY0RhdGFNZW1iZXIQTRIPCgtTdGF0aWNFdmVudBBOEg8KC1N0YXRpY0ZpZWxkEE8SEAoMU3RhdGljTWV0aG9kEFASEgoOU3RhdGljUHJvcGVydHkQURISCg5TdGF0aWNWYXJpYWJsZRBSEgoKBlN0cmluZxAwEgoKBlN0cnVjdBAxEg0KCVN1YnNjcmlwdBAvEgoKBlRhY3RpYxAyEgsKB1RoZW9yZW0QMxIRCg1UaGlzUGFyYW1ldGVyEDQSCQoFVHJhaXQQNRIPCgtUcmFpdE1ldGhvZBBGEggKBFR5cGUQNhINCglUeXBlQWxpYXMQNxINCglUeXBlQ2xhc3MQOBITCg9UeXBlQ2xhc3NNZXRob2QQRxIOCgpUeXBlRmFtaWx5EDkSEQoNVHlwZVBhcmFtZXRlchA6EgkKBVVuaW9uEDsSCQoFVmFsdWUQPBIMCghWYXJpYWJsZRA9IoIBCgxSZWxhdGlvbnNoaXASDgoGc3ltYm9sGAEgASgJEhQKDGlzX3JlZmVyZW5jZRgCIAEoCBIZChFpc19pbXBsZW1lbnRhdGlvbhgDIAEoCBIaChJpc190eXBlX2RlZmluaXRpb24YBCABKAgSFQoNaXNfZGVmaW5pdGlvbhgFIAEoCCJPCg9TaW5nbGVMaW5lUmFuZ2USDAoEbGluZRgBIAEoBRIXCg9zdGFydF9jaGFyYWN0ZXIYAiABKAUSFQoNZW5kX2NoYXJhY3RlchgDIAEoBSJmCg5NdWx0aUxpbmVSYW5nZRISCgpzdGFydF9saW5lGAEgASgFEhcKD3N0YXJ0X2NoYXJhY3RlchgCIAEoBRIQCghlbmRfbGluZRgDIAEoBRIVCg1lbmRfY2hhcmFjdGVyGAQgASgFItgDCgpPY2N1cnJlbmNlEhEKBXJhbmdlGAEgAygFQgIYARIyChFzaW5nbGVfbGluZV9yYW5nZRgIIAEoCzIVLnNjaXAuU2luZ2xlTGluZVJhbmdlSAASMAoQbXVsdGlfbGluZV9yYW5nZRgJIAEoCzIULnNjaXAuTXVsdGlMaW5lUmFuZ2VIABIOCgZzeW1ib2wYAiABKAkSFAoMc3ltYm9sX3JvbGVzGAMgASgFEh4KFm92ZXJyaWRlX2RvY3VtZW50YXRpb24YBCADKAkSJQoLc3ludGF4X2tpbmQYBSABKA4yEC5zY2lwLlN5bnRheEtpbmQSJQoLZGlhZ25vc3RpY3MYBiADKAsyEC5zY2lwLkRpYWdub3N0aWMSGwoPZW5jbG9zaW5nX3JhbmdlGAcgAygFQgIYARI8ChtzaW5nbGVfbGluZV9lbmNsb3NpbmdfcmFuZ2UYCiABKAsyFS5zY2lwLlNpbmdsZUxpbmVSYW5nZUgBEjoKGm11bHRpX2xpbmVfZW5jbG9zaW5nX3JhbmdlGAsgASgLMhQuc2NpcC5NdWx0aUxpbmVSYW5nZUgBQg0KC3R5cGVkX3JhbmdlQhcKFXR5cGVkX2VuY2xvc2luZ19yYW5nZSKAAQoKRGlhZ25vc3RpYxIgCghzZXZlcml0eRgBIAEoDjIOLnNjaXAuU2V2ZXJpdHkSDAoEY29kZRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEg4KBnNvdXJjZRgEIAEoCRIhCgR0YWdzGAUgAygOMhMuc2NpcC5EaWFnbm9zdGljVGFnKjEKD1Byb3RvY29sVmVyc2lvbhIeChpVbnNwZWNpZmllZFByb3RvY29sVmVyc2lvbhAAKkAKDFRleHRFbmNvZGluZxIbChdVbnNwZWNpZmllZFRleHRFbmNvZGluZxAAEggKBFVURjgQARIJCgVVVEYxNhACKqQBChBQb3NpdGlvbkVuY29kaW5nEh8KG1Vuc3BlY2lmaWVkUG9zaXRpb25FbmNvZGluZxAAEiMKH1VURjhDb2RlVW5pdE9mZnNldEZyb21MaW5lU3RhcnQQARIkCiBVVEYxNkNvZGVVbml0T2Zmc2V0RnJvbUxpbmVTdGFydBACEiQKIFVURjMyQ29kZVVuaXRPZmZzZXRGcm9tTGluZVN0YXJ0EAMqlAEKClN5bWJvbFJvbGUSGQoVVW5zcGVjaWZpZWRTeW1ib2xSb2xlEAASDgoKRGVmaW5pdGlvbhABEgoKBkltcG9ydBACEg8KC1dyaXRlQWNjZXNzEAQSDgoKUmVhZEFjY2VzcxAIEg0KCUdlbmVyYXRlZBAQEggKBFRlc3QQIBIVChFGb3J3YXJkRGVmaW5pdGlvbhBAKuoGCgpTeW50YXhLaW5kEhkKFVVuc3BlY2lmaWVkU3ludGF4S2luZBAAEgsKB0NvbW1lbnQQARIYChRQdW5jdHVhdGlvbkRlbGltaXRlchACEhYKElB1bmN0dWF0aW9uQnJhY2tldBADEgsKB0tleXdvcmQQBBIZChFJZGVudGlmaWVyS2V5d29yZBAEGgIIARIWChJJZGVudGlmaWVyT3BlcmF0b3IQBRIOCgpJZGVudGlmaWVyEAYSFQoRSWRlbnRpZmllckJ1aWx0aW4QBxISCg5JZGVudGlmaWVyTnVsbBAIEhYKEklkZW50aWZpZXJDb25zdGFudBAJEhsKF0lkZW50aWZpZXJNdXRhYmxlR2xvYmFsEAoSFwoTSWRlbnRpZmllclBhcmFtZXRlchALEhMKD0lkZW50aWZpZXJMb2NhbBAMEhYKEklkZW50aWZpZXJTaGFkb3dlZBANEhcKE0lkZW50aWZpZXJOYW1lc3BhY2UQDhIYChBJZGVudGlmaWVyTW9kdWxlEA4aAggBEhYKEklkZW50aWZpZXJGdW5jdGlvbhAPEiAKHElkZW50aWZpZXJGdW5jdGlvbkRlZmluaXRpb24QEBITCg9JZGVudGlmaWVyTWFjcm8QERIdChlJZGVudGlmaWVyTWFjcm9EZWZpbml0aW9uEBISEgoOSWRlbnRpZmllclR5cGUQExIZChVJZGVudGlmaWVyQnVpbHRpblR5cGUQFBIXChNJZGVudGlmaWVyQXR0cmlidXRlEBUSDwoLUmVnZXhFc2NhcGUQFhIRCg1SZWdleFJlcGVhdGVkEBcSEQoNUmVnZXhXaWxkY2FyZBAYEhIKDlJlZ2V4RGVsaW1pdGVyEBkSDQoJUmVnZXhKb2luEBoSEQoNU3RyaW5nTGl0ZXJhbBAbEhcKE1N0cmluZ0xpdGVyYWxFc2NhcGUQHBIYChRTdHJpbmdMaXRlcmFsU3BlY2lhbBAdEhQKEFN0cmluZ0xpdGVyYWxLZXkQHhIUChBDaGFyYWN0ZXJMaXRlcmFsEB8SEgoOTnVtZXJpY0xpdGVyYWwQIBISCg5Cb29sZWFuTGl0ZXJhbBAhEgcKA1RhZxAiEhAKDFRhZ0F0dHJpYnV0ZRAjEhAKDFRhZ0RlbGltaXRlchAkGgIQASpWCghTZXZlcml0eRIXChNVbnNwZWNpZmllZFNldmVyaXR5EAASCQoFRXJyb3IQARILCgdXYXJuaW5nEAISDwoLSW5mb3JtYXRpb24QAxIICgRIaW50EAQqTgoNRGlhZ25vc3RpY1RhZxIcChhVbnNwZWNpZmllZERpYWdub3N0aWNUYWcQABIPCgtVbm5lY2Vzc2FyeRABEg4KCkRlcHJlY2F0ZWQQAiqbCgoITGFuZ3VhZ2USFwoTVW5zcGVjaWZpZWRMYW5ndWFnZRAAEggKBEFCQVAQPBIICgRBcGV4EGASBwoDQVBMEDESBwoDQWRhECcSCAoEQWdkYRAtEgwKCEFzY2lpRG9jEFYSDAoIQXNzZW1ibHkQOhIHCgNBd2sQQhIHCgNCYXQQRBIKCgZCaWJUZVgQURIFCgFDECISCQoFQ09CT0wQOxIHCgNDUFAQIxIHCgNDU1MQGhIKCgZDU2hhcnAQARILCgdDbG9qdXJlEAgSEAoMQ29mZmVlc2NyaXB0EBUSDgoKQ29tbW9uTGlzcBAJEgcKA0NvcRAvEggKBENVREEQYRIICgREYXJ0EAMSCgoGRGVscGhpEDkSCAoERGlmZhBYEg4KCkRvY2tlcmZpbGUQUBIKCgZEeWFsb2cQMhIKCgZFbGl4aXIQERIKCgZFcmxhbmcQEhIKCgZGU2hhcnAQKhIICgRGaXNoEEESCAoERmxvdxAYEgsKB0ZvcnRyYW4QOBIOCgpHaXRfQ29tbWl0EFsSDgoKR2l0X0NvbmZpZxBZEg4KCkdpdF9SZWJhc2UQXBIGCgJHbxAhEgsKB0dyYXBoUUwQYhIKCgZHcm9vdnkQBxIICgRIVE1MEB4SCAoESGFjaxAUEg4KCkhhbmRsZWJhcnMQWhILCgdIYXNrZWxsECwSCQoFSWRyaXMQLhIHCgNJbmkQSBIFCgFKEDMSCAoESlNPThBLEggKBEphdmEQBhIOCgpKYXZhU2NyaXB0EBYSEwoPSmF2YVNjcmlwdFJlYWN0EF0SCwoHSnNvbm5ldBBMEgkKBUp1bGlhEDcSDAoISnVzdGZpbGUQbRIKCgZLb3RsaW4QBBIJCgVMYVRlWBBTEggKBExlYW4QMBIICgRMZXNzEBsSBwoDTHVhEAwSCAoETHVhdRBsEgwKCE1ha2VmaWxlEE8SDAoITWFya2Rvd24QVBIKCgZNYXRsYWIQNBIKCgZOaWNrZWwQbhIHCgNOaXgQTRIJCgVPQ2FtbBApEg8KC09iamVjdGl2ZV9DECQSEQoNT2JqZWN0aXZlX0NQUBAlEgoKBlBhc2NhbBBjEgcKA1BIUBATEgkKBVBMU1FMEEYSCAoEUGVybBANEg4KClBvd2VyU2hlbGwQQxIKCgZQcm9sb2cQRxIMCghQcm90b2J1ZhBkEgoKBlB5dGhvbhAPEgUKAVIQNhIKCgZSYWNrZXQQCxIICgRSYWt1EA4SCQoFUmF6b3IQPhIJCgVSZXBybxBmEggKBFJlU1QQVRIICgRSdWJ5EBASCAoEUnVzdBAoEgcKA1NBUxA9EggKBFNDU1MQHRIHCgNTTUwQKxIHCgNTUUwQRRIICgRTYXNzEBwSCQoFU2NhbGEQBRIKCgZTY2hlbWUQChIPCgtTaGVsbFNjcmlwdBBAEgsKB1NreWxhcmsQThIJCgVTbGFuZxBrEgwKCFNvbGlkaXR5EF8SCgoGU3ZlbHRlEGoSCQoFU3dpZnQQAhIHCgNUY2wQZRIICgRUT01MEEkSBwoDVGVYEFISCgoGVGhyaWZ0EGcSDgoKVHlwZVNjcmlwdBAXEhMKD1R5cGVTY3JpcHRSZWFjdBBeEgsKB1Zlcmlsb2cQaBIICgRWSERMEGkSDwoLVmlzdWFsQmFzaWMQPxIHCgNWdWUQGRILCgdXb2xmcmFtEDUSBwoDWE1MEB8SBwoDWFNMECASCAoEWUFNTBBKEgcKA1ppZxAmQi1aK2dpdGh1Yi5jb20vc2NpcC1jb2RlL3NjaXAvYmluZGluZ3MvZ28vc2NpcC9iBnByb3RvMw"); /** * Index represents a complete SCIP index for a workspace this is rooted at a @@ -1191,6 +1191,69 @@ export type Relationship = Message<"scip.Relationship"> & { export const RelationshipSchema: GenMessage = /*@__PURE__*/ messageDesc(file_scip, 8); +/** + * SingleLineRange represents a half-open [start, end) range within a single line. + * + * @generated from message scip.SingleLineRange + */ +export type SingleLineRange = Message<"scip.SingleLineRange"> & { + /** + * @generated from field: int32 line = 1; + */ + line: number; + + /** + * @generated from field: int32 start_character = 2; + */ + startCharacter: number; + + /** + * @generated from field: int32 end_character = 3; + */ + endCharacter: number; +}; + +/** + * Describes the message scip.SingleLineRange. + * Use `create(SingleLineRangeSchema)` to create a new message. + */ +export const SingleLineRangeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_scip, 9); + +/** + * MultiLineRange represents a half-open [start, end) range spanning multiple lines. + * + * @generated from message scip.MultiLineRange + */ +export type MultiLineRange = Message<"scip.MultiLineRange"> & { + /** + * @generated from field: int32 start_line = 1; + */ + startLine: number; + + /** + * @generated from field: int32 start_character = 2; + */ + startCharacter: number; + + /** + * @generated from field: int32 end_line = 3; + */ + endLine: number; + + /** + * @generated from field: int32 end_character = 4; + */ + endCharacter: number; +}; + +/** + * Describes the message scip.MultiLineRange. + * Use `create(MultiLineRangeSchema)` to create a new message. + */ +export const MultiLineRangeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_scip, 10); + /** * Occurrence associates a source position with a symbol and/or highlighting * information. @@ -1202,12 +1265,26 @@ export const RelationshipSchema: GenMessage = /*@__PURE__*/ */ export type Occurrence = Message<"scip.Occurrence"> & { /** - * Half-open [start, end) range of this occurrence. Must be exactly three or four - * elements: + * Deprecated: Use `single_line_range` or `multi_line_range` instead. * + * Half-open [start, end) range. Must be exactly three or four elements: + * - Three elements: `[startLine, startCharacter, endCharacter]` (single-line) * - Four elements: `[startLine, startCharacter, endLine, endCharacter]` - * - Three elements: `[startLine, startCharacter, endCharacter]`. The end line - * is inferred to have the same value as the start line. + * + * Historical note: the original draft of this schema had a `Range` message + * type with `start` and `end` fields of type `Position`, mirroring LSP. + * Benchmarks revealed that this encoding was inefficient and that we could + * reduce the total payload size of an index by 50% by using `repeated int32` + * instead. However, the lack of type safety led to the introduction of + * `single_line_range` and `multi_line_range` as typed alternatives. + * + * @generated from field: repeated int32 range = 1 [deprecated = true]; + * @deprecated + */ + range: number[]; + + /** + * Half-open [start, end) source range of this occurrence. * * It is allowed for the range to be empty (i.e. start==end). * @@ -1218,17 +1295,25 @@ export type Occurrence = Message<"scip.Occurrence"> & { * The 'character' value is interpreted based on the PositionEncoding for * the Document. * - * Historical note: the original draft of this schema had a `Range` message - * type with `start` and `end` fields of type `Position`, mirroring LSP. - * Benchmarks revealed that this encoding was inefficient and that we could - * reduce the total payload size of an index by 50% by using `repeated int32` - * instead. The `repeated int32` encoding is admittedly more embarrassing to - * work with in some programming languages but we hope the performance - * improvements make up for it. - * - * @generated from field: repeated int32 range = 1; - */ - range: number[]; + * @generated from oneof scip.Occurrence.typed_range + */ + typedRange: { + /** + * Range spanning a single line. + * + * @generated from field: scip.SingleLineRange single_line_range = 8; + */ + value: SingleLineRange; + case: "singleLineRange"; + } | { + /** + * Range spanning multiple lines. + * + * @generated from field: scip.MultiLineRange multi_line_range = 9; + */ + value: MultiLineRange; + case: "multiLineRange"; + } | { case: undefined; value?: undefined }; /** * (optional) The symbol that appears at this position. See @@ -1275,12 +1360,18 @@ export type Occurrence = Message<"scip.Occurrence"> & { diagnostics: Diagnostic[]; /** - * (optional) Using the same encoding as the sibling `range` field, half-open - * source range of the nearest non-trivial enclosing AST node. This range must - * enclose the `range` field. Example applications that make use of the - * enclosing_range field: + * Deprecated: Use `typed_enclosing_range` instead. + * + * @generated from field: repeated int32 enclosing_range = 7 [deprecated = true]; + * @deprecated + */ + enclosingRange: number[]; + + /** + * (optional) Half-open source range of the nearest non-trivial enclosing AST + * node. This range must enclose the occurrence range. Example applications: * - * - Call hierarchies: to determine what symbols are references from the body + * - Call hierarchies: to determine what symbols are referenced from the body * of a function * - Symbol outline: to display breadcrumbs from the cursor position to the * root of the file @@ -1328,9 +1419,21 @@ export type Occurrence = Message<"scip.Occurrence"> & { * ^^^^^^^^^^^^^ enclosing_range * ``` * - * @generated from field: repeated int32 enclosing_range = 7; - */ - enclosingRange: number[]; + * @generated from oneof scip.Occurrence.typed_enclosing_range + */ + typedEnclosingRange: { + /** + * @generated from field: scip.SingleLineRange single_line_enclosing_range = 10; + */ + value: SingleLineRange; + case: "singleLineEnclosingRange"; + } | { + /** + * @generated from field: scip.MultiLineRange multi_line_enclosing_range = 11; + */ + value: MultiLineRange; + case: "multiLineEnclosingRange"; + } | { case: undefined; value?: undefined }; }; /** @@ -1338,7 +1441,7 @@ export type Occurrence = Message<"scip.Occurrence"> & { * Use `create(OccurrenceSchema)` to create a new message. */ export const OccurrenceSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_scip, 9); + messageDesc(file_scip, 11); /** * Represents a diagnostic, such as a compiler error or warning, which should be @@ -1387,7 +1490,7 @@ export type Diagnostic = Message<"scip.Diagnostic"> & { * Use `create(DiagnosticSchema)` to create a new message. */ export const DiagnosticSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_scip, 10); + messageDesc(file_scip, 12); /** * @generated from enum scip.ProtocolVersion diff --git a/docs/scip.md b/docs/scip.md index 607a91c1..0f4b49d0 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -149,6 +149,20 @@ function in `IndexVisitor` and update `ParseStreaming`. +### MultiLineRange + +MultiLineRange represents a half-open [start, end) range spanning multiple lines. + +| Name | Type | Description | +| ---- | ---- | ----------- | +| **start_line** | int32 | +| **start_character** | int32 | +| **end_line** | int32 | +| **end_character** | int32 | + + + + ### Occurrence Occurrence associates a source position with a symbol and/or highlighting @@ -159,39 +173,34 @@ across occurrences into a single occurrence to reduce payload sizes. | Name | Type | Description | | ---- | ---- | ----------- | -| repeated **range** | int32 | Half-open [start, end) range of this occurrence. Must be exactly three or four elements: +| repeated **range** | int32 | Deprecated: Use `single_line_range` or `multi_line_range` instead. +| **single_line_range** | SingleLineRange | Range spanning a single line. +| **multi_line_range** | MultiLineRange | Range spanning multiple lines. | **symbol** | string | (optional) The symbol that appears at this position. See `SymbolInformation.symbol` for how to format symbols as strings. | **symbol_roles** | int32 | (optional) Bitset containing `SymbolRole`s in this occurrence. See `SymbolRole`'s documentation for how to read and write this field. | repeated **override_documentation** | string | (optional) CommonMark-formatted documentation for this specific range. If empty, the `Symbol.documentation` field is used instead. One example where this field might be useful is when the symbol represents a generic function (with abstract type parameters such as `List`) and at this occurrence we know the exact values (such as `List`). | **syntax_kind** | SyntaxKind | (optional) What syntax highlighting class should be used for this range? | repeated **diagnostics** | Diagnostic | (optional) Diagnostics that have been reported for this specific range. -| repeated **enclosing_range** | int32 | (optional) Using the same encoding as the sibling `range` field, half-open source range of the nearest non-trivial enclosing AST node. This range must enclose the `range` field. Example applications that make use of the enclosing_range field: +| repeated **enclosing_range** | int32 | Deprecated: Use `typed_enclosing_range` instead. +| **single_line_enclosing_range** | SingleLineRange | +| **multi_line_enclosing_range** | MultiLineRange | Additional notes on **range**: -Half-open [start, end) range of this occurrence. Must be exactly three or four -elements: +Deprecated: Use `single_line_range` or `multi_line_range` instead. +Half-open [start, end) range. Must be exactly three or four elements: +- Three elements: `[startLine, startCharacter, endCharacter]` (single-line) - Four elements: `[startLine, startCharacter, endLine, endCharacter]` -- Three elements: `[startLine, startCharacter, endCharacter]`. The end line - is inferred to have the same value as the start line. - -It is allowed for the range to be empty (i.e. start==end). - -Line numbers and characters are always 0-based. Make sure to increment the -line/character values before displaying them in an editor-like UI because -editors conventionally use 1-based numbers. - -The 'character' value is interpreted based on the PositionEncoding for -the Document. Historical note: the original draft of this schema had a `Range` message type with `start` and `end` fields of type `Position`, mirroring LSP. Benchmarks revealed that this encoding was inefficient and that we could reduce the total payload size of an index by 50% by using `repeated int32` -instead. The `repeated int32` encoding is admittedly more embarrassing to -work with in some programming languages but we hope the performance -improvements make up for it. +instead. However, the lack of type safety led to the introduction of +`single_line_range` and `multi_line_range` as typed alternatives. + + @@ -210,60 +219,7 @@ which commonly allow for type-changing assignment. -Additional notes on **enclosing_range**: - -(optional) Using the same encoding as the sibling `range` field, half-open -source range of the nearest non-trivial enclosing AST node. This range must -enclose the `range` field. Example applications that make use of the -enclosing_range field: -- Call hierarchies: to determine what symbols are references from the body - of a function -- Symbol outline: to display breadcrumbs from the cursor position to the - root of the file -- Expand selection: to select the nearest enclosing AST node. -- Highlight range: to indicate the AST expression that is associated with a - hover popover - -For definition occurrences, the enclosing range should indicate the -start/end bounds of the entire definition AST node, including -documentation. -``` -const n = 3 - ^ range -^^^^^^^^^^^ enclosing_range - -/** Parses the string into something */ -^ enclosing_range start --------------------------------------| -function parse(input string): string { | - ^^^^^ range | - return input.slice(n) | -} | -^ enclosing_range end <---------------------------------------| -``` - -Any attributes/decorators/attached macros should also be part of the -enclosing range. - -```python -@cache -^ enclosing_range start---------------------| -def factorial(n): | - return n * factorial(n-1) if n else 1 | -< enclosing_range end-----------------------| - -``` - -For reference occurrences, the enclosing range should indicate the start/end -bounds of the parent expression. -``` -const a = a.b - ^ range - ^^^ enclosing_range -const b = a.b(41).f(42).g(43) - ^ range - ^^^^^^^^^^^^^ enclosing_range -``` ### Package @@ -312,6 +268,18 @@ symbol to the matching symbol in mixins. Update registerInverseRelationships on adding a new field here. +### SingleLineRange + +SingleLineRange represents a half-open [start, end) range within a single line. + +| Name | Type | Description | +| ---- | ---- | ----------- | +| **line** | int32 | +| **start_character** | int32 | +| **end_character** | int32 | + + + ### Symbol Symbol is similar to a URI, it identifies a class, method, or a local diff --git a/scip.proto b/scip.proto index f6c64ae4..26bf9921 100644 --- a/scip.proto +++ b/scip.proto @@ -620,18 +620,42 @@ enum SyntaxKind { TagDelimiter = 36; } +// SingleLineRange represents a half-open [start, end) range within a single line. +message SingleLineRange { + int32 line = 1; + int32 start_character = 2; + int32 end_character = 3; +} + +// MultiLineRange represents a half-open [start, end) range spanning multiple lines. +message MultiLineRange { + int32 start_line = 1; + int32 start_character = 2; + int32 end_line = 3; + int32 end_character = 4; +} + // Occurrence associates a source position with a symbol and/or highlighting // information. // // If possible, indexers should try to bundle logically related information // across occurrences into a single occurrence to reduce payload sizes. message Occurrence { - // Half-open [start, end) range of this occurrence. Must be exactly three or four - // elements: + // Deprecated: Use `single_line_range` or `multi_line_range` instead. // + // Half-open [start, end) range. Must be exactly three or four elements: + // - Three elements: `[startLine, startCharacter, endCharacter]` (single-line) // - Four elements: `[startLine, startCharacter, endLine, endCharacter]` - // - Three elements: `[startLine, startCharacter, endCharacter]`. The end line - // is inferred to have the same value as the start line. + // + // Historical note: the original draft of this schema had a `Range` message + // type with `start` and `end` fields of type `Position`, mirroring LSP. + // Benchmarks revealed that this encoding was inefficient and that we could + // reduce the total payload size of an index by 50% by using `repeated int32` + // instead. However, the lack of type safety led to the introduction of + // `single_line_range` and `multi_line_range` as typed alternatives. + repeated int32 range = 1 [deprecated = true]; + + // Half-open [start, end) source range of this occurrence. // // It is allowed for the range to be empty (i.e. start==end). // @@ -641,15 +665,12 @@ message Occurrence { // // The 'character' value is interpreted based on the PositionEncoding for // the Document. - // - // Historical note: the original draft of this schema had a `Range` message - // type with `start` and `end` fields of type `Position`, mirroring LSP. - // Benchmarks revealed that this encoding was inefficient and that we could - // reduce the total payload size of an index by 50% by using `repeated int32` - // instead. The `repeated int32` encoding is admittedly more embarrassing to - // work with in some programming languages but we hope the performance - // improvements make up for it. - repeated int32 range = 1; + oneof typed_range { + // Range spanning a single line. + SingleLineRange single_line_range = 8; + // Range spanning multiple lines. + MultiLineRange multi_line_range = 9; + } // (optional) The symbol that appears at this position. See // `SymbolInformation.symbol` for how to format symbols as strings. string symbol = 2; @@ -669,12 +690,13 @@ message Occurrence { SyntaxKind syntax_kind = 5; // (optional) Diagnostics that have been reported for this specific range. repeated Diagnostic diagnostics = 6; - // (optional) Using the same encoding as the sibling `range` field, half-open - // source range of the nearest non-trivial enclosing AST node. This range must - // enclose the `range` field. Example applications that make use of the - // enclosing_range field: + // Deprecated: Use `typed_enclosing_range` instead. + repeated int32 enclosing_range = 7 [deprecated = true]; + + // (optional) Half-open source range of the nearest non-trivial enclosing AST + // node. This range must enclose the occurrence range. Example applications: // - // - Call hierarchies: to determine what symbols are references from the body + // - Call hierarchies: to determine what symbols are referenced from the body // of a function // - Symbol outline: to display breadcrumbs from the cursor position to the // root of the file @@ -721,7 +743,10 @@ message Occurrence { // ^ range // ^^^^^^^^^^^^^ enclosing_range // ``` - repeated int32 enclosing_range = 7; + oneof typed_enclosing_range { + SingleLineRange single_line_enclosing_range = 10; + MultiLineRange multi_line_enclosing_range = 11; + } } // Represents a diagnostic, such as a compiler error or warning, which should be