Closed lambdalisue closed 9 months ago
[!WARNING]
Rate Limit Exceeded
@lambdalisue has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 13 minutes and 14 seconds before requesting another review.
How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.Commits
Files that changed from the base of the PR and between 5a16d821639a400ae8cd7d79bbe2468962a42525 and d68e8fcade5a727e431586f53d66a2e739dba91c.
The project underwent a significant update, primarily focused on improving compatibility with newer versions of Deno, Vim, and Neovim. Changes include updating version constants, refining testing workflows, and enhancing error handling. Autoload functions and internal logic were refactored for efficiency, and the plugin system was restructured to better manage communication and task execution. All updates aim to streamline the development process and ensure smoother integration with the updated software versions.
File Path | Change Summary |
---|---|
.github/workflows/test.yml , README.md , deno.jsonc , plugin/denops.vim |
Updated Deno, Vim, and Neovim versions; modified test commands and coverage reporting; removed outdated versioning section. |
autoload/denops.vim , autoload/health/denops.vim |
Replaced request function with notify; updated version constants; removed autocmd event-related functionality. |
autoload/denops/_internal/... |
Added new logging and test functions; updated echo function behavior. |
denops/@denops-private/... (various files) |
Refactored class structures, methods, and imports; introduced new types and tests; updated error handling; added worker-based communication logic. |
denops/@denops-private/testdata/... , denops/@denops-private/testutil/... |
Added test data and utilities for plugin validation and testing configurations. |
"In the burrow of code, we dig and we tweak, 🐇
With a hop and a jump, new versions we seek.
Through the fields of syntax, our updates now roam,
Bringing bits and bytes back to their digital home."
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Attention: 42 lines
in your changes are missing coverage. Please review.
Comparison is base (
16d4bbc
) 96.47% compared to head (d68e8fc
) 89.66%.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I have tested it in Windows environment. The initialization time is longer than previous version. It tooks time 5000ms+.
It works for me.
For Users
Changes seen by users using the Denops plugin are mostly limited to updates of supported versions, with no significant changes other than that.
Updates of Supported Versions
In Denops v6, the following versions are supported:
Approximately 50% Reduction in Memory Usage
The memory usage of the Denops server has been reduced by approximately half compared to v5. For more details, refer to Memory (RSS) usage difference between denops v5 and v6.
Improved Communication Speed with Vim/Neovim
Communication speed with Vim/Neovim has been enhanced, especially noticeable in Neovim, where under specific conditions, you can issue about 1.8 times more commands compared to v5. For detailed results, see Communication performance difference between denops v5 and v6.
Reduced Impact on Initialization Time Due to the Number of Plugins
The issue of increasing initialization time as the number of plugins dependent on Denops grows has been resolved. However, users who do not utilize a large number (around 100) of Denops plugins will not perceive a significant difference. For detailed results, refer to Startup performance difference between v5 and v6.
For Denops Plugin Developers
Plugins are no longer isolated by Worker threads
Until v5, each plugin was processed in a dedicated Worker thread, but from v6 onwards, processing is done in a Worker thread per Vim/Neovim instance. Be cautious if your code uses global variables, and consider using the
denops.context (Record<PropertyKey, unknown>)
provided for each plugin instead.Results of
console.log()
always returned to Vim/NeovimUntil v5, the output location of
console.log()
differed between Local server and Shared server, but now it is always displayed on the Vim/Neovim side in both cases.For Denops Developers
denops_core
has been separated into a separate repositoryThe type information of Denops, which was managed in the
denops/@denops
directory until v5, has been separated into a separate repository called deno-denops-core. With this change, the version update policy of "no releases other than updates under thedenops/@denops
directory" has been abolished, and version updates will follow semantic versioning.Lower-level test utilities included, separate from
denops_test
A module named
denops/@denops-private/testutil
has been added to directly test theHost
used in the internal implementation of Denops. As a result, the parts that were tested usingdenops_test
have been removed, and testing is now self-contained indenops.vim
.Summary by CodeRabbit
New Features
Enhancements
Bug Fixes
Refactor
Documentation
Chores
Tests