Skip to content

Local query matching #13

@forrestbao

Description

@forrestbao

Let's explore a local query matching approach so no cloud-based backend is needed.

  1. Initialization
    a. When the SmartCommand is first installed, scan the local drive for all commands (dot-separated, e.g., python.select.interpreter) and their labels/titles (in English, e.g., "Python: Select Interpreter") of VSCode and all plug-ins.
    b. Embed all commands and their labels/titles using Sentence-BERT. Save into a pickle file. The objects in the pickle file is detailed in Command ranking using both commands and titles #14
    c. Create a file to log the plug-ins and their versions, in a format similar to the requirements.txt file for Python packages. This can help SmartCommand to know whether the command and title embeddings need to updated.
  2. Update or insert the embeddings: Every time when VSCode starts, scan the plug-ins and their versions. If nothing changes, such as no new plug-ins, do nothing. But if any new plug-in is installed or a plug-in has been updated, replace or add the embeddings for the affected plug-ins only. Do NOT reembed commands that remain the same -- this is a waste of time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions