我将只在Javascript中开始开发,因为Eclipse的js支持不如java的支持,所以我做了一些搜索,发现VSCode现在似乎处于javascript开发的前沿。所以,我从Eclipse迁移到VSCode,从来没有那么喜欢Eclipse,但我只是在使用这两个命令/热键时更加有效。因此,我将给那些不熟悉的人举个例子:
foo.js
var foo = {
doSomething: function(){
console.log("hello world");
}
}
module.exports = foo;
bar.js
var foo = require('./foo')
foo.doSomething();
假设这是在Eclipse中进行的,并且是Java而不是Javascript:因此,如果我查看bar.js,并且我想知道doSomething()的目的是什么,我会在doSomething上按F3 (开放实现),然后它就会直接在foo.js上实现。
另一个命令--工作区中的引用--正好相反,如果我在foo.js,并且我想知道在什么地方调用doSomething(),我会点击Ctrl+Shift+G,并且在一个小窗口中会显示bar.js上的确切行(以及使用它的任何其他文件)。另外,值得注意的是,这不仅仅是一个简单的搜索,它不会显示任何调用doSomething的文件,而这个文件不是在foo.js中声明的doSomething。
我注意到VSCode中有一个查找所有引用,但它只适用于同一个文件。还有一个Go声明命令,它实际上很有用,但它只适用于同一个文件。如果我在bar.js上,我可以在foo.doSomething()上选择foo,使用Go To声明,它会将我发送到require语句。这在大型文件中很有用,但在一天结束时,我仍然停留在require语句上,并且无法快速导航到它的module.exports。
所以是的,我知道在javascript中实现这些比在java要困难得多,因为类/类型结构和其他所有东西。但以下是我的问题:
我很感谢你的帮助,谢谢你的阅读。
发布于 2016-09-16 05:44:03
要跨文件启用这种支持,您需要创建一个jsconfig.json文件。
引用文档
JavaScript IntelliSense将立即处理单个文件。如果您使用Node.js使用的Node.js模块系统,那么您将立即在模块上获得IntelliSense。 还有两个步骤可以跨工作区和外部模块中的所有文件配置IntelliSense: 创建一个jsconfig.json文件来指示一个JavaScript项目。为外部库安装TypeScript定义文件(类型)。
这些文档提供了关于不同设置的更多信息,但是在项目根目录中创建一个名为jsconfig.json
的文件就足够开始了:
{
"compilerOptions": {
"target": "ES6"
},
"exclude": [
"node_modules"
]
}
如果您想了解vscode正在使用的javascript语言服务的工作方式,可以查看萨尔萨辣酱文档。
发布于 2016-09-24 11:12:39
有没有办法在VSCode中实现我本机想要的呢?也许有个命令我忽略了?
是的,我想你想要的是内置的。尝试按F12 (转到定义),将光标放在您要查找的符号上.有时,我不得不按两次import
编辑的TypeScript,但它对我很好。
这似乎不需要一个jsconfig.json
,它只适用于您在空目录中提到的两个文件。不过,我可以想象,配置文件中的不正确设置可能会阻止它。
如果需要使用Preferences: Open快捷方式命令,可以更改键绑定。不幸的是,我认为还没有一个键绑定库来模仿其他IDE。
https://stackoverflow.com/questions/39523312
复制