Mercurial > vim
annotate CONTRIBUTING.md @ 33674:021e5bb88513 v9.0.2074
patch 9.0.2074: Completion menu may be wrong
Commit: https://github.com/vim/vim/commit/daef8c74375141974d61b85199b383017644978c
Author: Christian Brabandt <cb@256bit.org>
Date: Fri Oct 27 19:16:26 2023 +0200
patch 9.0.2074: Completion menu may be wrong
Problem: Completion menu may be wrong
Solution: Check for the original direction of the completion menu,
add more tests, make it work with 'noselect'
completion: move in right direction when filling completion_info()
When moving through the insert completion menu and switching directions,
we need to make sure we start at the correct position in the list and
move correctly forward/backwards through it, so that we do not skip
entries and the selected item points to the correct entry in the list
of completion entries generated by the completion_info() function.
The general case is this:
1) CTRL-X CTRL-N, we will traverse the list starting from
compl_first_match and then go forwards (using the cp->next pointer)
through the list (skipping the very first entry, which has the
CP_ORIGINAL_TEXT flag set (since that is the empty/non-selected entry
2) CTRL-X CTRL-P, we will traverse the list starting from
compl_first_match (which now points to the last entry). The previous
entry will have the CP_ORIGINAL_TEXT flag set, so we need to start
traversing the list from the second prev pointer.
There are in fact 2 special cases after starting the completion menu
with CTRL-X:
3) CTRL-N and then going backwards by pressing CTRL-P again.
compl_first_match will point to the same entry as in step 1 above,
but since compl_dir_foward() has been switched by pressing CTRL-P
to backwards we need to pretend to be in still in case 1 and still
traverse the list in forward direction using the cp_next pointer
4) CTRL-P and then going forwards by pressing CTRL-N again.
compl_first_match will point to the same entry as in step 2 above,
but since compl_dir_foward() has been switched by pressing CTRL-N
to forwards we need to pretend to be in still in case 2 and still
traverse the list in backward direction using the cp_prev pointer
For the 'noselect' case however, this is slightly different again. When
going backwards, we only need to go one cp_prev pointer back. And
resting of the direction works again slightly different. So we need to
take the noselect option into account when deciding in which direction
to iterate through the list of matches.
related: #13402
related: #12971
closes: #13408
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 27 Oct 2023 19:30:05 +0200 |
parents | 34c1f4cd0c18 |
children | c97e9e2d79a4 |
rev | line source |
---|---|
7068
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 # Contributing to Vim |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 Patches are welcome in whatever form. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 Discussions about patches happen on the vim-dev maillist. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 If you create a pull request on GitHub it will be |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 forwarded to the vim-dev maillist. You can also send your patch there |
17640
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
7 directly. In that case an attachment with a unified diff format is preferred. |
7068
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 Information about the maillist can be found [on the Vim website]. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 [on the Vim website]: http://www.vim.org/maillist.php#vim-dev |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 |
17640
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
12 A pull request has the advantage that it will trigger the Continuous |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
13 Integration tests, you will be warned of problems (you can ignore the coverage |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
14 warning, it's noisy). |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
15 |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
16 Please consider adding a test. All new functionality should be tested and bug |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
17 fixes should be tested for regressions: the test should fail before the fix and |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
18 pass after the fix. Look through recent patches for examples and find help |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
19 with ":help testing". The tests are located under "src/testdir". |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
20 |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
21 Contributions will be distributed with Vim under the Vim license. Providing a |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
22 change to be included implies that you agree with this and your contribution |
c12c811695f7
patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents:
16285
diff
changeset
|
23 does not cause us trouble with trademarks or patents. There is no CLA to sign. |
7068
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 # Reporting issues |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 We use GitHub issues, but that is not a requirement. Writing to the Vim |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 maillist is also fine. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 Please use the GitHub issues only for actual issues. If you are not 100% sure |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 that your problem is a Vim issue, please first discuss this on the Vim user |
16208 | 33 maillist. Try reproducing the problem without any of your plugins or settings: |
7068
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 |
16208 | 35 vim --clean |
7068
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 If you report an issue, please describe exactly how to reproduce it. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 For example, don't say "insert some text" but say what you did exactly: |
7076
6ad58a7e995b
commit https://github.com/vim/vim/commit/544780248b5876339b316703fc2f330a9d316c45
Christian Brabandt <cb@256bit.org>
parents:
7068
diff
changeset
|
39 "ahere is some text<Esc>". |
6ad58a7e995b
commit https://github.com/vim/vim/commit/544780248b5876339b316703fc2f330a9d316c45
Christian Brabandt <cb@256bit.org>
parents:
7068
diff
changeset
|
40 Ideally, the steps you list can be used to write a test to verify the problem |
6ad58a7e995b
commit https://github.com/vim/vim/commit/544780248b5876339b316703fc2f330a9d316c45
Christian Brabandt <cb@256bit.org>
parents:
7068
diff
changeset
|
41 is fixed. |
7068
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 Feel free to report even the smallest problem, also typos in the documentation. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 You can find known issues in the todo file: ":help todo". |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 Or open [the todo file] on GitHub to see the latest version. |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 |
a55f35ed381b
commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 [the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt |
7084
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
49 |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
50 |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
51 # Syntax, indent and other runtime files |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
52 |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
53 The latest version of these files can be obtained from the repository. |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
54 They are usually not updated with numbered patches. |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
55 |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
56 If you find a problem with one of these files or have a suggestion for |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
57 improvement, please first try to contact the maintainer directly. |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
58 Look in the header of the file for the name and email address. |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
59 |
25700 | 60 The maintainer will take care of issues and send updates to Bram for |
7084
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
61 distribution with Vim. |
1c039023af1c
commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents:
7076
diff
changeset
|
62 |
14347 | 63 If the maintainer does not respond, contact the vim-dev maillist. |
64 | |
65 | |
66 # Translations | |
67 | |
16285
e71261a88630
patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
68 Translating messages and runtime files is very much appreciated! These things |
e71261a88630
patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
69 can be translated: |
14372 | 70 * Messages in Vim, see [src/po/README.txt][1] |
16285
e71261a88630
patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
71 Also used for the desktop icons. |
14372 | 72 * Menus, see [runtime/lang/README.txt][2] |
73 * Vim tutor, see [runtime/tutor/README.txt][3] | |
74 * Manual pages, see [runtime/doc/\*.1][4] for examples | |
16285
e71261a88630
patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
75 * Installer, see [nsis/lang/\*.nsi][5] for examples |
14347 | 76 |
77 The help files can be translated and made available separately. | |
78 See https://www.vim.org/translations.php for examples. | |
14372 | 79 |
80 [1]: https://github.com/vim/vim/blob/master/src/po/README.txt | |
81 [2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt | |
82 [3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt | |
83 [4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1 | |
16285
e71261a88630
patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
84 [5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi |