owenrusk.dev

dotfiles

shell, editor, ssh.

git clone https://owenrusk.dev/dotfiles.git

commit 9d822a1534b8e8a2ea2b3adf2feddfaa3fe70a45
parent 3d91695bea5afd94399994a6cf214c7feb2a5145
author Owen Rusk <owen@papermothgames.com>
date   2025-01-08 14:02:36 -0600
nvim: strip trailing whitespace on save, except markdown
nvim/lua/owen/autocmds.lua+12-0
diff --git a/nvim/lua/owen/autocmds.lua b/nvim/lua/owen/autocmds.lua
index b615f78..4695b3f 100644
--- a/nvim/lua/owen/autocmds.lua
+++ b/nvim/lua/owen/autocmds.lua
@@ -25,6 +25,18 @@ au("FileType", {
   end,
 })
 
+-- trailing whitespace goes on save. not in markdown, where two spaces mean a line break. sadly.
+au("BufWritePre", {
+  callback = function(args)
+    if vim.bo[args.buf].filetype == "markdown" then
+      return
+    end
+    local view = vim.fn.winsaveview()
+    vim.cmd([[keeppatterns %s/\s\+$//e]])
+    vim.fn.winrestview(view)
+  end,
+})
+
 au("TextYankPost", {
   callback = function()
     vim.highlight.on_yank({ timeout = 150 })