Mercurial > vim
annotate src/proto/charset.pro @ 34623:65e7eaf68f19 v9.1.0200
patch 9.1.0200: `gj`/`gk` not skipping over outer virtual text lines
Commit: https://github.com/vim/vim/commit/b2d124c6258ff41e1f951bf39a4afc386d79ddc4
Author: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Date: Sun Mar 24 09:43:25 2024 +0100
patch 9.1.0200: `gj`/`gk` not skipping over outer virtual text lines
Problem: `gj`/`gk` was updating the desired cursor virtual column to
the outer virtual text, even though the actual cursor position
was moved to not be on the virtual text, leading the need to
do an extra `gj`/`gk` to move past each virtual text line.
(rickhowe)
Solution: Exclude the outer virtual text when getting the line length
for moving the cursor with `gj`/`gk`, so that no extra
movement is needed to skip over virtual text lines.
(Dylan Thacker-Smith)
fixes: #12028
related: #14262
Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 24 Mar 2024 10:00:05 +0100 |
parents | 39f4126d2a0d |
children | d1b433ed9f07 |
rev | line source |
---|---|
7 | 1 /* charset.c */ |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
2 int init_chartab(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
3 int buf_init_chartab(buf_T *buf, int global); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
4 void trans_characters(char_u *buf, int bufsize); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
5 char_u *transstr(char_u *s); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
6 char_u *str_foldcase(char_u *str, int orglen, char_u *buf, int buflen); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
7 char_u *transchar(int c); |
20782
c4bce986c31a
patch 8.2.0943: displaying ^M or ^J depends on current buffer
Bram Moolenaar <Bram@vim.org>
parents:
17789
diff
changeset
|
8 char_u *transchar_buf(buf_T *buf, int c); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
9 char_u *transchar_byte(int c); |
31964
c0a9bc376b54
patch 9.0.1314: :messages behavior depends on 'fileformat' of current buffer
Bram Moolenaar <Bram@vim.org>
parents:
30833
diff
changeset
|
10 char_u *transchar_byte_buf(buf_T *buf, int c); |
20782
c4bce986c31a
patch 8.2.0943: displaying ^M or ^J depends on current buffer
Bram Moolenaar <Bram@vim.org>
parents:
17789
diff
changeset
|
11 void transchar_nonprint(buf_T *buf, char_u *charbuf, int c); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
12 void transchar_hex(char_u *buf, int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
13 int byte2cells(int b); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
14 int char2cells(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
15 int ptr2cells(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
16 int vim_strsize(char_u *s); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
17 int vim_strnsize(char_u *s, int len); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
18 int chartabsize(char_u *p, colnr_T col); |
30833
e3d5781c7ec6
patch 9.0.0751: 'scrolloff' does not work well with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
19 int linetabsize_str(char_u *s); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
20 int linetabsize_col(int startcol, char_u *s); |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
27784
diff
changeset
|
21 int win_linetabsize(win_T *wp, linenr_T lnum, char_u *line, colnr_T len); |
30833
e3d5781c7ec6
patch 9.0.0751: 'scrolloff' does not work well with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
22 int linetabsize(win_T *wp, linenr_T lnum); |
34623
65e7eaf68f19
patch 9.1.0200: `gj`/`gk` not skipping over outer virtual text lines
Christian Brabandt <cb@256bit.org>
parents:
32098
diff
changeset
|
23 int linetabsize_no_outer(win_T *wp, linenr_T lnum); |
29678
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
24 void win_linetabsize_cts(chartabsize_T *cts, colnr_T len); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
25 int vim_isIDc(int c); |
24375
fe4b6fc7149c
patch 8.2.2728: special key names don't work if 'isident' is cleared
Bram Moolenaar <Bram@vim.org>
parents:
20782
diff
changeset
|
26 int vim_isNormalIDc(int c); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
27 int vim_iswordc(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
28 int vim_iswordc_buf(int c, buf_T *buf); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
29 int vim_iswordp(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
30 int vim_iswordp_buf(char_u *p, buf_T *buf); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
31 int vim_isfilec(int c); |
29595
5233acfa06f1
patch 9.0.0138: not enough characters accepted for 'spellfile'
Bram Moolenaar <Bram@vim.org>
parents:
29451
diff
changeset
|
32 int vim_is_fname_char(int c); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
33 int vim_isfilec_or_wc(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
34 int vim_isprintc(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
35 int vim_isprintc_strict(int c); |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
27784
diff
changeset
|
36 void init_chartabsize_arg(chartabsize_T *cts, win_T *wp, linenr_T lnum, colnr_T col, char_u *line, char_u *ptr); |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
27784
diff
changeset
|
37 void clear_chartabsize_arg(chartabsize_T *cts); |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
27784
diff
changeset
|
38 int lbr_chartabsize(chartabsize_T *cts); |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
27784
diff
changeset
|
39 int lbr_chartabsize_adv(chartabsize_T *cts); |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
27784
diff
changeset
|
40 int win_lbr_chartabsize(chartabsize_T *cts, int *headp); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
41 void getvcol(win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
42 colnr_T getvcol_nolist(pos_T *posp); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
43 void getvvcol(win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
44 void getvcols(win_T *wp, pos_T *pos1, pos_T *pos2, colnr_T *left, colnr_T *right); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
45 char_u *skipwhite(char_u *q); |
26572
9f7568104726
patch 8.2.3815: Vim9: cannot have a multi-line dict inside a block
Bram Moolenaar <Bram@vim.org>
parents:
26327
diff
changeset
|
46 char_u *skipwhite_and_nl(char_u *q); |
12323
4dba3e4f3b01
patch 8.0.1041: bogus characters when indenting during visual-block append
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
47 int getwhitecols_curline(void); |
4dba3e4f3b01
patch 8.0.1041: bogus characters when indenting during visual-block append
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
48 int getwhitecols(char_u *p); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
49 char_u *skipdigits(char_u *q); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
50 char_u *skipbin(char_u *q); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
51 char_u *skiphex(char_u *q); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
52 char_u *skiptobin(char_u *q); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
53 char_u *skiptodigit(char_u *q); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
54 char_u *skiptohex(char_u *q); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
55 int vim_isdigit(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
56 int vim_isxdigit(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
57 int vim_isbdigit(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
58 int vim_islower(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
59 int vim_isupper(int c); |
27784
bfce04a99561
patch 8.2.4418: crash when using special multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
26572
diff
changeset
|
60 int vim_isalpha(int c); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
61 int vim_toupper(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
62 int vim_tolower(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
63 char_u *skiptowhite(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
64 char_u *skiptowhite_esc(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
65 long getdigits(char_u **pp); |
26327
227543e4181f
patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents:
24375
diff
changeset
|
66 long getdigits_quoted(char_u **pp); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
67 int vim_isblankline(char_u *lbuf); |
32098
39f4126d2a0d
patch 9.0.1380: CTRL-X on 2**64 subtracts two
Bram Moolenaar <Bram@vim.org>
parents:
31964
diff
changeset
|
68 void vim_str2nr(char_u *start, int *prep, int *len, int what, varnumber_T *nptr, uvarnumber_T *unptr, int maxlen, int strict, int *overflow); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
69 int hex2nr(int c); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
70 int hexhex2nr(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
71 int rem_backslash(char_u *str); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
72 void backslash_halve(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
7447
diff
changeset
|
73 char_u *backslash_halve_save(char_u *p); |
7 | 74 /* vim: set ft=c : */ |