TextEditor的基本操作

2022-09-13 19:39:14 字數 2345 閱讀 7828

_part是是action中的ieidtorpart。

如何獲得乙個未被texteditor開啟的檔案的內容:

這個在做「選中檔案並對其中內容進行操作」這種功能時很有用,**如下:

1ifile file 

=((fileeditorinput) workbench.getinstance().getactiveworkbenchwindow().getactivepage()

.getactiveeditor().geteditorinput()).getfile();23

try 

catch

(exception e) 

如何獲得被texteditor開啟的檔案的內容:

只有這個方法才能獲得未儲存的資訊,**如下:

1idocument document 

=((texteditor) _part).getdocumentprovider().getdocument(_part.geteditorinput());

2string textcontent 

=document.get();

可以看到,每個texteditor都有乙個documentprovider,我們通過它來獲得idocument,而idocument中儲存的就有一些字元資訊,就是我們想要的內容。注意getdocument方法的引數其實object型別,也就是說可以傳入任何東東,然後documentprovider會嘗試把它轉換成document。這裡我們傳入的是texteditor的editorinput,是正確的。之後我們再用idocument的get方法就可以得到texteditor的內容啦!

如何獲得在texteditor中選中的內容:

**如下:

1string content 

=((textselection) ((texteditor) _part).getselectionprovider().getselection()).gettext();

雖然phiobos說selectionprovider不是這樣用的,有點兒旁門左到,但是貌似正解的getsourceviewer().getselectedrange()中getsourceviewer()卻是個protected方法,所以沒辦法啦,還好能用就成~

如何把內容寫回texteditor:

知道了idocument這個東東就簡單了~

1document.set(content);

如何替換texteditor中內容的一部分:

對texteditor的操作,最重要的就是這個idocument類,很多功能的實現都是通過它來完成的。idocument包含了texteditor中內容的完整資訊,可以想到,如果要替換texteditor中的一部分內容,要知道的資訊有兩個:被替換**的位置和範圍,替換**。下面的例子中展示了乙個簡單的替換:1//

get the selection object.

2textselection selection 

=(textselection) ((texteditor) _part).getselectionprovider().getselection();3//

get the content of the selection object as a string.

4string source 

=((textselection) ((texteditor) _part).getselectionprovider().getselection()).gettext();5//

get the document of the texteditor's content.

6idocument doc 

=((texteditor) _part).getdocumentprovider().getdocument(_part.geteditorinput());

7try

catch

(badlocationexception e) 

可以看到核心方法是idocument的replace,它的三個引數分別是被替換**的offset,被替換**的length和替換**。我在例子中實現的是替換選中部分的**,所以offset和length可以從textselection物件中得到。

如何在texteditor中插入內容:

感覺上應該有insert之類的方法,但是很遺憾的是並沒有。變通的做法是使用上面所提到的replace方法,把被替換**長度這個引數設定為0就可以了。那麼如果要實現在游標處插入內容,如何得到游標的位置呢?同樣遺憾的是,並沒有專門的方法,而是使用上面提到的getselection.getoffset()。這樣返回的就是游標的位置,而getselection.getlength()返回為0。

TextEditor相關操作

1 取得當前編輯器 geteditor platformui.getworkbench getactiveworkbenchwindow getactivepage getactiveeditor 2 得到檔案的編輯器的方法 public static ieditorpart findeditor ...

的基本操作

命令模式 不可以輸入內容,只能使用命令,進入vi的預設模式 插入模式 可以輸入內容 最底行模式 游標停在最底行,如儲存檔案 命令模式切換到插入模式 按鍵效果 插入到游標所在位置的前邊 a插入到游標所在位置的後邊 o插入到游標所在行的下一行 i插入到游標所在行的行首 a插入到游標所在行的行尾 o插入到...

的基本操作 Linux 基本操作命令總結

每日17點準時技術乾貨分享 linux 基本操作命令 檔案和目錄管理 建立和刪除 建立 mkdir 刪除 rm 刪除非空目錄 rm rf file 目錄 刪除日誌 rm log 等價 find name log exec rm 移動 mv 複製 cp 複製目錄 cp r 建立檔案 touch 檢視 ...