summaryrefslogtreecommitdiffstats
path: root/.config/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.config/nvim/init.lua120
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",
}