|
|
@@ -0,0 +1,52 @@
|
|
|
+// Copyright 2019 The Go Authors. All rights reserved.
|
|
|
+// Use of this source code is governed by a BSD-style
|
|
|
+// license that can be found in the LICENSE file.
|
|
|
+
|
|
|
+package protoreflect
|
|
|
+
|
|
|
+// SourceLocations is a list of source locations.
|
|
|
+type SourceLocations interface {
|
|
|
+ // Len reports the number of source locations in the proto file.
|
|
|
+ Len() int
|
|
|
+ // Get returns the ith SourceLocation. It panics if out of bounds.
|
|
|
+ Get(int) SourceLocation
|
|
|
+
|
|
|
+ doNotImplement
|
|
|
+
|
|
|
+ // TODO: Add ByPath and ByDescriptor helper methods.
|
|
|
+}
|
|
|
+
|
|
|
+// SourceLocation describes a source location and
|
|
|
+// corresponds with the google.protobuf.SourceCodeInfo.Location message.
|
|
|
+type SourceLocation struct {
|
|
|
+ // Path is the path to the declaration from the root file descriptor.
|
|
|
+ // The contents of this slice must not be mutated.
|
|
|
+ Path SourcePath
|
|
|
+
|
|
|
+ // StartLine and StartColumn are the zero-indexed starting location
|
|
|
+ // in the source file for the declaration.
|
|
|
+ StartLine, StartColumn int
|
|
|
+ // EndLine and EndColumn are the zero-indexed ending location
|
|
|
+ // in the source file for the declaration.
|
|
|
+ // In the descriptor.proto, the end line may be omitted if it is identical
|
|
|
+ // to the start line. Here, it is always populated.
|
|
|
+ EndLine, EndColumn int
|
|
|
+
|
|
|
+ // LeadingDetachedComments are the leading detached comments
|
|
|
+ // for the declaration. The contents of this slice must not be mutated.
|
|
|
+ LeadingDetachedComments []string
|
|
|
+ // LeadingComments is the leading attached comment for the declaration.
|
|
|
+ LeadingComments string
|
|
|
+ // TrailingComments is the trailing attached comment for the declaration.
|
|
|
+ TrailingComments string
|
|
|
+}
|
|
|
+
|
|
|
+// SourcePath identifies a part of a file descriptor for a source location.
|
|
|
+// The SourcePath is a sequence of either field numbers or indexes into
|
|
|
+// a repeated field that form a path starting from the root file descriptor.
|
|
|
+//
|
|
|
+// See google.protobuf.SourceCodeInfo.Location.path.
|
|
|
+type SourcePath []int32
|
|
|
+
|
|
|
+// TODO: Add SourcePath.String method to pretty-print the path. For example:
|
|
|
+// ".message_type[6].nested_type[15].field[3]"
|