`
youngerbaby
  • 浏览: 114973 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何在console中加入文件连接

阅读更多

使用eclipse的人都知道,在console中打印的异常stack信息可以连接到源文件,最近做的工具中需要相同的功能,于是调研了一下,原理很简单,看下面代码:

MessageConsole console = new MessageConsole("My Console", null);
IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
IConsole[] existing = manager.getConsoles();
boolean exists = false;
for (int i = 0; i < existing.length; i++) {
	if (console == existing[i])
	exists = true;
}
if (!exists) {
	manager.addConsoles(new IConsole[] { console });
}
manager.showConsoleView(console);
MessageConsoleStream stream = console.newMessageStream();
System.setOut(new PrintStream(stream));
			
//下面的代码只是说明如何向console中加入连接,没有实际意义
IDocument document = console.getDocument();
document.set("Test file link");
IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("t");
IFile file = p.getFile("test.js");
FileLink fl = new FileLink(file, "kaitone.wisp.kul.editor.kulJs", -1, -1, 5);
try {
	console.addHyperlink(fl, 0, 4);
} catch (BadLocationException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

 上面代码所作的就是添加一个自己的console,将console的内容设置成“Test file link”,并且对"test"增加文件连接,连接到project t下面的test.js的第5行。最关键的就创建一个FileLink对象,并且通过console.addHyperlink(...)方法注册这个文件连接。这只是个静态的演示,其实实际情况要复杂的多,大多都是根据上下文情况动态的生成文件连接信息输出到console,就像java 打印到console的exception stack一样。还没有具体看jdt是怎么实现的,继续调研......

分享到:
评论
1 楼 zxjlwt 2015-04-22  
学习了。
http://surenpi.com

相关推荐

    配置linux的console口登录

    为了让系统在启动时能够通过串行终端输出信息,需要修改`/boot/grub/grub.conf`文件,在内核启动参数中加入对串行终端的支持: ```bash kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ ``` 修改为: ``...

    为Linux系统配置serial console

    如果想要利用这一功能,需要在BIOS设置中启用Serial Console选项。 #### 四、配置Bootloader 不同的Bootloader有不同的配置方法。这里以GRUB为例,介绍如何配置Serial Console。 **3.1 GRUB的配置** GRUB配置...

    win32和win32 console和MFC程序概况

    1. **预处理器定义**:为了绕过MFC提供的`WinMain`函数,我们需要在预处理器定义中加入`_AFXDLL`标志,以欺骗MFC库避免连接其自带的`WinMain`函数。 2. **修改项目选项**:更改`/MT`或`/ML`为`/MD`标志,以避免MFC...

    在VC++6.0中建立多文件项目的方法

    最后,将源文件放到项目文件中,选择“工程/增加到工程/文件”菜单,在出现的对话框中,同时选中欲加入到工程中的所有 C 程序源文件,单击“确定”按钮。编译、连接项目文件,单击编译按钮、运行按钮即可。 方法二...

    C#连接firebird嵌入版数据库实例

    在本文中,我们将深入探讨如何使用C#连接到Firebird嵌入式数据库。Firebird是一种开源的关系型数据库管理系统,提供跨平台支持,并且有多种语言的API,包括.NET框架下的.NET Provider。本实例将基于Visual Studio ...

    简单的测试数据库是否可以连通的工具

    C#作为.NET框架的一部分,提供了丰富的类库来支持数据库连接,例如System.Data.SqlClient(用于SQL Server)和System.Data.OleDb(通用对象链接和嵌入,用于多种数据库系统)。标题中的“简单的测试工具”就是用来...

    vc++新建工程.pdf

    - 在弹出的新建对话框中选择“Win32 Console Application”(控制台应用程序)。 - 输入工程名称,并选择保存位置。 - 点击“确定”后,继续点击“完成”以创建一个空工程。 #### 三、添加源文件 1. **步骤**: ...

    jetty-console-jsp-plugin-1.47.zip

    这可能包括创建客户端对象来连接服务器,定义数据模型以同步数据,以及处理网络事件等。 7. **版本控制**: 压缩包中的"entangle-swing-master"可能是Entangle Swing项目的Git仓库主分支,通常包含最新的源代码和...

    唯一一个真正解决minicom无法显示的问题

    2. 编辑 grub.conf 文件,添加一个启动项,并加入内核参数 console=vga xencons=ttyS16 console=ttyS16,以便NORMAL minicom 可以正常显示 ARM 板上的输出结果。 在编辑 grub.conf 文件时,需要注意以下几点: * ...

    WebUploader大文件上传.zip

    3. **事件监听**:绑定WebUploader的各种事件,如`fileQueued`(文件加入队列)、`uploadStart`(开始上传)和`uploadSuccess`(上传成功)等,以便在上传过程中进行相应的操作。 4. **触发上传**:调用WebUploader...

    qwidget嵌入qml最完整代码

    在QML中,我们可以使用`QtQuick.Controls`模块的`Item`或`Rectangle`作为容器,通过`qqmlengine-&gt;rootContext()-&gt;setContextProperty()`将QWidget对象暴露给QML环境,这样就可以在QML中引用这个C++对象。 例如,你...

    C#线程池和文件下载服务器

    当新的客户端连接到来时,通过调用`ThreadPool.QueueUserWorkItem`方法,将客户端连接对象作为参数传递给`worker`方法,并将其放入线程池中执行。这样可以确保即使有大量的客户端同时连接,服务器也能有效地处理请求...

    Win10运行汇编所需的编译程序MASM.exe和连接程序Link.exe

    链接器的作用是将由汇编器产生的一个或多个对象文件(.OBJ)合并成一个可执行文件(.EXE)或动态链接库(.DLL)。在链接过程中,Link.exe会处理以下任务: 1. **解决外部引用**:查找并连接到其他模块中的函数和...

    bes 安装包.rar

    同时,需要在域环境中,服务器应该加入到相应的域,因为BES需要AD(活动目录)支持。 3. **下载与解压**:下载bes 安装包rar文件,并使用解压工具将其解压到一个合适的文件夹。解压后,里面可能包含多个安装程序,...

    基于android的地图源码 连接远程数据库 实现定位 查询

    接着,通过MapView控件在布局文件中嵌入地图,并在代码中初始化和加载地图。通过Google Maps API,你可以实现定位、绘制标记、显示路线等功能。 2. **定位功能**: Android提供GPS定位服务,可以通过...

    dicomserver测试工具(ConquestDICOMServer)

    在提供的文件列表中,我们可以看到以下几个关键文件: 1. **aupdate.bat**:这是一个批处理文件,通常用于执行自动更新或安装脚本,可能用来升级或维护 Conquest DICOM Server 到最新版本。 2. **atestinstallweb....

    HCNP-Security CISN V2.0中文教材

    在设备配置方面,教材中提到了对防火墙配置文件的管理。管理员可以查看、删除、修改和应用已保存的配置文件,也可以上传新的配置文件。文件系统管理是设备启动时会读取的配置文件进行系统初始化工作,这部分配置被...

    SUNSolaris常见问题集锦.doc

    可以在 `system` 文件的最后一行加入 `Set shmsys:shminfo_shmmax=XXX` 和 `/etc/set shmsys:shminfo_shmmin=XXX`,这里的 `XXX` 是代表共享内存的大小,单位是字节。共享内存一般为内存的一半。 问题6:root 用户...

    QT平台下的basler相机 连接

    8. **错误处理**:在代码中加入适当的错误处理机制,如异常捕获,以确保在遇到问题时能够正确地处理。 9. **释放资源**:在程序结束时,记得关闭相机连接并释放所有占用的资源,防止内存泄漏。 以上步骤只是一个...

    MFC中嵌入Ogre

    在创建新项目时,选择“Win32 Console Application”,然后在向导中选择“An Empty Project”并启用MFC支持,选择“Use MFC in a Static Library”。 **2. 引入Ogre库** 下载并安装Ogre库,将其包含的头文件和库...

Global site tag (gtag.js) - Google Analytics