自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Eclipse JDT的自定義跳轉(zhuǎn)功能

開發(fā) 后端
本文介紹Eclipse JDT的自定義跳轉(zhuǎn)功能,比如說從定義的跳轉(zhuǎn)標(biāo)簽跳轉(zhuǎn)到父類中去等等。這個(gè)功能通過org.eclipse.ui.workbench.texteditor.hyperlinkDetectors跳轉(zhuǎn)點(diǎn)實(shí)現(xiàn)。

之前51CTO曾介紹過六大便捷Eclipse JDT特性,應(yīng)該說Eclipse JDT對(duì)于Java開發(fā)者而言是很方便的。下面將介紹其中的自定義跳轉(zhuǎn)功能。

在JDT中,可以在一個(gè)類上進(jìn)行跳轉(zhuǎn),或者是方法,或者是變量進(jìn)行跳轉(zhuǎn)。這個(gè)功能相當(dāng)方法,使用也很簡單:在欲跳轉(zhuǎn)的對(duì)象上按ctrl+鼠標(biāo)左鍵即可。

但是如果我們想提供一個(gè)自定義的跳轉(zhuǎn)功能怎么辦?這個(gè)功能可能有機(jī)會(huì)用的不多,但是如果我們需要,那我們就需要知道怎么用。對(duì)吧?

為了演示,這里我假定我想實(shí)現(xiàn)一個(gè)以下功能的跳轉(zhuǎn):

在方法或其他地方注釋里可以聲明一個(gè)“@super”標(biāo)簽,然后在這個(gè)標(biāo)簽上點(diǎn)鏈接的時(shí)候,會(huì)跳到這個(gè)類的父類里去。

為了實(shí)現(xiàn)跳轉(zhuǎn),首先我們需要知道擴(kuò)展哪個(gè)擴(kuò)展點(diǎn)才能實(shí)現(xiàn)這個(gè)功能:org.eclipse.ui.workbench.texteditor.hyperlinkDetectors

這個(gè)擴(kuò)展點(diǎn)就是用來擴(kuò)展鏈接功能的擴(kuò)展點(diǎn),當(dāng)然這后面的話就比較多,總體說來就是在editor的configuration里有一個(gè)getHyperlinkDetects()方法,用來得到所有的鏈接偵聽定義。

你可以直接在這個(gè)方法中返回你的定義,不過在jdt,它是通過讀取上面這個(gè)擴(kuò)展點(diǎn)的所有定義來實(shí)現(xiàn)的。這也給我們一個(gè)提示:如果我們要實(shí)現(xiàn)一個(gè)自已的鏈接,最好也是去讀這個(gè)擴(kuò)展點(diǎn)。

下面就是擴(kuò)展點(diǎn)的聲明了。下面是一個(gè)例子:

  1. < extension>   
  2.    < extension 
  3.       point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors"> 
  4.    < hyperlinkDetector 
  5.          activate="true" 
  6.          class="#className" 
  7.          id="#id" 
  8.          name="Link Control" 
  9.          targetId="org.eclipse.jdt.ui.javaCode"> 
  10.    < /hyperlinkDetector> 
  11. < /extension>   

這里要注意的就是這個(gè)targetId,表示這個(gè)鏈接偵聽是對(duì)誰來說的。否則真要把所有的擴(kuò)展都加到j(luò)ava上去了。所以如果想擴(kuò)展java,這個(gè)targetId就應(yīng)該像上面這樣寫。

最后剩下的就是實(shí)現(xiàn)那個(gè)類了。

這個(gè)類需要繼承:AbstractHyperlinkDetector,然后實(shí)現(xiàn)他的一個(gè)方法:

  1. detectHyperlinks(ITextViewer textViewer,  
  2.    IRegion region, boolean canShowMultipleHyperlinks)     

在這個(gè)方法里返回一個(gè)IHyperLink[]對(duì)象,或者是返回空。你需要做的其實(shí)就是判斷你當(dāng)前選中的內(nèi)容范圍,然后判斷是否要起用一個(gè)鏈接。例如上面說的“@super”,當(dāng)前的內(nèi)容是“super”,你可以往前追加一個(gè),判斷是否是"@",然后再往最前和最后追加一個(gè),判斷是否是空格。如果是,那你就應(yīng)該返回一個(gè)IHyperLink[]對(duì)象。

如果返回空,那按ctrl+鼠標(biāo)左鍵時(shí)沒有反應(yīng),否則會(huì)出現(xiàn)一個(gè)手形和一條鏈接線,就像其他的鏈接一樣。

最后就是實(shí)現(xiàn)你的IHyperLink對(duì)象了,顯然,這個(gè)需要實(shí)現(xiàn)IHyperLink接口。

最后試試效果,如果你做的沒錯(cuò)的話,那就OK了。有需要的話,就試試看Eclipse JDT的自定義跳轉(zhuǎn)功能吧。

編輯推薦】

  1. 六大便捷Eclipse JDT特性一覽
  2. 部署Eclipse RAP到Tomcat的步驟詳解
  3. Eclipse 3.5插件安裝與卸載的10個(gè)小竅門
  4. Eclipse平臺(tái)應(yīng)用與開發(fā)專題
  5. Eclipse 3.5年度穩(wěn)定版現(xiàn)已公開測試
責(zé)任編輯:yangsai 來源: JavaEye博客
相關(guān)推薦

2009-06-08 20:13:36

Eclipse自定義控

2009-07-27 16:43:51

自定義Eclipse菜

2023-07-21 19:16:59

OpenAIChatGPT

2012-07-24 15:03:19

OpenStack架構(gòu)

2009-06-17 14:13:10

Eclipse常用技巧

2015-01-15 16:45:05

iOS源碼自定義畫圖

2009-04-23 09:05:08

IE8llq自定義功能

2013-03-28 11:32:07

微信菜單輕App

2016-11-16 21:55:55

源碼分析自定義view androi

2011-06-23 10:49:13

Qt 自定義信號(hào)

2016-02-26 14:57:50

飛象網(wǎng)

2022-06-06 09:01:16

SwiftUI自定義導(dǎo)航

2010-10-25 16:05:07

oracle自定義函數(shù)

2015-02-12 15:33:43

微信SDK

2010-05-06 14:50:23

Unix系統(tǒng)功能鍵

2015-01-14 15:06:48

定義相機(jī)

2015-02-12 15:38:26

微信SDK

2009-07-06 16:59:26

JSP自定義標(biāo)簽

2015-07-22 10:57:36

watchOS圖表自定義

2010-09-14 16:47:23

SQL自定義函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)