我正在使用 Curses::UI 在 Perl 中开发我的第一个基于 Curses 的应用程序。我想知道是否可以在 TextEditor 中为特定单词着色(不是使用-fg 的全部内容)。这将用于语法突出显示。
干杯!
布拉德
这是可能的,但可能需要您扩展或继承 Curses::UI::TextEditor。这是因为 TextEditor 类似乎逐行呈现其内容。
我draw_text
对 Curses::UI::TextEditor 的方法做了一点小改动,以向我自己证明它可以做到:
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 分钟的时间来玩。多花一点时间,你可能会得到更好的结果。
所以。可能的?是的。简单的?也许不吧。仍然存在标记编辑器内容以突出显示的问题。