summaryrefslogtreecommitdiffstats
path: root/runtime/doc
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-12-11 15:53:04 +0000
committerBram Moolenaar <Bram@vim.org>2022-12-11 15:53:04 +0000
commit7db29e4b5c3a347d24ca5062ddaa5cf4c4d54b9c (patch)
treef664cce5e430637c1f11717d9178641ee695d593 /runtime/doc
parent79336e19cb39322d45a787c33b83cce3b314a012 (diff)
Update runtime files
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/eval.txt9
-rw-r--r--runtime/doc/options.txt82
-rw-r--r--runtime/doc/quickfix.txt15
-rw-r--r--runtime/doc/tags48
-rw-r--r--runtime/doc/todo.txt10
-rw-r--r--runtime/doc/vim9.txt6
-rw-r--r--runtime/doc/vim9class.txt45
7 files changed, 162 insertions, 53 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b2863d02f4..98c48699cc 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 9.0. Last change: 2022 Dec 03
+*eval.txt* For Vim version 9.0. Last change: 2022 Dec 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -163,9 +163,10 @@ Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
*E611* *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910*
- *E913* *E974* *E975* *E976*
-|List|, |Dictionary|, |Funcref|, |Job|, |Channel| and |Blob| types are not
-automatically converted.
+ *E913* *E974* *E975* *E976* *E1319* *E1320* *E1321* *E1322*
+ *E1323* *E1324*
+|List|, |Dictionary|, |Funcref|, |Job|, |Channel|, |Blob|, |Class| and
+|object| types are not automatically converted.
*E805* *E806* *E808*
When mixing Number and Float the Number is converted to Float. Otherwise
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 73409b7893..e95f63f751 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 9.0. Last change: 2022 Nov 30
+*options.txt* For Vim version 9.0. Last change: 2022 Dec 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7117,45 +7117,49 @@ A jump table for the options with a short description can be found at |Q_op|.
messages, for example with CTRL-G, and to avoid some other messages.
It is a list of flags:
flag meaning when present ~
- f use "(3 of 5)" instead of "(file 3 of 5)"
- i use "[noeol]" instead of "[Incomplete last line]"
- l use "999L, 888B" instead of "999 lines, 888 bytes"
- m use "[+]" instead of "[Modified]"
- n use "[New]" instead of "[New File]"
- r use "[RO]" instead of "[readonly]"
- w use "[w]" instead of "written" for file write message
+ f use "(3 of 5)" instead of "(file 3 of 5)" *shm-f*
+ i use "[noeol]" instead of "[Incomplete last line]" *shm-i*
+ l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l*
+ m use "[+]" instead of "[Modified]" *shm-m*
+ n use "[New]" instead of "[New File]" *shm-n*
+ r use "[RO]" instead of "[readonly]" *shm-r*
+ w use "[w]" instead of "written" for file write message *shm-w*
and "[a]" instead of "appended" for ':w >> file' command
- x use "[dos]" instead of "[dos format]", "[unix]" instead of
- "[unix format]" and "[mac]" instead of "[mac format]".
- a all of the above abbreviations
-
- o overwrite message for writing a file with subsequent message
- for reading a file (useful for ":wn" or when 'autowrite' on)
- O message for reading a file overwrites any previous message.
- Also for quickfix message (e.g., ":cn").
- s don't give "search hit BOTTOM, continuing at TOP" or "search
- hit TOP, continuing at BOTTOM" messages; when using the search
- count do not show "W" after the count message (see S below)
- t truncate file message at the start if it is too long to fit
- on the command-line, "<" will appear in the left most column.
- Ignored in Ex mode.
- T truncate other messages in the middle if they are too long to
- fit on the command line. "..." will appear in the middle.
- Ignored in Ex mode.
- W don't give "written" or "[w]" when writing a file
- A don't give the "ATTENTION" message when an existing swap file
- is found.
- I don't give the intro message when starting Vim |:intro|.
- c don't give |ins-completion-menu| messages. For example,
- "-- XXX completion (YYY)", "match 1 of 2", "The only match",
- "Pattern not found", "Back at original", etc.
- C don't give messages while scanning for ins-completion items,
- for instance "scanning tags"
- q use "recording" instead of "recording @a"
- F don't give the file info when editing a file, like `:silent`
- was used for the command; note that this also affects messages
- from autocommands
- S do not show search count message when searching, e.g.
+ x use "[dos]" instead of "[dos format]", "[unix]" *shm-x*
+ instead of "[unix format]" and "[mac]" instead of "[mac
+ format]".
+ a all of the above abbreviations *shm-a*
+
+ o overwrite message for writing a file with subsequent *shm-o*
+ message for reading a file (useful for ":wn" or when
+ 'autowrite' on)
+ O message for reading a file overwrites any previous *smh-O*
+ message. Also for quickfix message (e.g., ":cn").
+ s don't give "search hit BOTTOM, continuing at TOP" or *shm-s*
+ "search hit TOP, continuing at BOTTOM" messages; when using
+ the search count do not show "W" after the count message (see
+ S below)
+ t truncate file message at the start if it is too long *shm-t*
+ to fit on the command-line, "<" will appear in the left most
+ column. Ignored in Ex mode.
+ T truncate other messages in the middle if they are too *shm-T*
+ long to fit on the command line. "..." will appear in the
+ middle. Ignored in Ex mode.
+ W don't give "written" or "[w]" when writing a file *shm-W*
+ A don't give the "ATTENTION" message when an existing *shm-A*
+ swap file is found.
+ I don't give the intro message when starting Vim, *shm-I*
+ see |:intro|.
+ c don't give |ins-completion-menu| messages. For *shm-c*
+ example, "-- XXX completion (YYY)", "match 1 of 2", "The only
+ match", "Pattern not found", "Back at original", etc.
+ C don't give messages while scanning for ins-completion *shm-C*
+ items, for instance "scanning tags"
+ q use "recording" instead of "recording @a" *shm-q*
+ F don't give the file info when editing a file, like *shm-F*
+ `:silent` was used for the command; note that this also
+ affects messages from autocommands
+ S do not show search count message when searching, e.g. *shm-S*
"[1/5]"
This gives you the opportunity to avoid that a change between buffers
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 032e9a7960..7dc4fa3035 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1273,6 +1273,21 @@ not "b:current_compiler". What the command actually does is the following:
For writing a compiler plugin, see |write-compiler-plugin|.
+DOTNET *compiler-dotnet*
+
+The .NET CLI compiler outputs both errors and warnings by default. The output
+may be limited to include only errors, by setting the g:dotnet_errors_only
+variable to |v:true|.
+
+The associated project name is included in each error and warning. To supress
+the project name, set the g:dotnet_show_project_file variable to |v:false|.
+
+Example: limit output to only display errors, and suppress the project name: >
+ let dotnet_errors_only = v:true
+ let dotnet_show_project_file = v:false
+ compiler dotnet
+<
+
GCC *quickfix-gcc* *compiler-gcc*
There's one variable you can set for the GCC compiler:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 2fe27d4d65..9178c773b5 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3988,6 +3988,7 @@ CTRL-{char} intro.txt /*CTRL-{char}*
Channel eval.txt /*Channel*
Channels eval.txt /*Channels*
Chinese mbyte.txt /*Chinese*
+Class vim9class.txt /*Class*
Cmd-event autocmd.txt /*Cmd-event*
CmdUndefined autocmd.txt /*CmdUndefined*
Cmdline cmdline.txt /*Cmdline*
@@ -4368,7 +4369,20 @@ E1311 map.txt /*E1311*
E1312 windows.txt /*E1312*
E1313 eval.txt /*E1313*
E1314 vim9class.txt /*E1314*
+E1315 vim9class.txt /*E1315*
+E1316 vim9class.txt /*E1316*
+E1317 vim9class.txt /*E1317*
+E1318 vim9class.txt /*E1318*
+E1319 eval.txt /*E1319*
E132 userfunc.txt /*E132*
+E1320 eval.txt /*E1320*
+E1321 eval.txt /*E1321*
+E1322 eval.txt /*E1322*
+E1323 eval.txt /*E1323*
+E1324 eval.txt /*E1324*
+E1325 vim9class.txt /*E1325*
+E1326 vim9class.txt /*E1326*
+E1327 vim9class.txt /*E1327*
E133 userfunc.txt /*E133*
E134 change.txt /*E134*
E135 autocmd.txt /*E135*
@@ -5427,6 +5441,7 @@ OS390-bugs os_390.txt /*OS390-bugs*
OS390-has-ebcdic os_390.txt /*OS390-has-ebcdic*
OS390-limitations os_390.txt /*OS390-limitations*
OS390-open-source os_390.txt /*OS390-open-source*
+Object vim9class.txt /*Object*
OffTheSpot mbyte.txt /*OffTheSpot*
OnTheSpot mbyte.txt /*OnTheSpot*
Operator-pending intro.txt /*Operator-pending*
@@ -6264,6 +6279,7 @@ cino-w indent.txt /*cino-w*
cino-{ indent.txt /*cino-{*
cino-} indent.txt /*cino-}*
cinoptions-values indent.txt /*cinoptions-values*
+class vim9class.txt /*class*
class-member vim9class.txt /*class-member*
class-method vim9class.txt /*class-method*
clear-undo undo.txt /*clear-undo*
@@ -6322,6 +6338,7 @@ compile-changes-8 version8.txt /*compile-changes-8*
compile-changes-9 version9.txt /*compile-changes-9*
compiler-compaqada ft_ada.txt /*compiler-compaqada*
compiler-decada ft_ada.txt /*compiler-decada*
+compiler-dotnet quickfix.txt /*compiler-dotnet*
compiler-gcc quickfix.txt /*compiler-gcc*
compiler-gnat ft_ada.txt /*compiler-gnat*
compiler-hpada ft_ada.txt /*compiler-hpada*
@@ -8878,6 +8895,14 @@ nr2char() builtin.txt /*nr2char()*
nroff.vim syntax.txt /*nroff.vim*
null vim9.txt /*null*
null-variable eval.txt /*null-variable*
+null_blob vim9.txt /*null_blob*
+null_channel vim9.txt /*null_channel*
+null_dict vim9.txt /*null_dict*
+null_function vim9.txt /*null_function*
+null_job vim9.txt /*null_job*
+null_list vim9.txt /*null_list*
+null_partial vim9.txt /*null_partial*
+null_string vim9.txt /*null_string*
number_relativenumber options.txt /*number_relativenumber*
numbered-function eval.txt /*numbered-function*
numbermax-variable eval.txt /*numbermax-variable*
@@ -8887,6 +8912,7 @@ o insert.txt /*o*
o_CTRL-V motion.txt /*o_CTRL-V*
o_V motion.txt /*o_V*
o_v motion.txt /*o_v*
+object vim9class.txt /*object*
object-motions motion.txt /*object-motions*
object-select motion.txt /*object-select*
objects index.txt /*objects*
@@ -9545,6 +9571,27 @@ shellescape() builtin.txt /*shellescape()*
shift intro.txt /*shift*
shift-left-right change.txt /*shift-left-right*
shiftwidth() builtin.txt /*shiftwidth()*
+shm-A options.txt /*shm-A*
+shm-C options.txt /*shm-C*
+shm-F options.txt /*shm-F*
+shm-I options.txt /*shm-I*
+shm-S options.txt /*shm-S*
+shm-T options.txt /*shm-T*
+shm-W options.txt /*shm-W*
+shm-a options.txt /*shm-a*
+shm-c options.txt /*shm-c*
+shm-f options.txt /*shm-f*
+shm-i options.txt /*shm-i*
+shm-l options.txt /*shm-l*
+shm-m options.txt /*shm-m*
+shm-n options.txt /*shm-n*
+shm-o options.txt /*shm-o*
+shm-q options.txt /*shm-q*
+shm-r options.txt /*shm-r*
+shm-s options.txt /*shm-s*
+shm-t options.txt /*shm-t*
+shm-w options.txt /*shm-w*
+shm-x options.txt /*shm-x*
short-name-changed version4.txt /*short-name-changed*
showing-menus gui.txt /*showing-menus*
sign-column sign.txt /*sign-column*
@@ -9583,6 +9630,7 @@ slice() builtin.txt /*slice()*
slow-fast-terminal term.txt /*slow-fast-terminal*
slow-start starting.txt /*slow-start*
slow-terminal term.txt /*slow-terminal*
+smh-O options.txt /*smh-O*
socket-interface channel.txt /*socket-interface*
sort() builtin.txt /*sort()*
sorting change.txt /*sorting*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 39961a177c..4474632c34 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 9.0. Last change: 2022 Dec 05
+*todo.txt* For Vim version 9.0. Last change: 2022 Dec 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -54,6 +54,14 @@ Upcoming larger works:
Further Vim9 improvements, possibly after launch:
- implement :class and :interface: See |vim9-classes| #11544
+ make default constructor use "this.member = void"
+ make public / default read access / private work for members.
+ string value of class and object in echo_string_core()
+ object empty(), len() - can class define a method?
+ tv_equal() should compare values, not identity.
+ garbage collection: set_ref_in_item(): Mark items in class as used ?
+ type() should return different type for each class?
+ how about lock/unlock?
- implement :type
- implement :enum
- Use Vim9 for more runtime files.
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index a70b8a42c5..e13feee467 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 9.0. Last change: 2022 Dec 03
+*vim9.txt* For Vim version 9.0. Last change: 2022 Dec 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1023,7 +1023,9 @@ always converted to string: >
Simple types are Number, Float, Special and Bool. For other types |string()|
should be used.
- *false* *true* *null* *E1034*
+ *false* *true* *null* *null_blob* *null_channel*
+ *null_dict* *null_function* *null_job* *null_list*
+ *null_partial* *null_string* *E1034*
In Vim9 script one can use the following predefined values: >
true
false
diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt
index b018a105c3..7785fbe130 100644
--- a/runtime/doc/vim9class.txt
+++ b/runtime/doc/vim9class.txt
@@ -1,4 +1,4 @@
-*vim9class.txt* For Vim version 9.0. Last change: 2022 Dec 04
+*vim9class.txt* For Vim version 9.0. Last change: 2022 Dec 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -96,7 +96,7 @@ Let's start with a simple example: a class that stores a text position: >
this.col = col
enddef
endclass
-
+< *object* *Object*
You can create an object from this class with the new() method: >
var pos = TextPosition.new(1, 1)
@@ -104,7 +104,7 @@ You can create an object from this class with the new() method: >
The object members "lnum" and "col" can be accessed directly: >
echo $'The text position is ({pos.lnum}, {pos.col})'
-
+< *E1317* *E1327*
If you have been using other object-oriented languages you will notice that
in Vim the object members are consistently referred to with the "this."
prefix. This is different from languages like Java and TypeScript. This
@@ -329,14 +329,14 @@ The interface name can be used as a type: >
==============================================================================
-5. More class details *Vim9-class*
+5. More class details *Vim9-class* *Class* *class*
Defining a class ~
*:class* *:endclass* *:abstract*
A class is defined between `:class` and `:endclass`. The whole class is
defined in one script file. It is not possible to add to a class later.
-A class can only be defined in a |Vim9| script file. *E1315*
+A class can only be defined in a |Vim9| script file. *E1316*
A class cannot be defined inside a function.
It is possible to define more than one class in a script file. Although it
@@ -361,7 +361,7 @@ these variants: >
*E1314*
The class name should be CamelCased. It must start with an uppercase letter.
That avoids clashing with builtin types.
-
+ *E1315*
After the class name these optional items can be used. Each can appear only
once. They can appear in any order, although this order is recommended: >
extends ClassName
@@ -377,6 +377,20 @@ named interface. This avoids the need for separately specifying the
interface, which is often done in many languages, especially Java.
+Items in a class ~
+ *E1318* *E1325* *E1326*
+Inside a class, in betweeen `:class` and `:endclass`, these items can appear:
+- An object member declaration: >
+ this._memberName: memberType
+ this.memberName: memberType
+ public this.memberName: memberType
+- A constructor method: >
+ def new(arguments)
+ def newName(arguments)
+- An object method: >
+ def SomeMethod(arguments)
+
+
Defining an interface ~
*:interface* *:endinterface*
An interface is defined between `:interface` and `:endinterface`. It may be
@@ -417,11 +431,28 @@ members, in the order they were specified. Thus if your class looks like: >
Then The default constructor will be: >
- def new(this.name, this.age, this.gender)
+ def new(this.name = void, this.age = void, this.gender = void)
enddef
All object members will be used, also private access ones.
+The "= void" default values make the arguments optional. Thus you can also
+call `new()` without any arguments. Since "void" isn't an actual value, no
+assignment will happen and the default value for the object members will be
+used. This is a more useful example, with default values: >
+
+ class TextPosition
+ this.lnum: number = 1
+ this.col: number = 1
+ endclass
+
+If you want the constructor to have mandatory arguments, you need to write it
+yourself. For example, if for the AutoNew class above you insist on getting
+the name, you can define the constructor like this: >
+
+ def new(this.name, this.age = void, this.gender = void)
+ enddef
+
Multiple constructors ~