feat(nvim): update to v0.11

This commit is contained in:
Oliver
2025-10-21 17:09:58 +02:00
parent 3230e6d872
commit eddb023767
8 changed files with 163 additions and 144 deletions

View File

@@ -1 +1 @@
{"copilot.lua":"1.13.0"}
{"copilot.lua":"1.384.0"}

View File

@@ -1,21 +0,0 @@
local configs = require 'lspconfig.configs'
local util = require 'lspconfig.util'
configs.prolog_lsp = {
default_config = {
cmd = {"swipl",
"-g", "use_module(library(lsp_server)).",
"-g", "lsp_server:main",
"-t", "halt",
"--", "stdio"};
filetypes = {"prolog"};
root_dir = util.root_pattern("pack.pl");
};
docs = {
description = [[
https://github.com/jamesnvc/prolog_lsp
Prolog Language Server
]];
}
}

View File

@@ -5,7 +5,3 @@ require("olinpin.commands")
-- this needs to be set after lazy
vim.o.timeoutlen = 0
-- setup prolog
require('lspconfig/prolog_lsp')
require('lspconfig').prolog_lsp.setup{}
-- require('olinpin.intro').open()

View File

@@ -1,40 +1,34 @@
return {
"stevearc/conform.nvim",
event = "BufWritePre",
event = { "BufReadPre", "BufNewFile" },
opts = {
lsp_fallback = true,
formatters_by_ft = {
lua = { "stylua" },
javascript = { "prettier" },
typescript = { "prettier" },
json = { "prettier" },
css = { "prettier" },
html = { "prettier" },
sh = { "shfmt" },
go = { "goimports", "gofumpt" },
php = { "php-cs-fixer" },
python = { "black" },
},
-- format_on_save = function(bufnr)
-- local filetype = vim.bo[bufnr].filetype
-- if filetype == "javascript" then
-- return nil
-- end
-- if filetype == "vue" then
-- return nil
-- end
-- if filetype == "less" then
-- return nil
-- end
-- if filetype == "php" then
-- return nil
-- end
--
-- return {
-- timeout_ms = 500,
-- lsp_fallback = true,
-- }
-- end,
format_on_save = false,
default_format_opts = { lsp_fallback = true },
},
config = function(_, opts)
require("conform").setup(opts)
-- manual formatting keymap
vim.keymap.set({ "n", "x" }, "=", function()
require("conform").format({
async = true,
lsp_fallback = true,
})
end, { desc = "Format file or range" })
end,
}

View File

@@ -1,49 +0,0 @@
return {
'VonHeikemen/lsp-zero.nvim',
branch = 'v2.x',
dependencies = {
-- LSP Support
{'neovim/nvim-lspconfig'}, -- Required
{'williamboman/mason.nvim'}, -- Optional
{'williamboman/mason-lspconfig.nvim'}, -- Optional
-- Autocompletion
{'hrsh7th/nvim-cmp'}, -- Required
{'hrsh7th/cmp-nvim-lsp'}, -- Required
{'L3MON4D3/LuaSnip'}, -- Required
},
config = function()
local lsp = require('lsp-zero')
lsp.preset('recommended')
lsp.on_attach(function(client, bufnr)
-- see :help lsp-zero-keybindings
-- to learn the available actions
lsp.default_keymaps({buffer = bufnr})
end)
lsp.setup_servers({'ts_ls', 'eslint', 'html', 'hls', 'gopls'})
-- require("lspconfig").html.setup({
-- filetypes = { "html", "htmldjango" },
-- init_options = {
-- configurationSection = { "html", "css", "javascript" },
-- embeddedLanguages = {
-- css = true,
-- javascript = true,
-- },
-- provideFormatter = true,
-- },
-- })
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
lsp.set_sign_icons({
error = '',
warn = '',
hint = '',
info = '»'
})
lsp.setup()
end
}

View File

