summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <mboocha@sudomsg.com>2025-07-07 23:39:20 +0530
committerMarc Pervaz Boocha <mboocha@sudomsg.com>2025-07-07 23:39:20 +0530
commit2b2676d45e52db5e2dbfa8b2fd72ee95b2967dd2 (patch)
tree27a0a04b05084ad199087f43d3a2c7eed4aca2a1
parentUpdated submodules (diff)
downloaddotfiles-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
-rw-r--r--.config/nvim/.luarc.json3
-rw-r--r--.config/nvim/ftplugin/lua.lua2
-rw-r--r--.config/nvim/init.lua120
-rw-r--r--.config/nvim/lua/lsp.lua114
-rw-r--r--.gitmodules20
m---------.local/share/nvim/site/pack/plugins/start/conform0
m---------.local/share/nvim/site/pack/plugins/start/nvim-lspconfig0
m---------.local/share/nvim/site/pack/plugins/start/nvim-treesitter0
m---------.zfunc/zsh-completions0
9 files changed, 135 insertions, 124 deletions
diff --git a/.config/nvim/.luarc.json b/.config/nvim/.luarc.json
new file mode 100644
index 0000000..63c0022
--- /dev/null
+++ b/.config/nvim/.luarc.json
@@ -0,0 +1,3 @@
+{
+ "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json"
+}
diff --git a/.config/nvim/ftplugin/lua.lua b/.config/nvim/ftplugin/lua.lua
deleted file mode 100644
index ab8173f..0000000
--- a/.config/nvim/ftplugin/lua.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-
--- require'lazydev'.setup {}
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",
}
diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua
new file mode 100644
index 0000000..4b5fe02
--- /dev/null
+++ b/.config/nvim/lua/lsp.lua
@@ -0,0 +1,114 @@
+---LSP OnAttach
+---@param client vim.lsp.Client
+---@param buf integer
+function Lsp(client, buf)
+ vim.keymap.set('n', '<leader>f', function()
+ vim.lsp.buf.format { async = true }
+ end, { buffer = buf })
+
+ vim.api.nvim_buf_create_user_command(buf, "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, bufnr = buf }
+ end, { range = true })
+
+ vim.keymap.set('n', '<leader>wa', function()
+ vim.lsp.buf.add_workspace_folder()
+ end, { buffer = buf })
+
+ vim.keymap.set('n', '<leader>wr', function()
+ vim.lsp.buf.remove_workspace_folder()
+ end, { buffer = buf })
+
+ 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, { buffer = buf })
+
+ vim.api.nvim_buf_create_user_command(buf, "Symbols", function(args)
+ if args.args == ""
+ then
+ vim.lsp.buf.workspace_symbol()
+ else
+ vim.lsp.buf.workspace_symbol(args.args)
+ end
+ end, { nargs = "?" })
+
+
+ if client:supports_method('textDocument/inlayHint') then
+ vim.lsp.inlay_hint.enable()
+
+ vim.keymap.set('n', '<leader>ih', function()
+ vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
+ end, { buffer = buf })
+ 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, 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 = buf,
+ group = highlight_augroup,
+ callback = vim.lsp.buf.document_highlight,
+ })
+
+ vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
+ buffer = 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].foldmethod = "expr"
+ vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()'
+ end
+
+ if client:supports_method('textDocument/codelens') then
+ vim.keymap.set({ 'n', 'v' }, 'grl', function()
+ vim.lsp.codelens.run()
+ end, { buffer = buf })
+ vim.lsp.codelens.refresh { bufnr = buf }
+ vim.api.nvim_create_autocmd({ 'CursorHold', 'InsertLeave' }, {
+ buffer = buf,
+ callback = function()
+ vim.lsp.codelens.refresh { bufnr = buf }
+ end,
+ })
+ end
+end
+
+return Lsp
diff --git a/.gitmodules b/.gitmodules
index d4277e3..e1fb32f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,24 +1,14 @@
[submodule "nvim-treesitter"]
path = .local/share/nvim/site/pack/plugins/start/nvim-treesitter
url = https://github.com/nvim-treesitter/nvim-treesitter.git
-[submodule "clang_extensions.nvim"]
- path = .local/share/nvim/site/pack/plugins/start/clang_extensions
- url = https://github.com/p00f/clangd_extensions.nvim
-[submodule "lazydev.nvim"]
- path = .local/share/nvim/site/pack/plugins/start/lazydev.nvim
- url = https://github.com/folke/lazydev.nvim
-[submodule "rustaceanvim"]
- path = .local/share/nvim/site/pack/plugins/start/rustaceanvim
- url = https://github.com/mrcjkb/rustaceanvim
-[submodule "conform"]
- path = .local/share/nvim/site/pack/plugins/start/conform
- url = https://github.com/stevearc/conform.nvim
+ branch = main
[submodule "mason"]
path = .local/share/nvim/site/pack/plugins/start/mason
url = https://github.com/williamboman/mason.nvim
-[submodule "zsh-completions"]
- path = .zfunc/zsh-completions
- url = https://github.com/zsh-users/zsh-completions.git
[submodule "nvim-lspconfig"]
path = .local/share/nvim/site/pack/plugins/start/nvim-lspconfig
url = https://github.com/neovim/nvim-lspconfig
+[submodule "zsh-completions"]
+ path = .zfunc/zsh-completions
+ url = https://github.com/zsh-users/zsh-completions.git
+
diff --git a/.local/share/nvim/site/pack/plugins/start/conform b/.local/share/nvim/site/pack/plugins/start/conform
deleted file mode 160000
-Subproject 8132ec733eed3bf415b97b76797ca41b59f51d7
diff --git a/.local/share/nvim/site/pack/plugins/start/nvim-lspconfig b/.local/share/nvim/site/pack/plugins/start/nvim-lspconfig
-Subproject 77d3fdfb3554632c7a3b101ded643d422de7626
+Subproject 7fac9025a967a4d0846660f751cd392fac6bb78
diff --git a/.local/share/nvim/site/pack/plugins/start/nvim-treesitter b/.local/share/nvim/site/pack/plugins/start/nvim-treesitter
-Subproject 42fc28ba918343ebfd5565147a42a2658057948
+Subproject 4400990e7362e2769bb1ff96895f623deb0380f
diff --git a/.zfunc/zsh-completions b/.zfunc/zsh-completions
-Subproject c29efd0bc3927ab25dc93ad4085d7143881b73f
+Subproject e07f6fb780725e9c0f50a7666700cf91ded3022