Skip to content

Commit

Permalink
Simplifiy selection
Browse files Browse the repository at this point in the history
  • Loading branch information
grierson committed Aug 12, 2023
1 parent 4777c68 commit efba490
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 26 deletions.
25 changes: 15 additions & 10 deletions fnl/formedit/selection.fnl
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
(local tree (require :formedit.tree))

(fn delete-around-form []
(fn get-around-form []
(let [form (tree.get-current-form)]
[(form:range)]))

(fn get-inner-form []
(let [form (tree.get-current-form)
offset (if (or (= :set_lit (form:type)) (= :anon_fn_lit (form:type)))
2
1)
[start-row start-col end-row end-col] [(form:range)]]
[start-row (+ start-col offset) end-row (- end-col 1)]))

(fn delete-around-form []
(let [[start-row start-col end-row end-col] (get-around-form)]
(vim.api.nvim_buf_set_text 0 start-row start-col end-row end-col {})))

(fn delete-inner-form []
(let [form (tree.get-current-form)
[start-row start-col end-row end-col] [(form:range)]
buffer 0
offset (if (or (= :set_lit (form:type)) (= :anon_fn_lit (form:type)))
2
1)]
(vim.api.nvim_buf_set_text buffer start-row (+ start-col offset) end-row
(- end-col 1) {})))
(let [[start-row start-col end-row end-col] (get-inner-form)]
(vim.api.nvim_buf_set_text 0 start-row start-col end-row end-col {})))

{: delete-around-form : delete-inner-form}
{: get-around-form : get-inner-form : delete-around-form : delete-inner-form}
42 changes: 26 additions & 16 deletions lua/formedit/selection.lua

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

0 comments on commit efba490

Please sign in to comment.