IOTAHighlighter не зовет Tokenize - PullRequest
       47

IOTAHighlighter не зовет Tokenize

0 голосов
/ 05 октября 2018

Я пытаюсь написать простой подсветчик (который добавляет подсветку определенного типа переменной в pas-файл)

Я использовал код в http://www.delphi -central.com / syntax_highlighting.aspx

Проблема в том, что процедура Tokenize никогда не вызывается.Он регистрируется в процедуре Register:

RegisterPackageWizard(TSimpleHighlight.Create);

или, в качестве альтернативы, в конструкторе:

(BorlandIDEServices As IOTAHighlightServices).AddHighlighter(TSimpleHighlight.Create);

, и GetName вызывается при запуске меню Tools.Options

фрагмент кода:

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-файлов, или я что-то упустил?

...