Start some cleanup on contextual Paredit

This commit is contained in:
2022-10-11 08:21:39 -05:00
parent 00f9835648
commit 7aee69c6cc

View File

@@ -8,26 +8,28 @@
languagetree vim.treesitter.languagetree
}})
(defn list-member? [xs x]
(a.some #(= x $1) (a.vals xs)))
(defn bool->int [bool]
(if bool 1 0))
(defn language-at-cursor []
(let [parser (ts-parsers.get_parser)
current-node (ts-utils.get_node_at_cursor)
range (if current-node
[(current-node:range)]
[])
lang (if (not (a.empty? range))
[(current-node:range)])
lang (if range
(languagetree.language_for_range parser range))]
(if lang (lang:lang))))
(if lang
(lang:lang))))
(defn parser-language []
(let [parser (ts-parsers.get_parser)]
(when parser
(parser:lang))))
(comment
(language-at-cursor)
)
(def paredit-langs
(def- paredit-langs
[
:clojure
:fennel
@@ -41,38 +43,34 @@
:shen
])
(def paredit-host-langs
(def- paredit-host-langs
[
:org
:markdown
:asciidoc
])
(defn paredit-host-lang? [lang]
(a.some #(= lang $1) (a.vals paredit-host-langs)))
(defn- host-lang-in? [langs]
(list-member? langs (parser-language)))
(defn paredit-lang? [lang]
(a.some #(= lang $1) (a.vals paredit-langs)))
(list-member? paredit-langs lang))
(defn TreeSitterLangParedit []
(when (paredit-host-lang? (parser-language))
(let [buff-nr (nvim.buf.nr)
cursor-lang (language-at-cursor)
;buf-paredit-status (a.get-in. {} (nvim.buf.nr))
paredit-enabled (if (paredit-lang? cursor-lang) 1 0)]
(set nvim.g.paredit_mode paredit-enabled)
(nvim.fn.PareditInitBuffer)
))
;
; ; lua print(require('nvim-treesitter.parsers').get_parser():language_for_range({ require('nvim-treesitter.ts_utils').get_node_at_cursor():range() }):lang())
)
;(TreeSitterLangParedit)
(when (host-lang-in? paredit-host-langs)
(when-let [cursor-lang (language-at-cursor)]
(->> cursor-lang
(paredit-lang?)
(bool->int)
(set nvim.g.paredit_mode))
(nvim.fn.PareditInitBuffer))))
; (nvim.del_augroup_by_name "BabeliteParedit")
; (nvim.get_autocmds {:group "BabeliteParedit"})
(let [group (nvim.create_augroup "BabeliteParedit" {:clear true})]
(nvim.create_autocmd ["CursorHold" "CursorMoved"]
{:group group
;:pattern ["*.org" "*.md"]
:callback TreeSitterLangParedit}))
; (nvim.get_autocmds {:group "BabeliteParedit"})