首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Eclipse迁移到工作区中的开放实现/引用的替代方案

从Eclipse迁移到工作区中的开放实现/引用的替代方案
EN

Stack Overflow用户
提问于 2016-09-16 03:24:15
回答 2查看 2.3K关注 0票数 0

我将只在Javascript中开始开发,因为Eclipse的js支持不如java的支持,所以我做了一些搜索,发现VSCode现在似乎处于javascript开发的前沿。所以,我从Eclipse迁移到VSCode,从来没有那么喜欢Eclipse,但我只是在使用这两个命令/热键时更加有效。因此,我将给那些不熟悉的人举个例子:

foo.js

代码语言:javascript
运行
复制
var foo = {
     doSomething: function(){
        console.log("hello world");
    }
}

module.exports = foo;

bar.js

代码语言:javascript
运行
复制
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要困难得多,因为类/类型结构和其他所有东西。但以下是我的问题:

  • 有没有办法在VSCode中实现我本机想要的呢?也许有个命令我忽略了?
  • 是否有任何扩展可以实现这一点。我记得一段时间前尝试过一个扩展,但是它并没有很好地工作(它过去经常失败/崩溃)。也许有了TypeScript / ES6,扩展工作就更容易了?
  • 如果没有确切的选择,你如何处理这些问题?如何快速转到另一个文件上的函数声明?请记住,所需的文件也可以是node_modules上的库。如何找到调用某个函数的所有位置,请记住,在您的项目中可能有许多其他函数具有相同的名称和许多文件。

我很感谢你的帮助,谢谢你的阅读。

EN

回答 2

Stack Overflow用户

发布于 2016-09-16 13:44:03

要跨文件启用这种支持,您需要创建一个jsconfig.json文件。

引用文档

JavaScript IntelliSense将立即处理单个文件。如果您使用Node.js使用的Node.js模块系统,那么您将立即在模块上获得IntelliSense。 还有两个步骤可以跨工作区和外部模块中的所有文件配置IntelliSense: 创建一个jsconfig.json文件来指示一个JavaScript项目。为外部库安装TypeScript定义文件(类型)。

这些文档提供了关于不同设置的更多信息,但是在项目根目录中创建一个名为jsconfig.json的文件就足够开始了:

代码语言:javascript
运行
复制
{
    "compilerOptions": {
        "target": "ES6"
    },
    "exclude": [
        "node_modules"
    ]
}

如果您想了解vscode正在使用的javascript语言服务的工作方式,可以查看萨尔萨辣酱文档。

票数 1
EN

Stack Overflow用户

发布于 2016-09-24 19:12:39

有没有办法在VSCode中实现我本机想要的呢?也许有个命令我忽略了?

是的,我想你想要的是内置的。尝试按F12 (转到定义),将光标放在您要查找的符号上.有时,我不得不按两次import编辑的TypeScript,但它对我很好。

这似乎不需要一个jsconfig.json,它只适用于您在空目录中提到的两个文件。不过,我可以想象,配置文件中的不正确设置可能会阻止它。

如果需要使用Preferences: Open快捷方式命令,可以更改键绑定。不幸的是,我认为还没有一个键绑定库来模仿其他IDE。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39523312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档