nvim: modernize and optimize neovim configuration

Update deprecated LSP server names, fix API calls, and resolve plugin
conflicts to improve configuration maintainability and performance.

Changes include:

- Replace deprecated tsserver with ts_ls in LSP configuration
  The nvim-lspconfig project renamed tsserver to ts_ls following
  upstream changes. This update ensures compatibility with current
  and future versions.

- Fix treesitter API call from config to configs
  The correct API is nvim-treesitter.configs, not .config. This
  fixes potential runtime errors during treesitter initialization.

- Resolve completion plugin conflict between nvim-cmp and blink.cmp
  Disable nvim-cmp configuration as blink.cmp is already configured
  and active. Running both completion engines simultaneously causes
  conflicts and degrades performance.

- Replace symbols-outline.nvim with aerial.nvim
  The symbols-outline plugin is no longer actively maintained.
  Aerial.nvim provides similar functionality with better performance
  and active maintenance.

- Remove redundant cmdheight setting in options.lua
  The cmdheight option was set twice. Keep only the modern value
  of 0 and remove the outdated conditional check for nvim-0.8.

- Enable matchparen in disabled_plugins list
  Modern alternatives like vim-matchup provide better functionality.
  Disabling the built-in matchparen reduces startup overhead.

- Update dashboard header from DEVASLIFE to M1NGSAMA
  Personalize the neovim startup screen with custom branding.

These changes bring the configuration up to date with current best
practices, eliminate deprecated APIs, and improve overall performance
and maintainability.

Signed-off-by: m1ngsama <m1ng@example.com>
This commit is contained in:
m1ngsama 2025-12-20 20:43:38 +08:00
parent dba08236aa
commit 11cbe8c259
6 changed files with 27 additions and 24 deletions

View file

@ -66,7 +66,7 @@ require("lazy").setup({
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
"matchparen", -- using vim-matchup or other alternatives
"netrwPlugin",
"rplugin",
"tarPlugin",

View file

@ -11,7 +11,6 @@ vim.opt.smartindent = true
vim.opt.hlsearch = true
vim.opt.backup = false
vim.opt.showcmd = true
vim.opt.cmdheight = 1
vim.opt.laststatus = 3
vim.opt.expandtab = true
vim.opt.scrolloff = 10
@ -42,6 +41,5 @@ vim.opt.formatoptions:append({ "r" })
vim.cmd([[au BufNewFile,BufRead *.astro setf astro]])
vim.cmd([[au BufNewFile,BufRead Podfile setf ruby]])
if vim.fn.has("nvim-0.8") == 1 then
-- Modern Neovim (0.8+) supports cmdheight = 0
vim.opt.cmdheight = 0
end

View file

@ -78,20 +78,25 @@ return {
end,
},
-- Use aerial.nvim instead of symbols-outline (more actively maintained)
{
"simrat39/symbols-outline.nvim",
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
cmd = "SymbolsOutline",
"stevearc/aerial.nvim",
keys = { { "<leader>cs", "<cmd>AerialToggle<cr>", desc = "Symbols Outline (Aerial)" } },
cmd = "AerialToggle",
opts = {
position = "right",
layout = {
default_direction = "right",
},
attach_mode = "global",
},
},
{
"nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},
-- Disabled: using blink.cmp instead
-- {
-- "nvim-cmp",
-- dependencies = { "hrsh7th/cmp-emoji" },
-- opts = function(_, opts)
-- table.insert(opts.sources, { name = "emoji" })
-- end,
-- },
}

View file

@ -30,7 +30,7 @@ return {
return require("lspconfig.util").root_pattern(".git")(...)
end,
},
tsserver = {
ts_ls = {
root_dir = function(...)
return require("lspconfig.util").root_pattern(".git")(...)
end,

View file

@ -53,7 +53,7 @@ return {
},
},
config = function(_, opts)
require("nvim-treesitter.config").setup(opts)
require("nvim-treesitter.configs").setup(opts)
-- MDX
vim.filetype.add({

View file

@ -156,12 +156,12 @@ return {
dashboard = {
preset = {
header = [[
]],
},
},