feat(vim): Migration configuration to Lua
Every configuration file related to Neovim has been moved to Lua. This comes with a variety of updatly around theming and implementation for better compatiblity accross the environment.
This commit is contained in:
parent
d29aff94c2
commit
f02cdb1f1e
@ -1,2 +1,157 @@
|
|||||||
vim.cmd("source ~/.config/nvim/legacy.vim")
|
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",
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
{ "Shatur/neovim-ayu", lazy = false, enabled = true },
|
||||||
|
"junegunn/fzf.vim",
|
||||||
|
"yggdroot/indentline",
|
||||||
|
"yuezk/vim-js",
|
||||||
|
{ "neoclide/coc.nvim", branch = "release" },
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-tree/nvim-web-devicons"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
branch = "0.1.x",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"jremmen/vim-ripgrep",
|
||||||
|
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
|
||||||
|
"nvim-tree/nvim-web-devicons"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tpope/vim-fugitive",
|
||||||
|
{ "rrethy/vim-hexokinase", build = "make hexokinase" },
|
||||||
|
"mbbill/undotree",
|
||||||
|
"skanehira/docker-compose.vim",
|
||||||
|
"chr4/nginx.vim",
|
||||||
|
"machakann/vim-highlightedyank",
|
||||||
|
"godlygeek/tabular",
|
||||||
|
"preservim/vim-markdown",
|
||||||
|
"tpope/vim-obsession",
|
||||||
|
})
|
||||||
|
|
||||||
|
--- THEMING ---
|
||||||
|
|
||||||
|
require('ayu').setup({
|
||||||
|
mirage = true,
|
||||||
|
overrides = function()
|
||||||
|
if vim.o.background == "dark" then
|
||||||
|
return {
|
||||||
|
Normal = {bg = '#0f1419', fg = '#cbccc6'},
|
||||||
|
Comment = { fg = "#5c6773" }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
require('ayu').colorscheme()
|
||||||
|
|
||||||
|
--- Change default behaviour ---
|
||||||
|
-- Disable integrated providers
|
||||||
|
vim.g.loaded_ruby_provider = 0
|
||||||
|
vim.g.loaded_perl_provider = 0
|
||||||
|
vim.g.loaded_node_provider = 0
|
||||||
|
|
||||||
|
-- Disable error bell
|
||||||
|
vim.opt.errorbells = false
|
||||||
|
|
||||||
|
--- Tab configuration ---
|
||||||
|
-- Show tabs at 4 spaces
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.softtabstop = 4
|
||||||
|
|
||||||
|
-- When indenting with '>', use 4 spaces
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
|
||||||
|
-- Insert 4 spaces instead of tab
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
|
--- Line formatting ---
|
||||||
|
vim.opt.nu = true
|
||||||
|
vim.opt.wrap = false
|
||||||
|
|
||||||
|
--- Search configuration ---
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
|
||||||
|
--- Window configuration ---
|
||||||
|
vim.opt.splitright = true
|
||||||
|
vim.opt.splitbelow = true
|
||||||
|
-- Remove duplicate -- INSERT --
|
||||||
|
vim.opt.showmode = false
|
||||||
|
|
||||||
|
--- Operation configuration ---
|
||||||
|
vim.opt.swapfile = false
|
||||||
|
vim.opt.backup = false
|
||||||
|
vim.opt.undodir = "~/.config/nvim/undodir"
|
||||||
|
vim.opt.undofile = true
|
||||||
|
|
||||||
|
--- Folding behaviour configuration ---
|
||||||
|
vim.opt.foldmethod = "indent"
|
||||||
|
vim.opt.foldnestmax = 10
|
||||||
|
vim.opt.foldenable = false
|
||||||
|
vim.opt.foldlevel = 99
|
||||||
|
vim.opt.signcolumn = "no"
|
||||||
|
|
||||||
|
--- Miscellaneous ---
|
||||||
|
-- rg smart root finder and adds git ignore loading for faster execution
|
||||||
|
if vim.fn.executable("rg") == 1 then
|
||||||
|
vim.g.rg_derive_root = true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Disable mouse
|
||||||
|
vim.opt.mouse = nil
|
||||||
|
|
||||||
|
-- Source CoC configuration
|
||||||
|
vim.cmd("source ~/.config/nvim/coc.vim")
|
||||||
|
|
||||||
|
-- IndentLine configuration
|
||||||
|
vim.g.indentLine_enabled = 1
|
||||||
|
vim.g.indentLine_char_list = {'|', '¦', '┆', '┊'}
|
||||||
|
vim.g.indentLine_setColors = 1
|
||||||
|
vim.g.indentLine_color_gui = "#5C6370"
|
||||||
|
vim.g.indentLine_showFirstIndentLevel = 1
|
||||||
|
|
||||||
|
-- Advertise 256 colors capability (for tmux)
|
||||||
|
vim.t_Co = 256
|
||||||
|
|
||||||
|
-- Undocumented ???
|
||||||
|
--vim.&t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
|
||||||
|
--vim.&t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
|
||||||
|
|
||||||
|
--- Lualine ---
|
||||||
|
-- Setup
|
||||||
|
require("lualine").setup({
|
||||||
|
options = {
|
||||||
|
theme = "ayu_dark",
|
||||||
|
section_separators = { left = '', right = '' },
|
||||||
|
component_separators = { left = '', right = '' },
|
||||||
|
globalstatus = false,
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {'location'}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
require("keybindings")
|
||||||
|
|
||||||
|
-- vim.cmd("source ~/.config/nvim/legacy.vim")
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
call plug#begin('~/.config/nvim/plugged')
|
call plug#begin('~/.config/nvim/plugged')
|
||||||
" Ayu color scheme
|
" Ayu color scheme
|
||||||
Plug 'TanguyHerbron/ayu-vim'
|
Plug 'https://git.halia.dev/therbron/ayu-vim'
|
||||||
|
|
||||||
Plug 'junegunn/fzf.vim'
|
Plug 'junegunn/fzf.vim'
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ Plug 'tpope/vim-obsession'
|
|||||||
" Plug 'ekalinin/Dockerfile.vim'
|
" Plug 'ekalinin/Dockerfile.vim'
|
||||||
|
|
||||||
" Vim integration in tmux
|
" Vim integration in tmux
|
||||||
Plug 'vimpostor/vim-tpipeline'
|
"Plug 'vimpostor/vim-tpipeline'
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
||||||
" Disable integrated providers
|
" Disable integrated providers
|
||||||
|
49
.config/nvim/lua/keybindings.lua
Normal file
49
.config/nvim/lua/keybindings.lua
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
local function map(mode, combo, mapping, opts)
|
||||||
|
local options = {noremap = true}
|
||||||
|
if opts then
|
||||||
|
options = vim.tbl_extend('force', options, opts)
|
||||||
|
end
|
||||||
|
vim.api.nvim_set_keymap(mode, combo, mapping, options)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
|
||||||
|
-- Navigate through panes using lead key and vim direction
|
||||||
|
map('', '<leader>h', ':wincmd h<CR>')
|
||||||
|
map('', '<leader>j', ':wincmd j<CR>')
|
||||||
|
map('', '<leader>k', ':wincmd k<CR>')
|
||||||
|
map('', '<leader>l', ':wincmd l<CR>')
|
||||||
|
|
||||||
|
-- Move to tab using lead key plus number
|
||||||
|
map('', '<leader>1', '1gt')
|
||||||
|
map('', '<leader>2', '2gt')
|
||||||
|
map('', '<leader>3', '3gt')
|
||||||
|
map('', '<leader>4', '4gt')
|
||||||
|
map('', '<leader>5', '5gt')
|
||||||
|
map('', '<leader>6', '6gt')
|
||||||
|
map('', '<leader>7', '7gt')
|
||||||
|
map('', '<leader>8', '8gt')
|
||||||
|
map('', '<leader>9', '9gt')
|
||||||
|
map('', '<leader>0', '10gt')
|
||||||
|
|
||||||
|
-- Open undotree panel
|
||||||
|
map('', '<leader>u', ':UndotreeToggle<CR>')
|
||||||
|
|
||||||
|
-- Open lazy.nvim
|
||||||
|
map('', '<leader>p', ':Lazy home<CR>')
|
||||||
|
|
||||||
|
--- Telescope ---
|
||||||
|
-- List project files
|
||||||
|
vim.keymap.set('', '<C-p>', function() require("telescope-config").project_files() end)
|
||||||
|
|
||||||
|
-- Grep through files in project
|
||||||
|
vim.keymap.set('', '<C-f>', ":Telescope live_grep<CR>")
|
||||||
|
|
||||||
|
--- Miscellaneous
|
||||||
|
-- Toggle line wrap
|
||||||
|
vim.keymap.set('', '<leader>w', function()
|
||||||
|
vim.cmd("set wrap! linebreak! nolist!")
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Format markdown tables
|
||||||
|
map('', '<leader>t', ":TableFormat")
|
@ -4,9 +4,9 @@ M.project_files = function()
|
|||||||
local opts = {}
|
local opts = {}
|
||||||
vim.fn.system('git rev-parse is-inside-work-tree')
|
vim.fn.system('git rev-parse is-inside-work-tree')
|
||||||
if vim.v.shell_error == 0 then
|
if vim.v.shell_error == 0 then
|
||||||
require"telescope.builtin".git_files({show_untracked=true})
|
require("telescope.builtin").git_files({show_untracked=true})
|
||||||
else
|
else
|
||||||
require"telescope.builtin".find_files(opts)
|
require("telescope.builtin").find_files(opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user