Skip to content

Local query matching #13

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions