On Sun, Nov 20, 2022 at 9:05 AM Yegappan Lakshmanan <yegapp...@gmail.com> wrote:
>
> Hi all,
>
> The language server protocol messages use character column number whereas many
> of the built-in Vim functions (e.g. matchaddpos()) deal with byte column 
> number.
>
> Several built-in functions were added to convert between the character and 
> byte
> column numbers (byteidx(), charcol(), charidx(), getcharpos(),
> getcursorcharpos(), etc,).
> But these functions deal with strings, current cursor position or the
> position of a mark.
>
> We currently don't have a function to return the byte number given the 
> character
> number in a line in a buffer.  The workaround is to use getbufline()
> to get the entire
> buffer line and then use byteidx() to get the byte number from the
> character number.
>
> I am thinking of introducing a new function named charcol2bytecol() that 
> accepts
> a buffer number, line number and the character number in the line and
> returns the
> corresponding byte number.  Any suggestions/comments on this?
>

Another alternative is to extend the col() function.  The col()
function currently accepts a
list with two numbers (a line number and a byte number or "$") and
returns the byte number.
This can be modified to also accept a list with three numbers (line
number, column number
and a boolean indicating character column or byte column) and return
the byte number.

- Yegappan

> We should also modify the matchaddpos() function to accept character numbers
> in a line in addition to the byte numbers.
>
> Regards,
> Yegappan

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/CAAW7x7%3D7najhNxO%3Dn5LzQ6dmO-mPhLnrzn2iO-AXKF4%2BxfszVA%40mail.gmail.com.

Raspunde prin e-mail lui