(set vim.bo.formatprg "fnlfmt /dev/stdin") ;; https://github.com/rktjmp/hotpot.nvim/discussions/93#discussioncomment-4362209 (vim.cmd "iabbrev lambda v:lua.iab_lambda()") ;; fnlfmt: skip (fn _G.iab_lambda [] (let [line (vim.fn.getline :.) col (vim.fn.col :.) ;; a b c \lambda ;; ^ check here (may not exist) ;; but dont do anything if that under runs the first character offset (- col (length :lambda) 1)] (match [(< 0 offset) (string.sub line offset offset)] ;; replace term codes so the expr actually runs backspace, not inserts the string [true :\] (vim.api.nvim_replace_termcodes :λ true false true) [false _] :lambda))) ; (let [{: nvim_create_autocmd : nvim_command} vim.api] ; (nvim_create_autocmd :BufWritePre ; {:callback #(nvim_command "normal migggqG`i")}))