diff options
author | christianchiarulli <[email protected]> | 2021-07-14 18:50:07 -0400 |
---|---|---|
committer | christianchiarulli <[email protected]> | 2021-07-14 18:50:07 -0400 |
commit | 2a7b3d4892605508d0b0328444d689e1c4922897 (patch) | |
tree | bc43127c8c01edbac4871813433f18d7d23942d6 /lua/lang/c.lua | |
parent | 81adc270dd674b2f3da19340f0c34d60d8667542 (diff) |
reformat most langs
Diffstat (limited to 'lua/lang/c.lua')
-rw-r--r-- | lua/lang/c.lua | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/lua/lang/c.lua b/lua/lang/c.lua index 50e9dddf..66fa9563 100644 --- a/lua/lang/c.lua +++ b/lua/lang/c.lua @@ -6,8 +6,21 @@ M.config = function() end M.format = function() - -- TODO: implement formatter (if applicable) - return "No formatters configured!" + O.formatters.filetype["c"] = { + function() + return { + exe = O.lang.clang.formatter.exe, + args = O.lang.clang.formatter.args, + stdin = not (O.lang.clang.formatter.stdin ~= nil), + } + end, + } + O.formatters.filetype["cpp"] = O.formatters.filetype["c"] + + require("formatter.config").set_defaults { + logging = false, + filetype = O.formatters.filetype, + } end M.lint = function() @@ -16,8 +29,30 @@ M.lint = function() end M.lsp = function() - -- TODO: implement lsp - return "No LSP configured!" + if require("lv-utils").check_lsp_client_active "clangd" then + return + end + + 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", unpack(clangd_flags) }, + on_attach = require("lsp").common_on_attach, + handlers = { + ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { + virtual_text = O.lang.clang.diagnostics.virtual_text, + signs = O.lang.clang.diagnostics.signs, + underline = O.lang.clang.diagnostics.underline, + update_in_insert = true, + }), + }, + } end M.dap = function() |