跳转到定义不适用于在 window 上定义为 属性 的对象
Jump to definition does not work on objects defined as property on window
在我在 emacs 中设置的 tern 中,当我的光标位于 obj.foo()
的 foo
下方(在最后一行)时,当我执行 M-.
时,这段代码工作正常:
var obj = {};
obj.foo = function() {
return true;
};
obj.foo();
但是当我在下面做同样的事情时,它说 "No definition found."
window.obj = {};
obj.foo = function() {
return true;
};
obj.foo();
我尝试将 obj
的每个引用都设为 window.obj
。似乎没有帮助。我错过了什么吗?
我假设您是说将光标放在 window.obj
上并点击 M-.
是行不通的。要找到相应的定义,M-.
需要在 TAGS
文件中对其进行索引。如果还没有完成那你就倒霉了:它不会被识别。
参见 Emacs 手册,节点 Tags
and its children, particularly node Create Tags Table
。
看来你的问题是你没有使用 browser JSON 定义 window[=20 的类型定义=] 对象。你的 .tern-project 应该是这样的:
{"libs":["ecma5","browser"]}
我在没有 浏览器 的情况下试过,我遇到了和你一样的问题。如果我声明 browser,效果很好。
在我在 emacs 中设置的 tern 中,当我的光标位于 obj.foo()
的 foo
下方(在最后一行)时,当我执行 M-.
时,这段代码工作正常:
var obj = {};
obj.foo = function() {
return true;
};
obj.foo();
但是当我在下面做同样的事情时,它说 "No definition found."
window.obj = {};
obj.foo = function() {
return true;
};
obj.foo();
我尝试将 obj
的每个引用都设为 window.obj
。似乎没有帮助。我错过了什么吗?
我假设您是说将光标放在 window.obj
上并点击 M-.
是行不通的。要找到相应的定义,M-.
需要在 TAGS
文件中对其进行索引。如果还没有完成那你就倒霉了:它不会被识别。
参见 Emacs 手册,节点 Tags
and its children, particularly node Create Tags Table
。
看来你的问题是你没有使用 browser JSON 定义 window[=20 的类型定义=] 对象。你的 .tern-project 应该是这样的:
{"libs":["ecma5","browser"]}
我在没有 浏览器 的情况下试过,我遇到了和你一样的问题。如果我声明 browser,效果很好。