浏览代码

[LSP] clang - Better defaults for clangd. (#601)

James Walmsley 4 年之前
父节点
当前提交
af207091bc
共有 3 个文件被更改,包括 15 次插入5 次删除
  1. 9 1
      ftplugin/c.lua
  2. 3 1
      lua/default-config.lua
  3. 3 3
      utils/installer/lv-config.example.lua

+ 9 - 1
ftplugin/c.lua

@@ -1,5 +1,13 @@
+local clangd_flags = {"--background-index"};
+
+if O.lang.clang.cross_file_rename then
+   table.insert(clangd_flags, "--cross-file-rename")
+end
+
+table.insert(clangd_flags, "--header-insertion=" .. O.lang.clang.header_insertion)
+
 require'lspconfig'.clangd.setup {
-    cmd = {DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd"},
+    cmd = {DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd",  unpack(clangd_flags)},
     on_attach = require'lsp'.common_on_attach,
     handlers = {
         ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {

+ 3 - 1
lua/default-config.lua

@@ -144,7 +144,9 @@ O = {
             diagnostics = {
                 virtual_text = {spacing = 0, prefix = ""},
                 signs = true,
-                underline = true
+                underline = true,
+                cross_file_rename = true,
+                header_insertion = 'never'
             }
         },
         ruby = {

+ 3 - 3
utils/installer/lv-config.example.lua

@@ -40,9 +40,9 @@ O.treesitter.ensure_installed = "all"
 O.treesitter.ignore_install = {"haskell"}
 O.treesitter.highlight.enabled = true
 
-O.lang.clang.diagnostics.virtual_text = false
-O.lang.clang.diagnostics.signs = false
-O.lang.clang.diagnostics.underline = false
+O.lang.clang.diagnostics.virtual_text = true
+O.lang.clang.diagnostics.signs = true
+O.lang.clang.diagnostics.underline = true
 
 -- python
 -- add things like O.python.formatter.yapf.exec_path