xtermjs/xterm.js

Actively detect links under the cursor when lines change

開放

#4,323 建立於 2022年12月16日

 (2 則留言) (0 個反應) (0 位負責人)TypeScript (1,574 個分叉)batch import
area/linkshelp wantedtype/enhancement

倉庫指標

星標
 (16,196 顆星)
PR 合併指標
 (平均合併 2天 10小時) (30 天內合併 16 個 PR)

描述

The PR https://github.com/xtermjs/xterm.js/pull/4298 made it so that an active link under the cursor would be re-evaluated instead of thrown away when the line changes, but we also want to capture this case:

Recording 2022-12-09 at 09 19 23

Repro:

  1. Fill viewport
  2. Run echo -n "http://example.com/" && sleep 1 && echo -n "a" && sleep 1 && echo -n "b" && sleep 1 && echo -n "c" && sleep 1 && echo -n " x" && sleep 1 && echo -n "x" && sleep 1 && echo "x" && sleep 1 && echo "y" && sleep 1 && echo "y" && sleep 1 && echo "y"
  3. Put cursor above http://example.com/, when a line is added such that the cursor is over the link, the link should get an underline and clicking should activate it, without needing to move the cursor beforehand

This change makes this happen but will result in a lot of work:

    this._renderService.onRenderedViewportChange(e => {
      if (this._lastMouseEvent) {
        this._handleMouseMove(this._lastMouseEvent);
      }
    });

Can augment the above, the solution in #4298, some debouncing and possible some other form of caching to save some CPU cycles?

貢獻者指南