From f6a92831f484ec31fdded93f3a136ca307333ee0 Mon Sep 17 00:00:00 2001 From: iofq Date: Fri, 12 May 2023 04:34:16 -0500 Subject: [PATCH] reorg --- config/init.lua | 7 ++ config/lua/blankline-conf.lua | 6 ++ config/lua/leap-conf.lua | 5 ++ config/lua/nvim-conf.lua | 90 ++++++++++++++++++++ config/lua/nvim-treesitter-conf.lua | 51 ++++++++++++ config/lua/plugins-conf.lua | 2 + config/lua/telescope-conf.lua | 44 ++++++++++ config/lua/toggleterm-conf.lua | 5 ++ flake.nix | 122 ++++++++++++++++++---------- result | 1 - 10 files changed, 290 insertions(+), 43 deletions(-) create mode 100755 config/init.lua create mode 100755 config/lua/blankline-conf.lua create mode 100755 config/lua/leap-conf.lua create mode 100755 config/lua/nvim-conf.lua create mode 100755 config/lua/nvim-treesitter-conf.lua create mode 100755 config/lua/plugins-conf.lua create mode 100755 config/lua/telescope-conf.lua create mode 100755 config/lua/toggleterm-conf.lua delete mode 120000 result diff --git a/config/init.lua b/config/init.lua new file mode 100755 index 0000000..1d016e3 --- /dev/null +++ b/config/init.lua @@ -0,0 +1,7 @@ +require("blankline-conf") +require("leap-conf") +require("nvim-conf") +require("nvim-treesitter-conf") +require("plugins-conf") +require("telescope-conf") +require("toggleterm-conf") diff --git a/config/lua/blankline-conf.lua b/config/lua/blankline-conf.lua new file mode 100755 index 0000000..17104f8 --- /dev/null +++ b/config/lua/blankline-conf.lua @@ -0,0 +1,6 @@ +vim.cmd([[ hi IndentBlanklineChar ctermfg=240 ]]) +vim.cmd([[ hi IndentBlanklineContextChar ctermfg=7 ]]) +require("indent_blankline").setup { + show_current_context = true, + show_current_context_start = true, +} diff --git a/config/lua/leap-conf.lua b/config/lua/leap-conf.lua new file mode 100755 index 0000000..ea1ec81 --- /dev/null +++ b/config/lua/leap-conf.lua @@ -0,0 +1,5 @@ +local leap = require('leap') +leap.set_default_keymaps() +leap.init_highlight(true) +vim.cmd([[ hi LeapLabelPrimary ctermbg=251 ctermfg=0 ]]) + diff --git a/config/lua/nvim-conf.lua b/config/lua/nvim-conf.lua new file mode 100755 index 0000000..684755a --- /dev/null +++ b/config/lua/nvim-conf.lua @@ -0,0 +1,90 @@ +-- vim settings +---------------------------------------- +vim.opt.autoindent = true +vim.opt.background = "light" +vim.opt.backspace = "indent,eol,start" +vim.opt.backup = false -- and auto backps, to instead use +vim.opt.breakindent = true +vim.opt.clipboard = "unnamedplus" -- use system clipboard +vim.opt.completeopt = "menuone" +vim.opt.cursorline = true +vim.opt.expandtab = true -- insert tabs as spaces +vim.opt.guicursor = "" -- fixes alacritty changing cursor +vim.opt.hidden = true -- dont save when switching buffers +vim.opt.hlsearch = true +vim.opt.ignorecase = true -- ignore case in searches +vim.opt.inccommand = "split" -- incremental live completion +vim.opt.incsearch = true +vim.opt.laststatus = 1 +vim.opt.list = true +vim.opt.listchars:append("trail:ยท") +vim.opt.mouse = "a" +vim.opt.nrformats:append("alpha") -- let Ctrl-a do letters as well +vim.opt.number = true +vim.opt.pastetoggle = "" +vim.opt.path:append("**") -- enable fuzzy :find ing +vim.opt.relativenumber = true +vim.opt.shadafile = "NONE" -- disable shada +vim.opt.shiftwidth = 0 -- >> shifts by tabstop +vim.opt.showmatch = true -- highlight matching brackets +vim.opt.signcolumn= "number" +vim.opt.smartcase = true -- unless capital query +vim.opt.smartindent = true -- indent according to lang +vim.opt.softtabstop = -1 -- backspace removes tabstop +vim.opt.splitbelow = true +vim.opt.splitright = true +vim.opt.swapfile = false -- disable swapfiles +vim.opt.tabstop = 4 -- 4 space tabs +vim.opt.undofile = true -- enable auto save of undos +vim.opt.updatetime = 250 -- decrease update time +vim.opt.virtualedit = "onemore" +vim.opt.wildmenu = true + +vim.g.netrw_banner = 0 -- disable annoying banner +vim.g.netrw_altv = 1 -- open splits to the right +vim.g.netrw_liststyle = 3 -- tree view +vim.g.fzf_layout = { window = { width = 0.9, height = 0.6 } } +vim.g.indent_blankline_use_treesitter = true + +-- mappings +---------------------------------------- +-- local func to set keybinds +local remap = function(type, key, value) + vim.api.nvim_set_keymap(type,key,value,{noremap = true, silent = true}); +end +remap("i", "wq", "l") +remap("v", "wq", "l") +remap("n","gr", "gT") +remap("i", "{", "{}O") +remap("i", "(", "()O") +remap("n", "", "nohlsearchdiffupdate") +remap("n","n", "nzz") +remap("n", "N", "Nzz") +remap("n", "Y", "y$") +remap("n","[", ":put!=repeat([''],v:count)']+1") +remap("n","]", ":put =repeat([''],v:count)'[-1") + +-- autocmd +---------------------------------------- +local undopath = "~/.local/share/nvim/undo" +vim.api.nvim_create_autocmd("VimEnter", { + command = "silent !mkdir -p " .. undopath, + group = vim.api.nvim_create_augroup("Init", {}), +}) + +local toggle_rel_num = vim.api.nvim_create_augroup("ToggleRelNum", {}) +vim.api.nvim_create_autocmd("InsertEnter", { + command = "set norelativenumber", + group = toggle_rel_num, +}) +vim.api.nvim_create_autocmd("InsertLeave", { + command = "set relativenumber", + group = toggle_rel_num, +}) +vim.api.nvim_create_autocmd("TextYankPost", { + callback = function() + vim.highlight.on_yank({ higroup = "Visual" }) + end, + group = vim.api.nvim_create_augroup("YankHighlight", {}), +}) + diff --git a/config/lua/nvim-treesitter-conf.lua b/config/lua/nvim-treesitter-conf.lua new file mode 100755 index 0000000..1cd779a --- /dev/null +++ b/config/lua/nvim-treesitter-conf.lua @@ -0,0 +1,51 @@ +require("nvim-treesitter.configs").setup { + ensure_installed = {}, + highlight = { + enable = true, + }, + indent = { + enable = true, + }, + textobjects = { + select = { + enable = true, + lookahead = true, + keymaps = { + ['ac'] = '@comment.outer', + ['ic'] = '@comment.inner', + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["aa"] = "@call.inner", + }, + }, + move = { + enable = true, + set_jumps = true, -- whether to set jumps in the jumplist + goto_next_start = { + [']]'] = '@function.outer', + [']m'] = '@class.outer', + }, + goto_next_end = { + [']['] = '@function.outer', + [']M'] = '@class.outer', + }, + goto_previous_start = { + ['[['] = '@function.outer', + ['[m'] = '@class.outer', + }, + goto_previous_end = { + ['[]'] = '@function.outer', + ['[M'] = '@class.outer', + }, + }, + }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = '', + scope_incremental = '', + node_incremental = '', + node_decremental = '', + }, + }, +} diff --git a/config/lua/plugins-conf.lua b/config/lua/plugins-conf.lua new file mode 100755 index 0000000..1d32eab --- /dev/null +++ b/config/lua/plugins-conf.lua @@ -0,0 +1,2 @@ +-- telescope +---------------------------------------- diff --git a/config/lua/telescope-conf.lua b/config/lua/telescope-conf.lua new file mode 100755 index 0000000..4fb06b5 --- /dev/null +++ b/config/lua/telescope-conf.lua @@ -0,0 +1,44 @@ +local telescope = require("telescope.builtin") +vim.keymap.set("n", "fb", telescope.buffers, {noremap = true, silent = true}) +vim.keymap.set("n", "ff", telescope.find_files, {noremap = true, silent = true}) +vim.keymap.set("n", "fg", telescope.git_files, {noremap = true, silent = true}) +vim.keymap.set("n", "fv", telescope.command_history, {noremap = true, silent = true}) +vim.keymap.set("n", "", telescope.live_grep, {noremap = true, silent = true}) +vim.keymap.set("n", "8", telescope.grep_string, {noremap = true, silent = true}) +vim.keymap.set("n", "fd", telescope.lsp_definitions, {noremap = true, silent = true}) +-- fix highlighting +vim.cmd([[ hi telescopeselection ctermfg=242 ctermbg=252 ]]) + +require("telescope").setup({ + defaults = { + layout_strategy = "vertical", + layout_config = { width = .90, }, + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--hidden", + "--with-filename", + "--line-number", + "--column", + "--smart-case" + }, + mappings = { + i = { + [""] = require("telescope.actions").close, + [""] = require("telescope.actions").move_selection_previous, + [""] = require("telescope.actions").move_selection_next, + }, + }, + }, + pickers = { + find_files = { + hidden = true, + find_command = { 'rg', '--files', '--iglob', '!.git', '--hidden' } + }, + git_files = { + hidden = true, + find_command = { 'rg', '--files', '--iglob', '!.git', '--hidden' } + }, + } +}) diff --git a/config/lua/toggleterm-conf.lua b/config/lua/toggleterm-conf.lua new file mode 100755 index 0000000..0b066f9 --- /dev/null +++ b/config/lua/toggleterm-conf.lua @@ -0,0 +1,5 @@ +require("toggleterm").setup{ + open_mapping = [[t]], + shade_terminals = true, + size = vim.o.lines * 0.4 +} diff --git a/flake.nix b/flake.nix index 32f3405..72fe7e2 100644 --- a/flake.nix +++ b/flake.nix @@ -10,49 +10,87 @@ flake-utils, ... }: - flake-utils.lib.eachDefaultSystem (system: let - pkgs = import nixpkgs { - inherit system; - }; + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs { + inherit system; + }; - recursiveMerge = attrList: let - f = attrPath: - builtins.zipAttrsWith (n: values: - if pkgs.lib.tail values == [] - then pkgs.lib.head values - else if pkgs.lib.all pkgs.lib.isList values - then pkgs.lib.unique (pkgs.lib.concatLists values) - else if pkgs.lib.all pkgs.lib.isAttrs values - then f (attrPath ++ [n]) values - else pkgs.lib.last values); - in - f [] attrList; - in rec { - deps = with pkgs; [ - fzf - ]; - neovim-with-deps = recursiveMerge [ - pkgs.neovim-unwrapped - {buildInputs = deps;} - ]; - packages.iofqvim = pkgs.wrapNeovim neovim-with-deps { - viAlias = true; - vimAlias = true; - extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath deps}"''; - configure = { - plugins = with pkgs.vimPlugins; { - plugs = with pkgs.vimPlugins; [ + recursiveMerge = attrList: let + f = attrPath: + builtins.zipAttrsWith (n: values: + if pkgs.lib.tail values == [] + then pkgs.lib.head values + else if pkgs.lib.all pkgs.lib.isList values + then pkgs.lib.unique (pkgs.lib.concatLists values) + else if pkgs.lib.all pkgs.lib.isAttrs values + then f (attrPath ++ [n]) values + else pkgs.lib.last values); + in + f [] attrList; + in rec { + deps = with pkgs; [ + bash + fzf + ripgrep + gopls + ]; + neovim-with-deps = recursiveMerge [ + pkgs.neovim-unwrapped + {buildInputs = deps;} + ]; + packages.iofqvim = pkgs.wrapNeovim neovim-with-deps { + viAlias = true; + vimAlias = true; + extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath deps}"''; + configure = { + customRC = + '' + lua << EOF + package.path = "${self}/config/lua/?.lua;" .. package.path + '' + + pkgs.lib.readFile ./config/init.lua + + '' + EOF + ''; + packages.plugins = with pkgs.vimPlugins; { + start = with pkgs.vimPlugins; [ telescope-nvim - ]; + vim-commentary + vim-surround + toggleterm-nvim + targets-vim + indent-blankline-nvim + vim-go + vim-nix + nvim-treesitter-textobjects + leap-nvim + (nvim-treesitter.withPlugins + ( + plugins: with plugins; [ + tree-sitter-bash + tree-sitter-c + tree-sitter-dockerfile + tree-sitter-go + tree-sitter-javascript + tree-sitter-json + tree-sitter-lua + tree-sitter-nix + tree-sitter-php + tree-sitter-python + tree-sitter-yaml + ] + ) + ) + ]; + }; }; }; - }; - apps.iofqvim = flake-utils.lib.mkApp { - drv = packages.iofqvim; - name = "iofqvim"; - exePath = "/bin/nvim"; - }; - apps.default = apps.iofqvim; - packages.default = packages.iofqvim; - }); -} + apps.iofqvim = flake-utils.lib.mkApp { + drv = packages.iofqvim; + name = "iofqvim"; + exePath = "/bin/nvim"; + }; + apps.default = apps.iofqvim; + packages.default = packages.iofqvim; + }); + } diff --git a/result b/result deleted file mode 120000 index 98d1d0d..0000000 --- a/result +++ /dev/null @@ -1 +0,0 @@ -/nix/store/vwg8csg6j9swzam3pwa6r391dpzqmmcd-neovim-0.9.0 \ No newline at end of file