add help file, and docs (#59)
* idk how good this idea is * this could be working but i still cant figure out how to run it * ignore tags that mini.doc gens, but why? * chore(taskfile): force exiting after tests because i got infinit ci * chore(ci): add more nvim versions to run on * chore: update taskfile * feat: add docs generator * docs: its only begining * refactor: update docgen script * docs: write some more * docs(config): update * docs: update readme * language * hope it would work * what about that? * maybe this would work? * update md * upd * WHY DOESNT IT WORKING * idk by but 0.9.3 just fails the ci, so i deleted it from suite * again update, why does markdown not work in embeded html * maybe it can help? * upd * again update * kinda fix * fix: formatting * again some updating * some readme updating * fix, this shouldnt be in repo * i finnaly undertood how to fix this fking skill issue * fix(struct_tags): typo * refactor(docs): change the order in generated file * docs: install deps * refactor(scripts): rename doc-gen script * docs(impl): write docs * docs(dap): add doc * stylua . * docs(struct_tags): add doc * docs(gotests): add docs * docs(iferr): add docs * docs(comment): add doc * update CONTRIBUTING.md * docs(README): talk about `develop` branch * docs: update README.md
This commit is contained in:
parent
28e1f5689f
commit
10cec9c6b0
16 changed files with 657 additions and 142 deletions
|
|
@ -1,3 +1,31 @@
|
|||
---@toc_entry Auto implementation of interface methods
|
||||
---@tag gopher.nvim-impl
|
||||
---@text impl is utilizing the `impl` tool to generate method stubs for interfaces.
|
||||
---@usage
|
||||
--- 1. put your coursor on the struct on which you want implement the interface
|
||||
--- and run `:GoImpl io.Reader`
|
||||
--- which will automatically choose the reciver for the methods and
|
||||
--- implement the `io.Reader` interface
|
||||
--- 2. same as previous but with custom receiver, so put your coursor on the struct
|
||||
--- run `:GoImpl w io.Writer`
|
||||
--- where `w` is the receiver and `io.Writer` is the interface
|
||||
--- 3. specift receiver, struct, and interface
|
||||
--- there's no need to put your coursor on the struct if you specify all arguments
|
||||
--- `:GoImpl r RequestReader io.Reader`
|
||||
--- where `r` is the receiver, `RequestReader` is the struct and `io.Reader` is the interface
|
||||
---
|
||||
--- simple example:
|
||||
--- >go
|
||||
--- type BytesReader struct{}
|
||||
--- // ^ put your cursor here
|
||||
--- // run `:GoImpl b io.Reader`
|
||||
---
|
||||
--- // this is what you will get
|
||||
--- func (b *BytesReader) Read(p []byte) (n int, err error) {
|
||||
--- panic("not implemented") // TODO: Implement
|
||||
--- }
|
||||
--- <
|
||||
|
||||
local c = require("gopher.config").commands
|
||||
local r = require "gopher._utils.runner"
|
||||
local ts_utils = require "gopher._utils.ts"
|
||||
|
|
@ -5,6 +33,7 @@ local u = require "gopher._utils"
|
|||
local impl = {}
|
||||
|
||||
---@return string
|
||||
---@private
|
||||
local function get_struct()
|
||||
local ns = ts_utils.get_struct_node_at_pos(unpack(vim.api.nvim_win_get_cursor(0)))
|
||||
if ns == nil then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue