问题标签 [eclipse-jdt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
392 浏览

eclipse - 如何找到 ITextViewer 内容的项目?

我正在尝试为 Eclipse 插件实现 HyperlinkDetector,而回调方法正在给我一个 ITextViewer 来使用。

如何获取查看者的 IDocument 的项目、IPath 或 IFile?
显然,IDocument 的概念是只允许访问内容而不管来源如何。我能想到的就是检查工作台中的活动编辑器部分......

由于它是我正在处理的 Java 代码,因此如果有帮助,实际类型是 JavaSourceViewer。

0 投票
3 回答
733 浏览

java - 我可以将 eclipse JDT/AST 用于其他编程语言吗?

我可以将 AST / JDT 用于其他语言吗?例如,为使用 AST 技术的 C# 编写我自己的解析器?

0 投票
2 回答
493 浏览

java - 我可以使用 Eclipse JDT 仅在内存中创建源文件的新“工作副本”吗?

我正在使用 Eclipse JDT 构建 Java 重构平台,用于在选择并保存之前探索内存中的不同重构。我可以创建源文件的工作副本集合,在内存中编辑它们,并使用 JDT 框架将更改提交到磁盘。

但是,我还想在内存中生成新的“工作副本”源文件作为重构的一部分,并且只有在我提交工作副本时才创建相应的真实源文件。我已经看到各种暗示这是可能的,例如 http://www.jarvana.com/jarvana/view/org/eclipse/jdt/doc/isv/3.3.0-v20070613/isv-3.3.0-v20070613.jar !/guide/jdt_api_manip.htm说“请注意,编译单元不需要存在于 Java 模型中才能创建工作副本”。

到目前为止,我只能创建一个新的真实文件,即

这不是我想要的。有谁知道如何创建一个新的“工作副本”源文件,直到我提交它才会出现在我的文件系统中?或者任何其他机制来实现同样的事情?

0 投票
3 回答
2964 浏览

eclipse - 如何在 Eclipse 中为“打开声明”(快捷键 F3)定义自定义操作

如何在插件中为“打开声明”(又名 F3)注册额外的处理程序/操作/命令?

我想在 Java 代码中对字符串文字使用F3来导航到声明资源包键的文件。我已经准备好完成这项工作的上下文菜单操作。所缺少的只是一种将其绑定到用户习惯的密钥的方法。

完整的带注释的扩展点列表的额外功劳。我已经厌倦了不得不花半天时间来找到我必须用于某个功能的扩展点。我所说的“带注释”的意思不仅仅是

0 投票
3 回答
1713 浏览

java - 使用 Eclipse 抽象语法树的运行时错误

我正在尝试在非插件环境中使用 AST 解析器。代码编译,但我得到以下运行时错误:

org.eclipse.jdt.core 的 org.eclipse.jdt.core.dom.ASTParser.(ASTParser.java:189) 的线程“main”java.lang.NoClassDefFoundError 中的异常:org/eclipse/core/resources/IResource。 dom.ASTParser.newParser(ASTParser.java: 118)

这是我正在运行的代码:

有谁知道为什么会这样?

提前致谢,

雪莉

0 投票
2 回答
773 浏览

java - 从 Eclipse 的 CompilationUnit 生成字节码

不是在做一个 Eclipse 插件项目;但是,我使用生成 org.eclipse.jdt.core.dom.CompilationUnit 实例的外部库。有没有办法从中生成 Java 字节码?

一些搜索显示,CompilationUnit 通常是通过为 Eclipse 项目注册一个自定义构建器,然后让 eclipse 调用它来构建的……但我找不到任何方法来利用它来构建独立的应用程序。

0 投票
1 回答
244 浏览

eclipse-plugin - 奇怪的 JavaCore IType 缓存问题

我正在开发一个插件,该插件采用工作空间中实现某些接口(IDomain)的所有枚举解析代码(使用 AST)对枚举进行一些修改并将其标记为使用注释(@IDomainInfo)处理。

例如,它需要这样的东西:

并生成如下内容:

@IDomainInfo 背后的想法是插件不再需要处理带注释的枚举。

基本上,我完成这项任务的方法是使用 JavaSearch API 进行搜索,以找到所有实现 IDomain 的枚举(简单任务),结果我得到一个 IJavaElements 列表(实际上是 IType 的实例)。然后我调用一个方法,该方法遍历结果列表并创建所有未使用 @IDomainInfo 注释的 IType 实例的新列表,然后处理结果列表: 对于每个未注释的 IType 做一些工作,使用 @ 注释 IType IDomainInfo 注释(使用 AST),然后将结果保存回文件(使用 IFile,所以我可以在不刷新的情况下看到更改,事实上,如果我在编辑器中打开枚举,我会立即看到它刷新 :-)

一切正常,但如果我打开一个@IDomainInfo 带注释的枚举(仅用于测试)然后删除@IDomainInfo,保存文件(我确定)然后调用完成我之前描述的所有工作的操作,当我到达从未注释的 IType 中过滤带注释的 IType 的部分时,代码是这样的:

好吧,结果是对于我刚刚保存的文件,IType 检测到我刚刚删除的注释,就好像它仍然存在一样。如果我关闭并重新打开 Eclipse 一切正常。

现在,我刚刚检查并三次检查了我的代码,所以我确定我不会保留未编辑的旧 IType 的陈旧副本仍然带有注释版本(我所有的 IType 每次都来自新的 java 搜索调用我运行动作)。

所以问题是,我可能做错了什么?我的意思是,我刚刚多次阅读 JavaCore API 以检查我是否可能使用错了,或者我是否有一些概念上的缺陷,但我真的不知道,这就像eclipse 是否会缓存 IType 而忽略我的更改'刚刚在编辑器中制作:-/

如果有人有想法,我将不胜感激:-)

