summaryrefslogtreecommitdiffstats
path: root/.config/nvim/after/ftplugin/lua.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/after/ftplugin/lua.lua')
-rw-r--r--.config/nvim/after/ftplugin/lua.lua36
1 files changed, 36 insertions, 0 deletions
diff --git a/.config/nvim/after/ftplugin/lua.lua b/.config/nvim/after/ftplugin/lua.lua
new file mode 100644
index 0000000..784915e
--- /dev/null
+++ b/.config/nvim/after/ftplugin/lua.lua
@@ -0,0 +1,36 @@
+local function format()
+ local view = vim.fn.winsaveview()
+ local buf_str = ""
+ for _, v in ipairs(vim.api.nvim_buf_get_lines(0, 0, -1, false)) do
+ buf_str = buf_str .. v .. "\n"
+ end
+ local tempname = vim.fn.tempname()
+ local tempfile = assert(io.open(tempname, "w"), "Could not open temporary file")
+ tempfile:write(buf_str)
+ tempfile:close()
+ local r_check = vim.system({ "stylua", "--check", tempname }):wait()
+ if r_check.code == 0 then
+ return
+ elseif r_check.code ~= 1 then
+ vim.notify("stylua failed (" .. r_check.code .. "):\n" .. r_check.stderr)
+ end
+ local r_format = vim.system({ "stylua", tempname }):wait()
+ if r_format.code ~= 0 then
+ vim.notify("stylua failed (" .. r_format.code .. "):\n" .. r_format.stderr)
+ end
+ local formatted_lines = {}
+ for line in io.lines(tempname) do
+ formatted_lines[#formatted_lines + 1] = line
+ end
+ vim.api.nvim_buf_set_lines(0, 0, -1, false, formatted_lines)
+ vim.fn.winrestview(view)
+end
+
+vim.opt_local.textwidth = 120 -- gw wraps at this value
+vim.opt_local.colorcolumn = "+1" -- Highlight one column after
+vim.opt_local.complete = {
+ "o", -- 'omnifunc'
+}
+
+vim.b.autoformat = true
+vim.b.format_func = format