123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- program test_extraclasses;
- {$mode objfpc}{$H+}
- uses
- SysUtils, Classes, syntax.highlighter, syntax.javascript, syntax.htmlrender;
- var
- jsHighlighter: TJavaScriptSyntaxHighlighter;
- renderer: THtmlSyntaxRenderer;
- tokens: TSyntaxTokenArray;
- output: string;
- jsCode: string;
- begin
- WriteLn('Testing ExtraClasses Property:');
- WriteLn('=============================');
- jsCode := 'var x = 42;';
- WriteLn('Original JavaScript: ', jsCode);
- WriteLn;
- jsHighlighter := TJavaScriptSyntaxHighlighter.Create;
- renderer := THtmlSyntaxRenderer.Create;
- try
- tokens := jsHighlighter.Execute(jsCode);
- // Test default (no extra classes)
- renderer.ExtraClasses := '';
- renderer.RenderTokensToString(tokens, output);
- WriteLn('Default (no extra classes):');
- WriteLn(output);
- WriteLn;
- // Test with single extra class
- renderer.ExtraClasses := 'syntax-highlight';
- renderer.RenderTokensToString(tokens, output);
- WriteLn('With single extra class "syntax-highlight":');
- WriteLn(output);
- WriteLn;
- // Test with multiple extra classes
- renderer.ExtraClasses := 'code-block theme-dark line-1';
- renderer.RenderTokensToString(tokens, output);
- WriteLn('With multiple extra classes "code-block theme-dark line-1":');
- WriteLn(output);
- WriteLn;
- // Test with hroNoDefaultSpan option
- renderer.Options := [hroNoDefaultSpan];
- renderer.ExtraClasses := 'no-default-spans';
- renderer.RenderTokensToString(tokens, output);
- WriteLn('With hroNoDefaultSpan + extra classes "no-default-spans":');
- WriteLn(output);
- WriteLn;
- finally
- renderer.Free;
- jsHighlighter.Free;
- end;
- WriteLn('Press Enter to exit.');
- ReadLn;
- end.
|