0 投票
2 回答
1494 浏览

eclipse - 在 Eclipse 中,如何以编程方式在类路径条目上设置 JavaDoc URL?

我有一个 Eclipse 插件,除其他外,它可以创建一个项目并为其提供几个类路径条目。这本身就可以正常工作。

这些 jar 文件中没有包含源代码,但是有一个可用于 Javadoc 的 URL。我想以编程方式为插件创建的这些类路径条目进行设置。这就是我正在做的事情:

我不知道如何在 claspath 条目上设置 JavaDoc URL 位置。这可以在 Eclipse UI 中完成 - 例如,如果您右键单击项目,转到 Properties... -> Java Build Path,然后展开其中一个 JAR 条目并编辑“Javadoc Location”,您可以指定一个网址。如何从插件中执行此操作?

0 投票
3 回答
1703 浏览

eclipse - 没有 Eclipse 的 JDT?

前段时间我写了一个 Eclipse 插件,它利用 JDT 来做一些解析。现在我正在考虑制作这个应用程序的命令行版本。自然,我希望重用解析代码,所以我需要让 JDT 在 Eclipse 之外工作。有什么办法可以做到这一点(也许构建一些包装器等)?JDT 库是否有任何端口提供相同的 API/功能但独立于 Eclipse 工作?

任何帮助将不胜感激。谢谢。

0 投票
5 回答
26553 浏览

java - 如何从 Ant 构建文件中设置 Eclipse 构建路径和类路径?

有很多关于 Ant 和 Eclipse 的讨论,但以前没有回答似乎对我有帮助。

事情是这样的:我正在尝试构建一个 Java 程序,该程序可以从命令行使用 Ant 成功编译。(为了进一步混淆问题,我试图编译的程序是 Ant 本身。)

我真正想做的是将这个项目引入 Eclipse 并让它在 Eclipse 中编译,以便正确解析类型绑定和变量绑定(来自 Eclipse JDT 的命名法)。我需要这个,因为我需要对构建在 Eclipse JDT 之上的代码进行静态分析。我将 Java 项目引入 Eclipse 以便 Eclipse 构建它并解决所有绑定的正常方法是将源目录导入 Java 项目,然后告诉它使用 src/main/ 目录作为“源目录” 。”

不幸的是,使用 Ant 这样做会导致构建失败并出现大量编译错误。在我看来,Ant 构建文件正在正确设置类路径和构建路径(可能通过排除某些源文件),而 Eclipse 没有此信息。

有没有办法获取嵌入在 Ant 构建文件中的类路径和构建路径信息,并将该信息提供给 Eclipse 以放入其 .project 和 .classpath 文件中?我已经尝试从现有的构建文件(文件菜单中的一个选项)创建一个新项目,但这没有帮助。该项目仍然有相同的编译错误。

谢谢, 内尔斯