feat: Adding new additions of:

- autopairs (trying again and kind of liking it)
- render-markdown to render markdown in editor
- twilight for dimming other lines
- nvim-biscuits

Changes to the zshrc settings to add location, color settings
environment variables, some keybindings, universal aliases for
coloration, etc.

Adding a loader.enable to the start of init.lua for faster load times
(need to benchmark this but it feels faster).
This commit is contained in:
Finch 2025-07-20 14:53:21 -05:00
parent 6faf8a1641
commit dab3447bad
10 changed files with 229 additions and 25 deletions

View File

@ -42,6 +42,9 @@
-- --
-- Created: 7/2/2012 -- Created: 7/2/2012
local vim = vim
vim.loader.enable()
require('custom_functions') require('custom_functions')
require('custom_commands') require('custom_commands')
require('keymappings') require('keymappings')

View File

@ -14,21 +14,24 @@ end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
require('lazy').setup({ require('lazy').setup({
require('plugins/mason'), require('plugins.mason'), -- LSP and DAP manager
require('plugins/lspconfig'), require('plugins.gruvbox'), -- Colorscheme
require('plugins/gruvbox'), require('plugins.comment'), -- Simple language specific commenting shortcuts
require('plugins/comment'), require('plugins.dap'), -- DAP debugging plugin
require('plugins/dap'), require('plugins.dap-python'), -- Debug plugin settings specifically for python
-- require('plugins/dap-python'), require('plugins.treesitter'), -- Treesitter syntax highlighting and tree support
require('plugins/treesitter'), require('plugins.gitsigns'), -- Gutter symbols for Git status and quick actions for Git operations
require('plugins/gitsigns'), require('plugins.luasnip'), -- Snippet enging
require('plugins/luasnip'), require('plugins.nvim-cmp'), -- Autocompletion engine
require('plugins/nvim-cmp'), require('plugins.lualine'), -- Status line
require('plugins/lualine'), require('plugins.telekasten'), -- Note taking setup
require('plugins/telekasten'), require('plugins.telescope'), -- Floating windows for searching and other operations
require('plugins/telescope'), 'tpope/vim-surround', -- Change surrounding symbols
'tpope/vim-surround', require('plugins.floaterm'), -- Floating terminal
require('plugins/floaterm'), require('plugins.vim-godot'), -- Godot specific bindings and debug
require('plugins/vim-godot'), require('plugins.markdown-preview'), -- Open a preview of markdown rendered in a browser
require('plugins/markdown-preview'), require('plugins.render-markdown'), -- Render markdown directly in nvim (experimental, may take over for markdown-preview)
require('plugins.autopairs'), -- Autocomplete symbol pairs when typing (experimental)
require('plugins.nvim-biscuits'), -- Virtual text on closing tags for what the start of the block is (experimental)
require('plugins.twilight') -- Focus mode, dim lines around the current segment of code
}) })

View File

@ -0,0 +1,6 @@
return {
'windwp/nvim-autopairs',
config = function ()
require('nvim-autopairs').setup()
end
}

View File

@ -36,13 +36,11 @@ return {
'clangd', -- C/C++ 'clangd', -- C/C++
-- 'hadolint', -- Dockerfile linting -- 'hadolint', -- Dockerfile linting
'intelephense', -- PHP 'intelephense', -- PHP
-- 'jdtls', -- java
'lua_ls', 'lua_ls',
'marksman', -- markdown 'marksman', -- markdown
-- 'pylint',
'pylsp', 'pylsp',
'rust_analyzer', 'rust_analyzer',
'ts_ls', -- Typscript -- 'ts_ls', -- Typscript
'yamlls', 'yamlls',
} }
} }
@ -136,6 +134,7 @@ return {
}) })
end, end,
dependencies = { dependencies = {
'neovim/nvim-lspconfig',
'mason-org/mason-lspconfig.nvim', 'mason-org/mason-lspconfig.nvim',
}, },
lazy = false, lazy = false,

View File

@ -0,0 +1,22 @@
return {
'code-biscuits/nvim-biscuits',
config = function ()
require('nvim-biscuits').setup({
default_config = {
max_length = 3,
trim_by_words = true,
min_distance = 5,
prefix_string = " 📎 ",
},
-- on_events = { 'InsertLeave', 'CursorHoldI' },
max_file_size = '250kb',
-- show_on_start = true,
cursor_line_only = true,
language_config = {
markdown = {
disabled = true
}
}
})
end
}

View File

@ -41,6 +41,7 @@ return {
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'luasnip' }, { name = 'luasnip' },
{ name = 'path' }, { name = 'path' },
{ name = 'render-markdown' },
}, { }, {
{ name = 'buffer' }, { name = 'buffer' },
}) })

View File

