2012-06-11 12 views
1

我正在尋找我的插件訪問編輯器中光標位置的右側擴展點。目的是爲插件視圖中的當前代碼行提供附加信息。 我確定它是可能的,因爲例如大綱視圖突出顯示了我所處的當前函數。 THX在eclipse Plugin中獲取行號

+0

也許:getCursorPosition,該字符串可能包含rigate信息,我如何獲得當前編輯器的句柄 – eactor

回答

1

您可以使用textSelection.getOffset()從你找到的模式,然後使用org.eclipse.jface.text.IDocument接口從文檔中提取文本做任何你想要分析什麼。

ITextEditor textEditor = (ITextEditor)editor; 
IDocumentProvider dp = editor.getDocumentProvider(); 
IDocument doc = dp.getDocument(editor.getEditorInput()); 

IDocument有方法來在字符偏移量和行之間來回轉換。

1

下面的代碼我想要做

import org.eclipse.ui.IWorkbench; 
import org.eclipse.ui.PlatformUI; 
import org.eclipse.ui.IWorkbenchPage; 
import org.eclipse.ui.IEditorPart; 
import org.eclipse.ui.texteditor.ITextEditor; 
import org.eclipse.jface.viewers.ISelectionProvider; 
import org.eclipse.jface.viewers.ISelection;   

IWorkbench wb = PlatformUI.getWorkbench(); 
IWorkbenchWindow win = wb.getActiveWorkbenchWindow(); 
IWorkbenchPage page = win.getActivePage(); 
IEditorPart editor = page.getActiveEditor(); 
if(editor instanceof ITextEditor){ 
    ISelectionProvider selectionProvider = ((ITextEditor)editor).getSelectionProvider(); 
    ISelection selection = selectionProvider.getSelection(); 
    if (selection instanceof ITextSelection) { 
     ITextSelection textSelection = (ITextSelection)selection; 
     System.out.println("startline:"+textSelection.getStartLine()); 
    } 
}