- we match on USR, and do a field-by-field merge if both have results
- scoring is post-merge, with both sets of information available (for now, sema priority is used if available, static score for index results)
- limit is applied to the complete result set (previously index ignored limit)
- CompletionItem is only produces for the returned results
- If the user doesn't type a scope, we send the scopeless query to the index for global completion.
This needs tests for the new functionality, but I thought you could take a look
while I work on that. It passes the existing tests, and works in VSCode.