Skip to content

Commit

Permalink
Updates samples and README
Browse files Browse the repository at this point in the history
  • Loading branch information
grierson committed Aug 18, 2023
1 parent 2dfda74 commit d229159
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 23 deletions.
44 changes: 37 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ Paredit in Fennel for Clojure using Treesitter

- Form text objects
- Lists (s-exp, quoted list), vector, set are all under one text object
- so instead of `di(` `di[` `di{` just `dif` (or any other text object command)
- `f` for current form. `F` for root form
so instead of `di(` `di[` `di{` just `dif` (or any other text object command)
`f` for current form. `F` for root form
- Slurp (Forward + Backwards)
- Bring in element/form into your form
- Barf (Forward + Backwards)
Expand All @@ -17,14 +17,42 @@ Paredit in Fennel for Clojure using Treesitter
- Wrap
- Add form around current form
- Insertion
- Move cursor to begining/end for form in insert mode
- Move cursor to begining/end of form in insert mode

## Dev Getting started
## Install

For lazy package manager

```lua
"grierson/formedit"
```

## Example keymap

Based of `tpope/vim-sexp-mappings-for-regular-people`

```lua
local formedit = require("formedit")
vim.keymap.set('o', 'af', formedit.select.form, { desc = "Outer form" })
vim.keymap.set('o', 'aF', formedit.select.root, { desc = "Outer root form" })
vim.keymap.set('o', 'if', formedit.select.inner, { desc = "Inner form" })
vim.keymap.set('o', 'iF', formedit.select["inner-root"], { desc = "Inner root form" })
vim.keymap.set('n', '<localleader>h', formedit.insertion.head, { desc = "Head insert" })
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', '>)', 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" })
vim.keymap.set('n', '<)', formedit.barf.forward, { desc = "Barf forward" })
```

## Developer Getting started

```bash
./scripts/nfnl # To download nfnl
just test # Run tests
just watch {featuer} # Run watch tests for feature
./scripts/nfnl # Download nfnl
just test # Run tests
just watch {featuer} # Run test in watch mode for feature
```

## Unlicensed
Expand All @@ -43,3 +71,5 @@ snippet.
[nfnl]: https://github.com/Olical/nfnl
[unlicense]: http://unlicense.org/
[plenary]: https://github.com/nvim-lua/plenary.nvim
[guns/vim-sexp]: https://github.com/guns/vim-sexp
[tpope/vim-sexp-mappings-for-regular-people]: https://github.com/tpope/vim-sexp-mappings-for-regular-people
30 changes: 14 additions & 16 deletions docs/sample.clj
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
; TODO: Broken
; slurp forward
; cxt: cursor within 1st form
; key: >)
; expected: ((+ 1 2 3))
((+ 1 2) 3)

; slurp backward
; cxt: cursor within 1st form
; key: <(
; expected: (+ (1 + 2 3))
(+ 1 (+ 2 3))

; barf forward
; cxt: cursor within 1st form
; key: <)
; expected: (+ 1 (+ 2) 3)
(+ 1 (+ 2 3))

; TODO: Broken
; barf backwards
; cxt: cursor within 1st form
; key: >(
Expand All @@ -18,18 +28,6 @@
; expected: (| (+ 2 3)) *insert mode*
(+ 2 3)

; slurp forward
; cxt: cursor within 1st form
; key: >)
; expected: ((+ 1 2 3))
((+ 1 2) 3)

; slurp backward
; cxt: cursor within 1st form
; key: <(
; expected: (+ (1 + 2 3))
(+ 1 (+ 2 3))

; raise form
; cxt: cursor within 1st form
; key: <localleader>o
Expand All @@ -55,10 +53,10 @@
(+ 2 (+ 3 4))

; Text object root outer
; cxt: cursor within second form
; cxt: cursor within first form
; key: daF
; expected: _
(+ 2 3)
(+ 1 (+ 2 3))

; Insert head
; cxt: cursor within
Expand Down

0 comments on commit d229159

Please sign in to comment.