2014-03-19 41 views
5

是否有可能像在Delphi IDE中突出顯示編譯器錯誤時那樣在活動編輯器窗口中突出顯示特定行?如何在源代碼編輯器中使用OpenToolsAPI突出顯示特定行

+0

你想還添加了一個消息給個消息窗口? –

+0

我的猜測*是不可能直接使用OTAPI,因爲沒有關於控制代碼編輯器的繪製。像Castalia這樣的插件做低級別的黑客來截取控制畫,而我並不具體瞭解它們是什麼 - 一個例子是這裏的一個非常有用的答案。請注意,由於代碼摺疊等原因,確切地確定特定行的位置也很複雜。 –

+0

@UliGerhardt不,我不知道。我唯一想要的是讓用戶注意選定的一行代碼。 –

回答

7

如果它確定,只是去到某行的最上面的編輯器,然後嘗試這個辦法:

procedure GotoLine(LineNumber: Integer); 
var 
    EditorServices: IOTAEditorServices; 
    Buffer: IOTAEditBuffer; 
    Position: IOTAEditPosition; 
begin 
    if not Supports(BorlandIDEServices, IOTAEditorServices, EditorServices) then 
    Exit; 
    Buffer := EditorServices.TopBuffer; 
    if not Assigned(Buffer) then 
    Exit; 
    Position := Buffer.EditPosition; 
    if not Assigned(Position) then 
    Exit; 
    Position.GotoLine(LineNumber); 
    Buffer.TopView.Paint; 
end; 
相關問題