Skip to content

lsfusion_find_elements: finish a module-name search promptly and report unknown IDEA module names in scope #99

Open

Description

@CrushBy

Description

Two behaviours of names searches on a large multi-module project (plugin 1.0.315, a workspace of about 30 IDEA modules):

  1. A search supplied with a module's full name — names = "<ModuleName>", elementTypes = "module" — without scope returns the module, but only after the whole time budget is spent: the answer carries "meta": "too long - timeout hit" even with timeoutSeconds = 30, and the same with scope = "project". With scope = "<the IDEA module that holds the file>" the answer is immediate. The time such a search takes should not depend on the size of the project.

  2. scope is project, project and libraries or a comma-separated list of IDEA module names. A name that is not an IDEA module (for example, an lsFusion module name or a Maven artifact id) is skipped silently; when none of the listed names is an IDEA module, the search scope is empty and the tool answers {"items": []}, which cannot be told apart from "the element does not exist".

names = "MyModule", elementTypes = "module", minSymbols = 0, timeoutSeconds = 30
-> 1 item, "meta": "too long - timeout hit"             (about 27 s)
names = "MyModule", elementTypes = "module", scope = "my-idea-module", minSymbols = 0
-> 1 item                                                (immediate)
names = "MyModule", elementTypes = "module", scope = "no-such-idea-module", minSymbols = 0
-> {"items": []}

Reason

An agent that looks a module up by name reads the timeout flag as "the search is incomplete" and falls back to a text search, and reads the empty answer under a wrong scope as "no such module". The report that prompted this issue did exactly that and located the module by file instead.

Fix

  • A search supplied with a full module name completes promptly and still returns every match the name filter allows (the filter matches by occurrence of the name, so other modules whose names contain it are returned as well).
  • A scope whose IDEA module names match nothing is rejected with an error naming the unknown names, or the unresolved names are reported in meta.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions