install scripts. reorganization. soon to be deployable

This commit is contained in:
2025-05-24 04:08:28 -05:00
parent 5010e57533
commit e966d5328d
242 changed files with 407 additions and 45 deletions

293
env/.config/nvim/lua/yourmom/cloak.lua vendored Normal file
View File

@@ -0,0 +1,293 @@
local group = vim.api.nvim_create_augroup('cloak', {})
local namespace = vim.api.nvim_create_namespace('cloak')
-- In case cmp is lazy loaded, we check :CmpStatus instead of a pcall to require
-- so we maintain the lazy load.
local has_cmp = function()
return vim.fn.exists(':CmpStatus') > 0
end
local M = {}
M.opts = {
enabled = true,
cloak_character = '*',
cloak_length = nil,
highlight_group = 'Comment',
try_all_patterns = true,
patterns = { { file_pattern = '.env*', cloak_pattern = '=.+' } },
cloak_telescope = true,
uncloaked_line_num = nil,
cloak_on_leave = false,
}
M.setup = function(opts)
M.opts = vim.tbl_deep_extend('force', M.opts, opts or {})
vim.b.cloak_enabled = M.opts.enabled
for _, pattern in ipairs(M.opts.patterns) do
if type(pattern.cloak_pattern) == 'string' then
pattern.cloak_pattern = { { pattern.cloak_pattern, replace = pattern.replace } }
else
for i, inner_pattern in ipairs(pattern.cloak_pattern) do
pattern.cloak_pattern[i] =
type(inner_pattern) == 'string'
and { inner_pattern, replace = pattern.cloak_pattern.replace or pattern.replace }
or inner_pattern
end
end
vim.api.nvim_create_autocmd(
{ 'BufEnter', 'TextChanged', 'TextChangedI', 'TextChangedP' }, {
pattern = pattern.file_pattern,
callback = function()
if M.opts.enabled then
M.cloak(pattern)
else
M.uncloak()
end
end,
group = group,
}
)
if M.opts.cloak_on_leave then
vim.api.nvim_create_autocmd(
'BufWinLeave', {
pattern = pattern.file_pattern,
callback = function()
M.enable()
end,
group = group,
}
)
end
end
if M.opts.cloak_telescope then
vim.api.nvim_create_autocmd(
'User', {
pattern = 'TelescopePreviewerLoaded',
callback = function(args)
-- Feature not in 0.1.x
if not M.opts.enabled or args.data == nil then
return
end
local buffer = require('telescope.state').get_existing_prompt_bufnrs()[1]
local picker = require('telescope.actions.state').get_current_picker(
buffer
)
-- If our state variable is set, meaning we have just refreshed after cloaking a buffer,
-- set the selection to that row again.
if picker.__cloak_selection then
picker:set_selection(picker.__cloak_selection)
picker.__cloak_selection = nil
vim.schedule(
function()
picker:refresh_previewer()
end
)
return
end
local is_cloaked, _ = pcall(
vim.api.nvim_buf_get_var, args.buf, 'cloaked'
)
-- Check the buffer agains all configured patterns,
-- if matched, set a variable on the picker to know where we left off,
-- set a buffer variable to know we already cloaked it later, and refresh.
-- a refresh will result in the cloak being visible, and will make this
-- aucmd be called again right away with the first result, which we will then
-- set to what we have stored in the code above.
if M.recloak_file(args.data.bufname) then
vim.api.nvim_buf_set_var(args.buf, 'cloaked', true)
if is_cloaked then
return
end
local row = picker:get_selection_row()
picker.__cloak_selection = row
picker:refresh()
return
end
end,
group = group,
}
)
end
-- Handle cloaking the Telescope preview.
vim.api.nvim_create_user_command('CloakEnable', M.enable, {})
vim.api.nvim_create_user_command('CloakDisable', M.disable, {})
vim.api.nvim_create_user_command('CloakToggle', M.toggle, {})
vim.api.nvim_create_user_command('CloakPreviewLine', M.uncloak_line, {})
end
M.uncloak = function()
vim.api.nvim_buf_clear_namespace(0, namespace, 0, -1)
end
M.uncloak_line = function()
if not M.opts.enabled then
return
end
local buf = vim.api.nvim_win_get_buf(0)
local cursor = vim.api.nvim_win_get_cursor(0)
M.opts.uncloaked_line_num = cursor[1]
vim.api.nvim_create_autocmd(
{ 'CursorMoved', 'CursorMovedI', 'BufLeave' }, {
buffer = buf,
callback = function(args)
if not M.opts.enabled then
M.opts.uncloaked_line_num = nil
return true
end
if args.event == 'BufLeave' then
M.opts.uncloaked_line_num = nil
M.recloak_file(vim.api.nvim_buf_get_name(buf))
return true
end
local ncursor = vim.api.nvim_win_get_cursor(0)
if ncursor[1] == M.opts.uncloaked_line_num then
return
end
M.opts.uncloaked_line_num = nil
M.recloak_file(vim.api.nvim_buf_get_name(buf))
-- deletes the auto command
return true
end,
group = group,
}
)
M.recloak_file(vim.api.nvim_buf_get_name(buf))
end
M.cloak = function(pattern)
M.uncloak()
if has_cmp() then
require('cmp').setup.buffer({ enabled = false })
end
local function determine_replacement(length, prefix)
local cloak_str = prefix
.. M.opts.cloak_character:rep(
tonumber(M.opts.cloak_length)
or length - vim.fn.strchars(prefix))
local remaining_length = length - vim.fn.strchars(cloak_str)
-- Fixme:
-- - When cloak_length is longer than the text underlying it,
-- it results in overlaying of extra text
-- => Possiblie solutions would could be implemented using inline virtual text
-- (https://github.com/neovim/neovim/pull/20130)
return cloak_str -- :sub(1, math.min(remaining_length - 1, -1))
.. (' '):rep(remaining_length)
end
local found_pattern = false
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
for i, line in ipairs(lines) do
-- Find all matches for the current line
local searchStartIndex = 1
while searchStartIndex < #line and
-- if the line is uncloaked skip
i ~= M.opts.uncloaked_line_num do
-- Find best pattern based on starting position and tiebreak with length
local first, last, matching_pattern, has_groups = -1, 1, nil, false
for _, inner_pattern in ipairs(pattern.cloak_pattern) do
local current_first, current_last, capture_group =
line:find(inner_pattern[1], searchStartIndex)
if current_first ~= nil
and (first < 0
or current_first < first
or (current_first == first and current_last > last)) then
first, last, matching_pattern, has_groups =
current_first, current_last, inner_pattern, capture_group ~= nil
if M.opts.try_all_patterns == false then break end
end
end
if first >= 0 then
found_pattern = true
local prefix = line:sub(first,first)
if has_groups and matching_pattern.replace ~= nil then
prefix = line:sub(first,last)
:gsub(matching_pattern[1], matching_pattern.replace, 1)
end
local last_of_prefix = first + vim.fn.strchars(prefix) - 1
if prefix == line:sub(first, last_of_prefix) then
first, prefix = last_of_prefix + 1, ''
end
vim.api.nvim_buf_set_extmark(
0, namespace, i - 1, first-1, {
hl_mode = 'combine',
virt_text = {
{
determine_replacement(last - first + 1, prefix),
M.opts.highlight_group,
},
},
virt_text_pos = 'overlay',
}
)
else break end
searchStartIndex = last
end
end
if found_pattern then
vim.opt_local.wrap = false
end
end
M.recloak_file = function(filename)
local base_name = vim.fn.fnamemodify(filename, ':t')
for _, pattern in ipairs(M.opts.patterns) do
-- Could be a string or a table of patterns.
local file_patterns = pattern.file_pattern
if type(file_patterns) == 'string' then
file_patterns = { file_patterns }
end
for _, file_pattern in ipairs(file_patterns) do
if base_name ~= nil and
vim.fn.match(base_name, vim.fn.glob2regpat(file_pattern)) ~= -1 then
M.cloak(pattern)
return true
end
end
end
return false
end
M.disable = function()
M.uncloak()
M.opts.enabled = false
vim.b.cloak_enabled = false
end
M.enable = function()
M.opts.enabled = true
vim.b.cloak_enabled = true
vim.cmd('doautocmd TextChanged')
end
M.toggle = function()
if M.opts.enabled then
M.disable()
else
M.enable()
end
end
return M

50
env/.config/nvim/lua/yourmom/init.lua vendored Executable file
View File

@@ -0,0 +1,50 @@
require("yourmom.remap")
vim.opt.guicursor=""
vim.opt.nu = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent=true
vim.opt.wrap = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.o.ignorecase = true
vim.opt.updatetime = 50
--vim.opt.colorcolumn = "80"
--vim.cmd('colorscheme vim')
--vim.cmd('colorscheme rose-pine')
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
vim.cmd('hi SignColumn ctermbg=0')
vim.cmd('set signcolumn=no')
vim.cmd('hi Pmenu ctermfg=120')
vim.cmd('hi Pmenu ctermbg=0')
vim.cmd('hi StatusLine ctermfg=0')
vim.cmd('hi StatusLine ctermbg=15')
vim.cmd('hi StatusLine cterm=reverse')
vim.opt.termguicolors = true
--allows highlighint in comments
--vim.api.nvim_set_hl(0, '@lsp.type.comment.cpp', {})
vim.filetype.add({
extension = {
src = "greyscript"
}
})

73
env/.config/nvim/lua/yourmom/packer.lua vendored Executable file
View File

@@ -0,0 +1,73 @@
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
use 'ThePrimeagen/vim-be-good'
use 'ThePrimeagen/harpoon'
use 'm4xshen/hardtime.nvim'
use 'rcarriga/nvim-notify'
use { "rose-pine/neovim", as = "rose-pine" }
use "jbyuki/quickmath.nvim"
use '3rd/image.nvim'
use {
'nvim-telescope/telescope.nvim', tag = '0.1.5',
-- or , branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
}
use("mbbill/undotree")
use "lukas-reineke/indent-blankline.nvim"
use({ "NStefan002/screenkey.nvim", tag = "*" })
use("catgoose/nvim-colorizer.lua")
use {
'nvim-lualine/lualine.nvim',
--requires = { 'nvim-tree/nvim-web-devicons', opt = true }
}
--[[
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate',
config = function()
require("nvim-treesitter.configs").setup {
ensure_installed = { "c", "lua", "rust" },
highlight = { enable = true, }
}
end
})
]]--
use {
'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
requires = {
--- Uncomment the two plugins below if you want to manage the language servers from neovim
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
-- LSP Support
{'neovim/nvim-lspconfig'},
-- Autocompletion
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
{'L3MON4D3/LuaSnip'},
}
}
end)

