(更好的方法)使用 Eclipse 和 XText 获取项目中的文件

2024-05-13

我正在编写一个 XText 编辑器,并进行一些语义突出显示。我正在解析的部分语言引用了文件,这些文件应该存在于项目中。我想根据这些文件是否位于正确的位置来突出显示。目前,我有一个非常丑陋的解决方案,但我确信有更好的方法:

public void provideHighlightingFor( XtextResource resource, IHighlightedPositionAcceptor acceptor ) {
...
String resStr = resource.getURI().toString();
String projName = resStr.replaceAll( "^.*resource/", "" ).replaceAll( "/.*", "" );
IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot();
IFile file = workspace.getFile( new Path( projName + "/" + value ) );
ok = file != null && file.exists();

注意:“value”是我在解析时遇到的字符串,而不是当前文件。我想知道 {workspace}/{project}/{value} 是否存在。

必须有更好的方法来根据当前文件获取项目名称/位置;我将其作为 XText 问题,因为我希望,如果可能的话,避免使用当前选择的编辑器,并基于当前资源(作为 XText 资源呈现)进行基础选择。

注意:根据下面的答案,我最终使用的代码是:

String platformString = resource.getURI().toPlatformString(true);
IFile myFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));
IProject proj = myFile.getProject();
IFile linkedFile = proj.getFile( value );

你可以使用org.eclipse.emf.common.util.URI.toPlatformString(boolean)然后ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));

就像是

String platformString = resource.getURI().toPlatformString(true);
IFile myFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(更好的方法)使用 Eclipse 和 XText 获取项目中的文件 的相关文章

  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 当路径的点超出视野时,Android Canvas 不会绘制路径

    我在绘制路径时遇到了 Android Canvas 的一些问题 我的情况是 我有一个相对布局工作 如地图视图 不使用 google api 或类似的东西 我必须在该视图上绘制一条路径 canvas drawPath polyPath bor
  • Base36 编码字符串?

    我一直在网上查找 但找不到解决此问题的方法 在 Python Ruby 或 Java 中 如何对以下字符串进行 Base 36 编码 nOrG9Eh0uyeilM8Nnu5pTywj3935kW 5 Ruby 以 36 为基数 s unpa
  • 如何使用 JAVA 代码以编程方式捕获线程转储?

    我想通过 java 代码生成线程转储 我尝试使用 ThreadMXBean 为此 但我没有以正确的格式获得线程转储 因为我们正在使用jstack命令 请任何人提供一些帮助 他们是否有其他方式获取线程转储 使用任何其他 API 我想要的线程转
  • (Java) App Engine 中的静态文件无法访问

    The 示例文档 http code google com appengine docs java gettingstarted staticfiles html表示您只需将文件放在 war 或子目录 中 并且应该可以从主机访问它们 只要它
  • 将SQL数据引入jquery availabletag

    我正在尝试制作自动完成文本框 但如何将 SQL 数据包含到 jquery 可用标记并循环它 我无法根据以下代码执行该功能 任何帮助 将不胜感激 谢谢 这是我的预期输出 预期结果演示 http jsfiddle net VvETA 71 jq
  • Reactive Spring 不支持 HttpServletRequest 作为 REST 端点中的参数?

    我创建了一个 RestController 如下所示 RestController public class GreetingController RequestMapping value greetings method RequestM
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 如何通过 Android 按钮单击运行单独的应用程序

    我尝试在 Android 应用程序中添加两个按钮 以从单独的两个应用程序订单系统和库存系统中选择一个应用程序 如图所示 我已将这两个应用程序实现为两个单独的 Android 项目 当我尝试运行此应用程序时 它会出现直到正确选择窗口 但是当按
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • 使用 Java https 上传到 Imgur v3 错误

    我目前正在尝试使用他们当前的 API v3 上传到 imgur 但是我不断收到错误 错误 javax net ssl SSLException 证书中的主机名不匹配 api imgur com imgur com OR imgur com
  • 使用 JFreeChart 为两个系列设置不同的 y 轴

    我正在使用 JFreeChart 使用折线图绘制两个数据系列 XYSeries 复杂的因素是 其中一个数据系列的 y 值通常远高于第二个数据系列的 y 值 假设第一个系列的 y 值约为数百万数量级 而第二个数据系列的 y 值约为数百万数量级

