1

我正在使用 Curses::UI 在 Perl 中开发我的第一个基于 Curses 的应用程序。我想知道是否可以在 TextEditor 中为特定单词着色(不是使用-fg 的全部内容)。这将用于语法突出显示。

干杯!

布拉德

4

1 回答 1

2

这是可能的,但可能需要您扩展或继承 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 分钟的时间来玩。多花一点时间,你可能会得到更好的结果。

所以。可能的?是的。简单的?也许不吧。仍然存在标记编辑器内容以突出显示的问题。

于 2013-08-20T18:28:53.570 回答