1
0
Fork 0
dotfiles/home/config/nvim/nifoc/formatting.fnl

37 lines
1.1 KiB
Text
Raw Normal View History

(let [mod {}
b vim.b
api vim.api
2023-07-19 14:48:38 +02:00
set-bufvar vim.api.nvim_buf_set_var]
(fn mod.setup []
2023-07-19 14:48:38 +02:00
(let [usercmd vim.api.nvim_create_user_command]
(usercmd :FormatDisableBuffer mod.disable-for-buffer
{:desc "Disable Formatting for the current buffer"})
(usercmd :FormatEnableBuffer mod.enable-for-buffer
2023-07-19 14:48:38 +02:00
{:desc "Enable Formatting for the current buffer"})))
2023-07-19 14:48:38 +02:00
(fn notify [msg]
(vim.notify msg vim.log.levels.INFO {:title :Formatter}))
2023-07-13 12:02:14 +02:00
2023-07-19 14:48:38 +02:00
(fn has-formatter-config? [ft]
(let [cfg (require :formatter.config)
fts (cfg.get :filetype)]
(not= (. fts ft) nil)))
2023-05-01 23:09:15 +02:00
(fn mod.enable-for-buffer []
(set-bufvar 0 :nifoc_formatter_disabled 0))
(fn mod.disable-for-buffer []
(set-bufvar 0 :nifoc_formatter_disabled 1))
2022-05-31 15:46:32 +02:00
(fn mod.active? []
(let [ft vim.bo.filetype]
(if (= b.nifoc_formatter_disabled 1) false
2023-07-19 14:48:38 +02:00
(has-formatter-config? ft))))
2022-05-31 15:46:32 +02:00
(fn mod.maybe-enable-lsp [client bufnr]
2022-05-22 23:05:38 +02:00
(when (client.supports_method :textDocument/rangeFormatting)
2023-07-19 14:48:38 +02:00
(api.nvim_buf_set_option bufnr :formatexpr "v:lua.vim.lsp.formatexpr()")))
mod)