Extract the receiver variable from immediately before ->word or ?->word
at the cursor’s exact column position. Uses the column rather than
str::find() so multiple method calls on the same line are handled
correctly.
Indexed variant: uses pre-computed SymbolMaps for the cross-file
declaration lookup (path 4/5), eliminating repeated AST walks on stable
files. All other paths (named-arg hover, mir-member hover, static-prop
hover) still use other_docs since they require full AST traversal.
Build a hover for a static method call found by class short name + method name
in the workspace index. Used when the primary mir path cannot resolve a cross-file
static call (e.g. Str::camel(…) where Str is only known through a use-import).