@@ -1,6 +1,145 @@
-- Install LSP servers and 3rd-party tools
-- source: https://github.com/ruicsh/nvim-config/blob/main/lua/plugins/mason.lua
-- sauce: https://github.com/ruicsh/nvim-config/blob/main/lua/plugins/mason.lua
-- https://github.com/williamboman/mason.nvim
-- https://mason-registry.dev/registry/list
local PACKAGES = {
-- LSP
"angular-language-server",
"ansible-language-server",
"css-lsp",
"cssmodules-language-server",
"css-variables-language-server",
"dockerfile-language-server",
"harper-ls",
"html-lsp",
"json-lsp",
"lua-language-server",
"pyright",
"typescript-language-server",
"yaml-language-server",
-- Format
"black",
"flake8",
"prettierd",
"stylua",
-- Lint
"eslint-lsp",
"pylint",
"jq",
"php-cs-fixer",
"intelephense",
"prettier",
}
local function install(pack, version)
local notifyOpts = { title = "Mason", icon = "", id = "mason.install" }
local msg = version and ("[%s] updating to %s…"):format(pack.name, version)
or ("[%s] installing…"):format(pack.name)
vim.defer_fn(function()
vim.notify(msg, nil, notifyOpts)
end, 0)
pack:once("install:success", function()
local msg2 = ("[%s] %s"):format(pack.name, version and "updated." or "installed.")
notifyOpts.icon = ""
vim.defer_fn(function()
vim.notify(msg2, nil, notifyOpts)
end, 0)
end)
pack:once("install:failed", function()
local error = "Failed to install [" .. pack.name .. "]"
vim.defer_fn(function()
vim.notify(error, vim.log.levels.ERROR, notifyOpts)
end, 0)
end)
pack:install({ version = version })
end
local function syncPackages(ensurePacks)
local masonReg = require("mason-registry")
local function refreshCallback()
-- Auto-install missing packages & auto-update installed ones
vim.iter(ensurePacks):each(function(packName)
-- Extract package name and pinned version if specified
local name, pinnedVersion = packName:match("([^@]+)@?(.*)")
if not masonReg.has_package(name) then
return
end
local pack = masonReg.get_package(name)
if pack:is_installed() then
-- Only check for updates if no version was pinned
if pinnedVersion == "" then
local latest_version = pack:get_latest_version()
-- Check if the latest version is different from the installed one
if latest_version and latest_version ~= pack:get_installed_version() then
local msg = ("[%s] updating to %s…"):format(pack.name, latest_version)
vim.defer_fn(function()
vim.notify(msg, nil, { title = "Mason", icon = "󰅗" })
end, 0)
-- Install the latest version
pack:install({ version = latest_version })
end
end
else
-- Install with pinned version if specified
install(pack, pinnedVersion ~= "" and pinnedVersion or nil)
end
end)
-- Auto-clean unused packages
local installedPackages = masonReg.get_installed_package_names()
vim.iter(installedPackages):each(function(packName)
-- Check if installed package is in our ensure list (without version suffix)
local isEnsured = vim.iter(ensurePacks):any(function(ensurePack)
local name = ensurePack:match("([^@]+)")
return name == packName
end)
if not isEnsured then
masonReg.get_package(packName):uninstall()
local msg = ("[%s] uninstalled."):format(packName)
vim.defer_fn(function()
vim.notify(msg, nil, { title = "Mason", icon = "󰅗" })
end, 0)
end
end)
end
masonReg.refresh(refreshCallback)
end
return {
"williamboman/mason.nvim",
config = function()
require("mason").setup()
end
init = function()
-- Do not crowd home directory with NPM cache folder
vim.env.npm_config_cache = vim.env.HOME .. "/.cache/npm"
end,
opts = {
ui = {
border = "rounded",
height = 0.85,
width = 0.8,
},
},
config = function(_, opts)
require("mason").setup(opts)
-- Filter out disabled packages
local packages = {}
for _, package in ipairs(PACKAGES) do
table.insert(packages, package)
end
vim.defer_fn(function()
syncPackages(packages)
end, 3000)
end,
event = { "VeryLazy" },
}

View File

@@ -1,33 +0,0 @@
return {
"jay-babu/mason-null-ls.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"williamboman/mason.nvim",
"jose-elias-alvarez/null-ls.nvim",
},
config = function ()
require("mason-null-ls").setup({
ensure_installed = {
"stylua",
"jq",
"php-cs-fixer",
"intelephense",
"black",
"prettier",
}
})
local null_ls = require("null-ls")
local format = null_ls.builtins.formatting
null_ls.setup({
sources = {
format.black,
format.stylua,
format.prettier
}
})
vim.keymap.set({"n", "x"}, "=", function() vim.cmd('LspZeroFormat') end, { desc = "Format" })
end
}

View File

@@ -45,13 +45,6 @@ return {
additional_vim_regex_highlighting = {"markdown"}
},
}
require'lspconfig'.sourcekit.setup{
cmd = {'/usr/bin/sourcekit-lsp'}
}
require('lspconfig')['hls'].setup{
filetypes = { 'haskell', 'lhaskell', 'cabal' },
}
-- vim.keymap.set('n','gd',vim.lsp.buf.definition)
end