aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPolesznyák Márk <contact@pml68.dev>2026-04-04 03:16:27 +0200
committerPolesznyák Márk <contact@pml68.dev>2026-04-04 10:12:16 +0200
commit8bb513a86e8bea07fdb8cea71d254d46ffc7806b (patch)
tree745bd411d173e4da9355b214dc74edde08f42692
parentfeat: enable ui2, add back LspLog command (diff)
downloadnvim-8bb513a86e8bea07fdb8cea71d254d46ffc7806b.tar.gz
feat!: migrate to vim.pack
-rw-r--r--.gitignore2
-rw-r--r--after/ftplugin/rust.lua2
-rw-r--r--ftplugin/hare.lua6
-rw-r--r--ftplugin/java.lua3
-rw-r--r--ftplugin/json.lua1
-rw-r--r--ftplugin/rust.lua4
-rw-r--r--ftplugin/tex.lua2
-rw-r--r--init.lua21
-rw-r--r--lsp/gopls.lua10
-rw-r--r--lua/pml68/lazy.lua47
-rw-r--r--lua/pml68/plugins/colors.lua31
-rw-r--r--lua/pml68/plugins/completion.lua35
-rw-r--r--lua/pml68/plugins/git.lua22
-rw-r--r--lua/pml68/plugins/guard.lua25
-rw-r--r--lua/pml68/plugins/lang-specific.lua62
-rw-r--r--lua/pml68/plugins/lsp.lua22
-rw-r--r--lua/pml68/plugins/misc.lua19
-rw-r--r--lua/pml68/plugins/oil.lua29
-rw-r--r--lua/pml68/plugins/other.lua26
-rw-r--r--lua/pml68/plugins/telescope.lua17
-rw-r--r--lua/pml68/plugins/treesitter.lua68
-rw-r--r--plugin/00-settings.lua (renamed from lua/pml68/settings.lua)54
-rw-r--r--plugin/10-remap.lua (renamed from lua/pml68/remap.lua)94
-rw-r--r--plugin/20-colors.lua27
-rw-r--r--plugin/30-lspconfig.lua (renamed from lua/pml68/lsp.lua)22
-rw-r--r--plugin/40-completion.lua36
-rw-r--r--plugin/40-git.lua18
-rw-r--r--plugin/40-guard.lua14
-rw-r--r--plugin/40-lsp.lua (renamed from lua/pml68/configs/mason.lua)25
-rw-r--r--plugin/40-misc.lua17
-rw-r--r--plugin/40-oil.lua24
-rw-r--r--plugin/40-treesitter.lua58
32 files changed, 371 insertions, 472 deletions
diff --git a/.gitignore b/.gitignore
index e033bc6..92a49de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-lazy-lock.json
+nvim-pack-lock.json
diff --git a/after/ftplugin/rust.lua b/after/ftplugin/rust.lua
index 2821b78..5247399 100644
--- a/after/ftplugin/rust.lua
+++ b/after/ftplugin/rust.lua
@@ -1 +1 @@
-vim.cmd [[set commentstring=//\ %s]]
+vim.cmd("set commentstring=// %s")
diff --git a/ftplugin/hare.lua b/ftplugin/hare.lua
new file mode 100644
index 0000000..c3c0c45
--- /dev/null
+++ b/ftplugin/hare.lua
@@ -0,0 +1,6 @@
+vim.pack.add({ "git://git.pml68.dev/vim-haredoc" })
+
+vim.bo.keywordprg = "haredoc"
+
+vim.keymap.set("n", "K", ":call Haredoc('.')<CR>", { buf = 0 })
+vim.keymap.set("n", "gd", ":call Haredoc(';')<CR>", { buf = 0 })
diff --git a/ftplugin/java.lua b/ftplugin/java.lua
index ccec910..5f20b17 100644
--- a/ftplugin/java.lua
+++ b/ftplugin/java.lua
@@ -1,3 +1,5 @@
+vim.pack.add({ "https://github.com/mfussenegger/nvim-jdtls" })
+
local home = vim.env.HOME
local jdtls = require("jdtls")
@@ -98,7 +100,6 @@ local config = {
},
},
},
- capabilities = require("cmp_nvim_lsp").default_capabilities(),
flags = {
allow_incremental_sync = true,
},
diff --git a/ftplugin/json.lua b/ftplugin/json.lua
new file mode 100644
index 0000000..83a11b6
--- /dev/null
+++ b/ftplugin/json.lua
@@ -0,0 +1 @@
+vim.pack.add({ "https://github.com/b0o/schemastore.nvim" })
diff --git a/ftplugin/rust.lua b/ftplugin/rust.lua
new file mode 100644
index 0000000..1926f6f
--- /dev/null
+++ b/ftplugin/rust.lua
@@ -0,0 +1,4 @@
+vim.pack.add({ "https://github.com/rust-lang/rust.vim" })
+
+vim.keymap.set("n", "<leader>rts", "<cmd>RustTest<CR>")
+vim.keymap.set("n", "<leader>rta", "<cmd>RustTest!<CR>")
diff --git a/ftplugin/tex.lua b/ftplugin/tex.lua
new file mode 100644
index 0000000..3310443
--- /dev/null
+++ b/ftplugin/tex.lua
@@ -0,0 +1,2 @@
+vim.pack.add({ "https://github.com/micangl/cmp-vimtex" })
+vim.pack.add({ "https://github.com/lervag/vimtex" })
diff --git a/init.lua b/init.lua
index 164a954..7bbf57e 100644
--- a/init.lua
+++ b/init.lua
@@ -1,4 +1,17 @@
-require("pml68.settings")
-require("pml68.remap")
-require("pml68.lsp")
-require("pml68.lazy")
+vim.loader.enable()
+
+vim.api.nvim_create_autocmd("PackChanged", {
+ callback = function(ev)
+ local name, kind = ev.data.spec.name, ev.data.kind
+
+ if name == "nvim-treesitter" and kind == "update" then
+ if not ev.data.active then vim.cmd.packadd("nvim-treesitter") end
+ vim.cmd("TSUpdate")
+ end
+
+ if name == "mason.nvim" and kind == "update" then
+ if not ev.data.active then vim.cmd.packadd("mason.nvim") end
+ vim.cmd("MasonInstallAll")
+ end
+ end
+})
diff --git a/lsp/gopls.lua b/lsp/gopls.lua
deleted file mode 100644
index a2b5212..0000000
--- a/lsp/gopls.lua
+++ /dev/null
@@ -1,10 +0,0 @@
-return {
- settings = {
- gopls = {
- completeUnimported = true,
- analyses = {
- unusedparams = true,
- },
- },
- },
-}
diff --git a/lua/pml68/lazy.lua b/lua/pml68/lazy.lua
deleted file mode 100644
index 32500fa..0000000
--- a/lua/pml68/lazy.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
-if not (vim.uv or vim.loop).fs_stat(lazypath) then
- local out = vim.fn.system({
- "git",
- "clone",
- "--filter=blob:none",
- "https://github.com/folke/lazy.nvim.git",
- "--branch=stable", -- latest stable release
- 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)
-
-require("lazy").setup("pml68.plugins", {
- defaults = { lazy = true },
- change_detection = {
- notify = false,
- },
- performance = {
- cache = {
- enabled = true,
- },
- rtp = {
- disabled_plugins = {
- "gzip",
- "tarPlugin",
- "tohtml",
- "tutor",
- "zipPlugin",
- "osc52",
- "netrwPlugin",
- },
- },
- },
- ui = {
- border = "rounded"
- },
-})
diff --git a/lua/pml68/plugins/colors.lua b/lua/pml68/plugins/colors.lua
deleted file mode 100644
index 17a1ca1..0000000
--- a/lua/pml68/plugins/colors.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-return {
- {
- "uga-rosa/ccc.nvim",
- event = { "BufReadPost", "BufNewFile" },
- opts = {
- highlighter = {
- auto_enable = true,
- lsp = true,
- },
- },
- },
- {
- "pml68/rosepine-tmuxed",
- name = "rose-pine",
- priority = 1000,
- lazy = false,
- config = function()
- require("rose-pine").setup({
- styles = {
- transparency = true,
- italic = false,
- },
- highlight_groups = {
- StatusLine = { fg = "iris", bg = "iris", blend = 25 },
- StatusLineNC = { fg = "subtle", bg = "surface" },
- },
- })
- vim.cmd("colorscheme rose-pine")
- end
- },
-}
diff --git a/lua/pml68/plugins/completion.lua b/lua/pml68/plugins/completion.lua
deleted file mode 100644
index 596b1af..0000000
--- a/lua/pml68/plugins/completion.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-return {
- {
- "saghen/blink.compat",
- version = "2.*",
- opts = {}
- },
- {
- "saghen/blink.cmp",
- lazy = false,
- version = "1.*",
- opts = {
- keymap = { preset = "default" },
- appearance = {
- nerd_font_variant = "normal",
- },
- completion = {
- documentation = {
- auto_show = true,
- auto_show_delay_ms = 150,
- },
- },
- sources = {
- default = { "lsp", "path", "vimtex", "buffer" },
- providers = {
- vimtex = {
- name = "vimtex",
- module = "blink.compat.source",
- },
- },
- },
- cmdline = { enabled = false },
- signature = { enabled = true },
- },
- },
-}
diff --git a/lua/pml68/plugins/git.lua b/lua/pml68/plugins/git.lua
deleted file mode 100644
index e94c230..0000000
--- a/lua/pml68/plugins/git.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-return {
- "lewis6991/gitsigns.nvim",
- event = { "BufReadPost", "BufNewFile" },
- config = function()
- require("gitsigns").setup({
- signs = {
- add = { text = "│" },
- change = { text = "│" },
- delete = { text = "󰍵" },
- topdelete = { text = "‾" },
- changedelete = { text = "~" },
- untracked = { text = "│" },
- },
- on_attach = function(bufnr)
- local gs = package.loaded.gitsigns
-
- vim.keymap.set("n", "<leader>gb", gs.blame_line, { buffer = bufnr })
- vim.keymap.set("n", "<leader>gr", gs.reset_hunk, { buffer = bufnr })
- end,
- })
- end
-}
diff --git a/lua/pml68/plugins/guard.lua b/lua/pml68/plugins/guard.lua
deleted file mode 100644
index 7f609de..0000000
--- a/lua/pml68/plugins/guard.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-return {
- "nvimdev/guard.nvim",
- dependencies = {
- "nvimdev/guard-collection"
- },
- ft = { "c", "cpp", "h", "toml", "json", "go", "lua" },
- config = function()
- local ft = require("guard.filetype")
-
- ft("c,cpp,h"):fmt("clang-format")
- ft("toml"):fmt("taplo")
- ft("json"):fmt("jq")
-
- ft("go"):fmt({
- cmd = "golines",
- args = { "--max-len=80", "--base-formatter=gofumpt" },
- stdin = true,
- })
-
- vim.g.guard_config = {
- fmt_on_save = true,
- lsp_as_default_formatter = true,
- }
- end
-}
diff --git a/lua/pml68/plugins/lang-specific.lua b/lua/pml68/plugins/lang-specific.lua
deleted file mode 100644
index b1eff88..0000000
--- a/lua/pml68/plugins/lang-specific.lua
+++ /dev/null
@@ -1,62 +0,0 @@
-return {
- -- JSON
- {
- "b0o/schemastore.nvim",
- lazy = false,
- },
- -- Java
- {
- "mfussenegger/nvim-jdtls"
- },
- -- Go
- {
- "olexsmir/gopher.nvim",
- ft = "go",
- build = ":GoInstallDeps",
- },
- -- Rust
- {
- "rust-lang/rust.vim",
- ft = "rust",
- init = function()
- vim.g.rustfmt_autosave = 1
- end,
- config = function()
- vim.keymap.set("n", "<leader>rts", "<cmd>RustTest<CR>")
- vim.keymap.set("n", "<leader>rta", "<cmd>RustTest!<CR>")
- end
- },
- {
- "saecki/crates.nvim",
- event = { "BufRead Cargo.toml", "BufWrite Cargo.toml" },
- config = function()
- local crates = require("crates")
- crates.setup({
- lsp = {
- enabled = true,
- actions = true,
- completion = true,
- hover = true,
- },
- })
-
- vim.keymap.set("n", "<leader>rcu", function()
- crates.upgrade_all_crates()
- end)
- end
- },
- -- LaTeX
- {
- "lervag/vimtex",
- dependencies = "micangl/cmp-vimtex",
- ft = "tex",
- init = function()
- vim.g.vimtex_view_method = 'mupdf'
- end,
- },
- -- Hare
- {
- url = "git://git.pml68.dev/vim-haredoc",
- ft = "hare",
- },
-}
diff --git a/lua/pml68/plugins/lsp.lua b/lua/pml68/plugins/lsp.lua
deleted file mode 100644
index 999320e..0000000
--- a/lua/pml68/plugins/lsp.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-return {
- {
- "neovim/nvim-lspconfig",
- event = { "BufReadPost", "BufNewFile" },
- },
- {
- "mason-org/mason.nvim",
- cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUninstall", "MasonUninstallAll", "MasonUpdate", "MasonLog" },
- opts = function()
- return require("pml68.configs.mason")
- end,
- config = function(_, opts)
- require("mason").setup(opts)
- vim.api.nvim_create_user_command("MasonInstallAll", function()
- if opts.ensure_installed and #opts.ensure_installed > 0 then
- vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
- end
- end, {})
- end,
- build = ":MasonInstallAll",
- },
-}
diff --git a/lua/pml68/plugins/misc.lua b/lua/pml68/plugins/misc.lua
deleted file mode 100644
index 1e0aec3..0000000
--- a/lua/pml68/plugins/misc.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-return {
- {
- "andweeb/presence.nvim",
- event = { "BufReadPost", "BufNewFile" },
- opts = {
- main_image = "file",
- },
- },
- {
- "NStefan002/screenkey.nvim",
- cmd = "Screenkey",
- version = "*",
- config = true
- },
- {
- "eandrju/cellular-automaton.nvim",
- cmd = "CellularAutomaton",
- },
-}
diff --git a/lua/pml68/plugins/oil.lua b/lua/pml68/plugins/oil.lua
deleted file mode 100644
index 974f94f..0000000
--- a/lua/pml68/plugins/oil.lua
+++ /dev/null
@@ -1,29 +0,0 @@
-return {
- "stevearc/oil.nvim",
- cmd = "Oil",
- config = function()
- require("oil").setup({
- keymaps = {
- ["<C-h>"] = false,
- },
- view_options = {
- show_hidden = true,
- natural_order = true,
- is_always_hidden = function(name, _)
- return name == '.git' or name == "node_modules" or name == "target"
- end
- },
- float = {
- padding = 2,
- max_width = 50,
- max_height = 0,
- border = "single",
- win_options = {
- winblend = 0,
- },
- },
- skip_confirm_for_simple_edits = true,
- default_file_explorer = true,
- })
- end
-}
diff --git a/lua/pml68/plugins/other.lua b/lua/pml68/plugins/other.lua
deleted file mode 100644
index d415f0b..0000000
--- a/lua/pml68/plugins/other.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-return {
- {
- "NStefan002/visual-surround.nvim",
- event = { "BufReadPost", "BufNewFile" },
- config = true,
- },
- {
- "christoomey/vim-tmux-navigator",
- lazy = false,
- },
- {
- "artemave/workspace-diagnostics.nvim",
- },
- {
- "lukas-reineke/indent-blankline.nvim",
- main = "ibl",
- event = { "BufReadPost", "BufNewFile" },
- config = function()
- require("ibl").setup()
- end
- },
- {
- "stevearc/dressing.nvim",
- event = "VeryLazy",
- },
-}
diff --git a/lua/pml68/plugins/telescope.lua b/lua/pml68/plugins/telescope.lua
deleted file mode 100644
index ccc0488..0000000
--- a/lua/pml68/plugins/telescope.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-return {
- "nvim-telescope/telescope.nvim",
- tag = "v0.2.1",
- cmd = "Telescope",
- dependencies = {
- "nvim-lua/plenary.nvim",
- "nvim-telescope/telescope-fzf-native.nvim",
- },
- opts = {
- pickers = {
- find_files = {
- hidden = true,
- find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/**" },
- },
- },
- },
-}
diff --git a/lua/pml68/plugins/treesitter.lua b/lua/pml68/plugins/treesitter.lua
deleted file mode 100644
index 6416f1f..0000000
--- a/lua/pml68/plugins/treesitter.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-return {
- "nvim-treesitter/nvim-treesitter",
- lazy = false,
- build = ":TSUpdate",
- config = function()
- local ts = require("nvim-treesitter")
-
- local ensure_installed = {
- "asm",
- "bash",
- "c",
- "c_sharp",
- "cpp",
- "css",
- "git_config",
- "gitattributes",
- "gitcommit",
- "gitignore",
- "glsl",
- "go",
- "gomod",
- "gosum",
- "gotmpl",
- "gowork",
- "hare",
- "html",
- "java",
- "javascript",
- "json",
- "kotlin",
- "lua",
- "make",
- "markdown",
- "markdown_inline",
- "python",
- "rust",
- "scss",
- "svelte",
- "typescript",
- "vim",
- "vimdoc",
- "yaml",
- }
-
- ts.install(ensure_installed, {
- max_jobs = 12,
- summary = false,
- })
-
- local ignore = {
- "checkhealth",
- "lazy",
- "mason",
- "TelescopePrompt",
- }
-
- vim.api.nvim_create_autocmd("FileType", {
- group = vim.api.nvim_create_augroup("EnableTreesitterHighlighting", { clear = true }),
- callback = function(event)
- if vim.tbl_contains(ignore, event.match) then
- return
- end
-
- pcall(function() vim.treesitter.start(event.buf) end)
- end
- })
- end
-}
diff --git a/lua/pml68/settings.lua b/plugin/00-settings.lua
index 071d139..fba8771 100644
--- a/lua/pml68/settings.lua
+++ b/plugin/00-settings.lua
@@ -7,14 +7,15 @@ vim.o.laststatus = 3
vim.o.winborder = "rounded"
-local function branch_name()
- local branch = vim.fn.system("git branch --show-current 2> /dev/null | tr -d '\n'")
- if branch ~= "" then
- return " " .. branch
- else
- return ""
- end
-end
+-- Plugin specific
+vim.g.rustfmt_autosave = 1
+vim.g.vimtex_view_method = 'mupdf'
+vim.g.guard_config = {
+ fmt_on_save = true,
+ lsp_as_default_formatter = true,
+}
+
+vim.g.mason_path = vim.fn.stdpath("data") .. "/mason/bin"
vim.diagnostic.config({ virtual_lines = true })
@@ -55,27 +56,48 @@ local function get_attached_clients()
return language_servers
end
-vim.api.nvim_create_autocmd({ "FileType", "BufEnter", "FocusGained" }, {
- callback = function()
- vim.b.branch_name = branch_name()
- end
-})
-
vim.api.nvim_create_user_command("LspLog", function(_)
vim.cmd("edit " .. vim.fn.stdpath("state") .. "/lsp.log")
end, {
desc = "Show LSP log",
})
+vim.api.nvim_create_user_command("PackUpdate", function(_)
+ vim.pack.update()
+end, {
+ desc = "Update vim.pack plugins",
+})
+
+vim.api.nvim_create_user_command("PackList", function(_)
+ vim.pack.update(nil, { offline = true })
+end, {
+ desc = "List vim.pack plugins",
+})
+
require("vim._core.ui2").enable({
enable = true,
})
+local function branch_name()
+ local branch = vim.fn.system("git branch --show-current 2> /dev/null | tr -d '\n'")
+ if branch ~= "" then
+ return " " .. branch
+ else
+ return ""
+ end
+end
+
+vim.api.nvim_create_autocmd({ "FileType", "BufEnter", "FocusGained" }, {
+ callback = function()
+ vim.b.branch_name = branch_name()
+ end
+})
+
function Status_Line()
return " "
.. "%<"
.. " %f "
- .. vim.b.branch_name
+ .. (vim.b.branch_name or "")
.. " %m"
.. " %= "
.. diagnostics()
@@ -115,4 +137,4 @@ vim.o.foldmethod = "expr"
vim.o.foldenable = false
vim.o.foldexpr = "v:lua.vim.treesitter.foldexpr()"
-vim.env.PATH = vim.fn.stdpath "data" .. "/mason/bin" .. ":" .. vim.env.PATH
+vim.env.PATH = vim.g.mason_path .. ":" .. vim.env.PATH
diff --git a/lua/pml68/remap.lua b/plugin/10-remap.lua
index 0af8323..a30d6a8 100644
--- a/lua/pml68/remap.lua
+++ b/plugin/10-remap.lua
@@ -21,10 +21,10 @@ vim.keymap.set("n", "<leader>sl", "<cmd>exec \"normal i\".nr2char(getchar()).\"\
vim.keymap.set("n", "<leader>sc", "<cmd>exec \"normal a\".nr2char(getchar()).\"\\e\"<CR>")
-- u/soer9459
-vim.keymap.set('n', '<leader>,',
+vim.keymap.set("n", "<leader>,",
function()
local cursor = vim.api.nvim_win_get_cursor(0)
- vim.cmd('norm A;')
+ vim.cmd("norm A;")
vim.api.nvim_win_set_cursor(0, cursor)
end,
{ noremap = true, silent = true })
@@ -43,9 +43,6 @@ vim.keymap.set("n", "<C-l>", "<cmd>TmuxNavigateRight<CR>")
vim.keymap.set("n", "<C-j>", "<cmd>TmuxNavigateDown<CR>")
vim.keymap.set("n", "<C-k>", "<cmd>TmuxNavigateUp<CR>")
--- Cellular Automaton
-vim.keymap.set("n", "<leader>gol", "<cmd>CellularAutomaton game_of_life<CR>")
-
-- Color picker
vim.keymap.set("n", "<leader>cc", "<cmd>CccPick<CR>")
@@ -53,12 +50,6 @@ vim.keymap.set("n", "<leader>cc", "<cmd>CccPick<CR>")
vim.keymap.set("n", "<leader>ll", "<cmd>VimtexCompile<CR>")
vim.keymap.set("n", "<leader>vl", "<cmd>VimtexView<CR>")
--- Go
-vim.keymap.set("n", "<leader>gj", "<cmd>GoTagAdd json<CR>")
-vim.keymap.set("n", "<leader>gy", "<cmd>GoTagAdd yaml<CR>")
-vim.keymap.set("n", "<leader>ge", "<cmd>GoIfErr<CR>")
-vim.keymap.set("n", "<leader>gt", "<cmd>GoMod tidy<CR>")
-
-- Screenkey
vim.keymap.set("n", "<leader>sk", "<cmd>Screenkey<CR>")
@@ -67,16 +58,58 @@ vim.cmd("packadd nvim.undotree")
vim.keymap.set("n", "<leader>u", require("undotree").open)
-- Telescope
-vim.keymap.set('n', '<leader>ff', "<cmd>Telescope find_files<CR>", {})
-vim.keymap.set('n', '<leader>fw', "<cmd>Telescope live_grep<CR>", {})
-vim.keymap.set('n', '<leader>fo', "<cmd>Telescope buffers<CR>", {})
-vim.keymap.set('n', '<leader>fh', "<cmd>Telescope help_tags<CR>", {})
-vim.keymap.set('n', '<leader>fz', "<cmd>Telescope current_buffer_fuzzy_find<CR>", {})
-vim.keymap.set('n', '<leader>fg', "<cmd>Telescope git_files<CR>", {})
-vim.keymap.set('n', '<leader>fd', "<cmd>Telescope diagnostics<CR>", {})
-vim.keymap.set('n', '<leader>ft', function()
+local lazy_telescope = function()
+ vim.pack.add({
+ "https://github.com/nvim-lua/plenary.nvim",
+ {
+ src = "https://github.com/nvim-telescope/telescope.nvim",
+ version = "v0.2.2"
+ },
+ })
+
+ require("telescope").setup({
+ pickers = {
+ find_files = {
+ hidden = true,
+ find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/**" },
+ },
+ },
+ })
+end
+
+vim.keymap.set("n", "<leader>ff", function()
+ lazy_telescope()
+ vim.cmd("Telescope find_files")
+end, {})
+vim.keymap.set("n", "<leader>fw", function()
+ lazy_telescope()
+ vim.cmd("Telescope live_grep")
+end, {})
+vim.keymap.set("n", "<leader>fo", function()
+ lazy_telescope()
+ vim.cmd("Telescope buffers")
+end, {})
+vim.keymap.set("n", "<leader>fh", function()
+ lazy_telescope()
+ vim.cmd("Telescope help_tags")
+end, {})
+vim.keymap.set("n", "<leader>fz", function()
+ lazy_telescope()
+ vim.cmd("Telescope current_buffer_fuzzy_find")
+end, {})
+vim.keymap.set("n", "<leader>fg", function()
+ lazy_telescope()
+ vim.cmd("Telescope git_files")
+end, {})
+vim.keymap.set("n", "<leader>fd", function()
+ lazy_telescope()
+ vim.cmd("Telescope diagnostics")
+end, {})
+vim.keymap.set("n", "<leader>ft", function()
+ lazy_telescope()
local telescope = require("telescope.builtin")
local handle = io.popen("rg 'TODO'")
+ if handle == nil then return end
local result = handle:read("*a")
handle:close()
@@ -84,6 +117,7 @@ vim.keymap.set('n', '<leader>ft', function()
local todo_files = {}
local files_handle = io.popen("rg --files -g 'TODO.{md,txt}'")
+ if files_handle == nil then return end
local files_result = files_handle:read("*a")
files_handle:close()
@@ -106,22 +140,22 @@ vim.keymap.set('n', '<leader>ft', function()
end, { noremap = true, silent = true })
-- Diagnostics, LSP
-vim.keymap.set('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<CR>')
-vim.keymap.set('n', 'gp', '<cmd>lua vim.diagnostic.goto_prev()<CR>')
-vim.keymap.set('n', 'gn', '<cmd>lua vim.diagnostic.goto_next()<CR>')
+vim.keymap.set("n", "gl", "<cmd>lua vim.diagnostic.open_float()<CR>")
+vim.keymap.set("n", "gp", "<cmd>lua vim.diagnostic.jump({ count = -1 })<CR>")
+vim.keymap.set("n", "gn", "<cmd>lua vim.diagnostic.jump({ count = 1 })<CR>")
-vim.api.nvim_create_autocmd('LspAttach', {
- desc = 'LSP actions',
+vim.api.nvim_create_autocmd("LspAttach", {
+ desc = "LSP actions",
callback = function(event)
local opts = { buffer = event.buf }
- vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
- vim.keymap.set('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
- vim.keymap.set('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
- vim.keymap.set('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
- vim.keymap.set({ 'n', 'x' }, '<S-f>', '<cmd>lua vim.lsp.buf.format({async = true})<CR>', opts)
+ vim.keymap.set("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
+ vim.keymap.set("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
+ vim.keymap.set("n", "go", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
+ vim.keymap.set("n", "gs", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
+ vim.keymap.set({ "n", "x" }, "<S-f>", "<cmd>lua vim.lsp.buf.format({async = true})<CR>", opts)
-- u/Blan_11
- vim.keymap.set('n', '<leader>lh', function()
+ vim.keymap.set("n", "<leader>lh", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, { silent = true, buffer = event.buf })
end
diff --git a/plugin/20-colors.lua b/plugin/20-colors.lua
new file mode 100644
index 0000000..dcab6d5
--- /dev/null
+++ b/plugin/20-colors.lua
@@ -0,0 +1,27 @@
+vim.pack.add({
+ "https://github.com/uga-rosa/ccc.nvim",
+ {
+ src = "https://github.com/pml68/rosepine-tmuxed",
+ name = "rose-pine",
+ },
+})
+
+require("ccc").setup({
+ highlighter = {
+ auto_enable = true,
+ lsp = true,
+ },
+})
+
+require("rose-pine").setup({
+ styles = {
+ transparency = true,
+ italic = false,
+ },
+ highlight_groups = {
+ StatusLine = { fg = "iris", bg = "iris", blend = 25 },
+ StatusLineNC = { fg = "subtle", bg = "surface" },
+ },
+})
+
+vim.cmd.colorscheme("rose-pine")
diff --git a/lua/pml68/lsp.lua b/plugin/30-lspconfig.lua
index 6736e26..d8a9cfc 100644
--- a/lua/pml68/lsp.lua
+++ b/plugin/30-lspconfig.lua
@@ -14,7 +14,6 @@ local servers = {
"lua_ls",
"glsl_analyzer",
"csharp_ls",
- "gopls",
"unocss",
}
@@ -29,8 +28,29 @@ vim.api.nvim_create_autocmd({ "BufEnter" }, {
end,
})
+vim.api.nvim_create_autocmd({ "BufEnter" }, {
+ once = true,
+ pattern = { "Cargo.toml" },
+ callback = function()
+ vim.pack.add({ "https://github.com/saecki/crates.nvim" })
+ require("crates").setup({
+ lsp = {
+ enabled = true,
+ actions = true,
+ completion = true,
+ hover = true,
+ },
+ })
+
+ vim.keymap.set("n", "<leader>rcu", function()
+ require("crates").upgrade_all_crates()
+ end)
+ end,
+})
+
vim.lsp.config('*', {
on_attach = function(client, bufnr)
+ vim.pack.add({ "https://github.com/artemave/workspace-diagnostics.nvim" })
require("workspace-diagnostics").populate_workspace_diagnostics(client, bufnr)
end
})
diff --git a/plugin/40-completion.lua b/plugin/40-completion.lua
new file mode 100644
index 0000000..597a426
--- /dev/null
+++ b/plugin/40-completion.lua
@@ -0,0 +1,36 @@
+vim.pack.add({
+ {
+ src = "https://github.com/saghen/blink.compat",
+ version = vim.version.range("2.x"),
+ },
+ {
+ src = "https://github.com/saghen/blink.cmp",
+ version = vim.version.range("1.x"),
+ },
+})
+
+require("blink.compat").setup({})
+
+require("blink.cmp").setup({
+ keymap = { preset = "default" },
+ appearance = {
+ nerd_font_variant = "normal",
+ },
+ completion = {
+ documentation = {
+ auto_show = true,
+ auto_show_delay_ms = 150,
+ },
+ },
+ sources = {
+ default = { "lsp", "path", "vimtex", "buffer" },
+ providers = {
+ vimtex = {
+ name = "vimtex",
+ module = "blink.compat.source",
+ },
+ },
+ },
+ cmdline = { enabled = false },
+ signature = { enabled = true },
+})
diff --git a/plugin/40-git.lua b/plugin/40-git.lua
new file mode 100644
index 0000000..eaf67b4
--- /dev/null
+++ b/plugin/40-git.lua
@@ -0,0 +1,18 @@
+vim.pack.add({ "https://github.com/lewis6991/gitsigns.nvim" })
+
+require("gitsigns").setup({
+ signs = {
+ add = { text = "│" },
+ change = { text = "│" },
+ delete = { text = "󰍵" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ untracked = { text = "│" },
+ },
+ on_attach = function(bufnr)
+ local gs = package.loaded.gitsigns
+
+ vim.keymap.set("n", "<leader>gb", gs.blame_line, { buffer = bufnr })
+ vim.keymap.set("n", "<leader>gr", gs.reset_hunk, { buffer = bufnr })
+ end,
+})
diff --git a/plugin/40-guard.lua b/plugin/40-guard.lua
new file mode 100644
index 0000000..ffdd82a
--- /dev/null
+++ b/plugin/40-guard.lua
@@ -0,0 +1,14 @@
+vim.api.nvim_create_autocmd({ "BufEnter" }, {
+ once = true,
+ pattern = { "*.c", "*.cpp", "*.cc", "*.h", "*.hpp", "*.toml", "*.json", "*.lua" },
+ callback = function()
+ vim.pack.add({ "https://github.com/nvimdev/guard-collection" })
+ vim.pack.add({ "https://github.com/nvimdev/guard.nvim" })
+
+ local ft = require("guard.filetype")
+
+ ft("c,cpp,h"):fmt("clang-format")
+ ft("toml"):fmt("taplo")
+ ft("json"):fmt("jq")
+ end,
+})
diff --git a/lua/pml68/configs/mason.lua b/plugin/40-lsp.lua
index 8635109..af95c47 100644
--- a/lua/pml68/configs/mason.lua
+++ b/plugin/40-lsp.lua
@@ -1,6 +1,5 @@
-return {
+local opts = {
ensure_installed = {
- -- "asm-lsp",
"bash-language-server",
"termux-language-server",
"lua-language-server",
@@ -19,9 +18,6 @@ return {
"kotlin-lsp",
"jdtls",
"csharp-language-server",
- "gopls",
- "gofumpt",
- "golines",
"unocss-language-server",
},
PATH = "skip",
@@ -44,3 +40,22 @@ return {
},
max_concurrent_installers = 10,
}
+
+vim.api.nvim_create_user_command("MasonInstallAll", function ()
+ if opts.ensure_installed and #opts.ensure_installed > 0 then
+ vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
+ end
+end, {
+ desc = "Install all required mason packages",
+})
+
+vim.pack.add({
+ "https://github.com/neovim/nvim-lspconfig",
+ "https://github.com/mason-org/mason.nvim",
+})
+
+require("mason").setup(opts)
+
+if not (vim.uv or vim.loop).fs_stat(vim.g.mason_path) then
+ vim.cmd("MasonInstallAll")
+end
diff --git a/plugin/40-misc.lua b/plugin/40-misc.lua
new file mode 100644
index 0000000..94e46e0
--- /dev/null
+++ b/plugin/40-misc.lua
@@ -0,0 +1,17 @@
+vim.schedule(function()
+ vim.pack.add({
+ "https://github.com/andweeb/presence.nvim",
+ "https://github.com/NStefan002/screenkey.nvim",
+ "https://github.com/NStefan002/visual-surround.nvim",
+ "https://github.com/christoomey/vim-tmux-navigator",
+ "https://github.com/artemave/workspace-diagnostics.nvim",
+ "https://github.com/lukas-reineke/indent-blankline.nvim",
+ })
+
+ require("presence").setup({
+ main_image = "file",
+ })
+ require("screenkey").setup({})
+ require("visual-surround").setup({})
+ require("ibl").setup()
+end)
diff --git a/plugin/40-oil.lua b/plugin/40-oil.lua
new file mode 100644
index 0000000..34b4a90
--- /dev/null
+++ b/plugin/40-oil.lua
@@ -0,0 +1,24 @@
+vim.pack.add({ "https://github.com/stevearc/oil.nvim" })
+require("oil").setup({
+ keymaps = {
+ ["<C-h>"] = false,
+ },
+ view_options = {
+ show_hidden = true,
+ natural_order = true,
+ is_always_hidden = function(name, _)
+ return name == "node_modules" or name == "target"
+ end
+ },
+ float = {
+ padding = 2,
+ max_width = 50,
+ max_height = 0,
+ border = "single",
+ win_options = {
+ winblend = 0,
+ },
+ },
+ skip_confirm_for_simple_edits = true,
+ default_file_explorer = true,
+})
diff --git a/plugin/40-treesitter.lua b/plugin/40-treesitter.lua
new file mode 100644
index 0000000..a9ff45b
--- /dev/null
+++ b/plugin/40-treesitter.lua
@@ -0,0 +1,58 @@
+vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" })
+
+local ts = require("nvim-treesitter")
+
+local ensure_installed = {
+ "asm",
+ "bash",
+ "c",
+ "c_sharp",
+ "cpp",
+ "css",
+ "git_config",
+ "gitattributes",
+ "gitcommit",
+ "gitignore",
+ "glsl",
+ "hare",
+ "html",
+ "java",
+ "javascript",
+ "json",
+ "kotlin",
+ "lua",
+ "make",
+ "markdown",
+ "markdown_inline",
+ "python",
+ "rust",
+ "scss",
+ "svelte",
+ "typescript",
+ "vim",
+ "vimdoc",
+ "yaml",
+}
+
+ts.install(ensure_installed, {
+ max_jobs = 12,
+ summary = false,
+})
+
+local ignore = {
+ "checkhealth",
+ "lazy",
+ "mason",
+ "TelescopePrompt",
+}
+
+vim.api.nvim_create_autocmd("FileType", {
+ group = vim.api.nvim_create_augroup("EnableTreesitterHighlighting", { clear = true }),
+ callback = function(event)
+ if vim.tbl_contains(ignore, event.match) then
+ return
+ end
+
+ pcall(function() vim.treesitter.start(event.buf) end)
+ end
+})