From acf9fdb09419dbd1e5921ea4d8b837bf440ee859 Mon Sep 17 00:00:00 2001 From: anand Date: Mon, 6 Apr 2026 23:55:30 +0530 Subject: Nvim config rearranged and neovide added --- nvim/lua/config/init.lua | 4 ++ nvim/lua/config/keymap.lua | 27 ++++++++++++++ nvim/lua/config/lsp.lua | 23 ++++++++++++ nvim/lua/config/options.lua | 32 ++++++++++++++++ nvim/lua/config/pack.lua | 89 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 175 insertions(+) create mode 100755 nvim/lua/config/init.lua create mode 100644 nvim/lua/config/keymap.lua create mode 100644 nvim/lua/config/lsp.lua create mode 100644 nvim/lua/config/options.lua create mode 100644 nvim/lua/config/pack.lua (limited to 'nvim/lua/config') diff --git a/nvim/lua/config/init.lua b/nvim/lua/config/init.lua new file mode 100755 index 0000000..511b408 --- /dev/null +++ b/nvim/lua/config/init.lua @@ -0,0 +1,4 @@ +require('config.options') +require('config.pack') +require('config.lsp') +require('config.keymap') diff --git a/nvim/lua/config/keymap.lua b/nvim/lua/config/keymap.lua new file mode 100644 index 0000000..3254529 --- /dev/null +++ b/nvim/lua/config/keymap.lua @@ -0,0 +1,27 @@ +vim.g.mapleader = ' ' +vim.keymap.set("n", "u", require("undotree").open) +vim.keymap.set("i", "", "", { desc = "Solution for xterm" }) +vim.keymap.set({ "n", "v" }, "j", "gj", { desc = "Personal preference" }) +vim.keymap.set({ "n", "v" }, "k", "gk", { desc = "Personal preference" }) +vim.keymap.set("n", "e", "lua MiniFiles.open()", { desc = 'Open Mini.Files' }) +vim.keymap.set("n", "pv", "Ex", { desc = "Open netrw" }) +vim.keymap.set("n", "ff", "Pick files", { desc = "Open file Picker" }) +vim.keymap.set("n", "fg", "Pick grep_live", { desc = "Open Live Grep" }) +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "n", "nzzzv") +vim.keymap.set("n", "N", "Nzzzv") +vim.keymap.set({ "n", "v" }, "y", "\"+y", { desc = "Copy to system clipboard" }) +vim.keymap.set({ "n", "v" }, "yy", "V\"+y", { desc = "Copy to system clipboard" }) +vim.keymap.set({ "n" }, "p", "\"+p", { desc = "Paste system clipboard" }) +vim.keymap.set("v", "d", "\"_d", { desc = "Delete without copying to buffer" }) +vim.keymap.set("n", "dd", "V\"+d", { desc = "Delete without copying to buffer" }) +vim.keymap.set({ 'n', 'i' }, '', 'tabnext', { desc = "Move to next tab" }) +vim.keymap.set({ 'n', 'i' }, '', 'tabprevious', { desc = "Move to previous tab" }) +vim.keymap.set("n", "", "cnextzz") +vim.keymap.set("n", "", "cprevzz") +vim.keymap.set({ "n", "t" }, "/", "ToggleTerm") +vim.keymap.set("n", "gx", function() + local url = vim.fn.expand("") + vim.fn.jobstart({ "xdg-open", url }, { detach = true }) +end, { desc = "Open URL with xdg-open" }) diff --git a/nvim/lua/config/lsp.lua b/nvim/lua/config/lsp.lua new file mode 100644 index 0000000..95e564c --- /dev/null +++ b/nvim/lua/config/lsp.lua @@ -0,0 +1,23 @@ +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(args) + local client = vim.lsp.get_client_by_id(args.data.client_id) + if client ~= nil and client:supports_method('textDocument/foldingRange') then + local win = vim.api.nvim_get_current_win() + vim.wo[win].foldexpr = 'v:lua.vim.lsp.foldexpr()' + vim.wo[win].foldmethod = 'expr' + end + end, +}) + +vim.api.nvim_create_autocmd("BufWritePre", { + pattern = "*", + callback = function() vim.lsp.buf.format() end, +}) + +vim.lsp.enable( + 'lua_ls', + 'basedpyright', + 'rust-analyzer' +) + +vim.diagnostic.config({ virtual_text = false }) diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua new file mode 100644 index 0000000..bf81eb3 --- /dev/null +++ b/nvim/lua/config/options.lua @@ -0,0 +1,32 @@ +vim.o.number = true +vim.o.tabstop = 2 +vim.o.softtabstop = 2 +vim.o.shiftwidth = 2 +vim.o.foldlevel = 2 +vim.o.expandtab = true +vim.o.autoindent = true +vim.o.smartindent = true +vim.o.signcolumn = 'yes' +vim.o.foldlevel = 99 +vim.o.hlsearch = false +vim.o.swapfile = true +vim.o.undodir = os.getenv("HOME") .. "/.vim/undodir" +vim.o.undofile = true +vim.o.smartcase = true +vim.o.ignorecase = true +vim.o.scrolloff = 8 +vim.opt.path:append("**") +vim.o.winborder = 'rounded' +vim.o.foldmethod = 'expr' +vim.o.guifont = 'JetBrainsMono Nerd Font:h10' +vim.o.foldexpr = 'v:lua.vim.lsp.foldexpr()' + +vim.api.nvim_create_autocmd("TextYankPost", { + callback = function() + vim.highlight.on_yank() + end, +}) + +vim.cmd("packadd nvim.undotree") +vim.cmd.colorscheme('catppuccin') +vim.cmd.hi("StatusLine guibg=NONE") diff --git a/nvim/lua/config/pack.lua b/nvim/lua/config/pack.lua new file mode 100644 index 0000000..ba3cd07 --- /dev/null +++ b/nvim/lua/config/pack.lua @@ -0,0 +1,89 @@ +-- Dependencies + +vim.pack.add { + -- Laravel.Nvim + { + src = 'https://github.com/MunifTanjim/nui.nvim', + name = 'nui.nvim' + }, + { + src = 'https://github.com/nvim-lua/plenary.nvim', + name = 'plenary.nvim' + }, +} + +-- Plugins +vim.pack.add { + { + src = 'https://github.com/lewis6991/gitsigns.nvim', + name = 'gitsigns' + }, + { + src = 'https://github.com/nvim-treesitter/nvim-treesitter', + name = 'treesitter' + }, + { + src = 'https://github.com/OXY2DEV/markview.nvim', + name = 'markview' + }, + { + src = 'https://github.com/nvim-mini/mini.surround', + name = 'surround' + }, + { + src = 'https://github.com/nvim-mini/mini.ai', + name = 'ai (around)' + }, + { + src = 'https://github.com/nvim-mini/mini.move', + name = 'move' + }, + { + src = 'https://github.com/nvim-mini/mini.files', + name = 'files' + }, + { + src = 'https://github.com/nvim-treesitter/nvim-treesitter-context', + name = 'treesitter-context' + }, + { + src = 'https://github.com/echasnovski/mini.pick', + name = 'Picker' + }, + { + src = 'https://github.com/HakonHarnes/img-clip.nvim', + name = 'image-clip' + }, + { + src = 'https://github.com/akinsho/toggleterm.nvim', + name = 'toggleterm' + }, + { + src = 'https://github.com/jghauser/follow-md-links.nvim', + name = 'follow-markdown-links' + }, + { + src = 'https://github.com/rachartier/tiny-inline-diagnostic.nvim', + name = 'tiny-inline-diagnostic' + }, + { + src = 'https://github.com/adibhanna/laravel.nvim', + name = 'laravel' + }, + { + src = 'https://github.com/neovim/nvim-lspconfig', + name = 'lspconfig' + }, +} + +require('mini.surround').setup() +require('mini.ai').setup() +require('mini.pick').setup() +require('mini.move').setup() +require('mini.files').setup() +require('mini.completion').setup() +require('tiny-inline-diagnostic').setup() +require('toggleterm').setup() +require('gitsigns').setup() +require('laravel').setup() +require 'treesitter-context'.setup { enable = true } -- cgit v1.2.3