Align Command search with Fuse fuzzy matching #314
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#314
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Icon picker and several Command popovers use bits-ui
computeCommandScoreor substring filtering instead of the Fuse-basedfuzzySearch()used by the command palette.Problem
icon-list.svelteranks icons withcomputeCommandScoreand debouncedoninput, diverging from command palette behavior.computeCommandScore.plugin-basesautocomplete uses.includes()substring matching.Goal
Unify Command search on Fuse via shared helpers in
@lapis-notes/ui.Scope
Command.Input / Command.Root only. Do not migrate non-Command
computeCommandScorecall sites.Non-goals
Menu filtering, tags view, frontmatter pill editor.
Acceptance Criteria
commandFuzzyFilterhelper exported from@lapis-notes/uiwith unit tests.Command.Rootwrapper defaultsfiltertocommandFuzzyFilter.icon-list.svelteusesfuzzySearchwith bound query.autocomplete.svelteusesfuzzySearchinstead of.includes().Implementation Notes
Add
command-fuzzy-filter.ts, default filter incommand.svelte, refactor icon-list and bases autocomplete.Suggested Files or Specs To Inspect
packages/ui/src/lib/fuzzy-search.tspackages/ui/src/lib/components/ui/command/command.sveltepackages/api/src/lib/components/icon/icon-list.sveltepackages/plugins/plugin-bases/src/bases-view/components/autocomplete.svelteValidation Commands
pnpm --filter @lapis-notes/ui check:allpnpm --filter @lapis-notes/api check:allturbo run check:all --filter=@lapis-notes/plugin-bases...Related Issues
Follow-up Tasks
Implementation Summary
Added commandFuzzyFilter/createCommandFuzzyFilter in @lapis-notes/ui with unit tests and defaulted Command.Root filter to Fuse. Refactored icon-list to bind query and batch-filter with fuzzySearch; migrated plugin-bases autocomplete from substring includes to fuzzySearch. Validated with ui vitest, api svelte-check, and spec:lint.