歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 用 Python 打造你的 Eclipse

用 Python 打造你的 Eclipse

日期:2017/2/28 13:52:44   编辑:Linux教程

Eclipse 高級腳本環境(EASE)項目雖然還在開發中,但是必須要承認它非常強大,它讓我們可以快速打造自己的Eclipse 開發環境。

依據 Eclipse 強大的框架,可以通過其內建的插件系統全方面的擴展 Eclipse。然而,編寫和部署一個新的插件還是十分麻煩,即使你只是需要一個額外的小功能。不過,現在依托於 EASE,你可以不用寫任何一行 Java 代碼就可以方便的做到這點。EASE 是一種使用 Python 或者 Javascript 這樣的腳本語言自動實現這些功能的平台。

本文中,根據我在今年北美的 EclipseCon 大會上的演講,我將介紹如何用 Python 和 EASE 設置你的 Eclipse 環境,並告訴如何發揮 Python 的能量讓你的 IDE 跑的飛起。

安裝並運行 "Hello World"

本文中的例子使用 Python 的 Java 實現 Jython。你可以將 EASE 直接安裝到你已有的 Eclipse IDE 中。本例中使用Eclipse Mars,並安裝 EASE 環境本身以及它的模塊和 Jython 引擎。

使用 Eclipse 安裝對話框(Help>Install New Software...),安裝 EASE:http://download.eclipse.org/ease/update/nightly,

選擇下列組件:

  • EASE Core feature
  • EASE core UI feature
  • EASE Python Developer Resources
  • EASE modules (Incubation)

這會安裝 EASE 及其模塊。這裡我們要注意一下 Resource 模塊,此模塊可以訪問 Eclipse 工作空間、項目和文件 API。

成功安裝後,接下來安裝 EASE Jython 引擎 https://dl.bintray.com/pontesegger/ease-jython/ 。完成後,測試下。新建一個項目並新建一個 hello.py 文件,輸入:

  1. print"hello world"

選中這個文件,右擊並選擇“Run as -> EASE script”。這樣就可以在控制台看到“Hello world”的輸出。

現在就可以編寫 Python 腳本來訪問工作空間和項目了。這種方法可以用於各種定制,下面只是一些思路。

提升你的代碼質量

管理良好的代碼質量本身是一件非常煩惱的事情,尤其是當需要處理一個大型代碼庫或者要許多工程師參與的時候。而這些痛苦可以通過腳本來減輕,比如批量格式化一些文件,或者去掉文件中的 unix 式的行結束符來使得在 git 之類的源代碼控制系統中比較差異更加容易。另外一個更好的用途是使用腳本來生成 Eclipse markers 以高亮你可以改善的代碼。這裡有一些示例腳本,你可以用來在 java 文件中所有找到的“printStackTrace”方法中加入task markers 。請看源碼。

拷貝該文件到工作空間來運行,右擊並選擇“Run as -> EASE script”。

  1. loadModule('/System/Resources')
  2. from org.eclipse.core.resources importIMarker
  3. for ifile in findFiles("*.java"):
  4. file_name = str(ifile.getLocation())
  5. print"Processing "+ file_name
  6. with open(file_name)as f:
  7. for line_no, line in enumerate(f, start=1):
  8. if"printStackTrace"in line:
  9. marker = ifile.createMarker(IMarker.TASK)
  10. marker.setAttribute(IMarker.TRANSIENT,True)
  11. marker.setAttribute(IMarker.LINE_NUMBER, line_no)
  12. marker.setAttribute(IMarker.MESSAGE,"Fix in Sprint 2: "+ line.strip())

如果你的 java 文件中包含了 printStackTraces,你就可以看見任務視圖和編輯器側邊欄上自動新加的標記。

自動構建繁瑣任務

當同時工作在多個項目的時候,肯定需要完成許多繁雜、重復的任務。可能你需要在所有源文件頭上加入版權信息,或者采用新框架時候自動更新文件。例如,當首次切換到 Tycho 和 Maven 的時候,我們需要 giel每個項目添加 pom.xml 文件。使用幾行 Python 代碼可以很輕松的完成這個任務。然後當 Tycho 支持無 pom 構建後,我們需要移除不要的 pom 文件。同樣,幾行代碼就可以搞定這個任務,例如,這裡有個腳本可以在每一個打開的工作空間項目上加入 README.md。請看源代碼 add_readme.py。

拷貝該文件到工作空間來運行,右擊並選擇“Run as -> EASE script”。

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 目前不支持的功能是自動保存你正在工作的文件。即使這個功能將會很快提供,但是你現在就可以馬上擁有一個能每隔 30 秒或處於後台時自動保存的編輯器。以下是主要方法的片段。請看下列代碼:autosave.py。

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

在運行腳本之前,你需要勾選 'Allow Scripts to run code in UI thread' 設定,這個設定在 Window > Preferences > Scripting 中。然後添加該腳本到工作空間,右擊並選擇“Run as > EASE Script”。每次編輯器自動保存時,控制台就會輸出一個保存的信息。要關掉自動保存腳本,只需要點擊控制台的紅色方塊的停止按鈕即可。

