最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年03月02日 11:21:54   投稿:mrr  
這篇文章主要介紹了Python打造出適合自己的定制化Eclipse IDE的相關(guān)資料,需要的朋友可以參考下

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

 

在本篇文章中,我們將共同了解如何利用Python與EASE設(shè)置Eclipse環(huán)境,同時考量多種利用Python強化IDE方案的可行途徑。

設(shè)置并運行“Hello World”

今天文章中所涉及的各項示例基于Python Java實現(xiàn)方案,即Jython。大家可以直接將EASE安裝至現(xiàn)有Eclipse IDE當中。不過在此次示例內(nèi),我們采用Eclipse Mars并安裝EASE本體、其模塊以及Jython引擎。

在Eclipse安裝對話框之內(nèi)(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開發(fā)者資源)
EASE modules (Incubation) (EASE模塊,孵化)
如此一來,我們就能夠使用EASE及其各項模塊。在這里我們主要需要使用的是資源模塊,其允許我們訪問Eclipse工作區(qū)、項目以及文件API。

 

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

print "hello world"

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

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

改進代碼質(zhì)量

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

首先在工作區(qū)內(nèi)復(fù)制文件,而后右鍵點擊對應(yīng)文件并選擇“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()) 

如果大家已經(jīng)擁有部分包含printStackTraces的Java文件,則可以在編輯器邊緣處的任務(wù)視圖內(nèi)查看到新近創(chuàng)建的標記。

 

繁瑣任務(wù)自動化處理

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

要運行這套腳本,將該文件復(fù)制至工作區(qū),而后右鍵點擊這個文件并選擇“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) 

結(jié)果就是,每個已打開項目都將擁有一個README.md文件,而Java與Python項目則擁有額外的描述行。

 

新功能原型設(shè)計

大家也可以利用Python腳本對大部分所需功能進行快速修復(fù),或者將其作為原型設(shè)計以幫助團隊成員或者用戶了解如何使用這項新功能。舉例來說,Eclipse IDE目前尚不支持對正在處理的文件進行自動保存。雖然這項功能肯定會在未來的版本中出現(xiàn),但大家仍然可以自己動手讓當前文件每隔30秒或者在編輯器被關(guān)閉時進行自動保存。以下為主方法中的代碼片段。點擊以下鏈接查看完整源代碼: 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內(nèi)的對話框中勾選“Allow Scripts to run code in UI thread”(允許腳本在UI線程內(nèi)運行代碼)選項。如此一來,大家就能夠?qū)⒃撐募砑拥焦ぷ鳟斨?,右鍵對其進行點擊并選擇“Run as -> EASE script”。每當編輯器進行保存操作時,控制臺視圖中都會輸出一條保存信息。而要關(guān)閉自動保存功能,大家只需在控制臺視圖內(nèi)點擊“Terminate”紅色按鈕停止該腳本即可。

 

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

EASE的最佳特性之一在于允許大家使用自己的腳本,同時將其快速鉤入IDE內(nèi)的UI元素——作為新按鈕或者新的菜單條目。不需要編寫Java代碼或者使用新插件,只須在腳本標題處添加幾行內(nèi)容即可——就是這么簡單。

以下示例為一套簡單腳本,負責(zé)為我們創(chuàng)建三個新項目:

# name : Create fruit projects 
# toolbar : Project Explorer 
# description : Create fruit projects 
loadModule("/System/Resources") 
for name in ["banana", "pineapple", "mango"]: 
createProject(name) 

指向EASE的注釋行負責(zé)向項目管理器工具欄添加一個新按鈕。下面展示的是另一套腳本,負責(zé)在同一工具欄內(nèi)添加另一個按鈕,從而將這三個項目徹底刪除。點擊以下鏈接查看其源代碼: 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。此項目現(xiàn)在已經(jīng)成為腳本文件存放的默認位置。這時大家應(yīng)該可以在項目管理器內(nèi)直接查看到這些按鈕,而不必進行IDE重啟。利用這些新按鈕,我們能夠快速創(chuàng)建并刪除這三個對應(yīng)項目。

 

與第三方工具相集成

大家可能隨時需要使用Eclipse生態(tài)系統(tǒng)之外的工具選項(而且必須承認,雖然Eclipse本身非常強大,但仍有力有不逮的領(lǐng)域)。對于此類場景,大家可以非常便捷地將封包請求與工具調(diào)用添加到腳本當中。以下示例允許大家集成explorer.exe,同時將其添加到內(nèi)容菜單當中,這樣我們就可以利用現(xiàn)有選擇隨時打開文件瀏覽器了。點擊以下鏈接查看其源代碼: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()]) 

