new config using vim.pack
This commit is contained in:
parent
e685165044
commit
17fda33a90
52 changed files with 629 additions and 659 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
lazy-lock.json
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
local conf = vim.lsp.config.hls
|
|
||||||
vim.lsp.config("hls", conf)
|
|
||||||
vim.lsp.enable("hls")
|
|
||||||
|
|
||||||
vim.o.tabstop = 2
|
|
||||||
vim.o.softtabstop = 0
|
|
||||||
vim.o.shiftwidth = 0
|
|
||||||
vim.o.expandtab = true
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
local port = tonumber(os.getenv("GDScript_Port")) or 6005
|
|
||||||
local cmd = vim.lsp.rpc.connect("127.0.0.1", port)
|
|
||||||
local pipe = "/tmp/godot.pipe" -- I use /tmp/godot.pipe
|
|
||||||
|
|
||||||
vim.lsp.start({
|
|
||||||
name = "Godot",
|
|
||||||
cmd = cmd,
|
|
||||||
root_dir = vim.fs.dirname(vim.fs.find({ "project.godot", ".git" }, { upward = true })[1]),
|
|
||||||
on_attach = function(client, bufnr)
|
|
||||||
vim.api.nvim_command('echo serverstart("' .. pipe .. '")')
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
local conf = vim.lsp.config.hls
|
|
||||||
vim.lsp.config("hls", conf)
|
|
||||||
vim.lsp.enable("hls")
|
|
||||||
|
|
||||||
vim.o.tabstop = 2
|
|
||||||
vim.o.softtabstop = 0
|
|
||||||
vim.o.shiftwidth = 0
|
|
||||||
vim.o.expandtab = true
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
local conf = vim.lsp.config.hls
|
|
||||||
vim.lsp.config("hls", conf)
|
|
||||||
vim.lsp.enable("hls")
|
|
||||||
|
|
||||||
vim.o.tabstop = 2
|
|
||||||
vim.o.softtabstop = 0
|
|
||||||
vim.o.shiftwidth = 0
|
|
||||||
vim.o.expandtab = true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
vim.opt.conceallevel = 2
|
|
||||||
vim.opt.concealcursor = "nc"
|
|
||||||
vim.opt.foldlevel = 99
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
local conf = vim.lsp.config.qmlls
|
|
||||||
conf.root_markers = { ".qmlls.ini" }
|
|
||||||
vim.lsp.config("qmlls", conf)
|
|
||||||
vim.lsp.enable("qmlls")
|
|
||||||
36
init.lua
36
init.lua
|
|
@ -1,4 +1,36 @@
|
||||||
require("config.lazy")
|
|
||||||
require("config.general")
|
require("config.general")
|
||||||
require("config.autocmd")
|
|
||||||
require("config.lsp")
|
require("config.lsp")
|
||||||
|
|
||||||
|
local plugins = {
|
||||||
|
"lsp",
|
||||||
|
"mason-bridge",
|
||||||
|
"mason",
|
||||||
|
"formatter",
|
||||||
|
"treesitter",
|
||||||
|
"nvim-lint",
|
||||||
|
|
||||||
|
-- "neorg",
|
||||||
|
|
||||||
|
"nightfox",
|
||||||
|
|
||||||
|
"statusline",
|
||||||
|
|
||||||
|
"ansi",
|
||||||
|
"rpc",
|
||||||
|
"utils",
|
||||||
|
|
||||||
|
"images",
|
||||||
|
"diagrams",
|
||||||
|
"table-mode",
|
||||||
|
|
||||||
|
"plenary",
|
||||||
|
"fuzzyfind",
|
||||||
|
|
||||||
|
"latex",
|
||||||
|
}
|
||||||
|
|
||||||
|
local putils = require("utils.plugins")
|
||||||
|
|
||||||
|
for _, plugin in pairs(plugins) do
|
||||||
|
putils.parse(putils.get(plugin))
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
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 = {},
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
-- put this in your init.lua
|
|
||||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
|
|
||||||
pattern = { "*.yuck" },
|
|
||||||
callback = function(event)
|
|
||||||
print(string.format("starting yuck;s for %s", vim.inspect(event)))
|
|
||||||
vim.lsp.start({
|
|
||||||
name = "YuckLs",
|
|
||||||
cmd = { "yuckls" }, -- if installed from aur
|
|
||||||
root_dir = vim.fn.getcwd(),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
@ -17,7 +17,11 @@ vim.keymap.set("t", "<Esc>", "<C-\\><C-N>", {})
|
||||||
|
|
||||||
vim.keymap.set("n", ".", ":", {})
|
vim.keymap.set("n", ".", ":", {})
|
||||||
|
|
||||||
vim.keymap.set("i", "jk", "", {})
|
vim.keymap.set("i", "jk", "␛", {})
|
||||||
|
|
||||||
|
vim.cmd("nnoremap <Space> <Nop>")
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = ","
|
||||||
|
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
-- Bootstrap lazy.nvim
|
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
||||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
|
||||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
|
||||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
|
||||||
if vim.v.shell_error ~= 0 then
|
|
||||||
vim.api.nvim_echo({
|
|
||||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
|
||||||
{ out, "WarningMsg" },
|
|
||||||
{ "\nPress any key to exit..." },
|
|
||||||
}, true, {})
|
|
||||||
vim.fn.getchar()
|
|
||||||
os.exit(1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
-- Make sure to setup `mapleader` and `maplocalleader` before
|
|
||||||
-- loading lazy.nvim so that mappings are correct.
|
|
||||||
-- This is also a good place to setup other settings (vim.opt)
|
|
||||||
vim.cmd("nnoremap <Space> <Nop>")
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.g.maplocalleader = ","
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>l", function() require"lazy".home() end, { silent = true, desc = "open lazy.nvim"})
|
|
||||||
|
|
||||||
-- Setup lazy.nvim
|
|
||||||
require("lazy").setup("plugins")
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
-- lsp that are not on mason/beta branch lsp
|
|
||||||
vim.lsp.enable("zls")
|
vim.lsp.enable("zls")
|
||||||
vim.lsp.enable("ocamllsp")
|
vim.lsp.enable("ocamllsp")
|
||||||
vim.lsp.enable("ocamllsp")
|
vim.lsp.enable("ocamllsp")
|
||||||
|
|
@ -9,3 +8,4 @@ vim.lsp.config("llvm-ir-lsp", {
|
||||||
cmd = { "llvm-ir-lsp" },
|
cmd = { "llvm-ir-lsp" },
|
||||||
filetypes = { "llvm" },
|
filetypes = { "llvm" },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"0xferrous/ansi.nvim",
|
configure = function(load)
|
||||||
config = true,
|
load("0xferrous/ansi.nvim")
|
||||||
opts = {
|
require("ansi").setup({
|
||||||
auto_enable = false, -- Auto-enable for configured filetypes
|
auto_enable = false, -- Auto-enable for configured filetypes
|
||||||
filetypes = { "log", "ansi" }, -- Filetypes to auto-enable
|
filetypes = { "log", "ansi" }, -- Filetypes to auto-enable
|
||||||
},
|
})
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
return {
|
|
||||||
"LukasPietzschmann/boo.nvim",
|
|
||||||
opts = {},
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
return {
|
|
||||||
"stevearc/conform.nvim",
|
|
||||||
dependencies = { "frostplexx/mason-bridge.nvim" },
|
|
||||||
event = { "BufWritePre" },
|
|
||||||
cmd = { "ConformInfo" },
|
|
||||||
init = function()
|
|
||||||
require("conform").setup({
|
|
||||||
format_on_save = function(bufnr)
|
|
||||||
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
require("conform").formatters_by_ft = require("mason-bridge").get_formatters()
|
|
||||||
return { timeout_ms = 200, lsp_fallback = true }, on_format
|
|
||||||
end,
|
|
||||||
formatters_by_ft = require("mason-bridge").get_formatters(), --[[ = {
|
|
||||||
lua = { "stylua" },
|
|
||||||
javascript = { "prettier" },
|
|
||||||
html = { "prettier" },
|
|
||||||
css = { "prettier" },
|
|
||||||
c = { "clang-format" },
|
|
||||||
cpp = { "clang-format" },
|
|
||||||
arduino = { "clang-format" },
|
|
||||||
sh = { "shfmt" },
|
|
||||||
bash = { "shfmt" },
|
|
||||||
mksh = { "shfmt" },
|
|
||||||
json = { "jq" },
|
|
||||||
}, ]] --
|
|
||||||
|
|
||||||
-- This will provide type hinting with LuaLS
|
|
||||||
---@module "conform"
|
|
||||||
---@type conform.setupOpts
|
|
||||||
formatters = {
|
|
||||||
prettier = {
|
|
||||||
prepend_args = { "--use-tabs", "true" },
|
|
||||||
},
|
|
||||||
jq = {
|
|
||||||
prepend_args = { "--tab" },
|
|
||||||
},
|
|
||||||
["clang-format"] = {
|
|
||||||
prepend_args = function(self, ctx)
|
|
||||||
return { "-style=file:/home/Dario48/.config/.clang-format" }
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
default_format_opts = {
|
|
||||||
lsp_format = "fallback",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
-- If you want the formatexpr, here is the place to set it
|
|
||||||
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
|
||||||
vim.g.arduino_recommended_style = 0
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
return {
|
|
||||||
"vyfor/cord.nvim",
|
|
||||||
build = ":Cord update",
|
|
||||||
-- opts = {}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
return {
|
|
||||||
url = "https://dario48.site/git/Dario48/darioline.git",
|
|
||||||
config = true,
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
return {
|
|
||||||
"3rd/diagram.nvim",
|
|
||||||
dependencies = {
|
|
||||||
{ "3rd/image.nvim" }, -- you'd probably want to configure image.nvim manually instead of doing this
|
|
||||||
},
|
|
||||||
opts = { -- you can just pass {}, defaults below
|
|
||||||
events = {
|
|
||||||
render_buffer = { "InsertLeave", "BufWinEnter", "TextChanged" },
|
|
||||||
clear_buffer = { "BufLeave" },
|
|
||||||
},
|
|
||||||
renderer_options = {
|
|
||||||
mermaid = {
|
|
||||||
background = nil, -- nil | "transparent" | "white" | "#hex"
|
|
||||||
theme = nil, -- nil | "default" | "dark" | "forest" | "neutral"
|
|
||||||
scale = 1, -- nil | 1 (default) | 2 | 3 | ...
|
|
||||||
width = nil, -- nil | 800 | 400 | ...
|
|
||||||
height = nil, -- nil | 600 | 300 | ...
|
|
||||||
cli_args = nil, -- nil | { "--no-sandbox" } | { "-p", "/path/to/puppeteer" } | ...
|
|
||||||
},
|
|
||||||
plantuml = {
|
|
||||||
charset = nil,
|
|
||||||
cli_args = nil, -- nil | { "-Djava.awt.headless=true" } | ...
|
|
||||||
},
|
|
||||||
d2 = {
|
|
||||||
theme_id = nil,
|
|
||||||
dark_theme_id = nil,
|
|
||||||
scale = nil,
|
|
||||||
layout = nil,
|
|
||||||
sketch = nil,
|
|
||||||
cli_args = nil, -- nil | { "--pad", "0" } | ...
|
|
||||||
},
|
|
||||||
gnuplot = {
|
|
||||||
size = nil, -- nil | "800,600" | ...
|
|
||||||
font = nil, -- nil | "Arial,12" | ...
|
|
||||||
theme = nil, -- nil | "light" | "dark" | custom theme string
|
|
||||||
cli_args = nil, -- nil | { "-p" } | { "-c", "config.plt" } | ...
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
21
lua/plugins/diagrams.lua
Normal file
21
lua/plugins/diagrams.lua
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
after = "images",
|
||||||
|
configure = function(load)
|
||||||
|
--load("3rd/diagram.nvim")
|
||||||
|
--require("diagram").setup()
|
||||||
|
|
||||||
|
load("jbyuki/venn.nvim")
|
||||||
|
vim.b.ve = "all"
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("VennInit", function()
|
||||||
|
vim.keymap.set("n", "J", "<C-v>j:VBox<CR>", { noremap = true })
|
||||||
|
vim.keymap.set("n", "K", "<C-v>k:VBox<CR>", { noremap = true })
|
||||||
|
vim.keymap.set("n", "L", "<C-v>l:VBox<CR>", { noremap = true })
|
||||||
|
vim.keymap.set("n", "H", "<C-v>h:VBox<CR>", { noremap = true })
|
||||||
|
-- draw a box by pressing "f" with visual selection,
|
||||||
|
vim.keymap.set("v", "f", ":VBox<CR>", { noremap = true })
|
||||||
|
end, {})
|
||||||
|
end,
|
||||||
|
}
|
||||||
47
lua/plugins/formatter.lua
Normal file
47
lua/plugins/formatter.lua
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
after = "mason-bridge",
|
||||||
|
configure = function(load)
|
||||||
|
load("stevearc/conform.nvim")
|
||||||
|
|
||||||
|
require("conform").setup({
|
||||||
|
formatters_by_ft = require("mason-bridge").get_formatters(),
|
||||||
|
|
||||||
|
format_on_save = function(bufnr)
|
||||||
|
require("conform").formatters_by_ft = require("mason-bridge").get_formatters()
|
||||||
|
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
else
|
||||||
|
return { timeout_ms = 500, lsp_format = "fallback" }
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("FormatDisable", function(args)
|
||||||
|
if args.bang then
|
||||||
|
-- FormatDisable! will disable formatting globally
|
||||||
|
vim.g.disable_autoformat = true
|
||||||
|
else
|
||||||
|
vim.b.disable_autoformat = true
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
desc = "Disable autoformat-on-save",
|
||||||
|
bang = true,
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_user_command("FormatEnable", function(args)
|
||||||
|
if args.bang then
|
||||||
|
-- FormatDisable! will disable formatting globally
|
||||||
|
vim.g.disable_autoformat = false
|
||||||
|
else
|
||||||
|
vim.b.disable_autoformat = false
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
desc = "Enable autoformat-on-save",
|
||||||
|
bang = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"nvim-telescope/telescope.nvim",
|
after = "plenary",
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
configures = "telescope",
|
||||||
|
configure = function(load)
|
||||||
keys = {
|
load("nvim-telescope/telescope.nvim")
|
||||||
{ "<leader>ff", require("telescope.builtin").find_files, desc = "Telescope find files" },
|
require("telescope").setup()
|
||||||
{ "<leader>fg", require("telescope.builtin").live_grep, desc = "Telescope live grep" },
|
vim.keymap.set("n", "<leader>ff", require("telescope.builtin").find_files, { desc = "Telescope find files" })
|
||||||
{ "<leader>fb", require("telescope.builtin").buffers, desc = "Telescope buffers" },
|
vim.keymap.set("n", "<leader>fg", require("telescope.builtin").live_grep, { desc = "Telescope live grep" })
|
||||||
{ "<leader>fh", require("telescope.builtin").help_tags, desc = "Telescope help tags" },
|
vim.keymap.set("n", "<leader>fb", require("telescope.builtin").buffers, { desc = "Telescope buffers" })
|
||||||
},
|
vim.keymap.set("n", "<leader>fh", require("telescope.builtin").help_tags, { desc = "Telescope help tags" })
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
return {
|
|
||||||
"3rd/image.nvim",
|
|
||||||
opts = {
|
|
||||||
integrations = {
|
|
||||||
markdown = {
|
|
||||||
enabled = true,
|
|
||||||
clear_in_insert_mode = false,
|
|
||||||
download_remote_images = true,
|
|
||||||
only_render_image_at_cursor = false,
|
|
||||||
only_render_image_at_cursor_mode = "popup", -- or "inline"
|
|
||||||
floating_windows = true, -- if true, images will be rendered in floating markdown windows
|
|
||||||
filetypes = { "markdown", "vimwiki", "latex" }, -- markdown extensions (ie. quarto) can go here
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = true,
|
|
||||||
}
|
|
||||||
22
lua/plugins/images.lua
Normal file
22
lua/plugins/images.lua
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
configures = "images",
|
||||||
|
configure = function(load)
|
||||||
|
load("3rd/image.nvim")
|
||||||
|
|
||||||
|
require("image").setup({
|
||||||
|
integrations = {
|
||||||
|
markdown = {
|
||||||
|
enabled = true,
|
||||||
|
clear_in_insert_mode = false,
|
||||||
|
download_remote_images = true,
|
||||||
|
only_render_image_at_cursor = false,
|
||||||
|
only_render_image_at_cursor_mode = "popup", -- or "inline"
|
||||||
|
floating_windows = true, -- if true, images will be rendered in floating markdown windows
|
||||||
|
filetypes = { "markdown", "vimwiki", "latex" }, -- markdown extensions (ie. quarto) can go here
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
return {
|
|
||||||
"kmonad/kmonad-vim",
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"lervag/vimtex",
|
configure = function(load)
|
||||||
init = function()
|
load("lervag/vimtex")
|
||||||
-- VimTeX configuration goes here, e.g.
|
|
||||||
vim.g.vimtex_view_method = "mupdf"
|
vim.g.vimtex_view_method = "mupdf"
|
||||||
vim.g.vimtex_compiler_method = "latexmk"
|
vim.g.vimtex_compiler_method = "latexmk"
|
||||||
vim.g.vimtex_compiler_latexmk = { options = { "-shell-escape" } }
|
vim.g.vimtex_compiler_latexmk = { options = { "-shell-escape" } }
|
||||||
99
lua/plugins/lsp.lua
Normal file
99
lua/plugins/lsp.lua
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
after = "mason",
|
||||||
|
configure = function(load)
|
||||||
|
load("neovim/nvim-lspconfig")
|
||||||
|
|
||||||
|
load("folke/lazydev.nvim")
|
||||||
|
require("lazydev").setup({})
|
||||||
|
|
||||||
|
--[[
|
||||||
|
---@type vim.lsp.Config
|
||||||
|
local config = {
|
||||||
|
---@type lspconfig.settings.lua_ls
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
runtime = {
|
||||||
|
version = "LuaJIT",
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
preloadFileSize = 10000,
|
||||||
|
library = {
|
||||||
|
vim.env.VIMRUNTIME,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.lsp.config("lua_ls", config)
|
||||||
|
]]
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
callback = function(args)
|
||||||
|
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||||
|
if client and client:supports_method("textDocument/completion") then
|
||||||
|
vim.lsp.completion.enable(true, client.id, args.buf, { autotrigger = true })
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
vim.opt.completeopt = { "menuone", "noinsert", "popup" }
|
||||||
|
vim.keymap.set("i", "<Tab>", function()
|
||||||
|
if vim.fn.pumvisible() == 1 then
|
||||||
|
return "<C-y>"
|
||||||
|
end
|
||||||
|
return "<Tab>"
|
||||||
|
end, { expr = true })
|
||||||
|
|
||||||
|
-- Reserve a space in the gutter
|
||||||
|
-- This will avoid an annoying layout shift in the screen
|
||||||
|
vim.opt.signcolumn = "yes"
|
||||||
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
desc = "LSP actions",
|
||||||
|
callback = function(event)
|
||||||
|
local opts = { buffer = event.buf }
|
||||||
|
|
||||||
|
vim.keymap.set("n", "K", function()
|
||||||
|
vim.lsp.buf.hover()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "gd", function()
|
||||||
|
vim.lsp.buf.definition()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "gD", function()
|
||||||
|
vim.lsp.buf.declaration()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "gi", function()
|
||||||
|
vim.lsp.buf.implementation()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "go", function()
|
||||||
|
vim.lsp.buf.type_definition()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "gr", function()
|
||||||
|
vim.lsp.buf.references()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "gs", function()
|
||||||
|
vim.lsp.buf.signature_help()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "<F2>", function()
|
||||||
|
vim.lsp.buf.rename()
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set({ "n", "x" }, "<F3>", function()
|
||||||
|
vim.lsp.buf.format({ async = true })
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set("n", "<leader>f", function()
|
||||||
|
vim.lsp.buf.code_action()
|
||||||
|
end, opts)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
load("mason-org/mason-lspconfig.nvim")
|
||||||
|
|
||||||
|
require("mason-lspconfig").setup({
|
||||||
|
automatic_enable = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
load("LukasPietzschmann/boo.nvim")
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
return {
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
dependencies = {
|
|
||||||
{ "hrsh7th/cmp-nvim-lsp" },
|
|
||||||
{ "hrsh7th/nvim-cmp" },
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- Reserve a space in the gutter
|
|
||||||
-- This will avoid an annoying layout shift in the screen
|
|
||||||
vim.opt.signcolumn = "yes"
|
|
||||||
|
|
||||||
-- Add cmp_nvim_lsp capabilities settings to lspconfig
|
|
||||||
-- This should be executed before you configure any language server
|
|
||||||
local lspconfig_defaults = require("lspconfig").util.default_config
|
|
||||||
lspconfig_defaults.capabilities = vim.tbl_deep_extend(
|
|
||||||
"force",
|
|
||||||
lspconfig_defaults.capabilities,
|
|
||||||
require("cmp_nvim_lsp").default_capabilities()
|
|
||||||
)
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
|
||||||
desc = "LSP actions",
|
|
||||||
callback = function(event)
|
|
||||||
local opts = { buffer = event.buf }
|
|
||||||
|
|
||||||
vim.keymap.set("n", "K", function()
|
|
||||||
vim.lsp.buf.hover()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "gd", function()
|
|
||||||
vim.lsp.buf.definition()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "gD", function()
|
|
||||||
vim.lsp.buf.declaration()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "gi", function()
|
|
||||||
vim.lsp.buf.implementation()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "go", function()
|
|
||||||
vim.lsp.buf.type_definition()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "gr", function()
|
|
||||||
vim.lsp.buf.references()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "gs", function()
|
|
||||||
vim.lsp.buf.signature_help()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "<F2>", function()
|
|
||||||
vim.lsp.buf.rename()
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set({ "n", "x" }, "<F3>", function()
|
|
||||||
vim.lsp.buf.format({ async = true })
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set("n", "<leader>f", function()
|
|
||||||
vim.lsp.buf.code_action()
|
|
||||||
end, opts)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
10
lua/plugins/mason-bridge.lua
Normal file
10
lua/plugins/mason-bridge.lua
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
after = "mason",
|
||||||
|
configures = "mason-bridge",
|
||||||
|
configure = function(load)
|
||||||
|
load("frostplexx/mason-bridge.nvim")
|
||||||
|
require("mason-bridge").setup({})
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,72 +1,13 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
{
|
configures = "mason",
|
||||||
"williamboman/mason.nvim",
|
configure = function(load)
|
||||||
|
load("mason-org/mason.nvim")
|
||||||
|
vim.keymap.set("n", "<leader>m", ":Mason<CR>", { desc = "open mason" })
|
||||||
|
|
||||||
keys = {
|
require("mason").setup({
|
||||||
{ "<leader>m", ":Mason <CR>", desc = "open mason" },
|
|
||||||
},
|
|
||||||
config = true,
|
|
||||||
opts = {
|
|
||||||
PATH = "append",
|
PATH = "append",
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"williamboman/mason-lspconfig.nvim",
|
|
||||||
dependencies = { "williamboman/mason.nvim" },
|
|
||||||
opts = {
|
|
||||||
-- Replace the language servers listed here
|
|
||||||
-- with the ones you want to install
|
|
||||||
ensure_installed = { "lua_ls", "clangd", "hyprls" },
|
|
||||||
handlers = {
|
|
||||||
function(server_name)
|
|
||||||
vim.lsp.enable(server_name)
|
|
||||||
end,
|
|
||||||
|
|
||||||
["lua_ls"] = function()
|
|
||||||
vim.lsp.config("lua_ls", {
|
|
||||||
settings = {
|
|
||||||
Lua = {
|
|
||||||
runtime = {
|
|
||||||
-- Tell the language server which version of Lua you're using
|
|
||||||
-- (most likely LuaJIT in the case of Neovim)
|
|
||||||
version = "LuaJIT",
|
|
||||||
},
|
|
||||||
-- Make the server aware of Neovim runtime files
|
|
||||||
workspace = {
|
|
||||||
checkThirdParty = false,
|
|
||||||
library = {
|
|
||||||
vim.env.VIMRUNTIME,
|
|
||||||
-- Depending on the usage, you might want to add additional paths here.
|
|
||||||
-- "${3rd}/luv/library"
|
|
||||||
-- "${3rd}/busted/library",
|
|
||||||
},
|
|
||||||
-- or pull in all of 'runtimepath'. NOTE: this is a lot slower
|
|
||||||
-- library = vim.api.nvim_get_runtime_file("", true)
|
|
||||||
completion = {
|
|
||||||
callSnippet = "Replace",
|
|
||||||
},
|
|
||||||
doc = {
|
|
||||||
privateName = { "^_" },
|
|
||||||
},
|
|
||||||
hint = {
|
|
||||||
enable = true,
|
|
||||||
setType = false,
|
|
||||||
paramType = true,
|
|
||||||
paramName = "Disable",
|
|
||||||
semicolon = "Disable",
|
|
||||||
arrayIndex = "Disable",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"frostplexx/mason-bridge.nvim",
|
|
||||||
dependencies = { "williamboman/mason.nvim" },
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
return {
|
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
|
||||||
"milanglacier/minuet-ai.nvim",
|
|
||||||
config = function()
|
|
||||||
require("minuet").setup({
|
|
||||||
provider = "openai_fim_compatible",
|
|
||||||
n_completions = 1, -- recommend for local model for resource saving
|
|
||||||
context_window = 512,
|
|
||||||
provider_options = {
|
|
||||||
openai_fim_compatible = {
|
|
||||||
-- For Windows users, TERM may not be present in environment variables.
|
|
||||||
-- Consider using APPDATA instead.
|
|
||||||
api_key = "TERM",
|
|
||||||
name = "LLama.cpp",
|
|
||||||
end_point = "http://localhost:8012/v1/completions",
|
|
||||||
model = "PLACEHOLDER",
|
|
||||||
optional = {
|
|
||||||
max_tokens = 56,
|
|
||||||
top_p = 0.9,
|
|
||||||
},
|
|
||||||
template = {
|
|
||||||
prompt = function(context_before_cursor, context_after_cursor, _)
|
|
||||||
return "<|fim_prefix|>"
|
|
||||||
.. context_before_cursor
|
|
||||||
.. "<|fim_suffix|>"
|
|
||||||
.. context_after_cursor
|
|
||||||
.. "<|fim_middle|>"
|
|
||||||
end,
|
|
||||||
suffix = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
virtualtext = {
|
|
||||||
auto_trigger_ft = {},
|
|
||||||
keymap = {
|
|
||||||
-- accept whole completion
|
|
||||||
accept = "<M-T>",
|
|
||||||
-- accept one line
|
|
||||||
accept_line = "<M-t>",
|
|
||||||
-- accept n lines (prompts for number)
|
|
||||||
-- e.g. "A-z 2 CR" will accept 2 lines
|
|
||||||
accept_n_lines = "<M-z>",
|
|
||||||
-- Cycle to prev completion item, or manually invoke completion
|
|
||||||
prev = "<M-h>",
|
|
||||||
-- Cycle to next completion item, or manually invoke completion
|
|
||||||
next = "<M-l>",
|
|
||||||
dismiss = "<M-e>",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +1,14 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"nvim-neorg/neorg",
|
after = { "telescope", "nvim-treesitter" },
|
||||||
lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
|
configure = function(load)
|
||||||
dependencies = {
|
load("nvim-neotest/nvim-nio")
|
||||||
{
|
load("pysan3/pathlib.nvim")
|
||||||
"juniorsundar/neorg-extras",
|
load("nvim-neorg/lua-utils.nvim")
|
||||||
-- tag = "v0.3.1" -- Always a safe bet to track current latest release
|
load("juniorsundar/neorg-extras")
|
||||||
},
|
load("nvim-neorg/neorg")
|
||||||
"nvim-telescope/telescope.nvim", -- Required for the Neorg-Roam features
|
require("neorg").setup({
|
||||||
"nvim-lua/plenary.nvim", -- Required as part of Telescope installation
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
load = {
|
load = {
|
||||||
["external.many-mans"] = {
|
["external.many-mans"] = {
|
||||||
config = {
|
config = {
|
||||||
|
|
@ -20,6 +18,10 @@ return {
|
||||||
},
|
},
|
||||||
["core.defaults"] = {},
|
["core.defaults"] = {},
|
||||||
["core.concealer"] = {},
|
["core.concealer"] = {},
|
||||||
|
-- ["core.completion"] = { config = { engine = "nvim-cmp" } },
|
||||||
|
-- ["core.integrations.treesitter"] = {},
|
||||||
|
["core.clipboard.code-blocks"] = {},
|
||||||
|
["core.esupports.indent"] = {},
|
||||||
["core.dirman"] = {
|
["core.dirman"] = {
|
||||||
config = {
|
config = {
|
||||||
workspaces = {
|
workspaces = {
|
||||||
|
|
@ -30,14 +32,7 @@ return {
|
||||||
default_workspace = "notes",
|
default_workspace = "notes",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["core.completion"] = { config = { engine = "nvim-cmp" } },
|
|
||||||
["core.integrations.treesitter"] = {},
|
|
||||||
["core.clipboard.code-blocks"] = {},
|
|
||||||
["core.esupports.indent"] = {},
|
|
||||||
},
|
},
|
||||||
},
|
})
|
||||||
ft = "norg",
|
end,
|
||||||
cmd = "Neorg",
|
|
||||||
config = true,
|
|
||||||
version = "*",
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"EdenEast/nightfox.nvim",
|
configure = function(load)
|
||||||
init = function()
|
load("EdenEast/nightfox.nvim")
|
||||||
vim.cmd("colorscheme carbonfox")
|
vim.cmd("colorscheme carbonfox")
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
|
||||||
"hrsh7th/cmp-path",
|
|
||||||
"hrsh7th/cmp-cmdline",
|
|
||||||
"hrsh7th/cmp-nvim-lua",
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
"mtoohey31/cmp-fish",
|
|
||||||
"petertriho/cmp-git",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local cmp = require("cmp")
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
sources = {
|
|
||||||
{
|
|
||||||
name = "lazydev",
|
|
||||||
group_index = 0, -- set group index to 0 to skip loading LuaLS completions
|
|
||||||
},
|
|
||||||
{ name = "nvim_lua" },
|
|
||||||
{
|
|
||||||
name = "nvim_lsp",
|
|
||||||
entry_filter = function(entry, ctx)
|
|
||||||
local kind = require("cmp.types").lsp.CompletionItemKind[entry:get_kind()]
|
|
||||||
|
|
||||||
if kind == "Text" then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ name = "neorg" },
|
|
||||||
{ name = "fish" },
|
|
||||||
},
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
-- You need Neovim v0.10 to use vim.snippet
|
|
||||||
vim.snippet.expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
cmp.setup.filetype("gitcommit", {
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = "git" },
|
|
||||||
}, {
|
|
||||||
{ name = "buffer" },
|
|
||||||
}),
|
|
||||||
}),
|
|
||||||
require("cmp_git").setup({}),
|
|
||||||
|
|
||||||
window = {
|
|
||||||
completion = cmp.config.window.bordered(),
|
|
||||||
documentation = cmp.config.window.bordered(),
|
|
||||||
},
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
["<C-Space>"] = cmp.mapping.complete(),
|
|
||||||
["<S-NL>"] = cmp.mapping.scroll_docs(-4),
|
|
||||||
["<C-S-K>"] = cmp.mapping.scroll_docs(-4),
|
|
||||||
[" "] = cmp.mapping.confirm(),
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"folke/lazydev.nvim",
|
|
||||||
ft = "lua", -- only load on lua files
|
|
||||||
config = function()
|
|
||||||
local lazydev = require("lazydev")
|
|
||||||
require("lazydev").setup()
|
|
||||||
vim.lsp.enable("lua_ls")
|
|
||||||
vim.lsp.config("lua_ls", {
|
|
||||||
root_dir = function(bufnr, on_dir)
|
|
||||||
on_dir(lazydev.find_workspace(bufnr))
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"mfussenegger/nvim-lint",
|
after = "mason-bridge",
|
||||||
init = function()
|
configure = function(load)
|
||||||
|
load("mfussenegger/nvim-lint")
|
||||||
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
|
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
|
||||||
callback = function()
|
callback = function()
|
||||||
require "lint".try_lint()
|
require("lint").linters_by_ft = require("mason-bridge").get_linters()
|
||||||
|
require("lint").try_lint()
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -15,5 +19,5 @@ return {
|
||||||
})
|
})
|
||||||
|
|
||||||
require("lint").linters_by_ft = require("mason-bridge").get_linters()
|
require("lint").linters_by_ft = require("mason-bridge").get_linters()
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
return {
|
|
||||||
"taeber/vim-peg",
|
|
||||||
lazy = false,
|
|
||||||
}
|
|
||||||
8
lua/plugins/plenary.lua
Normal file
8
lua/plugins/plenary.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
configures = "plenary",
|
||||||
|
configure = function(load)
|
||||||
|
load("nvim-lua/plenary.nvim")
|
||||||
|
end,
|
||||||
|
}
|
||||||
13
lua/plugins/rpc.lua
Normal file
13
lua/plugins/rpc.lua
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
configure = function(load)
|
||||||
|
load("vyfor/cord.nvim")
|
||||||
|
require("cord").setup({
|
||||||
|
display = {
|
||||||
|
theme = "catppuccin",
|
||||||
|
flavor = "dark",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
return {
|
|
||||||
"michaelb/sniprun",
|
|
||||||
branch = "master",
|
|
||||||
|
|
||||||
build = "sh install.sh",
|
|
||||||
-- do 'sh install.sh 1' if you want to force compile locally
|
|
||||||
-- (instead of fetching a binary from the github release). Requires Rust >= 1.65
|
|
||||||
|
|
||||||
opts = {
|
|
||||||
repl_enable = { "Mathematica_original" },
|
|
||||||
interpreter_options = {
|
|
||||||
Lua_nvim = {
|
|
||||||
use_on_filetypes = { "lua" },
|
|
||||||
},
|
|
||||||
Mathematica_original = {
|
|
||||||
use_javagraphics_if_contains = { "Plot" }, -- a pattern that need <<JavaGraphics
|
|
||||||
},
|
|
||||||
},
|
|
||||||
display = {
|
|
||||||
"VirtualLine",
|
|
||||||
},
|
|
||||||
live_mode_toggle = "enable",
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{ "<leader>r", "<Plug>SnipRun", desc = "run snipper", silent = true },
|
|
||||||
{ "<leader>R", "<Plug>SnipLive", desc = "run snipper in REPL mode", silent = true },
|
|
||||||
},
|
|
||||||
|
|
||||||
lazy = false,
|
|
||||||
|
|
||||||
config = true,
|
|
||||||
}
|
|
||||||
8
lua/plugins/statusline.lua
Normal file
8
lua/plugins/statusline.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
configure = function(load)
|
||||||
|
load({ "Dario48/darioline", source = "https://dario48.site/git/" })
|
||||||
|
require("darioline").setup()
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
return {
|
|
||||||
"lambdalisue/vim-suda",
|
|
||||||
}
|
|
||||||
15
lua/plugins/table-mode.lua
Normal file
15
lua/plugins/table-mode.lua
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
|
return {
|
||||||
|
configure = function(load)
|
||||||
|
load("dhruvasagar/vim-table-mode")
|
||||||
|
|
||||||
|
vim.g.table_mode_corner = "+"
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<LocalLeader>tm", "<cmd>TableModeToggle<cr>", { desc = "toggla table mode" })
|
||||||
|
vim.keymap.set("n", "<LocalLeader>tt", "<cmd>Tableize<cr>", { desc = "transform CVS to table" })
|
||||||
|
vim.keymap.set("n", "<LocalLeader>T", function()
|
||||||
|
vim.api.nvim_command("Tableize/" .. vim.fn.input("what separator to use? "))
|
||||||
|
end, { desc = "transform CVS to table" })
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -1,24 +1,20 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
configures = "nvim-treesitter",
|
||||||
opts = {
|
configure = function(load)
|
||||||
-- A list of parser names, or "all" (the listed parsers MUST always be installed)
|
load("nvim-treesitter/nvim-treesitter")
|
||||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "query" },
|
|
||||||
|
|
||||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
require("nvim-treesitter").install({ "c", "lua", "vim", "vimdoc", "query" }):wait(300000)
|
||||||
sync_install = true,
|
|
||||||
|
|
||||||
-- Automatically install missing parsers when entering buffer
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
pattern = require("nvim-treesitter").get_installed(),
|
||||||
auto_install = false,
|
callback = function()
|
||||||
|
vim.treesitter.start()
|
||||||
-- List of parsers to ignore installing (or "all")
|
end,
|
||||||
|
})
|
||||||
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
end,
|
||||||
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
onUpdate = function()
|
||||||
highlight = { enable = true },
|
vim.cmd("TSUpdate")
|
||||||
},
|
|
||||||
config = function(_, opts)
|
|
||||||
require("nvim-treesitter.configs").setup(opts)
|
|
||||||
end,
|
end,
|
||||||
version = "*",
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
return {
|
|
||||||
"Apeiros-46B/uiua.vim",
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
|
---@module "utils.plugins"
|
||||||
|
---@type Plugin
|
||||||
return {
|
return {
|
||||||
"HiPhish/rainbow-delimiters.nvim",
|
configure = function(load)
|
||||||
lazy = false,
|
load("HiPhish/rainbow-delimiters.nvim")
|
||||||
init = function()
|
|
||||||
-- This module contains a number of default definitions
|
-- This module contains a number of default definitions
|
||||||
local rainbow_delimiters = require("rainbow-delimiters")
|
local rainbow_delimiters = require("rainbow-delimiters")
|
||||||
|
|
||||||
|
|
@ -29,5 +31,8 @@ return {
|
||||||
"RainbowDelimiterCyan",
|
"RainbowDelimiterCyan",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
load("nvim-tree/nvim-web-devicons")
|
||||||
|
load("folke/which-key.nvim")
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
return {
|
|
||||||
"jbyuki/venn.nvim",
|
|
||||||
|
|
||||||
config = function()
|
|
||||||
vim.b.ve = "all"
|
|
||||||
end,
|
|
||||||
|
|
||||||
keys = {
|
|
||||||
{ "J", "<C-v>j:VBox<CR>", mode = "n", noremap = true },
|
|
||||||
{ "K", "<C-v>k:VBox<CR>", mode = "n", noremap = true },
|
|
||||||
{ "L", "<C-v>l:VBox<CR>", mode = "n", noremap = true },
|
|
||||||
{ "H", "<C-v>h:VBox<CR>", mode = "n", noremap = true },
|
|
||||||
-- draw a box by pressing "f" with visual selection,
|
|
||||||
{ "f", ":VBox<CR>", mode = "v", noremap = true },
|
|
||||||
},
|
|
||||||
|
|
||||||
lazy = true,
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
return {
|
|
||||||
"luk400/vim-jukit",
|
|
||||||
lazu = true,
|
|
||||||
ft = "ipynb",
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
return {
|
|
||||||
"dhruvasagar/vim-table-mode",
|
|
||||||
config = function()
|
|
||||||
vim.g.table_mode_corner = "+"
|
|
||||||
end,
|
|
||||||
keys = {
|
|
||||||
{ "<LocalLeader>tm", "<cmd>TableModeToggle<cr>", desc = "toggla table mode" },
|
|
||||||
{ "<LocalLeader>tt", "<cmd>Tableize<cr>", desc = "transform CVS to table" },
|
|
||||||
{
|
|
||||||
"<LocalLeader>T",
|
|
||||||
function()
|
|
||||||
vim.api.nvim_command("Tableize/" .. vim.fn.input("what separator to use? "))
|
|
||||||
end,
|
|
||||||
desc = "transform CVS to table",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
return {
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
|
||||||
}
|
|
||||||
127
lua/utils/plugins.lua
Normal file
127
lua/utils/plugins.lua
Normal file
|
|
@ -0,0 +1,127 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.loaded = {}
|
||||||
|
|
||||||
|
M.waiting = {}
|
||||||
|
|
||||||
|
---nice utility wrapper around vim.pack.add
|
||||||
|
---@param plugin string|table
|
||||||
|
function M.load(plugin)
|
||||||
|
if plugin == nil then
|
||||||
|
error("value passed to load is nil")
|
||||||
|
end
|
||||||
|
if type(plugin) == "table" then
|
||||||
|
if type(plugin[1]) == "table" then
|
||||||
|
for _, i in ipairs(plugin) do
|
||||||
|
M.load(i)
|
||||||
|
end
|
||||||
|
elseif type(plugin[1]) == "string" then
|
||||||
|
local name = plugin[1]
|
||||||
|
if plugin.source == nil then
|
||||||
|
name = "https://github.com/" .. name
|
||||||
|
elseif type(plugin.source) == "string" then
|
||||||
|
name = plugin.source .. name
|
||||||
|
else
|
||||||
|
error("plugin source must be either string or nil")
|
||||||
|
end
|
||||||
|
|
||||||
|
if plugin.load == nil then
|
||||||
|
vim.pack.add({ name })
|
||||||
|
else
|
||||||
|
vim.pack.add({ name }, { load = plugin.load })
|
||||||
|
end
|
||||||
|
else
|
||||||
|
error("table passed to load is invalid")
|
||||||
|
end
|
||||||
|
elseif type(plugin) == "string" then
|
||||||
|
vim.pack.add({ "https://github.com/" .. plugin })
|
||||||
|
else
|
||||||
|
error("value passed to load must be string or table [of tables]* of strings")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
---get plugin, expect it to be in @VIMRC/lua/plugins/name.lua
|
||||||
|
---@param plugin string
|
||||||
|
---@return Plugin
|
||||||
|
function M.get(plugin)
|
||||||
|
return require("plugins." .. plugin)
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param pkg Plugin
|
||||||
|
---@return boolean
|
||||||
|
local isDoneWaiting = function(pkg)
|
||||||
|
local after = pkg.after
|
||||||
|
---@cast after table
|
||||||
|
|
||||||
|
for _, i in pairs(after) do
|
||||||
|
if not M.loaded[i] then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
---@class Plugin
|
||||||
|
---@field configure fun(load: fun(string)): nil
|
||||||
|
---@field after? string|table
|
||||||
|
---@field configures? string
|
||||||
|
---@field onUpdate? fun(ev): nil
|
||||||
|
|
||||||
|
---parse a plugin in the util.Plugin format
|
||||||
|
---@param plugin Plugin
|
||||||
|
function M.parse(plugin)
|
||||||
|
local load = false
|
||||||
|
if plugin.after == nil then
|
||||||
|
load = true
|
||||||
|
elseif type(plugin.after) == "string" then
|
||||||
|
load = M.loaded[plugin.after]
|
||||||
|
else
|
||||||
|
load = isDoneWaiting(plugin)
|
||||||
|
end
|
||||||
|
|
||||||
|
if load then
|
||||||
|
plugin.configure(M.load)
|
||||||
|
|
||||||
|
if plugin.configures ~= nil then
|
||||||
|
M.loaded[plugin.configures] = true
|
||||||
|
|
||||||
|
if M.waiting[plugin.configures] ~= nil then
|
||||||
|
for _, i in pairs(M.waiting[plugin.configures]) do
|
||||||
|
M.parse(i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
M.waiting[plugin.configures] = nil
|
||||||
|
if plugin.onUpdate ~= nil then
|
||||||
|
vim.api.nvim_create_autocmd("PackChanged", {
|
||||||
|
callback = function(ev)
|
||||||
|
local name, kind = ev.data.spec.name, ev.data.kind
|
||||||
|
if name == plugin.configures and kind == "update" then
|
||||||
|
if not ev.data.active then
|
||||||
|
vim.cmd.packadd(plugin.configures)
|
||||||
|
end
|
||||||
|
plugin.onUpdate(ev)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if type(plugin.after == "string") then
|
||||||
|
if M.waiting[plugin.after] == nil then
|
||||||
|
M.waiting[plugin.after] = {}
|
||||||
|
end
|
||||||
|
table.insert(M.waiting[plugin.after], plugin)
|
||||||
|
else
|
||||||
|
local after = plugin.after
|
||||||
|
---@cast after table
|
||||||
|
for _, i in pairs(after) do
|
||||||
|
if M.waiting[i] == nil then
|
||||||
|
M.waiting[i] = {}
|
||||||
|
end
|
||||||
|
table.insert(M.waiting[i], plugin)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
116
nvim-pack-lock.json
Normal file
116
nvim-pack-lock.json
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
{
|
||||||
|
"plugins": {
|
||||||
|
"ansi.nvim": {
|
||||||
|
"rev": "63462a1550878a5f1a89d5383279775e1882948e",
|
||||||
|
"src": "https://github.com/0xferrous/ansi.nvim"
|
||||||
|
},
|
||||||
|
"boo.nvim": {
|
||||||
|
"rev": "926b2e92c7e4341ef5e64c7c8f3373768f5e9437",
|
||||||
|
"src": "https://github.com/LukasPietzschmann/boo.nvim"
|
||||||
|
},
|
||||||
|
"conform.nvim": {
|
||||||
|
"rev": "086a40dc7ed8242c03be9f47fbcee68699cc2395",
|
||||||
|
"src": "https://github.com/stevearc/conform.nvim"
|
||||||
|
},
|
||||||
|
"cord.nvim": {
|
||||||
|
"rev": "283e4a5bdafd0d6187f28e5b739cccab6b4c9c64",
|
||||||
|
"src": "https://github.com/vyfor/cord.nvim"
|
||||||
|
},
|
||||||
|
"darioline": {
|
||||||
|
"rev": "e13f982d3fb11ef62938f5f1b00e205965e94662",
|
||||||
|
"src": "https://dario48.site/git/Dario48/darioline"
|
||||||
|
},
|
||||||
|
"diagram.nvim": {
|
||||||
|
"rev": "89d8110ec15021ac9a03ff2317d27b900c45bf60",
|
||||||
|
"src": "https://github.com/3rd/diagram.nvim"
|
||||||
|
},
|
||||||
|
"image.nvim": {
|
||||||
|
"rev": "da2be65c153ba15a14a342b05591652a6df70d58",
|
||||||
|
"src": "https://github.com/3rd/image.nvim"
|
||||||
|
},
|
||||||
|
"lazydev.nvim": {
|
||||||
|
"rev": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d",
|
||||||
|
"src": "https://github.com/folke/lazydev.nvim"
|
||||||
|
},
|
||||||
|
"lua-utils.nvim": {
|
||||||
|
"rev": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd",
|
||||||
|
"src": "https://github.com/nvim-neorg/lua-utils.nvim"
|
||||||
|
},
|
||||||
|
"mason-bridge.nvim": {
|
||||||
|
"rev": "19bc564adbb44eaf151e863ffb0a439c4b8c4a79",
|
||||||
|
"src": "https://github.com/frostplexx/mason-bridge.nvim"
|
||||||
|
},
|
||||||
|
"mason-lspconfig.nvim": {
|
||||||
|
"rev": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b",
|
||||||
|
"src": "https://github.com/mason-org/mason-lspconfig.nvim"
|
||||||
|
},
|
||||||
|
"mason.nvim": {
|
||||||
|
"rev": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65",
|
||||||
|
"src": "https://github.com/mason-org/mason.nvim"
|
||||||
|
},
|
||||||
|
"neorg": {
|
||||||
|
"rev": "338f601c7c164e7e3ded7539f209c1f12344a5d5",
|
||||||
|
"src": "https://github.com/nvim-neorg/neorg"
|
||||||
|
},
|
||||||
|
"neorg-extras": {
|
||||||
|
"rev": "6e5f33c6e3be0a72134dde576fd95c8ca018f531",
|
||||||
|
"src": "https://github.com/juniorsundar/neorg-extras"
|
||||||
|
},
|
||||||
|
"nightfox.nvim": {
|
||||||
|
"rev": "ba47d4b4c5ec308718641ba7402c143836f35aa9",
|
||||||
|
"src": "https://github.com/EdenEast/nightfox.nvim"
|
||||||
|
},
|
||||||
|
"nvim-lint": {
|
||||||
|
"rev": "4b03656c09c1561f89b6aa0665c15d292ba9499d",
|
||||||
|
"src": "https://github.com/mfussenegger/nvim-lint"
|
||||||
|
},
|
||||||
|
"nvim-lspconfig": {
|
||||||
|
"rev": "16812abf0e8d8175155f26143a8504e8253e92b0",
|
||||||
|
"src": "https://github.com/neovim/nvim-lspconfig"
|
||||||
|
},
|
||||||
|
"nvim-nio": {
|
||||||
|
"rev": "21f5324bfac14e22ba26553caf69ec76ae8a7662",
|
||||||
|
"src": "https://github.com/nvim-neotest/nvim-nio"
|
||||||
|
},
|
||||||
|
"nvim-treesitter": {
|
||||||
|
"rev": "7caec274fd19c12b55902a5b795100d21531391f",
|
||||||
|
"src": "https://github.com/nvim-treesitter/nvim-treesitter"
|
||||||
|
},
|
||||||
|
"nvim-web-devicons": {
|
||||||
|
"rev": "d7462543c9e366c0d196c7f67a945eaaf5d99414",
|
||||||
|
"src": "https://github.com/nvim-tree/nvim-web-devicons"
|
||||||
|
},
|
||||||
|
"pathlib.nvim": {
|
||||||
|
"rev": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1",
|
||||||
|
"src": "https://github.com/pysan3/pathlib.nvim"
|
||||||
|
},
|
||||||
|
"plenary.nvim": {
|
||||||
|
"rev": "b9fd5226c2f76c951fc8ed5923d85e4de065e509",
|
||||||
|
"src": "https://github.com/nvim-lua/plenary.nvim"
|
||||||
|
},
|
||||||
|
"rainbow-delimiters.nvim": {
|
||||||
|
"rev": "50080ed0f44dbc18ae13b81278a01b951a06127a",
|
||||||
|
"src": "https://github.com/HiPhish/rainbow-delimiters.nvim"
|
||||||
|
},
|
||||||
|
"telescope.nvim": {
|
||||||
|
"rev": "cfb85dcf7f822b79224e9e6aef9e8c794211b20b",
|
||||||
|
"src": "https://github.com/nvim-telescope/telescope.nvim"
|
||||||
|
},
|
||||||
|
"venn.nvim": {
|
||||||
|
"rev": "b09c2f36ddf70b498281845109bedcf08a7e0de0",
|
||||||
|
"src": "https://github.com/jbyuki/venn.nvim"
|
||||||
|
},
|
||||||
|
"vim-table-mode": {
|
||||||
|
"rev": "bb025308a45c67c7c8f0763ba37bc2ee3f534df0",
|
||||||
|
"src": "https://github.com/dhruvasagar/vim-table-mode"
|
||||||
|
},
|
||||||
|
"vimtex": {
|
||||||
|
"rev": "9306903316c3ddd250676b7cf97c84a84c9c8f99",
|
||||||
|
"src": "https://github.com/lervag/vimtex"
|
||||||
|
},
|
||||||
|
"which-key.nvim": {
|
||||||
|
"rev": "3aab2147e74890957785941f0c1ad87d0a44c15a",
|
||||||
|
"src": "https://github.com/folke/which-key.nvim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue