Releases: kkoomen/vim-doge
Releases · kkoomen/vim-doge
v4.3.2
v4.3.1
v4.3.0
v4.2.0
v4.1.2
v4.1.1
v4.1.0
v4.0.0
The Rust rewrite that had to happen
In v4 a new custom vim-doge-helper has been created, completely developed in Rust from scratch, being a replacement for the old NodeJS version that vim-doge had in v3.
TL;DR: v4 now generates docblocks ~96% less time, 26% faster and has 87% smaller bundle sizes compared to v3.
This new version resolves the following problems that existed prior to v4:
- Failing Windows builds due to node-gyp build problems
- Templating limitations: v3 contained basic templating functionality that was custom written, as opposed to v4 that uses Tera
- Limited platform builds: v3 required due to NodeJS that binaries were created on the target machine itself that it was eventually used for. Windows builds had to be created on a windows runner and support for Apple Silicon had to be build on arm64 machines, but v4 can use the power of cross-compilation of Rust (through LLVM) to make builds for multiple architectures.
- Tree-sitter language limitations: v3 required parsers to be published on NPM, but these packages aren't maintained that well. If there was no package of a certain parser on NPM, then we simply can't implement the language. With v4 we can use the tree-sitter GitHub source to be included in Cargo.toml that can link everything properly from C to Rust and we don't need any third-party package manager anymore in-between vim-doge and tree-sitter.
- Vimscript logic: v3 contained docblock generating logic that should actually not be managed in vim. For example, It used plain regex to do some additional pre/post-processing rather than using tree-sitter. In v4 all the logic has been moved to the vim-doge-helper and all the vimscript code is only a bridge between the user and the vim-doge-helper.
- Speed: v4 allows docblocks to be generated with the blink of an eye, as opposed to v3 where users had to wait a bit, and even worse, the first docblock genereration you did in v3 after you've downloaded the vim-doge binary, did require NodeJS to start the runtime which lead to a total wait time of ±0.4s until the docblock was generated. With v4, docblock are generated in about ±0.015s.
- Bundle size: v3 bundles were ~30MB, whereas v4 bundles are ~4MB (87% smaller)
What's Changed
- Release v3.21.0 by @kkoomen in #567
- chore(deps-dev): bump rimraf from 4.1.2 to 5.0.1 by @dependabot in #570
- chore(deps): bump vm2 from 3.9.17 to 3.9.19 by @dependabot in #569
- chore(deps-dev): bump typescript from 4.9.5 to 5.0.4 by @dependabot in #565
- Only replace \t chars when not followed by "param" by @kkoomen in #579
- chore(deps-dev): bump @typescript-eslint/parser from 5.50.0 to 5.59.9 by @dependabot in #578
- chore(deps-dev): bump release-it from 15.10.2 to 15.11.0 by @dependabot in #577
- chore(deps-dev): bump nodemon from 2.0.20 to 2.0.22 by @dependabot in #571
- Release v3.22.0 by @kkoomen in #580
Full Changelog: v3.21.0...v4.0.0
v3.22.0
What's Changed
- Release v3.21.0 by @kkoomen in #567
- chore(deps-dev): bump rimraf from 4.1.2 to 5.0.1 by @dependabot in #570
- chore(deps): bump vm2 from 3.9.17 to 3.9.19 by @dependabot in #569
- chore(deps-dev): bump typescript from 4.9.5 to 5.0.4 by @dependabot in #565
- Only replace \t chars when not followed by "param" by @kkoomen in #579
- chore(deps-dev): bump @typescript-eslint/parser from 5.50.0 to 5.59.9 by @dependabot in #578
- chore(deps-dev): bump release-it from 15.10.2 to 15.11.0 by @dependabot in #577
- chore(deps-dev): bump nodemon from 2.0.20 to 2.0.22 by @dependabot in #571
Full Changelog: v3.21.0...v3.22.0
v3.21.0
What's Changed
- chore(deps-dev): bump release-it from 15.5.0 to 15.10.2 by @dependabot in #558
- chore(deps-dev): bump eslint from 8.28.0 to 8.39.0 by @dependabot in #560
- Release v3.20.0 by @kkoomen in #561
- chore(deps-dev): bump @typescript-eslint/eslint-plugin from 5.44.0 to 5.59.2 by @dependabot in #562
- chore(deps-dev): bump prettier from 2.8.4 to 2.8.8 by @dependabot in #563
- chore(deps-dev): bump @commitlint/cli from 17.4.2 to 17.6.1 by @dependabot in #559
Full Changelog: v3.20.0...v3.21.0