`
youngerbaby
  • 浏览: 111767 次
  • 性别: 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

相关推荐

    citrix 中文管理操作手册

    在 Access Management Console 中显示项目 27 使用检测过程指定多个服务器场进行控制台管理 27 针对多个产品或组件运行检测过程 28 针对单个产品或组件运行检测过程 28 1.2.10. Access Management Console 用户界面 ...

    javascript入门笔记

    2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发了一款语言 ScriptEase 2、1995年 Netscape(网景) 开发了一款语言 LiveScript,更名为 Javascript 3、1996年 Microsoft(微软) 开发了一款语言...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    在widget.h 文件中添加相应代码,如下,先加入头文件,再加入my2 的定义语 句,这里我们将其放到private 里,因为一般的函数都放在public 里,而变量 都放在private 里。 #ifndef WIDGET_H #define WIDGET_H #...

    Spring.net框架

    我们首先要能够解析配置文件中的信息,然后建立包含相关信息的对象。最后根据这些信息利用反射机制完成对象的创建。首先我们看一下配置文件所包含的内容: , MainApp" /&gt; typeName="IocInCSharp...

    c#学习笔记.txt

    (1) foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下: foreach (type ...

    对组态王OPC服务器值的读取c#版本

    //在向GROUP中加入ITEMS时出现错误 //-8 //未使用 //-9 //读ITEMS时出现错误 //-10 //不能识别的数据类型 //-11 //读ITEMS的质量戳时出现错误 //-12 //向ITEMS中写入数据时出现错误 //-13 //用户添加...

    docker-compose

    # 也会启动 php 服务,因为在配置文件中定义了依赖关系 depends_on: - php # volumes_from 从其它容器或者服务挂载数据卷, volumes_from: - php volumes: # 已经存在的命名的数据卷 - nginx-log:/var/log/...

    HP-UX操作系统培训教材

    3.2.2 在HP-UX中,有下列文件系统及目录: 13 3.2.3 在LV上建文件系统: 13 3.2.4 将此文件系统mount到一个目录下: 13 3.2.5 扩大文件系统 14 3.4用户管理 14 3.4.1用户的登录过程 15 3.4.2添加用户 15 3.4.3修改...

    Linux操作系统基础教程

    在这一讲中,我们主要是了解一下 Linux 的概况,以及对 Linux 有一个初步的感性认识。 一.什么是Linux? Linux 是一个以 Intel 系列 CPU(CYRIX,AMD 的 CPU也可以)为硬件平台,完全免费的 UNIX 兼容系统,完全...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

    ELDK使用与开发手册

    文档中描述了如何在嵌入式PowerPC, ARM和MIPS系统上配置、编译、使用Das U-Boot(常常缩写为“U-Boot”)和Linux操作系统。文档中涵盖了所有你可能需要的用于配置、编译、运行U-Boot和Linux的工具。 2. 绪论 首先,...

    resin-jvm 调优

    这可以在framework的RequestManager中生成JNLP文件时加入上述参数,但是这些值是要求根据客户机的硬件状态变化的(如客户机的内存大小等)。建议这两个参数值设为客户机可用内存的60%(有待测试)。为了在动态生成...

    深入浅出MFC【侯捷】

    :Serialize CArchive类 operator《和operator》 效率考虑 自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流...

    深入浅出MFC 2e

    在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP...

    侯捷- -深入浅出MFC

    在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP...

    ABAP开发环境的安装

    在 C:\Windows\system\32\drivers\etc\hosts 这个文件中,一般包含了这么一行 127.0.0.1 localhost 必须配置这么一行 ,并新添加 Open the network connectivity definition with start-&gt;control panel-&gt;network...

    Visual Basic 6编程技术大全 中译本扫描版带书签 2/2

    16.3.3在DLL中嵌入Forms600 16.3.4特性602 16.3.5用Satellite DLL扩展应用程序603 16.4多线程ActiveX组件607 16.4.1线程模型607 16.4.2多线程ActiveX EXE组件608 16.4.3多线程ActiveX DLL组件612 16.4.4多线程VB应用...

    Visual Basic 6编程技术大全 中译本扫描版带书签 1/2

    16.3.3在DLL中嵌入Forms600 16.3.4特性602 16.3.5用Satellite DLL扩展应用程序603 16.4多线程ActiveX组件607 16.4.1线程模型607 16.4.2多线程ActiveX EXE组件608 16.4.3多线程ActiveX DLL组件612 16.4.4多线程VB应用...

    韩顺平oracle学习笔记

    如果是对象权限,就加入with grant option 例:grant select on emp to xiaoming with grant option 如果是系统管理权限,system 给xiaoming权限时: 例:grant connect to xiaoming with admin option 如果scott把...

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用当中你需要下面的这些文件: /wcf/** /jpivot/** /WEB-INF/wcf/** /WEB-INF/jpivot/** /WEB-INF/lib/** 最后你还需要对比 jpivot.war 里的 web.xml ...

Global site tag (gtag.js) - Google Analytics