fix(search): resolve hlslens integration with module caching #116
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The hlslens search handler was not working when hlslens was loaded before
nvim-scrollbar due to Lua's module caching mechanism.
Root Cause
require('hlslens.config')which runsthe
init()function and caches the config withbuild_position_cb = nilsearch.setup()callshlslens.setup()with the callback,hlslens stores it in hlslens._config but the cached config module is never updated
init()function only runs once when the module is first required,so subsequent
hlslens.setup()calls don't update the cached configReproduction
With this plugin loading order:
Result: Search marks don't appear on scrollbar
Solution
Directly modify the cached hlslens.config object instead of calling
hlslens.setup().Since Lua tables are passed by reference, modifying the cached config object updates it everywhere.
Note: Alternatively, users can avoid this issue by removing
require('hlslens').setup()from their configuration and letting nvim-scrollbar handle hlslens initialization.Changes
hlslens.setup()callrequire("hlslens.config")build_position_cbdirectly on the config objectBenefits
Environment
#83