forked from neovim/nvim-lspconfig
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuf_ls.lua
More file actions
37 lines (36 loc) · 1.08 KB
/
buf_ls.lua
File metadata and controls
37 lines (36 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
--- @brief
--- https://github.com/bufbuild/buf
---
--- buf lsp included in the cli itself
---
--- buf lsp is a Protobuf language server compatible with Buf modules and workspaces
---
--- buf lsp also supports Buf configuration files. The `buf-config` filetype is not
--- detected automatically; register it manually (see below) or override the filetypes:
---
--- ```lua
--- vim.filetype.add({
--- filename = {
--- ['buf.yaml'] = 'buf-config',
--- ['buf.gen.yaml'] = 'buf-config',
--- ['buf.policy.yaml'] = 'buf-config',
--- ['buf.lock'] = 'buf-config',
--- },
--- })
--- ```
---
--- Optionally, tell treesitter to treat buf config files as YAML for syntax highlighting:
---
--- ```lua
--- vim.treesitter.language.register('yaml', 'buf-config')
--- ```
---@type vim.lsp.Config
return {
cmd = { 'buf', 'lsp', 'serve', '--log-format=text' },
filetypes = { 'proto', 'buf-config' },
root_markers = { 'buf.yaml', '.git' },
reuse_client = function(client, config)
-- `buf lsp serve` is meant to be used with multiple workspaces.
return client.name == config.name
end,
}