Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40fd46f290 | ||
|
|
e98b7a9048 | ||
|
|
ed0caff48a | ||
|
|
d3d9852e1e | ||
|
|
7d1fea660a | ||
|
|
28fd6aae2d | ||
|
|
19de2d7e73 | ||
|
|
f1fef7172b | ||
|
|
0099fd2dac | ||
|
|
f4aba4166c |
17 changed files with 84 additions and 179 deletions
1
nvim/lua/dzu/lsp/.gitignore
vendored
Normal file
1
nvim/lua/dzu/lsp/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
*.lua_
|
||||
|
|
@ -1 +0,0 @@
|
|||
return {}
|
||||
|
|
@ -18,28 +18,4 @@ return {
|
|||
},
|
||||
}
|
||||
}
|
||||
-- cmd = { "haskell-language-server-wrapper", "--lsp", "-Wall" }
|
||||
-- formattingProvider = "hls-stylish-haskell-plugin",
|
||||
-- CRED: https://github.com/haskell/haskell-language-server/issues/4363 -- does not
|
||||
-- work
|
||||
--[[
|
||||
settings = {
|
||||
plugin = {
|
||||
-- CRED: https://github.com/haskell/haskell-language-server/issues/680 --
|
||||
-- does not work too!
|
||||
['ghcide'] = {
|
||||
completionOn = false,
|
||||
},
|
||||
['pramas'] = {
|
||||
completionOn = false,
|
||||
},
|
||||
['ghcide-completions'] = {
|
||||
config = {
|
||||
snippetsOn = false,
|
||||
autoExtendOn = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]] --
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,15 @@ if not is_ok then
|
|||
return
|
||||
end
|
||||
|
||||
-- format code on save
|
||||
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
|
||||
pattern = {
|
||||
"*.rs", -- rust sources
|
||||
"*.py", -- python sources
|
||||
"*.js", -- javascript sources
|
||||
},
|
||||
callback = function(ev)
|
||||
vim.lsp.buf.format()
|
||||
end,
|
||||
})
|
||||
-- -- format code on save
|
||||
-- vim.api.nvim_create_autocmd({ "BufWritePre" }, {
|
||||
-- pattern = {
|
||||
-- "*.rs", -- rust sources
|
||||
-- "*.py", -- python sources
|
||||
-- "*.js", -- javascript sources
|
||||
-- "*.html", -- html files
|
||||
-- },
|
||||
-- callback = function(ev)
|
||||
-- vim.lsp.buf.format()
|
||||
-- end,
|
||||
-- })
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
return {
|
||||
settings = {
|
||||
java = {
|
||||
classPath = { "*.jar" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,22 +1,3 @@
|
|||
local servers = {
|
||||
"rust_analyzer", -- rust
|
||||
"pyright", -- has no code formatting
|
||||
-- "marksman", -- markdown
|
||||
"ts_ls", -- js, ts, tsx
|
||||
"clangd", -- C
|
||||
"lua_ls",
|
||||
"hls",
|
||||
"nil_ls",
|
||||
"tinymist",
|
||||
"dockerls",
|
||||
"html",
|
||||
-- "jdtls",
|
||||
-- "xmlformatter"
|
||||
}
|
||||
local nvimlsp_only_servers = {
|
||||
"nushell",
|
||||
}
|
||||
|
||||
local settings = {
|
||||
ui = {
|
||||
border = "none",
|
||||
|
|
@ -29,14 +10,47 @@ local settings = {
|
|||
log_level = vim.log.levels.INFO,
|
||||
max_concurrent_installers = 4,
|
||||
}
|
||||
|
||||
require("mason").setup(settings)
|
||||
|
||||
local servers = {
|
||||
{ "rust_analyzer", "rust_analyzer" },
|
||||
{ "pyright", "pyright", },
|
||||
{ "ts_ls", nil },
|
||||
{ "biome", nil },
|
||||
{ "clangd", nil },
|
||||
{ "lua_ls", "lua_ls" },
|
||||
-- { "hls", "hls" },
|
||||
{ "nil_ls", nil },
|
||||
{ "tinymist", "tinymist" },
|
||||
{ "jdtls", nil },
|
||||
-- { "nushell", nil }, -- TODO what IS the lspconfig name?
|
||||
{ "html", nil },
|
||||
{ "dockerls", nil },
|
||||
}
|
||||
local lspconfig_servers = {}
|
||||
for _, s in pairs(servers) do
|
||||
local s0 = s[1]
|
||||
if s0 ~= nil then
|
||||
table.insert(lspconfig_servers, s0)
|
||||
vim.lsp.enable(s0, true)
|
||||
end
|
||||
end
|
||||
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = servers,
|
||||
automatic_enable = false,
|
||||
ensure_installed = lspconfig_servers,
|
||||
automatic_enable = true,
|
||||
automatic_installation = true,
|
||||
})
|
||||
|
||||
local config_servers = {}
|
||||
for _, s in pairs(servers) do
|
||||
local s1 = s[2]
|
||||
if s1 ~= nil then
|
||||
table.insert(config_servers, s1)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local is_ok, handlers = pcall(require, "dzu.lsp.handlers")
|
||||
if not is_ok then
|
||||
vim.notify("failed to initialize LSP handlers")
|
||||
|
|
@ -44,31 +58,21 @@ if not is_ok then
|
|||
end
|
||||
handlers.setup()
|
||||
|
||||
local opts = {}
|
||||
|
||||
local nvim_lsp_servers = {}
|
||||
for _, nlsp_s in pairs(nvimlsp_only_servers) do
|
||||
table.insert(nvim_lsp_servers, nlsp_s)
|
||||
end
|
||||
for _, s in pairs(servers) do
|
||||
table.insert(nvim_lsp_servers, s)
|
||||
end
|
||||
|
||||
for _, server in pairs(nvim_lsp_servers) do
|
||||
opts = {
|
||||
-- on_attach = handlers.on_attach,
|
||||
local opts = {
|
||||
capabilities = handlers.capabilities,
|
||||
}
|
||||
}
|
||||
|
||||
for _, server in pairs(config_servers) do
|
||||
server = vim.split(server, "@")[1]
|
||||
|
||||
local is_ok, conf_opts = pcall(require, "dzu.lsp." .. server)
|
||||
if is_ok then
|
||||
opts = vim.tbl_deep_extend("force", conf_opts, opts)
|
||||
else
|
||||
if not is_ok then
|
||||
vim.notify("Failed to initialize config for " .. server)
|
||||
goto continue
|
||||
end
|
||||
local opts0 = vim.tbl_deep_extend("force", conf_opts, opts)
|
||||
|
||||
vim.lsp.config(server, opts)
|
||||
vim.lsp.config(server, opts0)
|
||||
vim.lsp.enable(server, true)
|
||||
::continue::
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
-- (nix lsp)
|
||||
|
||||
return {
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
return {
|
||||
cmd = { "nu", "--plugins", "[~/.cargo/bin/nu_plugin_polars]", "--lsp", },
|
||||
filetypes = { "nu" },
|
||||
root_dir = require("lspconfig.util").find_git_ancestor,
|
||||
single_file_support = true,
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
return {}
|
||||
|
|
@ -8,16 +8,13 @@ local function config()
|
|||
-- js/ts fomatters
|
||||
local web_fmt = { "biome" };
|
||||
local fomatters_by_ft = {
|
||||
-- lua = { "stylua" },
|
||||
lua = { "stylua" },
|
||||
python = { "black" },
|
||||
javascript = web_fmt,
|
||||
javascriptreact = web_fmt,
|
||||
typescript = web_fmt,
|
||||
typescriptreact = web_fmt,
|
||||
json = web_fmt,
|
||||
haskell = { "fourmolu" },
|
||||
lhaskell = { "fourmolu" },
|
||||
cabal = { "fourmolu" },
|
||||
-- nix = { "nixfmt" },
|
||||
cpp = { "clang-format" },
|
||||
xml = { "xmlformatter" },
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
return {
|
||||
"HakonHarnes/img-clip.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
default = {
|
||||
-- file and directory options
|
||||
dir_path = "/home/dzu/.wiki/attachments/", ---@type string
|
||||
extension = "png", ---@type string
|
||||
file_name = "%Y-%m-%d-%H-%M-%S", ---@type string
|
||||
use_absolute_path = false, ---@type boolean
|
||||
relative_to_current_file = false, ---@type boolean
|
||||
}
|
||||
},
|
||||
lazy = false,
|
||||
}
|
||||
|
|
@ -25,10 +25,12 @@ local function config()
|
|||
typescript = web_linters,
|
||||
typescriptreact = web_linters,
|
||||
json = web_linters,
|
||||
haskell = { 'hlint' },
|
||||
lhaskell = { 'hlint' },
|
||||
cabal = { 'hlint' },
|
||||
dockerfile = { "hadolint" },
|
||||
-- haskell = { 'hlint' },
|
||||
-- lhaskell = { 'hlint' },
|
||||
-- cabal = { 'hlint' },
|
||||
-- dockerfile = { "hadolint" }, -- kinda broken?
|
||||
gitcommit = { 'gitlint' },
|
||||
html = { 'htmlhint' },
|
||||
}
|
||||
-- add to tool list
|
||||
for _, lints in pairs(names(linters_by_ft, "mason")) do
|
||||
|
|
@ -41,7 +43,7 @@ local function config()
|
|||
|
||||
-- autolint on save
|
||||
vim.api.nvim_create_autocmd({ "BufWritePost", "BufReadPost" }, {
|
||||
pattern = { "*.js", "*.ts", "*.jsx", "*.tsx", "*.json", "*.hs", "*Dockerfile*" },
|
||||
pattern = { "*.js", "*.ts", "*.jsx", "*.tsx", "*.json", "*.hs", "*.html", "*COMMIT_EDITMSG" },
|
||||
callback = function(_)
|
||||
lint.try_lint()
|
||||
end,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
-- CRED: nvim from scratch - https://github.com/LunarVim/Neovim-from-scratch/blob/06-LSP/lua/user/lsp/handlers.lua
|
||||
local function config()
|
||||
local is_ok, _ = pcall(require, 'dzu.lsp')
|
||||
if not is_ok then
|
||||
|
|
@ -8,16 +7,13 @@ local function config()
|
|||
end
|
||||
|
||||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
"mason-org/mason-lspconfig.nvim",
|
||||
opts = {},
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
-- lsp completions
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
lazy = false,
|
||||
}, -- lsp suggestions
|
||||
-- "jose-elias-alvarez/null-ls.nvim",
|
||||
-- "jay-babu/mason-null-ls.nvim",
|
||||
},
|
||||
config = config,
|
||||
lazy = false,
|
||||
|
|
|
|||
4
nvim/lua/dzu/plugins/mason.lua
Normal file
4
nvim/lua/dzu/plugins/mason.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
return {
|
||||
"mason-org/mason.nvim",
|
||||
opts = {}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
local function config()
|
||||
local is_ok, jdtls = pcall(require, "jdtls")
|
||||
if not is_ok then
|
||||
vim.notify "Couldn't load jdtls (java additional LSP plugin)"
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
"mfussenegger/nvim-jdtls",
|
||||
config = config,
|
||||
lazy = true,
|
||||
}
|
||||
|
|
@ -17,7 +17,9 @@ local function config()
|
|||
"dockerfile", -- oh yeah. I should probably figure docker out...
|
||||
"fish",
|
||||
"gitignore",
|
||||
-- "git_commit",
|
||||
"diff",
|
||||
"git_rebase",
|
||||
"gitcommit",
|
||||
"haskell",
|
||||
"html",
|
||||
"javascript",
|
||||
|
|
@ -39,12 +41,13 @@ local function config()
|
|||
"vimdoc",
|
||||
"xml",
|
||||
"nu",
|
||||
"java",
|
||||
},
|
||||
sync_install = false,
|
||||
ignore_install = { "" }, -- List of parsers to ignore installing
|
||||
ignore_install = {}, -- List of parsers to ignore installing
|
||||
highlight = {
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = { "" }, -- list of language that will be disabled
|
||||
disable = {}, -- list of language that will be disabled
|
||||
additional_vim_regex_highlighting = true,
|
||||
|
||||
},
|
||||
|
|
@ -52,38 +55,6 @@ local function config()
|
|||
}
|
||||
configs.setup(config_opts)
|
||||
|
||||
-- latex parser
|
||||
local is_ok, parsers = pcall(require, 'nvim-treesitter.parsers')
|
||||
if not is_ok then
|
||||
vim.notify("couldn't find tree sitter parsers")
|
||||
return
|
||||
end
|
||||
local parser_configs = parsers.get_parser_configs()
|
||||
parser_configs.latex = {
|
||||
install_info = {
|
||||
url = "https://github.com/latex-lsp/tree-sitter-latex",
|
||||
files = { "src/parser.c", "src/scanner.c" }, -- note that some parsers also require src/scanner.c or src/scanner.cc
|
||||
-- optional entries:
|
||||
-- branch = "master", -- default branch in case of git repo if different from master
|
||||
generate_requires_npm = false, -- if stand-alone parser without npm dependencies
|
||||
requires_generate_from_grammar = true, -- if folder contains pre-generated src/parser.c
|
||||
},
|
||||
filetype = "tex", -- if filetype does not match the parser name
|
||||
}
|
||||
|
||||
-- git commit parser
|
||||
parser_configs.git_commit = {
|
||||
install_info = {
|
||||
url = "~/Repositories/random/tree-sitter-git-commit/",
|
||||
files = { "src/parser.c" }, -- note that some parsers also require src/scanner.c or src/scanner.cc
|
||||
-- optional entries:
|
||||
-- branch = "master", -- default branch in case of git repo if different from master
|
||||
generate_requires_npm = false, -- if stand-alone parser without npm dependencies
|
||||
requires_generate_from_grammar = false, -- if folder contains pre-generated src/parser.c
|
||||
},
|
||||
filetype = "gitcommit", -- if filetype does not match the parser name
|
||||
}
|
||||
|
||||
vim.cmd.TSUpdate()
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ local function config()
|
|||
return
|
||||
end
|
||||
url_open.setup({
|
||||
open_app = 'librewolf',
|
||||
open_app = 'default',
|
||||
})
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue