delphi - IOTAHighlighter 没有调用 Tokenize
问题描述
我正在尝试编写一个简单的荧光笔(它在 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文件注册它,还是我错过了其他东西?
解决方案
推荐阅读
- r - R ifelse:查找是否有任何列满足条件
- google-apps-script - 从 Google 表格发送短信,错误:没有收件人
- node.js - 如何在 HBS 模板中仅打印当前用户
- sql - 如何从具有重复值的列表中获取最新的 Date 和 TotalEnrollments
- python-3.x - 抗锯齿;如何正确插入对角线?
- delphi - Corel Paradox ODBC 驱动程序
- google-apps-script - Apps 脚本 - UrlFetchApp.fetch {url, method: "GET"} 到 gzip 失败,代码为 406
- android - 锁屏中的前台服务通知
- reactjs - debounce react-jsonschema-form 验证函数
- python - str.split 错误列必须与键长度相同,多列