fb5efe917a
detectTrigger split an `@folder:apps/desk` token into one opaque query, so every consumer downstream had to re-parse the prefix — or, more often, treat it as characters the user was expected to maintain by hand. Split it into `scope` + `value` at the source, behind a known-kinds list so a handle like @teknium1: or a host:port stays ordinary text, and add openDirectiveScope() for callers that need to know the caret is sitting in an empty scope.