diff options
| author | Hirokazu Hata <h.hata.ai.t@gmail.com> | 2020-06-09 12:06:45 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-09 12:06:45 +0900 |
| commit | 8e95e496a86bd6766d2274d68798a5e6b8197ea5 (patch) | |
| tree | 4a924941dc5984ff2dc6df8d03fdce4b2431cecd /lua | |
| parent | [docgen] Update README.md (diff) | |
| parent | Add link to extension (diff) | |
| download | nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.tar nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.tar.gz nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.tar.bz2 nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.tar.lz nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.tar.xz nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.tar.zst nvim-lspconfig-8e95e496a86bd6766d2274d68798a5e6b8197ea5.zip | |
Merge pull request #263 from Shatur95/add-clangd-switch-source-header
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim_lsp/clangd.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lua/nvim_lsp/clangd.lua b/lua/nvim_lsp/clangd.lua index 24b8f2c8..47e00741 100644 --- a/lua/nvim_lsp/clangd.lua +++ b/lua/nvim_lsp/clangd.lua @@ -1,6 +1,17 @@ local configs = require 'nvim_lsp/configs' local util = require 'nvim_lsp/util' +-- https://clangd.llvm.org/extensions.html#switch-between-sourceheader +local function switch_source_header(bufnr) + bufnr = util.validate_bufnr(bufnr) + local params = { uri = vim.uri_from_bufnr(bufnr) } + vim.lsp.buf_request(bufnr, 'textDocument/switchSourceHeader', params, function(err, _, result) + if err then error(tostring(err)) end + if not result then print ("Corresponding file can’t be determined") return end + vim.api.nvim_command('edit '..vim.uri_to_fname(result)) + end) +end + local root_pattern = util.root_pattern("compile_commands.json", "compile_flags.txt", ".git") configs.clangd = { default_config = util.utf8_config { @@ -11,6 +22,21 @@ configs.clangd = { or util.path.join(vim.loop.cwd(), fname) return root_pattern(filename) or util.path.dirname(filename) end; + capabilities = { + textDocument = { + completion = { + editsNearCursor = true + } + } + }, + }; + commands = { + ClangdSwitchSourceHeader = { + function() + switch_source_header(0) + end; + description = "Switch between source/header"; + }; }; docs = { description = [[ @@ -28,4 +54,6 @@ as compile_commands.json or, for simpler projects, a compile_flags.txt. }; }; } + +configs.clangd.switch_source_header = switch_source_header -- vim:et ts=2 sw=2 |
