gopher.nvim/CONTRIBUTING.md
Oleksandr Smirnov 76e817b5e1
sync develop with main (#119)
* chore: remove unused rules from nvim selene setup

* test: add test for config

* chore: update tasks, run tests on all recent versions

* refactor(test): make helper test function more ergonomic

In my opinion, requiring user to access tests via `T["module_name"]`
was too fragile and typos prone.

* fix(config): typo annotations

* chore(ci): install go bins via gopher.nvim itself

* feat(struct_tags): add range support (#117)

* feat(struct_tags): add range support

* refactor: use `start`, and `end_` naming for ranges

* fix(testutils): validate provided cursor position

* chore: update CONTRIBUTING.md

* chore: add demos (#118)

* chore: add dataset for demos

* chore(demos): add demos

* chore: update CONTRIBUTING

* this copefully will fix comments gif

* chore: add note about lazy loading

* chore(readme): at this point there is no code from go.nvim or iferr

* chore(readme): update the structure

* chore(readme): change wording of some things
2025-08-30 16:48:00 +03:00

1.5 KiB

Contributing to gopher.nvim

Thank you for taking the time to submit some code to gopher.nvim. It means a lot!

Task running

In this codebase for running tasks is used Taskfile. You can install it with:

go install github.com/go-task/task/v3/cmd/task@latest

Formatting and linting

Code is formatted by stylua and linted using selene. You can install these with:

sudo pacman -S selene stylua
# or whatever is your package manager

For formatting use this following commands, or setup your editor to integrate with selene/stylua:

task format
task lint

Documentation

Here we're using mini.doc for generating vimhelp files based on LuaCats annotations in comments.

For demo gifs in readme we're using vhs. All files related to demos live in /vhs dir.

You can generate docs with:

task docgen       # generates vimhelp
task vhs:generate # generates demo gifs

Commit messages

We use Conventional Commits, please follow it.

Testing

For testing this plugins uses mini.test. All tests live in /spec dir.

You can run tests with:

task test