From 9818f56002f34190b393951cc0118fd8435b0fe3 Mon Sep 17 00:00:00 2001 From: ame Date: Fri, 29 Sep 2023 19:49:11 -0500 Subject: init --- lua/lsp.lua | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 lua/lsp.lua (limited to 'lua/lsp.lua') diff --git a/lua/lsp.lua b/lua/lsp.lua new file mode 100644 index 0000000..8cc2902 --- /dev/null +++ b/lua/lsp.lua @@ -0,0 +1,130 @@ +require('mason').setup() +--require('mason-lspconfig').setup() +local lspconfig = require('lspconfig') +lspconfig.pyright.setup {} +lspconfig.eslint.setup{} +lspconfig.clangd.setup{ + capabilities = { offsetEncoding = 'utf-8' }, -- = capabilities +} +lspconfig.zls.setup {} +lspconfig.lua_ls.setup {} +--[[ +require('clangd_extensions').setup{ + server = { + capabilities = { offsetEncoding = 'utf-8' }, -- = capabilities + }, + extensions = { + inlay_hints = { + show_parameter_hints = false, + }, + }, +} +--]] +local null_ls = require('null-ls') + +null_ls.setup({ + sources = { + null_ls.builtins.formatting.stylua, + --null_ls.builtins.diagnostics.eslint, + --null_ls.builtins.completion.spell, + --null_ls.builtins.diagnostics.codespell, + --null_ls.builtins.diagnostics.clang_check, + }, +}) + +require('illuminate').configure({ + providers = { + 'lsp', + 'treesitter', + 'regex', + }, + delay = 100, + filetype_overrides = {}, + filetypes_denylist = { + 'dirvish', + 'fugitive', + }, + filetypes_allowlist = {}, + modes_denylist = {}, + modes_allowlist = {}, + providers_regex_syntax_denylist = {}, + providers_regex_syntax_allowlist = {}, + under_cursor = true, + large_file_cutoff = nil, + large_file_overrides = nil, + min_count_to_highlight = 1, +}) + +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" (the five listed parsers should always be installed) + ensure_installed = { 'c', 'lua', 'cpp', 'python', 'java', 'javascript'}, + + sync_install = false, + + auto_install = true, + + highlight = { + enable = true, + + disable = function(lang, buf) + local max_filesize = 100 * 1024 -- 100 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > max_filesize then + return true + end + end, + additional_vim_regex_highlighting = false, + + }, + rainbow = { + enable = true, + extented_mod = true, + colors = { + '#74d7ec', '#96cde2', '#b9c3d9', '#dcb9d0', '#ffafc7', '#ffafc7', '#fec1d2', '#fdd4de', '#fce6e9', '#fbf9f5', '#fbf9f5', '#fce8ea', '#fdd7e0', '#fec6d5', '#ffb5cb', '#ffb5cb', '#dcbdd2', '#b9c5da', '#96cde2', '#73d5ea' + }, + }, +} +local cmp = require'cmp' + + cmp.setup({ + --[[ + sorting = { + comparators = { + require('clangd_extensions.cmp_scores'), + }, + }, + --]] + snippet = { + expand = function(args) + vim.fn['vsnip#anonymous'](args.body) -- For `vsnip` users. + -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + -- require('snippy').expand_snippet(args.body) -- For `snippy` users. + -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + [''] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 's' }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, -- For vsnip users. + -- { name = 'luasnip' }, -- For luasnip users. + -- { name = 'ultisnips' }, -- For ultisnips users. + -- { name = 'snippy' }, -- For snippy users. + }, { + { name = 'buffer' }, + }) + }) + + + +require 'lsp_signature'.setup() -- cgit v1.2.3