We have a pretty complex setup here, with multiple, dependent, managed packages. The namespaces for those packages is versioned (e.g. CoreV1, CoreV2).
All of our Apex code in packages that depend on Core refer to just "Core" (e.g.
During our deploy we substitute Core => CoreVx for whatever the appropriate version is. Substitution rules handle this brilliantly.
However, completion does not reflect the substitution rules. So when I'm typing
obj.Core__Field <hit tab> I get
obj.CoreV2__Field__c. I want
obj.Core__Field__c to be the replacement text.
Please let me know if I can provide additional details.