diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/conform/formatters/trim_newlines.lua | 15 | ||||
-rw-r--r-- | lua/conform/formatters/trim_whitespace.lua | 16 |
2 files changed, 21 insertions, 10 deletions
diff --git a/lua/conform/formatters/trim_newlines.lua b/lua/conform/formatters/trim_newlines.lua index 434f35b..de7987a 100644 --- a/lua/conform/formatters/trim_newlines.lua +++ b/lua/conform/formatters/trim_newlines.lua @@ -1,9 +1,14 @@ ----@type conform.FileFormatterConfig +---@type conform.FileLuaFormatterConfig return { meta = { - url = "https://www.gnu.org/software/gawk/manual/gawk.html", - description = "Trim new lines with awk.", + url = "https://github.com/stevearc/conform.nvim/blob/master/lua/conform/formatters/trim_whitespace.lua", + description = "Trim empty lines at the end of the file.", }, - command = "awk", - args = { 'NF{print s $0; s=""; next} {s=s ORS}' }, + format = function(self, ctx, lines, callback) + local out_lines = vim.deepcopy(lines) + while #out_lines > 0 and out_lines[#out_lines] == "" do + table.remove(out_lines) + end + callback(nil, out_lines) + end, } diff --git a/lua/conform/formatters/trim_whitespace.lua b/lua/conform/formatters/trim_whitespace.lua index 3bbd89e..4d6d664 100644 --- a/lua/conform/formatters/trim_whitespace.lua +++ b/lua/conform/formatters/trim_whitespace.lua @@ -1,9 +1,15 @@ ----@type conform.FileFormatterConfig +---@type conform.FileLuaFormatterConfig return { meta = { - url = "https://www.gnu.org/software/gawk/manual/gawk.html", - description = "Trim whitespaces with awk.", + url = "https://github.com/stevearc/conform.nvim/blob/master/lua/conform/formatters/trim_whitespace.lua", + description = "Trim trailing whitespace.", }, - command = "awk", - args = { '{ sub(/[ \t]+$/, ""); print }' }, + format = function(self, ctx, lines, callback) + local out_lines = {} + for _, line in ipairs(lines) do + local trimmed = line:gsub("%s+$", "") + table.insert(out_lines, trimmed) + end + callback(nil, out_lines) + end, } |