diff options
| author | talha <talha@talhaamir.xyz> | 2026-07-23 21:12:35 +0500 |
|---|---|---|
| committer | talha <talha@talhaamir.xyz> | 2026-07-23 21:12:35 +0500 |
| commit | 70fe2441aa025243e29d47aabe1b6674c4e0ed71 (patch) | |
| tree | 526b58ec31ce6dd0075fe1e76e6828a5ab51ae14 /lua/talha/plugins/lsp.lua | |
| parent | 75b48fc3247b412bb1580c47e96022cffdc8ba9a (diff) | |
Updated config
Diffstat (limited to 'lua/talha/plugins/lsp.lua')
| -rw-r--r-- | lua/talha/plugins/lsp.lua | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/lua/talha/plugins/lsp.lua b/lua/talha/plugins/lsp.lua deleted file mode 100644 index 2ceebde..0000000 --- a/lua/talha/plugins/lsp.lua +++ /dev/null @@ -1,122 +0,0 @@ -return { - { - "VonHeikemen/lsp-zero.nvim", - branch = 'v2.x', - dependencies = { - -- LSP Support - {'neovim/nvim-lspconfig'}, -- Required - {'williamboman/mason.nvim'}, -- Optional - {'williamboman/mason-lspconfig.nvim'}, -- Optional - - -- Autocompletion - {'hrsh7th/nvim-cmp'}, -- Required - {'hrsh7th/cmp-nvim-lsp'}, -- Required - {'hrsh7th/cmp-buffer'}, -- Required - {'hrsh7th/cmp-nvim-lua'}, - {'L3MON4D3/LuaSnip'}, -- Required - }, - config = function() - -local lsp = require('lsp-zero').preset({}) --- @notes on Lsp and Cmp configs here: ---[[ - -# LSP -1. Renamed the keymaps to what I use -2. Added a custom handler for formatting files. - It checks the explicitly defined language servers passed and if they allow formatting, only then will it attempt - to format the buffer - -# Complete -Completion is done by nvim-cmp. The setup for that does a few things. -1. Defines the sources to use for autocompletion: - a. LSP server - b. nvim-lua: only active in lua file I think - c. buffer: uses the current file for auto-completion (similar to default nvim behavior) -2. By default it pops up a list for auto-completion, we have that disabled. -3. When having auto-complete disabled, it takes extra steps to trigger autocomplete, due - to this we need to have it preselect the first item upon triggering autocomplete. -4. We define some custom mappings ---]] - - local function allow_format(servers) - return function(client) return vim.tbl_contains(servers, client.name) end - end - - - lsp.on_attach(function(client, bufnr) - -- see :help lsp-zero-keybindings - -- to learn the available actions - local opts = {buffer = bufnr, remap = false} - vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) - vim.keymap.set("n", "gD", function() vim.lsp.buf.declaration() end, opts) - vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) - vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts) - vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts) - vim.keymap.set("n", "[d", function() vim.diagnostic.goto_prev() end, opts) - vim.keymap.set("n", "]d", function() vim.diagnostic.goto_next() end, opts) - vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts) - vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts) - vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts) - vim.keymap.set("i", "<C-s>", function() vim.lsp.buf.signature_help() end, opts) - vim.keymap.set("n", "<leader>vlf", function() - vim.lsp.buf.format({ - async = false, - timeout_ms = 10000, - filter = allow_format({'rust_analyzer', 'tsserver', 'gopls', 'clangd', 'html-lsp'}), - }) - end, opts) - end) - - require('lspconfig').lua_ls.setup({ - settings = { - Lua = { - diagnostics = { - globals = { 'vim' } - } - } - } - }) - - lsp.setup() - - -- @todo: Look at luasnip and why I would require it - - - local cmp = require('cmp') - local cmp_action = require('lsp-zero').cmp_action() - - - cmp.setup({ - sources = { - { name = 'nvim_lsp' }, - { name = 'nvim_lua' }, - { name = 'buffer' }, - }, - preselect = 'item', - completion = { - autocomplete = false, - completeopt = 'menu,menuone,noinsert' - }, - mapping = cmp.mapping.preset.insert({ - -- Ctrl+Space to trigger completion menu - ['<C-Space>'] = cmp.mapping.complete(), - - -- Navigate between snippet placeholder - -- @note: don't know what this is - ['<C-f>'] = cmp_action.luasnip_jump_forward(), - ['<C-b>'] = cmp_action.luasnip_jump_backward(), - - -- Scroll up and down in the completion documentation - ['<C-u>'] = cmp.mapping.scroll_docs(-4), - ['<C-d>'] = cmp.mapping.scroll_docs(4), - }), - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - }) - end - }, -} |
