Update runtime files
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 6e6feb3..34ff38d 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt* For Vim version 7.4. Last change: 2014 Mar 27
+*develop.txt* For Vim version 7.4. Last change: 2016 Jan 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -166,12 +166,27 @@
MAKING CHANGES *style-changes*
The basic steps to make changes to the code:
-1. Adjust the documentation. Doing this first gives you an impression of how
+1. Get the code from github. That makes it easier to keep your changed
+ version in sync with the main code base (it may be a while before your
+ changes will be included). You do need to spend some time learning git,
+ it's not the most user friendly tool.
+2. Adjust the documentation. Doing this first gives you an impression of how
your changes affect the user.
-2. Make the source code changes.
-3. Check ../doc/todo.txt if the change affects any listed item.
-4. Make a patch with "diff -c" against the unmodified code and docs.
-5. Make a note about what changed and include it with the patch.
+3. Make the source code changes.
+4. Check ../doc/todo.txt if the change affects any listed item.
+5. Make a patch with "git diff". You can also create a pull request on
+ github, but it's the diff that matters.
+6. Make a note about what changed, preferably mentioning the problem and the
+ solution. Send an email to the vim-dev maillist with an explanation and
+ include the diff. Or create a pull request on github.
+
+
+C COMPILER *style-compiler*
+
+The minimal C compiler version supported is C89, also known as ANSI C.
+Later standards don't add much and C89 is the widest supported.
+
+One restriction that this implies: no // comments, only /* comments */.
USE OF COMMON FUNCTIONS *style-functions*
@@ -197,7 +212,7 @@
Function names can not be more than 31 characters long (because of VMS).
-Don't use "delete" as a variable name, C++ doesn't like it.
+Don't use "delete" or "this" as a variable name, C++ doesn't like it.
Because of the requirement that Vim runs on as many systems as possible, we
need to avoid using names that are already defined by the system. This is a
@@ -288,6 +303,24 @@
a = 1;
while (cond);
+Wrong: if (cond) {
+ cmd;
+ cmd;
+ } else {
+ cmd;
+ cmd;
+ }
+
+OK: if (cond)
+ {
+ cmd;
+ cmd;
+ }
+ else
+ {
+ cmd;
+ cmd;
+ }
Functions start with:
@@ -299,9 +332,9 @@
* Return value explanation.
*/
int
- function_name(arg1, arg2)
- int arg1; /* short comment about arg1 */
- int arg2; /* short comment about arg2 */
+ function_name(
+ int arg1, /* short comment about arg1 */
+ int arg2) /* short comment about arg2 */
{
int local; /* comment about local */
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index ebd21ae..2073f28 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.4. Last change: 2016 Jan 17
+*eval.txt* For Vim version 7.4. Last change: 2016 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -103,6 +103,9 @@
there is no automatic conversion of Float. You can use str2float() for String
to Float, printf() for Float to String and float2nr() for Float to Number.
+ *E891* *E892* *E893* *E894*
+When expecting a Float a Number can also be used, but nothing else.
+
*E706* *sticky-type-checking*
You will get an error if you try to change the type of a variable. You need
to |:unlet| it first to avoid this error. String and Number are considered
@@ -3601,7 +3604,8 @@
getftype("/home")
< Note that a type such as "link" will only be returned on
systems that support it. On some systems only "dir" and
- "file" are returned.
+ "file" are returned. On MS-Windows a symbolic link to a
+ directory returns "dir" instead of "link".
*getline()*
getline({lnum} [, {end}])
@@ -5893,6 +5897,9 @@
sorted numerical. This is like 'n' but a string containing
digits will be used as the number they represent.
+ When {func} is given and it is 'f' then all items will be
+ sorted numerical. All values must be a Number or a Float.
+
When {func} is a |Funcref| or a function name, this function
is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 or
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 2c4c135..d23edd0 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.4. Last change: 2016 Jan 10
+*index.txt* For Vim version 7.4. Last change: 2016 Jan 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1539,14 +1539,14 @@
|:tabdo| :tabdo execute command in each tab page
|:tabedit| :tabe[dit] edit a file in a new tab page
|:tabfind| :tabf[ind] find file in 'path', edit it in a new tab page
-|:tabfirst| :tabfir[st] got to first tab page
-|:tablast| :tabl[ast] got to last tab page
+|:tabfirst| :tabfir[st] go to first tab page
+|:tablast| :tabl[ast] go to last tab page
|:tabmove| :tabm[ove] move tab page to other position
|:tabnew| :tabnew edit a file in a new tab page
|:tabnext| :tabn[ext] go to next tab page
|:tabonly| :tabo[nly] close all tab pages except the current one
|:tabprevious| :tabp[revious] go to previous tab page
-|:tabrewind| :tabr[ewind] got to first tab page
+|:tabrewind| :tabr[ewind] go to first tab page
|:tabs| :tabs list the tab pages and what they contain
|:tab| :tab create new tab when opening new window
|:tag| :ta[g] jump to tag
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 5436a80..3d42337 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 7.4. Last change: 2015 Dec 31
+*quickfix.txt* For Vim version 7.4. Last change: 2016 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 4945072..38c251b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2948,6 +2948,7 @@
:syn-files syntax.txt /*:syn-files*
:syn-fold syntax.txt /*:syn-fold*
:syn-include syntax.txt /*:syn-include*
+:syn-iskeyword syntax.txt /*:syn-iskeyword*
:syn-keepend syntax.txt /*:syn-keepend*
:syn-keyword syntax.txt /*:syn-keyword*
:syn-lc syntax.txt /*:syn-lc*
@@ -4417,6 +4418,10 @@
E889 map.txt /*E889*
E89 message.txt /*E89*
E890 syntax.txt /*E890*
+E891 eval.txt /*E891*
+E892 eval.txt /*E892*
+E893 eval.txt /*E893*
+E894 eval.txt /*E894*
E90 message.txt /*E90*
E91 options.txt /*E91*
E92 message.txt /*E92*
@@ -8134,6 +8139,7 @@
strtrans() eval.txt /*strtrans()*
strwidth() eval.txt /*strwidth()*
style-changes develop.txt /*style-changes*
+style-compiler develop.txt /*style-compiler*
style-examples develop.txt /*style-examples*
style-functions develop.txt /*style-functions*
style-names develop.txt /*style-names*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index bc7b962..2570ac8 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.4. Last change: 2016 Jan 17
+*todo.txt* For Vim version 7.4. Last change: 2016 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -75,6 +75,12 @@
- The pattern "\1" with the old engine gives E65, with the new engine it
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
- Search for \\~ causes error E874.
+- "\%1l^#.*" does not match on a line starting with "#". The zero-width match
+ clears the start-of-line flag.
+
+C89: remove __ARGS in more places
+- Script: Hirohito Higashi, Jan 21.
+- Update to osdef.sh, Hirohito Higashi, 2016 Jan 21.
Need to try out instructions in INSSTALLpc.txt about how to install all
interfaces and how to build Vim with them.
@@ -90,6 +96,11 @@
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
+Use vim.vim syntax highlighting for help file examples, but without ":" in
+'iskeyword' for syntax.
+
+Remove SPACE_IN_FILENAME ? What could possibly go wrong?
+
Installation of .desktop files does not work everywhere.
It's now fixed, but the target directory probably isn't right.
Add configure check?
@@ -103,6 +114,11 @@
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
+Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
+More tests May 14. Update May 29. Update Aug 10.
+Now part of large file patches. (Ken Takata, 2016 Jan 19, second one)
+Updated patches with ordering: Jan 20.
+
Using ":windo" to set options in all windows has the side effect that it
changes the window layout and the current window. Make a variant that saves
and restores. Use in the matchparen plugin.
@@ -118,6 +134,8 @@
Unexpected delay when using CTRL-O u. It's not timeoutlen.
(Gary Johnson, 2015 Aug 28)
+Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
+
Instead of separately uploading patches to the ftp site, we can get them from
github with a URL like this:
https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
@@ -152,8 +170,7 @@
Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)
-Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21)
-Need a Vim equivalent of None and a way to test for it.
+Need a Vim equivalent of Python's None and a way to test for it.
To support Thai (and other languages) word boundaries, include the ICU
library: http://userguide.icu-project.org/boundaryanalysis
@@ -161,10 +178,6 @@
When complete() first argument is before where insert started and 'backspace'
is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
-Patch to fix bug in searchpair(). (Christian Brabandt, 2016 Jan 11)
-Problem reported by David Fishburn, using searchpair() with synID() used in
-the skip expression.
-
Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
@@ -174,14 +187,6 @@
MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29)
-Patch to add ":syn iskeyword". (Christian Brabandt, 2015 Nov 10)
-
-Patch to use PLATFORM to determine target architecture. (Taro Muraoka, 2015
-Nov 29)
-
-If libiconv.dll is not found search for libiconv2.dll. (Yasuhiro Matsumoto,
-2015 Oct 7)
-
Using an external diff is inefficient. Not all systems have a good diff
program available (esp. MS-Windows). Would be nice to have in internal diff
implementation. Can then also use this for displaying changes within a line.
@@ -199,9 +204,6 @@
The argument for "-S" is not taken literally, the ":so" command expands
wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4)
-Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
-30)
-
Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
Update Aug 14.
@@ -321,10 +323,6 @@
Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
2015 Feb 6.
-Plugins need to make a lot of effort, lots of mappings, to know what happened
-before pressing the key that triggers a plugin action. How about keeping the
-last N pressed keys, so that they do not need to be mapped?
-
Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
Is this a good solution?
@@ -410,9 +408,6 @@
Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7).
Update 2015 Jan 10.
-Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
-More tests May 14. Update May 29. Update Aug 10.
-
Idea: For a window in the middle (has window above and below it), use
right-mouse-drag on the status line to move a window up/down without changing
its height? It's like dragging the status bar above it at the same time.
@@ -438,11 +433,13 @@
2014 Jun 8)
Include a plugin manager with Vim? Neobundle seems to be the best currently.
+Also Vundle: https://github.com/gmarik/vundle
Long message about this from ZyX, 2014 Mar 23. And following replies.
Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
User view:
-- Support multiple sources, basically any http:// URL. Be able to look into
- the files before deciding to install.
+- Support multiple sources, basically any http:// URL. Or a central place that
+ will work for everybody (github? redirects from vim.org?).
+ Be able to look into the files before deciding to install.
- Be able to try out a plugin and remove it again with (almost) no traces.
- Each plugin needs a "manifest" file that has the version, dependencies
(including Vim version and features), conflicts, list of files, etc.
@@ -1113,6 +1110,14 @@
Winckler, 2011 May 11)
Requires a map mode for Insert mode started from blockwise Visual mode.
+Use json format for new items in .viminfo:
+ |["info","any info"]
+ |["text","text text text"
+ |"continuation line"]
+ |["hist",242342342,{"arg":"value"}]
+ Use \" for a single ". Use \\ for a \.
+ See http://www.ietf.org/rfc/rfc4627.txt
+
Writing nested List and Dict in viminfo gives error message and can't be read
back. (Yukihiro Nakadaira, 2010 Nov 13)
@@ -2130,10 +2135,37 @@
(Kartik Agaram)
-At next release:
-- Build a huge version by default.
-- Improve plugin handling: Automatic updates, handle dependencies?
- E.g. Vundle: https://github.com/gmarik/vundle
+Better plugin support (not plugin manager, see elsewhere for that):
+- Add interface to another process, e.g. to run a background plugin.
+ Can use the code from netbeans to communicate over a socket.
+ A bit like +clientserver but without the hassle of starting another Vim.
+ Use json for the messages.
+ let handle = startjob({command}) # uses stdin/stdout
+ let handle = startjob({command}, {address}) # uses socket
+ let handle = connect({address}) # uses socket
+ let handle = deamon({command}, {address}) # start it if connect fails
+ let response = sendjson(handle, {json}) # sync
+ call sendjson(handle, {json}, {callback}) # async
+ call sethandler(handle, {callback})
+ The response json is wrapped in an array:
+ [{code},{response}]
+ {code} must be positive, when zero the callback from sethandler() is called
+ The job can send Vim commands that do not require a handler:
+ ['ex', {Ex command}]
+ ['normal', {Normal mode command}]
+ ['keys', {condition}, {key sequence}]
+ ['eval', {expression}] sync, will send back result
+ ['expr', {expression}] async
+- Native JSON support (to be able to commucate with any interface in the same
+ way).
+- Avoid use of feedkeys, add eval functions where needed:
+ - manipulating the Visual selection?
+- Add createmark(): add a mark like mM, but return a unique ID. Need some way
+ to clean them up again... Use a name + the script ID.
+ Add createmark( , 'c') to track inserts/deletes before the column.
+- Plugins need to make a lot of effort, lots of mappings, to know what
+ happened before pressing the key that triggers a plugin action. How about
+ keeping the last N pressed keys, so that they do not need to be mapped?
More patches:
@@ -3482,10 +3514,7 @@
one is contained in. Like "keepend" but specified on the contained item,
instead of the containing item.
8 cpp.vim: In C++ it's allowed to use {} inside ().
-8 Some syntax files set 'iskeyword'. When switching to another filetype
- this isn't reset. Add a special keyword definition for the syntax rules?
- When this is done, use vim.vim syntax highlighting for help file examples,
- but without ":" in 'iskeyword' for syntax.
+8 Some syntax files set 'iskeyword', they should use "syn iskeyword".
Also need a separate 'iskeyword' for the command line, e.g., in a help
window ":e /asdf/asdf/" CTRL-W works different.
8 Add specific syntax item to match with parens/braces that don't have a