Eclipse Advanced Scripting Environment( EASE )项目是一组新的但功能强大的插件,使您能够快速破解Eclipse IDE。

Eclipse是一个功能强大的框架,可以使用其内置的插件机制以多种不同方式进行扩展。 但是,如果您只需要一点附加功能,那么编写和部署新插件可能会很麻烦。 现在,使用EASE,有一种更好的方法,而不必编写一行Java代码。 EASE提供了一种使用Python或Javascript等脚本语言轻松实现工作台功能自动化的方法。

在本文中,根据我今年在北美EclipseCon上的演讲 ,我将介绍如何使用Python和EASE设置Eclipse环境的基础知识,并探讨一些使Python增强IDE功能的想法。

设置并运行“ Hello World”

本文中的示例基于Python Jython的Java实现。 您可以将EASE直接安装到现有的Eclipse IDE中。 在此示例中,我们使用Eclipse Mars并安装EASE本身,其模块和Jython引擎。

在Eclipse安装对话框(帮助>安装新软件...)中,安装EASE: http : //download.eclipse.org/ 轻松/更新/每晚

并且,选择以下组件:

  • 轻松核心功能
  • EASE核心UI功能
  • EASE Python开发人员资源
  • EASE模块(孵化)

这将为您提供EASE及其模块。 我们感兴趣的主要资源是Resource模块,该模块使您可以访问Eclipse工作区,项目和文件API。

成功安装之后,接下来安装EASE Jython引擎: https : //dl.bintray.com/ pontesegger / ease-jython / 。 安装插件后,测试EASE。 创建一个新项目,并添加具有以下内容的名为hello.py的新文件:


print "hello world" 

选择文件,右键单击,然后选择“运行方式-> EASE脚本”。 您应该看到“ Hello World”出现在控制台中。

现在,您可以开始编写可访问工作区和项目的Python脚本。 此功能可用于各种黑客,下面仅是一些想法。

提高代码质量

保持良好的代码质量可能是一项繁琐的工作,尤其是在处理大型代码库或涉及大量开发人员时。 使用脚本可以简化一些痛苦,例如对一组文件进行批处理格式化,甚至修复某些文件以删除unix行尾 ,以便在git等源代码控制中轻松进行比较。 要做的另一件事是使用脚本生成Eclipse标记,以突出显示可以进行改进的代码。 这是一个示例脚本,您可以使用它为Java文件中检测到的所有“ printStackTrace”方法添加任务标记。 参见源代码: markers.py

要运行,请将文件复制到工作区,然后右键单击并选择“运行方式-> EASE脚本”。

loadModule ( '/System/Resources' )

from org. eclipse . core . resources import IMarker

for ifile in findFiles ( "*.java" ) :
file_name = str ( ifile. getLocation ( ) )
print "Processing " + file_name
with open ( file_name ) as f:
for line_no , line in enumerate ( f , start = 1 ) :
if "printStackTrace" in line:
marker = ifile. createMarker ( IMarker. TASK )
marker. setAttribute ( IMarker. TRANSIENT , True )
marker. setAttribute ( IMarker. LINE_NUMBER , line_no )
marker. setAttribute ( IMarker. MESSAGE , "Fix in Sprint 2: " + line. strip ( ) )


如果您有任何带有printStackTraces的Java文件,您将能够在“任务”视图和编辑器边缘看到新创建的标记。

自动完成繁琐的任务

当您处理多个项目时,您可能需要自动化一些繁琐且重复的任务。 也许您需要在每个源文件的开头添加版权标头,或者在采用新框架时更新源文件。 例如,当我们第一次切换到使用Tycho和Maven时,我们必须向每个项目添加pom.xml。 使用几行Python即可轻松完成此操作。 然后,当Tycho为无pom版本提供支持时,我们想要删除不必要的pom文件。 再次,几行Python脚本启用了此功能。 例如,下面是一个脚本,该脚本将README.md文件添加到工作区中的每个打开的项目中,请注意它们是Java还是Python项目。 请参阅源代码: add_readme.py 。

要运行,请将文件复制到工作区,然后右键单击并选择“运行方式-> EASE脚本”。

loadModule ( '/System/Resources' )

for iproject in getWorkspace ( ) . getProjects ( ) :
if not iproject. isOpen ( ) :
continue

ifile = iproject. getFile ( "README.md" )

if not ifile. exists ( ) :
contents = "# " + iproject. getName ( ) + " \n \n "
if iproject. hasNature ( "org.eclipse.jdt.core.javanature" ) :
contents + = "A Java Project \n "
elif iproject. hasNature ( "org.python.pydev.pythonNature" ) :
contents + = "A Python Project \n "
writeFile ( ifile , contents )


