This commit is contained in:
andy 2026-01-27 12:44:03 -08:00
parent f70c9b31be
commit 3ba2901cd4
10 changed files with 142 additions and 164 deletions

133
colors/poimandres-storm.lua Normal file
View File

@ -0,0 +1,133 @@
-- Poimandres Storm (Neovim)
-- Based on Poimandres Storm by Oliver Cederborg
vim.cmd 'highlight clear'
if vim.fn.exists 'syntax_on' then
vim.cmd 'syntax reset'
end
vim.o.termguicolors = true
vim.g.colors_name = 'poimandres-storm'
-- Expanded palette
local colors = {
-- Accents
yellow = '#FFFAC2',
teal1 = '#5DE4C7',
teal2 = '#5FB3A1',
teal3 = '#42675A',
blue1 = '#89DDFF',
blue2 = '#ADD7FF',
blue3 = '#91B4D5',
blue4 = '#7390AA',
pink1 = '#FAE4FC',
pink2 = '#FCC5E9',
pink3 = '#D0679D',
-- Neutrals
blueGray1 = '#A6ACCD',
blueGray2 = '#767C9D',
blueGray3 = '#506477',
-- Background layers
bg = '#252B37', -- main editor
bg_alt = '#1B1E28', -- floats / panels
bg_dark = '#171922', -- deepest contrast
-- Text
fg = '#E4F0FB',
white = '#FFFFFF',
none = 'NONE',
}
local function hi(group, opts)
vim.api.nvim_set_hl(0, group, opts)
end
-- ======================
-- Core UI
-- ======================
hi('Normal', { fg = colors.fg, bg = colors.bg })
hi('NormalFloat', { fg = colors.fg, bg = colors.bg_alt })
hi('FloatBorder', { fg = colors.blueGray3, bg = colors.bg_alt })
hi('Cursor', { fg = colors.bg, bg = colors.blueGray1 })
hi('CursorLine', { bg = colors.bg_alt })
hi('CursorLineNr', { fg = colors.blue1, bold = true })
hi('LineNr', { fg = colors.blueGray3 })
hi('Visual', { bg = colors.blueGray3 })
hi('Search', { fg = colors.bg, bg = colors.yellow })
hi('IncSearch', { fg = colors.bg, bg = colors.pink2 })
hi('StatusLine', { fg = colors.fg, bg = colors.bg_alt })
hi('StatusLineNC', { fg = colors.blueGray2, bg = colors.bg_alt })
hi('WinSeparator', { fg = colors.bg_alt })
hi('VertSplit', { fg = colors.bg_alt })
-- ======================
-- Menus
-- ======================
hi('Pmenu', { fg = colors.fg, bg = colors.bg_alt })
hi('PmenuSel', { fg = colors.bg, bg = colors.blue1 })
hi('PmenuSbar', { bg = colors.bg_dark })
hi('PmenuThumb', { bg = colors.blueGray3 })
-- ======================
-- Syntax
-- ======================
hi('Comment', { fg = colors.blueGray3, italic = true })
hi('Constant', { fg = colors.pink2 })
hi('String', { fg = colors.teal1 })
hi('Character', { fg = colors.teal1 })
hi('Number', { fg = colors.pink2 })
hi('Boolean', { fg = colors.pink3 })
hi('Identifier', { fg = colors.blue1 })
hi('Function', { fg = colors.blue1 })
hi('Statement', { fg = colors.pink3 })
hi('Keyword', { fg = colors.pink3 })
hi('Conditional', { fg = colors.pink3 })
hi('Repeat', { fg = colors.pink3 })
hi('Exception', { fg = colors.pink3 })
hi('Type', { fg = colors.yellow })
hi('StorageClass', { fg = colors.yellow })
hi('Structure', { fg = colors.yellow })
hi('Operator', { fg = colors.teal2 })
hi('Delimiter', { fg = colors.blueGray2 })
-- ======================
-- Diagnostics (LSP)
-- ======================
hi('DiagnosticError', { fg = colors.pink3 })
hi('DiagnosticWarn', { fg = colors.yellow })
hi('DiagnosticInfo', { fg = colors.blue2 })
hi('DiagnosticHint', { fg = colors.teal2 })
hi('DiagnosticVirtualTextError', { fg = colors.pink3, bg = colors.bg_dark })
hi('DiagnosticVirtualTextWarn', { fg = colors.yellow, bg = colors.bg_dark })
hi('DiagnosticVirtualTextInfo', { fg = colors.blue2, bg = colors.bg_dark })
hi('DiagnosticVirtualTextHint', { fg = colors.teal2, bg = colors.bg_dark })
-- ======================
-- Git / Diff
-- ======================
hi('DiffAdd', { fg = colors.teal1 })
hi('DiffChange', { fg = colors.yellow })
hi('DiffDelete', { fg = colors.pink3 })
-- ======================
-- Tabs
-- ======================
hi('TabLine', { fg = colors.blueGray2, bg = colors.bg_alt })
hi('TabLineSel', { fg = colors.fg, bg = colors.bg_alt, bold = true })
hi('TabLineFill', { bg = colors.bg_alt })

View File

