IDE/Editor · 2011/04/17 0

Eclipse 外置工具(external tools)的预置变量说明

Eclipse 提供了除了开发Eclipse扩展来扩展Eclipse功能外,还提供了另一种途径来外置自身的功能, 那就是外置工具(externaltools).当然很多编辑器/IDE都提供此功能:比如 EditPlus 神马的.为了能最大程度的实现扩展功能, Eclipse提供了很多预置变量来参与外置工具的处理过程, 那么本文就是介绍这些变量的.

一. 构建环境

为了更好的理解这些变量,本文将以作者工作的环境来解释这些变量:

  1. 编写基于PHP的预置变量的测试脚本, 代码如下:
  2. Eclipse workspace : /home/xwsoul/coding/web/data
  3. 新建工程, 工程名称demo,工程完整路径:/home/xwsoul/coding/web/data/demo
  4. 工程下新建目录namespace, 目录下新建文件:index.php, xwsoul.php

二. 通用预置变量

1. 后缀 “_loc”,  “_name”, “_path”, “_prompt”

1)  _loc 后缀
为文件系统的绝对路径. 如: 工程demo的_loc /home/xwsoul/coding/web/data/demo .
_loc 里比较特殊的是 workspace_loc (工作区间) 变量, 因为只有它仅仅有 _loc 后缀. 其他的都是 / , 你懂得 -_____-”

2)  _name 后缀
名称. 如文件 xwsoul.php 的 _name 为 xwsoul.php (废话 @.@)

3) _path 后缀:
相对于workspace的相对路径, 如文件 index.php 的 _path /demo/namespace/index.php

4) _prompt 后缀
Eclipse 还提供了一种可交互的外置工具调用, 如file_prompt就在执行前允许用户选择文件,然后将文件名作为这个变量的值提交到外置工具中去.
因为这个比较特殊,所以特别提前说一下预置对应的几个前缀,便于看客门整理:
1>  file_prompt : 选择一个文件
2> folder_prompt : 选择一个文件夹
3> password_prompt : 输入密码
4>  string_prompt : 输入一段字符串

2. 前缀 “build_”, “container_”, “project_”, “resource_”, “selected_resource_”

1) build_ 前缀
和编译相关, 无法使用, PHPer表示情绪稳定.

2) container_前缀
当前选择的文件,项目,文件夹的包括者,就是元素的父目录.
后面可跟后缀:”_loc”,  “_name”, “_path”

3) project_前缀
当前选中元素所在的项目
后面可跟后缀:”_loc”,  “_name”, “_path”

4) “resource_” 和 “selected_resource_”
对我的测试来说,两个返回的几乎一样, 可能又是为可编译型的语言预置的吧.PHPer再次表示淡定.
后面可跟后缀:”_loc”,  “_name”, “_path” .
但是 selected 有一个特殊的变量, 叫做 selected_text. 可以将当前选中的文件中的内容作为变量的值提交到外置工具中去.
PS:实测中也发现了一个问题:就是如果选择的文本中包括类似${foo} 这样的内容, 外置工具会试图将此此段作为变量解析.应该算是一个Bug吧.

三. 特殊变量

1) eclipse_home
这个很显然就是Eclipse的安装目录啦

2) env_var
指定一个环境变量, 带到外置工具中去.

3) java_extensions_regex
PHPer 华丽丽地跳过

4) java_type_name
PHPer 华丽丽地跳过

5) system
系统/环境变量里指定过的,当前运行的系统.Linux Mint用户淡定的表示使用该变量时报错了.

6) system_path
查找系统工具的路径(仅仅匹配第一次出现在系统路径中的那个)
如 :  ${system_path:php} 则转换成 /usr/bin/php

7) system_property
从Eclipse 运行环境中获取一个系统属性值. 但是必须指定属性的名称(可以在变量选择对话框中选择的).
如:${system_property:osgi.arch}就返回了我当前的系统CPU架构 x86,而${system_property:user.name}则返回了当前用户名.

四. 小节

总体看来, Eclipse 的外置工具是比较强大, 设计的时候考虑的比较全面, 同时还支持自定义变量的带入. Eclipse 用起来果然还是相当的风骚阿.

知识共享许可协议
作品虚伪的灵魂创作,采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议进行许可。