Skip to content

Commit

Permalink
aQuery
Browse files Browse the repository at this point in the history
  • Loading branch information
grierson committed Aug 13, 2023
1 parent 90c952f commit 8ab1d17
Show file tree
Hide file tree
Showing 12 changed files with 96 additions and 53 deletions.
7 changes: 5 additions & 2 deletions docs/sample.clj
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
(defn foo [x y]
(+ x (+ y 1)))
(+ 1 2 3)
[1 2 3]
'(1 2 3)
#{1 2 3}
{:a 1 :b 2}
6 changes: 5 additions & 1 deletion fnl/formedit/tree.fnl → fnl/formedit/select.fnl
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
(local ts (require :nvim-treesitter.ts_utils))

(local query
"[(list_lit) (quoting_lit) (vec_lit) (set_lit) (anon_fn_lit) (map_lit)] @form")

(local forms {:list_lit true
:vec_lit true
:map_lit true
Expand All @@ -18,7 +21,8 @@
form))

(fn select-form []
(let [form (get-current-form)]
(let [form (get-current-form)
_ (print (form:type))]
(ts.update_selection 0 form)))

{: get-current-form : select-form}
4 changes: 2 additions & 2 deletions fnl/spec/delete_around_spec.fnl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
(local {: describe : it : before_each} (require :plenary.busted))
(local h (require :spec.helper))
(local tree (require :formedit.tree))
(local select (require :formedit.select))

(describe "delete around"
(fn []
(before_each (fn []
(vim.keymap.set :o :af tree.select-form)))
(vim.keymap.set :o :af select.select-form)))
(it :list
(fn []
(h.setup {:content "(1)" :cursor [1 1]})
Expand Down
4 changes: 2 additions & 2 deletions fnl/spec/delete_inside1_spec.fnl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
(local {: describe : it : before_each} (require :plenary.busted))
(local h (require :spec.helper))
(local tree (require :formedit.tree))
(local select (require :formedit.select))

(describe "delete inside"
(fn []
(before_each (fn []
(vim.keymap.set :o :if tree.select-form)))
(vim.keymap.set :o :if select.select-form)))
(it :list
(fn []
(h.setup {:content "(1)" :cursor [1 0]})
Expand Down
4 changes: 2 additions & 2 deletions fnl/spec/delete_inside_spec.fnl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
(local {: describe : it : before_each} (require :plenary.busted))
(local h (require :spec.helper))
(local tree (require :formedit.tree))
(local select (require :formedit.select))

(describe "delete inside"
(fn []
(before_each (fn []
(vim.keymap.set :o :if tree.select-form)))
(vim.keymap.set :o :if select.select-form)))
(it :list
(fn []
(h.setup {:content "(1)" :cursor [1 0]})
Expand Down
38 changes: 19 additions & 19 deletions fnl/spec/tree_spec.fnl
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
(local {: describe : it} (require :plenary.busted))
(local h (require :spec.helper))
(local tree (require :formedit.tree))
(local select (require :formedit.select))
(local assert (require :luassert.assert))

(describe "No form return nil"
(fn []
(it "cursor start of form"
(fn []
(h.setup {:content " " :cursor [1 1]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.falsy actual))))))

(describe :List
Expand All @@ -17,17 +17,17 @@
(it "cursor start of form"
(fn []
(h.setup {:content "(a)" :cursor [1 1]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor within form"
(fn []
(h.setup {:content "(a)" :cursor [1 2]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor end of form"
(fn []
(h.setup {:content "(a)" :cursor [1 3]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type))))))))

(describe :Vector
Expand All @@ -36,17 +36,17 @@
(it "cursor start of form"
(fn []
(h.setup {:content "[a]" :cursor [1 1]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor within form"
(fn []
(h.setup {:content "[a]" :cursor [1 2]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor end of form"
(fn []
(h.setup {:content "[a]" :cursor [1 3]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type))))))))

(describe :Map
Expand All @@ -55,17 +55,17 @@
(it "cursor start of form"
(fn []
(h.setup {:content "{:a 1}" :cursor [1 1]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor within form"
(fn []
(h.setup {:content "{:a 1}" :cursor [1 2]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor end of form"
(fn []
(h.setup {:content "{:a 1}" :cursor [1 6]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type))))))))

(describe :Set
Expand All @@ -74,22 +74,22 @@
(it "cursor on #"
(fn []
(h.setup {:content "#{1}" :cursor [1 1]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor start of form"
(fn []
(h.setup {:content "#{1}" :cursor [1 2]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor within form"
(fn []
(h.setup {:content "#{1}" :cursor [1 3]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor end of form"
(fn []
(h.setup {:content "#{1}" :cursor [1 4]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type))))))))

(describe "Anonymous function"
Expand All @@ -98,20 +98,20 @@
(it "cursor on #"
(fn []
(h.setup {:content "#(1)" :cursor [1 1]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor start of form"
(fn []
(h.setup {:content "#(1)" :cursor [1 2]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor within form"
(fn []
(h.setup {:content "#(1)" :cursor [1 3]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type)))))
(it "cursor end of form"
(fn []
(h.setup {:content "#(1)" :cursor [1 4]})
(let [actual (tree.get-current-form)]
(let [actual (select.get-current-form)]
(assert.equals form-type (actual:type))))))))
27 changes: 27 additions & 0 deletions lua/formedit/select.lua

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

4 changes: 2 additions & 2 deletions lua/spec/delete_around_spec.lua

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

4 changes: 2 additions & 2 deletions lua/spec/delete_inside1_spec.lua

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

4 changes: 2 additions & 2 deletions lua/spec/delete_inside_spec.lua

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

Loading

0 comments on commit 8ab1d17

Please sign in to comment.