josharian/impl

impl generates method stubs for implementing an interface.

1,108

stars

39

commits

Go

primary language

Dec 10, 2025

updated

README

impl generates method stubs for implementing an interface.

go install github.com/josharian/impl@latest

Sample usage:

$ impl 'f *File' io.ReadWriteCloser
func (f *File) Read(p []byte) (n int, err error) {
	panic("not implemented")
}

func (f *File) Write(p []byte) (n int, err error) {
	panic("not implemented")
}

func (f *File) Close() error {
	panic("not implemented")
}

# You can also provide a full name by specifying the package path.
# This helps in cases where the interface can't be guessed
# just from the package name and interface name.
$ impl 's *Source' golang.org/x/oauth2.TokenSource
func (s *Source) Token() (*oauth2.Token, error) {
    panic("not implemented")
}

You can use impl from Vim with vim-go or vim-go-impl

Contributors

josharian

19 commits

korylprince

2 commits

tttoad

2 commits

dmitshur

2 commits

josharian/impl

impl generates method stubs for implementing an interface.

1,108

stars

39

commits

Go

primary language

Dec 10, 2025

updated

README

impl generates method stubs for implementing an interface.

go install github.com/josharian/impl@latest

Sample usage:

$ impl 'f *File' io.ReadWriteCloser
func (f *File) Read(p []byte) (n int, err error) {
	panic("not implemented")
}

func (f *File) Write(p []byte) (n int, err error) {
	panic("not implemented")
}

func (f *File) Close() error {
	panic("not implemented")
}

# You can also provide a full name by specifying the package path.
# This helps in cases where the interface can't be guessed
# just from the package name and interface name.
$ impl 's *Source' golang.org/x/oauth2.TokenSource
func (s *Source) Token() (*oauth2.Token, error) {
    panic("not implemented")
}

You can use impl from Vim with vim-go or vim-go-impl

Contributors

josharian

19 commits

korylprince

2 commits

tttoad

2 commits

dmitshur

2 commits

Languages

Go

100.0%