@ -120,6 +120,8 @@ vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper win
vim.keymap.set('n', '<C-u>', '<C-u>zz')
vim.keymap.set('n', '<C-d>', '<C-d>zz')
vim.keymap.set('n', '<C-->', '<C-o>')
-- [[ Basic Autocommands ]]
-- See `:help lua-guide-autocommands`
@ -813,6 +815,7 @@ require('lazy').setup({
},
{ -- You can easily change to a different colorscheme.
--
-- Change the name of the colorscheme plugin below, and then
-- change the command in the config to whatever the name of that colorscheme is.
--
@ -846,7 +849,7 @@ require('lazy').setup({
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
-- - ci' - [C]hange [I]nside [']quote
require('mini.ai').setup { n_lines = 500 }
require('mini.ai').setup { n_lines = 1000 }
-- Add/delete/replace surroundings (brackets, quotes, etc.)
--

View File

@ -0,0 +1,3 @@
return {
'github/copilot.vim',
}

View File

@ -12,7 +12,7 @@ return {
},
char = {
enabled = false,
jump_labels = true,
jump_labels = false,
},
},
},

View File

@ -1,37 +0,0 @@
return {
'ThePrimeagen/harpoon',
branch = 'harpoon2',
dependencies = { 'nvim-lua/plenary.nvim' },
init = function()
local harpoon = require 'harpoon'
harpoon:setup()
vim.keymap.set('n', '<leader>a', function()
harpoon:list():add()
end)
vim.keymap.set('n', '<C-e>', function()
harpoon.ui:toggle_quick_menu(harpoon:list())
end)
vim.keymap.set('n', '<C-f>', function()
harpoon:list():select(1)
end)
vim.keymap.set('n', '<C-g>', function()
harpoon:list():select(2)
end)
vim.keymap.set('n', '<C-h>', function()
harpoon:list():select(3)
end)
vim.keymap.set('n', '<C-t>', function()
harpoon:list():select(4)
end)
-- Toggle previous & next buffers stored within Harpoon list
vim.keymap.set('n', '<C-S-P>', function()
harpoon:list():prev()
end)
vim.keymap.set('n', '<C-S-N>', function()
harpoon:list():next()
end)
end,
}

View File

@ -25,7 +25,7 @@ return {
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff' },
lualine_c = { 'local', 'filename' },
lualine_c = { 'filename' },
lualine_x = {},
lualine_y = {},
lualine_z = {},

View File

@ -1,3 +0,0 @@
return {
'mg979/vim-visual-multi',
}

View File

@ -1,18 +0,0 @@
return {
'christoomey/vim-tmux-navigator',
cmd = {
'TmuxNavigateLeft',
'TmuxNavigateDown',
'TmuxNavigateUp',
'TmuxNavigateRight',
'TmuxNavigatePrevious',
'TmuxNavigatorProcessList',
},
keys = {
{ '<c-h>', '<cmd><C-U>TmuxNavigateLeft<cr>' },
{ '<c-j>', '<cmd><C-U>TmuxNavigateDown<cr>' },
{ '<c-k>', '<cmd><C-U>TmuxNavigateUp<cr>' },
{ '<c-l>', '<cmd><C-U>TmuxNavigateRight<cr>' },
{ '<c-\\>', '<cmd><C-U>TmuxNavigatePrevious<cr>' },
},
}

View File

@ -1,3 +0,0 @@
return {
'ThePrimeagen/vim-be-good',
}

View File

@ -1,100 +0,0 @@
local terminals = {}
local function create_floating_window(opts)
local opts = opts or {}
-- Get editor dimensions
local width = vim.o.columns
local height = vim.o.lines
-- Default size (80% of editor width and centered)
local win_width = opts.width or math.ceil(width * 0.8)
local win_height = opts.height or math.ceil(height * 0.8)
-- Position (centered)
local row = math.ceil((height - win_height) / 2)
local col = math.ceil((width - win_width) / 2)
-- Create a new buffer
local buf = nil
if opts.buf and vim.api.nvim_buf_is_valid(opts.buf) then
buf = opts.buf
else
buf = vim.api.nvim_create_buf(false, true)
end
-- Set window options
local win_opts = {
title = 'Terminal ' .. opts.name,
relative = 'editor',
width = win_width,
height = win_height,
row = row,
col = col,
style = 'minimal',
border = 'rounded',
}
-- Open the floating window
local win = vim.api.nvim_open_win(buf, true, win_opts)
return { buf = buf, win = win }
end
local function toggle_terminal(name)
if not name or name == '' then
return
end
-- Check if terminal exists for the given name
if terminals[name] and vim.api.nvim_buf_is_valid(terminals[name].buf) then
if vim.api.nvim_win_is_valid(terminals[name].win) then
-- If window exists, hide it
vim.api.nvim_win_hide(terminals[name].win)
return
else
-- Otherwise, reopen the floating terminal
terminals[name] = create_floating_window { buf = terminals[name].buf, name = name }
vim.cmd 'normal i'
return
end
end
-- If it doesn't exist, create a new floating terminal
terminals[name] = create_floating_window { name = name }
vim.cmd.terminal()
vim.cmd 'normal i'
end
local function list_active_terminals()
local terminal_names = {}
-- Collect names of active terminals
for name, _ in pairs(terminals) do
table.insert(terminal_names, name)
end
return terminal_names
end
local function list_terminals()
local terminal_names = list_active_terminals()
print(vim.inspect(terminal_names))
-- If there are active terminals, show them in a Telescope picker
if #terminal_names > 0 then
-- show picker with terminals
else
vim.notify('No active terminals found', vim.log.levels.INFO)
end
end
-- Map the keys
vim.keymap.set('n', '<space>t', function()
vim.ui.input({ prompt = 'Enter terminal name: ' }, function(input)
if input then
toggle_terminal(input)
end
end)
end, { noremap = true, silent = true })
vim.keymap.set('n', '<space>lt', list_terminals, { noremap = true, silent = true })