快速擴展用戶界面

EASE 最棒的事情是可以將你的腳本與 IDE 界面上元素(比如一個新的按鈕或菜單)結合起來。不需要編寫 java 代碼或者安裝新的插件,只需要在你的腳本前面增加幾行代碼。

下面是一個簡單的腳本示例,用來創建三個新項目。

  1. # name :Create fruit projects
  2. # toolbar :ProjectExplorer
  3. # description :Create fruit projects
  4. loadModule("/System/Resources")
  5. for name in["banana","pineapple","mango"]:
  6. createProject(name)

上述注釋會專門告訴 EASE 增加了一個按鈕到 Project Explorer 工具條。下面這個腳本是用來增加一個刪除這三個項目的按鈕的。請看源碼 createProjects.py 和 deleteProjects.py。

  1. # name :Delete fruit projects
  2. # toolbar :ProjectExplorer
  3. # description :Get rid of the fruit projects
  4. loadModule("/System/Resources")
  5. for name in["banana","pineapple","mango"]:
  6. project = getProject(name)
  7. project.delete(0,None)

為了使按鈕顯示出來,增加這兩個腳本到一個新的項目,假如叫做 'ScriptsProject'。然後到 Windows > Preference > Scripting > Script Location,點擊 'Add Workspace' 按鈕並選擇 ScriptProject 項目。這個項目現在會成為放置腳本的默認位置。你可以發現 Project Explorer 上出現了這兩個按鈕,這樣你就可以通過這兩個新加的按鈕快速增加和刪除項目。

整合第三方工具

不管怎麼說,你可能需要除了 Eclipse 生態系統以外的工具(這是真的,雖然 Eclipse 已經很豐富了,但是不是什麼都有)。這些時候你會發現將他們包裝在一個腳本來調用會非常方便。這裡有一個簡單的例子讓你整合資源管理器,並將它加入到右鍵菜單欄,這樣點擊圖標就可以打開資源管理器浏覽當前文件。請看源碼 explorer.py。

  1. # name :Explorefrom here
  2. # popup : enableFor(org.eclipse.core.resources.IResource)
  3. # description :Start a file browser using current selection
  4. loadModule("/System/Platform")
  5. loadModule('/System/UI')
  6. selection = getSelection()
  7. if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection):
  8. selection = selection.getFirstElement()
  9. ifnot isinstance(selection, org.eclipse.core.resources.IResource):
  10. selection = adapt(selection, org.eclipse.core.resources.IResource)
  11. if isinstance(selection, org.eclipse.core.resources.IFile):
  12. selection = selection.getParent()
  13. if isinstance(selection, org.eclipse.core.resources.IContainer):
  14. runProcess("explorer.exe",[selection.getLocation().toFile().toString()])

為了讓這個菜單顯示出來,像之前一樣將該文件加入一個新項目,比如說 'ScriptProject'。然後到 Windows > Preference > Scripting > Script Locations,點擊“Add Workspace”並選擇 'ScriptProject' 項目。當你在文件上右擊鼠標鍵,你會看到彈出菜單出現了新的菜單項。點擊它就會出現資源管理器。(注意,這個功能已經出現在 Eclipse 中了,但是你可以在這個例子中換成其它第三方工具。)

Eclipse 高級基本環境 (EASE)提供一套很棒的擴展功能,使得 Eclipse IDE 能使用 Python 來輕松擴展。雖然這個項目還在早期,但是關於這個項目更多更棒的功能也正在加緊開發中,如果你想為它做出貢獻,請到論壇討論。

我會在 2016 年的 Eclipsecon North America 會議上發布更多 EASE 細節。我的演講 Scripting Eclipse with Python 也會不單會介紹 Jython,也包括 C-Python 和這個功能在科學領域是如何擴展的。

Ubuntu 15.04中使用Eclipse 4.4、Java 8以及WTP http://www.linuxidc.com/Linux/2016-04/129821.htm

Ubuntu 14.04 LTS安裝Java 8和Eclipse 4.4 http://www.linuxidc.com/Linux/2014-11/109217.htm

Hadoop Eclipse 插件編譯安裝1.2.0 http://www.linuxidc.com/Linux/2013-07/87428.htm

Hadoop在Eclipse中的插件編譯 http://www.linuxidc.com/Linux/2013-04/83295.htm

Hadoop 1.2.1編譯Eclipse插件 http://www.linuxidc.com/Linux/2013-10/91666.htm

Ubuntu 13.10安裝JDK、Eclipse for C/C++(解決全局菜單問題) http://www.linuxidc.com/Linux/2013-11/92305.htm

如何在Ubuntu 14.04中安裝最新版Eclipse http://www.linuxidc.com/Linux/2014-08/105090.htm

Eclipse 的詳細介紹:請點這裡
Eclipse 的下載地址:請點這裡


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

作者:Tracy Miranda 譯者:VicYu/Vic020 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

Copyright © Linux教程網 All Rights Reserved