diff --git a/TODO b/TODO index d13f7e3..1a18914 100644 --- a/TODO +++ b/TODO @@ -1,2 +1,6 @@ -- [navigator] fix 'gi' keymap overriden by +[x] [navigator] fix 'gi' keymap overriden by navigator (use space leader) - [navigator] disable diagnostic on startup +- dynamic C-x: if number default or close window +- load custom/init.lua (autocommands) as vimscript file ? +- install neorg (neovim org mode) +- dynamic :w!! (daos or sudo) diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index c95f4b9..84b7e4c 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -35,11 +35,13 @@ M.general = { --{{{ -- Window resizing - [""] = { " vert res +2 ", "window width +" }, - [""] = { " vert res -2 ", "window width -" }, + [""] = { " vert res -2 ", "window width +" }, + [""] = { " vert res +2 ", "window width -" }, [""] = { "res +2 ", "window height +" }, [""] = { "res -2 ", "window height -" }, + ["="] = { "=", "adjust viewports "}, + -- quit dont save ["qq"] = { " quitall! ", "quit/close all windows, don't save" }, @@ -141,7 +143,7 @@ M.general = { --{{{ ["f9"] = { ":set foldlevel=9", "set fold level" }, ["en"] = { " cn ", "next error" }, - ["rp"] = { " cp ", "previous error" }, + ["ep"] = { " cp ", "previous error" }, ["g."] = { ":cwd", "change dir to current file", opts = { remap = true } }, @@ -160,6 +162,20 @@ M.general = { --{{{ }, + --------------- + -- Programming languages specifics + --------------- + + -- luadev + ["ls"] = {"Luadev", "Luadev scratch window"}, + ["ll"] = {"(Luadev-RunLine)", "Luadev Run Line"}, + ["lr"] = {"(Luadev-Run)", "Luadev Run over movement or text object"}, + ["lw"] = {"(Luadev-RunWord)", "Luadev Run word under cursor"}, + + -- + -- ["r"] = { "", "Run action"}, + + -- config files ["ev"] = {" source ~/.config/nvim/Session.vim" , "edit vim config"}, }, @@ -195,6 +211,9 @@ M.general = { --{{{ -- Change Working Directory to that of the current file ["cwd"] = { "lcd %:p:h", "change dir to current file" }, ["cd."] = { "lcd %:p:h", "change dir to current file" }, + ["w!!"] = { "w !doas tee %", "write file with root perms" }, + ["%%"] = { "=fnameescape(expand('%:h')).'/'", + "alias to current working dir"}, } } --}}} diff --git a/lua/core/options.lua b/lua/core/options.lua index 54d900f..394bc7c 100644 --- a/lua/core/options.lua +++ b/lua/core/options.lua @@ -56,6 +56,7 @@ opt.iskeyword:remove(".") opt.iskeyword:remove("#") opt.iskeyword:remove("-") +opt.foldminlines = 3 opt.foldlevelstart = 0 opt.conceallevel=1 -- how to show text with :syn-conceal syntax diff --git a/lua/custom/init.lua b/lua/custom/init.lua index 9ee1d55..c093e7a 100644 --- a/lua/custom/init.lua +++ b/lua/custom/init.lua @@ -4,6 +4,11 @@ -- local augroup = vim.api.nvim_create_augroup -- local autocmd = vim.api.nvim_create_autocmd +-- window closing +-- TODO: using dynamic C-x command +-- if character under cursor is number +-- use normal C-x or close window + -- highlights { vim.cmd [[ diff --git a/lua/custom/plugins/configs/navigator.lua b/lua/custom/plugins/configs/navigator.lua index 7fce189..52c0627 100644 --- a/lua/custom/plugins/configs/navigator.lua +++ b/lua/custom/plugins/configs/navigator.lua @@ -9,10 +9,53 @@ local config = { -- debug = true, transparency = nil, default_mapping = true, - -- keymaps = { - -- - -- }, - -- TODO: remap all keys to restore default keys maps like `gi` + icons = { + icons = true, -- set to false to use system default ( if you using a terminal does not have nerd/icon) + -- Code action + code_action_icon = ' ', -- "ο ΄", + -- code lens + code_lens_action_icon = 'πŸ‘“', + -- Diagnostics + diagnostic_head = 'πŸ›', + diagnostic_err = 'πŸ“›', + diagnostic_warn = 'πŸ‘Ž', + diagnostic_info = [[πŸ‘©]], + diagnostic_hint = [[πŸ’]], + + diagnostic_head_severity_1 = '🈲', + diagnostic_head_severity_2 = '☣️', + diagnostic_head_severity_3 = 'πŸ‘Ž', + diagnostic_head_description = 'πŸ‘Ή', + diagnostic_virtual_text = '🦊', + diagnostic_file = 'πŸš‘', + -- Values + value_changed = 'πŸ“', + value_definition = '🐢🍑', -- it is easier to see than πŸ¦• + side_panel = { + section_separator = 'ο››', + line_num_left = 'ξ‚²', + line_num_right = 'ξ‚°', + inner_node = 'β”œβ—‹', + outer_node = 'β•°β—‹', + bracket_left = 'βŸͺ', + bracket_right = '⟫', + }, + -- Treesitter + match_kinds = { + var = 'ξž› ', -- "πŸ‘Ή", -- Vampaire + method = 'Ζ’ ', -- "πŸ”", -- mac + ['function'] = 'ο‚š ', -- "🀣", -- Fun + parameter = 'ο‹… ', -- Pi + associated = '🀝', + namespace = 'πŸš€', + type = 'ο ‹ ', + field = '🏈', + module = 'πŸ“¦', + flag = '🎏', + }, + treesitter_defult = '🌲', + doc_symbols = 'ξœ–', + }, lsp = { document_highlight = false, mason = true, diff --git a/lua/custom/plugins/configs/treesitter-to.lua b/lua/custom/plugins/configs/treesitter-to.lua index b1daea0..cc9e0f8 100644 --- a/lua/custom/plugins/configs/treesitter-to.lua +++ b/lua/custom/plugins/configs/treesitter-to.lua @@ -6,6 +6,17 @@ end local options = { + -- treesitter config (not textobjects) + incremental_selection = { + enable = true, + keymaps = { + init_selection = "gnn", + node_incremental = "grn", + scope_incremental = "grc", + node_decremental = "grm", + } + }, + textobjects = { enable = true, diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index 5c1c2c4..88607e3 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -1,3 +1,5 @@ +-- vim: foldlevel=0 + return { ["nvim-treesitter/nvim-treesitter-textobjects"] = { after = "nvim-treesitter", @@ -8,6 +10,7 @@ return { ["mfussenegger/nvim-dap"] = { module = "dap" }, + -- side panel with symbols (replaced by Navigator :LspSymbols cmd) -- ["liuchengxu/vista.vim"] = { -- cmd = "Vista", @@ -15,6 +18,7 @@ return { -- require("core.utils").load_mappings "vista" -- end -- }, + -- ["folke/which-key.nvim"] = { disable = false, }, @@ -44,7 +48,7 @@ return { cmd = "G*" }, - -- restore view + -- session and view ["vim-scripts/restore_view.vim"] = {}, ["rmagatti/auto-session"] = { config = function () @@ -55,6 +59,8 @@ return { } end }, + + -- text formatting and navigation -- repeat operator for plugin commands ["tpope/vim-repeat"] = { keys = {"."}, @@ -67,13 +73,19 @@ return { ]] end }, + ["tpope/vim-surround"] = {}, + -- + -- misc general plugins -- Read info files + -- ["https://gitlab.com/HiPhish/info.vim.git"] = { cmd = "Info", setup = function() require("custom.plugins.info").set_mappings() end }, + + -- snippets ["L3MON4D3/LuaSnip"] = { config = function() -- load default config first @@ -91,6 +103,8 @@ return { } end }, + + -- LSP ["honza/vim-snippets"] = { module = {"cmp", "cmp_nvim_lsp"}, event = "InsertEnter", @@ -106,8 +120,9 @@ return { require("mason-lspconfig").setup({}) end, }, - -- ["ray-x/navigator.lua"] = { - ["https://git.sp4ke.xyz/sp4ke/navigator.lua"] = { + -- + -- ["https://git.sp4ke.xyz/sp4ke/navigator.lua"] = { + ["ray-x/navigator.lua"] = { after = "nvim-lspconfig", requires = {"neovim/nvim-lspconfig", "ray-x/guihua.lua", "nvim-treesitter/nvim-treesitter"}, setup = function() @@ -120,5 +135,44 @@ return { ["ray-x/guihua.lua"] = { module = "navigator", run= "cd lua/fzy && make" - } + }, + + -- per language plugins + + -- lua dev + ["bfredl/nvim-luadev"] = { + cmd = "Luadev", + keys = { + "(Luadev-RunLine)", + "(Luadev-Run)", + "(Luadev-RunWord)", + "(Luadev-Complete)", + }, + setup = function() + local autocmd = vim.api.nvim_create_autocmd + autocmd("FileType", { + pattern = "lua", + callback = function () + vim.keymap.set({'n', 'i'}, 'r', '(Luadev-RunLine)', { + desc = "Luadev RunLine" + }) + end, + }) + end + }, + ["ii14/neorepl.nvim"] = { + cmd = "Repl", + after = "nvim-cmp", + setup = function () + local autocmd = vim.api.nvim_create_autocmd + autocmd("FileType",{ + pattern = "neorepl", + callback = function () + require('cmp').setup.buffer({enabled = false}) + end + }) + end + + } + }