chore(readme): add json2go
This commit is contained in:
parent
bc3ce2fdf4
commit
71e3383146
5 changed files with 60 additions and 0 deletions
28
README.md
28
README.md
|
|
@ -62,6 +62,7 @@ Requirements:
|
||||||
- [impl](https://github.com/josharian/impl)
|
- [impl](https://github.com/josharian/impl)
|
||||||
- [gotests](https://github.com/cweill/gotests)
|
- [gotests](https://github.com/cweill/gotests)
|
||||||
- [iferr](https://github.com/koron/iferr)
|
- [iferr](https://github.com/koron/iferr)
|
||||||
|
- [json2go](https://github.com/olexsmir/json2go)
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
@ -185,6 +186,24 @@ Requirements:
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>
|
||||||
|
<b>Convert json to Go types</b>
|
||||||
|
</summary>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
`:GoJson` opens a temporary buffer where you can paste or write JSON.
|
||||||
|
Saving the buffer (`:w` or `:wq`) automatically closes it and inserts the generated Go struct into the original buffer at the cursor position.
|
||||||
|
|
||||||
|
Alternatively, you can pass JSON directly as an argument:
|
||||||
|
```vim
|
||||||
|
:GoJson {"name": "Alice", "age": 30}
|
||||||
|
```
|
||||||
|
|
||||||
|
Additionally, `gopher.json2go` provides lua api, see `:h gopher.nvim-json2go` for details.
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>
|
<summary>
|
||||||
|
|
@ -253,6 +272,15 @@ require("gopher").setup {
|
||||||
-- e.g: `message = 'fmt.Errorf("failed to %w", err)'`
|
-- e.g: `message = 'fmt.Errorf("failed to %w", err)'`
|
||||||
message = nil,
|
message = nil,
|
||||||
},
|
},
|
||||||
|
json2go = {
|
||||||
|
-- command used to open interactive input.
|
||||||
|
-- e.g: `split`, `botright split`, `tabnew`
|
||||||
|
interactive_cmd = "vsplit",
|
||||||
|
|
||||||
|
-- name of autogenerated struct
|
||||||
|
-- e.g: "MySuperCoolName"
|
||||||
|
type_name = nil,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,3 +18,6 @@ tasks:
|
||||||
|
|
||||||
impl:
|
impl:
|
||||||
cmd: vhs impl.tape
|
cmd: vhs impl.tape
|
||||||
|
|
||||||
|
json2go:
|
||||||
|
cmd: vhs json2go.tape
|
||||||
|
|
|
||||||
BIN
vhs/json2go.gif
Normal file
BIN
vhs/json2go.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 282 KiB |
2
vhs/json2go.go
Normal file
2
vhs/json2go.go
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
package main
|
||||||
|
|
||||||
27
vhs/json2go.tape
Normal file
27
vhs/json2go.tape
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
Output json2go.gif
|
||||||
|
Require nvim
|
||||||
|
Require json2go
|
||||||
|
|
||||||
|
Set FontFamily "JetBrains Mono"
|
||||||
|
Set Height 800
|
||||||
|
Set Width 1500
|
||||||
|
Set Padding 20
|
||||||
|
Set Shell "bash"
|
||||||
|
Set Theme "tokyonight"
|
||||||
|
Set TypingSpeed 250ms
|
||||||
|
|
||||||
|
Hide Type@0ms "./nvim.sh json2go.go" Enter Show
|
||||||
|
|
||||||
|
Type@0ms "G"
|
||||||
|
Type@400ms ":GoJson" Sleep 500ms Enter
|
||||||
|
Type@70ms "{" Enter
|
||||||
|
Type@70ms `"json": true,` Enter
|
||||||
|
Type@70ms `"user": {"name": "Name", "of_age": true}` Enter
|
||||||
|
Type@70ms "}"
|
||||||
|
Escape Type@500ms ":wq" Enter
|
||||||
|
Sleep 1s
|
||||||
|
|
||||||
|
Type@25ms "G2o" Escape
|
||||||
|
Type@120ms `:GoJson {"json": true}` Enter
|
||||||
|
|
||||||
|
Sleep 5s
|
||||||
Loading…
Add table
Add a link
Reference in a new issue