aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/clangd.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-11-24 23:01:07 -0500
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-11-25 23:46:21 -0500
commit6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e (patch)
tree7f2bf25ca5456b23304295dba8fe0005e85a5c10 /lua/lspconfig/clangd.lua
parentfix: only set cmd_cwd if filepath exists (#1485) (diff)
downloadnvim-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.lua76
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