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)
|
||||
- [gotests](https://github.com/cweill/gotests)
|
||||
- [iferr](https://github.com/koron/iferr)
|
||||
- [json2go](https://github.com/olexsmir/json2go)
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
|
@ -185,6 +186,24 @@ Requirements:
|
|||
```
|
||||
</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>
|
||||
<summary>
|
||||
|
|
@ -253,6 +272,15 @@ require("gopher").setup {
|
|||
-- e.g: `message = 'fmt.Errorf("failed to %w", err)'`
|
||||
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:
|
||||
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