相关疑难解决方法(0)

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

我正在编写一个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();
Run Code Online (Sandbox Code Playgroud)

注意:"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 );
Run Code Online (Sandbox Code Playgroud)

java eclipse plugins xtext

8
推荐指数
1
解决办法
3339
查看次数

标签 统计

eclipse ×1

java ×1

plugins ×1

xtext ×1