fix up conjure and paredit stuff

This commit is contained in:
Adam Jeniski
2026-04-23 15:43:45 -04:00
parent 79a1471e12
commit 646a6dca78
2 changed files with 65 additions and 11 deletions
+58 -4
View File
@@ -21,8 +21,30 @@
{repo "Olical/conjure"
:ft ["fennel" "clojure" "lisp" "scheme" "racket" "lua"]
:config (fn []
;; Enable HUD floating window
(set vim.g.conjure#log#hud#enabled true))}
;; HUD
(set vim.g.conjure#log#hud#enabled true)
(set vim.g.conjure#log#hud#width 0.42)
(set vim.g.conjure#log#hud#height 0.30)
;; Auto-start lein repl when no .nrepl-port found
(set vim.g.conjure#client#clojure#nrepl#connection#auto_repl#enabled true)
(set vim.g.conjure#client#clojure#nrepl#connection#auto_repl#cmd "lein repl :headless")
;; Show result inline as virtual text
(set vim.g.conjure#eval#result_register "*")
(set vim.g.conjure#eval#inline#enabled true)
(set vim.g.conjure#eval#inline#prefix "=> ")
;; Open log as vertical split
(set vim.g.conjure#log#split#enabled true)
(set vim.g.conjure#log#split#direction "vertical")
;; Clojure-specific: strip ANSI from nREPL output
(set vim.g.conjure#client#clojure#nrepl#eval#raw_out true)
;; Keymaps
(let [km vim.keymap.set]
(km :n "<localleader>lv"
(fn [] (vim.cmd "ConjureLogVSplit"))
{:desc "Conjure log vertical split"})
(km :n "<localleader>lt"
(fn [] (vim.cmd "ConjureLogTab"))
{:desc "Conjure log tab"})))}
;; nvim-parinfer - Automatic parenthesis balancing
;; See fnl/config/parinfer.fnl for default-enabled flag and toggle logic
@@ -46,7 +68,38 @@
;; Sync sexp auto-insert with parinfer default
(let [par (require :config.parinfer)]
(set vim.g.sexp_enable_insert_mode_mappings
(if par.default-enabled 0 1))))}
(if par.default-enabled 0 1))))
:config (fn []
;; vim-sexp-mappings-for-regular-people's setup is VimEnter-gated.
;; Under lazy.nvim :ft loading, VimEnter has already fired by the
;; time the plugin sources, so its FileType autocmd never registers
;; and the slurp/barf/swap mappings never attach. Register our own
;; FileType autocmd that maps the <Plug>s directly.
(let [fts (or vim.g.sexp_filetypes "clojure,scheme,lisp,timl,fennel,racket")
attach (fn []
(let [m (fn [lhs rhs]
(vim.keymap.set :n lhs rhs
{:buffer 0 :silent true :remap true}))]
(m "<I" "<Plug>(sexp_insert_at_list_head)")
(m ">I" "<Plug>(sexp_insert_at_list_tail)")
(m "<f" "<Plug>(sexp_swap_list_backward)")
(m ">f" "<Plug>(sexp_swap_list_forward)")
(m "<e" "<Plug>(sexp_swap_element_backward)")
(m ">e" "<Plug>(sexp_swap_element_forward)")
(m ">(" "<Plug>(sexp_emit_head_element)")
(m "<)" "<Plug>(sexp_emit_tail_element)")
(m "<(" "<Plug>(sexp_capture_prev_element)")
(m ">)" "<Plug>(sexp_capture_next_element)")
(m "dsf" "<Plug>(sexp_splice_list)")))]
(vim.api.nvim_create_augroup "sexp_regular_people_fix" {:clear true})
(vim.api.nvim_create_autocmd "FileType"
{:group "sexp_regular_people_fix"
:pattern (vim.split fts ",")
:callback attach})
;; Attach to current buffer (the FileType that triggered lazy load
;; already fired before this autocmd was registered).
(when (vim.tbl_contains (vim.split fts ",") vim.bo.filetype)
(attach))))}
;; Mason - Package manager for LSP servers, DAP servers, linters, formatters
{repo "williamboman/mason.nvim"
@@ -96,4 +149,5 @@
{lhs "<leader>b" :group "buffer"}
{lhs "<leader>r" :group "refactor"}
{lhs "<leader>c" :group "code"}
{lhs "<leader>t" :group "toggle"}]))}]
{lhs "<leader>t" :group "toggle"}
{lhs "<leader>l" :group "log"}]))}]