结果应该是,每个打开的项目都将具有README.md文件,而Java和Python项目具有附加的描述行。

原型新功能

您还可以使用Python脚本破解一些急需的功能的快速修复程序,或者作为原型来帮助向您的团队或用户演示如何构想功能。 例如,Eclipse IDE当前不支持的一项功能是自动保存您正在处理的当前文件。 尽管此功能已在以后的版本中使用,但您可以使用快速而肮脏的版本,该版本每30秒或在停用编辑器时自动保存。 以下是主要方法的代码段。 查看完整源代码: autosave.py

def save_dirty_editors ( ) :
workbench = getService ( org. eclipse . ui . IWorkbench )
for window in workbench. getWorkbenchWindows ( ) :
for page in window. getPages ( ) :
for editor_ref in page. getEditorReferences ( ) :
part = editor_ref. getPart ( False )
if part and part. isDirty ( ) :
print "Auto-Saving" , part. getTitle ( )
part. doSave ( None )

在运行此脚本之前,您需要通过选中“窗口”>“首选项”>“脚本”下的框,打开“允许脚本在UI线程中运行代码”设置。 然后,您可以将文件添加到工作区中,右键单击它,然后选择“运行方式> EASE脚本”。 每次保存编辑器时,都会在控制台视图中打印出一条保存消息。 要关闭自动保存功能,只需在控制台视图中按“终止”红色方形按钮即可停止脚本。

使用自定义按钮,菜单等快速扩展用户界面

关于EASE的最好的事情之一是,它允许您获取脚本并将其快速挂接到IDE的UI元素中,例如,作为新按钮或新菜单项。 无需编写Java或拥有新插件,只需在脚本标头中添加几行即可-就是这么简单。

这是一个简单脚本的示例,该脚本创建了三个新项目。

# name          : Create fruit projects
# toolbar       : Project Explorer
# description   : Create fruit projects

loadModule ( "/System/Resources" )

for name in [ "banana" , "pineapple" , "mango" ] :
createProject ( name )


注释行指定为EASE,以将按钮添加到Project Explorer工具栏。 这是另一个向同一工具栏添加按钮以删除这三个项目的脚本。 请参阅源文件: createProjects.py和deleteProjects.py

# name            :Delete fruit projects
# toolbar        : Project Explorer
# description    : Get rid of the fruit projects

loadModule ( "/System/Resources" )

for name in [ "banana" , "pineapple" , "mango" ] :
project = getProject ( name )
project. delete ( 0 , None )


要显示按钮,请将两个脚本文件添加到新项目中,将其命名为“ ScriptsProject”。 然后转到Windows>首选项>脚本>脚本位置。 单击“添加工作区”按钮,然后选择ScriptsProject。 现在,该项目成为查找脚本文件的默认位置。 您应该看到按钮显示在Project Explorer中,而无需重新启动IDE。 您应该能够使用新添加的按钮快速创建和删除项目。

与第三方工具集成

有时您可能需要使用Eclipse生态系统之外的工具(很遗憾,但确实如此,它有很多功能,但不能完成所有工作)。 在这些情况下,将对该调用的调用包装在脚本中可能非常方便。 这是一个示例,允许您与explorer.exe集成,并将其添加到内容菜单,以便您可以使用当前选择立即打开文件浏览器。 查看源代码: explorer.py

# name          : Explore from here
# popup         : enableFor(org.eclipse.core.resources.IResource)
# description   : Start a file browser using current selection
loadModule ( "/System/Platform" )
loadModule ( '/System/UI' )

selection = getSelection ( )
if isinstance ( selection , org. eclipse . jface . viewers . IStructuredSelection ) :
selection = selection. getFirstElement ( )

if not isinstance ( selection , org. eclipse . core . resources . IResource ) :
selection = adapt ( selection , org. eclipse . core . resources . IResource )

if isinstance ( selection , org. eclipse . core . resources . IFile ) :
selection = selection. getParent ( )

if isinstance ( selection , org. eclipse . core . resources . IContainer ) :
runProcess ( "explorer.exe" , [ selection. getLocation ( ) . toFile ( ) . toString ( ) ] )


要显示菜单,请将脚本添加到新项目中,将其命名为“ ScriptsProject”。 然后转到Windows>首选项>脚本>脚本位置。 单击“添加工作区”按钮,然后选择ScriptsProject。 右键单击文件时,您应该看到新菜单项显示在上下文菜单中。 选择此操作以打开文件浏览器。 (请注意,此功能已在Eclipse中提供,但您可以使用本示例来适应其他第三方工具)。

