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.

Reply via email to