我正在尝试编写一个简单的荧光笔(它在 pas 文件中添加突出显示某种变量)
我使用了http://www.delphi-central.com/syntax_highlighting.aspx中的代码
问题是永远不会调用 Tokenize 过程。它确实通过以下方式在注册程序中注册:
RegisterPackageWizard(TSimpleHighlight.Create);
或者在构造函数中通过:
(BorlandIDEServices As IOTAHighlightServices).AddHighlighter(TSimpleHighlight.Create);
当我启动菜单 Tools.Options 时调用 GetName
代码片段:
TSimpleHighlight = class(TNotifierObject, IUnknown, IOTANotifier, IOTAHighlighter, IOTAWizard)
public
function GetIDString: string;
function GetName: string;
procedure Tokenize(StartClass: TOTALineClass; LineBuf: POTAEdChar;
LineBufLen: TOTALineSize; HighlightCodes: POTASyntaxCode);
function TokenizeLineClass(StartClass: TOTALineClass;
LineBuf: POTAEdChar; LineBufLen: TOTALineSize): TOTALineClass;
function GetState: TWizardState;
procedure Execute;
constructor Create;
end;
procedure Register;
begin
RegisterPackageWizard(TSimpleHighlight.Create);
end;
constructor TSimpleHighlight.Create;
begin
inherited;
(BorlandIDEServices as IOTAHighlightServices).AddHighlighter(Self);
end;
该教程提到“使用 OTA,您可以为新的源文件类型创建荧光笔”。那么我是否必须以某种方式为pas文件注册它,还是我错过了其他东西?