随机推荐

  • Microsoft 报表查看器对象

    我正在 Microsoft Visual studio 2013 Express 上为 Windows 桌面开发一个 C Windows 窗体应用程序 我还使用 SQL Server 2012 Express 以及包括报告服务在内的高级功能
  • 使用 XML 时引用未声明的实体异常

    我正在尝试设置 xmldoc 的 innerxml 但出现异常 Reference to undeclaredEntity XmlDocument xmldoc new XmlDocument string text Hello I am
  • 具有依赖项的自定义 MSBuild 任务

    我编写了一个使用第三方程序集的 MSBuild 任务 当我在项目中使用该任务时 MSBuild 抱怨它无法加载第三方程序集 毫不奇怪 我应该将第三方程序集放在哪里 以便 MSBuild 可以使用它们 我尝试向它们添加项目引用但没有成功 我不
  • Kubernetes 通过基于时间的触发器扩展 Pod

    我有一台在 Kubernetes 上运行的服务器来处理每小时的处理作业 考虑使用服务来公开 pod 并使用 外部 cron 作业来访问负载均衡器 以便 kubernetes 可以根据需要自动缩放以处理更高的负载 然而在实现中 如果 cron
  • 我测量运行时间的方法有缺陷吗?

    抱歉 这篇文章很长 但我只是在分析这个问题时解释一下我的思路 问题在最后 我了解测量代码运行时间的原理 它运行多次以获得平均运行时间 以考虑每次运行的差异 并获得更好地利用缓存的时间 为了测量某人的跑步时间 我想出了this https s
  • count 和 groupby 在一个查询中一起使用

    以下查询正在获取页面上的一些产品信息 这很好 但我也想以文本形式显示它出现的产品编号 但是 我使用了groupby但我也想用count on pro id SELECT FROM cart WHERE session id SESSION
  • 创建正则表达式来检查强密码

    假设我有一个检查字母数字的正则表达式 我现在想创建另一个正则表达式来检查密码中至少有 1 个数字 我想检查它是否至少有 1 个非字母数字字符 字母或数字以外的字符 我应该单独调用每个函数 如果一个函数失败返回 false 还是有办法将它们合
  • Python 中的 QuantLib cpibond 债券示例

    我正在尝试让官方 C cpibond 示例在 Python 中运行 原始示例在这里 https github com lballabio quantlib blob master QuantLib test suite inflationc
  • Win32 自定义绘制树视图控件

    我正在尝试使用 NM CUSTOMDRAW 消息自定义树视图控件 我只是想用灰色绘制所有其他可见的项目 这是绘制的代码 INT CResourceOutliner On WM NOTIFY HWND hDlg WPARAM wParam L
  • Navicat utf8 不适用于 mysql 数据库

    我目前正在尝试合并两个不同步的表达式引擎数据库之间的数据更改 为此我选择使用 navicat 该网站在模板中大量使用希腊字符集 当我在 phpmyadmin 中查看希腊语表字段数据时 我按预期看到了希腊语字符 当我将它们加载到 Navica
  • 将元素添加到数组java中

    布局是这样的 index num 0 10 1 20 2 30 Add 35 here 3 40 Move elements down 4 50 5 60 6 70 那么我的方法是这样的 public static void method
  • 如何查看上次提交和现在之间发生了什么变化(进行一些更改后)

    与此类似question https stackoverflow com questions 1552340 how to list the file names only that changed between two commits但
  • 对(静态)CSS 文件所做的更改未反映在 Django 开发服务器中

    我正在使用 Django 制作一个 Web 应用程序 但在将 CSS 文件 存储在我的应用程序的静态目录中 中所做的更改反映到开发服务器上时遇到了一些问题 需要明确的是 服务器能够访问静态文件 但是 它目前停留在我的 CSS 文件的旧版本上
  • chai-http/superagent : 设置多部分表单字段的 Content-Type

    在集成测试中上传文件如下 chai request server instance post profile photo 0 set Access Token accessToken set API Key testConfig apiKe
  • JavaScript 对输入的循环创建一个对象数组

    我正在尝试循环 div 中的输入元素 以创建对象数组 div div
  • 引用 dll 路径的区域内的此注释的目的是什么? (系统.操作)

    如果我浏览到 VS 中 System Action 的定义 region Assembly mscorlib dll v2 0 50727 C Windows Microsoft NET Framework v2 0 50727 mscor
  • 在 Thrift IDL 中重命名字段是否安全?

    如果客户端不再使用该字段 通过重命名来弃用 Thrift 中的字段是否安全 我的理解是 只要我们不改变类型 这应该有效 例如 From struct FooResponse 1 optional i32 foo To struct FooR
  • 从数据库加载而不使用代理类?

    在 Entity Framework 4 中 是否可以选择将一些查询加载到 POCO 中而不使用代理类 为了缓存该对象以供将来只读使用 我正在使用存储库 服务模式 我的意思是 var order orderService GetById 1
  • ADO.NET 数据服务在总体设计中的地位

    ADO NET 数据服务是应用程序内的下一代数据访问层 我见过很多直接从 UI 层 例如 Silverlight 或 Ajax 使用它来获取数据的示例 这几乎就像拥有一个两层系统 业务层完全被删除 DAL 是否应该由业务层访问 而不是直接从
  • (更好的方法)使用 Eclipse 和 XText 获取项目中的文件

    我正在编写一个 XText 编辑器 并进行一些语义突出显示 我正在解析的部分语言引用了文件 这些文件应该存在于项目中 我想根据这些文件是否位于正确的位置来突出显示 目前 我有一个非常丑陋的解决方案 但我确信有更好的方法 public voi