From e10426f66b8d4d39def40e04a18fff5026262db6 Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Tue, 10 Feb 2026 21:48:51 +0330 Subject: [PATCH 1/7] fix: lint issue regarding vim not found and lua ls name --- init.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index d5ae6dc9b2a..6e70fa118c3 100644 --- a/init.lua +++ b/init.lua @@ -87,6 +87,7 @@ P.S. You can delete this when you're done too. It's your config now! :) -- Set as the leader key -- See `:help mapleader` -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) +vim = vim vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' @@ -614,7 +615,7 @@ require('lazy').setup({ -- You can press `g?` for help in this menu. local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { - 'lua_ls', -- Lua Language server + 'lua-language-server', -- Lua Language server 'stylua', -- Used to format Lua code -- You can add other tools here that you want Mason to install }) @@ -870,11 +871,11 @@ require('lazy').setup({ -- Here are some example plugins that I've included in the Kickstart repository. -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- - -- require 'kickstart.plugins.debug', - -- require 'kickstart.plugins.indent_line', - -- require 'kickstart.plugins.lint', - -- require 'kickstart.plugins.autopairs', - -- require 'kickstart.plugins.neo-tree', + require 'kickstart.plugins.debug', + require 'kickstart.plugins.indent_line', + require 'kickstart.plugins.lint', + require 'kickstart.plugins.autopairs', + require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` From c10bb1bafb1db028daf683628b5b1d8c380921a5 Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Tue, 10 Feb 2026 21:50:14 +0330 Subject: [PATCH 2/7] feat: add git diff checker --- init.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/init.lua b/init.lua index 6e70fa118c3..d49fcb97b83 100644 --- a/init.lua +++ b/init.lua @@ -656,6 +656,15 @@ require('lazy').setup({ vim.lsp.enable 'lua_ls' end, }, + + -- Git Diff View + { + 'tpope/vim-fugitive', + config = function() + vim.keymap.set('n', 'gd', ':Gdiff', { desc = 'Git diff' }) + vim.keymap.set('n', 'gs', ':Git', { desc = 'Git status' }) + end, + }, { -- Autoformat 'stevearc/conform.nvim', From 4d203e5ea4fba9181b1c4c5ab18bd0433fb69d56 Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Tue, 10 Feb 2026 21:59:56 +0330 Subject: [PATCH 3/7] feat: initial golang setup and mason packages ensure install --- init.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/init.lua b/init.lua index d49fcb97b83..bd8fa1a0521 100644 --- a/init.lua +++ b/init.lua @@ -231,6 +231,21 @@ vim.api.nvim_create_autocmd('TextYankPost', { callback = function() vim.hl.on_yank() end, }) +-- Autosave on focus lost and buffer leave +vim.api.nvim_create_autocmd({ 'FocusLost', 'BufLeave' }, { + pattern = '*', + command = 'silent! wall', +}) + +vim.api.nvim_create_autocmd('FileType', { + pattern = 'go', + callback = function() + vim.opt_local.tabstop = 4 -- a TAB character displays as 8 columns + vim.opt_local.shiftwidth = 4 -- indent commands use 8 columns + vim.opt_local.expandtab = false -- use real TABs + end, +}) + -- [[ Install `lazy.nvim` plugin manager ]] -- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' @@ -617,6 +632,14 @@ require('lazy').setup({ vim.list_extend(ensure_installed, { 'lua-language-server', -- Lua Language server 'stylua', -- Used to format Lua code + 'gopls', + 'gofumpt', + 'goimports', + 'goimports-reviser', + 'golangci-lint-langserver', + 'golines', + 'gomodifytags', + 'gotests', -- You can add other tools here that you want Mason to install }) From c36dd2bb1e81fb77f078c2ad1e867bfe2085d7bc Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Tue, 10 Feb 2026 22:10:36 +0330 Subject: [PATCH 4/7] feat: clipboard matching and relative number active --- init.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index bd8fa1a0521..8d9ec116911 100644 --- a/init.lua +++ b/init.lua @@ -103,7 +103,7 @@ vim.g.have_nerd_font = false vim.o.number = true -- You can also add relative line numbers, to help with jumping. -- Experiment for yourself to see if you like it! --- vim.o.relativenumber = true +vim.o.relativenumber = true -- Enable mouse mode, can be useful for resizing splits for example! vim.o.mouse = 'a' @@ -111,6 +111,14 @@ vim.o.mouse = 'a' -- Don't show the mode, since it's already in the status line vim.o.showmode = false +-- Sync clipboard between OS and Neovim. +-- Schedule the setting after `UiEnter` because it can increase startup-time. +-- Remove this option if you want your OS clipboard to remain independent. +-- See `:help 'clipboard'` +vim.schedule(function() + vim.o.clipboard = 'unnamedplus' +end) + -- Sync clipboard between OS and Neovim. -- Schedule the setting after `UiEnter` because it can increase startup-time. -- Remove this option if you want your OS clipboard to remain independent. From 401e5ce50cf062e858d45ef4a0393b8143561e3d Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Tue, 10 Feb 2026 22:35:33 +0330 Subject: [PATCH 5/7] refactor: remove redundant comments --- init.lua | 92 ++------------------------------------------------------ 1 file changed, 2 insertions(+), 90 deletions(-) diff --git a/init.lua b/init.lua index 8d9ec116911..a33c27c877d 100644 --- a/init.lua +++ b/init.lua @@ -1,89 +1,3 @@ ---[[ - -===================================================================== -==================== READ THIS BEFORE CONTINUING ==================== -===================================================================== -======== .-----. ======== -======== .----------------------. | === | ======== -======== |.-""""""""""""""""""-.| |-----| ======== -======== || || | === | ======== -======== || KICKSTART.NVIM || |-----| ======== -======== || || | === | ======== -======== || || |-----| ======== -======== ||:Tutor || |:::::| ======== -======== |'-..................-'| |____o| ======== -======== `"")----------------(""` ___________ ======== -======== /::::::::::| |::::::::::\ \ no mouse \ ======== -======== /:::========| |==hjkl==:::\ \ required \ ======== -======== '""""""""""""' '""""""""""""' '""""""""""' ======== -======== ======== -===================================================================== -===================================================================== - -What is Kickstart? - - Kickstart.nvim is *not* a distribution. - - Kickstart.nvim is a starting point for your own configuration. - The goal is that you can read every line of code, top-to-bottom, understand - what your configuration is doing, and modify it to suit your needs. - - Once you've done that, you can start exploring, configuring and tinkering to - make Neovim your own! That might mean leaving Kickstart just the way it is for a while - or immediately breaking it into modular pieces. It's up to you! - - If you don't know anything about Lua, I recommend taking some time to read through - a guide. One possible example which will only take 10-15 minutes: - - https://learnxinyminutes.com/docs/lua/ - - After understanding a bit more about Lua, you can use `:help lua-guide` as a - reference for how Neovim integrates Lua. - - :help lua-guide - - (or HTML version): https://neovim.io/doc/user/lua-guide.html - -Kickstart Guide: - - TODO: The very first thing you should do is to run the command `:Tutor` in Neovim. - - If you don't know what this means, type the following: - - - - : - - Tutor - - - - (If you already know the Neovim basics, you can skip this step.) - - Once you've completed that, you can continue working through **AND READING** the rest - of the kickstart init.lua. - - Next, run AND READ `:help`. - This will open up a help window with some basic information - about reading, navigating and searching the builtin help documentation. - - This should be the first place you go to look when you're stuck or confused - with something. It's one of my favorite Neovim features. - - MOST IMPORTANTLY, we provide a keymap "sh" to [s]earch the [h]elp documentation, - which is very useful when you're not exactly sure of what you're looking for. - - I have left several `:help X` comments throughout the init.lua - These are hints about where to find more information about the relevant settings, - plugins or Neovim features used in Kickstart. - - NOTE: Look for lines like this - - Throughout the file. These are for you, the reader, to help you understand what is happening. - Feel free to delete them once you know what you're doing, but they should serve as a guide - for when you are first encountering a few different constructs in your Neovim config. - -If you experience any errors while trying to install kickstart, run `:checkhealth` for more info. - -I hope you enjoy your Neovim journey, -- TJ - -P.S. You can delete this when you're done too. It's your config now! :) ---]] - -- Set as the leader key -- See `:help mapleader` -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) @@ -115,9 +29,7 @@ vim.o.showmode = false -- Schedule the setting after `UiEnter` because it can increase startup-time. -- Remove this option if you want your OS clipboard to remain independent. -- See `:help 'clipboard'` -vim.schedule(function() - vim.o.clipboard = 'unnamedplus' -end) +vim.schedule(function() vim.o.clipboard = 'unnamedplus' end) -- Sync clipboard between OS and Neovim. -- Schedule the setting after `UiEnter` because it can increase startup-time. @@ -687,7 +599,7 @@ require('lazy').setup({ vim.lsp.enable 'lua_ls' end, }, - + -- Git Diff View { 'tpope/vim-fugitive', From dea329857963e872754560bc73eb2b7739356c4a Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Sun, 15 Feb 2026 16:34:35 +0330 Subject: [PATCH 6/7] feat: add new colorschemes and minor changes --- init.lua | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index a33c27c877d..c38f2fb2a00 100644 --- a/init.lua +++ b/init.lua @@ -6,7 +6,7 @@ vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' -- Set to true if you have a Nerd Font installed and selected in the terminal -vim.g.have_nerd_font = false +vim.g.have_nerd_font = true -- [[ Setting options ]] -- See `:help vim.o` @@ -530,7 +530,7 @@ require('lazy').setup({ -- See `:help lsp-config` for information about keys and how to configure local servers = { -- clangd = {}, - -- gopls = {}, + gopls = {}, -- pyright = {}, -- rust_analyzer = {}, -- @@ -763,6 +763,52 @@ require('lazy').setup({ end, }, + { 'catppuccin/nvim', name = 'catppuccin', priority = 1000 }, + + -- lua/plugins/rose-pine.lua + { + 'rose-pine/neovim', + name = 'rose-pine', + config = function() vim.cmd 'colorscheme rose-pine' end, + }, + { + 'rebelot/kanagawa.nvim', + priority = 1000, -- Load this before other start plugins + config = function() + -- Load the colorscheme + vim.cmd.colorscheme 'kanagawa' + + -- Optional: Configure Kanagawa with your preferred style + -- require('kanagawa').setup({ + -- undercurl = true, -- Enable undercurl + -- commentStyle = { italic = true }, + -- functionStyle = {}, + -- keywordStyle = { italic = true }, + -- statementStyle = { bold = true }, + -- typeStyle = {}, + -- transparent = false, -- Enable transparency + -- dimInactive = false, -- Dim inactive windows + -- terminalColors = true, -- Define vim.g.terminal_color_* + -- colors = { + -- theme = { + -- all = { + -- ui = { + -- bg_gutter = "none" + -- } + -- } + -- } + -- }, + -- overrides = function(colors) + -- return {} + -- end, + -- theme = "wave", -- "wave", "dragon", or "lotus" + -- background = { + -- dark = "wave", -- Theme for dark background + -- light = "lotus" -- Theme for light background + -- } + -- }) + end, + }, -- Highlight todo, notes, etc in comments { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } }, From 011a40ce7c226ea56543988ae252d78c2b9bdd93 Mon Sep 17 00:00:00 2001 From: mateen bagheri Date: Sat, 21 Feb 2026 12:47:08 +0330 Subject: [PATCH 7/7] feat: add python formatter and debugger to config --- init.lua | 13 ++++++++++--- lua/kickstart/plugins/debug.lua | 21 +++++++++++---------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index c38f2fb2a00..c7baee602a6 100644 --- a/init.lua +++ b/init.lua @@ -531,7 +531,7 @@ require('lazy').setup({ local servers = { -- clangd = {}, gopls = {}, - -- pyright = {}, + pyright = {}, -- rust_analyzer = {}, -- -- Some languages (like typescript) have entire language plugins that can be useful: @@ -560,6 +560,12 @@ require('lazy').setup({ 'golines', 'gomodifytags', 'gotests', + 'delve', + 'debugpy', + 'python', + 'pyright', + 'isort', + 'black', -- You can add other tools here that you want Mason to install }) @@ -632,7 +638,7 @@ require('lazy').setup({ return nil else return { - timeout_ms = 500, + timeout_ms = 2500, lsp_format = 'fallback', } end @@ -640,8 +646,9 @@ require('lazy').setup({ formatters_by_ft = { lua = { 'stylua' }, -- Conform can also run multiple formatters sequentially - -- python = { "isort", "black" }, + python = { 'isort', 'black' }, -- + go = { 'gofumpt' }, -- You can use 'stop_after_first' to run the first available formatter from the list -- javascript = { "prettierd", "prettier", stop_after_first = true }, }, diff --git a/lua/kickstart/plugins/debug.lua b/lua/kickstart/plugins/debug.lua index 1e3570f9bf3..90ba3b5a234 100644 --- a/lua/kickstart/plugins/debug.lua +++ b/lua/kickstart/plugins/debug.lua @@ -23,6 +23,7 @@ return { -- Add your own debuggers here 'leoluz/nvim-dap-go', + 'mfussenegger/nvim-dap-python', }, keys = { -- Basic debugging keymaps, feel free to change to your liking! @@ -107,16 +108,16 @@ return { } -- Change breakpoint icons - -- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' }) - -- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' }) - -- local breakpoint_icons = vim.g.have_nerd_font - -- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' } - -- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' } - -- for type, icon in pairs(breakpoint_icons) do - -- local tp = 'Dap' .. type - -- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak' - -- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl }) - -- end + vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' }) + vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' }) + local breakpoint_icons = vim.g.have_nerd_font + and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' } + or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' } + for type, icon in pairs(breakpoint_icons) do + local tp = 'Dap' .. type + local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak' + vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl }) + end dap.listeners.after.event_initialized['dapui_config'] = dapui.open dap.listeners.before.event_terminated['dapui_config'] = dapui.close