mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-04 11:23:24 +00:00
; Fix last change
* lisp/progmodes/eglot.el (eglot-current-linepos-function) (eglot-utf-8-linepos, eglot-utf-16-linepos) (eglot-utf-32-linepos, eglot-move-to-linepos-function) (eglot-move-to-utf-8-linepos, eglot-move-to-utf-32-linepos): Doc fixes. (Bug#61726)
This commit is contained in:
parent
ca79b138d4
commit
a3d15c1f74
1 changed files with 8 additions and 8 deletions
|
@ -1451,7 +1451,7 @@ CONNECT-ARGS are passed as additional arguments to
|
||||||
'eglot-current-column-function 'eglot-current-linepos-function "29.1")
|
'eglot-current-column-function 'eglot-current-linepos-function "29.1")
|
||||||
|
|
||||||
(defvar eglot-current-linepos-function #'eglot-utf-16-linepos
|
(defvar eglot-current-linepos-function #'eglot-utf-16-linepos
|
||||||
"Function calculating number of code units to line beginning.
|
"Function calculating number of UTF-16 code units from line beginning.
|
||||||
|
|
||||||
This is the inverse operation of
|
This is the inverse operation of
|
||||||
`eglot-move-to-linepos-function' (which see). It is a function of
|
`eglot-move-to-linepos-function' (which see). It is a function of
|
||||||
|
@ -1459,12 +1459,12 @@ no arguments returning the number of code units corresponding to
|
||||||
the current position of point relative to line beginning.")
|
the current position of point relative to line beginning.")
|
||||||
|
|
||||||
(defun eglot-utf-8-linepos ()
|
(defun eglot-utf-8-linepos ()
|
||||||
"Calculate number of code units to line beginning using UTF-8."
|
"Calculate number of UTF-8 bytes from line beginning."
|
||||||
(length (encode-coding-region (line-beginning-position) (point)
|
(length (encode-coding-region (line-beginning-position) (point)
|
||||||
'utf-8-unix t)))
|
'utf-8-unix t)))
|
||||||
|
|
||||||
(defun eglot-utf-16-linepos (&optional lbp)
|
(defun eglot-utf-16-linepos (&optional lbp)
|
||||||
"Calculate number of code units to line beginning using UTF-16.
|
"Calculate number of UTF-16 code units from position given by LBP.
|
||||||
LBP defaults to `line-beginning-position'."
|
LBP defaults to `line-beginning-position'."
|
||||||
(/ (- (length (encode-coding-region (or lbp (line-beginning-position))
|
(/ (- (length (encode-coding-region (or lbp (line-beginning-position))
|
||||||
;; Fix github#860
|
;; Fix github#860
|
||||||
|
@ -1473,7 +1473,7 @@ LBP defaults to `line-beginning-position'."
|
||||||
2))
|
2))
|
||||||
|
|
||||||
(defun eglot-utf-32-linepos ()
|
(defun eglot-utf-32-linepos ()
|
||||||
"Calculate number of code units to line beginning using UTF-32."
|
"Calculate number of Unicode codepoints from line beginning."
|
||||||
(- (point) (line-beginning-position)))
|
(- (point) (line-beginning-position)))
|
||||||
|
|
||||||
(defun eglot--pos-to-lsp-position (&optional pos)
|
(defun eglot--pos-to-lsp-position (&optional pos)
|
||||||
|
@ -1492,7 +1492,7 @@ LBP defaults to `line-beginning-position'."
|
||||||
'eglot-move-to-column-function 'eglot-move-to-linepos-function "29.1")
|
'eglot-move-to-column-function 'eglot-move-to-linepos-function "29.1")
|
||||||
|
|
||||||
(defvar eglot-move-to-linepos-function #'eglot-move-to-utf-16-linepos
|
(defvar eglot-move-to-linepos-function #'eglot-move-to-utf-16-linepos
|
||||||
"Function to move to a column reported by the LSP server.
|
"Function to move to a position within a line reported by the LSP server.
|
||||||
|
|
||||||
Per the LSP spec, character offsets in LSP Position objects count
|
Per the LSP spec, character offsets in LSP Position objects count
|
||||||
UTF-16 code units, not actual code points. So when LSP says
|
UTF-16 code units, not actual code points. So when LSP says
|
||||||
|
@ -1501,13 +1501,13 @@ looking character in the UTF-16 \"supplementary plane\", it
|
||||||
actually means `b', not `c'. The default value
|
actually means `b', not `c'. The default value
|
||||||
`eglot-move-to-utf-16-linepos' accounts for this.
|
`eglot-move-to-utf-16-linepos' accounts for this.
|
||||||
|
|
||||||
This variable also be set to `eglot-move-to-utf-8-linepos' or
|
This variable can also be set to `eglot-move-to-utf-8-linepos' or
|
||||||
`eglot-move-to-utf-32-linepos' for servers not closely following
|
`eglot-move-to-utf-32-linepos' for servers not closely following
|
||||||
the spec. Also, since LSP 3.17 server and client may agree on an
|
the spec. Also, since LSP 3.17 server and client may agree on an
|
||||||
encoding and Eglot will set this variable automatically.")
|
encoding and Eglot will set this variable automatically.")
|
||||||
|
|
||||||
(defun eglot-move-to-utf-8-linepos (n)
|
(defun eglot-move-to-utf-8-linepos (n)
|
||||||
"Move to line's Nth code unit as computed by LSP's UTF-8 criterion."
|
"Move to line's Nth byte as computed by LSP's UTF-8 criterion."
|
||||||
(let* ((bol (line-beginning-position))
|
(let* ((bol (line-beginning-position))
|
||||||
(goal-byte (+ (position-bytes bol) n))
|
(goal-byte (+ (position-bytes bol) n))
|
||||||
(eol (line-end-position)))
|
(eol (line-end-position)))
|
||||||
|
@ -1529,7 +1529,7 @@ encoding and Eglot will set this variable automatically.")
|
||||||
(forward-char 1))))
|
(forward-char 1))))
|
||||||
|
|
||||||
(defun eglot-move-to-utf-32-linepos (n)
|
(defun eglot-move-to-utf-32-linepos (n)
|
||||||
"Move to line's Nth code unit as computed by LSP's UTF-32 criterion."
|
"Move to line's Nth codepoint as computed by LSP's UTF-32 criterion."
|
||||||
;; We cannot use `move-to-column' here, because it moves to *visual*
|
;; We cannot use `move-to-column' here, because it moves to *visual*
|
||||||
;; columns, which can be different from LSP characters in case of
|
;; columns, which can be different from LSP characters in case of
|
||||||
;; `whitespace-mode', `prettify-symbols-mode', etc. (github#296,
|
;; `whitespace-mode', `prettify-symbols-mode', etc. (github#296,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue