chore: more local tooling, fzf for nvim
This commit is contained in:
+105
-71
@@ -3,6 +3,9 @@ vim.o.signcolumn = "yes"
|
||||
vim.o.winborder = "rounded"
|
||||
vim.g.loaded_perl_provider = 0
|
||||
vim.g.airline_powerline_fonts = 1
|
||||
vim.o.tabstop = 2
|
||||
vim.o.shiftwidth = 2
|
||||
vim.o.expandtab = true
|
||||
|
||||
vim.cmd([[set listchars=tab:▸\ ,eol:¬]])
|
||||
|
||||
@@ -18,30 +21,36 @@ vim.keymap.set("n", "<leader>d", ":bd<cr>")
|
||||
vim.keymap.set("n", "<esc><esc>", "<esc>:nohlsearch<cr><esc>")
|
||||
vim.keymap.set("n", "<space>", "zz")
|
||||
vim.keymap.set("n", "<leader>w", ":update<cr>")
|
||||
vim.keymap.set("n", "<c-p>", ":Pick files<cr>")
|
||||
vim.keymap.set("n", "<c-p>", function() FzfLua.files() end)
|
||||
vim.keymap.set("n", "<leader>h", ":Pick help<cr>")
|
||||
vim.keymap.set("n", "<leader>cz", function() require("chezmoi.pick").mini() end) -- Pick from chezmoi managed files
|
||||
|
||||
vim.pack.add(
|
||||
{
|
||||
{ src = "https://github.com/nvim-lua/plenary.nvim" }, -- Base functions library
|
||||
{ src = "https://github.com/folke/lazydev.nvim" }, -- Lua Vim types
|
||||
{ src = "https://github.com/andythigpen/nvim-coverage" }, -- Code coverage visualuzer
|
||||
{ src = "https://github.com/nvim-mini/mini.icons" }, -- Icons for Ctrl-P
|
||||
{ src = "https://github.com/nvim-mini/mini.pick" }, -- Ctrl-P Alternative
|
||||
{ src = "https://github.com/nvim-mini/mini.extra" }, -- Additional things for mini tools
|
||||
{ src = "https://github.com/lewis6991/gitsigns.nvim" }, -- Show git changes in the gutter
|
||||
{ src = "https://github.com/neovim/nvim-lspconfig" }, -- Common LSP Configurations
|
||||
{ src = "https://github.com/sbdchd/neoformat" }, -- Formatter
|
||||
{ src = "https://github.com/tpope/vim-fugitive" }, -- Git bindings
|
||||
{ src = "https://github.com/vim-airline/vim-airline-themes" }, -- Status bar theme
|
||||
{ src = "https://github.com/vim-airline/vim-airline" }, -- Status bar
|
||||
{ src = "https://github.com/rebelot/kanagawa.nvim" }, -- Theme
|
||||
{ src = "https://github.com/mfussenegger/nvim-lint" }, -- Linter
|
||||
{ src = "https://github.com/rachartier/tiny-inline-diagnostic.nvim" }, -- Inline diagnostics
|
||||
{ src = "https://github.com/j-hui/fidget.nvim" }, -- LSP Status Popup
|
||||
{ src = "https://github.com/xvzc/chezmoi.nvim" }, -- Chezmoi dotfiles manager
|
||||
}
|
||||
{
|
||||
{ src = "https://github.com/andythigpen/nvim-coverage" }, -- Code coverage visualuzer
|
||||
{ src = "https://github.com/folke/lazydev.nvim" }, -- Lua Vim types
|
||||
{ src = "https://github.com/j-hui/fidget.nvim" }, -- LSP Status Popup
|
||||
{
|
||||
src = "https://github.com/kylechui/nvim-surround",
|
||||
version = vim.version.range("^4.0.0")
|
||||
}, -- Surround
|
||||
{ src = "https://github.com/lewis6991/gitsigns.nvim" }, -- Show git changes in the gutter
|
||||
{ src = "https://github.com/mfussenegger/nvim-lint" }, -- Linter
|
||||
{ src = "https://github.com/neovim/nvim-lspconfig" }, -- Common LSP Configurations
|
||||
{ src = "https://github.com/nvim-lua/plenary.nvim" }, -- Base functions library
|
||||
{ src = "https://github.com/nvim-mini/mini.extra" }, -- Additional things for mini tools
|
||||
{ src = "https://github.com/nvim-mini/mini.icons" }, -- Icons for Ctrl-P
|
||||
{ src = "https://github.com/nvim-mini/mini.pick" }, -- Ctrl-P Alternative
|
||||
{ src = "https://github.com/rachartier/tiny-inline-diagnostic.nvim" }, -- Inline diagnostics
|
||||
{ src = "https://github.com/rebelot/kanagawa.nvim" }, -- Theme
|
||||
{ src = "https://github.com/sbdchd/neoformat" }, -- Formatter
|
||||
{ src = "https://github.com/tpope/vim-fugitive" }, -- Git bindings
|
||||
{ src = "https://github.com/vim-airline/vim-airline-themes" }, -- Status bar theme
|
||||
{ src = "https://github.com/vim-airline/vim-airline" }, -- Status bar
|
||||
{ src = "https://github.com/xvzc/chezmoi.nvim" }, -- Chezmoi dotfiles manager
|
||||
{ src = "https://github.com/esmuellert/nvim-eslint" }, -- Linter
|
||||
{ src = "https://github.com/ibhagwan/fzf-lua" }, -- FZF Fuzzy Finder
|
||||
}
|
||||
)
|
||||
|
||||
-- Airline
|
||||
@@ -53,38 +62,57 @@ let g:airline#extensions#tabline#enabled = 1
|
||||
require("mini.pick").setup()
|
||||
require("mini.icons").setup()
|
||||
require("mini.extra").setup()
|
||||
require("fzf-lua").setup({ 'fzf-tmux' })
|
||||
|
||||
-- Coverage
|
||||
require("coverage").setup()
|
||||
|
||||
-- Lint
|
||||
require("lint").linters_by_ft = {
|
||||
sh = { "shellcheck" }
|
||||
sh = { "shellcheck" }
|
||||
}
|
||||
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
|
||||
callback = function()
|
||||
require("lint").try_lint()
|
||||
end,
|
||||
callback = function()
|
||||
require("lint").try_lint()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Theme
|
||||
vim.cmd.colorscheme "kanagawa-dragon"
|
||||
|
||||
-- LSP
|
||||
vim.lsp.enable({ "lua_ls", "ts_ls", "bashls", "yamlls" })
|
||||
vim.lsp.config("lua_ls", {
|
||||
settings = {
|
||||
Lua = {
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
-- Fidget
|
||||
require("fidget").setup {
|
||||
|
||||
vim.lsp.enable({ "lua_ls", "ts_ls", "bashls", "yamlls", "graphql" })
|
||||
---@type vim.lsp.Config
|
||||
local lua_ls_config = {
|
||||
---@type lspconfig.settings.lua_ls
|
||||
settings = {
|
||||
Lua = {
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
vim.lsp.config("lua_ls", lua_ls_config)
|
||||
|
||||
-- Autocomplete
|
||||
vim.o.autocomplete = true
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
callback = function(ev)
|
||||
local client = assert(vim.lsp.get_client_by_id(ev.data.client_id))
|
||||
if client:supports_method('textDocument/completion') then
|
||||
vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true })
|
||||
end
|
||||
vim.keymap.set('i', '<C-Space>', function()
|
||||
vim.lsp.completion.get()
|
||||
end, { buffer = ev.buf })
|
||||
end,
|
||||
})
|
||||
vim.opt.complete:append("o")
|
||||
vim.opt.completeopt = { 'menuone', 'noselect', 'fuzzy' }
|
||||
|
||||
-- Fidget
|
||||
require("fidget").setup {}
|
||||
|
||||
-- Diagnostic
|
||||
require('tiny-inline-diagnostic').setup()
|
||||
@@ -92,38 +120,44 @@ vim.diagnostic.config({ virtual_text = false })
|
||||
|
||||
-- Chezmoi
|
||||
require("chezmoi").setup {
|
||||
edit = {
|
||||
watch = false,
|
||||
force = false,
|
||||
ignore_patterns = {
|
||||
"run_onchange_.*",
|
||||
"run_once_.*",
|
||||
"%.chezmoiignore",
|
||||
"%.chezmoitemplate",
|
||||
-- Add custom patterns here
|
||||
},
|
||||
},
|
||||
events = {
|
||||
on_open = {
|
||||
notification = {
|
||||
enable = true,
|
||||
msg = "Opened a chezmoi-managed file",
|
||||
opts = {},
|
||||
},
|
||||
},
|
||||
on_watch = {
|
||||
notification = {
|
||||
enable = true,
|
||||
msg = "This file will be automatically applied",
|
||||
opts = {},
|
||||
},
|
||||
},
|
||||
on_apply = {
|
||||
notification = {
|
||||
enable = true,
|
||||
msg = "Successfully applied",
|
||||
opts = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
edit = {
|
||||
watch = false,
|
||||
force = false,
|
||||
ignore_patterns = {
|
||||
"run_onchange_.*",
|
||||
"run_once_.*",
|
||||
"%.chezmoiignore",
|
||||
"%.chezmoitemplate",
|
||||
-- Add custom patterns here
|
||||
},
|
||||
},
|
||||
events = {
|
||||
on_open = {
|
||||
notification = {
|
||||
enable = true,
|
||||
msg = "Opened a chezmoi-managed file",
|
||||
opts = {},
|
||||
},
|
||||
},
|
||||
on_watch = {
|
||||
notification = {
|
||||
enable = true,
|
||||
msg = "This file will be automatically applied",
|
||||
opts = {},
|
||||
},
|
||||
},
|
||||
on_apply = {
|
||||
notification = {
|
||||
enable = true,
|
||||
msg = "Successfully applied",
|
||||
opts = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Surround
|
||||
require("nvim-surround").setup({})
|
||||
|
||||
-- Linter
|
||||
require("nvim-eslint").setup({})
|
||||
|
||||
Reference in New Issue
Block a user