亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python打造出適合自己的定制化Eclipse IDE

2020-01-04 17:40:45
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python打造出適合自己的定制化Eclipse IDE的相關資料,需要的朋友可以參考下
 

Eclipse是一套強大的框架,其能夠通過內置插件機制實現多種擴展方式。然而要想添加一小點額外功能,大家都不可避免地需要面臨新插件的編寫與部署工作,這顯然有點令人頭痛。現在在EASE的幫助下,我們能夠以更理想的方式完成這項任務——而且整個過程不需要涉及任何一代Java代碼。EASE能夠讓我們輕松利用Python或者JavaScript等腳本語言實現自動化工作臺功能。

Python打造出適合自己的定制化Eclipse IDE

在本篇文章中,我們將共同了解如何利用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核心功能)
EASE core UI feature(EASE核心UI功能)
EASE Python Developer Resources(EASE Python開發者資源)
EASE modules (Incubation) (EASE模塊,孵化)
如此一來,我們就能夠使用EASE及其各項模塊。在這里我們主要需要使用的是資源模塊,其允許我們訪問Eclipse工作區、項目以及文件API。

Python打造出適合自己的定制化Eclipse IDE

在上述條目成功安裝完成后,接下來需要安裝EASE Jython引擎:https://dl.bintray.com/pontesegger/ease-jython/。一旦各插件安裝完畢,下面需要測試EASE。創建一個新項目并通過以下命令添加一個名為hello.py的文件:

print "hello world" 

選定該文件,右鍵點擊并選擇“Run as -> EASE script”。這時大家會看到控制臺中顯示“Hellp World”。

現在大家可以開始編寫能夠接入工作區與項目的Python腳本了。從這里開始,我們立足于以下幾項目標對IDE進行調整。

改進代碼質量

保證良好的代碼質量是一項非常困難的任務,特別是在代碼庫規模龐大或者涉及多位開發人員的情況之下。其中部分難題能夠通過引入腳本得到輕松解決,例如對某類文件進行批量格式調整,或者在git等源代碼控制體系內移除unix結尾行以簡化文件內容對照等。另外值得強調的是,我們也可以利用腳本生成Eclipse標記,從而以代碼高亮顯示的方式實現功能改進。以下腳本示例可用于將任務標記機制添加至全部“printStackTrace”方法,從而實現Java文件內部檢測。點擊此鏈接查看源代碼: markers.py

首先在工作區內復制文件,而后右鍵點擊對應文件并選擇“Run as -> EASE script”。

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文件,則可以在編輯器邊緣處的任務視圖內查看到新近創建的標記。

Python打造出適合自己的定制化Eclipse IDE

繁瑣任務自動化處理

當大家同時處理多個項目時,大家可能希望以自動化方式處理某些繁瑣而重復性的任務。大家也許需要在每個源文件起始處添加一條版權標題,或者在采用新框架時對源文件進行更新。舉例來說,當我們首次面向Tycho以及Maven進行切換時,我們需要為每個項目添加一個pom.xml文件。只需幾行Python代碼即可輕松完成這項工作。但由于Tycho目前已經支持無pom構建,因此我們又需要移除這些不必要的pom文件。同樣的,幾行Python腳本即可實現這一訴求。舉例來說,在這里我們利用以下腳本向工作區內的每個已打開項目添加一個README.md文件——當然,前提是它們屬于Java或者Python項目。點擊以下鏈接查看源代碼: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 IDE

新功能原型設計

大家也可以利用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) 

在運行此腳本之前,大家還需要在Window > Preferences > Scripting內的對話框中勾選“Allow Scripts to run code in UI thread”(允許腳本在UI線程內運行代碼)選項。如此一來,大家就能夠將該文件添加到工作當中,右鍵對其進行點擊并選擇“Run as -> EASE script”。每當編輯器進行保存操作時,控制臺視圖中都會輸出一條保存信息。而要關閉自動保存功能,大家只需在控制臺視圖內點擊“Terminate”紅色按鈕停止該腳本即可。

Python打造出適合自己的定制化Eclipse IDE

利用按鈕、菜單及其它條目對用戶界面進行快速擴展

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的注釋行負責向項目管理器工具欄添加一個新按鈕。下面展示的是另一套腳本,負責在同一工具欄內添加另一個按鈕,從而將這三個項目徹底刪除。點擊以下鏈接查看其源代碼: 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 > Preference > Scripting > Script Locations。點擊“Add Workspace”按鈕并選擇ScriptsProject。此項目現在已經成為腳本文件存放的默認位置。這時大家應該可以在項目管理器內直接查看到這些按鈕,而不必進行IDE重啟。利用這些新按鈕,我們能夠快速創建并刪除這三個對應項目。

Python打造出適合自己的定制化Eclipse IDE

與第三方工具相集成

