mirror of https://github.com/tiyn/tidy.nvim
commit
2e8256877d
@ -0,0 +1,42 @@
|
|||||||
|
-- MP
|
||||||
|
-- These sources did all the work
|
||||||
|
-- 1. https://vim.fandom.com/wiki/Remove_unwanted_spaces#Automatically_removing_all_trailing_whitespace
|
||||||
|
-- 2. https://stackoverflow.com/questions/7495932/how-can-i-trim-blank-lines-at-the-end-of-file-in-vim
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
|
||||||
|
function M.clear_spaces()
|
||||||
|
|
||||||
|
-- get tuple of cursor position before making changes
|
||||||
|
local pos = vim.api.nvim_win_get_cursor( 0 )
|
||||||
|
|
||||||
|
-- delete all whitespace, see source 1
|
||||||
|
vim.cmd[[:%s/\s\+$//e]]
|
||||||
|
|
||||||
|
-- delete all lines at end of buffer, see source 2
|
||||||
|
vim.cmd[[:silent! 0;/^\%(\n*.\)\@!/,$d]]
|
||||||
|
|
||||||
|
-- get row count after line deletion
|
||||||
|
local end_row = vim.api.nvim_buf_line_count( 0 )
|
||||||
|
|
||||||
|
|
||||||
|
--[[
|
||||||
|
if the row value in the original cursor
|
||||||
|
position tuple is greater than the
|
||||||
|
line count after empty line deletion
|
||||||
|
(meaning that the cursor was inside of
|
||||||
|
the empty lines at the end of the file
|
||||||
|
when they were deleted), set the cursor
|
||||||
|
row to the last line
|
||||||
|
]]
|
||||||
|
|
||||||
|
if pos[1] > end_row then
|
||||||
|
pos[1] = end_row
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_win_set_cursor( 0, pos )
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return M
|
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
augroup Tidy
|
||||||
|
au!
|
||||||
|
au BufWritePre * lua require( "aucmd.functions" ).clear_spaces()
|
||||||
|
augroup END
|
@ -0,0 +1,9 @@
|
|||||||
|
#### Tidy.nvim
|
||||||
|
|
||||||
|
I like to keep my files orderly. Tidy.nvim is a function and autocommand pair that helps me do this by removing
|
||||||
|
all empty lines from the end of the file and trailing whitespace from all lines on every save.
|
||||||
|
|
||||||
|
|
||||||
|
Credits:
|
||||||
|
1. https://vim.fandom.com/wiki/Remove_unwanted_spaces#Automatically_removing_all_trailing_whitespace
|
||||||
|
2. ib. from https://stackoverflow.com/questions/7495932/how-can-i-trim-blank-lines-at-the-end-of-file-in-vim
|
Loading…
Reference in new issue