fixed mason
This commit is contained in:
@@ -1,3 +1,31 @@
|
||||
--------------
|
||||
-- MY WINDOWS --
|
||||
--------------
|
||||
|
||||
-- Workspace assignments
|
||||
hl.window_rule({ name = "ws-wezterm", match = { class = "^(org.wezfurlong.wezterm)$" }, workspace = 1 })
|
||||
hl.window_rule({ name = "ws-firefox", match = { class = "^(org.mozilla.firefox)$" }, workspace = 2 })
|
||||
hl.window_rule({ name = "ws-waterfox", match = { class = "^(waterfox)$" }, workspace = 2 })
|
||||
hl.window_rule({ name = "ws-nemo", match = { class = "^(nemo)$" }, workspace = 3 })
|
||||
hl.window_rule({ name = "ws-vscodium", match = { title = "^(VSCodium)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-jetbrains", match = { title = "^(jetbrains-idea)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-postman", match = { title = "^(Postman)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-rstudio", match = { title = "^(RStudio)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-obsidian", match = { class = "^(obsidian)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-libreoff", match = { class = "^(libreoffice.*)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-discord", match = { class = "^(com.discordapp.Discord)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-thunderbird", match = { class = "^(net.thunderbird.Thunderbird)$" }, workspace = 7 })
|
||||
hl.window_rule({ name = "ws-jellyfin", match = { title = "^(Jellyfin Media Player)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-gcalendar", match = { class = "^(chrome-calendar.*)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-affinity", match = { class = "^(affinity)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-tauon", match = { title = "^(Tauon)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-steam", match = { class = "^(steam)$" }, workspace = 9 })
|
||||
hl.window_rule({ name = "ws-virt", match = { class = "^(virt-manager)$" }, workspace = 9 })
|
||||
hl.window_rule({ name = "ws-krita", match = { class = "^(krita)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-inkscape", match = { class = "^(org.inkscape.Inkscape)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-sqlite", match = { class = "^(sqlitebrowser)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-veracrypt", match = { class = "^(veracrypt)$" }, workspace = 10 })
|
||||
|
||||
--------------
|
||||
-- Special rules --
|
||||
--------------
|
||||
@@ -48,29 +76,3 @@ hl.window_rule({
|
||||
match = { class = "^(jetbrains-studio)$", title = "^win.*" },
|
||||
no_initial_focus = true,
|
||||
})
|
||||
|
||||
--------------
|
||||
-- MY WINDOWS --
|
||||
--------------
|
||||
|
||||
-- Workspace assignments
|
||||
hl.window_rule({ name = "ws-wezterm", match = { class = "^(org.wezfurlong.wezterm)$" }, workspace = 1 })
|
||||
hl.window_rule({ name = "ws-firefox", match = { class = "^(org.mozilla.firefox)$" }, workspace = 2 })
|
||||
hl.window_rule({ name = "ws-nemo", match = { class = "^(nemo)$" }, workspace = 3 })
|
||||
hl.window_rule({ name = "ws-vscodium", match = { title = "^(VSCodium)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-postman", match = { title = "^(Postman)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-rstudio", match = { title = "^(RStudio)$" }, workspace = 4 })
|
||||
hl.window_rule({ name = "ws-obsidian", match = { class = "^(obsidian)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-libreoff", match = { class = "^(libreoffice.*)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-discord", match = { class = "^(com.discordapp.Discord)$" }, workspace = 5 })
|
||||
hl.window_rule({ name = "ws-thunderbird", match = { class = "^(net.thunderbird.Thunderbird)$" }, workspace = 7 })
|
||||
hl.window_rule({ name = "ws-jellyfin", match = { title = "^(Jellyfin Media Player)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-gcalendar", match = { class = "^(chrome-calendar.*)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-affinity", match = { class = "^(affinity)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-tauon", match = { title = "^(Tauon)$" }, workspace = 8 })
|
||||
hl.window_rule({ name = "ws-steam", match = { class = "^(steam)$" }, workspace = 9 })
|
||||
hl.window_rule({ name = "ws-virt", match = { class = "^(virt-manager)$" }, workspace = 9 })
|
||||
hl.window_rule({ name = "ws-krita", match = { class = "^(krita)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-inkscape", match = { class = "^(org.inkscape.Inkscape)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-sqlite", match = { class = "^(sqlitebrowser)$" }, workspace = 10 })
|
||||
hl.window_rule({ name = "ws-veracrypt", match = { class = "^(veracrypt)$" }, workspace = 10 })
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
require("plugins")
|
||||
-- Ensure Neovim's own bundled parsers take priority over nvim-treesitter's older versions
|
||||
vim.opt.runtimepath:prepend("/usr/lib64/nvim")
|
||||
-- General settings
|
||||
require("options")
|
||||
-- keymaps
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
|
||||
"barbar.nvim": { "branch": "master", "commit": "a4bef5b4fc1f064f2f673172252028eae18191c9" },
|
||||
"buffer-vacuum": { "branch": "main", "commit": "917986d31cce6501c929ab6088c0887beff56b69" },
|
||||
"catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" },
|
||||
"catppuccin": { "branch": "main", "commit": "8edd468af4d63212b84d69b2ddb5ffc9023ef5eb" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||
@@ -16,6 +16,7 @@
|
||||
"local-highlight.nvim": { "branch": "master", "commit": "dd8ae2ca26a5cfa17fb598864eacbe2df63938f3" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" },
|
||||
"mason.nvim": { "branch": "main", "commit": "bb639d4bf385a4d89f478b83af4d770be05ab7eb" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "ebd66767191714e008ce73b769518a763ff31bdc" },
|
||||
"none-ls-extras.nvim": { "branch": "main", "commit": "167f29529ff1438e673b1792a71aaf79ddd6c74f" },
|
||||
@@ -29,18 +30,17 @@
|
||||
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "0d7d35fa946837b8738b17c18d1faa1ac351e7f9" },
|
||||
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
|
||||
"oil.nvim": { "branch": "master", "commit": "b91ee5a77a6a9605d9c1aaf4fda74b66082c8297" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "a798325b7f36acc62741d1029930a7b96d4dd4bf" },
|
||||
"ruffer": { "branch": "plugin", "commit": "5248604605bf1039147f3f29dcd46aa296557e9c" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" },
|
||||
"undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" },
|
||||
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
|
||||
"vim-dadbod": { "branch": "master", "commit": "6d1d41da4873a445c5605f2005ad2c68c99d8770" },
|
||||
"vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
|
||||
"vim-dadbod-ui": { "branch": "master", "commit": "07e92e22114cc5b1ba4938d99897d85b58e20475" },
|
||||
"vim-devicons": { "branch": "master", "commit": "71f239af28b7214eebb60d4ea5bd040291fb7e33" },
|
||||
"vim-floaterm": { "branch": "master", "commit": "bb4ba7952e906408e1f83b215f55ffe57efcade6" },
|
||||
"vim-signature": { "branch": "master", "commit": "6bc3dd1294a22e897f0dcf8dd72b85f350e306bc" },
|
||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }
|
||||
|
||||
+170
-157
@@ -1,21 +1,21 @@
|
||||
vim.diagnostic.config({
|
||||
virtual_text = true,
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
underline = true,
|
||||
severity_sort = false,
|
||||
float = true,
|
||||
virtual_text = true,
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
underline = true,
|
||||
severity_sort = false,
|
||||
float = true,
|
||||
})
|
||||
|
||||
--"'''''''Mason''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
require("mason").setup({
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Define capabilities for LSP servers
|
||||
@@ -24,130 +24,129 @@ capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
|
||||
-- LSP attach callback
|
||||
local lsp_attach = function(client, bufnr)
|
||||
-- Helper function to set buffer-local keymaps
|
||||
local bufmap = function(mode, lhs, rhs, desc)
|
||||
vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
-- Helper function to set buffer-local keymaps
|
||||
local bufmap = function(mode, lhs, rhs, desc)
|
||||
vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
|
||||
-- Keymaps for LSP actions
|
||||
bufmap("n", "gd", vim.lsp.buf.definition, "Go to definition")
|
||||
bufmap("n", "gD", vim.lsp.buf.declaration, "Go to declaration")
|
||||
bufmap("n", "K", function()
|
||||
vim.lsp.buf.hover({
|
||||
border = "rounded",
|
||||
})
|
||||
end, "Show hover documentation")
|
||||
bufmap("n", "<leader>vws", vim.lsp.buf.workspace_symbol, "Search workspace symbols")
|
||||
bufmap("n", "<leader>vd", vim.diagnostic.open_float, "Show diagnostics in float")
|
||||
bufmap("n", "[d", vim.diagnostic.goto_prev, "Go to previous diagnostic")
|
||||
bufmap("n", "]d", vim.diagnostic.goto_next, "Go to next diagnostic")
|
||||
bufmap("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
|
||||
bufmap("n", "gr", vim.lsp.buf.references, "Find references")
|
||||
bufmap("n", "<F2>", vim.lsp.buf.rename, "Rename symbol")
|
||||
bufmap("n", "<C-k>", vim.lsp.buf.signature_help, "Show signature help")
|
||||
-- Keymaps for LSP actions
|
||||
bufmap("n", "gd", vim.lsp.buf.definition, "Go to definition")
|
||||
bufmap("n", "gD", vim.lsp.buf.declaration, "Go to declaration")
|
||||
bufmap("n", "K", function()
|
||||
vim.lsp.buf.hover({
|
||||
border = "rounded",
|
||||
})
|
||||
end, "Show hover documentation")
|
||||
bufmap("n", "<leader>vws", vim.lsp.buf.workspace_symbol, "Search workspace symbols")
|
||||
bufmap("n", "<leader>vd", vim.diagnostic.open_float, "Show diagnostics in float")
|
||||
bufmap("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
|
||||
bufmap("n", "gr", vim.lsp.buf.references, "Find references")
|
||||
bufmap("n", "<F2>", vim.lsp.buf.rename, "Rename symbol")
|
||||
bufmap("n", "<C-k>", vim.lsp.buf.signature_help, "Show signature help")
|
||||
end
|
||||
|
||||
-- Mason-LSPconfig setup
|
||||
local servers = {
|
||||
"clangd",
|
||||
"vtsls",
|
||||
"pyright",
|
||||
"tailwindcss",
|
||||
"html",
|
||||
"stimulus_ls",
|
||||
"cssls",
|
||||
"gopls",
|
||||
"autotools-language-server",
|
||||
"lua_ls",
|
||||
"clangd",
|
||||
"vtsls",
|
||||
"pyright",
|
||||
"tailwindcss",
|
||||
"html",
|
||||
"stimulus_ls",
|
||||
"cssls",
|
||||
"gopls",
|
||||
"yamlls",
|
||||
}
|
||||
|
||||
------Uncoment on first run
|
||||
-- require("mason-lspconfig").setup({
|
||||
-- ensure_installed = servers,
|
||||
-- })
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = servers,
|
||||
automatic_enable = false,
|
||||
})
|
||||
|
||||
for _, server in ipairs(servers) do
|
||||
vim.lsp.config(server, {
|
||||
capabilities = capabilities,
|
||||
on_attach = lsp_attach,
|
||||
})
|
||||
vim.lsp.enable(server)
|
||||
vim.lsp.config(server, {
|
||||
capabilities = capabilities,
|
||||
on_attach = lsp_attach,
|
||||
})
|
||||
vim.lsp.enable(server)
|
||||
end
|
||||
|
||||
vim.lsp.config("pyright", {
|
||||
capabilities = capabilities,
|
||||
on_attach = lsp_attach,
|
||||
settings = {
|
||||
python = {
|
||||
analysis = {
|
||||
autoSearchPaths = true,
|
||||
useLibraryCodeForTypes = true,
|
||||
stubPath = "",
|
||||
diagnosticMode = "off",
|
||||
autoImportCompletions = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
capabilities = capabilities,
|
||||
on_attach = lsp_attach,
|
||||
settings = {
|
||||
python = {
|
||||
analysis = {
|
||||
autoSearchPaths = true,
|
||||
useLibraryCodeForTypes = true,
|
||||
stubPath = "",
|
||||
diagnosticMode = "off",
|
||||
autoImportCompletions = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
vim.lsp.enable("pyright")
|
||||
|
||||
----------- RUFF
|
||||
vim.lsp.config("ruff", {
|
||||
filetypes = { "python" },
|
||||
init_options = {
|
||||
settings = {
|
||||
configuration = "~/.config/ruff/pyproject.toml",
|
||||
},
|
||||
},
|
||||
filetypes = { "python" },
|
||||
init_options = {
|
||||
settings = {
|
||||
configuration = "~/.config/ruff/pyproject.toml",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("lsp_attach_disable_ruff_hover", { clear = true }),
|
||||
callback = function(args)
|
||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
if client == nil then
|
||||
return
|
||||
end
|
||||
if client.name == "ruff" then
|
||||
client.server_capabilities.hoverProvider = false
|
||||
end
|
||||
end,
|
||||
desc = "LSP: Disable hover capability from Ruff",
|
||||
group = vim.api.nvim_create_augroup("lsp_attach_disable_ruff_hover", { clear = true }),
|
||||
callback = function(args)
|
||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
if client == nil then
|
||||
return
|
||||
end
|
||||
if client.name == "ruff" then
|
||||
client.server_capabilities.hoverProvider = false
|
||||
end
|
||||
end,
|
||||
desc = "LSP: Disable hover capability from Ruff",
|
||||
})
|
||||
|
||||
vim.lsp.enable("ruff")
|
||||
|
||||
--------- django experimental
|
||||
vim.lsp.config("djls", {
|
||||
cmd = { "djls", "serve" },
|
||||
filetypes = { "htmldjango", "html", "python" },
|
||||
root_markers = { "manage.py" },
|
||||
cmd = { "djls", "serve" },
|
||||
filetypes = { "htmldjango", "html", "python" },
|
||||
root_markers = { "manage.py" },
|
||||
})
|
||||
|
||||
vim.lsp.enable("djls")
|
||||
|
||||
-------------- LUA
|
||||
vim.lsp.config("lua_ls", {
|
||||
capabilities = capabilities,
|
||||
on_attach = lsp_attach,
|
||||
capabilities = capabilities,
|
||||
on_attach = lsp_attach,
|
||||
|
||||
settings = {
|
||||
Lua = {
|
||||
workspace = {
|
||||
library = {
|
||||
"/usr/share/hypr/stubs",
|
||||
-- Neovim Lua runtime completion
|
||||
vim.env.VIMRUNTIME,
|
||||
-- Your nvim config Lua files
|
||||
vim.fn.stdpath("config") .. "/lua",
|
||||
},
|
||||
checkThirdParty = false,
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
globals = { "vim", "hl" },
|
||||
},
|
||||
},
|
||||
},
|
||||
settings = {
|
||||
Lua = {
|
||||
workspace = {
|
||||
library = {
|
||||
"/usr/share/hypr/stubs",
|
||||
-- Neovim Lua runtime completion
|
||||
vim.env.VIMRUNTIME,
|
||||
-- Your nvim config Lua files
|
||||
vim.fn.stdpath("config") .. "/lua",
|
||||
},
|
||||
checkThirdParty = false,
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
globals = { "vim", "hl" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.enable("lua_ls")
|
||||
@@ -158,74 +157,88 @@ local helpers = require("null-ls.helpers")
|
||||
local methods = require("null-ls.methods")
|
||||
|
||||
local ruff_format = helpers.make_builtin({
|
||||
name = "ruff_format",
|
||||
method = methods.internal.FORMATTING,
|
||||
filetypes = { "python" },
|
||||
generator_opts = {
|
||||
command = "ruff",
|
||||
args = { "format", "--stdin-filename", "$FILENAME", "-" },
|
||||
to_stdin = true,
|
||||
},
|
||||
factory = helpers.formatter_factory,
|
||||
name = "ruff_format",
|
||||
method = methods.internal.FORMATTING,
|
||||
filetypes = { "python" },
|
||||
generator_opts = {
|
||||
command = "ruff",
|
||||
args = { "format", "--stdin-filename", "$FILENAME", "-" },
|
||||
to_stdin = true,
|
||||
},
|
||||
factory = helpers.formatter_factory,
|
||||
})
|
||||
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.diagnostics.djlint,
|
||||
null_ls.builtins.diagnostics.cppcheck,
|
||||
null_ls.builtins.diagnostics.codespell,
|
||||
null_ls.builtins.diagnostics.hadolint,
|
||||
null_ls.builtins.formatting.prettierd.with({ extra_args = { "--single-quote" } }),
|
||||
null_ls.builtins.formatting.gofumpt,
|
||||
null_ls.builtins.formatting.stylua,
|
||||
ruff_format,
|
||||
},
|
||||
on_attach = function(client, bufnr)
|
||||
if client:supports_method("textDocument/formatting") then -- run formatters on save
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = bufnr })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
sources = {
|
||||
null_ls.builtins.diagnostics.djlint,
|
||||
null_ls.builtins.diagnostics.cppcheck,
|
||||
null_ls.builtins.diagnostics.codespell,
|
||||
null_ls.builtins.diagnostics.hadolint,
|
||||
null_ls.builtins.formatting.prettierd.with({ extra_args = { "--single-quote" } }),
|
||||
null_ls.builtins.formatting.gofumpt,
|
||||
null_ls.builtins.formatting.stylua,
|
||||
ruff_format,
|
||||
},
|
||||
on_attach = function(client, bufnr)
|
||||
if client:supports_method("textDocument/formatting") then -- run formatters on save
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = bufnr })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
--"'''''''''''''''''''Tree sitter highlight''''''''''''''''''''''''''''''
|
||||
require("nvim-treesitter").install({ "lua", "bash", "python", "typescript", "javascript", "go" })
|
||||
require("nvim-treesitter").install({ "lua", "yaml", "bash", "python", "typescript", "javascript", "go" })
|
||||
|
||||
local ts_indent_langs = { "html", "javascript", "tsx", "go", "lua" }
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
callback = function(ev)
|
||||
pcall(vim.treesitter.start)
|
||||
if vim.tbl_contains(ts_indent_langs, ev.match) then
|
||||
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
||||
end
|
||||
end,
|
||||
callback = function(ev)
|
||||
pcall(vim.treesitter.start)
|
||||
if vim.tbl_contains(ts_indent_langs, ev.match) then
|
||||
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
require("nvim-treesitter-textobjects").setup({
|
||||
select = {
|
||||
lookahead = true,
|
||||
selection_modes = {
|
||||
["@parameter.outer"] = "v",
|
||||
["@function.outer"] = "V",
|
||||
["@class.outer"] = "<c-v>",
|
||||
},
|
||||
include_surrounding_whitespace = false,
|
||||
},
|
||||
move = { set_jumps = true },
|
||||
select = {
|
||||
lookahead = true,
|
||||
selection_modes = {
|
||||
["@parameter.outer"] = "v",
|
||||
["@function.outer"] = "V",
|
||||
["@class.outer"] = "<c-v>",
|
||||
},
|
||||
include_surrounding_whitespace = false,
|
||||
},
|
||||
move = { set_jumps = true },
|
||||
})
|
||||
|
||||
local select = require("nvim-treesitter-textobjects.select")
|
||||
local move = require("nvim-treesitter-textobjects.move")
|
||||
|
||||
vim.keymap.set({ "x", "o" }, "af", function() select.select_textobject("@function.outer", "textobjects") end)
|
||||
vim.keymap.set({ "x", "o" }, "if", function() select.select_textobject("@function.inner", "textobjects") end)
|
||||
vim.keymap.set({ "x", "o" }, "ac", function() select.select_textobject("@class.outer", "textobjects") end)
|
||||
vim.keymap.set({ "x", "o" }, "ic", function() select.select_textobject("@class.inner", "textobjects") end)
|
||||
vim.keymap.set({ "x", "o" }, "as", function() select.select_textobject("@local.scope", "locals") end)
|
||||
vim.keymap.set({ "x", "o" }, "af", function()
|
||||
select.select_textobject("@function.outer", "textobjects")
|
||||
end)
|
||||
vim.keymap.set({ "x", "o" }, "if", function()
|
||||
select.select_textobject("@function.inner", "textobjects")
|
||||
end)
|
||||
vim.keymap.set({ "x", "o" }, "ac", function()
|
||||
select.select_textobject("@class.outer", "textobjects")
|
||||
end)
|
||||
vim.keymap.set({ "x", "o" }, "ic", function()
|
||||
select.select_textobject("@class.inner", "textobjects")
|
||||
end)
|
||||
vim.keymap.set({ "x", "o" }, "as", function()
|
||||
select.select_textobject("@local.scope", "locals")
|
||||
end)
|
||||
|
||||
vim.keymap.set({ "n", "x", "o" }, "<C-f>", function() move.goto_next_start("@function.outer", "textobjects") end)
|
||||
vim.keymap.set({ "n", "x", "o" }, "<A-f>", function() move.goto_previous_start("@function.outer", "textobjects") end)
|
||||
vim.keymap.set({ "n", "x", "o" }, "<C-f>", function()
|
||||
move.goto_next_start("@function.outer", "textobjects")
|
||||
end)
|
||||
vim.keymap.set({ "n", "x", "o" }, "<A-f>", function()
|
||||
move.goto_previous_start("@function.outer", "textobjects")
|
||||
end)
|
||||
|
||||
+192
-182
@@ -1,224 +1,234 @@
|
||||
-- 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
|
||||
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)
|
||||
|
||||
local plugins = {
|
||||
|
||||
{ "neovim/nvim-lspconfig" },
|
||||
{ "neovim/nvim-lspconfig" },
|
||||
|
||||
-- mine
|
||||
{
|
||||
"acidburnmonkey/ruffer",
|
||||
config = function()
|
||||
require("ruffer").setup()
|
||||
end,
|
||||
},
|
||||
-- mine
|
||||
{
|
||||
"acidburnmonkey/ruffer",
|
||||
config = function()
|
||||
require("ruffer").setup()
|
||||
end,
|
||||
},
|
||||
|
||||
-- Terminal floating window
|
||||
{ "voldikss/vim-floaterm" },
|
||||
-- Terminal floating window
|
||||
{ "voldikss/vim-floaterm" },
|
||||
|
||||
-- Indent guides
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
opts = {},
|
||||
},
|
||||
-- Indent guides
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
event = "BufReadPre",
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Color highlighting
|
||||
{ "catgoose/nvim-colorizer.lua" },
|
||||
-- Color highlighting
|
||||
{ "catgoose/nvim-colorizer.lua", event = "BufReadPre" },
|
||||
|
||||
-- Undo tree viewer
|
||||
{ "mbbill/undotree" },
|
||||
-- Undo tree viewer
|
||||
{ "mbbill/undotree", cmd = "UndotreeToggle" },
|
||||
|
||||
-- Devicons
|
||||
{ "nvim-tree/nvim-web-devicons", opts = {} },
|
||||
-- Devicons
|
||||
{ "nvim-tree/nvim-web-devicons", opts = {} },
|
||||
|
||||
-- Neo-tree file explorer
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
lazy = true,
|
||||
},
|
||||
-- Neo-tree file explorer
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
lazy = true,
|
||||
},
|
||||
|
||||
-- Telescope fuzzy finder
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
tag = "0.1.8",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
},
|
||||
-- Telescope fuzzy finder
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
},
|
||||
|
||||
-- Treesitter
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
branch = "main",
|
||||
lazy = false,
|
||||
build = ":TSUpdate",
|
||||
},
|
||||
{ "nvim-treesitter/nvim-treesitter-textobjects", branch = "main" },
|
||||
-- Treesitter
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
branch = "main",
|
||||
lazy = false,
|
||||
build = ":TSUpdate",
|
||||
},
|
||||
{ "nvim-treesitter/nvim-treesitter-textobjects", branch = "main" },
|
||||
|
||||
-- Mason package manager
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = {},
|
||||
},
|
||||
-- Mason package manager
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
cmd = { "Mason", "MasonInstall", "MasonUpdate" },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- LuaSnip engine
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp",
|
||||
},
|
||||
-- LuaSnip snippets
|
||||
{ "rafamadriz/friendly-snippets" },
|
||||
-- mason-lspconfig
|
||||
{
|
||||
"mason-org/mason-lspconfig.nvim",
|
||||
opts = {},
|
||||
dependencies = {
|
||||
{ "mason-org/mason.nvim", opts = {} },
|
||||
"neovim/nvim-lspconfig",
|
||||
},
|
||||
},
|
||||
|
||||
-- Autopairs
|
||||
{
|
||||
"windwp/nvim-autopairs",
|
||||
event = "InsertEnter",
|
||||
},
|
||||
-- LuaSnip engine
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp",
|
||||
},
|
||||
-- LuaSnip snippets
|
||||
{ "rafamadriz/friendly-snippets" },
|
||||
|
||||
-- Commenting utility
|
||||
{ "tpope/vim-commentary" },
|
||||
-- Autopairs
|
||||
{
|
||||
"windwp/nvim-autopairs",
|
||||
event = "InsertEnter",
|
||||
},
|
||||
|
||||
-- Catppuccin theme
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
-- Commenting utility
|
||||
{ "tpope/vim-commentary" },
|
||||
|
||||
-- Surround plugin
|
||||
{ "tpope/vim-surround" },
|
||||
-- Catppuccin theme
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
|
||||
-- Formatter/Linter integration
|
||||
{
|
||||
"nvimtools/none-ls.nvim",
|
||||
dependencies = {
|
||||
"nvimtools/none-ls-extras.nvim",
|
||||
},
|
||||
},
|
||||
-- Surround plugin
|
||||
{ "tpope/vim-surround" },
|
||||
|
||||
-- Treesitter auto-closing tags
|
||||
{ "windwp/nvim-ts-autotag" },
|
||||
-- Formatter/Linter integration
|
||||
{
|
||||
"nvimtools/none-ls.nvim",
|
||||
dependencies = {
|
||||
"nvimtools/none-ls-extras.nvim",
|
||||
},
|
||||
},
|
||||
|
||||
-- Signature marks
|
||||
{ "kshenoy/vim-signature" },
|
||||
-- Treesitter auto-closing tags
|
||||
{ "windwp/nvim-ts-autotag", ft = { "html", "jsx", "tsx", "svelte", "vue", "xml" } },
|
||||
|
||||
-- Oil file explorer
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
lazy = false,
|
||||
},
|
||||
-- Signature marks
|
||||
{ "kshenoy/vim-signature" },
|
||||
|
||||
-- Rainbow delimiters
|
||||
{ "HiPhish/rainbow-delimiters.nvim" },
|
||||
-- Oil file explorer
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
lazy = false,
|
||||
},
|
||||
|
||||
-- Completion engine
|
||||
{ "hrsh7th/nvim-cmp" },
|
||||
{ "hrsh7th/cmp-buffer" },
|
||||
{ "hrsh7th/cmp-path" },
|
||||
{ "saadparwaiz1/cmp_luasnip" },
|
||||
{ "hrsh7th/cmp-nvim-lsp" },
|
||||
{ "hrsh7th/cmp-nvim-lua" },
|
||||
-- Rainbow delimiters
|
||||
{ "HiPhish/rainbow-delimiters.nvim", event = "BufReadPost" },
|
||||
|
||||
-- Lualine
|
||||
{ "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" } },
|
||||
-- Completion engine
|
||||
{ "hrsh7th/nvim-cmp" },
|
||||
{ "hrsh7th/cmp-buffer" },
|
||||
{ "hrsh7th/cmp-path" },
|
||||
{ "saadparwaiz1/cmp_luasnip" },
|
||||
{ "hrsh7th/cmp-nvim-lsp" },
|
||||
{ "hrsh7th/cmp-nvim-lua" },
|
||||
|
||||
-- File icons
|
||||
{ "ryanoasis/vim-devicons" },
|
||||
-- Lualine
|
||||
{ "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" } },
|
||||
|
||||
-- barbar
|
||||
{
|
||||
"romgrk/barbar.nvim",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
init = function()
|
||||
vim.g.barbar_auto_setup = false -- disable auto-setup
|
||||
end,
|
||||
},
|
||||
-- barbar
|
||||
{
|
||||
"romgrk/barbar.nvim",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
init = function()
|
||||
vim.g.barbar_auto_setup = false -- disable auto-setup
|
||||
end,
|
||||
},
|
||||
|
||||
-- highlight
|
||||
{
|
||||
"tzachar/local-highlight.nvim",
|
||||
},
|
||||
-- highlight
|
||||
{
|
||||
"tzachar/local-highlight.nvim",
|
||||
event = "BufReadPost",
|
||||
},
|
||||
|
||||
-- buffer vacuum
|
||||
{
|
||||
"ChuufMaster/buffer-vacuum",
|
||||
opts = {
|
||||
max_buffers = 2,
|
||||
count_pinned_buffers = false,
|
||||
enable_messages = false,
|
||||
},
|
||||
},
|
||||
-- buffer vacuum
|
||||
{
|
||||
"ChuufMaster/buffer-vacuum",
|
||||
opts = {
|
||||
max_buffers = 2,
|
||||
count_pinned_buffers = false,
|
||||
enable_messages = false,
|
||||
},
|
||||
},
|
||||
|
||||
-- telescope plugin
|
||||
{ "nvim-telescope/telescope-ui-select.nvim" },
|
||||
-- telescope plugin
|
||||
{ "nvim-telescope/telescope-ui-select.nvim" },
|
||||
|
||||
-- harpoon
|
||||
{ "ThePrimeagen/harpoon", lazy = false },
|
||||
-- harpoon
|
||||
{ "ThePrimeagen/harpoon", lazy = false },
|
||||
|
||||
--MarkdownPreview
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
build = "cd app && npm install",
|
||||
init = function()
|
||||
vim.g.mkdp_filetypes = { "markdown" }
|
||||
end,
|
||||
ft = { "markdown" },
|
||||
},
|
||||
--MarkdownPreview
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
build = "cd app && npm install",
|
||||
init = function()
|
||||
vim.g.mkdp_filetypes = { "markdown" }
|
||||
end,
|
||||
ft = { "markdown" },
|
||||
},
|
||||
|
||||
-- Dadbod
|
||||
{
|
||||
"kristijanhusak/vim-dadbod-ui",
|
||||
dependencies = {
|
||||
{ "tpope/vim-dadbod", lazy = true },
|
||||
{ "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" }, lazy = true },
|
||||
},
|
||||
cmd = {
|
||||
"DBUI",
|
||||
"DBUIToggle",
|
||||
"DBUIAddConnection",
|
||||
"DBUIFindBuffer",
|
||||
},
|
||||
init = function()
|
||||
vim.g.db_ui_use_nerd_fonts = 1
|
||||
end,
|
||||
},
|
||||
-- Dadbod
|
||||
{
|
||||
"kristijanhusak/vim-dadbod-ui",
|
||||
dependencies = {
|
||||
{ "tpope/vim-dadbod", lazy = true },
|
||||
{ "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" }, lazy = true },
|
||||
},
|
||||
cmd = {
|
||||
"DBUI",
|
||||
"DBUIToggle",
|
||||
"DBUIAddConnection",
|
||||
"DBUIFindBuffer",
|
||||
},
|
||||
init = function()
|
||||
vim.g.db_ui_use_nerd_fonts = 1
|
||||
end,
|
||||
},
|
||||
|
||||
-- go-tagger
|
||||
{
|
||||
"romus204/go-tagger.nvim",
|
||||
config = function()
|
||||
require("go-tagger").setup({
|
||||
skip_private = true,
|
||||
casing = "camelCase",
|
||||
tags = {
|
||||
json = {
|
||||
casing = "camelCase",
|
||||
},
|
||||
xml = {
|
||||
casing = "snake_case",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- go-tagger
|
||||
{
|
||||
"romus204/go-tagger.nvim",
|
||||
ft = { "go" },
|
||||
config = function()
|
||||
require("go-tagger").setup({
|
||||
skip_private = true,
|
||||
casing = "camelCase",
|
||||
tags = {
|
||||
json = {
|
||||
casing = "camelCase",
|
||||
},
|
||||
xml = {
|
||||
casing = "snake_case",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
local opts = {}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"custom/firefox": {
|
||||
"format": "{} ",
|
||||
"tooltip": false,
|
||||
"on-click": "firefox"
|
||||
"on-click": "flatpak run net.waterfox.waterfox"
|
||||
},
|
||||
|
||||
|
||||
|
||||
+6
-5
@@ -20,11 +20,11 @@ video/mp4=mpv.desktop
|
||||
text/x-java=org.gnome.TextEditor.desktop
|
||||
application/x-shellscript=org.gnome.TextEditor.desktop
|
||||
application/json=org.gnome.TextEditor.desktop
|
||||
text/html=firefox.desktop
|
||||
x-scheme-handler/http=firefox.desktop
|
||||
x-scheme-handler/https=firefox.desktop
|
||||
x-scheme-handler/about=chromium-browser.desktop
|
||||
x-scheme-handler/unknown=chromium-browser.desktop
|
||||
text/html=brave-browser.desktop
|
||||
x-scheme-handler/http=brave-browser.desktop
|
||||
x-scheme-handler/https=brave-browser.desktop
|
||||
x-scheme-handler/about=brave-browser.desktop
|
||||
x-scheme-handler/unknown=brave-browser.desktop
|
||||
x-scheme-handler/chrome=firefox.desktop
|
||||
application/x-extension-htm=firefox.desktop
|
||||
application/x-extension-html=firefox.desktop
|
||||
@@ -39,6 +39,7 @@ application/x-bat=org.gnome.TextEditor.desktop
|
||||
x-scheme-handler/claude-cli=claude-code-url-handler.desktop
|
||||
text/javascript=org.gnome.TextEditor.desktop
|
||||
text/css=org.gnome.TextEditor.desktop
|
||||
x-scheme-handler/jetbrains=jetbrainsd.desktop
|
||||
|
||||
[Added Associations]
|
||||
x-scheme-handler/terminal=org.wezfurlong.wezterm.desktop;
|
||||
|
||||
Reference in New Issue
Block a user