question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Support for Proto3 well known types

See original GitHub issue

First of all, thanks for this plugin, very useful.

Is your feature request related to a problem? Please describe. I am using proto3, and importing some well know types. It seems that these are not currently supported out of box, since I am getting a “File not found” error on the import, and an “Unresolved reference” error on all usages.

Describe the solution you’d like It would be great if protobuf/src/google/protobuf/ was automatically added as an include path of this plugin.

Additional context

Example:

syntax = "proto3";

import "google/protobuf/timestamp.proto";

package myproto;

message MyMessage {
    google.protobuf.Timestamp created_at = 1;
}

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:1
  • Comments:11

github_iconTop GitHub Comments

2reactions
ethierycommented, Mar 21, 2019

A few other experiments.

Opening /hello_go with IntelliJ

This does not seem to be a Goland specific issue per se, since repeating the same 3 steps with IntelliJ instead of Goland leads to the same result. image

Opening /hello_java with IntelliJ

Interestingly, repeating the same 3 steps with IntelliJ and with the hello_java folder does not lead to any issue: image

However, inspecting the project structure or navigating to the declaration of google.protobuf.timestamp show that the plugin picks it up not from the bundled protobuf distribution, but from the "com.google.protobuf:protobuf-java:3.7.0" gradle dependency required for the generated java code to compile. image

Opening / with Golang

Finally, opening the root folder of the repo with Goland works fine: image

And in that case, the bundled protobuf distribution appears in /.idea/MRE_protobuf_plugin.iml:

<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
  <component name="Go" enabled="true" />
  <component name="NewModuleRootManager">
    <content url="file://$MODULE_DIR$" />
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Bundled Protobuf Distribution" level="application" />
  </component>
</module>

Conclusion

So to me, the issue seems to stem from the fact that both IntelliJ and Goland only include the bundled protobuf distribution if there is a .proto file within the project.

I hope that helps, thanks for the time you are spending on this.

0reactions
kshchepanovskyicommented, Jul 29, 2020

This issue is closed as plugin is not supported anymore. Please switch to https://github.com/jvolkman/intellij-protobuf-editor.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Google.Protobuf.WellKnownTypes Namespace
SourceContext represents information about the source of a protobuf element, like the file in which it is defined. Wrapper message for string ....
Read more >
Don't Do It All Yourself: Exploiting gRPC Well Known Types in ...
Here's what I need to import two well known types, timestamp and empty in my .proto file: import "google/protobuf/timestamp.proto"; ...
Read more >
What are well-known types? - Google Groups
The well-known types all have different purposes. The wrapper types allow for optional primitive fields, Any is a replacement for proto2 extensions, and...
Read more >
Protobuf scalar data types - gRPC for WCF developers
Protobuf doesn't directly support the Guid type, known as UUID on other platforms. There's no well-known type for it. The best approach is...
Read more >
Protocol Buffers v3 | Cloud APIs
It supports both binary and text wire formats, and works with many different wire protocols on different platforms. Proto3 is the latest version...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found