From 82092fe19a0ff0d0e4bed2ccfd4351cbb2d10d9e Mon Sep 17 00:00:00 2001 From: Alec Goncharow Date: Thu, 29 Feb 2024 22:57:46 -0500 Subject: embrace autocomplete defaults, add nocheckin pre-commit hook --- .config/nvim/init.lua | 2 +- .config/nvim/lua/autocomplete.lua | 23 ----------------------- .config/nvim/lua/buffers.lua | 36 ++++++++++++++++++++++++++++++++++++ .config/nvim/lua/fzf.lua | 2 ++ .config/nvim/lua/jabs_conf.lua | 2 +- .config/nvim/lua/mappings.lua | 1 + .git_template/hooks/pre-commit | 6 ++++++ .gitconfig | 1 + bin/nocheckin | 37 +++++++++++++++++++++++++++++++++++++ bin/runelite | 3 +++ 10 files changed, 88 insertions(+), 25 deletions(-) create mode 100644 .config/nvim/lua/buffers.lua create mode 100755 .git_template/hooks/pre-commit create mode 100755 bin/nocheckin create mode 100755 bin/runelite diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index d77bcd5..d9b5cc6 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,4 +1,3 @@ --- TODO SPEED require('plugins') require('settings') require('mappings') @@ -15,6 +14,7 @@ require('nerdcommenter_conf') require('bqf_conf') require('autosession_conf') require('autoclose_conf') +require('buffers') if vim.g.neovide then require('neovide_conf') diff --git a/.config/nvim/lua/autocomplete.lua b/.config/nvim/lua/autocomplete.lua index 8531258..8d624fa 100644 --- a/.config/nvim/lua/autocomplete.lua +++ b/.config/nvim/lua/autocomplete.lua @@ -28,29 +28,6 @@ cmp.setup({ [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - [""] = cmp.mapping(function(fallback) - if vim.fn.pumvisible() == 1 then - feedkey("", "n") - elseif cmp.visible() then - cmp.select_next_item() - else - fallback() - end - end, { - "i", - }), - [""] = cmp.mapping(function(fallback) - if vim.fn.pumvisible() == 1 then - feedkey("", "n") - elseif cmp.visible() then - cmp.select_prev_item() - else - fallback() - end - end, { - "i", - }), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, diff --git a/.config/nvim/lua/buffers.lua b/.config/nvim/lua/buffers.lua new file mode 100644 index 0000000..ca593a7 --- /dev/null +++ b/.config/nvim/lua/buffers.lua @@ -0,0 +1,36 @@ +--Nmap("b", ':buffer ') + +-- stolen from https://www.reddit.com/r/neovim/comments/12c4ad8/closing_unused_buffers/ +local id = vim.api.nvim_create_augroup("startup", { + clear = false +}) + +local persistbuffer = function(bufnr) + bufnr = bufnr or vim.api.nvim_get_current_buf() + vim.fn.setbufvar(bufnr, 'bufpersist', 1) +end + +vim.api.nvim_create_autocmd({ "BufRead" }, { + group = id, + pattern = { "*" }, + callback = function() + vim.api.nvim_create_autocmd({ "InsertEnter", "BufModifiedSet" }, { + buffer = 0, + once = true, + callback = function() + persistbuffer() + end + }) + end +}) + +vim.keymap.set('n', 'o', + function() + local curbufnr = vim.api.nvim_get_current_buf() + local buflist = vim.api.nvim_list_bufs() + for _, bufnr in ipairs(buflist) do + if vim.bo[bufnr].buflisted and bufnr ~= curbufnr and (vim.fn.getbufvar(bufnr, 'bufpersist') ~= 1) then + vim.cmd('bd ' .. tostring(bufnr)) + end + end + end, { silent = true, desc = 'Close unused buffers' }) diff --git a/.config/nvim/lua/fzf.lua b/.config/nvim/lua/fzf.lua index 7d2c50c..170158a 100644 --- a/.config/nvim/lua/fzf.lua +++ b/.config/nvim/lua/fzf.lua @@ -1,4 +1,6 @@ local fzf = require('fzf-lua') +vim.keymap.set('n', '', fzf.buffers, {}) +vim.keymap.set('n', 'fb', fzf.lines, {}) vim.keymap.set('n', 'ff', fzf.files, {}) vim.keymap.set('n', 'fg', fzf.live_grep, {}) vim.keymap.set('n', 'fw', fzf.grep_cword, {}) diff --git a/.config/nvim/lua/jabs_conf.lua b/.config/nvim/lua/jabs_conf.lua index 2b2ffff..4962b2a 100644 --- a/.config/nvim/lua/jabs_conf.lua +++ b/.config/nvim/lua/jabs_conf.lua @@ -66,4 +66,4 @@ require 'jabs'.setup { } -Nmap('', ':JABSOpen') +Nmap('b', ':JABSOpen') diff --git a/.config/nvim/lua/mappings.lua b/.config/nvim/lua/mappings.lua index a5f50b2..a031328 100644 --- a/.config/nvim/lua/mappings.lua +++ b/.config/nvim/lua/mappings.lua @@ -40,6 +40,7 @@ Nmap(">", ":vertical:resize +1") -- pane spawn Nmap("t", ':split:wincmd j:term') Nmap("s", ':vs:wincmd l') +Nmap("", ':only') -- escape terminal mode easier Tmap('', '') diff --git a/.git_template/hooks/pre-commit b/.git_template/hooks/pre-commit new file mode 100755 index 0000000..7535f76 --- /dev/null +++ b/.git_template/hooks/pre-commit @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# If any command fails, exit immediately with that command's exit status +set -eo pipefail + +nocheckin diff --git a/.gitconfig b/.gitconfig index 96d1b6c..a3e0091 100644 --- a/.gitconfig +++ b/.gitconfig @@ -8,6 +8,7 @@ rebase = true [init] defaultBranch = main + templatedir = ~/.git_template [diff] tool = difftastic [difftool] diff --git a/bin/nocheckin b/bin/nocheckin new file mode 100755 index 0000000..8f3779b --- /dev/null +++ b/bin/nocheckin @@ -0,0 +1,37 @@ +#!/bin/bash +# Author: xezrunner (github.com/xezrunner) +# Credit: DustinGadal on r/Jai +# https://www.reddit.com/r/Jai/comments/jp0vjy/nocheckin_behavior_in_gitsourcetree/gbfhzd1/ + +# Required programs/utilities for default behavior (as-is): +# git, grep, xargs + +# This pre-commit hook/script checks for the existence of the word "$SEARCH_TARGET" +# in your *staged* source files, then aborts the commit if any matches were found. +# It also shows where you have them inside the file. + +SEARCH_TARGET="nocheckin" + +CL_BRED='\e[1;31m' +CL_NONE='\e[0m' + +MESSAGE_0="${CL_BRED}Error:${CL_NONE} $SEARCH_TARGET(s) were found in " +MESSAGE_1="file(s) - ${CL_BRED}ignoring commit:${CL_NONE}" + +_=$(git status) +if [ $? -ne 0 ]; then + exit 1; +fi + +SEARCH_CMD="git diff --staged -i --diff-filter=d --name-only -G $SEARCH_TARGET --relative $PWD" +GREP_CMD="grep -H $SEARCH_TARGET -n --color=always" # :line****** + +# Get the amount of files that we found the search target in. +# I use 'wc -l' (line count of command output) for this: +STATUS=$($SEARCH_CMD | wc -l) + +if ((STATUS > 0)); then + echo -e $MESSAGE_0 $STATUS $MESSAGE_1; + ($SEARCH_CMD | xargs $GREP_CMD); + exit 1; +fi diff --git a/bin/runelite b/bin/runelite new file mode 100755 index 0000000..54cbb6f --- /dev/null +++ b/bin/runelite @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +_JAVA_AWT_WM_NONREPARENTING=1 ~/runelite/runelite & disown -- cgit v1.2.3-70-g09d2