diff options
author | sinanmohd <sinan@sinanmohd.com> | 2024-03-01 18:05:15 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2024-03-01 18:10:33 +0530 |
commit | 5aacff03453e505ee6e5181e3247676239570dbc (patch) | |
tree | ea6208d4f10ef33bf28d20c921469e0fde722486 /lua/plugins/opts | |
parent | 1f7b1559e41b62a6ddef67bedf52dfe3b6cafd18 (diff) |
plugins/lsp: init
Diffstat (limited to 'lua/plugins/opts')
-rw-r--r-- | lua/plugins/opts/cmp.lua | 96 | ||||
-rw-r--r-- | lua/plugins/opts/lspconfig.lua | 35 | ||||
-rw-r--r-- | lua/plugins/opts/lualine.lua | 4 | ||||
-rw-r--r-- | lua/plugins/opts/misc.lua | 11 | ||||
-rw-r--r-- | lua/plugins/opts/treesitter.lua | 2 |
5 files changed, 145 insertions, 3 deletions
diff --git a/lua/plugins/opts/cmp.lua b/lua/plugins/opts/cmp.lua new file mode 100644 index 0000000..c423a31 --- /dev/null +++ b/lua/plugins/opts/cmp.lua @@ -0,0 +1,96 @@ +local cmp = require "cmp" +local lspzero_cmp_act = require('lsp-zero').cmp_action() + +local function border(hl_name) + return { + { "╭", hl_name }, + { "─", hl_name }, + { "╮", hl_name }, + { "│", hl_name }, + { "╯", hl_name }, + { "─", hl_name }, + { "╰", hl_name }, + { "│", hl_name }, + } +end + +local options = { + completion = { + completeopt = "menu,menuone", + }, + + window = { + completion = { + border = border "CmpBorder", + winhighlight = "Normal:CmpPmenu,CursorLine:CmpSel,CursorLine:PmenuSel", + scrollbar = false, + }, + documentation = { + border = border "CmpDocBorder", + winhighlight = "Normal:CmpDoc", + }, + }, + + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + + formatting = { + fields = { "abbr", "kind", "menu" }, + + format = function(_, item) + local icons = { + Text = " ", + Method = " ", + Function = " ", + Constructor = " ", + Field = " ", + Variable = " ", + Class = " ", + Interface = " ", + Module = " ", + Property = " ", + Unit = " ", + Value = " ", + Enum = " ", + Keyword = " ", + Snippet = " ", + Color = " ", + File = " ", + Reference = " ", + Folder = " ", + EnumMember = " ", + Constant = " ", + Struct = " ", + Event = " ", + Operator = " ", + TypeParameter = " ", + } + + local icon = icons[item.kind] or "" + item.kind = string.format(" %s %s", icon, item.kind) + + return item + end, + }, + + mapping = cmp.mapping.preset.insert({ + ['<C-Space>'] = cmp.mapping.complete(), + ['<C-u>'] = cmp.mapping.scroll_docs(-4), + ['<C-d>'] = cmp.mapping.scroll_docs(4), + ['<C-f>'] = lspzero_cmp_act.luasnip_jump_forward(), + ['<C-b>'] = lspzero_cmp_act.luasnip_jump_backward(), + }), + + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "nvim_lua" }, + { name = "path" }, + }, +} + +return options diff --git a/lua/plugins/opts/lspconfig.lua b/lua/plugins/opts/lspconfig.lua new file mode 100644 index 0000000..798e6c8 --- /dev/null +++ b/lua/plugins/opts/lspconfig.lua @@ -0,0 +1,35 @@ +local lspconfig = require "lspconfig" +local lsp_zero = require "lsp-zero" + +lsp_zero.extend_lspconfig() +lsp_zero.set_sign_icons({ + error = " ", + warn = " ", + info = " ", + hint = " " +}) +lsp_zero.on_attach(function(_, bufnr) + lsp_zero.default_keymaps({buffer = bufnr}) +end) + +lspconfig.lua_ls.setup(lsp_zero.nvim_lua_ls({ + settings = { + Lua = { + diagnostics = { + globals = { 'mp' } -- mpv global + } + } + } +})) + +lspconfig.ccls.setup { + init_options = { + cache = { + directory = vim.fn.stdpath('cache') .. '/ccls' + } + } +} + +lspconfig.bashls.setup {} +lspconfig.nil_ls.setup {} +lspconfig.pyright.setup {} diff --git a/lua/plugins/opts/lualine.lua b/lua/plugins/opts/lualine.lua index e72c632..456fa37 100644 --- a/lua/plugins/opts/lualine.lua +++ b/lua/plugins/opts/lualine.lua @@ -4,8 +4,8 @@ return { lualine_b = { "branch", "diff" }, lualine_c = {{ "buffers", mode = 2 }}, - lualine_x = {}, - lualine_y = { "diagnostics", "progress" }, + lualine_x = { "diagnostics" }, + lualine_y = { "progress" }, lualine_z = {}, }, diff --git a/lua/plugins/opts/misc.lua b/lua/plugins/opts/misc.lua index 952dc4f..e228023 100644 --- a/lua/plugins/opts/misc.lua +++ b/lua/plugins/opts/misc.lua @@ -16,4 +16,15 @@ M.gitsigns = { end, } +M.luasnip = function (opts) + require("luasnip").config.set_config(opts) + + -- vscode format + require("luasnip.loaders.from_vscode").lazy_load() + -- snipmate format + require("luasnip.loaders.from_snipmate").lazy_load() + -- lua format + require("luasnip.loaders.from_lua").lazy_load() +end + return M diff --git a/lua/plugins/opts/treesitter.lua b/lua/plugins/opts/treesitter.lua index c9f9a59..fbc2a71 100644 --- a/lua/plugins/opts/treesitter.lua +++ b/lua/plugins/opts/treesitter.lua @@ -1,5 +1,5 @@ return { - ensure_installed = { "lua", "c", "bash"}, + ensure_installed = { "lua", "c", "bash", "nix", "python", "markdown" }, sync_install = false, indent = { enable = true }, |