為了讓該菜單得到正確顯示,我們需要將該腳本添加至一個新項目當中——我們?nèi)匀粚⑵浞Q為“ScriptsProject”。接下來前往Windows > Preference > Scripting > Script Locations。點擊“Add Workspace”按鈕并選擇ScriptsProject?,F(xiàn)在,大家應(yīng)該能夠在右鍵某個文件后看到該新菜單條目顯示在彈出菜單當中。點擊以打開文件瀏覽器。(需要注意的是,這項功能目前已經(jīng)存在于Eclipse當中,但這里我們只是將其作為示例,用于解釋其它第三方工具的集成方式。)

 

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

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

相關(guān)文章

  • Python中的各種裝飾器詳解

    Python中的各種裝飾器詳解

    這篇文章主要介紹了Python中的各種裝飾器詳解,Python裝飾器分兩部分,一是裝飾器本身的定義,一是被裝飾器對象的定義,本文分別講解了各種情況下的裝飾器,需要的朋友可以參考下
    2015-04-04
  • pyQt4實現(xiàn)俄羅斯方塊游戲

    pyQt4實現(xiàn)俄羅斯方塊游戲

    這篇文章主要為大家詳細介紹了pyQt4實現(xiàn)俄羅斯方塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 基于python if 判斷選擇結(jié)構(gòu)的實例詳解

    基于python if 判斷選擇結(jié)構(gòu)的實例詳解

    代碼執(zhí)行結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。這篇文章主要介紹了python if 判斷選擇結(jié)構(gòu)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Python 內(nèi)置函數(shù)進制轉(zhuǎn)換的用法(十進制轉(zhuǎn)二進制、八進制、十六進制)

    Python 內(nèi)置函數(shù)進制轉(zhuǎn)換的用法(十進制轉(zhuǎn)二進制、八進制、十六進制)

    這篇文章主要介紹了使用Python內(nèi)置函數(shù):bin()、oct()、int()、hex()可實現(xiàn)進制轉(zhuǎn)換的一些用法,需要的朋友可以參考下
    2018-04-04
  • Python用61行代碼實現(xiàn)圖片像素化的示例代碼

    Python用61行代碼實現(xiàn)圖片像素化的示例代碼

    這篇文章主要介紹了Python用61行代碼實現(xiàn)圖片像素化的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Python超簡單分析評論提取關(guān)鍵詞制作精美詞云流程

    Python超簡單分析評論提取關(guān)鍵詞制作精美詞云流程

    這篇文章主要介紹了使用Python來分析評論并且提取其中的關(guān)鍵詞,用于制作精美詞云的方法,感興趣的朋友來看看吧
    2022-03-03
  • 如何在C++中調(diào)用Python

    如何在C++中調(diào)用Python

    雖然現(xiàn)在Python編程語言十分的火爆,但是實際上非要用一門語言去完成所有的任務(wù),并不是說不可以,而是不合適。在一些特定的、對于性能要求比較高的場景,還是需要用到傳統(tǒng)的C++來進行編程的。本文將用C++的代碼去調(diào)用Python函數(shù)中實現(xiàn)的一些功能
    2021-05-05
  • Python列表中多元素刪除(移除)的實現(xiàn)

    Python列表中多元素刪除(移除)的實現(xiàn)

    本文主要介紹了Python列表中多元素刪除(移除)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python 利用toapi庫自動生成api

    python 利用toapi庫自動生成api

    這篇文章主要介紹了python 利用toapi庫自動生成api,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • Python按天實現(xiàn)生成時間范圍序列的方法詳解

    Python按天實現(xiàn)生成時間范圍序列的方法詳解

    有的時候我們希望生成一段時間返回,比如從?2022-01-01?00:00:00?后面的?10?天,這么?10?個?datetime?對象,但是我們又不想自己去計算哪些月有30天哪些月有31天。所以本文將用Python實現(xiàn)按天自動生成時間范圍序列,需要的可以參考一下
    2022-11-11

最新評論

石首市| 西华县| 冕宁县| 游戏| 汉阴县| 中阳县| 温宿县| 寿宁县| 江津市| 东丰县| 永嘉县| 曲靖市| 白银市| 庆云县| 忻城县| 泸溪县| 称多县| 屏东市| 通化市| 海伦市| 蒙城县| 汪清县| 鲜城| 轮台县| 沈阳市| 曲周县| 喀什市| 垦利县| 监利县| 故城县| 河源市| 霍林郭勒市| 沂水县| 集安市| 博兴县| 安国市| 滕州市| 筠连县| 科技| 庐江县| 武穴市|