From 4df59fd01a6e6c12e5ad5d0b34b7bdd6c2548f21 Mon Sep 17 00:00:00 2001 From: Zain Siddavatam Date: Thu, 6 Nov 2025 10:43:23 +0530 Subject: [PATCH 1/3] Initial Modifications --- init.lua | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index b98ffc6198a..58953279d97 100644 --- a/init.lua +++ b/init.lua @@ -380,6 +380,7 @@ require('lazy').setup({ -- Useful for getting pretty icons, but requires a Nerd Font. { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, + { 'nvim-telescope/telescope-live-grep-args.nvim' }, }, config = function() -- Telescope is a fuzzy finder that comes with a lot of different things that @@ -423,6 +424,7 @@ require('lazy').setup({ -- Enable Telescope extensions if they are installed pcall(require('telescope').load_extension, 'fzf') pcall(require('telescope').load_extension, 'ui-select') + pcall(require('telescope').load_extension, 'live_grep_args') -- See `:help telescope.builtin` local builtin = require 'telescope.builtin' @@ -450,6 +452,7 @@ require('lazy').setup({ -- See `:help telescope.builtin.live_grep()` for information about particular keys vim.keymap.set('n', 's/', function() builtin.live_grep { + live_grep_args = { '--hidden', '--glob' }, grep_open_files = true, prompt_title = 'Live Grep in Open Files', } @@ -973,12 +976,12 @@ 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.gitsigns', -- adds gitsigns recommend keymaps + 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 keymap -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` -- This is the easiest way to modularize your config. From 39ae20d3ae94320312a6ff8a84e58a9894218174 Mon Sep 17 00:00:00 2001 From: Zain Siddavatam Date: Thu, 8 Jan 2026 17:46:57 +0530 Subject: [PATCH 2/3] Added OCAml and Markdown lua support --- lsp/ocamllsp.lua | 17 +++++++++++++++++ lua/custom/init.lua | 17 +++++++++++++++++ lua/custom/plugins/render-markdown.lua | 9 +++++++++ 3 files changed, 43 insertions(+) create mode 100644 lsp/ocamllsp.lua create mode 100644 lua/custom/init.lua create mode 100644 lua/custom/plugins/render-markdown.lua diff --git a/lsp/ocamllsp.lua b/lsp/ocamllsp.lua new file mode 100644 index 00000000000..bf7200a4816 --- /dev/null +++ b/lsp/ocamllsp.lua @@ -0,0 +1,17 @@ +return { + cmd = { 'ocamllsp' }, + filetypes = { + 'ocaml', + 'ocaml.interface', + 'ocaml.menhir', + 'ocaml.ocamllex', + 'dune', + 'reason', + }, + root_markers = { + { 'dune-project', 'dune-workspace' }, + { '*.opam', 'esy.json', 'package.json' }, + '.git', + }, + settings = {}, +} diff --git a/lua/custom/init.lua b/lua/custom/init.lua new file mode 100644 index 00000000000..2272d4c86aa --- /dev/null +++ b/lua/custom/init.lua @@ -0,0 +1,17 @@ +-- Minimal OCaml behavior: ocp-indent for typing, ocamlformat via ocamllsp on save. +-- 1) Disable ancient builtin ocaml indent script (we will use ocp-indent) +-- 4) Format-on-save: use only ocamllsp to format the buffer before write. +-- Keeps formatting deterministic and avoids other formatters stepping in. +vim.api.nvim_create_autocmd('BufWritePre', { + pattern = { '*.ml', '*.mli' }, + callback = function() + if vim.bo.filetype == 'ocaml' then + vim.lsp.buf.format { + async = false, + filter = function(client) + return client.name == 'ocamllsp' + end, + } + end + end, +}) diff --git a/lua/custom/plugins/render-markdown.lua b/lua/custom/plugins/render-markdown.lua new file mode 100644 index 00000000000..90afa5658ec --- /dev/null +++ b/lua/custom/plugins/render-markdown.lua @@ -0,0 +1,9 @@ +return { + 'MeanderingProgrammer/render-markdown.nvim', + dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.nvim' }, -- if you use the mini.nvim suite + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.icons' }, -- if you use standalone mini plugins + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons + ---@module 'render-markdown' + ---@type render.md.UserConfig + opts = {}, +} From 940e44c5a3bf036ffe147c0b438949165c38c911 Mon Sep 17 00:00:00 2001 From: Zain Siddavatam Date: Tue, 10 Feb 2026 16:02:52 +0530 Subject: [PATCH 3/3] Added more stuff --- init.lua | 39 ++++++++++++++++++++---------- lua/kickstart/plugins/lint.lua | 1 + lua/kickstart/plugins/neo-tree.lua | 4 +++ 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index 58953279d97..1de84153640 100644 --- a/init.lua +++ b/init.lua @@ -91,7 +91,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` @@ -121,7 +121,7 @@ end) -- Enable break indent vim.o.breakindent = true --- Save undo history +-- Save undo historyxml vim.o.undofile = true -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term @@ -185,10 +185,10 @@ vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagn vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- TIP: Disable arrow keys in normal mode --- vim.keymap.set('n', '', 'echo "Use h to move!!"') --- vim.keymap.set('n', '', 'echo "Use l to move!!"') --- vim.keymap.set('n', '', 'echo "Use k to move!!"') --- vim.keymap.set('n', '', 'echo "Use j to move!!"') +vim.keymap.set('n', '', 'echo "Use h to move!!"') +vim.keymap.set('n', '', 'echo "Use l to move!!"') +vim.keymap.set('n', '', 'echo "Use k to move!!"') +vim.keymap.set('n', '', 'echo "Use j to move!!"') -- Keybinds to make split navigation easier. -- Use CTRL+ to switch between windows @@ -487,7 +487,19 @@ require('lazy').setup({ -- NOTE: `opts = {}` is the same as calling `require('mason').setup({})` { 'mason-org/mason.nvim', opts = {} }, 'mason-org/mason-lspconfig.nvim', - 'WhoIsSethDaniel/mason-tool-installer.nvim', + { + 'WhoIsSethDaniel/mason-tool-installer.nvim', + opts = { + ensure_installed = { + 'clangd', + 'lemminx', + 'pyright', + 'ruff-lsp', + 'checkmake', + 'make-language-server', + }, + }, + }, -- Useful status updates for LSP. { 'j-hui/fidget.nvim', opts = {} }, @@ -674,10 +686,10 @@ require('lazy').setup({ -- - settings (table): Override the default settings passed when initializing the server. -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ local servers = { - -- clangd = {}, + clangd = {}, -- gopls = {}, - -- pyright = {}, - -- rust_analyzer = {}, + pyright = {}, + rust_analyzer = {}, -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs -- -- Some languages (like typescript) have entire language plugins that can be useful: @@ -686,7 +698,7 @@ require('lazy').setup({ -- But for many setups, the LSP (`ts_ls`) will work just fine -- ts_ls = {}, -- - + serve_d = {}, lua_ls = { -- cmd = { ... }, -- filetypes = { ... }, @@ -771,6 +783,7 @@ require('lazy').setup({ end, formatters_by_ft = { lua = { 'stylua' }, + asm = { 'asmfmt' }, -- Conform can also run multiple formatters sequentially -- python = { "isort", "black" }, -- @@ -897,7 +910,7 @@ require('lazy').setup({ -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'tokyonight-night' + vim.cmd.colorscheme 'retrobox' end, }, @@ -947,7 +960,7 @@ require('lazy').setup({ main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` opts = { - ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, + ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'xml', 'make' }, -- Autoinstall languages that are not installed auto_install = true, highlight = { diff --git a/lua/kickstart/plugins/lint.lua b/lua/kickstart/plugins/lint.lua index dec42f097c6..3821f8742d6 100644 --- a/lua/kickstart/plugins/lint.lua +++ b/lua/kickstart/plugins/lint.lua @@ -7,6 +7,7 @@ return { local lint = require 'lint' lint.linters_by_ft = { markdown = { 'markdownlint' }, + make = { 'checkmake' }, } -- To allow other plugins to add linters to require('lint').linters_by_ft, diff --git a/lua/kickstart/plugins/neo-tree.lua b/lua/kickstart/plugins/neo-tree.lua index c7067891df0..3e7f9936919 100644 --- a/lua/kickstart/plugins/neo-tree.lua +++ b/lua/kickstart/plugins/neo-tree.lua @@ -15,6 +15,10 @@ return { }, opts = { filesystem = { + filtered_items = { + visible = true, + hide_gitignored = false, + }, window = { mappings = { ['\\'] = 'close_window',