From 94d6215b1fcd975acd935999d8c2689fc37697f3 Mon Sep 17 00:00:00 2001 From: ange Date: Sat, 3 Feb 2024 00:56:25 +0100 Subject: [PATCH] feat(nvim): dynamic listchars --- .config/nvim/ftplugin/groovy.lua | 1 - .config/nvim/ftplugin/html.lua | 1 - .config/nvim/ftplugin/javascript.lua | 1 - .config/nvim/ftplugin/json.lua | 1 - .config/nvim/ftplugin/tex.lua | 1 - .config/nvim/ftplugin/yaml.lua | 1 - .config/nvim/init.lua | 63 ++++++++++++++++------------ .config/nvim/lua/pack-easy-align.lua | 2 +- .config/nvim/lua/pack-lspconfig.lua | 28 ++++++------- .config/nvim/lua/pack-treesitter.lua | 3 +- .config/nvim/lua/theme.lua | 5 ++- 11 files changed, 57 insertions(+), 50 deletions(-) diff --git a/.config/nvim/ftplugin/groovy.lua b/.config/nvim/ftplugin/groovy.lua index 6845f3a..c6ba91d 100644 --- a/.config/nvim/ftplugin/groovy.lua +++ b/.config/nvim/ftplugin/groovy.lua @@ -1,6 +1,5 @@ -- variables vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 -vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│ " -- keybindings diff --git a/.config/nvim/ftplugin/html.lua b/.config/nvim/ftplugin/html.lua index 6845f3a..c6ba91d 100644 --- a/.config/nvim/ftplugin/html.lua +++ b/.config/nvim/ftplugin/html.lua @@ -1,6 +1,5 @@ -- variables vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 -vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│ " -- keybindings diff --git a/.config/nvim/ftplugin/javascript.lua b/.config/nvim/ftplugin/javascript.lua index 6845f3a..c6ba91d 100644 --- a/.config/nvim/ftplugin/javascript.lua +++ b/.config/nvim/ftplugin/javascript.lua @@ -1,6 +1,5 @@ -- variables vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 -vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│ " -- keybindings diff --git a/.config/nvim/ftplugin/json.lua b/.config/nvim/ftplugin/json.lua index 6845f3a..c6ba91d 100644 --- a/.config/nvim/ftplugin/json.lua +++ b/.config/nvim/ftplugin/json.lua @@ -1,6 +1,5 @@ -- variables vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 -vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│ " -- keybindings diff --git a/.config/nvim/ftplugin/tex.lua b/.config/nvim/ftplugin/tex.lua index 6984f2f..fe012c7 100644 --- a/.config/nvim/ftplugin/tex.lua +++ b/.config/nvim/ftplugin/tex.lua @@ -1,7 +1,6 @@ -- variables vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 -vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│ " vim.opt_local.spelllang = "fr" -- keybindings diff --git a/.config/nvim/ftplugin/yaml.lua b/.config/nvim/ftplugin/yaml.lua index 6845f3a..c6ba91d 100644 --- a/.config/nvim/ftplugin/yaml.lua +++ b/.config/nvim/ftplugin/yaml.lua @@ -1,6 +1,5 @@ -- variables vim.opt_local.shiftwidth = 2 vim.opt_local.tabstop = 2 -vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│ " -- keybindings diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 55040f7..e177890 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -4,45 +4,47 @@ vim.g.mapleader = " " -vim.o.expandtab = true -vim.o.smartindent = true -vim.o.shiftwidth = 4 -vim.o.tabstop = 4 -vim.o.cino = "(s" -vim.g.python_indent = { - open_paren = "shiftwidth()" -} +vim.opt.expandtab = true +vim.opt.smartindent = true +vim.opt.shiftwidth = 4 +vim.opt.tabstop = 4 +vim.opt.cino = "(s" +vim.g.python_indent = { open_paren = "shiftwidth()" } -vim.o.list = true -vim.o.listchars = "tab:> ,trail:-,nbsp:+,leadmultispace:│ " +vim.opt.list = true +--vim.opt.listchars = { +-- tab = "> ", +-- trail = "-", +-- nbsp = "+", +--} -vim.o.number = true -vim.o.relativenumber = true -vim.o.laststatus = 3 +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.laststatus = 3 -vim.o.ignorecase = true -vim.o.smartcase = true +vim.opt.ignorecase = true +vim.opt.smartcase = true -vim.o.guicursor = "" -vim.o.mousemodel = extend +vim.opt.guicursor = "" +vim.opt.mousemodel = extend -vim.o.path = vim.o.path .. ",**" -vim.o.suffixes = vim.o.suffixes .. ",.pyc,.hi" +vim.opt.path = vim.o.path .. ",**" +vim.opt.suffixes = vim.o.suffixes .. ",.pyc,.hi" -vim.o.foldmethod = "indent" -vim.o.foldlevel = 99 +vim.opt.foldmethod = "indent" +vim.opt.foldlevel = 99 -vim.o.grepprg = "grep -rn" +vim.opt.grepprg = "grep -rn" -vim.o.scrolloff = 2 -vim.wo.colorcolumn = "80" +vim.opt.scrolloff = 2 +vim.opt.colorcolumn = "80" vim.g.netrw_banner = 0 vim.g.netrw_list_hide = "\\.o$,\\.d$,\\.gc..$" -vim.o.lazyredraw = true +vim.opt.lazyredraw = true -vim.o.complete = vim.o.complete .. ",i" +vim.opt.complete = vim.o.complete .. ",i" -------------------- ----- packages ----- @@ -67,3 +69,12 @@ require"pack-treesitter" vim.keymap.set("n", "f", "%s/\\s\\+$//e") vim.keymap.set("n", "n", "nzz") vim.keymap.set("n", "N", "Nzz") + +------------------------ +----- autocommands ----- +------------------------ + +vim.api.nvim_create_autocmd({ "BufWinEnter" }, { callback = function() + vim.opt_local.listchars = vim.o.listchars .. + ",leadmultispace:│" .. string.rep(" ", vim.o.shiftwidth - 1) +end }) diff --git a/.config/nvim/lua/pack-easy-align.lua b/.config/nvim/lua/pack-easy-align.lua index 9f02b83..4a982d3 100644 --- a/.config/nvim/lua/pack-easy-align.lua +++ b/.config/nvim/lua/pack-easy-align.lua @@ -4,5 +4,5 @@ vim.keymap.set("n", "ga", "(EasyAlign)") vim.keymap.set("x", "ga", "(EasyAlign)") vim.g.easy_align_delimiters = { - ["\\"] = {["pattern"] = "\\\\$"} + ["\\"] = { ["pattern"] = "\\\\$" } } diff --git a/.config/nvim/lua/pack-lspconfig.lua b/.config/nvim/lua/pack-lspconfig.lua index 6db9571..83ac35a 100644 --- a/.config/nvim/lua/pack-lspconfig.lua +++ b/.config/nvim/lua/pack-lspconfig.lua @@ -7,8 +7,8 @@ local servers = { -- Global mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions vim.keymap.set('n', 'e', vim.diagnostic.open_float) -vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) -vim.keymap.set('n', ']d', vim.diagnostic.goto_next) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next) vim.keymap.set('n', 'q', vim.diagnostic.setloclist) -- Use LspAttach autocommand to only map the following keys @@ -19,20 +19,20 @@ local on_attach = function(client, bufnr) -- Buffer local mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', 'wl', function() + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, opts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) + vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) end for _, server in ipairs(servers) do diff --git a/.config/nvim/lua/pack-treesitter.lua b/.config/nvim/lua/pack-treesitter.lua index f3379e9..4007f5e 100644 --- a/.config/nvim/lua/pack-treesitter.lua +++ b/.config/nvim/lua/pack-treesitter.lua @@ -1,6 +1,7 @@ vim.cmd("packadd treesitter") require"nvim-treesitter.configs".setup { auto_install = true, - highlight = {enable = true}, + highlight = { enable = true }, } + vim.cmd("TSUpdate") diff --git a/.config/nvim/lua/theme.lua b/.config/nvim/lua/theme.lua index ea4bf18..f3d85c6 100644 --- a/.config/nvim/lua/theme.lua +++ b/.config/nvim/lua/theme.lua @@ -1,6 +1,7 @@ vim.cmd("packadd onedark") -require"onedark".setup { +local theme = require"onedark" +theme.setup { style = "dark", transparent = true } -require"onedark".load() +theme.load()