This commit is contained in:
Prabhat Maurya 2025-06-27 09:34:36 +05:30
parent 3b332b462a
commit d3f99fee39
2 changed files with 92 additions and 76 deletions

View file

@ -1,22 +1,17 @@
-- Load user configuration files -- /home/prabhat/.config/nvim/init.lua
require("user.options")
require("user.keymaps")
require("user.cmp")
require("user.java")
require("user.autopairs")
require("user.telescope")
require("user.gruvbox")
require("user.lsp")
require("user.treesitter")
require("user.null-ls") -- Load null-ls configuration
require("user.terminal")
require("user.markdown")
require("user.autocmds")
require("user.files_utils")
require("user.commands")
require("user.comment")
return require("packer").startup(function(use) -- 1. Packer Bootstrap (required to make 'packer' available)
-- This ensures 'packer.nvim' is installed if not present and then loaded.
-- This part is usually placed at the very top.
local install_path = vim.fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
vim.fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
end
-- 2. Call packer.startup to define your plugins.
-- This part should NOT be preceded by 'return' if you have other configs.
require("packer").startup(function(use)
-- Let packer manage itself -- Let packer manage itself
use("wbthomason/packer.nvim") use("wbthomason/packer.nvim")
@ -29,16 +24,19 @@
use("saadparwaiz1/cmp_luasnip") use("saadparwaiz1/cmp_luasnip")
use("L3MON4D3/LuaSnip") use("L3MON4D3/LuaSnip")
-- Load test plugin configuration -- Load test plugin configuration (this `require` should call a `use` inside user.test)
require("user.test")(use) require("user.test")(use) -- Make sure user.test returns a function that takes 'use'
-- NERDTree plugin -- NERDTree plugin
use("preservim/nerdtree") use("preservim/nerdtree")
-- Plugin for integrating formatters/linters -- Plugin for integrating formatters/linters
use("jose-elias-alvarez/null-ls.nvim") use({
"nvimtools/none-ls.nvim",
requires = { "nvim-lua/plenary.nvim" },
})
-- -- TS Server -- TS Server
use("jose-elias-alvarez/nvim-lsp-ts-utils") use("jose-elias-alvarez/nvim-lsp-ts-utils")
-- Treesitter -- Treesitter
@ -66,7 +64,6 @@
-- Comment -- Comment
use 'numToStr/Comment.nvim' use 'numToStr/Comment.nvim'
-- Telescope FZF native -- Telescope FZF native
use({ use({
"nvim-telescope/telescope-fzf-native.nvim", "nvim-telescope/telescope-fzf-native.nvim",
@ -75,26 +72,37 @@
use({ "ellisonleao/gruvbox.nvim" }) use({ "ellisonleao/gruvbox.nvim" })
use({ -- Mason and Mason-LSPConfig
"williamboman/mason.nvim", -- **** IMPORTANT: Pinning to known stable commits ****
config = function() -- This helps resolve "nil enable" errors due to transient incompatibilities
require("mason").setup() -- between the latest versions of these two plugins.
end, -- If these specific commits cause new issues, you may try slightly different
}) -- recent commits, or check their GitHub repos for very recent stable ones.
use({ "williamboman/mason.nvim" })
use({ "williamboman/mason-lspconfig.nvim" })
-- Mason LSPConfig for integrating Mason with nvim-lspconfig
use({
"williamboman/mason-lspconfig.nvim",
config = function()
require("mason-lspconfig").setup({
ensure_installed = {
"pyright",
"ts_ls",
"jdtls",
"marksman",
"kotlin_language_server",
},
})
end,
})
end) end)
-- 3. Load user configuration files (after Packer has defined and made plugins available)
-- These files will contain the `setup()` calls for your plugins.
require("user.options")
require("user.keymaps")
require("user.cmp")
require("user.java")
require("user.autopairs")
require("user.telescope")
require("user.gruvbox")
-- This is where your mason.setup() and mason-lspconfig.setup() calls should be.
-- Ensure that your 'user/lsp.lua' contains the 'handlers' table in its
-- mason-lspconfig.setup call as instructed previously.
require("user.lsp")
require("user.treesitter")
require("user.null-ls") -- Load null-ls configuration
require("user.terminal")
require("user.markdown")
require("user.autocmds")
require("user.files_utils")
require("user.commands")
require("user.comment")

View file

@ -1,13 +1,21 @@
-- Load language server configuration vim.opt.rtp:prepend(vim.fn.stdpath('data') .. '/site/pack/packer/start/mason.nvim')
vim.opt.rtp:prepend(vim.fn.stdpath('data') .. '/site/pack/packer/start/mason-lspconfig.nvim')
vim.opt.rtp:prepend(vim.fn.stdpath('data') .. '/site/pack/packer/start/nvim-lspconfig')
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = { "lua_ls" }, -- Test with a single, simple LSP
automatic_installation = false,
handlers = {
function(server_name)
require("lspconfig")[server_name].setup({})
end,
},
})
-- Load LSP configurations
require("user.lsp_servers.pyright") require("user.lsp_servers.pyright")
require("user.lsp_servers.ts_ls") require("user.lsp_servers.ts_ls")
require("user.lsp_servers.jdtls")
require("user.lsp_servers.marksman") require("user.lsp_servers.marksman")
require("user.lsp_servers.kotlin_ls") require("user.lsp_servers.kotlin_ls")
require("user.lsp_servers.graphql") require("user.lsp_servers.graphql")
require("user.lsp_servers.jdtls")
-- Mason setup
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = { "pyright", "ts_ls", "jdtls", "marksman", "kotlin_language_server" }, -- Ensure Kotlin LSP is installed
})