From be32cdee6c2cca87ea0d3e284861586c79d1e726 Mon Sep 17 00:00:00 2001 From: mjhika <1zzt6ovh@mojica.anonaddy.com> Date: Fri, 9 Feb 2024 22:32:39 -0500 Subject: [PATCH] return the parinfer and update --- lazy-lock.json | 6 +-- lua/custom/plugins/lisp.lua | 97 ++++++++++++++++++++++++++++++++++++- 2 files changed, 98 insertions(+), 5 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 6e993969..5c3df18d 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -19,7 +19,7 @@ "lush.nvim": { "branch": "main", "commit": "2e8d34e748642621d761a65e3c2a198154b914e8" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "0954d7730e749d606ddf8d7ae8846848be435d53" }, "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, - "neodev.nvim": { "branch": "main", "commit": "0ee95ecefc8ea45898a0383364f736e098c8703f" }, + "neodev.nvim": { "branch": "main", "commit": "b49b976cf2c28cd8283e9d74cb10885f6dd9e3d0" }, "nvim-autopairs": { "branch": "master", "commit": "096d0baecc34f6c5d8a6dd25851e9d5ad338209b" }, "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, "nvim-lspconfig": { "branch": "master", "commit": "f12f1b9e877b1e6e2ef7eae1a524d8253af4243d" }, @@ -28,13 +28,13 @@ "nvim-paredit-fennel": { "branch": "master", "commit": "33380e743109c89fae6823cea4b9f81e635dbeff" }, "nvim-paredit-scheme": { "branch": "master", "commit": "3e5838290dd57116457e4b11eb6ba21e83b260a4" }, "nvim-parinfer": { "branch": "master", "commit": "5ca09287ab3f4144f78ff7977fabc27466f71044" }, - "nvim-treesitter": { "branch": "master", "commit": "76700e147bfab7630e6b97f91b32397175e8153f" }, + "nvim-treesitter": { "branch": "master", "commit": "841dde702ce2e58ffc3724808f3dbea2edee57d5" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "dd0b2036c3a27cb6e6486f8bd24188c6ca43af0b" }, "plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, "telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, "vim-fugitive": { "branch": "master", "commit": "fab00f7c0f3a08e860e39c7adeb8fbe849921a98" }, - "vim-go": { "branch": "master", "commit": "18171a41a18dfc59fb0475a00d5c1e9ddb3d22d4" }, + "vim-go": { "branch": "master", "commit": "76cab3355fee04e750f69ccd34787b2570c6de7a" }, "vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, "vim-shot-f": { "branch": "master", "commit": "eea71d2a1038aa87fe175de9150b39dc155e5e7f" }, "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" }, diff --git a/lua/custom/plugins/lisp.lua b/lua/custom/plugins/lisp.lua index e32c6212..8441844c 100644 --- a/lua/custom/plugins/lisp.lua +++ b/lua/custom/plugins/lisp.lua @@ -3,7 +3,7 @@ local lisp_dialects = { "clojure", "fennel", "scheme", "lisp" } return { { "gpanders/nvim-parinfer", - ft = "lisp", + ft = lisp_dialects, init = function() vim.g.parinfer_force_balance = true vim.g.parinfer_comment_chars = ";;" @@ -13,7 +13,100 @@ return { "julienvincent/nvim-paredit", ft = { "clojure", "fennel", "scheme" }, config = function() - require("nvim-paredit").setup() + local paredit = require("nvim-paredit") + paredit.setup({ + use_default_keys = false, + keys = { + ["-"] = { paredit.unwrap.unwrap_form_under_cursor, "Splice sexp" }, + + [">e"] = { paredit.api.drag_element_forwards, "Drag element right" }, + ["f"] = { paredit.api.drag_form_forwards, "Drag form right" }, + ["uf"] = { paredit.api.raise_form, "Raise form" }, + ["ue"] = { paredit.api.raise_element, "Raise element" }, + + ["E"] = { + paredit.api.move_to_next_element_tail, + "Jump to next element tail", + -- by default all keybindings are dot repeatable + repeatable = false, + mode = { "n", "x", "o", "v" }, + }, + ["W"] = { + paredit.api.move_to_next_element_head, + "Jump to next element head", + repeatable = false, + mode = { "n", "x", "o", "v" }, + }, + + ["B"] = { + paredit.api.move_to_prev_element_head, + "Jump to previous element head", + repeatable = false, + mode = { "n", "x", "o", "v" }, + }, + ["gE"] = { + paredit.api.move_to_prev_element_tail, + "Jump to previous element tail", + repeatable = false, + mode = { "n", "x", "o", "v" }, + }, + + ["("] = { + paredit.api.move_to_parent_form_start, + "Jump to parent form's head", + repeatable = false, + mode = { "n", "x", "v" }, + }, + [")"] = { + paredit.api.move_to_parent_form_end, + "Jump to parent form's tail", + repeatable = false, + mode = { "n", "x", "v" }, + }, + + -- These are text object selection keybindings which can used with standard `d, y, c`, `v` + ["af"] = { + paredit.api.select_around_form, + "Around form", + repeatable = false, + mode = { "o", "v" } + }, + ["if"] = { + paredit.api.select_in_form, + "In form", + repeatable = false, + mode = { "o", "v" } + }, + ["aF"] = { + paredit.api.select_around_top_level_form, + "Around top level form", + repeatable = false, + mode = { "o", "v" } + }, + ["iF"] = { + paredit.api.select_in_top_level_form, + "In top level form", + repeatable = false, + mode = { "o", "v" } + }, + ["ae"] = { + paredit.api.select_element, + "Around element", + repeatable = false, + mode = { "o", "v" }, + }, + ["ie"] = { + paredit.api.select_element, + "Element", + repeatable = false, + mode = { "o", "v" }, + }, + } + }) end }, {