From fae4da8315fd506950c67e649c4781e985644783 Mon Sep 17 00:00:00 2001 From: fbachus Date: Fri, 8 Nov 2024 18:51:43 +0100 Subject: [PATCH] add nvim configs --- .config/nvim.backup/init.lua | 2 + .config/nvim.backup/init/.vim | 3 + .config/nvim.backup/lazy-lock.json | 27 +++++ .../nvim.backup/lua/plug_init/gitsigns.lua | 42 +++++++ .config/nvim.backup/lua/plug_init/init.lua | 10 ++ .../nvim.backup/lua/plug_init/lazy_path.lua | 12 ++ .../nvim.backup/lua/plug_init/lsp_init.lua | 49 ++++++++ .../lua/plug_init/nvim_possession_init.lua | 10 ++ .../lua/plug_init/telescope_init.lua | 11 ++ .../lua/plug_init/treestitter_init.lua | 9 ++ .../nvim.backup/lua/plug_init/vim_init.lua | 37 ++++++ .../nvim.backup/lua/plug_init/wilder_init.lua | 28 +++++ .../nvim.backup/lua/plugins/arshamiser.lua | 21 ++++ .../nvim.backup/lua/plugins/lsp_config.lua | 22 ++++ .../lua/plugins/nvim-possession.lua | 24 ++++ .config/nvim.backup/lua/plugins/peanuts.lua | 21 ++++ .config/nvim.backup/lua/plugins/undotree.lua | 8 ++ .config/nvim/init.lua | 2 + .config/nvim/init/.vim | 3 + .config/nvim/lazy-lock.json | 37 ++++++ .config/nvim/log.txt | 98 ++++++++++++++++ .config/nvim/lua/plug_init/aerial_init.lua | 22 ++++ .../nvim/lua/plug_init/color-picker_init.lua | 24 ++++ .config/nvim/lua/plug_init/crates_init.lua | 52 +++++++++ .config/nvim/lua/plug_init/gitsigns.lua | 39 +++++++ .config/nvim/lua/plug_init/init.lua | 35 ++++++ .config/nvim/lua/plug_init/lazy_path.lua | 12 ++ .config/nvim/lua/plug_init/lsp_init.lua | 63 +++++++++++ .config/nvim/lua/plug_init/lualine_init.lua | 84 ++++++++++++++ .config/nvim/lua/plug_init/noice_init.lua | 18 +++ .../lua/plug_init/nvim_possession_init.lua | 21 ++++ .../nvim/lua/plug_init/smart-open_init.lua | 9 ++ .config/nvim/lua/plug_init/telescope_init.lua | 21 ++++ .../lua/plug_init/treesitter-context_init.lua | 15 +++ .../nvim/lua/plug_init/treesitter_init.lua | 21 ++++ .config/nvim/lua/plug_init/vim_init.lua | 52 +++++++++ .config/nvim/lua/plug_init/which_key_init.lua | 95 ++++++++++++++++ .../nvim/lua/plug_init/which_key_init.lua.old | 107 ++++++++++++++++++ .config/nvim/lua/plug_init/wilder_init.lua | 30 +++++ .config/nvim/lua/plugins/coq_nvim.lua | 29 +++++ .config/nvim/lua/plugins/crates.lua | 8 ++ .config/nvim/lua/plugins/lsp_config.lua | 32 ++++++ .config/nvim/lua/plugins/nvim-possession.lua | 9 ++ .config/nvim/lua/plugins/peanuts.lua | 53 +++++++++ .config/nvim/lua/plugins/undotree.lua | 8 ++ .config/nvim/lua/plugins/which-key.lua | 9 ++ 46 files changed, 1344 insertions(+) create mode 100644 .config/nvim.backup/init.lua create mode 100644 .config/nvim.backup/init/.vim create mode 100644 .config/nvim.backup/lazy-lock.json create mode 100644 .config/nvim.backup/lua/plug_init/gitsigns.lua create mode 100644 .config/nvim.backup/lua/plug_init/init.lua create mode 100644 .config/nvim.backup/lua/plug_init/lazy_path.lua create mode 100644 .config/nvim.backup/lua/plug_init/lsp_init.lua create mode 100644 .config/nvim.backup/lua/plug_init/nvim_possession_init.lua create mode 100644 .config/nvim.backup/lua/plug_init/telescope_init.lua create mode 100644 .config/nvim.backup/lua/plug_init/treestitter_init.lua create mode 100644 .config/nvim.backup/lua/plug_init/vim_init.lua create mode 100644 .config/nvim.backup/lua/plug_init/wilder_init.lua create mode 100644 .config/nvim.backup/lua/plugins/arshamiser.lua create mode 100644 .config/nvim.backup/lua/plugins/lsp_config.lua create mode 100644 .config/nvim.backup/lua/plugins/nvim-possession.lua create mode 100644 .config/nvim.backup/lua/plugins/peanuts.lua create mode 100644 .config/nvim.backup/lua/plugins/undotree.lua create mode 100644 .config/nvim/init.lua create mode 100644 .config/nvim/init/.vim create mode 100644 .config/nvim/lazy-lock.json create mode 100644 .config/nvim/log.txt create mode 100644 .config/nvim/lua/plug_init/aerial_init.lua create mode 100644 .config/nvim/lua/plug_init/color-picker_init.lua create mode 100644 .config/nvim/lua/plug_init/crates_init.lua create mode 100644 .config/nvim/lua/plug_init/gitsigns.lua create mode 100644 .config/nvim/lua/plug_init/init.lua create mode 100644 .config/nvim/lua/plug_init/lazy_path.lua create mode 100644 .config/nvim/lua/plug_init/lsp_init.lua create mode 100644 .config/nvim/lua/plug_init/lualine_init.lua create mode 100644 .config/nvim/lua/plug_init/noice_init.lua create mode 100644 .config/nvim/lua/plug_init/nvim_possession_init.lua create mode 100644 .config/nvim/lua/plug_init/smart-open_init.lua create mode 100644 .config/nvim/lua/plug_init/telescope_init.lua create mode 100644 .config/nvim/lua/plug_init/treesitter-context_init.lua create mode 100644 .config/nvim/lua/plug_init/treesitter_init.lua create mode 100644 .config/nvim/lua/plug_init/vim_init.lua create mode 100644 .config/nvim/lua/plug_init/which_key_init.lua create mode 100644 .config/nvim/lua/plug_init/which_key_init.lua.old create mode 100644 .config/nvim/lua/plug_init/wilder_init.lua create mode 100644 .config/nvim/lua/plugins/coq_nvim.lua create mode 100644 .config/nvim/lua/plugins/crates.lua create mode 100644 .config/nvim/lua/plugins/lsp_config.lua create mode 100644 .config/nvim/lua/plugins/nvim-possession.lua create mode 100644 .config/nvim/lua/plugins/peanuts.lua create mode 100755 .config/nvim/lua/plugins/undotree.lua create mode 100644 .config/nvim/lua/plugins/which-key.lua diff --git a/.config/nvim.backup/init.lua b/.config/nvim.backup/init.lua new file mode 100644 index 0000000..e7d3e2a --- /dev/null +++ b/.config/nvim.backup/init.lua @@ -0,0 +1,2 @@ +------------------------------------- +require("plug_init") diff --git a/.config/nvim.backup/init/.vim b/.config/nvim.backup/init/.vim new file mode 100644 index 0000000..f182e5b --- /dev/null +++ b/.config/nvim.backup/init/.vim @@ -0,0 +1,3 @@ +set runtimepath^=~/.vim runtimepath+=~/.vim/after +let &packpath = &runtimepath +source ~/.vimrc diff --git a/.config/nvim.backup/lazy-lock.json b/.config/nvim.backup/lazy-lock.json new file mode 100644 index 0000000..f235770 --- /dev/null +++ b/.config/nvim.backup/lazy-lock.json @@ -0,0 +1,27 @@ +{ + "LuaSnip": { "branch": "master", "commit": "954c81b53989097faaff0fabc11c29575288c3e1" }, + "arshamiser.nvim": { "branch": "master", "commit": "13af62f49e5c906589aba48b338267c9ef6e2a8e" }, + "arshlib.nvim": { "branch": "master", "commit": "e76e35c927098d07445c72e9416cce243f6aae59" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "feline.nvim": { "branch": "master", "commit": "3587f57480b88e8009df7b36dc84e9c7ff8f2c49" }, + "fzf-lua": { "branch": "main", "commit": "46b5be64aa9e7b1cf7d9c29a0e80f7f9a2250007" }, + "gitsigns.nvim": { "branch": "main", "commit": "6e05045fb1a4845fe44f5c54aafe024444c422ba" }, + "heirline.nvim": { "branch": "master", "commit": "170e1b1fd7c11db00e46d802165fb277db601ae7" }, + "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, + "listish.nvim": { "branch": "master", "commit": "3bc4bb02036f3802c6428c6232633d3192ac3604" }, + "lsp-zero.nvim": { "branch": "v3.x", "commit": "b9044716e675354357ab8269ccf7bd0fcdc0991e" }, + "nui.nvim": { "branch": "main", "commit": "c9b4de623d19a85b353ff70d2ae9c77143abe69c" }, + "nvim-cmp": { "branch": "main", "commit": "41d7633e4146dce1072de32cea31ee31b056a131" }, + "nvim-lspconfig": { "branch": "master", "commit": "bd405e45c5fb122c16af8f87fa2dd7ab1981b243" }, + "nvim-possession": { "branch": "main", "commit": "253e52fe26f2816acae68e7e0ced9d89adf3f85a" }, + "nvim-treesitter": { "branch": "master", "commit": "b6b9ca448b7f236e2e60f8393a729902511f9db9" }, + "nvim-web-devicons": { "branch": "master", "commit": "8b2e5ef9eb8a717221bd96cb8422686d65a09ed5" }, + "onedark.nvim": { "branch": "master", "commit": "c5476a091b0f1b4e853db91c91ff941f848a1cdd" }, + "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, + "sqls.nvim": { "branch": "main", "commit": "4b1274b5b44c48ce784aac23747192f5d9d26207" }, + "telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" }, + "transparent.nvim": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" }, + "undotree": { "branch": "main", "commit": "a88c8ab7f780bc14ab9356c2311c44f49213d47c" }, + "vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" }, + "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" } +} \ No newline at end of file diff --git a/.config/nvim.backup/lua/plug_init/gitsigns.lua b/.config/nvim.backup/lua/plug_init/gitsigns.lua new file mode 100644 index 0000000..be2a9c2 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/gitsigns.lua @@ -0,0 +1,42 @@ +require('gitsigns').setup { + signs = { + add = { text = '│' }, + change = { text = '│' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + attach_to_untracked = true, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + virt_text_priority = 100, + }, + current_line_blame_formatter = ', - ', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = 'single', + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, + yadm = { + enable = false + }, +} diff --git a/.config/nvim.backup/lua/plug_init/init.lua b/.config/nvim.backup/lua/plug_init/init.lua new file mode 100644 index 0000000..515d23e --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/init.lua @@ -0,0 +1,10 @@ +require("plug_init.vim_init") +require("plug_init.lazy_path") +require("lazy").setup("plugins") +require('onedark').load() + +require("plug_init.wilder_init") +require("plug_init.telescope_init") +require("plugins.lsp_config") +require("plug_init.lsp_init") +require("plug_init.gitsigns") diff --git a/.config/nvim.backup/lua/plug_init/lazy_path.lua b/.config/nvim.backup/lua/plug_init/lazy_path.lua new file mode 100644 index 0000000..d14f916 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/lazy_path.lua @@ -0,0 +1,12 @@ +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) diff --git a/.config/nvim.backup/lua/plug_init/lsp_init.lua b/.config/nvim.backup/lua/plug_init/lsp_init.lua new file mode 100644 index 0000000..dcbd846 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/lsp_init.lua @@ -0,0 +1,49 @@ +local lsp_zero = require('lsp-zero') +------------ + + vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + vim.keymap.set('n', 'öö', vim.diagnostic.goto_prev) + vim.keymap.set('n', 'ää', vim.diagnostic.goto_next) + vim.keymap.set('n', 'le', vim.diagnostic.open_float) + 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', 'wa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'f', function() + vim.lsp.buf.format { async = true } + end, opts) + end, + }) + +----------------- +lsp_zero.on_attach(function(client, bufnr) + -- see :help lsp-zero-keybindings + -- to learn the available actions + lsp_zero.default_keymaps({buffer = bufnr}) +end) + +require('lspconfig').rust_analyzer.setup{ + settings = { + ['rust-analyzer'] = { + imports = { + granularity = { + group = "module", + }, + prefix = "self", + }, + cargo = { + buildScripts = { + enable = true, + }, + }, + procMacro = { + enable = true + }, + }, + }, +} diff --git a/.config/nvim.backup/lua/plug_init/nvim_possession_init.lua b/.config/nvim.backup/lua/plug_init/nvim_possession_init.lua new file mode 100644 index 0000000..20d62e8 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/nvim_possession_init.lua @@ -0,0 +1,10 @@ +require("nvim-possession").setup({ + autoload = false, -- default false + autosave = true, + autoswitch = { + enable = true + }, + sessions = { + sessions_path = "/home/felix/.cache/nvim/sessions/" + } +}) diff --git a/.config/nvim.backup/lua/plug_init/telescope_init.lua b/.config/nvim.backup/lua/plug_init/telescope_init.lua new file mode 100644 index 0000000..9be17c1 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/telescope_init.lua @@ -0,0 +1,11 @@ +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'fb', builtin.buffers, {}) +vim.keymap.set('n', 'fh', builtin.help_tags, {}) + +vim.keymap.set('n', 'gi', builtin.git_files, {}) +vim.keymap.set('n', 'gd', builtin.git_status, {}) + + + diff --git a/.config/nvim.backup/lua/plug_init/treestitter_init.lua b/.config/nvim.backup/lua/plug_init/treestitter_init.lua new file mode 100644 index 0000000..95971f3 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/treestitter_init.lua @@ -0,0 +1,9 @@ +require("nvim-treesitter.configs").setup { + ensure_installed = { "help", "lua", "rust", "typescript"}, + sync_install = false + auto_install = true + highlight = { + enable = true, + additional_vim_regex_highlighting = false + } +} diff --git a/.config/nvim.backup/lua/plug_init/vim_init.lua b/.config/nvim.backup/lua/plug_init/vim_init.lua new file mode 100644 index 0000000..7ff6e3b --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/vim_init.lua @@ -0,0 +1,37 @@ +vim.opt.compatible = false +vim.opt.showmatch = true +vim.opt.hlsearch = true +vim.opt.incsearch = true +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.expandtab = true +vim.opt.shiftwidth = 4 +vim.opt.autoindent = true +vim.opt.relativenumber = true +vim.opt.number = true +vim.opt.wildmode = "longest,list" +vim.opt.cursorline = true +vim.opt.ttyfast = true +vim.opt.scrolloff = 5 +vim.opt.syntax = "on" +vim.opt.wrap = false +vim.opt.mouse = "" +vim.opt.termguicolors = true +vim.opt.undofile = true +vim.opt.undodir = os.getenv("HOME").."/.local/share/nvim/undodir" +vim.opt.updatetime = 50 +vim.opt.colorcolumn = "80" + +vim.g.mapleader = " " + +-- move highlighted lines up and down, automatic indentation +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +-- replace highlighted area without adding to register +vim.keymap.set("x", "p", "\"_dP") + +-- copy to system clipboard +vim.keymap.set("n", "y", "\"+y") +vim.keymap.set("v", "y", "\"+y") +vim.keymap.set("n", "Y", "\"+Y") diff --git a/.config/nvim.backup/lua/plug_init/wilder_init.lua b/.config/nvim.backup/lua/plug_init/wilder_init.lua new file mode 100644 index 0000000..87446c8 --- /dev/null +++ b/.config/nvim.backup/lua/plug_init/wilder_init.lua @@ -0,0 +1,28 @@ +--- +local wilder = require('wilder') +local gradient = { + '#f4468f', '#fd4a85', '#ff507a', '#ff566f', '#ff5e63', + '#ff6658', '#ff704e', '#ff7a45', '#ff843d', '#ff9036', + '#f89b31', '#efa72f', '#e6b32e', '#dcbe30', '#d2c934', + '#c8d43a', '#bfde43', '#b6e84e', '#aff05b' +} +wilder.setup({modes = {':', '/', '?'} }) +wilder.set_option('pipeline', { + wilder.branch( + wilder.cmdline_pipeline(), + wilder.search_pipeline() + ), +}) +for i, fg in ipairs(gradient) do +gradient[i] = wilder.make_hl('WilderGradient' .. i, 'Pmenu', {{a = 1}, {a = 1}, {foreground = fg}}) +end + +wilder.set_option('renderer', wilder.wildmenu_renderer({ + highlights = { + gradient = gradient, -- must be set + -- selected_gradient key can be set to apply gradient highlighting for the selected candidate. + }, + highlighter = wilder.highlighter_with_gradient({ + wilder.basic_highlighter(), -- or wilder.lua_fzy_highlighter(), + }), +})) diff --git a/.config/nvim.backup/lua/plugins/arshamiser.lua b/.config/nvim.backup/lua/plugins/arshamiser.lua new file mode 100644 index 0000000..020f284 --- /dev/null +++ b/.config/nvim.backup/lua/plugins/arshamiser.lua @@ -0,0 +1,21 @@ +return { + "arsham/arshamiser.nvim", + dependencies = { + "arsham/arshlib.nvim", + "famiu/feline.nvim", + "rebelot/heirline.nvim", + "kyazdani42/nvim-web-devicons", + }, + config = function() + -- ignore any parts you don't want to use + vim.cmd.colorscheme("arshamiser_dark") + require("arshamiser.feliniser") + -- or: + -- require("arshamiser.heirliniser") + + _G.custom_foldtext = require("arshamiser.folding").foldtext + vim.opt.foldtext = "v:lua.custom_foldtext()" + -- if you want to draw a tabline: + vim.api.nvim_set_option("tabline", [[%{%v:lua.require("arshamiser.tabline").draw()%}]]) + end, +} diff --git a/.config/nvim.backup/lua/plugins/lsp_config.lua b/.config/nvim.backup/lua/plugins/lsp_config.lua new file mode 100644 index 0000000..4d6a809 --- /dev/null +++ b/.config/nvim.backup/lua/plugins/lsp_config.lua @@ -0,0 +1,22 @@ +return { + -- LSP Support + { + 'VonHeikemen/lsp-zero.nvim', + branch = "v3.x", + lazy = true, + config = false, + }, + { + "neovim/nvim-lspconfig", + dependencies = { + {"hrsh7th/cmp-nvim-lsp"}, + } + }, + -- Autocompletion + { + "hrsh7th/nvim-cmp", + dependencies = { + {"L3MON4D3/LuaSnip"} + }, + }, +} diff --git a/.config/nvim.backup/lua/plugins/nvim-possession.lua b/.config/nvim.backup/lua/plugins/nvim-possession.lua new file mode 100644 index 0000000..ff71258 --- /dev/null +++ b/.config/nvim.backup/lua/plugins/nvim-possession.lua @@ -0,0 +1,24 @@ +return { + { "gennaro-tedesco/nvim-possession", + dependencies = { + "ibhagwan/fzf-lua", + }, + lazy = true, + config = true, + init = function() + local possession = require("nvim-possession") + vim.keymap.set("n", "sl", function() + possession.list() + end) + vim.keymap.set("n", "sn", function() + possession.new() + end) + vim.keymap.set("n", "su", function() + possession.update() + end) + vim.keymap.set("n", "sd", function() + possession.delete() + end) + end, + }, +} diff --git a/.config/nvim.backup/lua/plugins/peanuts.lua b/.config/nvim.backup/lua/plugins/peanuts.lua new file mode 100644 index 0000000..6570afa --- /dev/null +++ b/.config/nvim.backup/lua/plugins/peanuts.lua @@ -0,0 +1,21 @@ +return { + -- not deps + { "navarasu/onedark.nvim", cmd = "Neoconf", opts = { style = darker }}, + { "gelguy/wilder.nvim", lazy = true }, + { "xiyaowong/transparent.nvim" }, + { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate"}, + { "nvim-telescope/telescope.nvim", tag = "0.1.2", dependencies = { + "nvim-lua/plenary.nvim" + }, + lazy = true + }, + { "tpope/vim-fugitive", lazy = true }, + { "lewis6991/gitsigns.nvim", lazy = true }, + { "ibhagwan/fzf-lua", lazy = true }, + { "arsham/listish.nvim", lazy = true }, + { "nanotee/sqls.nvim", lazy = true }, + { "MunifTanjim/nui.nvim", lazy = true }, + -- optional + --{ "sainnhe/everforest", lazy = true }, + --{ "nvim-treesitter/nvim-treesitter-textobjects" }, +} diff --git a/.config/nvim.backup/lua/plugins/undotree.lua b/.config/nvim.backup/lua/plugins/undotree.lua new file mode 100644 index 0000000..6454306 --- /dev/null +++ b/.config/nvim.backup/lua/plugins/undotree.lua @@ -0,0 +1,8 @@ +return { + "jiaoshijie/undotree", + dependencies = "nvim-lua/plenary.nvim", + config = true, + keys = { -- load the plugin only when using it's keybinding: + { "u", "lua require('undotree').toggle()" }, + }, +} diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..e7d3e2a --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,2 @@ +------------------------------------- +require("plug_init") diff --git a/.config/nvim/init/.vim b/.config/nvim/init/.vim new file mode 100644 index 0000000..f182e5b --- /dev/null +++ b/.config/nvim/init/.vim @@ -0,0 +1,3 @@ +set runtimepath^=~/.vim runtimepath+=~/.vim/after +let &packpath = &runtimepath +source ~/.vimrc diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..7e7a6e1 --- /dev/null +++ b/.config/nvim/lazy-lock.json @@ -0,0 +1,37 @@ +{ + "LuaSnip": { "branch": "master", "commit": "2737edc9e674e537dc0a97e3405658d57d2d31ed" }, + "aerial.nvim": { "branch": "master", "commit": "247df216704cbe3cfa68e2ae5515c3485e281364" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "color-picker.nvim": { "branch": "master", "commit": "06cb5f853535dea529a523e9a0e8884cdf9eba4d" }, + "coq.artifacts": { "branch": "artifacts", "commit": "a1ffcee295905171d87b40ee456001d45b10329b" }, + "coq.thirdparty": { "branch": "3p", "commit": "a827c2ab76d7c803976765cac597c79a2a5b34f6" }, + "coq_nvim": { "branch": "coq", "commit": "db12581bea4e83b8d8142c15daa9632d796636cf" }, + "crates.nvim": { "branch": "main", "commit": "8bf8358ee326d5d8c11dcd7ac0bcc9ff97dbc785" }, + "everforest-nvim": { "branch": "main", "commit": "7c57941d5ef5a150f307b9295c00a59e95d78587" }, + "fzf-lua": { "branch": "main", "commit": "ce1e24f2a48089b65deefcb0a71a9856839002b5" }, + "gitsigns.nvim": { "branch": "main", "commit": "4daf7022f1481edf1e8fb9947df13bb07c18e89a" }, + "lazy.nvim": { "branch": "main", "commit": "b1134ab82ee4279e31f7ddf7e34b2a99eb9b7bc9" }, + "lsp-zero.nvim": { "branch": "v3.x", "commit": "ab2a3413646fedd77aa0eab4214a6473e62f6a64" }, + "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, + "nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, + "nvim-lspconfig": { "branch": "master", "commit": "d01864641c6e43c681c3e9f6cf4745c75fdd9dcc" }, + "nvim-possession": { "branch": "main", "commit": "fcc6e00ffb13b7c7945560af8bf025184f795c95" }, + "nvim-treesitter": { "branch": "master", "commit": "425b58968340bd5b4621c2a0d626c73556516d3d" }, + "nvim-treesitter-context": { "branch": "master", "commit": "a2a334900d3643de585ac5c6140b03403454124f" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "3e450cd85243da99dc23ebbf14f9c70e9a0c26a4" }, + "nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" }, + "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, + "smart-open.nvim": { "branch": "0.2.x", "commit": "7770b01ce4d551c143d7ec8589879320796621b9" }, + "sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, + "telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" }, + "telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" }, + "undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" }, + "vim-fugitive": { "branch": "master", "commit": "d4877e54cef67f5af4f950935b1ade19ed6b7370" }, + "which-key.nvim": { "branch": "main", "commit": "68e37e12913a66b60073906f5d3f14dee0de19f2" }, + "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" } +} diff --git a/.config/nvim/log.txt b/.config/nvim/log.txt new file mode 100644 index 0000000..6ffe4a1 --- /dev/null +++ b/.config/nvim/log.txt @@ -0,0 +1,98 @@ +[?1049h[?1h[?2004h[?2026$p[?u[?12h[?25h[?25l(B[38:2:224:226:234m[48:2:20:22:27m [?1004h[?12h[?25h[?25l(B[38:2:224:226:234m[48:2:20:22:27m (B[38:2:211:198:170m[48:2:45:53:59m + + +(B[38:2:252:224:148m[48:2:45:53:59mRe-sourcing your config is not supported with lazy.nvim(B[38:2:211:198:170m[48:2:45:53:59m ]112[1 q + + + + + + + + + + + + + + + + + + + + + + +(B[38:2:252:224:148m[48:2:45:53:59mRe-sourcing your config is not supported with lazy.nvim(B[38:2:211:198:170m[48:2:45:53:59m [?12h[?25h[?25l(B[38:2:211:198:170m[48:2:45:53:59m + + + + + + + + + + + + + + + + + + + + + + + ]112[2 q]112[2 q [?12h[?25h[?25l(B[38:2:211:198:170m[48:2:45:53:59m + + + + + + + + + + + + + + + + + + + + + + + ]112[2 q]112[2 q [?12h[?25h[?25l]112[2 q]112[2 q[?12h[?25h[?25l(B[38:2:45:53:59m[48:2:167:192:128m [No Name] (B[38:2:133:146:137m[48:2:52:63:68m +(B[38:2:211:198:170m[48:2:45:53:59m (B[38:2:133:146:137m[48:2:45:53:59m1 (B[38:2:211:198:170m[48:2:52:63:68m +(B[38:2:79:88:94m[48:2:45:53:59m~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +~ +(B[38:2:211:198:170m[48:2:45:53:59m + +(B[38:2:252:224:148m[48:2:45:53:59mRe-sourcing your config is not supported with lazy.nvim(B[38:2:211:198:170m[48:2:45:53:59m (B[38:2:79:88:94m[48:2:45:53:59m~ +~ +(B[38:2:211:198:170m[48:2:45:53:59m (B[38:2:211:198:170m[48:2:45:53:59mNVIM v0.10.2Nvim is open source and freely distributablehttps://neovim.io/#chattype :help nvim(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m if you are new! type :checkhealth(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m to optimize Nvimtype :q(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m to exit type :help(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m for help type :help news(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m to see changes in v0.10Help poor children in Uganda!type :help iccf(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m for information [?12h[?25h[?25l(B[38:2:45:53:59m[48:2:167:192:128m 1 [No Name] (B[38:2:167:192:128m[48:2:52:63:68m(B[38:2:133:146:137m[48:2:52:63:68m (B[38:2:71:82:88m[48:2:52:63:68m(B[38:2:157:169:160m[48:2:71:82:88m 15:15 (B[38:2:79:88:94m[48:2:45:53:59m          (B[38:2:45:53:59m[48:2:167:192:128m NORMAL (B[38:2:167:192:128m[48:2:71:82:88m(B[38:2:157:169:160m[48:2:71:82:88m  master (B[38:2:71:82:88m[48:2:52:63:68m(B[38:2:133:146:137m[48:2:52:63:68m (B[38:2:71:82:88m[48:2:52:63:68m(B[38:2:157:169:160m[48:2:71:82:88m Top (B[38:2:167:192:128m[48:2:71:82:88m(B[38:2:45:53:59m[48:2:167:192:128m 1:1 (B[38:2:211:198:170m[48:2:45:53:59mNVIM v0.10.2Nvim is open source and freely distributablehttps://neovim.io/#chattype :help nvim(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m if you are new! type :checkhealth(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m to optimize Nvimtype :q(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m to exit type :help(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m for help type :help news(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m to see changes in v0.10Help poor children in Uganda!type :help iccf(B[38:2:219:188:127m[48:2:45:53:59m(B[38:2:211:198:170m[48:2:45:53:59m for information [?12h[?25h \ No newline at end of file diff --git a/.config/nvim/lua/plug_init/aerial_init.lua b/.config/nvim/lua/plug_init/aerial_init.lua new file mode 100644 index 0000000..24d7cab --- /dev/null +++ b/.config/nvim/lua/plug_init/aerial_init.lua @@ -0,0 +1,22 @@ +local wk = require("which-key") +require("aerial").setup({ + lazy_load = true, + backends = { "treesitter", "lsp", "markdown", "man" }, + layout = { + -- max_width = {40, 0.2} means "the lesser of 40 columns or 20% of total" + max_width = { 40, 0.2 }, + width = nil, + min_width = 10, + default_direction = "prefer_right", + -- Determines where the aerial window will be opened + -- edge - open aerial at the far right/left of the editor + -- window - open aerial to the right/left of the current window + placement = "edge", + resize_to_content = true, + }, + wk.add({ + { "{", "AerialPrev", desc = "Jump to prev Symbol" }, + { "}", "AerialNext", desc = "Jump to prev Symbol" }, + { "a", "AerialToggle!", desc = "Toggle Outline" }, + }), +}) diff --git a/.config/nvim/lua/plug_init/color-picker_init.lua b/.config/nvim/lua/plug_init/color-picker_init.lua new file mode 100644 index 0000000..ef55738 --- /dev/null +++ b/.config/nvim/lua/plug_init/color-picker_init.lua @@ -0,0 +1,24 @@ +local opts = { noremap = true, silent = true } + +vim.keymap.set("n", "", "PickColor", opts) +vim.keymap.set("i", "", "PickColorInsert", opts) + +-- vim.keymap.set("n", "your_keymap", "ConvertHEXandRGB", opts) +-- vim.keymap.set("n", "your_keymap", "ConvertHEXandHSL", opts) + +require("color-picker").setup({ -- for changing icons & mappings + -- ["icons"] = { "ﱢ", "" }, + -- ["icons"] = { "ﮊ", "" }, + -- ["icons"] = { "", "ﰕ" }, + -- ["icons"] = { "", "" }, + -- ["icons"] = { "", "" }, + ["icons"] = { "ﱢ", "" }, + ["border"] = "rounded", -- none | single | double | rounded | solid | shadow + ["keymap"] = { -- mapping example: + ["U"] = "ColorPickerSlider5Decrease", + ["O"] = "ColorPickerSlider5Increase", + }, + ["background_highlight_group"] = "Normal", -- default + ["border_highlight_group"] = "FloatBorder", -- default ["text_highlight_group"] = "Normal", --default }) +}) +vim.cmd([[hi FloatBorder guibg=NONE]]) -- if you don't want weird border background colors around the popup. diff --git a/.config/nvim/lua/plug_init/crates_init.lua b/.config/nvim/lua/plug_init/crates_init.lua new file mode 100644 index 0000000..a999824 --- /dev/null +++ b/.config/nvim/lua/plug_init/crates_init.lua @@ -0,0 +1,52 @@ +local crates = require("crates") +local opts = { silent = true } + +vim.keymap.set("n", "ct", crates.toggle, opts) +vim.keymap.set("n", "cr", crates.reload, opts) + +vim.keymap.set("n", "cv", crates.show_versions_popup, opts) +vim.keymap.set("n", "cf", crates.show_features_popup, opts) +vim.keymap.set("n", "cd", crates.show_dependencies_popup, opts) + +vim.keymap.set("n", "cu", crates.update_crate, opts) +vim.keymap.set("v", "cu", crates.update_crates, opts) +vim.keymap.set("n", "ca", crates.update_all_crates, opts) +vim.keymap.set("n", "cU", crates.upgrade_crate, opts) +vim.keymap.set("v", "cU", crates.upgrade_crates, opts) +vim.keymap.set("n", "cA", crates.upgrade_all_crates, opts) + +vim.keymap.set("n", "cx", crates.expand_plain_crate_to_inline_table, opts) +vim.keymap.set("n", "cX", crates.extract_crate_into_table, opts) + +vim.keymap.set("n", "cH", crates.open_homepage, opts) +vim.keymap.set("n", "cR", crates.open_repository, opts) +vim.keymap.set("n", "cD", crates.open_documentation, opts) +vim.keymap.set("n", "cC", crates.open_crates_io, opts) + +local wk = require("which-key") +wk.add({ + { + mode = { "n" }, + { "c", group = "crates" }, + { "cA", desc = "Upgrade all crates" }, + { "cC", desc = "Open crates.io" }, + { "cD", desc = "Open documentation" }, + { "cH", desc = "Open homepage" }, + { "cR", desc = "Open repository" }, + { "cU", desc = "Upgrade crate" }, + { "cX", desc = "Extract crate into table" }, + { "ca", desc = "Update all crates" }, + { "cd", desc = "Show dependencies popup" }, + { "cf", desc = "Show features popup" }, + { "cr", desc = "Reload" }, + { "ct", desc = "Toggle" }, + { "cu", desc = "Update crate" }, + { "cv", desc = "Show versions popup" }, + { "cx", desc = "Expand plain crate to inline table" }, + }, + { + mode = { "v" }, + { "cu", desc = "Update crates" }, + { "cU", desc = "Upgrade crates" }, + }, +}) diff --git a/.config/nvim/lua/plug_init/gitsigns.lua b/.config/nvim/lua/plug_init/gitsigns.lua new file mode 100644 index 0000000..9861ec5 --- /dev/null +++ b/.config/nvim/lua/plug_init/gitsigns.lua @@ -0,0 +1,39 @@ +require('gitsigns').setup { + signs = { + add = { text = '│' }, + change = { text = '│' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = true, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + attach_to_untracked = true, + current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 150, + ignore_whitespace = false, + virt_text_priority = 100, + }, + current_line_blame_formatter = ', - ', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = 'single', + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, +} diff --git a/.config/nvim/lua/plug_init/init.lua b/.config/nvim/lua/plug_init/init.lua new file mode 100644 index 0000000..d80f2cd --- /dev/null +++ b/.config/nvim/lua/plug_init/init.lua @@ -0,0 +1,35 @@ +require("plug_init.vim_init") +require("plug_init.lazy_path") +require("lazy").setup("plugins") +--require("onedarkpro").setup({ +-- filetypes = { +-- all = true +-- }, +-- options = { +-- transparency = true +-- } +--}) +--require("onedarkpro").load() +require("everforest").load() +require("plug_init.which_key_init") +require("plug_init.lualine_init") +require("plug_init.aerial_init") +require("plug_init.crates_init") +require("plug_init.wilder_init") +require("plug_init.telescope_init") +require("plug_init.nvim_possession_init") +require("plug_init.treesitter_init") +--require("plug_init.noice_init") +require("plugins.lsp_config") +require("plug_init.lsp_init") +require("plug_init.smart-open_init") +require("plug_init.gitsigns") +require("colorizer").setup { + 'css', + 'scss', + 'javascript', + html = { + mode = 'foreground', + } +} +require("plug_init.color-picker_init") diff --git a/.config/nvim/lua/plug_init/lazy_path.lua b/.config/nvim/lua/plug_init/lazy_path.lua new file mode 100644 index 0000000..d14f916 --- /dev/null +++ b/.config/nvim/lua/plug_init/lazy_path.lua @@ -0,0 +1,12 @@ +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) diff --git a/.config/nvim/lua/plug_init/lsp_init.lua b/.config/nvim/lua/plug_init/lsp_init.lua new file mode 100644 index 0000000..14cbab0 --- /dev/null +++ b/.config/nvim/lua/plug_init/lsp_init.lua @@ -0,0 +1,63 @@ +local lsp_zero = require('lsp-zero') +lsp_zero.extend_lspconfig() +------------ + + vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) + vim.keymap.set('n', "]d", vim.diagnostic.goto_next) + vim.keymap.set('n', 'le', vim.diagnostic.open_float) + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'rr', vim.lsp.buf.rename, 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', 'wa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'i', function() + vim.lsp.buf.format { async = true } + end, opts) + end, + }) + +----------------- +lsp_zero.on_attach(function(client, bufnr) + -- see :help lsp-zero-keybindings + -- to learn the available actions + lsp_zero.default_keymaps({buffer = bufnr}) +end) + +require('lspconfig').lua_ls.setup(lsp_zero.nvim_lua_ls()) + +require('lspconfig').rust_analyzer.setup{ + settings = { + ['rust-analyzer'] = { + imports = { + granularity = { + group = "module", + }, + prefix = "self", + }, + cargo = { + buildScripts = { + enable = true, + }, + }, + procMacro = { + enable = true + }, + }, + }, +} +require('mason').setup({}) +require('mason-lspconfig').setup({ + -- Replace the language servers listed here + -- with the ones you want to install + ensure_installed = {'rust_analyzer', 'ruff', 'quick_lint_js', + 'html', 'cssls', 'lua_ls', 'vimls'}, + handlers = { + lsp_zero.default_setup, + }, +}) diff --git a/.config/nvim/lua/plug_init/lualine_init.lua b/.config/nvim/lua/plug_init/lualine_init.lua new file mode 100644 index 0000000..3cf9303 --- /dev/null +++ b/.config/nvim/lua/plug_init/lualine_init.lua @@ -0,0 +1,84 @@ +require('lualine').setup { + options = { + icons_enabled = true, + theme = 'everforest', + component_separators = { left = '', right = '' }, + --component_separators = { left = '', right = '' }, + section_separators = { left = '', right = '' }, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = false, + globalstatus = false, + refresh = { + statusline = 1000, + tabline = 2000, + winbar = 20000, + }, + symbols = { + modified = ' ●', -- Text to show when the buffer is modified + alternate_file = '#', -- Text to show to identify the alternate file + directory = '', -- Text to show when the buffer is a directory + }, + }, + sections = { + lualine_a = { 'mode' }, + lualine_b = { 'branch', 'diff', 'diagnostics' }, + lualine_c = { + -- { + -- require("noice").api.status.mode.get, + -- cond = require("noice").api.status.mode.has, + -- color = { fg = "#ff9e64" }, + -- }, + -- { + -- require("noice").api.status.search.get, + -- cond = require("noice").api.status.search.has, + -- color = { fg = "#ff9e64" }, + -- }, + }, + lualine_x = { + -- { + -- require("noice").api.status.command.get, + -- cond = require("noice").api.status.command.has, + -- color = { fg = "#ff9e64" }, + -- }, + 'filesize', + 'filetype', + 'require"lsp-status".status()' + }, + lualine_y = { 'searchcount', 'progress' }, + lualine_z = { 'selectioncount', 'location' }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { 'filename' }, + lualine_d = {}, + lualine_x = { 'filesize', 'filetype' }, + lualine_y = { 'location' }, + lualine_z = {}, + }, + tabline = { + lualine_a = { + { + 'tabs', + mode = 2, + path = 1, + max_length = 60, + tab_max_length = 13, + use_mode_colors = true, + }, + }, + lualine_b = {}, + lualine_c = {}, + lualine_d = {}, + lualine_x = {}, + lualine_y = { { 'datetime', style = "%H:%M" } }, + lualine_z = {}, + }, + winbar = {}, + inactive_winbar = {}, + extensions = {} +} diff --git a/.config/nvim/lua/plug_init/noice_init.lua b/.config/nvim/lua/plug_init/noice_init.lua new file mode 100644 index 0000000..ddc01fe --- /dev/null +++ b/.config/nvim/lua/plug_init/noice_init.lua @@ -0,0 +1,18 @@ +require("noice").setup({ + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + -- override = { + -- ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + -- ["vim.lsp.util.stylize_markdown"] = true, + -- ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp + -- }, + }, + -- you can enable a preset for easier configuration + -- presets = { + -- --bottom_search = cmdline, -- use a classic bottom cmdline for search + -- command_palette = true, -- position the cmdline and popupmenu together + -- long_message_to_split = true, -- long messages will be sent to a split + -- inc_rename = false, -- enables an input dialog for inc-rename.nvim + -- lsp_doc_border = false, -- add a border to hover docs and signature help + -- }, +}) diff --git a/.config/nvim/lua/plug_init/nvim_possession_init.lua b/.config/nvim/lua/plug_init/nvim_possession_init.lua new file mode 100644 index 0000000..0bec9e7 --- /dev/null +++ b/.config/nvim/lua/plug_init/nvim_possession_init.lua @@ -0,0 +1,21 @@ +local possession = require("nvim-possession") +local wk = require("which-key") + +require("nvim-possession").setup({ + autoload = true, -- default false + autosave = true, + autoswitch = { + enable = true + }, + lazy = true, + sessions = { + sessions_path = "/home/felix/.cache/nvim/sessions/" + }, + wk.add({ + { "s", group="Sessions" }, + { "sl", function() possession.list() end, desc="List sesssions" }, + { "sn", function() possession.new() end, desc="Create new session" }, + { "su", function() possession.update() end, desc="Update Session" }, + { "sd", function() possession.delete() end, desc="Delete Session" }, + }), +}) diff --git a/.config/nvim/lua/plug_init/smart-open_init.lua b/.config/nvim/lua/plug_init/smart-open_init.lua new file mode 100644 index 0000000..3a1d14c --- /dev/null +++ b/.config/nvim/lua/plug_init/smart-open_init.lua @@ -0,0 +1,9 @@ +local wk = require("which-key") + +require("telescope").load_extension("smart_open") +require("smart-open").setup({ + lazy = true, + wk.add({ + { "", "Telescope smart_open", desc="Smart open" }, + }) +}) diff --git a/.config/nvim/lua/plug_init/telescope_init.lua b/.config/nvim/lua/plug_init/telescope_init.lua new file mode 100644 index 0000000..84c2b7c --- /dev/null +++ b/.config/nvim/lua/plug_init/telescope_init.lua @@ -0,0 +1,21 @@ +require('telescope').setup({ + defaults = { + sorting_strategy = 'descending', + scroll_strategy = 'limit', + scroll_speed = 7, + layout_strategy = 'vertical', + layout_config = { + prompt_position = 'top', + preview_cutoff = 0, + horizontal = { + height = 0.9, + }, + vertical = { + prompt_position = 'top', + height = 0.9, + width = 0.8, + mirror = true, + }, + }, + }, +}) diff --git a/.config/nvim/lua/plug_init/treesitter-context_init.lua b/.config/nvim/lua/plug_init/treesitter-context_init.lua new file mode 100644 index 0000000..717df53 --- /dev/null +++ b/.config/nvim/lua/plug_init/treesitter-context_init.lua @@ -0,0 +1,15 @@ +require('treesitter-context').setup{ + enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) + max_lines = 4, -- How many lines the window should span. Values <= 0 mean no limit. + min_window_height = 35, -- Minimum editor window height to enable context. Values <= 0 mean no limit. + line_numbers = true, + lazy = true, + multiline_threshold = 4, -- Maximum number of lines to show for a single context + trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' + mode = 'topline', -- Line used to calculate context. Choices: 'cursor', 'topline'. + -- Separator between context and content. Should be a single character string, like '-'. + -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. + separator = '—', + zindex = 20, -- The Z-index of the context window + on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching +} diff --git a/.config/nvim/lua/plug_init/treesitter_init.lua b/.config/nvim/lua/plug_init/treesitter_init.lua new file mode 100644 index 0000000..30dc6f9 --- /dev/null +++ b/.config/nvim/lua/plug_init/treesitter_init.lua @@ -0,0 +1,21 @@ +require("nvim-treesitter.configs").setup { + sync_install = false, + auto_install = true, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + indent = { + enable = true, + }, + ensure_installed = { + "html", + "javascript", + "lua", + "php", + "python", + "rust", + "typescript", + "vim", + }, +} diff --git a/.config/nvim/lua/plug_init/vim_init.lua b/.config/nvim/lua/plug_init/vim_init.lua new file mode 100644 index 0000000..93253c8 --- /dev/null +++ b/.config/nvim/lua/plug_init/vim_init.lua @@ -0,0 +1,52 @@ +vim.opt.compatible = false +vim.opt.showmatch = true +vim.opt.hlsearch = true +vim.opt.incsearch = false +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.expandtab = true -- spaces not tabs +vim.opt.shiftwidth = 4 +vim.opt.autoindent = true +vim.opt.relativenumber = true +vim.opt.number = true +vim.opt.wildmode = "longest,list" +vim.opt.cursorline = true +vim.opt.ttyfast = true +vim.opt.scrolloff = 5 +vim.opt.wrap = false +vim.opt.mouse = "" +vim.opt.termguicolors = true -- enable truecolor +vim.opt.undofile = true +vim.opt.undodir = os.getenv("HOME").."/.local/share/nvim/undodir" +vim.opt.updatetime = 50 +vim.opt.colorcolumn = "79" +vim.opt.cmdheight = 0 -- remove the last interface line under statusline +--- +vim.g.netrw_preview = 1 +vim.g.netrw_liststyle = 3 +vim.g.netrw_winsize = 25 +-- +--These will: +-- +-- 1. Make vertical splitting the default for previewing files +-- 2. Make the default listing style "tree" +-- 3. When a vertical preview window is opened, the directory listing +-- will use only 30% of the columns available; the rest of the window +-- is used for the preview window. + +vim.g.mapleader = " " + +-- move highlighted lines up and down, automatic indentation +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +-- replace highlighted area without adding to register +vim.keymap.set("x", "p", "\"_dP") + +-- copy to system clipboard +vim.keymap.set("n", "y", "\"+y") +vim.keymap.set("v", "y", "\"+y") +vim.keymap.set("n", "Y", "\"+Y") + +-- open side panel explorer +vim.keymap.set("n", "e", ":Lexplore") diff --git a/.config/nvim/lua/plug_init/which_key_init.lua b/.config/nvim/lua/plug_init/which_key_init.lua new file mode 100644 index 0000000..33f4549 --- /dev/null +++ b/.config/nvim/lua/plug_init/which_key_init.lua @@ -0,0 +1,95 @@ +local wk = require("which-key") + +wk.add({ + { "c", group = "crates" }, + { "cA", desc = "Upgrade all crates" }, + { "cC", desc = "Open crates.io" }, + { "cD", desc = "Open documentation" }, + { "cH", desc = "Open homepage" }, + { "cR", desc = "Open repository" }, + { "cU", desc = "Upgrade crate" }, + { "cX", desc = "Extract crate into table" }, + { "ca", desc = "Update all crates" }, + { "cd", desc = "Show dependencies popup" }, + { "cf", desc = "Show features popup" }, + { "cr", desc = "Reload" }, + { "ct", desc = "Toggle" }, + { "cu", desc = "Update crate" }, + { "cv", desc = "Show versions popup" }, + { "cx", desc = "Expand plain crate to inline table" }, + + { "f", group = "Telescope" }, + { "fb", "Telescope buffers", desc = "Find Buffer" }, + { "fd", "Telescope lsp_document_symbols", desc = "Find LSP Symbols" }, + { "ff", "Telescope find_files", desc = "Find File" }, + { "fh", "Telescope help_tags", desc = "Find Help" }, + { "fr", "Telescope oldfiles", desc = "Open Recent File", remap = true }, + { "fs", "Telescope live_grep", desc = "Live Grep" }, + { "fw", "Telescope grep_string", desc = "Find string under cursor" }, + + { "g", group = "Gitsigns" }, + { "gB", "Gitsigns blame", desc = "Toggle Blame Sidebar" }, + { "gb", "Gitsigns blameline", desc = "Show Blame Inline" }, + { "gh", group = "hunks" }, + { "ghl", "Gitsigns setloclist", desc = "List file Changes" }, + { "ghn", "Gitsigns nav_hunk", desc = "Nav Hunk" }, + { "gr", group = "reset" }, + { "grb", "Gitsigns reset_buffer", desc = "Reset Buffer" }, + { "grh", "Gitsigns reset_hunk", desc = "Reset Hunk" }, + { "gd", "Gitsigns toggle_deleted", desc = "Toggle deleted lines" }, + { "gs", group = "stage" }, + { "gsb", "Gitsigns stage_buffer", desc = "Stage Buffer" }, + { "gsh", "Gitsigns stage_hunk", desc = "Stage Hunk" }, + { "gu", "Gitsigns undo_stage_hunk", desc = "Undo Stage Hunk" }, + + { "i", desc = "Auto format file with linter(?), also on F3" }, + { "le", desc = "Open diagnostic float" }, + { "K", desc = "Show definition" }, + { "n", "nohl", desc = "Stop highlighting search results" }, + + { "r", group = "Rename" }, + { "rr", desc = "Rename Variable" }, + + { "s", group = "Sessions" }, + { "sd", desc = "Delete Session" }, + { "sl", desc = "Load Session" }, + { "sn", desc = "New Session" }, + { "su", desc = "Update Session" }, + + { "t", group = "tabs" }, + { "ta", "tabnew", desc = "Add new Tab" }, + { "tc", "tabclose", desc = "Close Tab" }, + { "tf", "tabfirst", desc = "First Tab" }, + { "tl", "tablast", desc = "Last Tab" }, + { "tm", group = "Move Tab" }, + { "tmf", "tabmove 0", desc = "Move Tab to First" }, + { "tmi", ":tabmove ", desc = "Input position to move Tab to" }, + { "tml", "tabmove $", desc = "Move Tab to Last" }, + { "tn", "tabnext", desc = "Next Tab" }, + { "tp", "tabprevious", desc = "Previous Tab" }, + + { "u", desc = "Toggle undo-tree" }, + { "w", group = "Workspaces + Whichkey" }, + { "wa", desc = "Add workspace folder" }, + { "wr", desc = "Remove workspace folder" }, + { "ww", "WhichKey", desc = "Show keybindings" }, + { "y", desc = "Copy to system clipboard" }, + { "Y", desc = "Copy line to system clipboard" }, +}) + +wk.add({ + { "K", desc = "Show definition" }, + { "[", group = "jump backward" }, + { "[c", desc = "Previous diff change" }, + { "[d", desc = "Previous Diagnostic" }, + { "[h", "Gitsigns prev_hunk", desc = "Previous changed git block" }, + { "]", group = "jump forward" }, + { "]c", desc = "Next diff change" }, + { "]d", desc = "Next Diagnostic" }, + { "]h", "Gitsigns next_hunk", desc = "Next changed git block" }, + { "g", group = "lsp functions" }, + { "gD", desc = "go to declaration" }, + { "gd", desc = "go to definition" }, + { "gi", desc = "show implementations" }, + { "gr", desc = "list all references to symbol under cursor" }, +}) diff --git a/.config/nvim/lua/plug_init/which_key_init.lua.old b/.config/nvim/lua/plug_init/which_key_init.lua.old new file mode 100644 index 0000000..6a4a655 --- /dev/null +++ b/.config/nvim/lua/plug_init/which_key_init.lua.old @@ -0,0 +1,107 @@ +local wk = require("which-key") + +local mappings = { + f = { + name = "Telescope", --optional group name + b = { "Telescope buffers", "Find Buffer" }, + f = { "Telescope find_files", "Find File" }, + s = { "Telescope live_grep", "Live Grep" }, + h = { "Telescope help_tags", "Find Help" }, + r = { "Telescope oldfiles", "Open Recent File", noremap = false }, + w = { "Telescope grep_string", "Find string under cursor" }, + d = { "Telescope lsp_document_symbols", "Find LSP Symbols" }, + -- does not work as of now: --i = { "AdvancedGitSearch", "Git Search" }, + --n = { "New File" }, --just a label, don't create any mapping + --e = "Edit File", --same as above + }, + t = { + name = "tabs", + n = { "tabnext", "Next Tab" }, + p = { "tabprevious", "Previous Tab" }, + f = { "tabfirst", "First Tab" }, + l = { "tablast", "Last Tab" }, + a = { "tabnew", "Add new Tab" }, + c = { "tabclose", "Close Tab" }, + m = { + name = "Move Tab", + f = { "tabmove 0", "Move Tab to First" }, + l = { "tabmove $", "Move Tab to Last" }, + i = { ":tabmove ", "Input position to move Tab to" }, + } + }, + K = { "Show definition" }, + u = { "Toggle undo-tree" }, + i = { "Auto format file with linter(?), also on F3" }, + r = { + name = "Rename", + r = { "Rename Variable" } + }, + l = { + e = { "Open diagnostic float" } + }, + w = { + name = "Workspaces + Whichkey", + a = { "Add workspace folder" }, + r = { "Remove workspace folder" }, + w = { "WhichKey", "Show keybindings" }, + }, + s = { + name = "Sessions", + n = { "New Session" }, + u = { "Update Session" }, + d = { "Delete Session" }, + l = { "Load Session" }, + }, + g = { + name = "Gitsigns", + b = { "Gitsigns blameline", "Show Blame Inline" }, + B = { "Gitsigns blame", "Toggle Blame Sidebar" }, + s = { + name = "stage", + h = { "Gitsigns stage_hunk", "Stage Hunk"}, + b = { "Gitsigns stage_buffer", "Stage Buffer"}, + }, + h = { + name = "hunks", + l = { "Gitsigns setloclist", "List file Changes" }, + n = { "Gitsigns nav_hunk", "Nav Hunk"}, + }, + r = { + name = "reset", + h = { "Gitsigns reset_hunk", "Reset Hunk"}, + b = { "Gitsigns reset_buffer", "Reset Buffer"}, + }, + u = { "Gitsigns undo_stage_hunk", "Undo Stage Hunk"}, + }, + n = { "nohl", "Stop highlighting search results" }, +} + +local opts = { + mode = "n", + prefix = '' +} + +wk.register({ mappings, opts, prefix = "" }) +local mappings_leaderless = { + K = { "Show definition" }, + g = { + name = "lsp functions", + d = { "go to definition" }, + D = { "go to declaration" }, + i = { "show implementations" }, + r = { "list all references to symbol under cursor" }, + }, + ["["] = { + name = "jump backward", + d = "Previous Diagnostic", + c = "Previous diff change", + h = { "Gitsigns prev_hunk", "Previous changed git block" }, + }, + ["]"] = { + name = "jump forward", + d = "Next Diagnostic", + c = "Next diff change", + h = { "Gitsigns next_hunk", "Next changed git block" }, + }, +} +wk.register({ mappings_leaderless, opts }) diff --git a/.config/nvim/lua/plug_init/wilder_init.lua b/.config/nvim/lua/plug_init/wilder_init.lua new file mode 100644 index 0000000..7fb1104 --- /dev/null +++ b/.config/nvim/lua/plug_init/wilder_init.lua @@ -0,0 +1,30 @@ +--- +local wilder = require('wilder') +local gradient = { + '#f4468f', '#fd4a85', '#ff507a', '#ff566f', '#ff5e63', + '#ff6658', '#ff704e', '#ff7a45', '#ff843d', '#ff9036', + '#f89b31', '#efa72f', '#e6b32e', '#dcbe30', '#d2c934', + '#c8d43a', '#bfde43', '#b6e84e', '#aff05b' +} +wilder.setup({modes = {':', '/', '?'} }) +wilder.set_option('pipeline', { + wilder.branch( + wilder.cmdline_pipeline({ + fuzzy = 1, + }), + wilder.search_pipeline() + ), +}) +for i, fg in ipairs(gradient) do +gradient[i] = wilder.make_hl('WilderGradient' .. i, 'Pmenu', {{a = 1}, {a = 1}, {foreground = fg}}) +end + +wilder.set_option('renderer', wilder.wildmenu_renderer({ + highlights = { + gradient = gradient, -- must be set + -- selected_gradient key can be set to apply gradient highlighting for the selected candidate. + }, + highlighter = wilder.highlighter_with_gradient({ + wilder.basic_highlighter(), -- or wilder.lua_fzy_highlighter(), + }), +})) diff --git a/.config/nvim/lua/plugins/coq_nvim.lua b/.config/nvim/lua/plugins/coq_nvim.lua new file mode 100644 index 0000000..c804a9e --- /dev/null +++ b/.config/nvim/lua/plugins/coq_nvim.lua @@ -0,0 +1,29 @@ +return { + "neovim/nvim-lspconfig", -- REQUIRED: for native Neovim LSP integration + lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup + dependencies = { + -- main one + { "ms-jpq/coq_nvim", branch = "coq" }, + + -- 9000+ Snippets + { "ms-jpq/coq.artifacts", branch = "artifacts" }, + + -- lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty + -- Need to **configure separately** + { 'ms-jpq/coq.thirdparty', branch = "3p" } + -- - shell repl + -- - nvim lua api + -- - scientific calculator + -- - comment banner + -- - etc + }, + init = function() + vim.g.coq_settings = { + auto_start = true, -- if you want to start COQ at startup + -- Your COQ settings here + } + end, + config = function() + -- Your LSP settings here + end, +} diff --git a/.config/nvim/lua/plugins/crates.lua b/.config/nvim/lua/plugins/crates.lua new file mode 100644 index 0000000..72295e4 --- /dev/null +++ b/.config/nvim/lua/plugins/crates.lua @@ -0,0 +1,8 @@ +return { + 'saecki/crates.nvim', + event = { "BufRead Cargo.toml" }, + lazy = true, + config = function() + require('crates').setup() + end, +} diff --git a/.config/nvim/lua/plugins/lsp_config.lua b/.config/nvim/lua/plugins/lsp_config.lua new file mode 100644 index 0000000..fbb1401 --- /dev/null +++ b/.config/nvim/lua/plugins/lsp_config.lua @@ -0,0 +1,32 @@ +return { + -- LSP Support + { + 'VonHeikemen/lsp-zero.nvim', + branch = "v3.x", + lazy = true, + config = false, + }, + { + "neovim/nvim-lspconfig", + dependencies = { + {"hrsh7th/cmp-nvim-lsp"}, + }, + lazy = true, + }, + { + "williamboman/mason.nvim", + lazy = true, + }, + { + "williamboman/mason-lspconfig.nvim", + lazy = true, + }, + -- Autocompletion + { + "hrsh7th/nvim-cmp", + dependencies = { + {"L3MON4D3/LuaSnip"} + }, + lazy = true, + }, +} diff --git a/.config/nvim/lua/plugins/nvim-possession.lua b/.config/nvim/lua/plugins/nvim-possession.lua new file mode 100644 index 0000000..15f6bdc --- /dev/null +++ b/.config/nvim/lua/plugins/nvim-possession.lua @@ -0,0 +1,9 @@ +return { + { "gennaro-tedesco/nvim-possession", + dependencies = { + "ibhagwan/fzf-lua", + }, + lazy = true, + config = true, + }, +} diff --git a/.config/nvim/lua/plugins/peanuts.lua b/.config/nvim/lua/plugins/peanuts.lua new file mode 100644 index 0000000..70e211e --- /dev/null +++ b/.config/nvim/lua/plugins/peanuts.lua @@ -0,0 +1,53 @@ +return { + -- not deps + --{ "xiyaowong/transparent.nvim" }, + -- { "olimorris/onedarkpro.nvim" }, + { "neanias/everforest-nvim" }, + { "ibhagwan/fzf-lua", lazy = true }, + { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", lazy=true}, + { "nvim-treesitter/nvim-treesitter-context", lazy=true }, + { "nvim-telescope/telescope.nvim", tag = "0.1.2", + dependencies = { + "nvim-lua/plenary.nvim" + }, + lazy = true, + }, + { "nvim-lualine/lualine.nvim", + dependencies = { 'nvim-tree/nvim-web-devicons' }, + lazy = false + }, + { "stevearc/aerial.nvim" }, + -- { + -- "folke/noice.nvim", + -- event = "VeryLazy", + -- opts = {}, + -- dependencies = { + -- "MunifTanjim/nui.nvim", + -- --OPTIONAL: + -- -- `nvim-notify` is only needed, if you want to use the notification view. + -- -- If not available, we use `mini` as the fallback + -- --"rcarriga/nvim-notify", + -- } + -- }, + { + "danielfalk/smart-open.nvim", + branch = "0.2.x", + lazy = true, + dependencies = { + "kkharji/sqlite.lua", + -- Only required if using match_algorithm fzf + { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, + -- Optional. If installed, native fzy will be used when match_algorithm is fzy + { "nvim-telescope/telescope-fzy-native.nvim" }, + }, + }, + { "gelguy/wilder.nvim", lazy = true }, + { "tpope/vim-fugitive", lazy = true }, + { "norcalli/nvim-colorizer.lua", verylazy = true }, + { "ziontee113/color-picker.nvim", verylazy = true }, + { "lewis6991/gitsigns.nvim", verylazy = true }, + { "MunifTanjim/nui.nvim", verylazy = true }, --dependency for telescope + --{ "elkowar/yuck.vim", verylazy = true },--helper for eww widget configuration + -- optional + { "nvim-treesitter/nvim-treesitter-textobjects", lazy = true }, +} diff --git a/.config/nvim/lua/plugins/undotree.lua b/.config/nvim/lua/plugins/undotree.lua new file mode 100755 index 0000000..6454306 --- /dev/null +++ b/.config/nvim/lua/plugins/undotree.lua @@ -0,0 +1,8 @@ +return { + "jiaoshijie/undotree", + dependencies = "nvim-lua/plenary.nvim", + config = true, + keys = { -- load the plugin only when using it's keybinding: + { "u", "lua require('undotree').toggle()" }, + }, +} diff --git a/.config/nvim/lua/plugins/which-key.lua b/.config/nvim/lua/plugins/which-key.lua new file mode 100644 index 0000000..39db282 --- /dev/null +++ b/.config/nvim/lua/plugins/which-key.lua @@ -0,0 +1,9 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 100 + end, + opts = {} +}