Eclipse Advanced Scripting Environment提供了一种很好的方法,可以利用Python的功能来充分利用Eclipse IDE。 这是一个处于起步阶段的项目,因此还有更多的事情要做。 了解有关该项目的更多信息,并通过注册论坛参与。

我将在2016年北美Eclipsecon大会上谈论更多关于EASE的内容。我的演讲“ 使用Python编写Eclipse脚本”将探讨如何不仅可以使用Jython,还可以使用C-Python以及如何针对科学用例专门扩展此功能。

翻译自: https://opensource.com/life/16/2/how-use-python-hack-your-ide

如何使用Python入侵Eclipse IDE相关推荐

  1. python 3.6.5 java jdk版本_eclipse开发者版本下载-eclipse ide for java developers最新版v3.6.0 pc版 - 极光下载站...

    eclipse ide for java developers最新版是一款对于Java开发人员创建Java EE和Web应用程序.安装上Eclipse IDE后不仅可以编写Java和C/C++等程序还 ...

  2. python代码编辑器排行榜-写 Python 哪个编辑器 / IDE 最好用?

    不请自来嘻嘻,简单介绍一下几款好用的编写器,希望对你有帮助- 1.IDLE IDLE是开发 python 程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择 ...

  3. JBoss Eclipse IDE

    2019独角兽企业重金招聘Python工程师标准>>> JBoss Eclipse IDE Tools 1.4.1 Stable,在Eclipse V3.1的里程碑版本6(M6)极其 ...

  4. python自带ide和pycharm哪个好_排名前三的Python IDE你选择哪个?我选PyCharm

    世界上最好的 Python 编辑器或 IDE 是什么?炫酷的界面.流畅的体验,我们投 PyCharm一票,那么你呢?编辑Python程序,您有许多选项.有些人仍然喜欢一个基本的文本编辑器,如Emacs ...

  5. ardupilot java_基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建

    基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...

  6. 推荐9个适合Python开发的IDE。

    Python是一种功能强大.语言简洁的编程语言.本文向大家推荐9个适合Python开发的IDE. Eclipse with PyDev http://pydev.org/ image Eclipse+ ...

  7. dwSun带你选Python的编辑器/IDE

    dwSun带你选Python的编辑器/IDE dwSun带你选Python的编辑器/IDE Python 是一门简单易学,同时又十分强大的编程语言.特别是随着人工智能的热潮,Python作为AI开发的 ...

  8. eclipse ide安装_如何下载和安装Eclipse IDE?

    eclipse ide安装 Eclipse is a project which mainly provides a free, advanced integrated development env ...

  9. Python开发常用IDE有哪些

    原文地址:几款 常用Python IDE 编辑器- Python学习网站导航 写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了.它们不仅能使你的工作更加简单.更具逻辑性,还能够提升编 ...

最新文章

  1. jdk 5 到 jdk 10各个版本的新特性
  2. C标准库这本书怎么样
  3. mysql 添加唯一索引_浅谈Mysql索引
  4. 云上应用系统数据存储架构演进
  5. Angular之ngx-permissions的控制视图访问
  6. Spring Boot文件上传示例
  7. Oracle数据库对象 序列
  8. C#测绘兰勃特墨卡托投影
  9. mac使用Alfred搜索外接移动硬盘失败的解决方法
  10. lm317扩流电路 (全集)
  11. (XWZ)的Python学习笔记Ⅷ--------numpy
  12. 利用NMDS对药物处理下肠道菌群微生物群落多态性分析
  13. 前端学习总结(九)MongoDB——最出色的文档型数据库
  14. mysql隔离级别 isolation_MySQL事务和隔离级别
  15. 科林明伦杯哈尔滨理工大学第八届程序设计竞赛——Hrbust-2378 小H的问题(模拟)
  16. Vue Clipboard 异步复制粘贴
  17. Kernel Panic - not syncing: VFS:
  18. 复盘罗辑思维卖月饼:微信电商的五大G点 (转)
  19. 广电电视信号如何生成RTMP流进入流媒体系统网络分发实现手机APP播放
  20. 标准字头密码体制c语言,关于Playfair密码体制

热门文章

  1. Java 常用缓存淘汰算法解析
  2. 基于centos6.5安装ElasticSearch
  3. inMap 2.0 重磅发布!
  4. AbstractQueuedSynchronizer 源码分析(共享锁)
  5. 两数相除赋值整数变量(T-SQL)
  6. Cisco ASA站点间穿越nat互相访问的实验
  7. 2010上半年网络工程师上午试题分析与解答
  8. 图解 _INTSIZEOF(n)
  9. Firefox改变查看页面源代码的程序
  10. JKD源码系列(4)-AbstractStringBuilder