262
env/.config/nvim/lua/yourmom/remap.lua vendored Executable file
View File

@@ -0,0 +1,262 @@
vim.g.mapleader=" "
vim.g.maplocalleader=" "
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
--[[vim.cmd[[
au VimEnter * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
au VimLeave * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Caps_Lock'>
]]
--move highlighted stuffs
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
--keeps cursor at cur pos when stacking lines to single line
vim.keymap.set("n", "J", "mzJ`z")
--keeps cursur in middle with up down
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
--sets leader y to put in sys clipboard
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
--paste but dont overwrite current register with selection
vim.keymap.set("v", "<leader>p", "\"_dP")
--nnoremap S :%s//g<left><left>
vim.keymap.set("n", "S", [[:%s//<Left>]])
vim.keymap.set('n', '<leader>to', ':tabnew<CR>')
vim.keymap.set('n', '<leader>tx', ':tabclose<CR>')
vim.keymap.set('n', '<leader>tn', ':tabn<CR>')
vim.keymap.set('n', '<leader>tp', ':tabp<CR>')
vim.keymap.set('n', '<leader>lw', '<cmd>:set wrap!<CR>')
--stay in indent mode
vim.keymap.set('v', '<', '<gv', {noremap = true})
vim.keymap.set('v', '>', '>gv', {noremap = true})
--reize with arrows
vim.keymap.set('n', '<A-k>', ':resize -2<CR>')
vim.keymap.set('n', '<A-j>', ':resize +2<CR>')
vim.keymap.set('n', '<A-h>', ':vertical resize -2<CR>')
vim.keymap.set('n', '<A-l>', ':vertical resize +2<CR>')
-- window management
vim.keymap.set('n', '<leader>v', '<C-w>v')
vim.keymap.set('n', '<leader>h', '<C-w>s')
vim.keymap.set('n', '<leader>se', '<C-w>=')
vim.keymap.set('n', '<leader>xs', ':close<CR>')
-- navigate splits
vim.keymap.set("n","<C-h>","<C-w>h")
vim.keymap.set("n","<C-j>","<C-w>j")
vim.keymap.set("n","<C-l>","<C-w>l")
vim.keymap.set("n","<C-k>","<C-w>k")
vim.keymap.set("n", "<leader>ee", "oif err != nil {<CR>}<Esc>Oreturn err<Esc>")
--per file type log quick binds
local cc_command=""
local filename = vim.api.nvim_buf_get_name(0)
if string.find(filename,".*%.js$") then
cc_command="oconsole.log();<Esc>V=$hi"
elseif string.find(filename,".*%.lua$") then
cc_command="oterm.print()<Esc>V=$i"
elseif string.find(filename,".*%.c$") then
cc_command="oprintf(\"debug: %i\",);<Esc>V=$hi"
elseif string.find(filename,".*%.rs$") then
cc_command="oprintln!(\"debug: {}\",);<Esc>V=$hi"
end
vim.keymap.set("n", "<leader>cc", cc_command)
local auto_close=false
local function toggle_auto_close()
if auto_close==false then
vim.keymap.set("i", "{", "{<CR>}<Esc>ko");
vim.keymap.set("i", "(", "()<Esc>i");
if string.find(filename,".*%.html$") then
vim.keymap.set("i", "<", "<");
vim.keymap.set("i", ">", "><Esc>T<yef>a</><Esc>hpF<i");
else
vim.keymap.set("i", "<", "<><Esc>i");
vim.keymap.set("i", ">", ">");
end
vim.keymap.set("i", "[", "[]<Esc>i");
vim.keymap.set("i", "\"", "\"\"<Esc>i");
vim.keymap.set("i", "'", "''<Esc>i");
auto_close=true
else
vim.keymap.set("i", "{", "{");
vim.keymap.set("i", "(", "(");
vim.keymap.set("i", "<", "<");
vim.keymap.set("i", ">", ">");
vim.keymap.set("i", "[", "[");
vim.keymap.set("i", "\"", "\"");
vim.keymap.set("i", "'", "'");
auto_close=false
end
end
toggle_auto_close()
vim.keymap.set("n", "<leader>k", toggle_auto_close)
--[[
vim.keymap("i","<Caps_Lock>", function()
end)
]]
local colemak_switch=false
local colemak_tog = function()
if colemak_switch==true then
colemak_switch=false
vim.keymap.set("n","d","d")
vim.keymap.set("n","e","e")
vim.keymap.set("n","f","f")
vim.keymap.set("n","g","g")
vim.keymap.set("n","i","i")
vim.keymap.set("n","j","j")
vim.keymap.set("n","k","k")
vim.keymap.set("n","l","l")
vim.keymap.set("n","n","n")
vim.keymap.set("n","o","o")
vim.keymap.set("n","p","p")
vim.keymap.set("n","r","r")
vim.keymap.set("n","s","s")
vim.keymap.set("n","t","t")
vim.keymap.set("n","u","u")
vim.keymap.set("n","y","y")
vim.keymap.set("n","D","D")
vim.keymap.set("n","E","E")
vim.keymap.set("n","F","F")
vim.keymap.set("n","G","G")
vim.keymap.set("n","I","I")
vim.keymap.set("n","J","J")
vim.keymap.set("n","K","K")
vim.keymap.set("n","L","L")
vim.keymap.set("n","N","N")
vim.keymap.set("n","O","O")
vim.keymap.set("n","P","P")
vim.keymap.set("n","R","R")
vim.keymap.set("n","S","S")
vim.keymap.set("n","T","T")
vim.keymap.set("n","U","U")
vim.keymap.set("n","Y","Y")
vim.keymap.set("v","d","d")
vim.keymap.set("v","e","e")
vim.keymap.set("v","f","f")
vim.keymap.set("v","g","g")
vim.keymap.set("v","i","i")
vim.keymap.set("v","j","j")
vim.keymap.set("v","k","k")
vim.keymap.set("v","l","l")
vim.keymap.set("v","n","n")
vim.keymap.set("v","o","o")
vim.keymap.set("v","p","p")
vim.keymap.set("v","r","r")
vim.keymap.set("v","s","s")
vim.keymap.set("v","t","t")
vim.keymap.set("v","u","u")
vim.keymap.set("v","y","y")
vim.keymap.set("v","D","D")
vim.keymap.set("v","E","E")
vim.keymap.set("v","F","F")
vim.keymap.set("v","G","G")
vim.keymap.set("v","I","I")
vim.keymap.set("v","J","J")
vim.keymap.set("v","K","K")
vim.keymap.set("v","L","L")
vim.keymap.set("v","N","N")
vim.keymap.set("v","O","O")
vim.keymap.set("v","P","P")
vim.keymap.set("v","R","R")
vim.keymap.set("v","S","S")
vim.keymap.set("v","T","T")
vim.keymap.set("v","U","U")
vim.keymap.set("v","Y","Y")
else
colemak_switch=true
vim.keymap.set("n","d","g")
vim.keymap.set("n","e","k")
vim.keymap.set("n","f","e")
vim.keymap.set("n","g","t")
vim.keymap.set("n","i","l")
vim.keymap.set("n","j","y")
vim.keymap.set("n","k","n")
vim.keymap.set("n","l","u")
vim.keymap.set("n","n","j")
vim.keymap.set("n","o","p")
vim.keymap.set("n","p","r")
vim.keymap.set("n","r","s")
vim.keymap.set("n","s","d")
vim.keymap.set("n","t","f")
vim.keymap.set("n","u","i")
vim.keymap.set("n","y","o")
vim.keymap.set("n","D","G")
vim.keymap.set("n","E","K")
vim.keymap.set("n","F","E")
vim.keymap.set("n","G","T")
vim.keymap.set("n","I","L")
vim.keymap.set("n","J","Y")
vim.keymap.set("n","K","N")
vim.keymap.set("n","L","U")
vim.keymap.set("n","N","J")
vim.keymap.set("n","O","P")
vim.keymap.set("n","P","R")
vim.keymap.set("n","R","S")
vim.keymap.set("n","S","D")
vim.keymap.set("n","T","F")
vim.keymap.set("n","U","I")
vim.keymap.set("n","Y","O")
vim.keymap.set("v","d","g")
vim.keymap.set("v","e","k")
vim.keymap.set("v","f","e")
vim.keymap.set("v","g","t")
vim.keymap.set("v","i","l")
vim.keymap.set("v","j","y")
vim.keymap.set("v","k","n")
vim.keymap.set("v","l","u")
vim.keymap.set("v","n","j")
vim.keymap.set("v","o","p")
vim.keymap.set("v","p","r")
vim.keymap.set("v","r","s")
vim.keymap.set("v","s","d")
vim.keymap.set("v","t","f")
vim.keymap.set("v","u","i")
vim.keymap.set("v","y","o")
vim.keymap.set("v","D","G")
vim.keymap.set("v","E","K")
vim.keymap.set("v","F","E")
vim.keymap.set("v","G","T")
vim.keymap.set("v","I","L")
vim.keymap.set("v","J","Y")
vim.keymap.set("v","K","N")
vim.keymap.set("v","L","U")
vim.keymap.set("v","N","J")
vim.keymap.set("v","O","P")
vim.keymap.set("v","P","R")
vim.keymap.set("v","R","S")
vim.keymap.set("v","S","D")
vim.keymap.set("v","T","F")
vim.keymap.set("v","U","I")
vim.keymap.set("v","Y","O")
end
end
vim.keymap.set("n", "<leader>r", colemak_tog)