don't format small c macros
This commit is contained in:
parent
b6a5589d99
commit
85b431d6f9
@ -12,7 +12,7 @@ for id, name in ipairs(query.captures) do
|
|||||||
capture_lookup[name] = id
|
capture_lookup[name] = id
|
||||||
end
|
end
|
||||||
|
|
||||||
local function formatMacros()
|
local function format_macros()
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
local winnr = vim.api.nvim_get_current_win()
|
local winnr = vim.api.nvim_get_current_win()
|
||||||
|
|
||||||
@ -25,38 +25,40 @@ local function formatMacros()
|
|||||||
local lines = vim.api.nvim_buf_get_lines(bufnr, start_line, end_line+1, false)
|
local lines = vim.api.nvim_buf_get_lines(bufnr, start_line, end_line+1, false)
|
||||||
local tabstop = tonumber(vim.bo[bufnr].tabstop) or 8
|
local tabstop = tonumber(vim.bo[bufnr].tabstop) or 8
|
||||||
|
|
||||||
for i, line in ipairs(lines) do
|
if #lines > 2 then
|
||||||
lines[i] = line:match("^(.-)%s*[\\]?$")
|
for i, line in ipairs(lines) do
|
||||||
end
|
lines[i] = line:match("^(.-)%s*[\\]?$")
|
||||||
|
|
||||||
local line_length = 0
|
|
||||||
do
|
|
||||||
local textwidth = vim.bo[bufnr].textwidth
|
|
||||||
if textwidth and textwidth ~= "" then
|
|
||||||
line_length = tonumber(textwidth)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if line_length <= 0 then
|
local line_length = 0
|
||||||
local colorcolum = vim.wo[winnr].colorcolumn
|
do
|
||||||
if colorcolum and colorcolum ~= "" then
|
local textwidth = vim.bo[bufnr].textwidth
|
||||||
line_length = tonumber(colorcolum)
|
if textwidth and textwidth ~= "" then
|
||||||
|
line_length = tonumber(textwidth)
|
||||||
|
end
|
||||||
|
|
||||||
|
if line_length <= 0 then
|
||||||
|
local colorcolum = vim.wo[winnr].colorcolumn
|
||||||
|
if colorcolum and colorcolum ~= "" then
|
||||||
|
line_length = tonumber(colorcolum)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if line_length <= 0 then
|
||||||
|
for _, line in ipairs(lines) do
|
||||||
|
line_length = math.max(line_length, #line+2)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if line_length <= 0 then
|
for i = 1, #lines-1 do
|
||||||
for _, line in ipairs(lines) do
|
local line = lines[i]
|
||||||
line_length = math.max(line_length, #line+2)
|
local length = #(line:gsub("\t", (" "):rep(tabstop)))
|
||||||
end
|
lines[i] = line .. (" "):rep(line_length - length-2) .. " \\"
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
for i = 1, #lines-1 do
|
vim.api.nvim_buf_set_lines(bufnr, start_line, end_line+1, false, lines)
|
||||||
local line = lines[i]
|
|
||||||
local length = #(line:gsub("\t", (" "):rep(tabstop)))
|
|
||||||
lines[i] = line .. (" "):rep(line_length - length-2) .. " \\"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.api.nvim_buf_set_lines(bufnr, start_line, end_line+1, false, lines)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -66,7 +68,7 @@ for _, cmd in ipairs{"InsertLeavePre", "BufWritePre"} do
|
|||||||
group = group,
|
group = group,
|
||||||
pattern = {"*.c", "*.h", "*.cpp", "*.hpp", "*.cc"},
|
pattern = {"*.c", "*.h", "*.cpp", "*.hpp", "*.cc"},
|
||||||
callback = function (data)
|
callback = function (data)
|
||||||
formatMacros()
|
format_macros()
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user