@@ -47,7 +47,6 @@ final class Highlighter
4747 private readonly ParseTokens $ parseTokens ;
4848 private readonly GroupTokens $ groupTokens ;
4949 private readonly RenderTokens $ renderTokens ;
50- private readonly TextLanguage $ fallbackLanguage ;
5150 private array $ patterns = [];
5251 private array $ afterInjections = [];
5352 /** @var array<int, Injection[]> */
@@ -56,8 +55,10 @@ final class Highlighter
5655 private array $ afterInjectionsCache = [];
5756 private ?self $ nestedHighlighter = null ;
5857
59- public function __construct (private readonly Theme $ theme = new CssTheme ())
60- {
58+ public function __construct (
59+ private readonly Theme $ theme = new CssTheme (),
60+ private readonly Language |null $ fallbackLanguage = new TextLanguage (),
61+ ) {
6162 $ this ->addLanguage (new ApacheLanguage ())
6263 ->addLanguage (new BashLanguage ())
6364 ->addLanguage (new BBCodeLanguage ())
@@ -85,7 +86,6 @@ public function __construct(private readonly Theme $theme = new CssTheme())
8586 ->addLanguage (new IniLanguage ())
8687 ->addLanguage (new TwigLanguage ());
8788
88- $ this ->fallbackLanguage = new TextLanguage ();
8989 $ this ->parseTokens = new ParseTokens ();
9090 $ this ->groupTokens = new GroupTokens ();
9191 $ this ->renderTokens = new RenderTokens ($ this ->theme );
@@ -119,12 +119,14 @@ public function addLanguage(Language $language): self
119119 return $ this ;
120120 }
121121
122- public function parse (string $ content , string |Language $ language ): string
122+ public function parse (string $ content , null | string |Language $ language ): string
123123 {
124124 if (is_string ($ language )) {
125- $ language = $ this ->languages [$ language ] ?? $ this -> fallbackLanguage ;
125+ $ language = $ this ->languages [$ language ] ?? null ;
126126 }
127127
128+ $ language ??= $ this ->fallbackLanguage ;
129+
128130 $ this ->currentLanguage = $ language ;
129131
130132 $ content = $ this ->normalizeNewline ($ content );
0 commit comments