Skip to content

Commit

Permalink
Raise element
Browse files Browse the repository at this point in the history
  • Loading branch information
grierson committed Sep 6, 2023
1 parent 7dab75f commit 9eb985b
Show file tree
Hide file tree
Showing 13 changed files with 7,067 additions and 72 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ vim.keymap.set('n', '<localleader>h', formedit.insertion.head, { desc = "Head in
vim.keymap.set('n', '<localleader>H', formedit.insertion.tail, { desc = "Tail insert" })
vim.keymap.set('n', '<localleader>i', formedit.wrap.head, { desc = "Wrap form " })
vim.keymap.set('n', '<localleader>o', formedit.raise.form, { desc = "Raise form" })
vim.keymap.set('n', '<localleader>O', formedit.raise.element, { desc = "Raise element" })
vim.keymap.set('n', '>)', formedit.slurp.forward, { desc = "Slurp forward" })
vim.keymap.set('n', '<(', formedit.slurp.backward, { desc = "Slurp backward" })
vim.keymap.set('n', '>(', formedit.barf.backward, { desc = "Barf backward" })
Expand Down
5 changes: 4 additions & 1 deletion fnl/formedit/find.fnl
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
(let [count (form:named_child_count)]
(form:child count)))

;; Find element
(fn element [] (ts.get_node_at_cursor))

;; Find node
(fn form []
(let [node (ts.get_node_at_cursor)]
Expand All @@ -39,4 +42,4 @@
(let [node (ts.get_node_at_cursor)]
(find-root-form node)))

{: form : root : offset : first : last}
{: form : root : offset : first : last : element}
9 changes: 8 additions & 1 deletion fnl/formedit/raise.fnl
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,11 @@
[start-row start-col end-row end-col] [(parent:range)]]
(vim.api.nvim_buf_set_text 0 start-row start-col end-row end-col [text])))

{: form}
(fn element []
(let [element (find.element)
parent (element:parent)
text (ts.get_node_text element 0)
[start-row start-col end-row end-col] [(parent:range)]]
(vim.api.nvim_buf_set_text 0 start-row start-col end-row end-col [text])))

{: form : element}
22 changes: 17 additions & 5 deletions fnl/spec/raise_spec.fnl
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,27 @@
(local h (require :spec.helper))
(local raise (require :formedit.raise))

(local keymap :<localleader>o)
(local localleader ",")
(local raise-form-keymap :<localleader>o)
(local raise-element-keymap :<localleader>O)


(describe :raise
(fn []
(before_each (fn []
(set vim.g.maplocalleader keymap)
(vim.keymap.set :n keymap raise.form)))
(set vim.g.maplocalleader localleader)
(vim.keymap.set :n raise-form-keymap raise.form)
(vim.keymap.set :n raise-element-keymap
raise.element)))
(it :form
(fn []
(h.setup {:content "(1 (2))" :cursor [1 4]})
(h.feedkeys keymap)
(h.expect {:content "(2)" :cursor [1 2]})))))
(h.feedkeys raise-form-keymap)
(h.expect {:content "(2)" :cursor [1 2]})))
(it :element
(fn []
(h.setup {:content "(+ 1 (+ 2 3))" :cursor [1 8]})
(h.feedkeys raise-element-keymap)
(h.expect {:content "(+ 1 2)" :cursor [1 6]})))))

(print "End")
5 changes: 4 additions & 1 deletion lua/formedit/find.lua

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion lua/formedit/nfnl/compile.lua

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions lua/formedit/nfnl/config.lua

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

118 changes: 67 additions & 51 deletions lua/formedit/nfnl/core.lua

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 12 additions & 1 deletion lua/formedit/raise.lua

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 16 additions & 6 deletions lua/spec/raise_spec.lua

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions script/bootstrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

script/fennel.bb --compile
Loading

0 comments on commit 9eb985b

Please sign in to comment.