同じオブジェクトに対して複数の名前バインディングを使用している場所で、 ropemacsを使用すると、残念な完了と定義への移行の結果が得られません。
以下の不自然で文体に挑戦したコードの例を考えると、なぜロープが補完や定義に進む結果を提示しないのか知っている人はいますか?
プロジェクト コード サンプル:
from Package import BigObjectWithLotsOfMethods
class GLOBAL:
variable = None
big = BigObjectWithLotsOfMethods()
GLOBAL.variable = big
問題の Emacs の動作:
私が入るとき:
big.
と入力M-/すると、期待どおりに候補メソッド名のリストが表示されます。ロープ万歳!
一方、私が入力すると:
GLOBAL.variable.
たとえば、M-/Emacs ミニバッファーで次のように入力します。
Completions for GLOBAL.variable.: [No Match]
さらに、コードを入力しても期待どおりの定義に移動せず、Emacs ミニバッファーに次のように出力されるfire()
方法を想像してください。BigObjectWithLotsOfMethods
C-c gGLOBAL.variable.fire()
fire()
Cannot find the definition!
GLOBAL.variable
インスタンスにバインドされている別の名前を表すだけなので、BigObjectWithLotsOfMethods
私は驚いたことに、ロープが知っていることから定義を推測するような知的なことをしていませんbig
。
質問:
複数の名前のバインディングが存在する場合、コードのイントロスペクションに対するサポートのレベルが、ロープの下では機能しないのはなぜですか? たとえば、これに対処するロープ プロジェクトの構成に何か基本的なものが欠けていますか?
感謝して受け取った助け。