comparison runtime/doc/todo.txt @ 7707:41768bcebc9b

commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 21 23:36:05 2016 +0100 Update runtime files
author Christian Brabandt <cb@256bit.org>
date Thu, 21 Jan 2016 23:45:07 +0100
parents 07f11de5efca
children ca19726d5e83
comparison
equal deleted inserted replaced
7706:dd457970efc8 7707:41768bcebc9b
1 *todo.txt* For Vim version 7.4. Last change: 2016 Jan 17 1 *todo.txt* For Vim version 7.4. Last change: 2016 Jan 21
2 2
3 3
4 VIM REFERENCE MANUAL by Bram Moolenaar 4 VIM REFERENCE MANUAL by Bram Moolenaar
5 5
6 6
73 - this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving 73 - this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
74 out the \& works. Seems any column check after \& fails. 74 out the \& works. Seems any column check after \& fails.
75 - The pattern "\1" with the old engine gives E65, with the new engine it 75 - The pattern "\1" with the old engine gives E65, with the new engine it
76 matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24) 76 matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
77 - Search for \\~ causes error E874. 77 - Search for \\~ causes error E874.
78 - "\%1l^#.*" does not match on a line starting with "#". The zero-width match
79 clears the start-of-line flag.
80
81 C89: remove __ARGS in more places
82 - Script: Hirohito Higashi, Jan 21.
83 - Update to osdef.sh, Hirohito Higashi, 2016 Jan 21.
78 84
79 Need to try out instructions in INSSTALLpc.txt about how to install all 85 Need to try out instructions in INSSTALLpc.txt about how to install all
80 interfaces and how to build Vim with them. 86 interfaces and how to build Vim with them.
81 Appveyor build with self-installing executable, includes getting most 87 Appveyor build with self-installing executable, includes getting most
82 interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build 88 interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build
87 93
88 Problem that a previous silent ":throw" causes a following try/catch not to 94 Problem that a previous silent ":throw" causes a following try/catch not to
89 work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24) 95 work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
90 96
91 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) 97 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
98
99 Use vim.vim syntax highlighting for help file examples, but without ":" in
100 'iskeyword' for syntax.
101
102 Remove SPACE_IN_FILENAME ? What could possibly go wrong?
92 103
93 Installation of .desktop files does not work everywhere. 104 Installation of .desktop files does not work everywhere.
94 It's now fixed, but the target directory probably isn't right. 105 It's now fixed, but the target directory probably isn't right.
95 Add configure check? 106 Add configure check?
96 Should use /usr/local/share/applications or /usr/share/applications. 107 Should use /usr/local/share/applications or /usr/share/applications.
100 Access to uninitialized memory in match_backref() regexp_nda.c:4882 111 Access to uninitialized memory in match_backref() regexp_nda.c:4882
101 (Dominique Pelle, 2015 Nov 6) 112 (Dominique Pelle, 2015 Nov 6)
102 113
103 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the 114 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the
104 directory exists. (Sergio Gallelli, 2013 Dec 29) 115 directory exists. (Sergio Gallelli, 2013 Dec 29)
116
117 Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
118 More tests May 14. Update May 29. Update Aug 10.
119 Now part of large file patches. (Ken Takata, 2016 Jan 19, second one)
120 Updated patches with ordering: Jan 20.
105 121
106 Using ":windo" to set options in all windows has the side effect that it 122 Using ":windo" to set options in all windows has the side effect that it
107 changes the window layout and the current window. Make a variant that saves 123 changes the window layout and the current window. Make a variant that saves
108 and restores. Use in the matchparen plugin. 124 and restores. Use in the matchparen plugin.
109 Perhaps we can use ":windo <restore> {cmd}"? 125 Perhaps we can use ":windo <restore> {cmd}"?
115 131
116 Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab. 132 Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
117 133
118 Unexpected delay when using CTRL-O u. It's not timeoutlen. 134 Unexpected delay when using CTRL-O u. It's not timeoutlen.
119 (Gary Johnson, 2015 Aug 28) 135 (Gary Johnson, 2015 Aug 28)
136
137 Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
120 138
121 Instead of separately uploading patches to the ftp site, we can get them from 139 Instead of separately uploading patches to the ftp site, we can get them from
122 github with a URL like this: 140 github with a URL like this:
123 https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff 141 https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
124 Diff for version.c contains more context, can't skip a patch. 142 Diff for version.c contains more context, can't skip a patch.
150 'cursorline'/'cursorcolumn' are a lot faster? 168 'cursorline'/'cursorcolumn' are a lot faster?
151 169
152 Build with Python on Mac does not always use the right library. 170 Build with Python on Mac does not always use the right library.
153 (Kazunobu Kuriyama, 2015 Mar 28) 171 (Kazunobu Kuriyama, 2015 Mar 28)
154 172
155 Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21) 173 Need a Vim equivalent of Python's None and a way to test for it.
156 Need a Vim equivalent of None and a way to test for it.
157 174
158 To support Thai (and other languages) word boundaries, include the ICU 175 To support Thai (and other languages) word boundaries, include the ICU
159 library: http://userguide.icu-project.org/boundaryanalysis 176 library: http://userguide.icu-project.org/boundaryanalysis
160 177
161 When complete() first argument is before where insert started and 'backspace' 178 When complete() first argument is before where insert started and 'backspace'
162 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19) 179 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
163 180
164 Patch to fix bug in searchpair(). (Christian Brabandt, 2016 Jan 11)
165 Problem reported by David Fishburn, using searchpair() with synID() used in
166 the skip expression.
167
168 Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not 181 Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
169 handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10) 182 handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
170 183
171 Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13) 184 Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13)
172 Goes away when disabling the swap file. (might1, Feb 16) 185 Goes away when disabling the swap file. (might1, Feb 16)
173 186
174 MS-Windows: Crash opening very long file name starting with "\\". 187 MS-Windows: Crash opening very long file name starting with "\\".
175 (Christian Brock, 2012 Jun 29) 188 (Christian Brock, 2012 Jun 29)
176
177 Patch to add ":syn iskeyword". (Christian Brabandt, 2015 Nov 10)
178
179 Patch to use PLATFORM to determine target architecture. (Taro Muraoka, 2015
180 Nov 29)
181
182 If libiconv.dll is not found search for libiconv2.dll. (Yasuhiro Matsumoto,
183 2015 Oct 7)
184 189
185 Using an external diff is inefficient. Not all systems have a good diff 190 Using an external diff is inefficient. Not all systems have a good diff
186 program available (esp. MS-Windows). Would be nice to have in internal diff 191 program available (esp. MS-Windows). Would be nice to have in internal diff
187 implementation. Can then also use this for displaying changes within a line. 192 implementation. Can then also use this for displaying changes within a line.
188 Olaf Dabrunz is working on this. 193 Olaf Dabrunz is working on this.
196 ":tag" does not jump to the right entry of a :tselect. (James Speros, 2015 Oct 201 ":tag" does not jump to the right entry of a :tselect. (James Speros, 2015 Oct
197 9) 202 9)
198 203
199 The argument for "-S" is not taken literally, the ":so" command expands 204 The argument for "-S" is not taken literally, the ":so" command expands
200 wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4) 205 wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4)
201
202 Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
203 30)
204 206
205 Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5) 207 Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
206 Update Aug 14. 208 Update Aug 14.
207 209
208 Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27) 210 Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27)
319 Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) 321 Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
320 322
321 Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny, 323 Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
322 2015 Feb 6. 324 2015 Feb 6.
323 325
324 Plugins need to make a lot of effort, lots of mappings, to know what happened
325 before pressing the key that triggers a plugin action. How about keeping the
326 last N pressed keys, so that they do not need to be mapped?
327
328 Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4. 326 Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
329 Is this a good solution? 327 Is this a good solution?
330 328
331 Patch to allow setting w:quickfix_title via setqflist() and setloclist() 329 Patch to allow setting w:quickfix_title via setqflist() and setloclist()
332 functions. (Christian Brabandt, 2013 May 8, update May 21) 330 functions. (Christian Brabandt, 2013 May 8, update May 21)
408 406
409 Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki 407 Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
410 Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7). 408 Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7).
411 Update 2015 Jan 10. 409 Update 2015 Jan 10.
412 410
413 Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
414 More tests May 14. Update May 29. Update Aug 10.
415
416 Idea: For a window in the middle (has window above and below it), use 411 Idea: For a window in the middle (has window above and below it), use
417 right-mouse-drag on the status line to move a window up/down without changing 412 right-mouse-drag on the status line to move a window up/down without changing
418 its height? It's like dragging the status bar above it at the same time. 413 its height? It's like dragging the status bar above it at the same time.
419 414
420 Can we make ":unlet $VAR" use unsetenv() to delete the env var? 415 Can we make ":unlet $VAR" use unsetenv() to delete the env var?
436 431
437 Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman, 432 Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
438 2014 Jun 8) 433 2014 Jun 8)
439 434
440 Include a plugin manager with Vim? Neobundle seems to be the best currently. 435 Include a plugin manager with Vim? Neobundle seems to be the best currently.
436 Also Vundle: https://github.com/gmarik/vundle
441 Long message about this from ZyX, 2014 Mar 23. And following replies. 437 Long message about this from ZyX, 2014 Mar 23. And following replies.
442 Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html 438 Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
443 User view: 439 User view:
444 - Support multiple sources, basically any http:// URL. Be able to look into 440 - Support multiple sources, basically any http:// URL. Or a central place that
445 the files before deciding to install. 441 will work for everybody (github? redirects from vim.org?).
442 Be able to look into the files before deciding to install.
446 - Be able to try out a plugin and remove it again with (almost) no traces. 443 - Be able to try out a plugin and remove it again with (almost) no traces.
447 - Each plugin needs a "manifest" file that has the version, dependencies 444 - Each plugin needs a "manifest" file that has the version, dependencies
448 (including Vim version and features), conflicts, list of files, etc. 445 (including Vim version and features), conflicts, list of files, etc.
449 Updater uses that to decide what/how to update. 446 Updater uses that to decide what/how to update.
450 Dependencies can use a URL for specific versions, or short name for scripts 447 Dependencies can use a URL for specific versions, or short name for scripts
1111 1108
1112 Gui menu edit/paste in block mode insert only inserts in one line (Bjorn 1109 Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
1113 Winckler, 2011 May 11) 1110 Winckler, 2011 May 11)
1114 Requires a map mode for Insert mode started from blockwise Visual mode. 1111 Requires a map mode for Insert mode started from blockwise Visual mode.
1115 1112
1113 Use json format for new items in .viminfo:
1114 |["info","any info"]
1115 |["text","text text text"
1116 |"continuation line"]
1117 |["hist",242342342,{"arg":"value"}]
1118 Use \" for a single ". Use \\ for a \.
1119 See http://www.ietf.org/rfc/rfc4627.txt
1120
1116 Writing nested List and Dict in viminfo gives error message and can't be read 1121 Writing nested List and Dict in viminfo gives error message and can't be read
1117 back. (Yukihiro Nakadaira, 2010 Nov 13) 1122 back. (Yukihiro Nakadaira, 2010 Nov 13)
1118 1123
1119 Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11) 1124 Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
1120 Additional info by Dominique Pelle. (also on 2010 Apr 10) 1125 Additional info by Dominique Pelle. (also on 2010 Apr 10)
2128 Add an option for a minimal text length before inserting a line break for 2133 Add an option for a minimal text length before inserting a line break for
2129 'textwidth'. Avoids very short lines when a very long word follows. 2134 'textwidth'. Avoids very short lines when a very long word follows.
2130 (Kartik Agaram) 2135 (Kartik Agaram)
2131 2136
2132 2137
2133 At next release: 2138 Better plugin support (not plugin manager, see elsewhere for that):
2134 - Build a huge version by default. 2139 - Add interface to another process, e.g. to run a background plugin.
2135 - Improve plugin handling: Automatic updates, handle dependencies? 2140 Can use the code from netbeans to communicate over a socket.
2136 E.g. Vundle: https://github.com/gmarik/vundle 2141 A bit like +clientserver but without the hassle of starting another Vim.
2142 Use json for the messages.
2143 let handle = startjob({command}) # uses stdin/stdout
2144 let handle = startjob({command}, {address}) # uses socket
2145 let handle = connect({address}) # uses socket
2146 let handle = deamon({command}, {address}) # start it if connect fails
2147 let response = sendjson(handle, {json}) # sync
2148 call sendjson(handle, {json}, {callback}) # async
2149 call sethandler(handle, {callback})
2150 The response json is wrapped in an array:
2151 [{code},{response}]
2152 {code} must be positive, when zero the callback from sethandler() is called
2153 The job can send Vim commands that do not require a handler:
2154 ['ex', {Ex command}]
2155 ['normal', {Normal mode command}]
2156 ['keys', {condition}, {key sequence}]
2157 ['eval', {expression}] sync, will send back result
2158 ['expr', {expression}] async
2159 - Native JSON support (to be able to commucate with any interface in the same
2160 way).
2161 - Avoid use of feedkeys, add eval functions where needed:
2162 - manipulating the Visual selection?
2163 - Add createmark(): add a mark like mM, but return a unique ID. Need some way
2164 to clean them up again... Use a name + the script ID.
2165 Add createmark( , 'c') to track inserts/deletes before the column.
2166 - Plugins need to make a lot of effort, lots of mappings, to know what
2167 happened before pressing the key that triggers a plugin action. How about
2168 keeping the last N pressed keys, so that they do not need to be mapped?
2137 2169
2138 2170
2139 More patches: 2171 More patches:
2140 - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11) 2172 - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
2141 Needs a few tests. 2173 Needs a few tests.
3480 pattern, but not in the body. 3512 pattern, but not in the body.
3481 8 Add a "keepend-contained" argument: Don't change the end of an item this 3513 8 Add a "keepend-contained" argument: Don't change the end of an item this
3482 one is contained in. Like "keepend" but specified on the contained item, 3514 one is contained in. Like "keepend" but specified on the contained item,
3483 instead of the containing item. 3515 instead of the containing item.
3484 8 cpp.vim: In C++ it's allowed to use {} inside (). 3516 8 cpp.vim: In C++ it's allowed to use {} inside ().
3485 8 Some syntax files set 'iskeyword'. When switching to another filetype 3517 8 Some syntax files set 'iskeyword', they should use "syn iskeyword".
3486 this isn't reset. Add a special keyword definition for the syntax rules?
3487 When this is done, use vim.vim syntax highlighting for help file examples,
3488 but without ":" in 'iskeyword' for syntax.
3489 Also need a separate 'iskeyword' for the command line, e.g., in a help 3518 Also need a separate 'iskeyword' for the command line, e.g., in a help
3490 window ":e /asdf/asdf/" CTRL-W works different. 3519 window ":e /asdf/asdf/" CTRL-W works different.
3491 8 Add specific syntax item to match with parens/braces that don't have a 3520 8 Add specific syntax item to match with parens/braces that don't have a
3492 "%" match. :syntax nomatch cMatchError (,{,[,),},] [contained] 3521 "%" match. :syntax nomatch cMatchError (,{,[,),},] [contained]
3493 8 Highlight the text between two matching parens (e.g., with a grey 3522 8 Highlight the text between two matching parens (e.g., with a grey