Highlighter now works on the whole line.
This commit is contained in:
Родитель
51ff1df98c
Коммит
d53819824f
|
@ -1,4 +1,6 @@
|
|||
using Esprima;
|
||||
using Spectre.Console;
|
||||
using Spectre.Console.Rendering;
|
||||
|
||||
namespace RadLine.Examples
|
||||
{
|
||||
|
@ -41,10 +43,9 @@ namespace RadLine.Examples
|
|||
|
||||
return highlighter;
|
||||
}
|
||||
|
||||
public Style Highlight(string token)
|
||||
public IRenderable BuildHighlightedText(string text)
|
||||
{
|
||||
return _highlighter.Highlight(token);
|
||||
return _highlighter.BuildHighlightedText(text);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
using Spectre.Console;
|
||||
using Spectre.Console.Rendering;
|
||||
|
||||
namespace RadLine
|
||||
{
|
||||
public interface IHighlighter
|
||||
{
|
||||
Style? Highlight(string token);
|
||||
IRenderable BuildHighlightedText(string text);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -239,14 +239,7 @@ namespace RadLine
|
|||
return new Text(text);
|
||||
}
|
||||
|
||||
var paragraph = new Paragraph();
|
||||
foreach (var token in StringTokenizer.Tokenize(text))
|
||||
{
|
||||
var style = string.IsNullOrWhiteSpace(token) ? null : highlighter.Highlight(token);
|
||||
paragraph.Append(token, style);
|
||||
}
|
||||
|
||||
return paragraph;
|
||||
return highlighter.BuildHighlightedText(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Spectre.Console;
|
||||
using Spectre.Console.Rendering;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace RadLine
|
||||
{
|
||||
|
@ -19,10 +21,22 @@ namespace RadLine
|
|||
return this;
|
||||
}
|
||||
|
||||
Style? IHighlighter.Highlight(string token)
|
||||
IRenderable IHighlighter.BuildHighlightedText(string text)
|
||||
{
|
||||
_words.TryGetValue(token, out var style);
|
||||
return style;
|
||||
var paragraph = new Paragraph();
|
||||
foreach (var token in StringTokenizer.Tokenize(text))
|
||||
{
|
||||
if (_words.TryGetValue(token, out var style))
|
||||
{
|
||||
paragraph.Append(token, style);
|
||||
}
|
||||
else
|
||||
{
|
||||
paragraph.Append(token, null);
|
||||
}
|
||||
}
|
||||
|
||||
return paragraph;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче