Je reçois un peu décevant achèvement et go-to-définition résultats avec ropemacs dans des endroits où j'utiliser plusieurs nom-bindings pour le même objet. Compte tenu de mon exemple de code inventé et contesté ci-dessous, est-ce que quelqu'un sait pourquoi corde ne présenterait pas des complétions ou des résultats de définition?Une limitation assez ringardes des ropemacs rencontrés avec plusieurs liaisons de nom
exemple de code du projet:
from Package import BigObjectWithLotsOfMethods
class GLOBAL:
variable = None
big = BigObjectWithLotsOfMethods()
GLOBAL.variable = big
comportement Emacs en question:
Quand je rentre:
big.
puis tapez M-/, je reçois un liste des noms de méthodes candidates comme prévu. Vive la corde!
Pourtant, d'autre part quand je rentre:
GLOBAL.variable.
par exemple, puis tapez M-/ je reçois ce qui suit dans Emacs minibuffer:
Completions for GLOBAL.variable.: [No Match]
En outre, s'il vous plaît Imaginez fire()
était une méthode de BigObjectWithLotsOfMethods
puis en tapant Ccg sur le code GLOBAL.variable.fire()
ne me prend pas à la définition de fire()
comme prévu, mais plutôt juste produit les éléments suivants dans le Emacs minibuffer:
Cannot find the definition!
Depuis GLOBAL.variable
représente simplement un autre nom de liaison à l'instance BigObjectWithLotsOfMethods
Je suis surpris que la corde ne fait pas quelque chose intelligent comme inférer la définition de ce qu'il sait sur big
.
La question:
Pourquoi un tel niveau de soutien apparemment trivial pour l'introspection de code en présence de plusieurs noms de liaison ne fonctionne pas dans la corde? Ai-je manqué quelque chose de fondamental dans ma configuration de projet de corde qui aborde ceci par exemple?
Toute aide reçue avec gratitude.