I've been giving buf-language-server a try.
I added it to my ~/.config/helix/languages.toml:
[[language]]
name = "protobuf"
scope = "source.proto"
injection-regex = "protobuf"
file-types = ["proto"]
roots = []
comment-token = "//"
language-server = { command = "bufls", args = [ "serve" ] }
indent = { tab-width = 2, unit = " " }
I typed gd on a symbol. For some reason, it takes 3-5 seconds for it to jump, even if the symbol is in the same file?