{"id":51592824,"url":"https://github.com/lasorda/protobuf-language-server","last_synced_at":"2026-07-11T16:00:43.829Z","repository":{"id":45764810,"uuid":"499837995","full_name":"lasorda/protobuf-language-server","owner":"lasorda","description":"A language server implementation for Google Protocol Buffers","archived":false,"fork":false,"pushed_at":"2026-02-03T08:35:19.000Z","size":17054,"stargazers_count":123,"open_issues_count":0,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-06-11T18:25:24.549Z","etag":null,"topics":["coc","cpp","google-protobuf","google-protocol-buffers","language-server-protocol","protobuf","vim-extension","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lasorda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-04T13:43:50.000Z","updated_at":"2026-06-10T21:46:15.000Z","dependencies_parsed_at":"2024-07-05T13:43:11.837Z","dependency_job_id":"5e870008-bc10-43ee-b406-398fea738551","html_url":"https://github.com/lasorda/protobuf-language-server","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/lasorda/protobuf-language-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasorda%2Fprotobuf-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasorda%2Fprotobuf-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasorda%2Fprotobuf-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasorda%2Fprotobuf-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lasorda","download_url":"https://codeload.github.com/lasorda/protobuf-language-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasorda%2Fprotobuf-language-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35367446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coc","cpp","google-protobuf","google-protocol-buffers","language-server-protocol","protobuf","vim-extension","vscode-extension"],"created_at":"2026-07-11T16:00:33.582Z","updated_at":"2026-07-11T16:00:43.824Z","avatar_url":"https://github.com/lasorda.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# protobuf-language-server\n\nA language server implementation for Google Protocol Buffers\n\nI created this tool primarily to streamline my own workflow. While some implementations might not be optimal and the features may feel incomplete, it serves my needs well enough as it is. That said, if you've got a better solution in mind, I'd be happy to switch to yours.\n\nRust Version: https://github.com/lasorda/protobuf-lsp\n## installation\n\nBuild binary\n\n```sh\ngo clean -modcache\n# install to `go env GOPATH`\ngo install github.com/lasorda/protobuf-language-server@master\n```\n\nAdd it to your PATH\n\nConfigure vim/nvim\n\nUsing [coc.nvim](https://github.com/neoclide/coc.nvim), add it to `:CocConfig`\n\n```json\n    \"languageserver\": {\n        \"proto\" :{\n            \"command\": \"protobuf-language-server\",\n            \"filetypes\": [\"proto\", \"cpp\"],\n            \"settings\": {\n                \"additional-proto-dirs\": [ ]\n            }\n        }\n    }\n```\n\nUsing [lsp-config.nvim](https://github.com/neovim/nvim-lspconfig)\n\n```lua\n-- first we need to configure our custom server\nlocal configs = require('lspconfig.configs')\nlocal util = require('lspconfig.util')\n\nconfigs.protobuf_language_server = {\n    default_config = {\n        cmd = { 'path/to/protobuf-language-server' },\n        filetypes = { 'proto', 'cpp' },\n        root_dir = util.root_pattern('.git'),\n        single_file_support = true,\n        settings = {\n            [\"additional-proto-dirs\"] = [\n                -- path to additional protobuf directories\n                -- \"vendor\",\n                -- \"third_party\",\n            ]\n        },\n    }\n}\n\n-- then we can continue as we do with official servers\nlocal lspconfig = require('lspconfig')\nlspconfig.protobuf_language_server.setup {\n    -- your custom stuff\n}\n```\n\nif you use vscode, see [vscode-extension/README.md](./vscode-extension/README.md)\n\n## features\n\n1. Parsing document symbols\n1. Go to definition\n1. Find references\n1. Symbol definition on hover\n1. Format file with clang-format\n1. Code completion\n1. Jump from protobuf's cpp header to proto define (only global message and enum)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasorda%2Fprotobuf-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flasorda%2Fprotobuf-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasorda%2Fprotobuf-language-server/lists"}