diff options
| author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-11-24 23:01:07 -0500 |
|---|---|---|
| committer | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-11-25 23:46:21 -0500 |
| commit | 6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e (patch) | |
| tree | 7f2bf25ca5456b23304295dba8fe0005e85a5c10 /lua/lspconfig/clangd.lua | |
| parent | fix: only set cmd_cwd if filepath exists (#1485) (diff) | |
| download | nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.gz nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.bz2 nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.lz nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.xz nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.zst nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.zip | |
feat: expose configs
Diffstat (limited to 'lua/lspconfig/clangd.lua')
| -rw-r--r-- | lua/lspconfig/clangd.lua | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/lua/lspconfig/clangd.lua b/lua/lspconfig/clangd.lua deleted file mode 100644 index 7fe9ada1..00000000 --- a/lua/lspconfig/clangd.lua +++ /dev/null @@ -1,76 +0,0 @@ -local configs = require 'lspconfig/configs' -local util = require 'lspconfig/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, - util.compat_handler(function(err, result) - if err then - error(tostring(err)) - end - if not result then - print 'Corresponding file cannot 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') - -local default_capabilities = vim.tbl_deep_extend( - 'force', - util.default_config.capabilities or vim.lsp.protocol.make_client_capabilities(), - { - textDocument = { - completion = { - editsNearCursor = true, - }, - }, - offsetEncoding = { 'utf-8', 'utf-16' }, - } -) - -configs.clangd = { - default_config = { - cmd = { 'clangd', '--background-index' }, - filetypes = { 'c', 'cpp', 'objc', 'objcpp' }, - root_dir = function(fname) - local filename = util.path.is_absolute(fname) and fname or util.path.join(vim.loop.cwd(), fname) - return root_pattern(filename) - end, - single_file_support = true, - capabilities = default_capabilities, - }, - commands = { - ClangdSwitchSourceHeader = { - function() - switch_source_header(0) - end, - description = 'Switch between source/header', - }, - }, - docs = { - description = [[ -https://clangd.llvm.org/installation.html - -**NOTE:** Clang >= 9 is recommended! See [this issue for more](https://github.com/neovim/nvim-lsp/issues/23). - -clangd relies on a [JSON compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html) specified -as compile_commands.json or, for simpler projects, a compile_flags.txt. -For details on how to automatically generate one using CMake look [here](https://cmake.org/cmake/help/latest/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html). Alternatively, you can use [Bear](https://github.com/rizsotto/Bear). -]], - default_config = { - root_dir = [[root_pattern("compile_commands.json", "compile_flags.txt", ".git") or dirname]], - capabilities = [[default capabilities, with offsetEncoding utf-8]], - }, - }, -} - -configs.clangd.switch_source_header = switch_source_header |
