我正在使用Curses :: UI在Perl中开发我的第一个基于Curses的应用程序。我想知道是否可以在TextEditor中为特定单词着色(不是使用-fg的整个事物)。 这将用于语法高亮。
干杯!
布拉德
答案 0 :(得分:2)
可能,但可能需要您扩展或子类化Curses::UI::TextEditor。这是因为TextEditor类似乎逐行呈现其内容。
我做了一点摆弄Curses :: UI :: TextEditor的draw_text
方法来向我自己证明它可以完成:
sub draw_text(;$)
{
# ...
for my $id (0 .. $this->canvasheight - 1)
{
my $line_number = sprintf( "%04d", $id );
$this->{-canvasscr}->attron( A_REVERSE );
$this->{-canvasscr}->addstr( $line_number );
$this->{-canvasscr}->attroff( A_REVERSE );
# ...
这会在每行上放置一个反色块,当前行号。当然,它没有像我预期的那样放在线的前面,但我只有大约10分钟的时间来玩。你可以用更多的时间获得更好的结果。
因此。可能?是。简单?也许不吧。仍然存在将编辑器内容标记为突出显示的问题。