Is there somewhere in the documentation that provides clear table describing which numbers in the path correlate to which types? I have found some inconsistencies with what I had thought. Any link to a table like this?
On Friday, September 9, 2022 at 4:14:46 PM UTC-4 [email protected] wrote: > Ah, no, there is no magic. I only meant that if you wanted to have one > part of your code match up location data to descriptor object and attach > the location info directly, you could do it in a custom option. There's no > getting around the actual awkward stepping through the paths to match them > up. > > On Fri, Sep 9, 2022 at 2:08 PM Kyle Papili <[email protected]> wrote: > >> Yes, the "hacky method" proposed by shaod@ is basically what I am doing >> currently. It just seems to be unnecessarily complicated. >> >> What do you mean "store the location object in a custom option extension >> on the object in question". How would I store the location object as a >> custom extension of the object without knowing the object? If I knew the >> object that that location corresponded to then my problem would be >> resolved. The only way to match up location objects to Proto objects from >> what I've found is the hacky path traversal suggested by Shaod@. Am I >> missing something here? >> >> On Friday, September 9, 2022 at 4:02:05 PM UTC-4 [email protected] wrote: >> >>> Unfortunately, the only way to know the path to the Location object is >>> to know the path to the descriptor proto object in question. >>> Alternatively, you could iterate through all the sourcecodeinfo elements >>> and use their paths to navigate to the correct descriptor object. >>> One technique I have used in the past is to iterate through all the >>> sourcecodeinfo elements and store the location object in a custom option >>> extension on the object in question (or the parent object if it something >>> that doesn't have options). >>> >>> Also, as shaod@ points out, some comments will not show up in >>> sourcecodeinfo. >>> >>> On Wednesday, September 7, 2022 at 4:11:32 PM UTC-6 [email protected] >>> wrote: >>> >>>> First keep in mind that some comments are detached and thus ignored by >>>> SourceCodeInfo. >>>> >>>> That being said, IIRC I've seen a very hacky way to achieve similar >>>> goals: >>>> https://github.com/protocolbuffers/protobuf/blob/3322c0b92a5001ade92608d75891d63c749d624d/src/google/protobuf/compiler/parser_unittest.cc#L2472 >>>> On Thursday, September 1, 2022 at 7:16:52 AM UTC-7 [email protected] >>>> wrote: >>>> >>>>> I'm parsing a large number of protobuf files and am using the Source >>>>> Code Info descriptor to extract comment data from the source files as >>>>> well. >>>>> I currently use the FileDescriptorProto.ListFields() method to extract >>>>> the >>>>> DescriptorProto objects I care about as well as the SourceCodeInfo. >>>>> >>>>> To my knowledge, the only way to pair up Location fields with the >>>>> corresponding objects is via the path attribute >>>>> <https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.descriptor.pb>. >>>>> >>>>> This is fine; except for the fact that involves me manually stepping >>>>> through said path to land at my parsed Protobuf Object. This gets >>>>> complicated when dealing with layers of nested_types and I am convinced >>>>> there must be a way for me to extract the path from the particular >>>>> DescriptorProto Object and then use that to match up the object with the >>>>> path specified in the corresponding Location field. >>>>> >>>>> In short: How can I easily pair up DescriptorProto objects with the >>>>> Location objects that correspond to them? Specifically for comment >>>>> parsing >>>>> purposes. >>>>> >>>> -- >> You received this message because you are subscribed to the Google Groups >> "Protocol Buffers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/protobuf/0c8d36db-53f9-4179-942f-201cd205b9dfn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/protobuf/0c8d36db-53f9-4179-942f-201cd205b9dfn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > Jerry Berg | Software Engineer | [email protected] | 720-808-1188 > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/e97868df-f57d-45bf-b4f5-eeb0e2f4eed3n%40googlegroups.com.
