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("neovide")
|
||||
require("highlight_yank")
|
||||
require("plugins.lazy")
|
||||
require("lazy").setup("plugins")
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
"cmp-spell": { "branch": "master", "commit": "32a0867efa59b43edbb2db67b0871cfad90c9b66" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" },
|
||||
"copilot.lua": { "branch": "master", "commit": "73047082d72fcfdde1f73b7f17ad495cffcbafaa" },
|
||||
"dashboard-nvim": { "branch": "master", "commit": "63df28409d940f9cac0a925df09d3dc369db9841" },
|
||||
"emmylua-nvim": { "branch": "master", "commit": "50b2eead8af6499fbba708553148ee8156d6612e" },
|
||||
"firenvim": { "branch": "master", "commit": "138424db463e6c0e862a05166a4ccc781cd7c19d" },
|
||||
|
@ -22,7 +21,7 @@
|
|||
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
|
||||
"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.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
|
||||
"neoformat": { "branch": "master", "commit": "e5fe7e8f7c3dd071b90f19af0e8c7cfa56cdedc7" },
|
||||
|
@ -32,13 +31,13 @@
|
|||
"nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
|
||||
"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-lspconfig": { "branch": "master", "commit": "29939f6f07bc0f3b9fc563fbfbee06ac88c8c439" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "48347089666d5b77d054088aa72e4e0b58026e6e" },
|
||||
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
|
||||
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
|
||||
"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-web-devicons": { "branch": "master", "commit": "3523d6e6d40ab11fd66c1b2732b3d6b60affa951" },
|
||||
"password-store": { "branch": "master", "commit": "28cec11f1dbe6c4273d30370af45b69c9f408386" },
|
||||
|
|
|
@ -1,51 +1,9 @@
|
|||
-- This module contains lsp related
|
||||
-- reusable functions
|
||||
local m = {}
|
||||
|
||||
function m.setup()
|
||||
require("mason").setup()
|
||||
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
|
||||
|
||||
-- Map LSP specific keybinds.
|
||||
-- This makes them only available when LSP is running
|
||||
function m.map_keys()
|
||||
local telescope_builtin = require("telescope.builtin")
|
||||
require("which-key").register({
|
||||
|
@ -83,6 +41,7 @@ function m.map_keys()
|
|||
})
|
||||
end
|
||||
|
||||
|
||||
function m.on_attach(client, bufnr)
|
||||
-- Attach navic if document symbols are available
|
||||
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()
|
||||
local cmp = require("cmp")
|
||||
local luasnip = require("luasnip")
|
||||
-- Autoompletion
|
||||
return {
|
||||
"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
|
||||
return
|
||||
end
|
||||
if not cmp then
|
||||
return
|
||||
end
|
||||
|
||||
-- Setup git completion source
|
||||
require("cmp_git").setup()
|
||||
--
|
||||
-- Setup copilot source
|
||||
require("copilot_cmp").setup({ fix_pairs = true })
|
||||
-- Setup git completion source
|
||||
require("cmp_git").setup()
|
||||
--
|
||||
-- Setup copilot source
|
||||
require("copilot_cmp").setup({ fix_pairs = true })
|
||||
|
||||
-- Set completeopt to have a better completion experience
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
-- Set completeopt to have a better completion experience
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
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", "!" },
|
||||
},
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
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" },
|
||||
},
|
||||
})
|
||||
|
||||
-- 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()
|
||||
local dap = require("dap")
|
||||
return {
|
||||
"mfussenegger/nvim-dap",
|
||||
config = function()
|
||||
local dap = require("dap")
|
||||
|
||||
dap.adapters.bashdb = {
|
||||
type = "executable",
|
||||
command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter",
|
||||
name = "bashdb",
|
||||
}
|
||||
dap.adapters.bashdb = {
|
||||
type = "executable",
|
||||
command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter",
|
||||
name = "bashdb",
|
||||
}
|
||||
|
||||
dap.configurations.sh = {
|
||||
{
|
||||
type = "bashdb",
|
||||
request = "launch",
|
||||
name = "Launch file",
|
||||
showDebugOutput = true,
|
||||
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",
|
||||
trace = true,
|
||||
file = "${file}",
|
||||
program = "${file}",
|
||||
cwd = "${workspaceFolder}",
|
||||
pathCat = "cat",
|
||||
pathBash = "/bin/bash",
|
||||
pathMkfifo = "mkfifo",
|
||||
pathPkill = "pkill",
|
||||
args = {},
|
||||
env = {},
|
||||
terminalKind = "integrated",
|
||||
},
|
||||
}
|
||||
end
|
||||
dap.configurations.sh = {
|
||||
{
|
||||
type = "bashdb",
|
||||
request = "launch",
|
||||
name = "Launch file",
|
||||
showDebugOutput = true,
|
||||
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",
|
||||
trace = true,
|
||||
file = "${file}",
|
||||
program = "${file}",
|
||||
cwd = "${workspaceFolder}",
|
||||
pathCat = "cat",
|
||||
pathBash = "/bin/bash",
|
||||
pathMkfifo = "mkfifo",
|
||||
pathPkill = "pkill",
|
||||
args = {},
|
||||
env = {},
|
||||
terminalKind = "integrated",
|
||||
},
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
return function()
|
||||
require("dashboard").setup({
|
||||
-- Startup dashboard
|
||||
return {
|
||||
"glepnir/dashboard-nvim",
|
||||
event = "VimEnter",
|
||||
dependencies = { { "kyazdani42/nvim-web-devicons" } },
|
||||
opts = {
|
||||
theme = "hyper",
|
||||
config = {
|
||||
week_header = {
|
||||
|
@ -18,5 +22,5 @@ return function()
|
|||
{ 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()
|
||||
require("ibl").setup({
|
||||
exclude = {
|
||||
filetypes = {
|
||||
"",
|
||||
"checkhealth",
|
||||
"dashboard",
|
||||
"git",
|
||||
"gitcommit",
|
||||
"TelescopePrompt",
|
||||
"TelescopeResults",
|
||||
"help",
|
||||
"lazy",
|
||||
"lspinfo",
|
||||
"man",
|
||||
-- Indent characters
|
||||
return {
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
config = function()
|
||||
require("ibl").setup({
|
||||
exclude = {
|
||||
filetypes = {
|
||||
"",
|
||||
"checkhealth",
|
||||
"dashboard",
|
||||
"git",
|
||||
"gitcommit",
|
||||
"TelescopePrompt",
|
||||
"TelescopeResults",
|
||||
"help",
|
||||
"lazy",
|
||||
"lspinfo",
|
||||
"man",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
return function()
|
||||
require("kanagawa").setup({
|
||||
-- Colorscheme
|
||||
return {
|
||||
"rebelot/kanagawa.nvim",
|
||||
opts = {
|
||||
compile = true,
|
||||
dimInactive = true,
|
||||
colors = {
|
||||
|
@ -42,7 +44,8 @@ return function()
|
|||
PmenuThumb = { bg = theme.ui.bg_p2 },
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
vim.cmd("colorscheme kanagawa")
|
||||
end
|
||||
},
|
||||
config = function()
|
||||
vim.cmd("colorscheme kanagawa")
|
||||
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()
|
||||
require("lualine").setup({
|
||||
-- Statusline
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||
opts = {
|
||||
sections = {
|
||||
lualine_c = { "navic" },
|
||||
},
|
||||
})
|
||||
end
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
return function()
|
||||
-- load friendly-snippets to luasnip
|
||||
require("luasnip/loaders/from_vscode").lazy_load()
|
||||
end
|
||||
-- Snippets plugin
|
||||
return {
|
||||
"L3MON4D3/LuaSnip",
|
||||
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 {
|
||||
lsp = {
|
||||
-- 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,
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
|
||||
opts = {
|
||||
lsp = {
|
||||
-- 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()
|
||||
require("nvim-tree").setup({ -- BEGIN_DEFAULT_OPTS
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
show_on_dirs = true,
|
||||
},
|
||||
renderer = {
|
||||
highlight_git = true,
|
||||
},
|
||||
})
|
||||
-- Open/close with alt-o
|
||||
vim.keymap.set("n", "<M-o>", vim.cmd.NvimTreeToggle)
|
||||
end
|
||||
-- Tree explorer
|
||||
return {
|
||||
"kyazdani42/nvim-tree.lua",
|
||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||
opts = {
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
show_on_dirs = true,
|
||||
},
|
||||
renderer = {
|
||||
highlight_git = true,
|
||||
},
|
||||
},
|
||||
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()
|
||||
local telescope = require("telescope")
|
||||
local builtin = require("telescope.builtin")
|
||||
return {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
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 = {
|
||||
find_files = { find_command = { "fd", "-Ht", "f" } },
|
||||
lsp_references = { show_line = false },
|
||||
|
@ -30,14 +44,20 @@ return function()
|
|||
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.load_extension("ui-select")
|
||||
telescope.load_extension("cder")
|
||||
telescope.setup(spec.opts)
|
||||
|
||||
-- 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
|
||||
telescope.load_extension("fzf")
|
||||
telescope.load_extension("ui-select")
|
||||
telescope.load_extension("cder")
|
||||
|
||||
-- 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()
|
||||
require("nvim-treesitter.configs").setup({
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"css",
|
||||
"dockerfile",
|
||||
"git_config",
|
||||
"git_rebase",
|
||||
"gitattributes",
|
||||
"gitcommit",
|
||||
"gitignore",
|
||||
"html",
|
||||
"http",
|
||||
"java",
|
||||
"javascript",
|
||||
"json",
|
||||
"json5",
|
||||
"latex",
|
||||
"lua",
|
||||
"make",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"php",
|
||||
"python",
|
||||
"rasi",
|
||||
"regex",
|
||||
"rst",
|
||||
"scss",
|
||||
"toml",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
incremental_selection = { enable = true },
|
||||
context_commentstring = { enable = true },
|
||||
sync_install = true,
|
||||
ignore_install = {},
|
||||
auto_install = true,
|
||||
})
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = function()
|
||||
require("nvim-treesitter.install").update({ with_sync = true })
|
||||
end,
|
||||
config = function()
|
||||
require("nvim-treesitter.configs").setup({
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"css",
|
||||
"dockerfile",
|
||||
"git_config",
|
||||
"git_rebase",
|
||||
"gitattributes",
|
||||
"gitcommit",
|
||||
"gitignore",
|
||||
"html",
|
||||
"http",
|
||||
"java",
|
||||
"javascript",
|
||||
"json",
|
||||
"json5",
|
||||
"latex",
|
||||
"lua",
|
||||
"make",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"php",
|
||||
"python",
|
||||
"rasi",
|
||||
"regex",
|
||||
"rst",
|
||||
"scss",
|
||||
"toml",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
incremental_selection = { enable = true },
|
||||
context_commentstring = { enable = true },
|
||||
sync_install = true,
|
||||
ignore_install = {},
|
||||
auto_install = true,
|
||||
})
|
||||
|
||||
-- vim.wo.foldmethod = 'expr'
|
||||
-- im.wo.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||
end
|
||||
-- vim.wo.foldmethod = 'expr'
|
||||
-- im.wo.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -1,20 +1,28 @@
|
|||
return function()
|
||||
local keymap = vim.keymap
|
||||
local o = vim.o
|
||||
local ufo = require("ufo")
|
||||
ufo.setup({
|
||||
-- Better folds
|
||||
-- Disabled for now because it causes weird artifacts
|
||||
return {
|
||||
enabled = false,
|
||||
"kevinhwang91/nvim-ufo",
|
||||
dependencies = { "kevinhwang91/promise-async" },
|
||||
opts = {
|
||||
close_fold_kinds = {
|
||||
"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
|
||||
keymap.set("n", "zR", ufo.openAllFolds)
|
||||
keymap.set("n", "zM", ufo.closeAllFolds)
|
||||
-- Using ufo, need to remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
|
||||
local keymap = vim.keymap
|
||||
keymap.set("n", "zR", ufo.openAllFolds)
|
||||
keymap.set("n", "zM", ufo.closeAllFolds)
|
||||
|
||||
-- Fold settings
|
||||
o.foldcolumn = "1"
|
||||
o.foldlevel = 99
|
||||
o.foldlevelstart = 99
|
||||
o.foldenable = true
|
||||
end
|
||||
-- Fold settings
|
||||
local o = vim.o
|
||||
o.foldcolumn = "1"
|
||||
o.foldlevel = 99
|
||||
o.foldlevelstart = 99
|
||||
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()
|
||||
local wk = require("which-key")
|
||||
local gitsigns = require("gitsigns")
|
||||
wk.setup({})
|
||||
-- Display possible keybinds
|
||||
-- Plugin specific keybinds are set up in plugin configuration file
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
config = function()
|
||||
local wk = require("which-key")
|
||||
wk.setup({})
|
||||
|
||||
wk.register({
|
||||
f = { "<cmd>Neoformat<CR>", "Format with Neoformat" },
|
||||
h = { "<cmd>nohlsearch<CR>", "Turn off search highlight" },
|
||||
}, { prefix = "<leader>" })
|
||||
wk.register({
|
||||
h = { "<cmd>nohlsearch<CR>", "Turn off search highlight" },
|
||||
}, { prefix = "<leader>" })
|
||||
|
||||
wk.register({
|
||||
["<C-n>"] = { "<cmd>bnext<CR>", "Next buffer" },
|
||||
["<C-b>"] = { "<cmd>bprevious<CR>", "Previous buffer" },
|
||||
["["] = { h = { gitsigns.prev_hunk, "Previous hunk" } },
|
||||
["]"] = { h = { gitsigns.next_hunk, "Next hunk" } },
|
||||
})
|
||||
wk.register({
|
||||
["<C-n>"] = { "<cmd>bnext<CR>", "Next buffer" },
|
||||
["<C-b>"] = { "<cmd>bprevious<CR>", "Previous buffer" },
|
||||
})
|
||||
|
||||
-- Open cder
|
||||
wk.register({ cd = {
|
||||
function()
|
||||
vim.cmd("Telescope cder")
|
||||
end,
|
||||
"Change directories",
|
||||
} })
|
||||
-- Open cder
|
||||
wk.register({ cd = {
|
||||
function()
|
||||
vim.cmd("Telescope cder")
|
||||
end,
|
||||
"Change directories",
|
||||
} })
|
||||
|
||||
-- Exit terminal insert mode with esc
|
||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
|
||||
|
||||
end
|
||||
-- Exit terminal insert mode with esc
|
||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
|
||||
end,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue