Refactor neovim config file structure

All plugins are now in their own files with their lazy specifications
and configurations. Also moved lazy initialization to init.lua because
it is very compact now
main
Marko Korhonen 9 months ago
parent 902c397e8b
commit 0ced314c90
No known key found for this signature in database
GPG Key ID: A7F78BCB859CD890

@ -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

@ -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" },
},
}

@ -0,0 +1,2 @@
-- Automatic brackets
return { "windwp/nvim-autopairs" }

@ -0,0 +1,7 @@
return {
"akinsho/bufferline.nvim",
version = "*",
dependencies = { "kyazdani42/nvim-web-devicons" },
config = true,
--opts = { options = { themeable = true } },
}

@ -0,0 +1,2 @@
-- Caddyfile syntax support
return { "isobit/vim-caddyfile", ft = "caddyfile" }

@ -1,4 +1,18 @@
return function()
-- 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")
@ -61,15 +75,6 @@ return function()
{ 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
@ -98,4 +103,5 @@ return function()
},
}),
})
end
end,
}

@ -0,0 +1,5 @@
-- treesitter plugin for commentstring
return {
"JoosepAlviste/nvim-ts-context-commentstring",
dependencies = { "tpope/vim-commentary" },
}

@ -0,0 +1,9 @@
-- GitHub Copilot
return {
"zbirenbaum/copilot.lua",
config = true,
opts = {
suggestion = { enabled = false },
panel = { enabled = false },
},
}

@ -1,4 +1,6 @@
return function()
return {
"mfussenegger/nvim-dap",
config = function()
local dap = require("dap")
dap.adapters.bashdb = {
@ -28,4 +30,5 @@ return function()
terminalKind = "integrated",
},
}
end
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
},
}

@ -0,0 +1,2 @@
-- vim api documentation for lua lsp
return { "ii14/emmylua-nvim", ft = { "lua" } }

@ -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,
}

@ -0,0 +1,2 @@
-- Git commands
return { "tpope/vim-fugitive" }

@ -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,
}

@ -0,0 +1,2 @@
-- Edit GPG encrypted files transparently
return { "jamessan/vim-gnupg", ft = { "gpg" } }

@ -1,4 +1,7 @@
return function()
-- Indent characters
return {
"lukas-reineke/indent-blankline.nvim",
config = function()
require("ibl").setup({
exclude = {
filetypes = {
@ -16,4 +19,5 @@ return function()
},
},
})
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,
})
},
config = function()
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()
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()
-- 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
end,
}

@ -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" },
}

@ -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,
}

@ -0,0 +1,2 @@
-- Show code LSP context in winbar
return { "SmiteshP/nvim-navic" }

@ -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,4 +1,10 @@
-- Replace much of neovim's default UI
-- with a modern replacement
return {
"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 = {
@ -15,4 +21,5 @@ return {
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
},
}

@ -0,0 +1,4 @@
-- High performance color highlighter
return {
"norcalli/nvim-colorizer.lua",
}

@ -1,5 +1,8 @@
return function()
require("nvim-tree").setup({ -- BEGIN_DEFAULT_OPTS
-- Tree explorer
return {
"kyazdani42/nvim-tree.lua",
dependencies = { "kyazdani42/nvim-web-devicons" },
opts = {
diagnostics = {
enable = true,
show_on_dirs = true,
@ -7,7 +10,11 @@ return function()
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
end,
}

@ -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,
}

@ -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",
-- 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",
telescope.setup({
-- cd plugin for telescope
"zane-/cder.nvim",
},
opts = {
pickers = {
find_files = { find_command = { "fd", "-Ht", "f" } },
lsp_references = { show_line = false },
@ -30,7 +44,12 @@ return function()
dir_command = { "fd", "-Ht", "d", ".", os.getenv("HOME") },
},
},
})
},
config = function(spec)
local telescope = require("telescope")
local builtin = require("telescope.builtin")
telescope.setup(spec.opts)
telescope.load_extension("fzf")
telescope.load_extension("ui-select")
@ -40,4 +59,5 @@ return function()
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
end,
}

@ -1,4 +1,9 @@
return function()
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",
@ -43,4 +48,5 @@ return function()
-- vim.wo.foldmethod = 'expr'
-- im.wo.foldexpr = 'nvim_treesitter#foldexpr()'
end
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
local keymap = vim.keymap
keymap.set("n", "zR", ufo.openAllFolds)
keymap.set("n", "zM", ufo.closeAllFolds)
-- Fold settings
local o = vim.o
o.foldcolumn = "1"
o.foldlevel = 99
o.foldlevelstart = 99
o.foldenable = true
end
end,
}

@ -0,0 +1,2 @@
-- we all know this one
return { "tpope/vim-surround" }

@ -1,18 +1,18 @@
return function()
-- 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")
local gitsigns = require("gitsigns")
wk.setup({})
wk.register({
f = { "<cmd>Neoformat<CR>", "Format with Neoformat" },
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" } },
})
-- Open cder
@ -25,5 +25,5 @@ return function()
-- Exit terminal insert mode with esc
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
end
end,
}

Loading…
Cancel
Save