summaryrefslogtreecommitdiffstats
path: root/runtime/doc
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-01-21 23:36:05 +0100
committerBram Moolenaar <Bram@vim.org>2016-01-21 23:36:05 +0100
commit13d5aeef56e3140a8eb8f40c7062aa1c5700f76e (patch)
tree71c1b7e6a71aa1fd73a4016fa16ea28ddbb79d15 /runtime/doc
parent5f8a14b9dea094b8bbab94cfc1e8da8e633fbc01 (diff)
Update runtime files
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/develop.txt53
-rw-r--r--runtime/doc/eval.txt11
-rw-r--r--runtime/doc/index.txt8
-rw-r--r--runtime/doc/quickfix.txt2
-rw-r--r--runtime/doc/tags6
-rw-r--r--runtime/doc/todo.txt99
6 files changed, 127 insertions, 52 deletions
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 6e6feb32d6..34ff38d15c 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 @@ This list is not complete. Look in the source code for more examples.
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 @@ NAMES *style-names*
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 @@ OK: do
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 @@ OK: /*
* 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 ebd21ae664..2073f289e4 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 @@ When mixing Number and Float the Number is converted to Float. Otherwise
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({fname}) *getftype()*
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 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
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 2c4c135caa..d23edd0196 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 @@ tag command action ~
|: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 5436a809a5..3d42337c4d 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 4945072957..38c251b2b7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2948,6 +2948,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
: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 @@ E888 pattern.txt /*E888*
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 @@ strstr() eval.txt /*strstr()*
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 bc7b962555..2570ac8285 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 @@ Regexp problems:
- 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 @@ work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
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 @@ Access to uninitialized memory in match_backref() regexp_nda.c:4882
":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 @@ Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
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 @@ Can we cache the syntax attributes, so that updates for 'relativenumber' and
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 @@ library: http://userguide.icu-project.org/boundaryanalysis
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 @@ Goes away when disabling the swap file. (might1, Feb 16)
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 @@ effects for when set by the user, on init and when reset to default.
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 @@ Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
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 @@ Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
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 @@ Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
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 @@ Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
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 @@ Add an option for a minimal text length before inserting a line break for
(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 @@ Syntax highlighting:
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