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.