kitchen sink cause I'm too lazy to sort through this junk
This commit is contained in:
@ -7,6 +7,7 @@ a.nvim_create_augroup('bufcheck', {clear = true})
|
||||
auto('TextYankPost', { -- highlight yanks
|
||||
group = 'bufcheck',
|
||||
pattern = '*',
|
||||
desc = 'Highlight on yank.',
|
||||
callback = function()
|
||||
vim.highlight.on_yank{ timeout = 250 }
|
||||
end
|
||||
@ -15,68 +16,20 @@ auto('TextYankPost', { -- highlight yanks
|
||||
auto('FileType', { -- start git messages in insert mode
|
||||
group = 'bufcheck',
|
||||
pattern = { 'gitcommit', 'gitrebase', },
|
||||
desc = 'Start git messages in insert mode.',
|
||||
command = 'startinsert | 1'
|
||||
})
|
||||
|
||||
auto('FileType', { -- show git cached diff
|
||||
group = 'bufcheck',
|
||||
pattern = { 'gitcommit', 'gitrebase', },
|
||||
callback = function()
|
||||
local function lower(a, b)
|
||||
if a > b then
|
||||
return b
|
||||
else
|
||||
return a
|
||||
end
|
||||
end
|
||||
|
||||
local function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
local diff = io.popen('git diff --cached', "r")
|
||||
local diffl = {}
|
||||
for i in diff:lines() do
|
||||
table.insert(diffl, i)
|
||||
end
|
||||
diff:close()
|
||||
|
||||
if next(diffl) == nil then
|
||||
vim.notify('No diff to show :(', vim.log.levels.INFO, {
|
||||
title = 'Neovim Config' })
|
||||
return
|
||||
end
|
||||
|
||||
local buf = a.nvim_create_buf(true, false)
|
||||
a.nvim_buf_set_lines(buf, 0, -1, false, diffl)
|
||||
a.nvim_buf_set_name(buf, 'Git Commit Diff')
|
||||
a.nvim_buf_set_option(buf, 'ft', 'diff')
|
||||
a.nvim_buf_set_option(buf, 'readonly', true)
|
||||
a.nvim_buf_set_option(buf, 'modifiable', false)
|
||||
a.nvim_buf_set_option(buf, 'modified', false)
|
||||
local win = a.nvim_open_win(buf, false, {
|
||||
row = 1,
|
||||
col = 80,
|
||||
relative = 'win',
|
||||
width = 80,
|
||||
height = lower(vim.o.lines - vim.o.cmdheight - 4, tablelength(diffl)),
|
||||
border = 'shadow',
|
||||
style = 'minimal',
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
auto('BufRead', { -- return to last place
|
||||
pattern = '*',
|
||||
command = [[call setpos(".", getpos("'\""))]]
|
||||
command = [[call setpos(".", getpos("'\""))]],
|
||||
desc = 'Return to the last place the buffer was closed in.',
|
||||
})
|
||||
|
||||
auto('TermOpen', { -- start terminal in insert mode
|
||||
group = 'bufcheck',
|
||||
pattern = '*',
|
||||
desc = 'Start terminal in insert mode.',
|
||||
callback = function()
|
||||
vim.cmd('startinsert | set winfixheight')
|
||||
o.winfixheight = true
|
||||
@ -87,6 +40,7 @@ auto('TermOpen', { -- start terminal in insert mode
|
||||
auto('TermClose', { -- close terminal buffers after shell dies
|
||||
group = 'bufcheck',
|
||||
pattern = 'term://*',
|
||||
desc = 'Close terminal after shell dies.',
|
||||
callback = function()
|
||||
vim.cmd('call nvim_input("<CR>")')
|
||||
o.cmdheight = 1
|
||||
@ -95,6 +49,7 @@ auto('TermClose', { -- close terminal buffers after shell dies
|
||||
|
||||
auto('InsertEnter', { -- toggle things when entering insert mode
|
||||
group = 'bufcheck',
|
||||
desc = 'Turn things on insert mode.',
|
||||
callback = function()
|
||||
o.colorcolumn = { 80 }
|
||||
end
|
||||
@ -102,6 +57,7 @@ auto('InsertEnter', { -- toggle things when entering insert mode
|
||||
|
||||
auto('InsertLeave', { -- toggle things when exiting insert mode
|
||||
group = 'bufcheck',
|
||||
desc = 'Turn things off insert mode.',
|
||||
callback = function()
|
||||
o.colorcolumn = { 0 }
|
||||
end
|
||||
@ -110,6 +66,7 @@ auto('InsertLeave', { -- toggle things when exiting insert mode
|
||||
auto('BufWritePre', { -- make dirs when they don't exist
|
||||
pattern = '*',
|
||||
group = vim.api.nvim_create_augroup('auto_create_dir', { clear = true }),
|
||||
desc = 'Basically mkdir -p.',
|
||||
callback = function(ctx)
|
||||
local dir = vim.fn.fnamemodify(ctx.file, ':p:h')
|
||||
vim.fn.mkdir(dir, 'p')
|
||||
|
@ -1,5 +1,8 @@
|
||||
local function map(mode, bind, cmd, opts)
|
||||
opts = opts or {noremap = true, silent = true}
|
||||
opts = opts or {}
|
||||
opts['noremap'] = true
|
||||
opts['silent'] = true
|
||||
|
||||
if type(bind) == 'table' then
|
||||
for i in pairs(bind) do
|
||||
vim.keymap.set(mode, bind[i], cmd, opts)
|
||||
@ -23,12 +26,12 @@ end
|
||||
-- vim binds ------------------------------------------------------------------
|
||||
g.mapleader = ' ' -- set leader key
|
||||
|
||||
map('x', '<leader>p', [["_dP]]) -- greatest remap ever
|
||||
map('n', '<ESC>', ':nohlsearch<Bar>:echo<CR>') -- clear search
|
||||
map('t', '<ESC>', '<C-\\><C-n>') -- make <ESC> work in terminals
|
||||
map('x', '<leader>p', [["_dP]], { desc = 'Greatest remap of all time.' })
|
||||
map('n', '<esc>', ':nohlsearch<Bar>:echo<CR>', { desc = 'Clear search.' })
|
||||
map('t', '<esc>', '<C-\\><C-n>', { desc = 'make <esc> work in terminals.' })
|
||||
-- move selected text up/down
|
||||
map('v', '<S-k>', ":m '<-2<CR>gv=gv")
|
||||
map('v', '<S-j>', ":m '>+1<CR>gv=gv")
|
||||
map('v', '<S-k>', ":m '<-2<CR>gv=gv", { desc = 'Move selected text up.' })
|
||||
map('v', '<S-j>', ":m '>+1<CR>gv=gv", { desc = 'Move selected text down.' })
|
||||
|
||||
-- the cursor STAYS IN THE MIDDLE
|
||||
map('n', '<S-j>', 'mzJ`z<cmd>delm z<CR>') -- when combining lines
|
||||
@ -50,10 +53,16 @@ a.nvim_create_autocmd('FileType', {
|
||||
bind('l', '<CR>') -- Go down a directory / open a file
|
||||
bind('.', 'gh') -- Toggle dotfiles
|
||||
bind('P', '<C-w>z') -- Close preview window
|
||||
bind('<ESC>', '<cmd>q<CR>') -- Close netrw
|
||||
bind('<esc>', '<cmd>q<CR>') -- Close netrw
|
||||
end
|
||||
})
|
||||
|
||||
-- tabs
|
||||
map('n', '<C-q>n', '<cmd>tabnew<CR>')
|
||||
map('n', '<C-q>w', '<cmd>tabclose<CR>')
|
||||
map('n', '<C-q>h', '<cmd>tabprev<CR>')
|
||||
map('n', '<C-q>l', '<cmd>tabnext<CR>')
|
||||
|
||||
-- plugin binds ---------------------------------------------------------------
|
||||
|
||||
-- pretty lsp view
|
||||
@ -62,41 +71,56 @@ map('n', 'gr', '<CMD>Glance references<CR>')
|
||||
map('n', 'gy', '<CMD>Glance type_definitions<CR>')
|
||||
map('n', 'gi', '<CMD>Glance implementations<CR>')
|
||||
|
||||
local treesj = require('treesj') -- treesj
|
||||
map('n', '<leader>j', treesj.toggle)
|
||||
if pcall(require, "treesj") then
|
||||
local treesj = require('treesj') -- treesj
|
||||
map('n', '<leader>j', treesj.toggle)
|
||||
end
|
||||
|
||||
local telebuilt = require('telescope.builtin') -- telescope
|
||||
map('n', '<leader>sf', telebuilt.find_files)
|
||||
map('n', '<leader>sg', telebuilt.git_files)
|
||||
map('n', '<leader>sp', function()
|
||||
telebuilt.grep_string({ search = vim.fn.input('Find string in project > ') })
|
||||
end)
|
||||
map('n', '<leader>so', telebuilt.oldfiles)
|
||||
if pcall(require, "telescope") then
|
||||
local telebuilt = require('telescope.builtin') -- telescope
|
||||
map('n', '<leader>sf', telebuilt.find_files, { desc = 'Find files.' })
|
||||
map('n', '<leader>sg', telebuilt.git_files, { desc = 'Find git files.' })
|
||||
map('n', '<leader>sp', function()
|
||||
telebuilt.grep_string({ search = vim.fn.input(
|
||||
'Find string in project > '
|
||||
) })
|
||||
end, { desc = 'Find string in project.' })
|
||||
map('n', '<leader>so', telebuilt.oldfiles, { desc = 'Find old files.' })
|
||||
end
|
||||
|
||||
local intellitab = require('intellitab') -- intellitab
|
||||
map('n', '<Tab>', intellitab.indent)
|
||||
map('n', '<leader>u', '<cmd>UndotreeToggle<CR>', { desc = 'Open undo tree.' })
|
||||
map('n', '<leader>f', '<cmd>SFMToggle<CR>', { desc = 'Open file tree view.' })
|
||||
map('n', '<leader>b', '<cmd>JABSOpen<CR>', { desc = 'Switch between buffers.' })
|
||||
map('n', '<leader>tt', '<cmd>TroubleToggle<CR>', { desc = 'Diagnostic list.' })
|
||||
map('n', '<leader>tc', '<cmd>TodoTrouble<CR>', { desc = 'Comment list.' })
|
||||
map('n', '<C-e>', '<cmd>IconPickerYank<CR>', { desc = 'Icon picker list.' })
|
||||
|
||||
map('n', '<leader>u', '<cmd>UndotreeToggle<CR>') -- undo tree
|
||||
map('n', '<leader>f', '<cmd>SFMToggle<CR>') -- sfm
|
||||
map('n', '<leader>b', '<cmd>JABSOpen<CR>') -- switch between previous buffers
|
||||
map('n', '<leader>tt', '<cmd>TroubleToggle<CR>') -- trouble (lsp error view)
|
||||
map('n', '<leader>tc', '<cmd>TodoTrouble<CR>') -- todo trouble
|
||||
map('n', '<C-e>', '<cmd>IconPickerYank<CR>') -- icon picker
|
||||
if pcall(require, "dapui") then
|
||||
local dapui = require('dapui') -- dap ui
|
||||
map('n', '<leader>d', dapui.toggle, { desc = 'Debuging ui.' })
|
||||
end
|
||||
|
||||
local dapui = require('dapui') -- dap ui
|
||||
map('n', '<leader>d', dapui.toggle)
|
||||
|
||||
local smartsplits = require('smart-splits') -- resizing buffers (toggleable)
|
||||
map('n', '<leader>r', smartsplits.start_resize_mode)
|
||||
if pcall(require, "smart-splits") then
|
||||
local smartsplits = require('smart-splits') -- resizing buffers (toggleable)
|
||||
map('n', '<leader>r', smartsplits.start_resize_mode)
|
||||
end
|
||||
|
||||
-- toggle term (don't use leader key in these binds)
|
||||
map({'n', 't'}, '<C-\\>', '<cmd>ToggleTerm direction=float<CR>')
|
||||
map({'n', 't'}, '<C-g>', '<cmd>lua _glow()<CR>')
|
||||
|
||||
-- true zen
|
||||
map('n', '<leader>zf', '<cmd>lua require("true-zen.focus").toggle()<CR>')
|
||||
map('n', '<leader>zm', '<cmd>lua require("true-zen.minimalist").toggle()<CR>')
|
||||
map('n', '<leader>za', '<cmd>lua require("true-zen.ataraxis").toggle()<CR>')
|
||||
if pcall(require, "true-zen") then
|
||||
map('n', '<leader>zf', require("true-zen.focus").toggle, {
|
||||
desc = 'fullscreen',
|
||||
})
|
||||
map('n', '<leader>zm', require("true-zen.minimalist").toggle, {
|
||||
desc = 'minimal',
|
||||
})
|
||||
map('n', '<leader>za', require("true-zen.ataraxis").toggle, {
|
||||
desc = 'zen',
|
||||
})
|
||||
end
|
||||
|
||||
-- Git
|
||||
map('n', '<leader>gph', '<cmd>Gitsigns preview_hunk_inline<CR>')
|
||||
@ -104,4 +128,8 @@ map('n', '<leader>gsh', '<cmd>Gitsigns stage_hunk<CR>')
|
||||
map('n', '<leader>gb', '<cmd>Gitsigns blame_line<CR>')
|
||||
|
||||
-- neogen
|
||||
map('n', '<leader>df', '<cmd>lua require("neogen").generate()<CR>')
|
||||
if pcall(require, "neogen") then
|
||||
map('n', '<leader>df', require("neogen").generate, {
|
||||
desc = 'Generate anootations',
|
||||
})
|
||||
end
|
||||
|
@ -1,5 +1,4 @@
|
||||
require('core.plugins') -- load plugins first to allow colorscheme to be set in opts
|
||||
require'impatient'.enable_profile()
|
||||
require('core.opts')
|
||||
require('core.highlight')
|
||||
require('core.binds')
|
||||
|
@ -1,4 +1,5 @@
|
||||
local highlight = function(group, opts, space)
|
||||
if not pcall(require, "mellow") then return end
|
||||
space = space or 0
|
||||
|
||||
if type(group) == 'table' then
|
||||
@ -10,7 +11,7 @@ local highlight = function(group, opts, space)
|
||||
end
|
||||
end
|
||||
|
||||
local c = require('mellow.colors').dark
|
||||
if pcall(require, "mellow") then c = require('mellow.colors').dark end
|
||||
|
||||
-- vim highlights -------------------------------------------------------------
|
||||
highlight('CursorLineNr', { bg = c.bg_dark, fg = c.fg, bold = true })
|
||||
|
@ -1,5 +1,5 @@
|
||||
-- better ui ------------------------------------------------------------------
|
||||
vim.notify = require("notify")
|
||||
if pcall(require, "notify") then vim.notify = require("notify") end
|
||||
-- o.colorcolumn = { 80 }
|
||||
|
||||
-- buffer
|
||||
@ -34,7 +34,7 @@ o.softtabstop = tabwidth
|
||||
|
||||
-- colorscheme
|
||||
o.termguicolors = true
|
||||
vim.cmd('colorscheme mellow')
|
||||
if pcall(require, "mellow") then vim.cmd('colorscheme mellow') end
|
||||
|
||||
-- better editing -------------------------------------------------------------
|
||||
o.clipboard = 'unnamedplus' -- system clipboard (on unix like)
|
||||
|
@ -15,15 +15,17 @@ require 'dep' {
|
||||
-- flexing on all the discord users -----------------------------------------
|
||||
-- { 'andweeb/presence.nvim' },
|
||||
|
||||
-- colorschemes -------------------------------------------------------------
|
||||
{ 'kvrohit/mellow.nvim' },
|
||||
{ 'rockerBOO/boo-colorscheme-nvim' },
|
||||
|
||||
-- ui -----------------------------------------------------------------------
|
||||
{ 'kvrohit/mellow.nvim' }, -- colorscheme
|
||||
{ 'lukas-reineke/indent-blankline.nvim' }, -- indentation indicators
|
||||
{ 'folke/which-key.nvim' }, -- key map help
|
||||
{ 'rcarriga/nvim-notify' }, -- notifications
|
||||
{ 'tjdevries/express_line.nvim', -- status bar
|
||||
requires = 'nvim-lua/plenary.nvim',
|
||||
},
|
||||
{ 'alvarosevilla95/luatab.nvim' }, -- tabline
|
||||
{ 'goolord/alpha-nvim' }, -- start page
|
||||
{ 'dinhhuy258/sfm.nvim', -- tree view
|
||||
requires = 'dinhhuy258/sfm-git.nvim',
|
||||
@ -32,10 +34,14 @@ require 'dep' {
|
||||
{ 'axieax/urlview.nvim' }, -- view urls in current buffer
|
||||
{ 'matbme/JABS.nvim' }, -- buffer switcher
|
||||
{ 'ziontee113/icon-picker.nvim' }, -- icons
|
||||
{ 'petertriho/nvim-scrollbar' },
|
||||
{ 'pocco81/true-zen.nvim' },
|
||||
{ 'petertriho/nvim-scrollbar' }, -- scrollbar
|
||||
-- { 'lewis6991/satellite.nvim' }, -- new scrollbar for nvim 0.10
|
||||
{ 'pocco81/true-zen.nvim' }, -- focus on the current thing
|
||||
{ 'tomiis4/Hypersonic.nvim' }, -- regex helper/displayer
|
||||
|
||||
{ 'lewis6991/cleanfold.nvim' }, -- nice fold line
|
||||
{ 'yaocccc/nvim-foldsign' }, -- fold sign in gutter
|
||||
|
||||
-- functional plugins -------------------------------------------------------
|
||||
{ 'lewis6991/gitsigns.nvim' },
|
||||
{ 'chentoast/marks.nvim' },
|
||||
@ -50,6 +56,7 @@ require 'dep' {
|
||||
|
||||
-- note taking --------------------------------------------------------------
|
||||
{ 'nvim-neorg/neorg' },
|
||||
{ 'nvim-neorg/neorg-telescope' },
|
||||
|
||||
-- fzf ----------------------------------------------------------------------
|
||||
{ 'nvim-telescope/telescope.nvim',
|
||||
@ -96,10 +103,10 @@ require 'dep' {
|
||||
{ 'j-hui/fidget.nvim', -- shows lsp progress
|
||||
branch = 'legacy',
|
||||
},
|
||||
{ 'folke/neodev.nvim' }, -- configure lua lsp for neovim
|
||||
|
||||
{ 'ray-x/lsp_signature.nvim' }, -- see information about the current function
|
||||
{ 'dnlhc/glance.nvim' }, -- diagnostic info at a glance
|
||||
{ 'kosayoda/nvim-lightbulb' }, -- "light bulb" - Gru
|
||||
{ 'weilbith/nvim-code-action-menu' }, -- code actions
|
||||
|
||||
{ 'folke/trouble.nvim' },
|
||||
{ 'folke/todo-comments.nvim' },
|
||||
|
Reference in New Issue
Block a user