@ -0,0 +1,115 @@
return {
'meanderingprogrammer/render-markdown.nvim',
config = function ()
vim.treesitter.language.register('markdown', 'telekasten')
require('render-markdown').setup({
enabled = true,
-- render_modes = { 'n', 'c', 't' },
max_file_size = 10.0,
debounce = 100,
file_types = { 'markdown', 'telekasten' },
link = {
enabled = true,
footnote = {
enabled = true,
superscript = true,
prefix = '',
suffix = '',
},
highlight = 'RenderMarkdownLink',
},
latex = {
enabled = false,
},
checkbox = {
enabled = true,
render_modes = false,
bullet = false,
right_pad = 1,
unchecked = {
-- icon = '󰄱 ',
highlight = 'RenderMarkdownUnchecked',
scope_highlight = nil,
},
checked = {
-- icon = '󰱒 ',
highlight = 'RenderMarkdownChecked',
},
custom = {
todo = {
raw = '[-]',
-- rendered = '',
highlight = 'RenderMarkdownTodo',
scope_highlight = nil,
},
},
},
bullet = {
enabled = true,
render_modes = false,
icons = { '', '', '', '' },
ordered_icons = function (ctx)
local value = vim.trim(ctx.value)
local index = tonumber(value:sub(1, #value - 1))
return ('%d'):format(index > 1 and index or ctx.index)
end,
left_pad = 0,
right_pad = 0,
highlight = 'RenderMarkdownBullet',
scope_highlight = {},
},
-- quote = { icon = '▋' },
anti_conceal = {
enabled = true,
ignore = {
code_background = true,
sign = true,
},
above = 0,
below = 0,
},
custom = {
},
callout = {
-- Callouts are a special instance of a 'block_quote' that start with a 'shortcut_link'.
-- The key is for healthcheck and to allow users to change its values, value type below.
-- | raw | matched against the raw text of a 'shortcut_link', case insensitive |
-- | rendered | replaces the 'raw' value when rendering |
-- | highlight | highlight for the 'rendered' text and quote markers |
-- | quote_icon | optional override for quote.icon value for individual callout |
-- | category | optional metadata useful for filtering |
note = { raw = '[!NOTE]', rendered = '󰋽 Note', highlight = 'RenderMarkdownInfo'},
tip = { raw = '[!TIP]', rendered = '󰌶 Tip', highlight = 'RenderMarkdownSuccess'},
important = { raw = '[!IMPORTANT]', rendered = '󰅾 Important', highlight = 'RenderMarkdownHint'},
warning = { raw = '[!WARNING]', rendered = '󰀪 Warning', highlight = 'RenderMarkdownWarn'},
caution = { raw = '[!CAUTION]', rendered = '󰳦 Caution', highlight = 'RenderMarkdownError'},
abstract = { raw = '[!ABSTRACT]', rendered = '󰨸 Abstract', highlight = 'RenderMarkdownInfo'},
summary = { raw = '[!SUMMARY]', rendered = '󰨸 Summary', highlight = 'RenderMarkdownInfo'},
tldr = { raw = '[!TLDR]', rendered = '󰨸 Tldr', highlight = 'RenderMarkdownInfo'},
info = { raw = '[!INFO]', rendered = '󰋽 Info', highlight = 'RenderMarkdownInfo'},
todo = { raw = '[!TODO]', rendered = '󰗡 Todo', highlight = 'RenderMarkdownInfo'},
hint = { raw = '[!HINT]', rendered = '󰌶 Hint', highlight = 'RenderMarkdownSuccess'},
success = { raw = '[!SUCCESS]', rendered = '󰄬 Success', highlight = 'RenderMarkdownSuccess'},
check = { raw = '[!CHECK]', rendered = '󰄬 Check', highlight = 'RenderMarkdownSuccess'},
done = { raw = '[!DONE]', rendered = '󰄬 Done', highlight = 'RenderMarkdownSuccess'},
question = { raw = '[!QUESTION]', rendered = '󰘥 Question', highlight = 'RenderMarkdownWarn'},
help = { raw = '[!HELP]', rendered = '󰘥 Help', highlight = 'RenderMarkdownWarn'},
faq = { raw = '[!FAQ]', rendered = '󰘥 Faq', highlight = 'RenderMarkdownWarn'},
attention = { raw = '[!ATTENTION]', rendered = '󰀪 Attention', highlight = 'RenderMarkdownWarn'},
failure = { raw = '[!FAILURE]', rendered = '󰅖 Failure', highlight = 'RenderMarkdownError'},
fail = { raw = '[!FAIL]', rendered = '󰅖 Fail', highlight = 'RenderMarkdownError'},
missing = { raw = '[!MISSING]', rendered = '󰅖 Missing', highlight = 'RenderMarkdownError'},
danger = { raw = '[!DANGER]', rendered = '󱐌 Danger', highlight = 'RenderMarkdownError'},
error = { raw = '[!ERROR]', rendered = '󱐌 Error', highlight = 'RenderMarkdownError'},
bug = { raw = '[!BUG]', rendered = '󰨰 Bug', highlight = 'RenderMarkdownError'},
example = { raw = '[!EXAMPLE]', rendered = '󰉹 Example', highlight = 'RenderMarkdownHint' },
quote = { raw = '[!QUOTE]', rendered = '󱆨 Quote', highlight = 'RenderMarkdownQuote'},
cite = { raw = '[!CITE]', rendered = '󱆨 Cite', highlight = 'RenderMarkdownQuote'},
},
})
end,
dependencies = {
}
}

View File

@ -18,10 +18,13 @@ return {
'javascript', 'javascript',
'json', 'json',
'lua', 'lua',
'markdown',
'markdown_inline',
'python', 'python',
'query', 'query',
'rust', 'rust',
'sql', 'sql',
'tera',
'toml', 'toml',
'tsx', 'tsx',
'typescript', 'typescript',
@ -41,8 +44,5 @@ return {
enable = true, enable = true,
} }
} }
-- require('nvim-treesitter.install').prefer_git = true
-- TSUpdate
end, end,
-- lazy = false,
} }

