WIP: Switch to NixOS #5
36 changed files with 554 additions and 584 deletions
|
@ -1,4 +1,18 @@
|
||||||
|
-- Install lazy if it's not yet installed
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable", -- latest stable release
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
require("settings")
|
require("settings")
|
||||||
require("neovide")
|
require("neovide")
|
||||||
require("highlight_yank")
|
require("highlight_yank")
|
||||||
require("plugins.lazy")
|
require("lazy").setup("plugins")
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
"cmp-spell": { "branch": "master", "commit": "32a0867efa59b43edbb2db67b0871cfad90c9b66" },
|
"cmp-spell": { "branch": "master", "commit": "32a0867efa59b43edbb2db67b0871cfad90c9b66" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
"copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" },
|
"copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" },
|
||||||
"copilot.lua": { "branch": "master", "commit": "73047082d72fcfdde1f73b7f17ad495cffcbafaa" },
|
|
||||||
"dashboard-nvim": { "branch": "master", "commit": "63df28409d940f9cac0a925df09d3dc369db9841" },
|
"dashboard-nvim": { "branch": "master", "commit": "63df28409d940f9cac0a925df09d3dc369db9841" },
|
||||||
"emmylua-nvim": { "branch": "master", "commit": "50b2eead8af6499fbba708553148ee8156d6612e" },
|
"emmylua-nvim": { "branch": "master", "commit": "50b2eead8af6499fbba708553148ee8156d6612e" },
|
||||||
"firenvim": { "branch": "master", "commit": "138424db463e6c0e862a05166a4ccc781cd7c19d" },
|
"firenvim": { "branch": "master", "commit": "138424db463e6c0e862a05166a4ccc781cd7c19d" },
|
||||||
|
@ -22,7 +21,7 @@
|
||||||
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
|
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
|
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
|
||||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "faeb361507aa1ef1b0e5645781e2aa0d36a4aa84" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "ab640b38ca9fa50d25d2d249b6606b9456b628d5" },
|
||||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "e4f34741daa9cf95de68a603d3e7a6844a69fdf0" },
|
"mason-tool-installer.nvim": { "branch": "main", "commit": "e4f34741daa9cf95de68a603d3e7a6844a69fdf0" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
|
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
|
||||||
"neoformat": { "branch": "master", "commit": "e5fe7e8f7c3dd071b90f19af0e8c7cfa56cdedc7" },
|
"neoformat": { "branch": "master", "commit": "e5fe7e8f7c3dd071b90f19af0e8c7cfa56cdedc7" },
|
||||||
|
@ -32,13 +31,13 @@
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" },
|
"nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
|
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
|
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "9d81c11fd185a131f81841e64941859305f6c42d" },
|
"nvim-dap": { "branch": "master", "commit": "e154fdb6d70b3765d71f296e718b29d8b7026a63" },
|
||||||
"nvim-jdtls": { "branch": "master", "commit": "503a399e0d0b5d432068ab5ae24b9848891b0d53" },
|
"nvim-jdtls": { "branch": "master", "commit": "503a399e0d0b5d432068ab5ae24b9848891b0d53" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "29939f6f07bc0f3b9fc563fbfbee06ac88c8c439" },
|
"nvim-lspconfig": { "branch": "master", "commit": "48347089666d5b77d054088aa72e4e0b58026e6e" },
|
||||||
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
|
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
||||||
"nvim-tree.lua": { "branch": "master", "commit": "80cfeadf179d5cba76f0f502c71dbcff1b515cd8" },
|
"nvim-tree.lua": { "branch": "master", "commit": "80cfeadf179d5cba76f0f502c71dbcff1b515cd8" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "73287b794d428843f20f9ae004bef2ce67ab3dbc" },
|
"nvim-treesitter": { "branch": "master", "commit": "557561fbc17269cdd4e9e88ef0ca1a9ff0bbf7e6" },
|
||||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6c30f3c8915d7b31c3decdfe6c7672432da1809d" },
|
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6c30f3c8915d7b31c3decdfe6c7672432da1809d" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "3523d6e6d40ab11fd66c1b2732b3d6b60affa951" },
|
"nvim-web-devicons": { "branch": "master", "commit": "3523d6e6d40ab11fd66c1b2732b3d6b60affa951" },
|
||||||
"password-store": { "branch": "master", "commit": "28cec11f1dbe6c4273d30370af45b69c9f408386" },
|
"password-store": { "branch": "master", "commit": "28cec11f1dbe6c4273d30370af45b69c9f408386" },
|
||||||
|
|
|
@ -1,51 +1,9 @@
|
||||||
|
-- This module contains lsp related
|
||||||
|
-- reusable functions
|
||||||
local m = {}
|
local m = {}
|
||||||
|
|
||||||
function m.setup()
|
-- Map LSP specific keybinds.
|
||||||
require("mason").setup()
|
-- This makes them only available when LSP is running
|
||||||
local mason_lsp = require("mason-lspconfig")
|
|
||||||
mason_lsp.setup()
|
|
||||||
local capabilities = m.get_capabilities()
|
|
||||||
|
|
||||||
mason_lsp.setup_handlers({
|
|
||||||
-- Default handler
|
|
||||||
function(server_name)
|
|
||||||
require("lspconfig")[server_name].setup({
|
|
||||||
on_attach = m.on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
|
|
||||||
-- Override lua_ls settings
|
|
||||||
["lua_ls"] = function()
|
|
||||||
require("lspconfig").lua_ls.setup({
|
|
||||||
on_attach = m.on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
|
||||||
Lua = {
|
|
||||||
runtime = {
|
|
||||||
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
|
||||||
version = "LuaJIT",
|
|
||||||
},
|
|
||||||
diagnostics = {
|
|
||||||
-- Get the language server to recognize the `vim` global
|
|
||||||
globals = { "vim" },
|
|
||||||
},
|
|
||||||
workspace = {
|
|
||||||
-- Make the server aware of Neovim runtime files
|
|
||||||
library = vim.api.nvim_get_runtime_file("", true),
|
|
||||||
},
|
|
||||||
-- Do not send telemetry data containing a randomized but unique identifier
|
|
||||||
telemetry = { enable = false },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
|
|
||||||
-- Don't set up jdtls, it is set up by nvim-jdtls
|
|
||||||
["jdtls"] = function() end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
function m.map_keys()
|
function m.map_keys()
|
||||||
local telescope_builtin = require("telescope.builtin")
|
local telescope_builtin = require("telescope.builtin")
|
||||||
require("which-key").register({
|
require("which-key").register({
|
||||||
|
@ -83,6 +41,7 @@ function m.map_keys()
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function m.on_attach(client, bufnr)
|
function m.on_attach(client, bufnr)
|
||||||
-- Attach navic if document symbols are available
|
-- Attach navic if document symbols are available
|
||||||
if client.server_capabilities.documentSymbolProvider then
|
if client.server_capabilities.documentSymbolProvider then
|
13
home/.config/nvim/lua/plugins/asciidoc.lua
Normal file
13
home/.config/nvim/lua/plugins/asciidoc.lua
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
-- AsciiDoc plugins are grouped together here
|
||||||
|
return {
|
||||||
|
-- Vim ♥️ Asciidoctor
|
||||||
|
{
|
||||||
|
"habamax/vim-asciidoctor",
|
||||||
|
ft = { "asciidoctor", "asciidoc" },
|
||||||
|
},
|
||||||
|
-- AsciiDoc preview
|
||||||
|
{
|
||||||
|
"tigion/nvim-asciidoc-preview",
|
||||||
|
ft = { "asciidoctor", "asciidoc" },
|
||||||
|
},
|
||||||
|
}
|
2
home/.config/nvim/lua/plugins/autopairs.lua
Normal file
2
home/.config/nvim/lua/plugins/autopairs.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Automatic brackets
|
||||||
|
return { "windwp/nvim-autopairs" }
|
7
home/.config/nvim/lua/plugins/bufferline.lua
Normal file
7
home/.config/nvim/lua/plugins/bufferline.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
return {
|
||||||
|
"akinsho/bufferline.nvim",
|
||||||
|
version = "*",
|
||||||
|
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||||
|
config = true,
|
||||||
|
--opts = { options = { themeable = true } },
|
||||||
|
}
|
2
home/.config/nvim/lua/plugins/caddyfile.lua
Normal file
2
home/.config/nvim/lua/plugins/caddyfile.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Caddyfile syntax support
|
||||||
|
return { "isobit/vim-caddyfile", ft = "caddyfile" }
|
|
@ -1,101 +1,107 @@
|
||||||
return function()
|
-- Autoompletion
|
||||||
local cmp = require("cmp")
|
return {
|
||||||
local luasnip = require("luasnip")
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = {
|
||||||
|
"hrsh7th/cmp-buffer", -- Buffer source
|
||||||
|
{ "petertriho/cmp-git", dependencies = { "nvim-lua/plenary.nvim" } }, -- Git source
|
||||||
|
"hrsh7th/cmp-nvim-lsp", -- LSP source
|
||||||
|
"hrsh7th/cmp-nvim-lua", -- Neovim Lua API documentation source
|
||||||
|
"hrsh7th/cmp-path", -- Path source
|
||||||
|
"hrsh7th/cmp-cmdline", -- cmdline source
|
||||||
|
"saadparwaiz1/cmp_luasnip", -- Snippets source
|
||||||
|
"f3fora/cmp-spell", -- Spell check source
|
||||||
|
"zbirenbaum/copilot-cmp", -- Copilot source
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local cmp = require("cmp")
|
||||||
|
local luasnip = require("luasnip")
|
||||||
|
|
||||||
if not cmp then
|
if not cmp then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Setup git completion source
|
-- Setup git completion source
|
||||||
require("cmp_git").setup()
|
require("cmp_git").setup()
|
||||||
--
|
--
|
||||||
-- Setup copilot source
|
-- Setup copilot source
|
||||||
require("copilot_cmp").setup({ fix_pairs = true })
|
require("copilot_cmp").setup({ fix_pairs = true })
|
||||||
|
|
||||||
-- Set completeopt to have a better completion experience
|
-- Set completeopt to have a better completion experience
|
||||||
vim.o.completeopt = "menuone,noselect"
|
vim.o.completeopt = "menuone,noselect"
|
||||||
|
|
||||||
cmp.setup({
|
cmp.setup({
|
||||||
snippet = {
|
snippet = {
|
||||||
expand = function(args)
|
expand = function(args)
|
||||||
luasnip.lsp_expand(args.body)
|
luasnip.lsp_expand(args.body)
|
||||||
end,
|
end,
|
||||||
},
|
|
||||||
mapping = {
|
|
||||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
|
||||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
|
||||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
|
||||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
|
||||||
["<C-Space>"] = cmp.mapping.complete(),
|
|
||||||
["<C-e>"] = cmp.mapping.close(),
|
|
||||||
["<CR>"] = cmp.mapping.confirm({
|
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
|
||||||
select = true,
|
|
||||||
}),
|
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item()
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
|
||||||
luasnip.expand_or_jump()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item()
|
|
||||||
elseif luasnip.jumpable(-1) then
|
|
||||||
luasnip.jump(-1)
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
},
|
|
||||||
sources = {
|
|
||||||
{ name = "luasnip" },
|
|
||||||
{ name = "copilot" },
|
|
||||||
{ name = "nvim_lsp" },
|
|
||||||
{ name = "nvim_lua" },
|
|
||||||
{ name = "git" },
|
|
||||||
{ name = "buffer" },
|
|
||||||
{ name = "spell" },
|
|
||||||
{ name = "path" },
|
|
||||||
},
|
|
||||||
-- window = {
|
|
||||||
-- completion = {
|
|
||||||
-- winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None",
|
|
||||||
-- },
|
|
||||||
|
|
||||||
-- documentation = {
|
|
||||||
-- winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None",
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Enable autopairs when enter is processed
|
|
||||||
-- on completion
|
|
||||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
|
||||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
|
||||||
|
|
||||||
-- `/` cmdline setup.
|
|
||||||
cmp.setup.cmdline("/", {
|
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
|
||||||
sources = {
|
|
||||||
{ name = "buffer" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
-- `:` cmdline setup.
|
|
||||||
cmp.setup.cmdline(":", {
|
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = "path" },
|
|
||||||
}, {
|
|
||||||
{
|
|
||||||
name = "cmdline",
|
|
||||||
option = {
|
|
||||||
ignore_cmds = { "Man", "!" },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}),
|
mapping = {
|
||||||
})
|
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||||
end
|
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
["<C-Space>"] = cmp.mapping.complete(),
|
||||||
|
["<C-e>"] = cmp.mapping.close(),
|
||||||
|
["<CR>"] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
}),
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{ name = "luasnip" },
|
||||||
|
{ name = "copilot" },
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "nvim_lua" },
|
||||||
|
{ name = "git" },
|
||||||
|
{ name = "buffer" },
|
||||||
|
{ name = "spell" },
|
||||||
|
{ name = "path" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Enable autopairs when enter is processed
|
||||||
|
-- on completion
|
||||||
|
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||||
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||||
|
|
||||||
|
-- `/` cmdline setup.
|
||||||
|
cmp.setup.cmdline("/", {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = {
|
||||||
|
{ name = "buffer" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
-- `:` cmdline setup.
|
||||||
|
cmp.setup.cmdline(":", {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = "path" },
|
||||||
|
}, {
|
||||||
|
{
|
||||||
|
name = "cmdline",
|
||||||
|
option = {
|
||||||
|
ignore_cmds = { "Man", "!" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
5
home/.config/nvim/lua/plugins/commentstring.lua
Normal file
5
home/.config/nvim/lua/plugins/commentstring.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
-- treesitter plugin for commentstring
|
||||||
|
return {
|
||||||
|
"JoosepAlviste/nvim-ts-context-commentstring",
|
||||||
|
dependencies = { "tpope/vim-commentary" },
|
||||||
|
}
|
9
home/.config/nvim/lua/plugins/copilot.lua
Normal file
9
home/.config/nvim/lua/plugins/copilot.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
-- GitHub Copilot
|
||||||
|
return {
|
||||||
|
"zbirenbaum/copilot.lua",
|
||||||
|
config = true,
|
||||||
|
opts = {
|
||||||
|
suggestion = { enabled = false },
|
||||||
|
panel = { enabled = false },
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,31 +1,34 @@
|
||||||
return function()
|
return {
|
||||||
local dap = require("dap")
|
"mfussenegger/nvim-dap",
|
||||||
|
config = function()
|
||||||
|
local dap = require("dap")
|
||||||
|
|
||||||
dap.adapters.bashdb = {
|
dap.adapters.bashdb = {
|
||||||
type = "executable",
|
type = "executable",
|
||||||
command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter",
|
command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter",
|
||||||
name = "bashdb",
|
name = "bashdb",
|
||||||
}
|
}
|
||||||
|
|
||||||
dap.configurations.sh = {
|
dap.configurations.sh = {
|
||||||
{
|
{
|
||||||
type = "bashdb",
|
type = "bashdb",
|
||||||
request = "launch",
|
request = "launch",
|
||||||
name = "Launch file",
|
name = "Launch file",
|
||||||
showDebugOutput = true,
|
showDebugOutput = true,
|
||||||
pathBashdb = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir/bashdb",
|
pathBashdb = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir/bashdb",
|
||||||
pathBashdbLib = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir",
|
pathBashdbLib = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir",
|
||||||
trace = true,
|
trace = true,
|
||||||
file = "${file}",
|
file = "${file}",
|
||||||
program = "${file}",
|
program = "${file}",
|
||||||
cwd = "${workspaceFolder}",
|
cwd = "${workspaceFolder}",
|
||||||
pathCat = "cat",
|
pathCat = "cat",
|
||||||
pathBash = "/bin/bash",
|
pathBash = "/bin/bash",
|
||||||
pathMkfifo = "mkfifo",
|
pathMkfifo = "mkfifo",
|
||||||
pathPkill = "pkill",
|
pathPkill = "pkill",
|
||||||
args = {},
|
args = {},
|
||||||
env = {},
|
env = {},
|
||||||
terminalKind = "integrated",
|
terminalKind = "integrated",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end,
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
return function()
|
-- Startup dashboard
|
||||||
require("dashboard").setup({
|
return {
|
||||||
|
"glepnir/dashboard-nvim",
|
||||||
|
event = "VimEnter",
|
||||||
|
dependencies = { { "kyazdani42/nvim-web-devicons" } },
|
||||||
|
opts = {
|
||||||
theme = "hyper",
|
theme = "hyper",
|
||||||
config = {
|
config = {
|
||||||
week_header = {
|
week_header = {
|
||||||
|
@ -18,5 +22,5 @@ return function()
|
||||||
{ icon = "❌ ", desc = "Quit", action = "q", key = "q" },
|
{ icon = "❌ ", desc = "Quit", action = "q", key = "q" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
end
|
}
|
||||||
|
|
2
home/.config/nvim/lua/plugins/emmylua.lua
Normal file
2
home/.config/nvim/lua/plugins/emmylua.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- vim api documentation for lua lsp
|
||||||
|
return { "ii14/emmylua-nvim", ft = { "lua" } }
|
16
home/.config/nvim/lua/plugins/firenvim.lua
Normal file
16
home/.config/nvim/lua/plugins/firenvim.lua
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-- Neovim inside Firefox
|
||||||
|
return {
|
||||||
|
"glacambre/firenvim",
|
||||||
|
build = function()
|
||||||
|
vim.fn["firenvim#install"](0)
|
||||||
|
end,
|
||||||
|
config = function()
|
||||||
|
vim.g.firenvim_config = {
|
||||||
|
localSettings = {
|
||||||
|
[".*"] = {
|
||||||
|
takeOver = "never",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}
|
2
home/.config/nvim/lua/plugins/fugitive.lua
Normal file
2
home/.config/nvim/lua/plugins/fugitive.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Git commands
|
||||||
|
return { "tpope/vim-fugitive" }
|
15
home/.config/nvim/lua/plugins/gitsigns.lua
Normal file
15
home/.config/nvim/lua/plugins/gitsigns.lua
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
-- Git status in signcolumn
|
||||||
|
return {
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
config = function()
|
||||||
|
local gitsigns = require("gitsigns")
|
||||||
|
gitsigns.setup()
|
||||||
|
|
||||||
|
local wk = require("which-key")
|
||||||
|
wk.register({
|
||||||
|
["["] = { h = { gitsigns.prev_hunk, "Previous hunk" } },
|
||||||
|
["]"] = { h = { gitsigns.next_hunk, "Next hunk" } },
|
||||||
|
}, { prefix = "<leader>" })
|
||||||
|
|
||||||
|
end,
|
||||||
|
}
|
2
home/.config/nvim/lua/plugins/gnupg.lua
Normal file
2
home/.config/nvim/lua/plugins/gnupg.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Edit GPG encrypted files transparently
|
||||||
|
return { "jamessan/vim-gnupg", ft = { "gpg" } }
|
|
@ -1,19 +1,23 @@
|
||||||
return function()
|
-- Indent characters
|
||||||
require("ibl").setup({
|
return {
|
||||||
exclude = {
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
filetypes = {
|
config = function()
|
||||||
"",
|
require("ibl").setup({
|
||||||
"checkhealth",
|
exclude = {
|
||||||
"dashboard",
|
filetypes = {
|
||||||
"git",
|
"",
|
||||||
"gitcommit",
|
"checkhealth",
|
||||||
"TelescopePrompt",
|
"dashboard",
|
||||||
"TelescopeResults",
|
"git",
|
||||||
"help",
|
"gitcommit",
|
||||||
"lazy",
|
"TelescopePrompt",
|
||||||
"lspinfo",
|
"TelescopeResults",
|
||||||
"man",
|
"help",
|
||||||
|
"lazy",
|
||||||
|
"lspinfo",
|
||||||
|
"man",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
})
|
||||||
})
|
end,
|
||||||
end
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
return function()
|
-- Colorscheme
|
||||||
require("kanagawa").setup({
|
return {
|
||||||
|
"rebelot/kanagawa.nvim",
|
||||||
|
opts = {
|
||||||
compile = true,
|
compile = true,
|
||||||
dimInactive = true,
|
dimInactive = true,
|
||||||
colors = {
|
colors = {
|
||||||
|
@ -42,7 +44,8 @@ return function()
|
||||||
PmenuThumb = { bg = theme.ui.bg_p2 },
|
PmenuThumb = { bg = theme.ui.bg_p2 },
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
})
|
},
|
||||||
|
config = function()
|
||||||
vim.cmd("colorscheme kanagawa")
|
vim.cmd("colorscheme kanagawa")
|
||||||
end
|
end,
|
||||||
|
}
|
|
@ -1,246 +0,0 @@
|
||||||
-- Install lazy if it's not yet installed
|
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
||||||
if not vim.loop.fs_stat(lazypath) then
|
|
||||||
vim.fn.system({
|
|
||||||
"git",
|
|
||||||
"clone",
|
|
||||||
"--filter=blob:none",
|
|
||||||
"https://github.com/folke/lazy.nvim.git",
|
|
||||||
"--branch=stable", -- latest stable release
|
|
||||||
lazypath,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
-- Configure lazy
|
|
||||||
local plugins = {
|
|
||||||
-- Colorscheme
|
|
||||||
{
|
|
||||||
"rebelot/kanagawa.nvim",
|
|
||||||
config = require("plugins.colorscheme"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Replace much of neovim's default UI
|
|
||||||
-- with a modern replacement
|
|
||||||
{
|
|
||||||
"folke/noice.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
|
|
||||||
opts = require("plugins.noice"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Statusline
|
|
||||||
{
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
|
||||||
config = require("plugins.lualine"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- bufferline
|
|
||||||
{
|
|
||||||
"akinsho/bufferline.nvim",
|
|
||||||
version = "v3.*",
|
|
||||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
|
||||||
config = true,
|
|
||||||
opts = { options = { themeable = true } },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Git status in signcolumn
|
|
||||||
{ "lewis6991/gitsigns.nvim", config = true },
|
|
||||||
|
|
||||||
-- Git commands
|
|
||||||
"tpope/vim-fugitive",
|
|
||||||
|
|
||||||
-- Indent characters
|
|
||||||
{ "lukas-reineke/indent-blankline.nvim", config = require("plugins.indent-blankline") },
|
|
||||||
|
|
||||||
-- Tree explorer
|
|
||||||
{
|
|
||||||
"kyazdani42/nvim-tree.lua",
|
|
||||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
|
||||||
config = require("plugins.nvim-tree"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Telescope
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
config = require("plugins.telescope"),
|
|
||||||
dependencies = {
|
|
||||||
-- Internal dependency for telescope
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
|
|
||||||
-- Use fzf for fuzzy finder
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope-fzf-native.nvim",
|
|
||||||
build = "make",
|
|
||||||
},
|
|
||||||
-- Replace vim built in select with telescope
|
|
||||||
"nvim-telescope/telescope-ui-select.nvim",
|
|
||||||
|
|
||||||
-- cd plugin for telescope
|
|
||||||
"zane-/cder.nvim",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Do stuff as sudo
|
|
||||||
"lambdalisue/suda.vim",
|
|
||||||
|
|
||||||
-- Display possible keybinds
|
|
||||||
{ "folke/which-key.nvim", config = require("plugins.which-key") },
|
|
||||||
|
|
||||||
-- Package manager for LSP servers, DAP adapters etc.
|
|
||||||
{
|
|
||||||
"williamboman/mason.nvim",
|
|
||||||
config = require("plugins.lsp").setup,
|
|
||||||
dependencies = {
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
"williamboman/mason-lspconfig.nvim",
|
|
||||||
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Additional LSP features for Java
|
|
||||||
"mfussenegger/nvim-jdtls",
|
|
||||||
|
|
||||||
-- Show code LSP context in winbar
|
|
||||||
{ "SmiteshP/nvim-navic", config = true, opts = { mouse = true } },
|
|
||||||
|
|
||||||
-- DAP plugin
|
|
||||||
{ "mfussenegger/nvim-dap", config = require("plugins.dap") },
|
|
||||||
|
|
||||||
-- Snippets plugin
|
|
||||||
{
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
dependencies = { "rafamadriz/friendly-snippets" }, -- Snippets collection
|
|
||||||
config = require("plugins.luasnip"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- vim api documentation for lua lsp
|
|
||||||
{ "ii14/emmylua-nvim", ft = { "lua" } },
|
|
||||||
|
|
||||||
-- Completion
|
|
||||||
{
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/cmp-buffer", -- Buffer source
|
|
||||||
{ "petertriho/cmp-git", dependencies = { "nvim-lua/plenary.nvim" } }, -- Git source
|
|
||||||
"hrsh7th/cmp-nvim-lsp", -- LSP source
|
|
||||||
"hrsh7th/cmp-nvim-lua", -- Neovim Lua API documentation source
|
|
||||||
"hrsh7th/cmp-path", -- Path source
|
|
||||||
"hrsh7th/cmp-cmdline", -- cmdline source
|
|
||||||
"saadparwaiz1/cmp_luasnip", -- Snippets source
|
|
||||||
"f3fora/cmp-spell", -- Spell check source
|
|
||||||
"zbirenbaum/copilot-cmp", -- Copilot source
|
|
||||||
},
|
|
||||||
config = require("plugins.cmp"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Automatic brackets
|
|
||||||
{
|
|
||||||
"windwp/nvim-autopairs",
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- treesitter
|
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
build = function()
|
|
||||||
require("nvim-treesitter.install").update({ with_sync = true })
|
|
||||||
end,
|
|
||||||
config = require("plugins.treesitter"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- treesitter plugin for commentstring
|
|
||||||
"JoosepAlviste/nvim-ts-context-commentstring",
|
|
||||||
|
|
||||||
-- mappings for commenting in code
|
|
||||||
"tpope/vim-commentary",
|
|
||||||
|
|
||||||
-- we all know this one
|
|
||||||
"tpope/vim-surround",
|
|
||||||
|
|
||||||
-- Formatter plugin
|
|
||||||
"sbdchd/neoformat",
|
|
||||||
|
|
||||||
-- Make editing passwords safer
|
|
||||||
{
|
|
||||||
"https://git.zx2c4.com/password-store",
|
|
||||||
config = function(plugin)
|
|
||||||
vim.opt.rtp:append(plugin.dir .. "contrib/vim/redact_pass.vim")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Neovim inside Firefox
|
|
||||||
{
|
|
||||||
"glacambre/firenvim",
|
|
||||||
build = function()
|
|
||||||
vim.fn["firenvim#install"](0)
|
|
||||||
end,
|
|
||||||
config = function()
|
|
||||||
vim.g.firenvim_config = {
|
|
||||||
localSettings = {
|
|
||||||
[".*"] = {
|
|
||||||
takeOver = "never",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Vim ♥️ Asciidoctor
|
|
||||||
{ "habamax/vim-asciidoctor", ft = { "asciidoctor", "asciidoc" } },
|
|
||||||
|
|
||||||
-- Asciidoc preview
|
|
||||||
{ "tigion/nvim-asciidoc-preview", ft = { "asciidoctor", "asciidoc" } },
|
|
||||||
|
|
||||||
-- Markdown preview
|
|
||||||
{
|
|
||||||
"iamcco/markdown-preview.nvim",
|
|
||||||
build = "cd app && yarn install",
|
|
||||||
config = function()
|
|
||||||
vim.g.mkdp_filetypes = { "markdown" }
|
|
||||||
end,
|
|
||||||
ft = { "markdown" },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Edit GPG encrypted files transparently
|
|
||||||
{ "jamessan/vim-gnupg", ft = { "gpg" } },
|
|
||||||
|
|
||||||
-- High performance color highlighter
|
|
||||||
{
|
|
||||||
"norcalli/nvim-colorizer.lua",
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Caddyfile syntax support
|
|
||||||
{ "isobit/vim-caddyfile", ft = "caddyfile" },
|
|
||||||
|
|
||||||
-- Startup dashboard
|
|
||||||
{
|
|
||||||
"glepnir/dashboard-nvim",
|
|
||||||
event = "VimEnter",
|
|
||||||
config = require("plugins.dashboard"),
|
|
||||||
dependencies = { { "kyazdani42/nvim-web-devicons" } },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Better folds
|
|
||||||
{
|
|
||||||
enabled = false,
|
|
||||||
"kevinhwang91/nvim-ufo",
|
|
||||||
dependencies = { "kevinhwang91/promise-async" },
|
|
||||||
config = require("plugins.ufo"),
|
|
||||||
},
|
|
||||||
|
|
||||||
-- GitHub Copilot
|
|
||||||
{
|
|
||||||
"zbirenbaum/copilot.lua",
|
|
||||||
config = function()
|
|
||||||
require("copilot").setup({
|
|
||||||
suggestion = { enabled = false },
|
|
||||||
panel = { enabled = false },
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
require("lazy").setup(plugins, { lockfile = "~/git/dotfiles/home/.config/nvim/lazy-lock.json" })
|
|
|
@ -1,7 +1,10 @@
|
||||||
return function()
|
-- Statusline
|
||||||
require("lualine").setup({
|
return {
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||||
|
opts = {
|
||||||
sections = {
|
sections = {
|
||||||
lualine_c = { "navic" },
|
lualine_c = { "navic" },
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
end
|
}
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
return function()
|
-- Snippets plugin
|
||||||
-- load friendly-snippets to luasnip
|
return {
|
||||||
require("luasnip/loaders/from_vscode").lazy_load()
|
"L3MON4D3/LuaSnip",
|
||||||
end
|
dependencies = { "rafamadriz/friendly-snippets" }, -- Snippets collection
|
||||||
|
config = function()
|
||||||
|
-- load friendly-snippets to luasnip
|
||||||
|
require("luasnip/loaders/from_vscode").lazy_load()
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
9
home/.config/nvim/lua/plugins/markdown-preview.lua
Normal file
9
home/.config/nvim/lua/plugins/markdown-preview.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
-- Markdown preview
|
||||||
|
return {
|
||||||
|
"iamcco/markdown-preview.nvim",
|
||||||
|
build = "cd app && yarn install",
|
||||||
|
config = function()
|
||||||
|
vim.g.mkdp_filetypes = { "markdown" }
|
||||||
|
end,
|
||||||
|
ft = { "markdown" },
|
||||||
|
}
|
57
home/.config/nvim/lua/plugins/mason.lua
Normal file
57
home/.config/nvim/lua/plugins/mason.lua
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
-- Package manager for LSP servers, DAP adapters etc.
|
||||||
|
return {
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
"williamboman/mason-lspconfig.nvim",
|
||||||
|
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
||||||
|
"mfussenegger/nvim-jdtls",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("mason").setup()
|
||||||
|
|
||||||
|
local mason_lsp = require("mason-lspconfig")
|
||||||
|
local lsp_utils = require('lsp_utils')
|
||||||
|
local capabilities = lsp_utils.get_capabilities()
|
||||||
|
mason_lsp.setup()
|
||||||
|
|
||||||
|
mason_lsp.setup_handlers({
|
||||||
|
-- Default handler
|
||||||
|
function(server_name)
|
||||||
|
require("lspconfig")[server_name].setup({
|
||||||
|
on_attach = lsp_utils.on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- Override lua_ls settings
|
||||||
|
["lua_ls"] = function()
|
||||||
|
require("lspconfig").lua_ls.setup({
|
||||||
|
on_attach = lsp_utils.on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
runtime = {
|
||||||
|
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
||||||
|
version = "LuaJIT",
|
||||||
|
},
|
||||||
|
diagnostics = {
|
||||||
|
-- Get the language server to recognize the `vim` global
|
||||||
|
globals = { "vim" },
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
-- Make the server aware of Neovim runtime files
|
||||||
|
library = vim.api.nvim_get_runtime_file("", true),
|
||||||
|
},
|
||||||
|
-- Do not send telemetry data containing a randomized but unique identifier
|
||||||
|
telemetry = { enable = false },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- Don't set up jdtls, it is set up by nvim-jdtls
|
||||||
|
["jdtls"] = function() end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
2
home/.config/nvim/lua/plugins/navic.lua
Normal file
2
home/.config/nvim/lua/plugins/navic.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Show code LSP context in winbar
|
||||||
|
return { "SmiteshP/nvim-navic" }
|
10
home/.config/nvim/lua/plugins/neoformat.lua
Normal file
10
home/.config/nvim/lua/plugins/neoformat.lua
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
-- Formatter plugin
|
||||||
|
return {
|
||||||
|
"sbdchd/neoformat",
|
||||||
|
config = function()
|
||||||
|
local wk = require("which-key")
|
||||||
|
wk.register({
|
||||||
|
f = { "<cmd>Neoformat<CR>", "Format with Neoformat" },
|
||||||
|
}, { prefix = "<leader>" })
|
||||||
|
end,
|
||||||
|
}
|
|
@ -1,18 +1,25 @@
|
||||||
|
-- Replace much of neovim's default UI
|
||||||
|
-- with a modern replacement
|
||||||
return {
|
return {
|
||||||
lsp = {
|
"folke/noice.nvim",
|
||||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
event = "VeryLazy",
|
||||||
override = {
|
dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
|
||||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
opts = {
|
||||||
["vim.lsp.util.stylize_markdown"] = true,
|
lsp = {
|
||||||
["cmp.entry.get_documentation"] = true,
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||||
|
override = {
|
||||||
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
|
["cmp.entry.get_documentation"] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- you can enable a preset for easier configuration
|
||||||
|
presets = {
|
||||||
|
bottom_search = true, -- use a classic bottom cmdline for search
|
||||||
|
command_palette = true, -- position the cmdline and popupmenu together
|
||||||
|
long_message_to_split = true, -- long messages will be sent to a split
|
||||||
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||||
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
-- you can enable a preset for easier configuration
|
|
||||||
presets = {
|
|
||||||
bottom_search = true, -- use a classic bottom cmdline for search
|
|
||||||
command_palette = true, -- position the cmdline and popupmenu together
|
|
||||||
long_message_to_split = true, -- long messages will be sent to a split
|
|
||||||
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
|
||||||
lsp_doc_border = false, -- add a border to hover docs and signature help
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
4
home/.config/nvim/lua/plugins/nvim-colorizer.lua
Normal file
4
home/.config/nvim/lua/plugins/nvim-colorizer.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
-- High performance color highlighter
|
||||||
|
return {
|
||||||
|
"norcalli/nvim-colorizer.lua",
|
||||||
|
}
|
|
@ -1,13 +1,20 @@
|
||||||
return function()
|
-- Tree explorer
|
||||||
require("nvim-tree").setup({ -- BEGIN_DEFAULT_OPTS
|
return {
|
||||||
diagnostics = {
|
"kyazdani42/nvim-tree.lua",
|
||||||
enable = true,
|
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||||
show_on_dirs = true,
|
opts = {
|
||||||
},
|
diagnostics = {
|
||||||
renderer = {
|
enable = true,
|
||||||
highlight_git = true,
|
show_on_dirs = true,
|
||||||
},
|
},
|
||||||
})
|
renderer = {
|
||||||
-- Open/close with alt-o
|
highlight_git = true,
|
||||||
vim.keymap.set("n", "<M-o>", vim.cmd.NvimTreeToggle)
|
},
|
||||||
end
|
},
|
||||||
|
config = function(spec)
|
||||||
|
require("nvim-tree").setup(spec.opts)
|
||||||
|
|
||||||
|
-- Open/close with alt-o
|
||||||
|
vim.keymap.set("n", "<M-o>", vim.cmd.NvimTreeToggle)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
7
home/.config/nvim/lua/plugins/redact_pass.lua
Normal file
7
home/.config/nvim/lua/plugins/redact_pass.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
-- Make editing passwords safer
|
||||||
|
return {
|
||||||
|
"https://git.zx2c4.com/password-store",
|
||||||
|
config = function(plugin)
|
||||||
|
vim.opt.rtp:append(plugin.dir .. "contrib/vim/redact_pass.vim")
|
||||||
|
end,
|
||||||
|
}
|
2
home/.config/nvim/lua/plugins/suda.lua
Normal file
2
home/.config/nvim/lua/plugins/suda.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Do stuff as sudo
|
||||||
|
return { "lambdalisue/suda.vim" }
|
|
@ -1,8 +1,22 @@
|
||||||
return function()
|
return {
|
||||||
local telescope = require("telescope")
|
"nvim-telescope/telescope.nvim",
|
||||||
local builtin = require("telescope.builtin")
|
dependencies = {
|
||||||
|
-- Internal dependency for telescope
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
|
||||||
telescope.setup({
|
-- Use fzf for fuzzy finder
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
build = "make",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Replace vim built in select with telescope
|
||||||
|
"nvim-telescope/telescope-ui-select.nvim",
|
||||||
|
|
||||||
|
-- cd plugin for telescope
|
||||||
|
"zane-/cder.nvim",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
pickers = {
|
pickers = {
|
||||||
find_files = { find_command = { "fd", "-Ht", "f" } },
|
find_files = { find_command = { "fd", "-Ht", "f" } },
|
||||||
lsp_references = { show_line = false },
|
lsp_references = { show_line = false },
|
||||||
|
@ -30,14 +44,20 @@ return function()
|
||||||
dir_command = { "fd", "-Ht", "d", ".", os.getenv("HOME") },
|
dir_command = { "fd", "-Ht", "d", ".", os.getenv("HOME") },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
|
config = function(spec)
|
||||||
|
local telescope = require("telescope")
|
||||||
|
local builtin = require("telescope.builtin")
|
||||||
|
|
||||||
telescope.load_extension("fzf")
|
telescope.setup(spec.opts)
|
||||||
telescope.load_extension("ui-select")
|
|
||||||
telescope.load_extension("cder")
|
|
||||||
|
|
||||||
-- Keybinds
|
telescope.load_extension("fzf")
|
||||||
vim.keymap.set("n", "<C-s>", vim.cmd.Telescope)
|
telescope.load_extension("ui-select")
|
||||||
vim.keymap.set("n", "<C-f>", builtin.find_files)
|
telescope.load_extension("cder")
|
||||||
vim.keymap.set("n", "<C-g>", builtin.live_grep)
|
|
||||||
end
|
-- Keybinds
|
||||||
|
vim.keymap.set("n", "<C-s>", vim.cmd.Telescope)
|
||||||
|
vim.keymap.set("n", "<C-f>", builtin.find_files)
|
||||||
|
vim.keymap.set("n", "<C-g>", builtin.live_grep)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
|
@ -1,46 +1,52 @@
|
||||||
return function()
|
return {
|
||||||
require("nvim-treesitter.configs").setup({
|
"nvim-treesitter/nvim-treesitter",
|
||||||
ensure_installed = {
|
build = function()
|
||||||
"bash",
|
require("nvim-treesitter.install").update({ with_sync = true })
|
||||||
"css",
|
end,
|
||||||
"dockerfile",
|
config = function()
|
||||||
"git_config",
|
require("nvim-treesitter.configs").setup({
|
||||||
"git_rebase",
|
ensure_installed = {
|
||||||
"gitattributes",
|
"bash",
|
||||||
"gitcommit",
|
"css",
|
||||||
"gitignore",
|
"dockerfile",
|
||||||
"html",
|
"git_config",
|
||||||
"http",
|
"git_rebase",
|
||||||
"java",
|
"gitattributes",
|
||||||
"javascript",
|
"gitcommit",
|
||||||
"json",
|
"gitignore",
|
||||||
"json5",
|
"html",
|
||||||
"latex",
|
"http",
|
||||||
"lua",
|
"java",
|
||||||
"make",
|
"javascript",
|
||||||
"markdown",
|
"json",
|
||||||
"markdown_inline",
|
"json5",
|
||||||
"php",
|
"latex",
|
||||||
"python",
|
"lua",
|
||||||
"rasi",
|
"make",
|
||||||
"regex",
|
"markdown",
|
||||||
"rst",
|
"markdown_inline",
|
||||||
"scss",
|
"php",
|
||||||
"toml",
|
"python",
|
||||||
"tsx",
|
"rasi",
|
||||||
"typescript",
|
"regex",
|
||||||
"vim",
|
"rst",
|
||||||
"yaml",
|
"scss",
|
||||||
},
|
"toml",
|
||||||
highlight = { enable = true },
|
"tsx",
|
||||||
indent = { enable = true },
|
"typescript",
|
||||||
incremental_selection = { enable = true },
|
"vim",
|
||||||
context_commentstring = { enable = true },
|
"yaml",
|
||||||
sync_install = true,
|
},
|
||||||
ignore_install = {},
|
highlight = { enable = true },
|
||||||
auto_install = true,
|
indent = { enable = true },
|
||||||
})
|
incremental_selection = { enable = true },
|
||||||
|
context_commentstring = { enable = true },
|
||||||
|
sync_install = true,
|
||||||
|
ignore_install = {},
|
||||||
|
auto_install = true,
|
||||||
|
})
|
||||||
|
|
||||||
-- vim.wo.foldmethod = 'expr'
|
-- vim.wo.foldmethod = 'expr'
|
||||||
-- im.wo.foldexpr = 'nvim_treesitter#foldexpr()'
|
-- im.wo.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||||
end
|
end,
|
||||||
|
}
|
||||||
|
|
|
@ -1,20 +1,28 @@
|
||||||
return function()
|
-- Better folds
|
||||||
local keymap = vim.keymap
|
-- Disabled for now because it causes weird artifacts
|
||||||
local o = vim.o
|
return {
|
||||||
local ufo = require("ufo")
|
enabled = false,
|
||||||
ufo.setup({
|
"kevinhwang91/nvim-ufo",
|
||||||
|
dependencies = { "kevinhwang91/promise-async" },
|
||||||
|
opts = {
|
||||||
close_fold_kinds = {
|
close_fold_kinds = {
|
||||||
"imports",
|
"imports",
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
|
config = function(spec)
|
||||||
|
local ufo = require("ufo")
|
||||||
|
ufo.setup(spec.opts)
|
||||||
|
|
||||||
-- Using ufo, need to remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
|
-- Using ufo, need to remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
|
||||||
keymap.set("n", "zR", ufo.openAllFolds)
|
local keymap = vim.keymap
|
||||||
keymap.set("n", "zM", ufo.closeAllFolds)
|
keymap.set("n", "zR", ufo.openAllFolds)
|
||||||
|
keymap.set("n", "zM", ufo.closeAllFolds)
|
||||||
|
|
||||||
-- Fold settings
|
-- Fold settings
|
||||||
o.foldcolumn = "1"
|
local o = vim.o
|
||||||
o.foldlevel = 99
|
o.foldcolumn = "1"
|
||||||
o.foldlevelstart = 99
|
o.foldlevel = 99
|
||||||
o.foldenable = true
|
o.foldlevelstart = 99
|
||||||
end
|
o.foldenable = true
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
2
home/.config/nvim/lua/plugins/vim-surround.lua
Normal file
2
home/.config/nvim/lua/plugins/vim-surround.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- we all know this one
|
||||||
|
return { "tpope/vim-surround" }
|
|
@ -1,29 +1,29 @@
|
||||||
return function()
|
-- Display possible keybinds
|
||||||
local wk = require("which-key")
|
-- Plugin specific keybinds are set up in plugin configuration file
|
||||||
local gitsigns = require("gitsigns")
|
return {
|
||||||
wk.setup({})
|
"folke/which-key.nvim",
|
||||||
|
config = function()
|
||||||
|
local wk = require("which-key")
|
||||||
|
wk.setup({})
|
||||||
|
|
||||||
wk.register({
|
wk.register({
|
||||||
f = { "<cmd>Neoformat<CR>", "Format with Neoformat" },
|
h = { "<cmd>nohlsearch<CR>", "Turn off search highlight" },
|
||||||
h = { "<cmd>nohlsearch<CR>", "Turn off search highlight" },
|
}, { prefix = "<leader>" })
|
||||||
}, { prefix = "<leader>" })
|
|
||||||
|
|
||||||
wk.register({
|
wk.register({
|
||||||
["<C-n>"] = { "<cmd>bnext<CR>", "Next buffer" },
|
["<C-n>"] = { "<cmd>bnext<CR>", "Next buffer" },
|
||||||
["<C-b>"] = { "<cmd>bprevious<CR>", "Previous buffer" },
|
["<C-b>"] = { "<cmd>bprevious<CR>", "Previous buffer" },
|
||||||
["["] = { h = { gitsigns.prev_hunk, "Previous hunk" } },
|
})
|
||||||
["]"] = { h = { gitsigns.next_hunk, "Next hunk" } },
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Open cder
|
-- Open cder
|
||||||
wk.register({ cd = {
|
wk.register({ cd = {
|
||||||
function()
|
function()
|
||||||
vim.cmd("Telescope cder")
|
vim.cmd("Telescope cder")
|
||||||
end,
|
end,
|
||||||
"Change directories",
|
"Change directories",
|
||||||
} })
|
} })
|
||||||
|
|
||||||
-- Exit terminal insert mode with esc
|
-- Exit terminal insert mode with esc
|
||||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
|
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
|
||||||
|
end,
|
||||||
end
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue