GNU bug report logs -
#61726
[PATCH] Eglot: Support positionEncoding capability
Previous Next
Reported by: Augusto Stoffel <arstoffel <at> gmail.com>
Date: Thu, 23 Feb 2023 08:06:01 UTC
Severity: normal
Tags: patch
Done: João Távora <joaotavora <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #212 received at 61726 <at> debbugs.gnu.org (full text, mbox):
> From: Augusto Stoffel <arstoffel <at> gmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>, 61726 <at> debbugs.gnu.org
> Date: Sun, 26 Feb 2023 00:57:42 +0100
>
> The linear cousin of "lsp-abiding" is very similar to the
> function that Eli wrote:
>
> (defun eglot-move-to-lsp-abiding-column-linearly (column)
> "Move to COLUMN as computed using the LSP `utf-16' criterion."
> (let* ((bol (line-beginning-position))
> (goal-char (+ bol column))
> (eol (line-end-position)))
> (goto-char bol)
> (while (and (< (point) goal-char)
> (< (point) eol))
> (if (<= #x010000 (char-after) #x10ffff)
> (setq goal-char (1- goal-char)))
> (forward-char 1))))
>
> It would be very hard to believe they have different performance
> characteristics. In fact, in some hastily done tests, I get the
> following relative running times:
>
> eglot-move-to-colum: 1.0
> eglot-move-to-lsp-abiding-column-linearly: 8.4
> eglot-move-to-bytewise-column: 8.0
> eglot-move-to-lsp-abiding-column: 14.4
The current version of eglot-move-to-lsp-abiding-column calls
encode-coding-region in the loop, which I guess is the main reason for
its being slower.
This bug report was last modified 2 years and 138 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.