philc / philc/vimium

Enhance Find Mode Performance and Responsiveness

Open
#4,546 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
27k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Problem Statement:

When using find mode (/) on large web pages, searching is slow to the point of unusable.
Reproducible via https://nix-community.github.io/home-manager/options.xhtml.

Planned Improvements:
  • Delay / debounce FindMode.findInPlace() to reduce the frequency of searches during typing.
  • Implement a caching mechanism for text nodes, potentially using SimpleCache from ./lib/utils.js.
  • Offload text searching to a Web Worker or run asynchronously, possibly utilizing AsyncDataFetcher from ./lib/utils.js.
Expected Benefits:
  • Improved responsiveness during rapid typing in find mode.
  • Faster search performance, especially on large web pages.
  • Reduced strain on system resources during find operations.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing FindMode.findInPlace() and the in-review PR #4547 for the debounce work. Then inspect SimpleCache and AsyncDataFetcher in ./lib/utils.js, and reproduce the slowdown on the linked Home Manager options page. Done means find mode remains responsive on large pages and the planned search improvements are implemented and verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.