View File

@ -0,0 +1,18 @@
return {
'folke/twilight.nvim',
config = function ()
require('twilight').setup({
dimming = {
alpha = 0.3,
},
expand = {
"function",
"method",
"table",
}
})
end,
keys = {
{ '<leader>f', ':Twilight<CR>' }
}
}

41
zshrc
View File

@ -8,8 +8,14 @@ then
fi fi
### ZSH Configuration ### ZSH Configuration
## Path variables
# Path to your oh-my-zsh installation. # Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh" export ZSH="$HOME/.oh-my-zsh"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
export MANPAGER="less -R --use-color -Dd+r -Du+b" # Colored MAN pages
ZSH_THEME="fb-custom" ZSH_THEME="fb-custom"
@ -17,9 +23,22 @@ ZSH_THEME="fb-custom"
# Case-sensitive completion must be off. _ and - will be interchangeable. # Case-sensitive completion must be off. _ and - will be interchangeable.
HYPHEN_INSENSITIVE="true" HYPHEN_INSENSITIVE="true"
# History
HISTCONTROL=ignoreboth
# Uncomment one of the following lines to change the auto-update behavior # Uncomment one of the following lines to change the auto-update behavior
zstyle ':omz:update' mode reminder frequency 14 zstyle ':omz:update' mode reminder frequency 14
# Keybindings
bindkey "^a" beginning-of-line
bindkey "^e" end-of-line
# bindkey "^h" backward-word
# bindkey "^k" kill-line
# bindkey "^j" backward-word
# bindkey "^k" forward-word
# bindkey "^J" history-search-forward
# bindkey "^K" history-search-backward
### Plugins ### Plugins
# Install the zsh-autosuggestions plugin if it doesn't exist # Install the zsh-autosuggestions plugin if it doesn't exist
if [ ! -d ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions ] if [ ! -d ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions ]
@ -31,6 +50,7 @@ plugins=(
aws aws
copypath copypath
dotenv dotenv
fzf
git git
history history
zsh-autosuggestions zsh-autosuggestions
@ -47,9 +67,18 @@ setopt hist_ignore_all_dups # Replace old history with the newest call to an ide
setopt hist_ignore_space # Remove history lines that start with spaces setopt hist_ignore_space # Remove history lines that start with spaces
# setopt correctall # Correct commands # setopt correctall # Correct commands
# Experimental
setopt append_history inc_append_history share_history
# setopt auto_menu menu_complete
# setopt autocd
setopt auto_param_slash
setopt no_case_glob no_case_match
# setopt globdots
# Enable compinit advanced completion # Enable compinit advanced completion
autoload -Uz compinit zmodload zsh/complist
compinit autoload -Uz compinit && compinit
autoload -U colors && colors
# Completion options # Completion options
# Give descriptions of what the types of completions given # Give descriptions of what the types of completions given
@ -88,6 +117,14 @@ timezsh() {
done done
} }
# Aliases Universal
alias rm="rm -Iv" # Prompt for removal of more than three files or recursively to give some protection of mistakes
alias df="df -h" # Always use the human readable formatting
alias du="du -h -d 1" # Always use human readable format and only for the current dir by default
alias k="killall" # Quick killall
alias p="ps aux | grep $1" # Quick
alias v="$EDITOR" # Just open the usual editor
### Environment specific include files ### Environment specific include files
include_files=( include_files=(
"$HOME/.zsh_aliases" "$HOME/.zsh_aliases"