[nvim] Autocmd to highlight trailing whitespace using ErrorMsg

Additionally refactor the colors lua module into one with an init function that
init.lua can invoke.
This commit is contained in:
Eryn Wells 2026-02-06 08:08:04 -08:00
parent 929f951391
commit c58625cc89
2 changed files with 93 additions and 50 deletions

View file

@ -49,12 +49,14 @@ vim.cmd [[
addGitTopLevelDirectoryToRuntimePath()
require 'autocommands'
require 'colors'
require 'configuration'
require 'diagnostics'
require 'treesitter'
require 'lsp'
local colors = require 'colors'
colors.init()
local keys = require 'keys'
keys.init()

View file

@ -4,8 +4,39 @@
-- know it can do it. This is required for most modern color themes. Apple's
-- Terminal.app doesn't have True Color support though, so make sure it's
-- off for that.
vim.g.termguicolors = not vim.env.TERM_PROGRAM == "Apple_Terminal"
--vim.g.termguicolors = not vim.env.TERM_PROGRAM == "Apple_Terminal"
local function _highlight_trailing_whitespace()
local should_create_highlight_match = true
local group = vim.api.nvim_create_augroup("ListModeTrailingWhitespace", { clear = true })
local callback = function(env)
local list_mode_enabled = vim.api.nvim_get_option_value("list", { })
if list_mode_enabled then
vim.cmd [[ highlight link TrailingWhitespace ErrorMsg ]]
if should_create_highlight_match then
vim.cmd [[ match TrailingWhitespace /\v\s+$/ ]]
should_create_highlight_match = false
end
else
vim.cmd [[ highlight clear TrailingWhitespace ]]
end
end
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "list",
group = group,
callback = callback,
})
vim.api.nvim_create_autocmd("BufWinEnter", {
group = group,
callback = callback,
})
end
local function _create_autocmds()
local colorscheme_group = vim.api.nvim_create_augroup("ColorSchemeOverrides", { clear = true })
vim.api.nvim_create_autocmd("ColorScheme", {
@ -58,5 +89,15 @@ vim.api.nvim_create_autocmd("ColorScheme", {
end,
group = colorscheme_group,
})
end
local function init_colors()
_highlight_trailing_whitespace()
_create_autocmds()
vim.cmd [[ color zaibatsu ]]
end
return {
init = init_colors
}