This plugin has been adopted by JetBrains and now lives primarly at https://github.com/JetBrains/intellij-plugins/tree/master/protobuf. Future releases will be bundled with certain versions of JetBrains' tools. As such, this repository likely won't see new updates. Issue tracking and other stuff is still in a bit of a transition phase.
IntelliJ plugin for editing Google Protocol Buffers. Features include:
proto2
and proto3
This is a fork of google/intellij-protocol-buffer-editor which was released unsupported.
Install from the JetBrains plugin repository, or:
This project uses Bazel.
To build protobuf-editor.jar
:
bazel build //plugin
To run tests:
bazel test //...
By default, the collection of project source roots is used as the protobuf search path, and the protobuf descriptor and well-known type files are provided by the plugin JAR. These paths can be customized in the editor's language settings:
To customize:
Configure automatically
Prefix
column can be used to specify an import prefix for the path. So, for example, if the path is
src/protos
and the prefix is foo/bar
, the file at src/protos/mine.proto
would be imported as
foo/bar/mine.proto
.Protobuf Text Format is most commonly used to specify long-form option values in .proto
files. For example, as seen
in the GRPC ecosystem:
This plugin also supports standalone text format files with a .textproto
or .pb
. extension. Text formant by default
does not provide a way to associate a file with its schema (a message
in a .proto
file). But the plugin supports
the following comments in a text proto file:
# proto-file: path/to/file.proto
# proto-message: SomeMessage
# proto-import: path/to/file_with_extensions.proto
# proto-import: path/to/another_file_with_extensions.proto
foo: bar
Filenames are relative to configured roots (see Settings). The proto-message
name is scoped
relatively to the package declared in the proto-file
file. proto-message
follows the same resolution rules as type
names in .proto
files.