diff options
author | Marc Pervaz Boocha <mboocha@sudomsg.com> | 2025-07-07 23:39:20 +0530 |
---|---|---|
committer | Marc Pervaz Boocha <mboocha@sudomsg.com> | 2025-07-07 23:39:20 +0530 |
commit | 2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2 (patch) | |
tree | 27a0a04b05084ad199087f43d3a2c7eed4aca2a1 /.config/nvim/init.lua | |
parent | Updated submodules (diff) | |
download | dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.tar dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.tar.gz dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.tar.bz2 dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.tar.lz dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.tar.xz dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.tar.zst dotfiles-2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2.zip |
Add Exrc and modulized LSPAttach
Diffstat (limited to '.config/nvim/init.lua')
-rw-r--r-- | .config/nvim/init.lua | 120 |
1 files changed, 13 insertions, 107 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 4fda0df..2d516ab 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -24,10 +24,7 @@ vim.g.loaded_python_provider = 0 vim.o.list = true vim.o.mouse = 'a' -vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()' -vim.o.foldmethod = "expr" vim.o.foldcolumn = "auto" - vim.o.cursorline = true vim.o.laststatus = 2 vim.o.statusline = "%!v:lua.require'lines'.status()" @@ -37,6 +34,8 @@ vim.o.signcolumn = 'yes' vim.o.completeopt = "menuone,noselect,popup,fuzzy" vim.o.showtabline = 2 +vim.o.exrc = true + vim.cmd.colorscheme 'retrobox' vim.keymap.set({ 'n', 'x' }, '<leader>y', '"+y') @@ -72,9 +71,16 @@ end require 'mason'.setup {} +require 'nvim-treesitter'.update() + vim.api.nvim_create_autocmd('FileType', { callback = function(args) - pcall(vim.treesitter.start, args.buf, args.match) + local ok = pcall(vim.treesitter.start, args.buf, args.match) + if ok then + vim.wo.foldmethod = "expr" + vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' + vim.bo[args.buf].indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" + end end }) @@ -86,116 +92,15 @@ vim.diagnostic.config { virtual_lines = true, } -vim.keymap.set('n', '<leader>f', function() - vim.lsp.buf.format { async = true } -end) - -vim.api.nvim_create_user_command("Format", function(args) - local range = nil - if args.count ~= -1 then - local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] - range = { - start = { args.line1, 0 }, - ["end"] = { args.line2, end_line:len() }, - } - end - vim.lsp.buf.format { async = true, range = range } -end, { range = true }) - -vim.keymap.set({ 'n', 'v' }, 'grl', function() - vim.lsp.codelens.run() -end) - -vim.keymap.set('n', '<leader>wa', function() - vim.lsp.buf.add_workspace_folder() -end) - -vim.keymap.set('n', '<leader>wr', function() - vim.lsp.buf.remove_workspace_folder() -end) - -vim.keymap.set('n', '<leader>wl', function() - local dir = vim.lsp.buf.list_workspace_folders() - vim.ui.select(dir, { - prompt = 'Workspace Dir: ', - }, function(result) - if result then - vim.api.nvim_set_current_dir(result) - end - end) -end) - -vim.api.nvim_create_user_command("Symbols", function(args) - if args.args == "" - then - vim.lsp.buf.workspace_symbol() - else - vim.lsp.buf.workspace_symbol(args.args) - end -end, { nargs = "?" }) - vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) - local opts = { buffer = ev.buf } local client = vim.lsp.get_client_by_id(ev.data.client_id) if not client then return end - if client:supports_method('textDocument/inlayHint') then - vim.lsp.inlay_hint.enable() - end - - if client:supports_method('textDocument/completion') then - local chars = {} - for i = 32, 126 do - table.insert(chars, string.char(i)) - end - client.server_capabilities.completionProvider.triggerCharacters = chars - vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true }) - end - - if client:supports_method('textDocument/documentHighlight') then - local highlight_augroup = vim.api.nvim_create_augroup('lsp-highlight', - { clear = false }) - vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { - buffer = ev.buf, - group = highlight_augroup, - callback = vim.lsp.buf.document_highlight, - }) - - vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { - buffer = ev.buf, - group = highlight_augroup, - callback = vim.lsp.buf.clear_references, - }) - - vim.api.nvim_create_autocmd('LspDetach', { - callback = function(event) - vim.lsp.buf.clear_references() - vim.api.nvim_clear_autocmds { - group = highlight_augroup, - buffer = event.buf - } - end, - }) - end - - if client:supports_method('textDocument/foldingRange') then - local win = vim.api.nvim_get_current_win() - vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()' - end - - if client:supports_method('textDocument/codelens') then - vim.lsp.codelens.refresh(opts) - vim.api.nvim_create_autocmd({ 'CursorHold', 'InsertLeave' }, { - buffer = ev.buf, - callback = function() - vim.lsp.codelens.refresh(opts) - end, - }) - end + require 'lsp' (client, ev.buf) end, }) @@ -214,5 +119,6 @@ vim.lsp.enable { "cssls", "jsonls", "ruff", - -- "pyright", + "marksman", + "pyright", } |