大家可能隨時需要使用Eclipse生態系統之外的工具選項(而且必須承認,雖然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 > Preference > Scripting > Script Locations。點擊“Add Workspace”按鈕并選擇ScriptsProject。現在,大家應該能夠在右鍵某個文件后看到該新菜單條目顯示在彈出菜單當中。點擊以打開文件瀏覽器。(需要注意的是,這項功能目前已經存在于Eclipse當中,但這里我們只是將其作為示例,用于解釋其它第三方工具的集成方式。)

Python打造出適合自己的定制化Eclipse IDE

這套Eclipse高級腳本環境能夠充分發揮Python的強大潛能,從而幫助我們靈活運用Eclipse IDE。目前此項目正處于起步階段,因此未來還可以期待更多激動人心的功能與特性。

以上所述是關于Python打造出適合自己的定制化Eclipse IDE的相關知識,希望對大家有所幫助!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品在线一区| 国产精品视频在线播放| 国产欧美精品va在线观看| 亚洲人成电影在线观看天堂色| 国产成人精品综合久久久| 亚洲女人天堂色在线7777| 中文字幕亚洲综合| 久久久国产精品一区| 亚洲91av视频| 亚洲美女性生活视频| 97国产在线视频| 亚洲嫩模很污视频| 日韩av在线电影网| 久久亚洲精品成人| 性色av一区二区三区| 欧美激情视频免费观看| 在线精品高清中文字幕| 欧美一级片久久久久久久| 色七七影院综合| 国产精品久久久久久久久久久久久久| 国产精品久久久久久久av电影| 夜夜狂射影院欧美极品| 亚洲免费人成在线视频观看| 欧美精品在线免费观看| 国产精品专区h在线观看| 88xx成人精品| 97香蕉久久超级碰碰高清版| 日韩在线一区二区三区免费视频| 日韩精品一区二区视频| 成人免费视频网| 国产日韩欧美夫妻视频在线观看| 国产精品欧美久久久| 国产精品免费看久久久香蕉| 亚洲欧美精品一区| 国产精品一区二区av影院萌芽| 91精品免费久久久久久久久| x99av成人免费| 国产午夜精品美女视频明星a级| 欧美激情一区二区三区成人| 黄网动漫久久久| 亚洲国产精品久久久久久| 91产国在线观看动作片喷水| 久久久精品美女| 亚洲国产精品久久久久秋霞蜜臀| 午夜精品久久久久久久久久久久| 久久亚洲精品一区| 成人免费淫片视频软件| 91久久精品日日躁夜夜躁国产| 中文字幕一区日韩电影| 亚洲午夜色婷婷在线| 欧美国产精品人人做人人爱| 亚洲欧洲av一区二区| 日韩欧美在线字幕| 亚洲电影免费在线观看| 欧美激情亚洲综合一区| 最新中文字幕亚洲| 欧美激情久久久久久| 亚洲国产精久久久久久久| 欧美日韩国产va另类| 欧美黄色小视频| 亚洲精品美女久久| 国产在线999| 久久久久久网址| 久久97精品久久久久久久不卡| 国产一区二区三区视频免费| 国产精品高清网站| 中文字幕在线观看亚洲| 中文字幕亚洲天堂| 国内精品久久久久伊人av| 国产精品美女呻吟| 亚洲精品视频在线播放| 91夜夜未满十八勿入爽爽影院| 久久成人精品电影| 少妇久久久久久| 欧美精品aaa| 日韩视频中文字幕| 亚洲精品美女免费| 国产一区二区欧美日韩| 国产精品av免费在线观看| 理论片在线不卡免费观看| 欧美精品videosex性欧美| 欧美乱人伦中文字幕在线| 一本色道久久88综合亚洲精品ⅰ| 亚洲另类图片色| 午夜精品一区二区三区在线视| 色午夜这里只有精品| 欧美日本啪啪无遮挡网站| 国产精品一香蕉国产线看观看| 日韩在线观看免费全| 色狠狠av一区二区三区香蕉蜜桃| 国产精品99久久久久久久久久久久| 亚洲一区二区三区成人在线视频精品| 国产日韩精品在线播放| 日韩电视剧免费观看网站| 亚洲第一精品自拍| 日韩美女视频免费看| 成人黄色中文字幕| 久久亚洲精品小早川怜子66| 日韩av电影国产| 国产精品成熟老女人| 亚洲欧美一区二区三区久久| 国产日韩欧美在线| 亚洲国产精彩中文乱码av在线播放| 亚洲专区在线视频| 国产精品偷伦一区二区| 欧美日韩中文在线| 5566日本婷婷色中文字幕97| 精品中文字幕视频| 欧美成人国产va精品日本一级| 日韩一区在线视频| 日韩黄色高清视频| 国产91亚洲精品| 亚洲tv在线观看| 日av在线播放中文不卡| 亚洲香蕉在线观看| 亚洲精品久久久久久久久久久| 日韩成人在线视频| 51午夜精品视频| 欧美在线免费视频| 91网站在线看| 伊人青青综合网站| 久久夜色精品国产| 91国产精品视频在线| 国产区精品在线观看| 欧美亚洲第一页| 91手机视频在线观看| 国产精品嫩草影院久久久| 日韩在线视频线视频免费网站| 最新国产精品拍自在线播放| 91久久嫩草影院一区二区| 国产精品久久久久久久久| 国产精品视频在线播放| 久久久久久久国产精品视频| 国产欧美精品日韩| 日本精品一区二区三区在线| 欧美精品久久久久久久久久| 国产成人啪精品视频免费网| 国产欧美婷婷中文| 欧美日韩国产在线看| 亚洲国产欧美在线成人app| 日韩免费在线观看视频| xvideos成人免费中文版| 亚洲自拍偷拍在线| 91夜夜揉人人捏人人添红杏| 亚洲人成77777在线观看网| 欧美大尺度在线观看| 久久精品国产96久久久香蕉| 亚洲人成在线一二| 亚洲人成啪啪网站| 国产女人18毛片水18精品| 国产97在线视频| 色yeye香蕉凹凸一区二区av| 久久在精品线影院精品国产| 亚洲电影免费观看高清完整版在线| 亚洲精品美女在线观看| 91精品在线影院| 91精品视频免费| 国产日韩欧美综合| 欧美精品videosex极品1| 亚洲精品乱码久久久久久按摩观| 日本国产高清不卡| 亚洲电影中文字幕| 不卡av在线网站| 人体精品一二三区|