No description
  • Lua 45.8%
  • Go 37.7%
  • Vim Script 16.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2021-10-18 14:10:26 +03:00
lua add return without spaces 2021-09-20 11:46:26 +03:00
pictures fix after 2021-09-15 16:53:21 +03:00
plugin remain folding only for simplest if err != nil 2021-10-18 14:10:19 +03:00
LICENSE Initial commit 2021-09-11 11:33:49 +00:00
README.md Update README.md 2021-09-29 06:47:49 +00:00
test.go remain folding only for simplest if err != nil 2021-10-18 14:10:19 +03:00

goerr-nvim

The plugin folds Go's if err != nil and shows other lines like in Goland, it greatly reduces code length and doesn't affect readability.

The plugin converts popular words that is used in handling errors to just Greek letters.
Also it folds errors on buffer enter, and remove dots in folding.

Before:

before

After:

after

Installation

  1. Install it with your favorite plugin manager
  2. Make sure you set syntax on and set foldmethod=syntax, since this plugin closes folds based on syntax.
    • Or you can use any other foldmethod that creates folds on error handling, e.g. treesitter's one;
    • If you know the better way of creating and closing folds, make me know in an issue or PR :)
  3. The plugin uses softtabstop setting under the cover. If the indentation level isn't right, you can adjust the setting accordingly or contribute to the plugin development :)
  4. If you don't use folds much and just want this plugin to work, you can set foldnestmax and foldlevel settings to high numbers (e.g. 10 and 9 respectively).
    • It enables folding, but all your folds would be open by default (except if err != nil ones)

Features

  • Auto close if err != nil blocks of code, show inner lines;
  • Remove distracted dots via 'fillchars';
  • Truncate long inner lines;
  • Change return to 1 Unicode symbol (arrows);
  • Change log and logger to lambda;
  • Change can't, cannot, can not to just c';
  • Change fmt and errors to phi and epsilon respectively.

TODO

  • Add parameters for this stuff;
  • Handle long if's.