Compare commits
201 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c215c5893 | ||
|
|
57c732ed78 | ||
|
|
ec084d3356 | ||
|
|
e52e0c89d1 | ||
|
|
80ae880f5f | ||
|
|
d5aec0ced1 | ||
|
|
578fe947e3 | ||
|
|
12f2003871 | ||
|
|
7eeefd4a39 | ||
|
|
b35efa5ed0 | ||
|
|
ad39c094d2 | ||
|
|
b3f740695a | ||
|
|
d672dde584 | ||
|
|
bc93cebb69 | ||
|
|
0c2ca58ef0 | ||
|
|
703ea9eaef | ||
|
|
8d588ccee5 | ||
|
|
c593bec412 | ||
|
|
e010c720b2 | ||
|
|
fa29c8abd6 | ||
|
|
f2d5c240a5 | ||
|
|
750802b55c | ||
|
|
8fb1b47a5e | ||
|
|
b81f56fb57 | ||
|
|
1aa76b8fd0 | ||
|
|
026270c01d | ||
|
|
83f37b9142 | ||
|
|
8040a7147f | ||
|
|
95ffd43f88 | ||
|
|
d28e0b3652 | ||
|
|
0c81d1b112 | ||
|
|
b654103ad1 | ||
|
|
b4d2cb1083 | ||
|
|
8ed04587d3 | ||
|
|
0c6ceaf903 | ||
|
|
8b430b4c1d | ||
|
|
f9706e9df0 | ||
|
|
c036e87bd7 | ||
|
|
5b1c8fe3d5 | ||
|
|
818fc9ad14 | ||
|
|
09f28f49c9 | ||
|
|
436472f5e0 | ||
|
|
85683ec620 | ||
|
|
e0807ea4a7 | ||
|
|
0062c2d4f9 | ||
|
|
f575adff06 | ||
|
|
11ec807639 | ||
|
|
0bbf722aaa | ||
|
|
c0d656c89d | ||
|
|
fd1823e0b7 | ||
|
|
401d9ffb5a | ||
|
|
a2f6e42ded | ||
|
|
257cc5ee95 | ||
|
|
63ce4849ef | ||
|
|
9ae3bbdb96 | ||
|
|
ee2e52aa06 | ||
|
|
38a5f517a7 | ||
|
|
406cd90f19 | ||
|
|
9e2bcb5d23 | ||
|
|
1fa8d2c33d | ||
|
|
414b796627 | ||
|
|
82f654e092 | ||
|
|
bc2b71d44a | ||
|
|
b13af50f73 | ||
|
|
40d9da2a43 | ||
|
|
e51bb17dd0 | ||
|
|
a28be85ccd | ||
|
|
a76b31542e | ||
|
|
a36c830a32 | ||
|
|
df2ecddf9d | ||
|
|
50434bd74c | ||
|
|
f0cee1971f | ||
|
|
f4140488c7 | ||
|
|
ebdf3c964a | ||
|
|
c2adc00fa7 | ||
|
|
4132eb505c | ||
|
|
00f3b4e007 | ||
|
|
0a8fed6231 | ||
|
|
f2cecb6c10 | ||
|
|
ae8d2de3a9 | ||
|
|
21456cdccb | ||
|
|
3dd64608f6 | ||
|
|
7306d6b1c9 | ||
|
|
4f5776c17c | ||
|
|
3fb377fa78 | ||
|
|
2f18975088 | ||
|
|
3b0ef8cfdb | ||
|
|
49c99fcca0 | ||
|
|
5489eab345 | ||
|
|
5f1d3ae8a8 | ||
|
|
9f6277bdde | ||
|
|
799439a5d8 | ||
|
|
99234f29aa | ||
|
|
408030e8d0 | ||
|
|
355757aed6 | ||
|
|
b3e195cca7 | ||
|
|
7ba3b91e03 | ||
|
|
57ea2924e5 | ||
|
|
dbe5d361fe | ||
|
|
d5b9914938 | ||
|
|
4f645c54ef | ||
|
|
165315584d | ||
|
|
d02e508a18 | ||
|
|
670218839a | ||
|
|
f2460a3aec | ||
|
|
348808f7c0 | ||
|
|
c2a4b35b86 | ||
|
|
04d0522046 | ||
|
|
777770fbb0 | ||
|
|
158906cffc | ||
|
|
5cab73f8cc | ||
|
|
170fcfcf25 | ||
|
|
6e587dcbf3 | ||
|
|
1af5ce01c3 | ||
|
|
4af11174f7 | ||
|
|
0de50864a7 | ||
|
|
adbc11c2ee | ||
|
|
ff80cb6807 | ||
|
|
a78e9c61a0 | ||
|
|
2e6638d5f0 | ||
|
|
7077892a79 | ||
|
|
07ada5ff2f | ||
|
|
94255df057 | ||
|
|
eed3571fe0 | ||
|
|
560979ed4f | ||
|
|
80147dda4f | ||
|
|
d816cd94d8 | ||
|
|
bfe1204312 | ||
|
|
26e117e9bc | ||
|
|
a5edb670dc | ||
|
|
631ebc4814 | ||
|
|
e20b9ececa | ||
|
|
e7ddf4e337 | ||
|
|
4e12a5df37 | ||
|
|
b283a8a680 | ||
|
|
0f18b6d17b | ||
|
|
43c60eda2a | ||
|
|
ea3db914c0 | ||
|
|
d98c0b63ab | ||
|
|
3180fe6c6d | ||
|
|
3c01c4a028 | ||
|
|
284d1c24e2 | ||
|
|
91cd59a0a2 | ||
|
|
219c7d0638 | ||
|
|
ab067a21b9 | ||
|
|
7cc96923c4 | ||
|
|
7f829cab35 | ||
|
|
0b76ad53b3 | ||
|
|
705724e430 | ||
|
|
a259d8d30b | ||
|
|
92be6e3f46 | ||
|
|
5feabe00c4 | ||
|
|
9f2d020d39 | ||
|
|
21109272f5 | ||
|
|
0c3064b39b | ||
|
|
b09920203a | ||
|
|
df54382eac | ||
|
|
70b3e706b4 | ||
|
|
e258368b4f | ||
|
|
db661fb95d | ||
|
|
5d98dc2a48 | ||
|
|
0ff6aad393 | ||
|
|
4549ece47c | ||
|
|
9a5e5a3e33 | ||
|
|
a6d536829a | ||
|
|
8cbd6dfc0c | ||
|
|
97a2af39cd | ||
|
|
58ceca5cae | ||
|
|
07da94b0f0 | ||
|
|
5b18c248d3 | ||
|
|
842931cd7a | ||
|
|
272ca95fc3 | ||
|
|
7d8ea0b241 | ||
|
|
f8ddb25789 | ||
|
|
89bfc8218c | ||
|
|
50985eb1f0 | ||
|
|
3f169ce17e | ||
|
|
318e7a9c03 | ||
|
|
4b96df5a01 | ||
|
|
a5d5953d59 | ||
|
|
21b9e9773d | ||
|
|
b3de5114ac | ||
|
|
da812e282a | ||
|
|
978d170bdc | ||
|
|
673660ab00 | ||
|
|
8a7d6542b3 | ||
|
|
1d9215b9aa | ||
|
|
7f51bbe0d1 | ||
|
|
03c3bd9fd0 | ||
|
|
dfede9a70b | ||
|
|
2c02d3843a | ||
|
|
c2a60ae10e | ||
|
|
81c3ea7496 | ||
|
|
8bf716cdba | ||
|
|
0d76683e09 | ||
|
|
ade0d39468 | ||
|
|
2387773d93 | ||
|
|
f0764e8bb6 | ||
|
|
538feb56e8 | ||
|
|
a44b3eeafa | ||
|
|
ed5adff1e6 |
30
.travis.yml
30
.travis.yml
@@ -9,7 +9,7 @@ anchors:
|
||||
- &small
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &normal
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- &linux-huge
|
||||
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
@@ -21,6 +21,8 @@ anchors:
|
||||
- &asan # ASAN build
|
||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
- &shadowopt
|
||||
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
|
||||
|
||||
linux: &linux
|
||||
os: linux
|
||||
@@ -133,19 +135,15 @@ script:
|
||||
fi
|
||||
- echo -en "travis_fold:end:build\\r\\033[0K"
|
||||
- set +o errexit
|
||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||
# Show Vim version and also if_xx versions.
|
||||
- |
|
||||
if [[ "${BUILD}" = "yes" ]]; then
|
||||
"${SRCDIR}"/vim --version
|
||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null
|
||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null
|
||||
cat if_ver.txt
|
||||
"${SRCDIR}"/vim -u NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
"${SRCDIR}"/vim -u NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
fi
|
||||
- >
|
||||
do_test make ${SHADOWOPT} ${TEST} &&
|
||||
make -C runtime/doc vimtags VIMEXE=../../"${SRCDIR}"/vim &&
|
||||
FOLD_MARKER=travis_fold
|
||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
|
||||
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
|
||||
|
||||
|
||||
@@ -194,11 +192,15 @@ matrix:
|
||||
- <<: *linux
|
||||
name: normal/clang
|
||||
compiler: clang
|
||||
env: *normal
|
||||
env:
|
||||
- *normal
|
||||
- *shadowopt
|
||||
- <<: *linux
|
||||
name: normal/gcc
|
||||
compiler: gcc
|
||||
env: *normal
|
||||
env:
|
||||
- *normal
|
||||
- *shadowopt
|
||||
- <<: *linux
|
||||
name: huge+coverage/clang
|
||||
compiler: clang
|
||||
@@ -228,5 +230,11 @@ matrix:
|
||||
- *linux-huge
|
||||
- TEST="-C src testgui"
|
||||
after_success: *coverage
|
||||
- <<: *linux
|
||||
name: vimtags/gcc
|
||||
compiler: gcc
|
||||
env:
|
||||
- *normal
|
||||
- TEST="-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
|
||||
|
||||
# vim:set sts=2 sw=2 tw=0 et:
|
||||
|
||||
23
Filelist
23
Filelist
@@ -11,6 +11,7 @@ SRC_ALL = \
|
||||
.cirrus.yml \
|
||||
appveyor.yml \
|
||||
ci/appveyor.bat \
|
||||
ci/if_ver*.vim \
|
||||
src/Make_all.mak \
|
||||
src/README.md \
|
||||
src/alloc.h \
|
||||
@@ -125,6 +126,7 @@ SRC_ALL = \
|
||||
src/termlib.c \
|
||||
src/testing.c \
|
||||
src/textprop.c \
|
||||
src/time.c \
|
||||
src/ui.c \
|
||||
src/undo.c \
|
||||
src/usercmd.c \
|
||||
@@ -132,6 +134,10 @@ SRC_ALL = \
|
||||
src/version.c \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/vim9.h \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
src/vim9script.c \
|
||||
src/viminfo.c \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
@@ -177,7 +183,6 @@ SRC_ALL = \
|
||||
src/testdir/dumps/*.dump \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/if_ver*.vim \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
@@ -270,11 +275,15 @@ SRC_ALL = \
|
||||
src/proto/termlib.pro \
|
||||
src/proto/testing.pro \
|
||||
src/proto/textprop.pro \
|
||||
src/proto/time.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
src/proto/usercmd.pro \
|
||||
src/proto/userfunc.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
src/proto/vim9script.pro \
|
||||
src/proto/viminfo.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
@@ -521,7 +530,6 @@ SRC_DOS = \
|
||||
src/uninstall.c \
|
||||
src/vim.def \
|
||||
src/vim.rc \
|
||||
src/vimio.h \
|
||||
src/gvim.exe.mnf \
|
||||
src/vimrun.c \
|
||||
src/xpm_w32.c \
|
||||
@@ -591,6 +599,14 @@ SRC_AMI = \
|
||||
src/testdir/amiga.vim \
|
||||
src/xxd/Make_amiga.mak \
|
||||
|
||||
# source files for Haiku (also in the extra archive)
|
||||
SRC_HAIKU = \
|
||||
src/os_haiku.h \
|
||||
src/os_haiku.rdef \
|
||||
src/gui_haiku.cc \
|
||||
src/gui_haiku.h \
|
||||
src/proto/gui_haiku.pro \
|
||||
|
||||
# source files for the Mac (also in the extra archive)
|
||||
SRC_MAC = \
|
||||
src/INSTALLmac.txt \
|
||||
@@ -626,13 +642,13 @@ SRC_QNX = \
|
||||
src/proto/gui_photon.pro \
|
||||
src/proto/os_qnx.pro \
|
||||
|
||||
|
||||
# source files for the extra archive (all sources that are not for Unix)
|
||||
SRC_EXTRA = \
|
||||
$(SRC_AMI) \
|
||||
$(SRC_AMI_DOS) \
|
||||
$(SRC_DOS) \
|
||||
$(SRC_DOS_BIN) \
|
||||
$(SRC_HAIKU) \
|
||||
$(SRC_MAC) \
|
||||
$(SRC_QNX) \
|
||||
$(SRC_VMS) \
|
||||
@@ -652,6 +668,7 @@ SRC_EXTRA = \
|
||||
RT_ALL = \
|
||||
README.txt \
|
||||
README.md \
|
||||
README_VIM9.md \
|
||||
LICENSE \
|
||||
CONTRIBUTING.md \
|
||||
runtime/bugreport.vim \
|
||||
|
||||
2
Makefile
2
Makefile
@@ -153,7 +153,7 @@ MINOR = 2
|
||||
# > msvc2015.bat
|
||||
# - Build the console binary:
|
||||
# > nmake -f Make_mvc.mak
|
||||
# - Run the tests and check the ouput:
|
||||
# - Run the tests and check the output:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak test
|
||||
# - Rename (using ../tools/rename.bat):
|
||||
|
||||
@@ -31,6 +31,8 @@ flavours of UNIX. Porting to other systems should not be very difficult.
|
||||
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
|
||||
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
For Vim9 script see [README_VIM9](README_VIM9.md).
|
||||
|
||||
## Distribution ##
|
||||
|
||||
You can often use your favorite package manager to install Vim. On Mac and
|
||||
|
||||
344
README_VIM9.md
Normal file
344
README_VIM9.md
Normal file
@@ -0,0 +1,344 @@
|
||||

|
||||
|
||||
# What is Vim9?
|
||||
|
||||
This is an experimental side of [Vim](https://github.com/vim/vim).
|
||||
It explores ways of making Vim script faster and better.
|
||||
|
||||
WARNING: The Vim9 script features are in the early stages of development,
|
||||
anything can break!
|
||||
|
||||
# Why Vim9?
|
||||
|
||||
## 1. FASTER VIM SCRIPT
|
||||
|
||||
The third item on the poll results of 2018, after popup windows and text
|
||||
properties, is faster Vim script. So how do we do that?
|
||||
|
||||
I have been throwing some ideas around, and soon came to the conclusion
|
||||
that the current way functions are called and executed, with
|
||||
dictionaries for the arguments and local variables, is never going to be
|
||||
very fast. We're lucky if we can make it twice as fast. The overhead
|
||||
of a function call and executing every line is just too high.
|
||||
|
||||
So what then? We can only make something fast by having a new way of
|
||||
defining a function, with similar but different properties of the old
|
||||
way:
|
||||
* Arguments are only available by name, not through the a: dictionary or
|
||||
the a:000 list.
|
||||
* Local variables are not available in an l: dictionary.
|
||||
* A few more things that slow us down, such as exception handling details.
|
||||
|
||||
I Implemented a "proof of concept" and measured the time to run a simple
|
||||
for loop with an addition (Justin used this example in his presentation,
|
||||
full code is below):
|
||||
|
||||
``` vim
|
||||
let sum = 0
|
||||
for i in range(1, 2999999)
|
||||
let sum += i
|
||||
endfor
|
||||
```
|
||||
|
||||
| how | time in sec |
|
||||
| --------| -------- |
|
||||
| Vim old | 5.018541 |
|
||||
| Python | 0.369598 |
|
||||
| Lua | 0.078817 |
|
||||
| Vim new | 0.073595 |
|
||||
|
||||
That looks very promising! It's just one example, but it shows how much
|
||||
we can gain, and also that Vim script can be faster than builtin
|
||||
interfaces.
|
||||
|
||||
In practice the script would not do something useless as counting but change
|
||||
the text. For example, re-indent all the lines:
|
||||
|
||||
``` vim
|
||||
let totallen = 0
|
||||
for i in range(1, 100000)
|
||||
call setline(i, ' ' .. getline(i))
|
||||
let totallen += len(getline(i))
|
||||
endfor
|
||||
```
|
||||
|
||||
| how | time in sec |
|
||||
| --------| -------- |
|
||||
| Vim old | 0.853752 |
|
||||
| Python | 0.304584 |
|
||||
| Lua | 0.286573 |
|
||||
| Vim new | 0.190276 |
|
||||
|
||||
The differences are smaller, but Vim 9 script is clearly the fastest.
|
||||
|
||||
How does Vim9 script work? The function is first compiled into a sequence of
|
||||
instructions. Each instruction has one or two parameters and a stack is
|
||||
used to store intermediate results. Local variables are also on the
|
||||
stack, space is reserved during compilation. This is a fairly normal
|
||||
way of compilation into an intermediate format, specialized for Vim,
|
||||
e.g. each stack item is a typeval_T. And one of the instructions is
|
||||
"execute Ex command", for commands that are not compiled.
|
||||
|
||||
|
||||
## 2. PHASING OUT INTERFACES
|
||||
|
||||
Attempts have been made to implement functionality with built-in script
|
||||
languages such as Python, Perl, Lua, Tcl and Ruby. This never gained much
|
||||
foothold, for various reasons.
|
||||
|
||||
Instead of using script language support in Vim:
|
||||
* Encourage implementing external tools in any language and communicate
|
||||
with them. The job and channel support already makes this possible.
|
||||
Really any language can be used, also Java and Go, which are not
|
||||
available built-in.
|
||||
* Phase out the built-in language interfaces, make maintenance a bit easier
|
||||
and executables easier to build. They will be kept for backwards
|
||||
compatibility, no new features.
|
||||
* Improve the Vim script language, it is used to communicate with the external
|
||||
tool and implements the Vim side of the interface. Also, it can be used when
|
||||
an external tool is undesired.
|
||||
|
||||
All together this creates a clear situation: Vim with the +eval feature
|
||||
will be sufficient for most plugins, while some plugins require
|
||||
installing a tool that can be written in any language. No confusion
|
||||
about having Vim but the plugin not working because some specific
|
||||
language is missing. This is a good long term goal.
|
||||
|
||||
Rationale: Why is it better to run a tool separately from Vim than using a
|
||||
built-in interface and interpreter? Take for example something that is
|
||||
written in Python:
|
||||
* The built-in interface uses the embedded python interpreter. This is less
|
||||
well maintained than the python command. Building Vim with it requires
|
||||
installing developer packages. If loaded dynamically there can be a version
|
||||
mismatch.
|
||||
* When running the tool externally the standard python command can be used,
|
||||
which is quite often available by default or can be easily installed.
|
||||
* The built-in interface has an API that is unique for Vim with Python. This is
|
||||
an extra API to learn.
|
||||
* A .py file can be compiled into a .pyc file and execute much faster.
|
||||
* Inside Vim multi-threading can cause problems, since the Vim core is single
|
||||
threaded. In an external tool there are no such problems.
|
||||
* The Vim part is written in .vim files, the Python part is in .py files, this
|
||||
is nicely separated.
|
||||
* Disadvantage: An interface needs to be made between Vim and Python.
|
||||
JSON is available for this, and it's fairly easy to use. But it still
|
||||
requires implementing asynchronous communication.
|
||||
|
||||
|
||||
## 3. BETTER VIM SCRIPT
|
||||
|
||||
To make Vim faster a new way of defining a function needs to be added.
|
||||
While we are doing that, since the lines in this function won't be fully
|
||||
backwards compatible anyway, we can also make Vim script easier to use.
|
||||
In other words: "less weird". Making it work more like modern
|
||||
programming languages will help. No surprises.
|
||||
|
||||
A good example is how in a function the arguments are prefixed with
|
||||
"a:". No other language I know does that, so let's drop it.
|
||||
|
||||
Taking this one step further is also dropping "s:" for script-local variables;
|
||||
everything at the script level is script-local by default. Since this is not
|
||||
backwards compatible it requires a new script style: Vim9 script!
|
||||
|
||||
It should be possible to convert code from other languages to Vim
|
||||
script. We can add functionality to make this easier. This still needs
|
||||
to be discussed, but we can consider adding type checking and a simple
|
||||
form of classes. If you look at JavaScript for example, it has gone
|
||||
through these stages over time, adding real class support and now
|
||||
TypeScript adds type checking. But we'll have to see how much of that
|
||||
we actually want to include in Vim script. Ideally a conversion tool
|
||||
can take Python, JavaScript or TypeScript code and convert it to Vim
|
||||
script, with only some things that cannot be converted.
|
||||
|
||||
Vim script won't work the same as any specific language, but we can use
|
||||
mechanisms that are commonly known, ideally with the same syntax. One
|
||||
thing I have been thinking of is assignments without ":let". I often
|
||||
make that mistake (after writing JavaScript especially). I think it is
|
||||
possible, if we make local variables shadow commands. That should be OK,
|
||||
if you shadow a command you want to use, just rename the variable.
|
||||
Using "let" and "const" to declare a variable, like in JavaScript and
|
||||
TypeScript, can work:
|
||||
|
||||
|
||||
``` vim
|
||||
def MyFunction(arg: number): number
|
||||
let local = 1
|
||||
let todo = arg
|
||||
const ADD = 88
|
||||
while todo > 0
|
||||
local += ADD
|
||||
--todo
|
||||
endwhile
|
||||
return local
|
||||
enddef
|
||||
```
|
||||
|
||||
The similarity with JavaScript/TypeScript can also be used for dependencies
|
||||
between files. Vim currently uses the `:source` command, which has several
|
||||
disadvantages:
|
||||
* In the sourced script, is not clear what it provides. By default all
|
||||
functions are global and can be used elsewhere.
|
||||
* In a script that sources other scripts, it is not clear what function comes
|
||||
from what sourced script. Finding the implementation is a hassle.
|
||||
* Prevention of loading the whole script twice must be manually implemented.
|
||||
|
||||
We can use the `:import` and `:export` commands from the JavaScript standard to
|
||||
make this much better. For example, in script "myfunction.vim" define a
|
||||
function and export it:
|
||||
|
||||
``` vim
|
||||
vim9script " Vim9 script syntax used here
|
||||
|
||||
let local = 'local variable is not exported, script-local'
|
||||
|
||||
export def MyFunction() " exported function
|
||||
...
|
||||
|
||||
def LocalFunction() " not exported, script-local
|
||||
...
|
||||
```
|
||||
|
||||
And in another script import the function:
|
||||
|
||||
``` vim
|
||||
vim9script " Vim9 script syntax used here
|
||||
|
||||
import MyFunction from 'myfunction.vim'
|
||||
```
|
||||
|
||||
This looks like JavaScript/TypeScript, thus many users will understand the
|
||||
syntax.
|
||||
|
||||
These are ideas, this will take time to design, discuss and implement.
|
||||
Eventually this will lead to Vim 9!
|
||||
|
||||
|
||||
## Code for sum time measurements
|
||||
|
||||
Vim was build with -O2.
|
||||
|
||||
``` vim
|
||||
func VimOld()
|
||||
let sum = 0
|
||||
for i in range(1, 2999999)
|
||||
let sum += i
|
||||
endfor
|
||||
return sum
|
||||
endfunc
|
||||
|
||||
func Python()
|
||||
py3 << END
|
||||
sum = 0
|
||||
for i in range(1, 3000000):
|
||||
sum += i
|
||||
END
|
||||
return py3eval('sum')
|
||||
endfunc
|
||||
|
||||
func Lua()
|
||||
lua << END
|
||||
sum = 0
|
||||
for i = 1, 2999999 do
|
||||
sum = sum + i
|
||||
end
|
||||
END
|
||||
return luaeval('sum')
|
||||
endfunc
|
||||
|
||||
def VimNew()
|
||||
let sum = 0
|
||||
for i in range(1, 2999999)
|
||||
let sum += i
|
||||
endfor
|
||||
return sum
|
||||
enddef
|
||||
|
||||
let start = reltime()
|
||||
echo VimOld()
|
||||
echo 'Vim old: ' .. reltimestr(reltime(start))
|
||||
|
||||
let start = reltime()
|
||||
echo Python()
|
||||
echo 'Python: ' .. reltimestr(reltime(start))
|
||||
|
||||
let start = reltime()
|
||||
echo Lua()
|
||||
echo 'Lua: ' .. reltimestr(reltime(start))
|
||||
|
||||
let start = reltime()
|
||||
echo VimNew()
|
||||
echo 'Vim new: ' .. reltimestr(reltime(start))
|
||||
```
|
||||
|
||||
## Code for indent time measurements
|
||||
|
||||
``` vim
|
||||
def VimNew(): number
|
||||
let totallen = 0
|
||||
for i in range(1, 100000)
|
||||
setline(i, ' ' .. getline(i))
|
||||
totallen += len(getline(i))
|
||||
endfor
|
||||
return totallen
|
||||
enddef
|
||||
|
||||
func VimOld()
|
||||
let totallen = 0
|
||||
for i in range(1, 100000)
|
||||
call setline(i, ' ' .. getline(i))
|
||||
let totallen += len(getline(i))
|
||||
endfor
|
||||
return totallen
|
||||
endfunc
|
||||
|
||||
func Lua()
|
||||
lua << END
|
||||
b = vim.buffer()
|
||||
totallen = 0
|
||||
for i = 1, 100000 do
|
||||
b[i] = " " .. b[i]
|
||||
totallen = totallen + string.len(b[i])
|
||||
end
|
||||
END
|
||||
return luaeval('totallen')
|
||||
endfunc
|
||||
|
||||
func Python()
|
||||
py3 << END
|
||||
cb = vim.current.buffer
|
||||
totallen = 0
|
||||
for i in range(0, 100000):
|
||||
cb[i] = ' ' + cb[i]
|
||||
totallen += len(cb[i])
|
||||
END
|
||||
return py3eval('totallen')
|
||||
endfunc
|
||||
|
||||
new
|
||||
call setline(1, range(100000))
|
||||
let start = reltime()
|
||||
echo VimOld()
|
||||
echo 'Vim old: ' .. reltimestr(reltime(start))
|
||||
bwipe!
|
||||
|
||||
new
|
||||
call setline(1, range(100000))
|
||||
let start = reltime()
|
||||
echo Python()
|
||||
echo 'Python: ' .. reltimestr(reltime(start))
|
||||
bwipe!
|
||||
|
||||
new
|
||||
call setline(1, range(100000))
|
||||
let start = reltime()
|
||||
echo Lua()
|
||||
echo 'Lua: ' .. reltimestr(reltime(start))
|
||||
bwipe!
|
||||
|
||||
new
|
||||
call setline(1, range(100000))
|
||||
let start = reltime()
|
||||
echo VimNew()
|
||||
echo 'Vim new: ' .. reltimestr(reltime(start))
|
||||
bwipe!
|
||||
```
|
||||
25
ci/if_ver-1.vim
Normal file
25
ci/if_ver-1.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Print all interface versions for Ubuntu. Part 1.
|
||||
|
||||
if 1
|
||||
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||
|
||||
echo "*** Interface versions ***\n"
|
||||
|
||||
echo 'Lua:'
|
||||
PrintVer lua print(_VERSION)
|
||||
|
||||
echo 'MzScheme:'
|
||||
PrintVer mzscheme (display (version))
|
||||
|
||||
echo 'Perl:'
|
||||
PrintVer perl print $^V
|
||||
|
||||
echo 'Ruby:'
|
||||
PrintVer ruby print RUBY_VERSION
|
||||
|
||||
echo 'Tcl:'
|
||||
PrintVer tcl puts [info patchlevel]
|
||||
|
||||
echo 'Python 2:'
|
||||
PrintVer python print sys.version
|
||||
endif
|
||||
8
ci/if_ver-2.vim
Normal file
8
ci/if_ver-2.vim
Normal file
@@ -0,0 +1,8 @@
|
||||
" Print py3 interface versions for Ubuntu. Part 2.
|
||||
|
||||
if 1
|
||||
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||
|
||||
echo 'Python 3:'
|
||||
PrintVer python3 print(sys.version)
|
||||
endif
|
||||
12
ci/if_ver-cmd.vim
Normal file
12
ci/if_ver-cmd.vim
Normal file
@@ -0,0 +1,12 @@
|
||||
" Provide 'PrintVer' command to print the interface versions.
|
||||
|
||||
func s:print_ver(lang, ...)
|
||||
if has(a:lang)
|
||||
exec a:lang join(a:000)
|
||||
else
|
||||
echo 'N/A'
|
||||
endif
|
||||
echo ''
|
||||
endfunc
|
||||
|
||||
command -nargs=+ PrintVer call <SID>print_ver(<f-args>)
|
||||
@@ -39,7 +39,7 @@ Unicode true
|
||||
# Uncomment the next line if you want to include VisVim extension:
|
||||
#!define HAVE_VIS_VIM
|
||||
|
||||
# Comment the following line to create a multilanguage installer:
|
||||
# Comment the following line to create an English-only installer:
|
||||
!define HAVE_MULTI_LANG
|
||||
|
||||
# Uncomment the next line if you want to create a 64-bit installer.
|
||||
|
||||
@@ -64,6 +64,7 @@ DOCS = \
|
||||
os_amiga.txt \
|
||||
os_beos.txt \
|
||||
os_dos.txt \
|
||||
os_haiku.txt \
|
||||
os_mac.txt \
|
||||
os_mint.txt \
|
||||
os_msdos.txt \
|
||||
@@ -149,6 +150,7 @@ DOCS = \
|
||||
version7.txt \
|
||||
version8.txt \
|
||||
vi_diff.txt \
|
||||
vim9.txt \
|
||||
visual.txt \
|
||||
windows.txt \
|
||||
workshop.txt
|
||||
@@ -203,6 +205,7 @@ HTMLS = \
|
||||
os_amiga.html \
|
||||
os_beos.html \
|
||||
os_dos.html \
|
||||
os_haiku.html \
|
||||
os_mac.html \
|
||||
os_mint.html \
|
||||
os_msdos.html \
|
||||
@@ -289,6 +292,7 @@ HTMLS = \
|
||||
version8.html \
|
||||
vi_diff.html \
|
||||
vimindex.html \
|
||||
vim9.html \
|
||||
visual.html \
|
||||
windows.html \
|
||||
workshop.html
|
||||
@@ -323,10 +327,7 @@ all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
|
||||
# Use Vim to generate the tags file. Can only be used when Vim has been
|
||||
# compiled and installed. Supports multiple languages.
|
||||
vimtags: $(DOCS)
|
||||
@if command -v $(VIMEXE); then \
|
||||
$(VIMEXE) --clean -eX -u doctags.vim >/dev/null && \
|
||||
echo "help tags updated"; \
|
||||
else echo "vim executable $(VIMEXE) not found; help tags not updated"; fi
|
||||
@$(VIMEXE) --clean -esX -V1 -u doctags.vim
|
||||
|
||||
# Use "doctags" to generate the tags file. Only works for English!
|
||||
tags: doctags $(DOCS)
|
||||
@@ -423,6 +424,9 @@ os_beos.txt:
|
||||
os_dos.txt:
|
||||
touch os_dos.txt
|
||||
|
||||
os_haiku.txt:
|
||||
touch os_haiku.txt
|
||||
|
||||
os_mac.txt:
|
||||
touch os_mac.txt
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jan 17
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jan 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -374,7 +374,10 @@ Name triggered by ~
|
||||
|
||||
|MenuPopup| just before showing the popup menu
|
||||
|CompleteChanged| after Insert mode completion menu changed
|
||||
|CompleteDone| after Insert mode completion is done
|
||||
|CompleteDonePre| after Insert mode completion is done, before clearing
|
||||
info
|
||||
|CompleteDone| after Insert mode completion is done, after clearing
|
||||
info
|
||||
|
||||
|User| to be used in combination with ":doautocmd"
|
||||
|
||||
@@ -589,8 +592,8 @@ ColorSchemePre Before loading a color scheme. |:colorscheme|
|
||||
CompleteChanged *CompleteChanged*
|
||||
After each time the Insert mode completion
|
||||
menu changed. Not fired on popup menu hide,
|
||||
use |CompleteDone| for that. Never triggered
|
||||
recursively.
|
||||
use |CompleteDonePre| or |CompleteDone| for
|
||||
that. Never triggered recursively.
|
||||
|
||||
Sets these |v:event| keys:
|
||||
completed_item See |complete-items|.
|
||||
@@ -606,12 +609,22 @@ CompleteChanged *CompleteChanged*
|
||||
The size and position of the popup are also
|
||||
available by calling |pum_getpos()|.
|
||||
|
||||
*CompleteDonePre*
|
||||
CompleteDonePre After Insert mode completion is done. Either
|
||||
when something was completed or abandoning
|
||||
completion. |ins-completion|
|
||||
|complete_info()| can be used, the info is
|
||||
cleared after triggering CompleteDonePre.
|
||||
The |v:completed_item| variable contains
|
||||
information about the completed item.
|
||||
|
||||
*CompleteDone*
|
||||
CompleteDone After Insert mode completion is done. Either
|
||||
when something was completed or abandoning
|
||||
completion. |ins-completion|
|
||||
|complete_info()| can be used, the info is
|
||||
cleared after triggering CompleteDone.
|
||||
|complete_info()| cannot be used, the info is
|
||||
cleared before triggering CompleteDone. Use
|
||||
CompleteDonePre if you need it.
|
||||
The |v:completed_item| variable contains
|
||||
information about the completed item.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.2. Last change: 2019 Sep 28
|
||||
*change.txt* For Vim version 8.2. Last change: 2020 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -636,6 +636,8 @@ For other systems the tmpnam() library function is used.
|
||||
|cmdline-ranges|.
|
||||
|
||||
See |:s_flags| for [flags].
|
||||
The delimiter doesn't need to be /, see
|
||||
|pattern-delimiter|.
|
||||
|
||||
:[range]s[ubstitute] [flags] [count]
|
||||
:[range]&[&][flags] [count] *:&*
|
||||
@@ -775,7 +777,7 @@ This deletes "TESTING" from all lines, but only one per line.
|
||||
For compatibility with Vi these two exceptions are allowed:
|
||||
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
|
||||
"\&{string}&" does the same as "//{string}/".
|
||||
*E146*
|
||||
*pattern-delimiter* *E146*
|
||||
Instead of the '/' which surrounds the pattern and replacement string, you
|
||||
can use any other single-byte character, but not an alphanumeric character,
|
||||
'\', '"' or '|'. This is useful if you want to include a '/' in the search
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2019 Dec 17
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2020 Feb 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -586,6 +586,7 @@ followed by another Vim command:
|
||||
:command
|
||||
:cscope
|
||||
:debug
|
||||
:eval
|
||||
:folddoopen
|
||||
:folddoclosed
|
||||
:function
|
||||
@@ -933,8 +934,7 @@ These modifiers can be given, in this order:
|
||||
directory.
|
||||
:. Reduce file name to be relative to current directory, if
|
||||
possible. File name is unmodified if it is not below the
|
||||
current directory, but on MS-Windows the drive is removed if
|
||||
it is the current drive.
|
||||
current directory.
|
||||
For maximum shortness, use ":~:.".
|
||||
:h Head of the file name (the last component and any separators
|
||||
removed). Cannot be used with :e, :r or :t.
|
||||
|
||||
@@ -114,7 +114,7 @@ other settings apply.
|
||||
|
||||
The debugger features were added for use with Sun's Visual WorkShop Integrated
|
||||
Programming Environment (ipe). However, they were done in as generic a manner
|
||||
as possible so that integration with other debuggers could also these
|
||||
as possible so that integration with other debuggers could also use these
|
||||
features.
|
||||
|
||||
The following compile time preprocessor variables control the features:
|
||||
|
||||
@@ -2,5 +2,12 @@
|
||||
"
|
||||
" Usage: vim -eX -u doctags.vim
|
||||
|
||||
helptags ++t .
|
||||
try
|
||||
helptags ++t .
|
||||
echo 'help tags updated'
|
||||
catch
|
||||
echo v:exception
|
||||
echo 'help tags failed update'
|
||||
endtry
|
||||
echo ''
|
||||
qa!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.2. Last change: 2020 Jan 06
|
||||
*eval.txt* For Vim version 8.2. Last change: 2020 Feb 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -12,6 +12,10 @@ Note: Expression evaluation can be disabled at compile time. If this has been
|
||||
done, the features in this document are not available. See |+eval| and
|
||||
|no-eval-feature|.
|
||||
|
||||
This file is about the backwards compatible Vim script. For Vim9 script,
|
||||
which executes much faster, supports type checking and much more, see
|
||||
|vim9.txt|.
|
||||
|
||||
1. Variables |variables|
|
||||
1.1 Variable types
|
||||
1.2 Function references |Funcref|
|
||||
@@ -44,8 +48,7 @@ There are ten types of variables:
|
||||
|
||||
*Number* *Integer*
|
||||
Number A 32 or 64 bit signed number. |expr-number|
|
||||
64-bit Numbers are available only when compiled with the
|
||||
|+num64| feature.
|
||||
The number of bits is available in |v:numbersize|.
|
||||
Examples: -123 0x10 0177 0b1011
|
||||
|
||||
Float A floating point number. |floating-point-format| *Float*
|
||||
@@ -1804,7 +1807,9 @@ v:errors Errors found by assert functions, such as |assert_true()|.
|
||||
|
||||
*v:event* *event-variable*
|
||||
v:event Dictionary containing information about the current
|
||||
|autocommand|. The dictionary is emptied when the |autocommand|
|
||||
|autocommand|. See the specific event for what it puts in
|
||||
this dictionary.
|
||||
The dictionary is emptied when the |autocommand|
|
||||
finishes, please refer to |dict-identity| for how to get an
|
||||
independent copy of it.
|
||||
|
||||
@@ -1985,6 +1990,10 @@ v:null An empty String. Used to put "null" in JSON. See
|
||||
That is so that eval() can parse the string back to the same
|
||||
value. Read-only.
|
||||
|
||||
*v:numbersize* *numbersize-variable*
|
||||
v:numbersize Number of bits in a Number. This is normally 64, but on some
|
||||
systems it may be 32.
|
||||
|
||||
*v:oldfiles* *oldfiles-variable*
|
||||
v:oldfiles List of file names that is loaded from the |viminfo| file on
|
||||
startup. These are the files that Vim remembers marks for.
|
||||
@@ -2408,6 +2417,7 @@ deletebufline({expr}, {first} [, {last}])
|
||||
did_filetype() Number |TRUE| if FileType autocmd event used
|
||||
diff_filler({lnum}) Number diff filler lines about {lnum}
|
||||
diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col}
|
||||
echoraw({expr}) none output {expr} as-is
|
||||
empty({expr}) Number |TRUE| if {expr} is empty
|
||||
environ() Dict return environment variables
|
||||
escape({string}, {chars}) String escape {chars} in {string} with '\'
|
||||
@@ -2512,8 +2522,8 @@ haslocaldir([{winnr} [, {tabnr}]])
|
||||
or |:tcd|
|
||||
hasmapto({what} [, {mode} [, {abbr}]])
|
||||
Number |TRUE| if mapping to {what} exists
|
||||
histadd({history}, {item}) String add an item to a history
|
||||
histdel({history} [, {item}]) String remove an item from a history
|
||||
histadd({history}, {item}) Number add an item to a history
|
||||
histdel({history} [, {item}]) Number remove an item from a history
|
||||
histget({history} [, {index}]) String get the item {index} from a history
|
||||
histnr({history}) Number highest index of a history
|
||||
hlexists({name}) Number |TRUE| if highlight group {name} exists
|
||||
@@ -2854,12 +2864,15 @@ test_null_job() Job null value for testing
|
||||
test_null_list() List null value for testing
|
||||
test_null_partial() Funcref null value for testing
|
||||
test_null_string() String null value for testing
|
||||
test_unknown() any unknown value for testing
|
||||
test_void() any void value for testing
|
||||
test_option_not_set({name}) none reset flag indicating option was set
|
||||
test_override({expr}, {val}) none test with Vim internal overrides
|
||||
test_refcount({expr}) Number get the reference count of {expr}
|
||||
test_scrollbar({which}, {value}, {dragging})
|
||||
none scroll in the GUI for testing
|
||||
test_setmouse({row}, {col}) none set the mouse position for testing
|
||||
test_srand_seed([seed]) none set seed for testing srand()
|
||||
test_settime({expr}) none set current time for testing
|
||||
timer_info([{id}]) List information about timers
|
||||
timer_pause({id}, {pause}) none pause or unpause a timer
|
||||
@@ -2892,6 +2905,7 @@ win_id2win({expr}) Number get window nr from window ID
|
||||
win_screenpos({nr}) List get screen position of window {nr}
|
||||
win_splitmove({nr}, {target} [, {options}])
|
||||
Number move window {nr} to split of {target}
|
||||
win_type([{nr}]) String type of window {nr}
|
||||
winbufnr({nr}) Number buffer number of window {nr}
|
||||
wincol() Number window column of the cursor
|
||||
winheight({nr}) Number height of window {nr}
|
||||
@@ -3451,6 +3465,7 @@ chdir({dir}) *chdir()*
|
||||
directory (|:tcd|) then changes the tabpage local
|
||||
directory.
|
||||
- Otherwise, changes the global directory.
|
||||
{dir} must be a String.
|
||||
If successful, returns the previous working directory. Pass
|
||||
this to another chdir() to restore the directory.
|
||||
On failure, returns an empty string.
|
||||
@@ -3936,6 +3951,17 @@ diff_hlID({lnum}, {col}) *diff_hlID()*
|
||||
Can also be used as a |method|: >
|
||||
GetLnum()->diff_hlID(col)
|
||||
|
||||
|
||||
echoraw({expr}) *echoraw()*
|
||||
Output {expr} as-is, including unprintable characters. This
|
||||
can be used to output a terminal code. For example, to disable
|
||||
modifyOtherKeys: >
|
||||
call echoraw(&t_TE)
|
||||
< and to enable it again: >
|
||||
call echoraw(&t_TI)
|
||||
< Use with care, you can mess up the terminal this way.
|
||||
|
||||
|
||||
empty({expr}) *empty()*
|
||||
Return the Number 1 if {expr} is empty, zero otherwise.
|
||||
- A |List| or |Dictionary| is empty when it does not have any
|
||||
@@ -5660,7 +5686,7 @@ getwininfo([{winid}]) *getwininfo()*
|
||||
GetWinnr()->getwininfo()
|
||||
|
||||
getwinpos([{timeout}]) *getwinpos()*
|
||||
The result is a list with two numbers, the result of
|
||||
The result is a List with two numbers, the result of
|
||||
|getwinposx()| and |getwinposy()| combined:
|
||||
[x-pos, y-pos]
|
||||
{timeout} can be used to specify how long to wait in msec for
|
||||
@@ -6886,6 +6912,10 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()*
|
||||
The 'ignorecase' option is used to set the ignore-caseness of
|
||||
the pattern. 'smartcase' is NOT used. The matching is always
|
||||
done like 'magic' is set and 'cpoptions' is empty.
|
||||
Note that a match at the start is preferred, thus when the
|
||||
pattern is using "*" (any number of matches) it tends to find
|
||||
zero matches at the start instead of a number of matches
|
||||
further down in the text.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetList()->match('word')
|
||||
@@ -10320,6 +10350,23 @@ win_getid([{win} [, {tab}]]) *win_getid()*
|
||||
Can also be used as a |method|: >
|
||||
GetWinnr()->win_getid()
|
||||
|
||||
|
||||
win_gettype([{nr}]) *win_gettype()*
|
||||
Return the type of the window:
|
||||
"popup" popup window |popup|
|
||||
"command" command-line window |cmdwin|
|
||||
(empty) normal window
|
||||
"unknown" window {nr} not found
|
||||
|
||||
When {nr} is omitted return the type of the current window.
|
||||
When {nr} is given return the type of this window by number or
|
||||
|window-ID|.
|
||||
|
||||
Also see the 'buftype' option. When running a terminal in a
|
||||
popup window then 'buftype' is "terminal" and win_gettype()
|
||||
returns "popup".
|
||||
|
||||
|
||||
win_gotoid({expr}) *win_gotoid()*
|
||||
Go to window with ID {expr}. This may also change the current
|
||||
tabpage.
|
||||
@@ -10377,6 +10424,7 @@ win_splitmove({nr}, {target} [, {options}]) *win_splitmove()*
|
||||
Can also be used as a |method|: >
|
||||
GetWinid()->win_splitmove(target)
|
||||
<
|
||||
|
||||
*winbufnr()*
|
||||
winbufnr({nr}) The result is a Number, which is the number of the buffer
|
||||
associated with window {nr}. {nr} can be the window number or
|
||||
@@ -10457,6 +10505,7 @@ winline() The result is a Number, which is the screen line of the cursor
|
||||
*winnr()*
|
||||
winnr([{arg}]) The result is a Number, which is the number of the current
|
||||
window. The top window has number 1.
|
||||
Returns zero for a popup window.
|
||||
|
||||
The optional argument {arg} supports the following values:
|
||||
$ the number of the last window (the window
|
||||
@@ -10630,7 +10679,7 @@ xor({expr}, {expr}) *xor()*
|
||||
<
|
||||
|
||||
*feature-list*
|
||||
There are four types of features:
|
||||
There are three types of features:
|
||||
1. Features that are only supported when they have been enabled when Vim
|
||||
was compiled |+feature-list|. Example: >
|
||||
:if has("cindent")
|
||||
@@ -10670,6 +10719,7 @@ browsefilter Compiled with support for |browsefilter|.
|
||||
bsd Compiled on an OS in the BSD family (excluding macOS).
|
||||
builtin_terms Compiled with some builtin terminals.
|
||||
byte_offset Compiled with support for 'o' in 'statusline'
|
||||
channel Compiled with support for |channel| and |job|
|
||||
cindent Compiled with 'cindent' support.
|
||||
clientserver Compiled with remote invocation support |clientserver|.
|
||||
clipboard Compiled with 'clipboard' support.
|
||||
@@ -10716,12 +10766,14 @@ gui_gnome Compiled with Gnome support (gui_gtk is also defined).
|
||||
gui_gtk Compiled with GTK+ GUI (any version).
|
||||
gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined).
|
||||
gui_gtk3 Compiled with GTK+ 3 GUI (gui_gtk is also defined).
|
||||
gui_haiku Compiled with Haiku GUI.
|
||||
gui_mac Compiled with Macintosh GUI.
|
||||
gui_motif Compiled with Motif GUI.
|
||||
gui_photon Compiled with Photon GUI.
|
||||
gui_running Vim is running in the GUI, or it will start soon.
|
||||
gui_win32 Compiled with MS Windows Win32 GUI.
|
||||
gui_win32s idem, and Win32s system being used (Windows 3.1)
|
||||
haiku Haiku version of Vim.
|
||||
hangul_input Compiled with Hangul input support. |hangul|
|
||||
hpux HP-UX version of Vim.
|
||||
iconv Can use iconv() for conversion.
|
||||
@@ -10781,7 +10833,7 @@ python_dynamic Python 2.x interface is dynamically loaded. |has-python|
|
||||
python3 Python 3.x interface available. |has-python|
|
||||
python3_compiled Compiled with Python 3.x interface. |has-python|
|
||||
python3_dynamic Python 3.x interface is dynamically loaded. |has-python|
|
||||
pythonx Compiled with |python_x| interface. |has-pythonx|
|
||||
pythonx Python 2.x and/or 3.x interface available. |python_x|
|
||||
qnx QNX version of Vim.
|
||||
quickfix Compiled with |quickfix| support.
|
||||
reltime Compiled with |reltime()| support.
|
||||
@@ -10894,6 +10946,9 @@ New functions can be defined. These can be called just like builtin
|
||||
functions. The function executes a sequence of Ex commands. Normal mode
|
||||
commands can be executed with the |:normal| command.
|
||||
|
||||
This section is about the legacy functions. For the Vim9 functions, which
|
||||
execute much faster, support type checking and more, see |vim9.txt|.
|
||||
|
||||
The function name must start with an uppercase letter, to avoid confusion with
|
||||
builtin functions. To prevent from using the same name in different scripts
|
||||
avoid obvious, short names. A good habit is to start the function name with
|
||||
@@ -11806,11 +11861,11 @@ text...
|
||||
":endtry" is reached thereafter, the next
|
||||
(dynamically) surrounding ":try" is checked for
|
||||
a corresponding ":finally" etc. Then the script
|
||||
processing is terminated. (Whether a function
|
||||
definition has an "abort" argument does not matter.)
|
||||
processing is terminated. Whether a function
|
||||
definition has an "abort" argument does not matter.
|
||||
Example: >
|
||||
:try | edit too much | finally | echo "cleanup" | endtry
|
||||
:echo "impossible" " not reached, script terminated above
|
||||
try | call Unknown() | finally | echomsg "cleanup" | endtry
|
||||
echomsg "not reached"
|
||||
<
|
||||
Moreover, an error or interrupt (dynamically) inside
|
||||
":try" and ":endtry" is converted to an exception. It
|
||||
@@ -11827,8 +11882,8 @@ text...
|
||||
error exception is not caught, always beginning with
|
||||
the error number.
|
||||
Examples: >
|
||||
:try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
|
||||
:try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
|
||||
try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
|
||||
try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
|
||||
<
|
||||
*:cat* *:catch* *E603* *E604* *E605*
|
||||
:cat[ch] /{pattern}/ The following commands until the next |:catch|,
|
||||
@@ -11983,6 +12038,9 @@ text...
|
||||
these are hard to recognize and therefore not to be
|
||||
used.
|
||||
|
||||
The command cannot be followed by "|" and another
|
||||
command, since "|" is seen as part of the expression.
|
||||
|
||||
|
||||
*:exe* *:execute*
|
||||
:exe[cute] {expr1} .. Executes the string that results from the evaluation
|
||||
|
||||
0
runtime/doc/evim-it.1
Executable file → Normal file
0
runtime/doc/evim-it.1
Executable file → Normal file
@@ -99,6 +99,7 @@ Recommended place for your personal GUI initializations:
|
||||
or $VIM/_gvimrc
|
||||
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
|
||||
or $VIM/.gvimrc
|
||||
Haiku $HOME/config/settings/vim/gvimrc
|
||||
|
||||
The personal initialization files are searched in the order specified above
|
||||
and only the first one that is found is read.
|
||||
|
||||
@@ -204,6 +204,7 @@ Remarks about specific systems ~
|
||||
|os_os2.txt| OS/2
|
||||
|os_qnx.txt| QNX
|
||||
|os_risc.txt| RISC-OS
|
||||
|os_haiku.txt| Haiku
|
||||
|os_unix.txt| Unix
|
||||
|os_vms.txt| VMS
|
||||
|os_win32.txt| MS-Windows
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.2. Last change: 2020 Jan 04
|
||||
*insert.txt* For Vim version 8.2. Last change: 2020 Jan 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1079,7 +1079,8 @@ If you want to suppress the warning message for an empty result, return
|
||||
|
||||
Other items are ignored.
|
||||
|
||||
For acting upon end of completion, see the |CompleteDone| autocommand event.
|
||||
For acting upon end of completion, see the |CompleteDonePre| and
|
||||
|CompleteDone| autocommand event.
|
||||
|
||||
For example, the function can contain this: >
|
||||
let matches = ... list of words ...
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2020 Jan 01
|
||||
*options.txt* For Vim version 8.2. Last change: 2020 Feb 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -517,10 +517,11 @@ Examples:
|
||||
|
||||
The second form (this is compatible with some versions of Vi):
|
||||
|
||||
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
|
||||
[text{white}]{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
|
||||
|
||||
[text] any text or empty
|
||||
{white} at least one blank character (<Space> or <Tab>)
|
||||
[text{white}] empty or any text followed by at least one blank
|
||||
character (<Space> or <Tab>); "ex:" always requires at
|
||||
least one blank character
|
||||
{vi:|vim:|Vim:|ex:} the string "vi:", "vim:", "Vim:" or "ex:"
|
||||
[white] optional white space
|
||||
se[t] the string "set " or "se " (note the space); When
|
||||
@@ -1379,6 +1380,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
This option is used together with 'bufhidden' and 'swapfile' to
|
||||
specify special kinds of buffers. See |special-buffers|.
|
||||
Also see |win_gettype()|, which returns the type of the window.
|
||||
|
||||
Be careful with changing this option, it can have many side effects!
|
||||
|
||||
@@ -3767,7 +3769,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'guitablabel' can be used to change the text in the labels.
|
||||
When 'e' is missing a non-GUI tab pages line may be used.
|
||||
The GUI tabs are only supported on some systems, currently
|
||||
GTK, Motif, Mac OS/X and MS-Windows.
|
||||
GTK, Motif, Mac OS/X, Haiku, and MS-Windows.
|
||||
*'go-f'*
|
||||
'f' Foreground: Don't use fork() to detach the GUI from the shell
|
||||
where it was started. Use this for programs that wait for the
|
||||
@@ -5252,7 +5254,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
default because it makes using the pull down menus a little goofy, as
|
||||
a pointer transit may activate a window unintentionally.
|
||||
MS-Windows: Also see 'scrollfocus' for what window is scrolled when
|
||||
using the mouse scroll whel.
|
||||
using the mouse scroll wheel.
|
||||
|
||||
*'mousehide'* *'mh'* *'nomousehide'* *'nomh'*
|
||||
'mousehide' 'mh' boolean (default on)
|
||||
@@ -6205,6 +6207,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Macintosh: "$VIM:vimfiles,
|
||||
$VIMRUNTIME,
|
||||
$VIM:vimfiles:after"
|
||||
Haiku: "$BE_USER_SETTINGS/vim,
|
||||
$VIM/vimfiles,
|
||||
$VIMRUNTIME,
|
||||
$VIM/vimfiles/after,
|
||||
$BE_USER_SETTINGS/vim/after")
|
||||
VMS: "sys$login:vimfiles,
|
||||
$VIM/vimfiles,
|
||||
$VIMRUNTIME,
|
||||
@@ -6220,6 +6227,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
compiler/ compiler files |:compiler|
|
||||
doc/ documentation |write-local-help|
|
||||
ftplugin/ filetype plugins |write-filetype-plugin|
|
||||
import/ files that are found by `:import`
|
||||
indent/ indent scripts |indent-expression|
|
||||
keymap/ key mapping files |mbyte-keymap|
|
||||
lang/ menu translations |:menutrans|
|
||||
@@ -6752,8 +6760,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
option is on, dots in file names are replaced with underscores when
|
||||
adding an extension (".~" or ".swp"). This option is useful
|
||||
when editing files on an MS-DOS compatible filesystem, e.g., messydos
|
||||
or crossdos. When running the Win32 GUI version under Win32s, this
|
||||
option is always on by default.
|
||||
or crossdos.
|
||||
|
||||
*'showbreak'* *'sbr'* *E595*
|
||||
'showbreak' 'sbr' string (default "")
|
||||
@@ -7288,8 +7295,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Beware that an expression is evaluated each and every time the status
|
||||
line is displayed.
|
||||
*stl-%{* *g:actual_curbuf* *g:actual_curwin*
|
||||
While evaluationg %{} the current buffer and current window will be
|
||||
set temporarily to that of the window (and buffer) whose statusline is
|
||||
While evaluating %{} the current buffer and current window will be set
|
||||
temporarily to that of the window (and buffer) whose statusline is
|
||||
currently being drawn. The expression will evaluate in this context.
|
||||
The variable "g:actual_curbuf" is set to the `bufnr()` number of the
|
||||
real current buffer and "g:actual_curwin" to the |window-ID| of the
|
||||
@@ -7663,6 +7670,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
in the GUI: "builtin_gui"
|
||||
on Amiga: "amiga"
|
||||
on BeOS: "beos-ansi"
|
||||
on Haiku: "xterm"
|
||||
on Mac: "mac-ansi"
|
||||
on MiNT: "vt52"
|
||||
on Unix: "ansi"
|
||||
|
||||
@@ -52,12 +52,18 @@ Will find "c:\user\piet\_vimrc" and the runtime files in "e:\vim\vim82".
|
||||
|
||||
See |$VIM| and |$VIMRUNTIME| for more information.
|
||||
|
||||
Under Windows 95, you can set $VIM in your C:\autoexec.bat file. For
|
||||
example: >
|
||||
set VIM=D:\vim
|
||||
Under Windows NT, you can set environment variables for each user separately
|
||||
under "Start/Settings/Control Panel->System", or through the properties in the
|
||||
menu of "My Computer", under the Environment Tab.
|
||||
You can set environment variables for each user separately through the
|
||||
System Properties dialog box. The steps to do that:
|
||||
1. Type Windows Key + R to open the "Run" dialog box.
|
||||
2. Enter "sysdm.cpl" and press the "OK" button. The "System Properties"
|
||||
dialog box will open.
|
||||
3. Select the "Advanced" tab and press the "Environment Variables..." button.
|
||||
The "Environment Variables" dialog box will open.
|
||||
4. Select an existing variable in the "User variables" list and press the
|
||||
"Edit..." button to edit it. Or press the "New..." button to add a new
|
||||
variable.
|
||||
5. After you finished editing variables, press the "OK" button to save the
|
||||
changes.
|
||||
|
||||
==============================================================================
|
||||
2. Using backslashes *dos-backslash*
|
||||
|
||||
228
runtime/doc/os_haiku.txt
Normal file
228
runtime/doc/os_haiku.txt
Normal file
@@ -0,0 +1,228 @@
|
||||
*os_haiku.txt* For Vim version 8.2. Last change: 2020 Feb 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
*Haiku*
|
||||
This file contains the particularities for the Haiku version of Vim. For
|
||||
matters not discussed in this file, Vim behaves very much like the Unix
|
||||
|os_unix.txt| version.
|
||||
|
||||
Haiku is an open-source operating system inspired by BeOS, that specifically
|
||||
targets personal computing.
|
||||
|
||||
1. General |haiku-general|
|
||||
2. Compiling Vim |haiku-compiling|
|
||||
3. The Haiku GUI |haiku-gui|
|
||||
4. The $VIM directory |haiku-vimdir|
|
||||
5. The $BE_USER_SETTINGS
|
||||
directory |haiku-user-settings-dir|
|
||||
6. Drag & Drop |haiku-dragndrop|
|
||||
7. Single Launch vs. Multiple
|
||||
Launch |haiku-launch|
|
||||
8. Fonts |haiku-fonts|
|
||||
9. The meta key modifier |haiku-meta|
|
||||
10. Mouse key mappings |haiku-mouse|
|
||||
11. Color names |haiku-colors|
|
||||
12. Credits |haiku-support-credits|
|
||||
13. Bugs & things To Do |haiku-bugs|
|
||||
|
||||
|
||||
1. General *haiku-general*
|
||||
|
||||
The default syntax highlighting mostly works with different foreground colors
|
||||
to highlight items. This works best if you set your Terminal window to a
|
||||
darkish background and light letters. Some middle-grey background (for
|
||||
instance (r,g,b)=(168,168,168)) with black letters also works nicely.
|
||||
|
||||
|
||||
2. Compiling Vim *haiku-compiling*
|
||||
|
||||
Vim can be compiled using the standard configure/make approach. Running
|
||||
./configure without any arguments or passing --enable-gui=haiku, will compile
|
||||
vim with the Haiku GUI support. Run ./configure --help , to find out other
|
||||
features you can enable/disable.
|
||||
|
||||
Now you should use "make" to compile Vim, then "make install" to install it.
|
||||
For seamless integration into the Haiku the GUI-less vim binary should be
|
||||
additionally installed over the GUI version. Typical build commands are: >
|
||||
|
||||
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
|
||||
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
|
||||
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
|
||||
make clean
|
||||
make install
|
||||
|
||||
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
|
||||
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
|
||||
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
|
||||
--disable-gui
|
||||
make clean
|
||||
make install
|
||||
|
||||
|
||||
3. The Haiku GUI *haiku-gui*
|
||||
|
||||
Normally Vim starts with the GUI if you start it as gvim or vim -g. The vim
|
||||
version with GUI tries to determine if it was started from the Tracker instead
|
||||
of the Terminal, and if so, uses the GUI anyway. However, the current detection
|
||||
scheme is fooled if you use the command "vim - </dev/null".
|
||||
|
||||
Stuff that does not work yet:
|
||||
|
||||
- Mouse up events are not generated when outside the window. This may be a bug in
|
||||
Haiku. You can notice this when selecting text and moving the cursor outside
|
||||
the window, then letting go of the mouse button. Another way is when you
|
||||
drag the scrollbar and do the same thing. Because Vim still thinks you are
|
||||
still playing with the scrollbar it won't change it itself. I provided a
|
||||
workaround which kicks in when the window is activated or deactivated (so it
|
||||
works best with focus- follows-mouse turned on).
|
||||
- The cursor does not flash (very low priority; I'm not sure I even like it
|
||||
when it flashes)
|
||||
|
||||
|
||||
4. The $VIM directory *haiku-vimdir*
|
||||
|
||||
$VIM is the symbolic name for the place where Vims support files are stored.
|
||||
The default value for $VIM is set at compile time and can be determined with >
|
||||
|
||||
:version
|
||||
|
||||
The normal value is /boot/common/data/vim. If you don't like it you can
|
||||
set the VIM environment variable to override this, or set 'helpfile' in your
|
||||
.vimrc: >
|
||||
|
||||
:if version >= 500
|
||||
: set helpfile=~/vim/runtime/doc/help.txt
|
||||
: syntax on
|
||||
:endif
|
||||
|
||||
|
||||
5. The $USER_SETTINGS_DIR directory *haiku-user-settings-dir*
|
||||
|
||||
$USER_SETTINGS_DIR is the symbolic name for the place where Haiku
|
||||
configuration and settings files are stored.
|
||||
|
||||
The normal value is /boot/home/config/settings.
|
||||
|
||||
|
||||
6. Drag & Drop *haiku-dragndrop*
|
||||
|
||||
You can drop files and directories on either the Vim icon (starts a new Vim
|
||||
session, unless you use the File Types application to set Vim to be "Single
|
||||
Launch") or on the Vim window (starts editing the files). Dropping a folder
|
||||
sets Vim's current working directory. |:cd| |:pwd| If you drop files or
|
||||
folders with either SHIFT key pressed, Vim changes directory to the folder
|
||||
that contains the first item dropped. When starting Vim, there is no need to
|
||||
press shift: Vim behaves as if you do.
|
||||
|
||||
Files dropped set the current argument list. |argument-list|
|
||||
|
||||
|
||||
7. Single Launch vs. Multiple Launch *haiku-launch*
|
||||
|
||||
As distributed Vim's Application Flags (as seen in the FileTypes preference)
|
||||
are set to Multiple Launch. If you prefer, you can set them to Single Launch
|
||||
instead. Attempts to start a second copy of Vim will cause the first Vim to
|
||||
open the files instead. This works from the Tracker but also from the command
|
||||
line. In the latter case, non-file (option) arguments are not supported.
|
||||
Another drawback of the Single Launch is silent ignore of "Open With ..."
|
||||
requests by vim instance that running as non-GUI application even GUI support
|
||||
was compiled in. Vim instance running with GUI has no such problems.
|
||||
|
||||
NB: Only the GUI version has a BApplication (and hence Application Flags).
|
||||
This section does not apply to the GUI-less version, should you compile one.
|
||||
|
||||
|
||||
8. Fonts *haiku-fonts*
|
||||
|
||||
Set fonts with >
|
||||
|
||||
:set guifont=DejaVu_Sans_Mono/Book/12
|
||||
|
||||
where the first part is the font family, the second part the style, and the
|
||||
third part the size. You can use underscores instead of spaces in family and
|
||||
style.
|
||||
|
||||
Best results are obtained with monospaced fonts. Vim attempts to use all
|
||||
fonts in B_FIXED_SPACING mode but apparently this does not work for
|
||||
proportional fonts (despite what the BeBook says).
|
||||
|
||||
To verify which encodings are supported by the current font give the >
|
||||
|
||||
:digraphs
|
||||
|
||||
command, which lists a bunch of characters with their ISO Latin 1 encoding.
|
||||
If, for instance, there are "box" characters among them, or the last character
|
||||
isn't a dotted-y, then for this font the encoding does not work.
|
||||
|
||||
If the font you specify is unavailable, you get the system fixed font.
|
||||
|
||||
GUI Font Selection Dialog is available at giving the >
|
||||
|
||||
:set guifont=*
|
||||
|
||||
command.
|
||||
|
||||
|
||||
9. The meta key modifier *haiku-meta*
|
||||
|
||||
The META key modifier is obtained by the left or right OPTION keys. This is
|
||||
because the ALT (aka COMMAND) keys are not passed to applications.
|
||||
|
||||
|
||||
10. Mouse key mappings *haiku-mouse*
|
||||
|
||||
Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If
|
||||
you use the default Mouse preference settings these names indeed correspond to
|
||||
reality. Vim uses this mapping:
|
||||
|
||||
Button 1 -> LeftMouse,
|
||||
Button 2 -> RightMouse,
|
||||
Button 3 -> MiddleMouse.
|
||||
|
||||
If your mouse has fewer than 3 buttons you can provide your own mapping from
|
||||
mouse clicks with modifier(s) to other mouse buttons. See the file
|
||||
$VIM/macros/swapmous.vim for an example. |gui-mouse-mapping|
|
||||
|
||||
|
||||
11. Color names *haiku-colors*
|
||||
|
||||
Vim has a number of color names built-in. Additional names are read from the
|
||||
file $VIMRUNTIME/rgb.txt, if present. This file is basically the color
|
||||
database from X. Names used from this file are cached for efficiency.
|
||||
|
||||
|
||||
12. GUI Toolbar Images *haiku-toolbar-images*
|
||||
|
||||
Alternative set of toolbar images should be the PNG image of any height you
|
||||
like. Image width is calculated to contain at least 32 buttons in one-row
|
||||
cells.
|
||||
The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png
|
||||
More info about the buttons assignment are at |builtin-tools|.
|
||||
|
||||
|
||||
13. Credits *haiku-support-credits*
|
||||
|
||||
Haiku port is based on work done for BeOS version by many people
|
||||
- BeBox GUI support Copyright 1998 by Olaf Seibert;
|
||||
- Ported to R4 by Richard Offer <richard@whitequeen.com> Jul 99;
|
||||
- Those who contributed, not listed above but not forgotten;
|
||||
- Haiku support by Siarzhuk Zharski <imker@gmx.li> Apr-Mai 2009.
|
||||
|
||||
All the changes and patches released under vim-license.
|
||||
|
||||
Thank you, all!
|
||||
|
||||
|
||||
13. Bugs & things To Do *haiku-bugs*
|
||||
|
||||
The port is under development now and far away from the perfect state. Bug
|
||||
reports, patches and wishes are welcome.
|
||||
|
||||
|
||||
-Siarzhuk Zharski <imker@gmx.li>
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 8.2. Last change: 2019 Nov 30
|
||||
*popup.txt* For Vim version 8.2. Last change: 2020 Feb 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -11,6 +11,7 @@ Displaying text in a floating window. *popup* *popup-window* *popupwin*
|
||||
Window position and size |popup-position|
|
||||
Closing the popup window |popup-close|
|
||||
Popup buffer and window |popup-buffer|
|
||||
Terminal in popup window |popup-terminal|
|
||||
2. Functions |popup-functions|
|
||||
Details |popup-function-details|
|
||||
3. Usage |popup-usage|
|
||||
@@ -140,6 +141,24 @@ And options can be set on the buffer with `setbufvar()`, e.g.: >
|
||||
You can also use `win_execute()` with a ":setlocal" command.
|
||||
|
||||
|
||||
TERMINAL IN POPUP WINDOW *popup-terminal*
|
||||
|
||||
A special case is running a terminal in a popup window. Many rules are then
|
||||
different: *E863*
|
||||
- The popup window always has focus, it is not possible to switch to another
|
||||
window.
|
||||
- When the job ends, the popup window closes.
|
||||
- The popup window can be closed with `popup_close()`, the terminal buffer
|
||||
then becomes hidden.
|
||||
- The default Pmenu color is only used for the border and padding. To change
|
||||
the color of the terminal itself set 'wincolor'.
|
||||
|
||||
To run a terminal in a popup window, first create the terminal hidden. Then
|
||||
pass the buffer number to popup_create(). Example: >
|
||||
let buf = term_start(['picker', 'Something'], #{hidden: 1, term_finish: 'close'})
|
||||
let winid = popup_create(buf, #{minwidth: 50, minheight: 20})
|
||||
set wincolor=Search
|
||||
|
||||
==============================================================================
|
||||
2. Functions *popup-functions*
|
||||
|
||||
@@ -385,6 +404,7 @@ popup_hide({id}) *popup_hide()*
|
||||
hidden.
|
||||
If window {id} does not exist nothing happens. If window {id}
|
||||
exists but is not a popup window an error is given. *E993*
|
||||
If popup window {id} contains a terminal an error is given.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetPopup()->popup_hide()
|
||||
|
||||
@@ -236,8 +236,7 @@ processing a quickfix or location list command, it will be aborted.
|
||||
e.g., a compiler will not compile the same file again,
|
||||
`git commit` will abort the committing process, `fc`
|
||||
(built-in for shells like bash and zsh) will not
|
||||
execute the command, etc. will not compile the same
|
||||
file again.
|
||||
execute the command, etc.
|
||||
{N} can also be zero, in which case Vim exits
|
||||
normally.
|
||||
WARNING: All changes in files are lost! Also when the
|
||||
@@ -1108,7 +1107,7 @@ id-utils) in a similar way to its compiler integration (see |:make| above).
|
||||
allowed with |:bufdo|.
|
||||
An example that uses the argument list and avoids
|
||||
errors for files without matches: >
|
||||
:silent argdo try
|
||||
:silent argdo try
|
||||
\ | grepadd! something %
|
||||
\ | catch /E480:/
|
||||
\ | endtry"
|
||||
@@ -1311,7 +1310,7 @@ You can force the compiler to ignore makefiles by defining
|
||||
b:tex_ignore_makefile or g:tex_ignore_makefile variable (they are checked for
|
||||
existence only).
|
||||
|
||||
If the compiler chose not to use make, it need to choose a right program for
|
||||
If the compiler chose not to use make, it needs to choose a right program for
|
||||
processing your input. If b:tex_flavor or g:tex_flavor (in this precedence)
|
||||
variable exists, it defines TeX flavor for :make (actually, this is the name
|
||||
of executed command), and if both variables do not exist, it defaults to
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2020 Jan 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1057,8 +1057,7 @@ Short explanation of each option: *option-list*
|
||||
search
|
||||
|<Del>| <Del> while entering a count: delete last character
|
||||
|:version| :ve[rsion] show version information
|
||||
|:mode| :mode N MS-Windows: set screen mode to N (number, C80,
|
||||
C4350, etc.)
|
||||
|:mode| :mode N set screen mode to N (obsolete)
|
||||
|:normal| :norm[al][!] {commands}
|
||||
execute Normal mode commands
|
||||
|Q| Q switch to "Ex" mode
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.2. Last change: 2019 Dec 11
|
||||
*starting.txt* For Vim version 8.2. Last change: 2020 Feb 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -58,10 +58,12 @@ filename One or more file names. The first one will be the current
|
||||
that is read from stdin. The commands that would normally be
|
||||
read from stdin will now be read from stderr. Example: >
|
||||
find . -name "*.c" -print | vim -
|
||||
< The buffer will not be marked as modified, so that it's easy
|
||||
to exit. Be careful to mark it as modified if you don't want
|
||||
to accidentally lose it. Example: >
|
||||
ls | view -
|
||||
|
||||
< The buffer will be marked as modified, so that you are
|
||||
reminded to save the text when trying to exit. If you don't
|
||||
like that, put this these lines in your vimrc: >
|
||||
" Don't set 'modified' when reading from stdin
|
||||
au StdinReadPost * set nomodified
|
||||
<
|
||||
Starting in Ex mode: >
|
||||
ex -
|
||||
@@ -788,6 +790,7 @@ accordingly. Vim proceeds in this order:
|
||||
or $VIM/_vimrc
|
||||
Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc
|
||||
or $VIM/.vimrc
|
||||
Haiku $HOME/config/settings/vim/vimrc
|
||||
|
||||
The files are searched in the order specified above and only the first
|
||||
one that is found is read.
|
||||
@@ -833,6 +836,8 @@ accordingly. Vim proceeds in this order:
|
||||
"$HOME/_vimrc" (for Win32) (*)
|
||||
"$HOME/vimfiles/vimrc" (for Win32) (*)
|
||||
"$VIM/_vimrc" (for Win32) (*)
|
||||
"$HOME/config/settings/vim/vimrc" (for Haiku) (*)
|
||||
|
||||
Note: For Unix and Amiga, when ".vimrc" does not exist,
|
||||
"_vimrc" is also tried, in case an MS-DOS compatible file
|
||||
system is used. For MS-Windows ".vimrc" is checked after
|
||||
@@ -948,6 +953,8 @@ sessions. Put it in a place so that it will be found by 3b:
|
||||
~/.vimrc (Unix)
|
||||
s:.vimrc (Amiga)
|
||||
$VIM\_vimrc (Win32)
|
||||
~/config/settings/vim/vimrc (Haiku)
|
||||
|
||||
Note that creating a vimrc file will cause the 'compatible' option to be off
|
||||
by default. See |compatible-default|.
|
||||
|
||||
@@ -1570,8 +1577,8 @@ remembered.
|
||||
VIMINFO FILE NAME *viminfo-file-name*
|
||||
|
||||
- The default name of the viminfo file is "$HOME/.viminfo" for Unix,
|
||||
"s:.viminfo" for Amiga, "$HOME\_viminfo" for Win32. For the last two, when
|
||||
$HOME is not set, "$VIM\_viminfo" is used. When $VIM is also not set,
|
||||
"s:.viminfo" for Amiga, "$HOME\_viminfo" for Win32. For Win32, when $HOME
|
||||
is not set, "$VIM\_viminfo" is used. When $VIM is also not set,
|
||||
"c:\_viminfo" is used.
|
||||
- The 'n' flag in the 'viminfo' option can be used to specify another viminfo
|
||||
file name |'viminfo'|.
|
||||
|
||||
@@ -2315,7 +2315,7 @@ contain very long structures that Vim does not synchronize anymore.
|
||||
|
||||
PAPP *papp.vim* *ft-papp-syntax*
|
||||
|
||||
The PApp syntax file handles .papp files and, to a lesser extend, .pxml
|
||||
The PApp syntax file handles .papp files and, to a lesser extent, .pxml
|
||||
and .pxsl files which are all a mixture of perl/xml/html/other using xml
|
||||
as the top-level file format. By default everything inside phtml or pxml
|
||||
sections is treated as a string with embedded preprocessor commands. If
|
||||
@@ -2687,12 +2687,12 @@ Note: only existence of these options matter, not their value. You can replace
|
||||
|
||||
QUAKE *quake.vim* *ft-quake-syntax*
|
||||
|
||||
The Quake syntax definition should work for most any FPS (First Person
|
||||
Shooter) based on one of the Quake engines. However, the command names vary
|
||||
a bit between the three games (Quake, Quake 2, and Quake 3 Arena) so the
|
||||
syntax definition checks for the existence of three global variables to allow
|
||||
users to specify what commands are legal in their files. The three variables
|
||||
can be set for the following effects:
|
||||
The Quake syntax definition should work for most FPS (First Person Shooter)
|
||||
based on one of the Quake engines. However, the command names vary a bit
|
||||
between the three games (Quake, Quake 2, and Quake 3 Arena) so the syntax
|
||||
definition checks for the existence of three global variables to allow users
|
||||
to specify what commands are legal in their files. The three variables can
|
||||
be set for the following effects:
|
||||
|
||||
set to highlight commands only available in Quake: >
|
||||
:let quake_is_quake1 = 1
|
||||
@@ -3028,7 +3028,7 @@ variables in your <.vimrc>:
|
||||
|
||||
ksh: >
|
||||
let g:is_kornshell = 1
|
||||
< posix: (using this is the nearly the same as setting g:is_kornshell to 1) >
|
||||
< posix: (using this is nearly the same as setting g:is_kornshell to 1) >
|
||||
let g:is_posix = 1
|
||||
< bash: >
|
||||
let g:is_bash = 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tabpage.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||
*tabpage.txt* For Vim version 8.2. Last change: 2020 Feb 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -138,7 +138,7 @@ something else.
|
||||
:+tabclose " close the next tab page
|
||||
:1tabclose " close the first tab page
|
||||
:$tabclose " close the last tab page
|
||||
:tabclose -2 " close the two previous tab page
|
||||
:tabclose -2 " close the 2nd previous tab page
|
||||
:tabclose + " close the next tab page
|
||||
:tabclose 3 " close the third tab page
|
||||
:tabclose $ " close the last tab page
|
||||
|
||||
@@ -2313,6 +2313,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:debug-name repeat.txt /*:debug-name*
|
||||
:debugg repeat.txt /*:debugg*
|
||||
:debuggreedy repeat.txt /*:debuggreedy*
|
||||
:def vim9.txt /*:def*
|
||||
:del change.txt /*:del*
|
||||
:delc map.txt /*:delc*
|
||||
:delcommand map.txt /*:delcommand*
|
||||
@@ -2340,6 +2341,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:diffupdate diff.txt /*:diffupdate*
|
||||
:dig digraph.txt /*:dig*
|
||||
:digraphs digraph.txt /*:digraphs*
|
||||
:disa vim9.txt /*:disa*
|
||||
:disassemble vim9.txt /*:disassemble*
|
||||
:display change.txt /*:display*
|
||||
:dj tagsrch.txt /*:dj*
|
||||
:djump tagsrch.txt /*:djump*
|
||||
@@ -2384,6 +2387,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:emenu gui.txt /*:emenu*
|
||||
:en eval.txt /*:en*
|
||||
:end eval.txt /*:end*
|
||||
:enddef vim9.txt /*:enddef*
|
||||
:endf eval.txt /*:endf*
|
||||
:endfo eval.txt /*:endfo*
|
||||
:endfor eval.txt /*:endfor*
|
||||
@@ -2404,6 +2408,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:execute eval.txt /*:execute*
|
||||
:exi editing.txt /*:exi*
|
||||
:exit editing.txt /*:exit*
|
||||
:exp vim9.txt /*:exp*
|
||||
:export vim9.txt /*:export*
|
||||
:exu helphelp.txt /*:exu*
|
||||
:exusage helphelp.txt /*:exusage*
|
||||
:f editing.txt /*:f*
|
||||
@@ -2506,6 +2512,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:imapclear map.txt /*:imapclear*
|
||||
:ime gui.txt /*:ime*
|
||||
:imenu gui.txt /*:imenu*
|
||||
:imp vim9.txt /*:imp*
|
||||
:import vim9.txt /*:import*
|
||||
:import-cycle vim9.txt /*:import-cycle*
|
||||
:in insert.txt /*:in*
|
||||
:index index.txt /*:index*
|
||||
:ino map.txt /*:ino*
|
||||
@@ -3354,6 +3363,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:vie editing.txt /*:vie*
|
||||
:view editing.txt /*:view*
|
||||
:vim quickfix.txt /*:vim*
|
||||
:vim9 vim9.txt /*:vim9*
|
||||
:vim9script vim9.txt /*:vim9script*
|
||||
:vimgrep quickfix.txt /*:vimgrep*
|
||||
:vimgrepa quickfix.txt /*:vimgrepa*
|
||||
:vimgrepadd quickfix.txt /*:vimgrepadd*
|
||||
@@ -3834,6 +3845,7 @@ Command-line cmdline.txt /*Command-line*
|
||||
Command-line-mode cmdline.txt /*Command-line-mode*
|
||||
CompleteChanged autocmd.txt /*CompleteChanged*
|
||||
CompleteDone autocmd.txt /*CompleteDone*
|
||||
CompleteDonePre autocmd.txt /*CompleteDonePre*
|
||||
ConPTY terminal.txt /*ConPTY*
|
||||
Contents quickref.txt /*Contents*
|
||||
Cscope if_cscop.txt /*Cscope*
|
||||
@@ -4661,6 +4673,7 @@ E858 eval.txt /*E858*
|
||||
E859 eval.txt /*E859*
|
||||
E86 windows.txt /*E86*
|
||||
E862 eval.txt /*E862*
|
||||
E863 popup.txt /*E863*
|
||||
E864 pattern.txt /*E864*
|
||||
E865 pattern.txt /*E865*
|
||||
E866 pattern.txt /*E866*
|
||||
@@ -4858,6 +4871,7 @@ GetLatestVimScripts-copyright pi_getscript.txt /*GetLatestVimScripts-copyright*
|
||||
GetLatestVimScripts_dat pi_getscript.txt /*GetLatestVimScripts_dat*
|
||||
Gnome gui_x11.txt /*Gnome*
|
||||
H motion.txt /*H*
|
||||
Haiku os_haiku.txt /*Haiku*
|
||||
I insert.txt /*I*
|
||||
ICCF uganda.txt /*ICCF*
|
||||
IM-server mbyte.txt /*IM-server*
|
||||
@@ -6097,6 +6111,7 @@ dtd2vim insert.txt /*dtd2vim*
|
||||
dying-variable eval.txt /*dying-variable*
|
||||
e motion.txt /*e*
|
||||
easy starting.txt /*easy*
|
||||
echoraw() eval.txt /*echoraw()*
|
||||
echospace-variable eval.txt /*echospace-variable*
|
||||
edit-a-file editing.txt /*edit-a-file*
|
||||
edit-binary editing.txt /*edit-binary*
|
||||
@@ -6276,6 +6291,7 @@ faq intro.txt /*faq*
|
||||
farsi farsi.txt /*farsi*
|
||||
farsi.txt farsi.txt /*farsi.txt*
|
||||
fasm.vim syntax.txt /*fasm.vim*
|
||||
fast-functions vim9.txt /*fast-functions*
|
||||
fcs_choice-variable eval.txt /*fcs_choice-variable*
|
||||
fcs_reason-variable eval.txt /*fcs_reason-variable*
|
||||
feature-list eval.txt /*feature-list*
|
||||
@@ -7038,6 +7054,20 @@ g~ change.txt /*g~*
|
||||
g~g~ change.txt /*g~g~*
|
||||
g~~ change.txt /*g~~*
|
||||
h motion.txt /*h*
|
||||
haiku-bugs os_haiku.txt /*haiku-bugs*
|
||||
haiku-colors os_haiku.txt /*haiku-colors*
|
||||
haiku-compiling os_haiku.txt /*haiku-compiling*
|
||||
haiku-dragndrop os_haiku.txt /*haiku-dragndrop*
|
||||
haiku-fonts os_haiku.txt /*haiku-fonts*
|
||||
haiku-general os_haiku.txt /*haiku-general*
|
||||
haiku-gui os_haiku.txt /*haiku-gui*
|
||||
haiku-launch os_haiku.txt /*haiku-launch*
|
||||
haiku-meta os_haiku.txt /*haiku-meta*
|
||||
haiku-mouse os_haiku.txt /*haiku-mouse*
|
||||
haiku-support-credits os_haiku.txt /*haiku-support-credits*
|
||||
haiku-toolbar-images os_haiku.txt /*haiku-toolbar-images*
|
||||
haiku-user-settings-dir os_haiku.txt /*haiku-user-settings-dir*
|
||||
haiku-vimdir os_haiku.txt /*haiku-vimdir*
|
||||
hangul hangulin.txt /*hangul*
|
||||
hangulin.txt hangulin.txt /*hangulin.txt*
|
||||
has() eval.txt /*has()*
|
||||
@@ -8145,6 +8175,7 @@ nroff.vim syntax.txt /*nroff.vim*
|
||||
null-variable eval.txt /*null-variable*
|
||||
number_relativenumber options.txt /*number_relativenumber*
|
||||
numbered-function eval.txt /*numbered-function*
|
||||
numbersize-variable eval.txt /*numbersize-variable*
|
||||
o insert.txt /*o*
|
||||
o_CTRL-V motion.txt /*o_CTRL-V*
|
||||
o_V motion.txt /*o_V*
|
||||
@@ -8195,6 +8226,7 @@ os_390.txt os_390.txt /*os_390.txt*
|
||||
os_amiga.txt os_amiga.txt /*os_amiga.txt*
|
||||
os_beos.txt os_beos.txt /*os_beos.txt*
|
||||
os_dos.txt os_dos.txt /*os_dos.txt*
|
||||
os_haiku.txt os_haiku.txt /*os_haiku.txt*
|
||||
os_mac.txt os_mac.txt /*os_mac.txt*
|
||||
os_mint.txt os_mint.txt /*os_mint.txt*
|
||||
os_msdos.txt os_msdos.txt /*os_msdos.txt*
|
||||
@@ -8232,6 +8264,7 @@ patches-8.2 version8.txt /*patches-8.2*
|
||||
pathshorten() eval.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
pattern-atoms pattern.txt /*pattern-atoms*
|
||||
pattern-delimiter change.txt /*pattern-delimiter*
|
||||
pattern-multi-byte pattern.txt /*pattern-multi-byte*
|
||||
pattern-multi-items pattern.txt /*pattern-multi-items*
|
||||
pattern-overview pattern.txt /*pattern-overview*
|
||||
@@ -8315,6 +8348,7 @@ popup-menu-added version5.txt /*popup-menu-added*
|
||||
popup-position popup.txt /*popup-position*
|
||||
popup-props popup.txt /*popup-props*
|
||||
popup-scrollbar popup.txt /*popup-scrollbar*
|
||||
popup-terminal popup.txt /*popup-terminal*
|
||||
popup-textprop-pos popup.txt /*popup-textprop-pos*
|
||||
popup-usage popup.txt /*popup-usage*
|
||||
popup-window popup.txt /*popup-window*
|
||||
@@ -9472,6 +9506,9 @@ test_refcount() testing.txt /*test_refcount()*
|
||||
test_scrollbar() testing.txt /*test_scrollbar()*
|
||||
test_setmouse() testing.txt /*test_setmouse()*
|
||||
test_settime() testing.txt /*test_settime()*
|
||||
test_srand_seed() testing.txt /*test_srand_seed()*
|
||||
test_unknown() testing.txt /*test_unknown()*
|
||||
test_void() testing.txt /*test_void()*
|
||||
testing testing.txt /*testing*
|
||||
testing-support testing.txt /*testing-support*
|
||||
testing-variable eval.txt /*testing-variable*
|
||||
@@ -9544,6 +9581,7 @@ tutor usr_01.txt /*tutor*
|
||||
twice if_cscop.txt /*twice*
|
||||
two-engines pattern.txt /*two-engines*
|
||||
type() eval.txt /*type()*
|
||||
type-inference vim9.txt /*type-inference*
|
||||
type-mistakes tips.txt /*type-mistakes*
|
||||
typecorr-settings usr_41.txt /*typecorr-settings*
|
||||
typecorr.txt usr_41.txt /*typecorr.txt*
|
||||
@@ -9671,6 +9709,7 @@ v:mouse_win eval.txt /*v:mouse_win*
|
||||
v:mouse_winid eval.txt /*v:mouse_winid*
|
||||
v:none eval.txt /*v:none*
|
||||
v:null eval.txt /*v:null*
|
||||
v:numbersize eval.txt /*v:numbersize*
|
||||
v:oldfiles eval.txt /*v:oldfiles*
|
||||
v:operator eval.txt /*v:operator*
|
||||
v:option_command eval.txt /*v:option_command*
|
||||
@@ -9907,6 +9946,14 @@ vim-variable eval.txt /*vim-variable*
|
||||
vim.vim syntax.txt /*vim.vim*
|
||||
vim7 version7.txt /*vim7*
|
||||
vim8 version8.txt /*vim8*
|
||||
vim9-differences vim9.txt /*vim9-differences*
|
||||
vim9-export vim9.txt /*vim9-export*
|
||||
vim9-import vim9.txt /*vim9-import*
|
||||
vim9-rationale vim9.txt /*vim9-rationale*
|
||||
vim9-script vim9.txt /*vim9-script*
|
||||
vim9-types vim9.txt /*vim9-types*
|
||||
vim9.txt vim9.txt /*vim9.txt*
|
||||
vim9script vim9.txt /*vim9script*
|
||||
vim: options.txt /*vim:*
|
||||
vim_announce intro.txt /*vim_announce*
|
||||
vim_dev intro.txt /*vim_dev*
|
||||
@@ -10028,6 +10075,7 @@ win32s os_win32.txt /*win32s*
|
||||
win_execute() eval.txt /*win_execute()*
|
||||
win_findbuf() eval.txt /*win_findbuf()*
|
||||
win_getid() eval.txt /*win_getid()*
|
||||
win_gettype() eval.txt /*win_gettype()*
|
||||
win_gotoid() eval.txt /*win_gotoid()*
|
||||
win_id2tabwin() eval.txt /*win_id2tabwin()*
|
||||
win_id2win() eval.txt /*win_id2win()*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 8.2. Last change: 2019 Dec 27
|
||||
*tagsrch.txt* For Vim version 8.2. Last change: 2020 Jan 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -903,8 +903,8 @@ The following is a hypothetical example of a function used for 'tagfunc'. It
|
||||
uses the output of |taglist()| to generate the result: a list of tags in the
|
||||
inverse order of file names.
|
||||
>
|
||||
function! TagFunc(pattern, flags, info)
|
||||
function! CompareFilenames(item1, item2)
|
||||
function TagFunc(pattern, flags, info)
|
||||
function CompareFilenames(item1, item2)
|
||||
let f1 = a:item1['filename']
|
||||
let f2 = a:item2['filename']
|
||||
return f1 >=# f2 ?
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2020 Jan 04
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2020 Jan 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1025,7 +1025,7 @@ Writing a screen dump test for Vim ~
|
||||
For an example see the Test_syntax_c() function in
|
||||
src/testdir/test_syntax.vim. The main parts are:
|
||||
- Write a file you want to test with. This is useful for testing syntax
|
||||
highlighting. You can also start Vim with en empty buffer.
|
||||
highlighting. You can also start Vim with an empty buffer.
|
||||
- Run Vim in a terminal with a specific size. The default is 20 lines of 75
|
||||
characters. This makes sure the dump is always this size. The function
|
||||
RunVimInTerminal() takes care of this. Pass it the arguments for the Vim
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 8.2. Last change: 2019 Sep 08
|
||||
*testing.txt* For Vim version 8.2. Last change: 2020 Feb 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -123,6 +123,13 @@ test_null_string() *test_null_string()*
|
||||
Return a |String| that is null. Only useful for testing.
|
||||
|
||||
|
||||
test_unknown() *test_unknown()*
|
||||
Return a value with unknown type. Only useful for testing.
|
||||
|
||||
test_void() *test_void()*
|
||||
Return a value with void type. Only useful for testing.
|
||||
|
||||
|
||||
test_option_not_set({name}) *test_option_not_set()*
|
||||
Reset the flag that indicates option {name} was set. Thus it
|
||||
looks like it still has the default value. Use like this: >
|
||||
@@ -205,7 +212,6 @@ test_setmouse({row}, {col}) *test_setmouse()*
|
||||
call test_setmouse(4, 20)
|
||||
call feedkeys("\<LeftMouse>", "xt")
|
||||
|
||||
|
||||
test_settime({expr}) *test_settime()*
|
||||
Set the time Vim uses internally. Currently only used for
|
||||
timestamps in the history, as they are used in viminfo, and
|
||||
@@ -218,6 +224,10 @@ test_settime({expr}) *test_settime()*
|
||||
Can also be used as a |method|: >
|
||||
GetTime()->test_settime()
|
||||
|
||||
test_srand_seed([seed]) *test_srand_seed()*
|
||||
When [seed] is given this sets the seed value used by
|
||||
`srand()`. When omitted the test seed is removed.
|
||||
|
||||
==============================================================================
|
||||
3. Assert functions *assert-functions-details*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*textprop.txt* For Vim version 8.2. Last change: 2020 Jan 10
|
||||
*textprop.txt* For Vim version 8.2. Last change: 2020 Feb 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -143,8 +143,9 @@ prop_add({lnum}, {col}, {props})
|
||||
within one line, or use "end_lnum" and "end_col" for a
|
||||
property that spans more than one line.
|
||||
When neither "length" nor "end_col" are given the property
|
||||
will be zero-width. That means it will not be highlighted but
|
||||
will move with the text, as a kind of mark.
|
||||
will be zero-width. That means it will move with the text, as
|
||||
a kind of mark. One character will be highlighted, if the
|
||||
type specifies highlighting.
|
||||
The property can end exactly at the last character of the
|
||||
text, or just after it. In the last case, if text is appended
|
||||
to the line, the text property size will increase, also when
|
||||
@@ -335,10 +336,11 @@ properties below the changed text, so that they still highlight the same text,
|
||||
thus you don't need to update these.
|
||||
|
||||
|
||||
Text property columns are not updated: ~
|
||||
Text property columns are not updated or copied: ~
|
||||
|
||||
- When setting the line with |setline()| or through an interface, such as Lua,
|
||||
Tcl or Python. Vim does not know what text got inserted or deleted.
|
||||
- With a command like `:move`, which takes a line of text out of context.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Jan 13
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Feb 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,24 +38,71 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Include ipv6 syntax changes? (DJ Lucas, #5360)
|
||||
Patch for this (#5696):
|
||||
- Empty text prop which includes start/end does not grow when inserting text.
|
||||
(Axel Forsman, #5679)
|
||||
|
||||
Vim9 script:
|
||||
- "func" inside "vim9script" doesn't work? (Ben Jackson, #5670)
|
||||
- Completion for :disassemble
|
||||
- "echo Func()" is an error if Func() does not return anything.
|
||||
- Make "g:imported = Export.exported" work in Vim9 script.
|
||||
- Make Foo.Bar() work to call the dict function. (#5676)
|
||||
- make "let var: string" work in a vim9script.
|
||||
- Disallow unlet for local/script/imported vars
|
||||
- Support type for ":let"/":const" at script level for Vim9 script.
|
||||
(Ben Jackson, #5671)
|
||||
- :func inside vim9script must still use a:arg
|
||||
- Make "++nr" work.
|
||||
- Check that import in legacy script works and puts item in s:
|
||||
- Error in any command in "vim9script" aborts sourcing.
|
||||
- Find a way to test expressions in legacy and Vim9 script without duplication
|
||||
- Test each level of expressions properly, with type checking
|
||||
- Test the
|
||||
- Test try/catch and throw better, also nested.
|
||||
Test return inside try/finally jumps to finally and then returns.
|
||||
- call autoload function.
|
||||
- Type checking arguments when calling :def function
|
||||
- Implement more expressions, e.g. [a:b]
|
||||
- can use func as reference:
|
||||
def SomeFunc() ...
|
||||
map(list, SomeFunc)
|
||||
- define function and create funcref in one step:
|
||||
let ref = def(arg: type): rettype
|
||||
Also extends lambda
|
||||
- Test: Function declared inside a :def function is local, disappears at the
|
||||
end of the function. Unless g: is used, just like with variables.
|
||||
- Can we omit \ for line continuation inside (), {}, ?
|
||||
Requires parsing while reading a function. Like fgetline in do_one_cmd()?
|
||||
- implement :type
|
||||
- implement class
|
||||
- implement interface
|
||||
- predefined class: Promise<T>
|
||||
- import statement for type declaration?
|
||||
- Make accessing varargs faster: arg[expr]
|
||||
EVAL expr
|
||||
LOADVARARG (varags idx)
|
||||
|
||||
Popup windows:
|
||||
- Make it possible to put a terminal window in a popup. Would always grab key
|
||||
input? Sort-of possible by creating a hidden terminal and opening a popup
|
||||
with that buffer: #4063.
|
||||
- With terminal in popup, allow for popup_hide() to temporarily hide it.?
|
||||
- Use popup (or popup menu) for command line completion
|
||||
- When using a popup for the info of a completion menu, and there is not
|
||||
enough space, let the popup overlap with the menu. (#4544)
|
||||
- Implement flip option.
|
||||
- Make redrawing more efficient and avoid flicker:
|
||||
- put popup menu also in popup_mask?
|
||||
- Match does not have right BG color if line length equals popup width.
|
||||
(#5658)
|
||||
- Any other commands to disable in a popup window?
|
||||
Use ERROR_IF_POPUP_WINDOW for these.
|
||||
- Figure out the size and position better if wrapping inserts indent
|
||||
|
||||
Text properties:
|
||||
- Text properties spanning more than one line
|
||||
- prop_find() may not find text property at start of the line. (#5663)
|
||||
- Get E685 with a sequence of commands. (#5674)
|
||||
- Combining text property with 'cursorline' does not always work (Billie
|
||||
Cleek, #5533)
|
||||
- Text properties spanning more than one line. #5683
|
||||
- See remarks at top of src/textprop.c
|
||||
|
||||
'incsearch' with :s:
|
||||
@@ -121,14 +168,20 @@ Terminal emulator window:
|
||||
conversions.
|
||||
|
||||
Error numbers available:
|
||||
E366, E450, E451, E452,
|
||||
E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
|
||||
E654, E856, E857, E860, E861, E863, E889, E900
|
||||
E451, E452, E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
|
||||
E654, E856, E857, E860, E861, E900
|
||||
|
||||
Patch to move duplicated code to a function. (Yegappan Lakshmanan, #5330)
|
||||
Patch to fix drawing error with DirectX. (James Grant, #5688)
|
||||
Causes flicker on resizing.
|
||||
|
||||
Patch to use more FOR_ALL_ macros and use them. (Yegappan Lakshmanan, #5339)
|
||||
|
||||
Patch to explain use of "%" in :!. (David Briscoe, #5591)
|
||||
|
||||
Patch to add "-d" to xxd. (#5616)
|
||||
|
||||
Patch to add Turkish manual. (Emir Sarı, #5641)
|
||||
|
||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||
manager. Problem with Motif? Now test_gui crashes in submenu_change().
|
||||
Athena is OK.
|
||||
@@ -140,18 +193,34 @@ Flag in 'formatoptions' is not used in the tests.
|
||||
Patch to add 'vtp' option. (#5344)
|
||||
Needs better docs. Is there a better name?
|
||||
|
||||
Patch for Haiku support. (Emir Sarı, #5605)
|
||||
|
||||
undo result wrong: Masato Nishihata, #4798
|
||||
|
||||
When 'lazyredraw' is set sometimes the title is not updated.
|
||||
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
||||
|
||||
Strange sequence of BufWipeout and BufNew events while doing omni-complete.
|
||||
(Paul Jolly, #5656)
|
||||
Get BufDelete without preceding BufNew. (Paul Jolly, #5694)
|
||||
BufWinenter event not fired when saving unnamed buffer. (Paul Jolly, #5655)
|
||||
|
||||
Patch to add function to return the text used in the quickfix window.
|
||||
(Yegappan, #5465)
|
||||
|
||||
Patch for Template string: #4491. New pull: #4634
|
||||
Implementation is too inefficient, avoid using lambda.
|
||||
|
||||
Patch to add readdirex() (Ken Takata, #5619)
|
||||
|
||||
Request to support <Cmd> in mappings, similar to how Neovim does this.
|
||||
(Daniel Hahler, #4784)
|
||||
|
||||
Undo puts cursor in wrong line after "cG<Esc>" undo.
|
||||
|
||||
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
|
||||
Dec 19)
|
||||
|
||||
Sound: support on Mac? Or does libcanberra work there?
|
||||
|
||||
Patch to fix session file when using multiple tab pages. (Jason Franklin, 2019
|
||||
May 20)
|
||||
Also put :argadd commands at the start for all buffers, so that their order
|
||||
@@ -171,27 +240,36 @@ in terminal.c and then CTRL-N twice.
|
||||
Should do current file first and not split it up when more results are found.
|
||||
(Also #1890)
|
||||
|
||||
Undo history wrong when ":next file" re-uses a buffer. (#5426)
|
||||
ex_next() should pass flag to do_argfile(), then to do_ecmd().
|
||||
|
||||
Patch to add "note" type to quickfix. (#5527) Missing tests.
|
||||
|
||||
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
|
||||
(#4087)
|
||||
|
||||
Instead of using a syntax error, use #error to fail early when something is
|
||||
wrong. E.g. in vim.h "Error:", and blowfish.c "error!". (#5299)
|
||||
|
||||
":helptags ALL" should skip directories where "tags" cannot be written.
|
||||
(Matěj Cepl, #5026)
|
||||
FR: add search_status(), the current values displayed for search (current
|
||||
match, total matches). (#5631)
|
||||
Patch to provide search stats in a variable, so that it can be used in the
|
||||
statusline. (Fujiwara Takuya, #4446)
|
||||
|
||||
":bnext" in a help buffer is supposed to go to the next help buffer, but it
|
||||
goes to any buffer, and then :bnext skips help buffers, since they are
|
||||
unlisted. (#4478)
|
||||
|
||||
Patch to provide search stats in a variable, so that it can be used in the
|
||||
statusline. (Fujiwara Takuya, #4446)
|
||||
Patch to include reduce() function. (#5481)
|
||||
|
||||
Statusline highlighting error, off by one. (#5599)
|
||||
|
||||
Enable 'termbidi' if $VTE_VERSION >= 5703 ?
|
||||
|
||||
Universal solution to detect if t_RS is working, using cursor position.
|
||||
Koichi Iwamoto, #2126
|
||||
|
||||
Sound: support on Mac? Or does libcanberra work there?
|
||||
|
||||
Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
|
||||
The :syntax cchar value can only be a single character. It would be useful to
|
||||
support combining characters. (Charles Campbell) Also #4687
|
||||
|
||||
@@ -200,10 +278,14 @@ It can replace the BeOS code, which is likely not used anymore.
|
||||
Now on github: #1856. Updated Oct 2017
|
||||
Got permission to include this under the Vim license.
|
||||
|
||||
"--cleanFOO" does not result in an error. (#5537)
|
||||
|
||||
Add "t" action to settagstack(): truncate and add new entries. (#5405)
|
||||
|
||||
Result of synID() sometimes wrong in help files. (#5252)
|
||||
|
||||
Status line is nut updated when splitting windows. (Marcin Szamotulski, #5496)
|
||||
|
||||
Problem showing a line if the number column width changes when using "o".
|
||||
(Mateusz Morusiewicz, #4245)
|
||||
|
||||
@@ -232,6 +314,8 @@ Does not build with MinGW out of the box:
|
||||
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
|
||||
13, #2910) Can't reproduce?
|
||||
|
||||
Display messed up with matchparen, wrapping and scrolling. (#5638)
|
||||
|
||||
Patch to configure BUILD_DATE for reproducible builds. (James McCoy, #513)
|
||||
|
||||
Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275)
|
||||
@@ -263,9 +347,6 @@ Patch by Alex Dobrynin, 2007 Jun 3. Also fixes other scroll wheel problems.
|
||||
Add a WindowScrolled event. Trigger around the same time as CursorMoved.
|
||||
Can be used to update highlighting. #3127 #5181
|
||||
|
||||
Patch for Template string: #4491. New pull: #4634
|
||||
Implementation is too inefficient, avoid using lambda.
|
||||
|
||||
Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
|
||||
|
||||
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
||||
@@ -806,9 +887,6 @@ option_save({list}) *option_save()*
|
||||
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
|
||||
Also see #1689.
|
||||
|
||||
crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb
|
||||
17, #2652)
|
||||
|
||||
When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
|
||||
highlighted. (van-de-bugger, 2018 Jan 23, #2576)
|
||||
|
||||
@@ -1066,11 +1144,9 @@ Make a function to check for function-like type?
|
||||
Screen updated delayed when using CTRL-O u in Insert mode.
|
||||
(Barlik, #1191) Perhaps because status message?
|
||||
|
||||
Implement optional arguments for functions.
|
||||
Implement named arguments for functions:
|
||||
func Foo(start, count = 1 all = 1)
|
||||
call Foo(12)
|
||||
call Foo(12, all = 0)
|
||||
call Foo(12, 15, 0)
|
||||
|
||||
Add a command to take a range of lines, filter them and put the output
|
||||
somewhere else. :{range}copy {dest} !cmd
|
||||
@@ -1121,6 +1197,7 @@ Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
||||
|
||||
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
|
||||
Apr 23, #1653)
|
||||
Can 'completeopt' be made buffer-local? (#5487)
|
||||
|
||||
Window resizing with 'winfixheight': With a vertical split the height changes
|
||||
anyway. (Tommy allen, 2017 Feb 21, #1502)
|
||||
@@ -2714,11 +2791,6 @@ argument list or opening each file in a separate tab.
|
||||
Windows installer: licence text should not use indent, causes bad word wrap.
|
||||
(Benjamin Fritz, 2010 Aug 16)
|
||||
|
||||
Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
|
||||
makes his own wrapper). Add a magic string with the version number to the
|
||||
.bat file and check for it in the uninstaller. E.g.
|
||||
# uninstall key: vim8.1*
|
||||
|
||||
Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
|
||||
2007 Feb 8)
|
||||
|
||||
@@ -4447,8 +4519,6 @@ Vim script language:
|
||||
8 Pass the command line arguments to Vim scripts in some way. As v:args
|
||||
List? Or extra parameter to argv()?
|
||||
8 Add command arguments with three dashes, passed on to Vim scripts.
|
||||
9 Add optional arguments to user functions:
|
||||
:func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
|
||||
6 User functions: Functions local to buffer "b:func()"?
|
||||
8 For Strings add ":let var[{expr}] = {expr}". When past the end of "var"
|
||||
just ignore.
|
||||
|
||||
@@ -509,14 +509,14 @@ Summary: *help-summary* >
|
||||
|
||||
1) Use Ctrl-D after typing a topic and let Vim show all available topics.
|
||||
Or press Tab to complete: >
|
||||
:help some<Tab>
|
||||
:help some<Tab>
|
||||
< More information on how to use the help: >
|
||||
:help helphelp
|
||||
|
||||
2) Follow the links in bars to related help. You can go from the detailed
|
||||
help to the user documentation, which describes certain commands more from
|
||||
a user perspective and less detailed. E.g. after: >
|
||||
:help pattern.txt
|
||||
:help pattern.txt
|
||||
< You can see the user guide topics |03.9| and |usr_27.txt| in the
|
||||
introduction.
|
||||
|
||||
@@ -528,27 +528,27 @@ Summary: *help-summary* >
|
||||
< to open the help page which describes all option handling and then search
|
||||
using regular expressions, e.g. textwidth.
|
||||
Certain options have their own namespace, e.g.: >
|
||||
:help cpo-<letter>
|
||||
:help cpo-<letter>
|
||||
< for the corresponding flag of the 'cpoptions' settings, substitute <letter>
|
||||
by a specific flag, e.g.: >
|
||||
:help cpo-;
|
||||
:help cpo-;
|
||||
< And for the guioption flags: >
|
||||
:help go-<letter>
|
||||
:help go-<letter>
|
||||
|
||||
4) Normal mode commands do not have a prefix. To go to the help page for the
|
||||
"gt" command: >
|
||||
:help gt
|
||||
:help gt
|
||||
|
||||
5) Insert mode commands start with i_. Help for deleting a word: >
|
||||
:help i_CTRL-W
|
||||
:help i_CTRL-W
|
||||
|
||||
6) Visual mode commands start with v_. Help for jumping to the other side of
|
||||
the Visual area: >
|
||||
:help v_o
|
||||
:help v_o
|
||||
|
||||
7) Command line editing and arguments start with c_. Help for using the
|
||||
command argument %: >
|
||||
:help c_%
|
||||
:help c_%
|
||||
|
||||
8) Ex-commands always start with ":", so to go to the ":s" command help: >
|
||||
:help :s
|
||||
@@ -559,56 +559,56 @@ Summary: *help-summary* >
|
||||
|
||||
10) Key combinations. They usually start with a single letter indicating
|
||||
the mode for which they can be used. E.g.: >
|
||||
:help i_CTRL-X
|
||||
:help i_CTRL-X
|
||||
< takes you to the family of CTRL-X commands for insert mode which can be
|
||||
used to auto-complete different things. Note, that certain keys will
|
||||
always be written the same, e.g. Control will always be CTRL.
|
||||
For normal mode commands there is no prefix and the topic is available at
|
||||
:h CTRL-<Letter>. E.g. >
|
||||
:help CTRL-W
|
||||
:help CTRL-W
|
||||
< In contrast >
|
||||
:help c_CTRL-R
|
||||
< will describe what the CTRL-R does when entering commands in the Command
|
||||
line and >
|
||||
:help v_CTRL-A
|
||||
:help v_CTRL-A
|
||||
< talks about incrementing numbers in visual mode and >
|
||||
:help g_CTRL-A
|
||||
< talks about the "g<C-A>" command (e.g. you have to press "g" then
|
||||
<CTRL-A>). Here the "g" stand for the normal command "g" which always
|
||||
<CTRL-A>). Here the "g" stands for the normal command "g" which always
|
||||
expects a second key before doing something similar to the commands
|
||||
starting with "z"
|
||||
starting with "z".
|
||||
|
||||
11) Regexp items always start with /. So to get help for the "\+" quantifier
|
||||
in Vim regexes: >
|
||||
:help /\+
|
||||
:help /\+
|
||||
< If you need to know everything about regular expressions, start reading
|
||||
at: >
|
||||
:help pattern.txt
|
||||
:help pattern.txt
|
||||
|
||||
12) Registers always start with "quote". To find out about the special ":"
|
||||
register: >
|
||||
:help quote:
|
||||
:help quote:
|
||||
|
||||
13) Vim script is available at >
|
||||
:help eval.txt
|
||||
< Certain aspects of the language are available at :h expr-X where "X" is a
|
||||
single letter. E.g. >
|
||||
:help expr-!
|
||||
< will take you to the topic describing the "!" (Not) operator for
|
||||
VimScript.
|
||||
Also important is >
|
||||
:help function-list
|
||||
< to find a short description of all functions available. Help topics for
|
||||
Vim script functions always include the "()", so: >
|
||||
:help append()
|
||||
< talks about the append Vim script function rather than how to append text
|
||||
in the current buffer.
|
||||
< Certain aspects of the language are available at :h expr-X where "X" is a
|
||||
single letter. E.g. >
|
||||
:help expr-!
|
||||
< will take you to the topic describing the "!" (Not) operator for Vim
|
||||
script.
|
||||
Also important is >
|
||||
:help function-list
|
||||
< to find a short description of all functions available. Help topics for
|
||||
Vim script functions always include the "()", so: >
|
||||
:help append()
|
||||
< talks about the append Vim script function rather than how to append text
|
||||
in the current buffer.
|
||||
|
||||
14) Mappings are talked about in the help page :h |map.txt|. Use >
|
||||
:help mapmode-i
|
||||
:help mapmode-i
|
||||
< to find out about the |:imap| command. Also use :map-topic
|
||||
to find out about certain subtopics particular for mappings. e.g: >
|
||||
:help :map-local
|
||||
:help :map-local
|
||||
< for buffer-local mappings or >
|
||||
:help map-bar
|
||||
< for how the '|' is handled in mappings.
|
||||
@@ -619,7 +619,7 @@ Summary: *help-summary* >
|
||||
|
||||
16) Window management commands always start with CTRL-W, so you find the
|
||||
corresponding help at :h CTRL-W_letter. E.g. >
|
||||
:help CTRL-W_p
|
||||
:help CTRL-W_p
|
||||
< for moving the previous accessed window. You can also access >
|
||||
:help windows.txt
|
||||
< and read your way through if you are looking for window handling
|
||||
@@ -628,30 +628,30 @@ Summary: *help-summary* >
|
||||
17) Use |:helpgrep| to search in all help pages (and also of any installed
|
||||
plugins). See |:helpgrep| for how to use it.
|
||||
To search for a topic: >
|
||||
:helpgrep topic
|
||||
:helpgrep topic
|
||||
< This takes you to the first match. To go to the next one: >
|
||||
:cnext
|
||||
< All matches are available in the quickfix window which can be opened
|
||||
with: >
|
||||
:copen
|
||||
:copen
|
||||
< Move around to the match you like and press Enter to jump to that help.
|
||||
|
||||
18) The user manual. This describes help topics for beginners in a rather
|
||||
friendly way. Start at |usr_toc.txt| to find the table of content (as you
|
||||
might have guessed): >
|
||||
:help usr_toc.txt
|
||||
:help usr_toc.txt
|
||||
< Skim over the contents to find interesting topics. The "Digraphs" and
|
||||
"Entering special characters" items are in chapter 24, so to go to that
|
||||
particular help page: >
|
||||
:help usr_24.txt
|
||||
:help usr_24.txt
|
||||
< Also if you want to access a certain chapter in the help, the chapter
|
||||
number can be accessed directly like this: >
|
||||
:help 10.1
|
||||
:help 10.1
|
||||
< which goes to chapter 10.1 in |usr_10.txt| and talks about recording
|
||||
macros.
|
||||
|
||||
19) Highlighting groups. Always start with hl-groupname. E.g. >
|
||||
:help hl-WarningMsg
|
||||
:help hl-WarningMsg
|
||||
< talks about the WarningMsg highlighting group.
|
||||
|
||||
20) Syntax highlighting is namespaced to :syn-topic. E.g. >
|
||||
@@ -662,24 +662,24 @@ Summary: *help-summary* >
|
||||
usually start with :l
|
||||
|
||||
22) Autocommand events can be found by their name: >
|
||||
:help BufWinLeave
|
||||
:help BufWinLeave
|
||||
< To see all possible events: >
|
||||
:help autocommand-events
|
||||
|
||||
23) Command-line switches always start with "-". So for the help of the -f
|
||||
command switch of Vim use: >
|
||||
:help -f
|
||||
:help -f
|
||||
|
||||
24) Optional features always start with "+". To find out about the
|
||||
conceal feature use: >
|
||||
:help +conceal
|
||||
:help +conceal
|
||||
|
||||
25) Documentation for included filetype specific functionality is usually
|
||||
available in the form ft-<filetype>-<functionality>. So >
|
||||
:help ft-c-syntax
|
||||
available in the form ft-<filetype>-<functionality>. So >
|
||||
:help ft-c-syntax
|
||||
< talks about the C syntax file and the option it provides. Sometimes,
|
||||
additional sections for omni completion >
|
||||
:help ft-php-omni
|
||||
:help ft-php-omni
|
||||
< or filetype plugins >
|
||||
:help ft-tex-plugin
|
||||
< are available.
|
||||
@@ -691,7 +691,7 @@ Summary: *help-summary* >
|
||||
< talks about the warning "Changing a readonly file".
|
||||
Sometimes, however, those error codes are not described, but rather are
|
||||
listed at the Vim command that usually causes this. So: >
|
||||
:help E128
|
||||
:help E128
|
||||
< takes you to the |:function| command
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_11.txt* For Vim version 8.2. Last change: 2019 Apr 28
|
||||
*usr_11.txt* For Vim version 8.2. Last change: 2020 Jan 17
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -211,8 +211,11 @@ will automatically delete it:
|
||||
- The flag that the file was modified is not set.
|
||||
- The process is not running.
|
||||
|
||||
You can programatically deal with this situation with the |FileChangedShell|
|
||||
autocommand event.
|
||||
|
||||
UNREADABLE SWAP FILE
|
||||
|
||||
UNREADABLE SWAP FILE ~
|
||||
|
||||
Sometimes the line
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*various.txt* For Vim version 8.2. Last change: 2020 Feb 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -407,7 +407,9 @@ N *+multi_lang* non-English language support |multi-lang|
|
||||
m *+mzscheme* Mzscheme interface |mzscheme|
|
||||
m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn|
|
||||
m *+netbeans_intg* |netbeans|
|
||||
*+num64* 64-bit Number support |Number|
|
||||
*+num64* 64-bit Number support |Number|
|
||||
Always enabled since 8.2.0271, use v:numbersize to
|
||||
check the actual size of a Number.
|
||||
m *+ole* Win32 GUI only: |ole-interface|
|
||||
N *+packages* Loading |packages|
|
||||
N *+path_extra* Up/downwards search in 'path' and 'tags'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version8.txt* For Vim version 8.2. Last change: 2019 Dec 29
|
||||
*version8.txt* For Vim version 8.2. Last change: 2020 Feb 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -306,7 +306,6 @@ New and extended functions: ~
|
||||
|systemlist()| get the result of a shell command as a list
|
||||
|test_alloc_fail()| make memory allocation fail
|
||||
|test_autochdir()| test 'autochdir' functionality
|
||||
test_disable_char_avail() test without typeahead (removed later)
|
||||
|test_garbagecollect_now()| free memory right now
|
||||
|test_null_channel()| return a null Channel
|
||||
|test_null_dict()| return a null Dict
|
||||
|
||||
0
runtime/doc/vim-it.1
Executable file → Normal file
0
runtime/doc/vim-it.1
Executable file → Normal file
589
runtime/doc/vim9.txt
Normal file
589
runtime/doc/vim9.txt
Normal file
@@ -0,0 +1,589 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2020 Feb 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
Vim9 script commands and expressions.
|
||||
|
||||
Most expression help is in |eval.txt|. This file is about the new syntax and
|
||||
features in Vim9 script.
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
|
||||
1 What is Vim9 script? |vim9-script|
|
||||
2. Differences |vim9-differences|
|
||||
3. New style functions |fast-functions|
|
||||
4. Types |vim9-types|
|
||||
5. Namespace, Import and Export |vim9script|
|
||||
|
||||
9. Rationale |vim9-rationale|
|
||||
|
||||
==============================================================================
|
||||
|
||||
1. What is Vim9 script? *vim9-script*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
Vim script has been growing over time, while keeping backwards compatibility.
|
||||
That means bad choices from the past often can't be changed. Execution is
|
||||
quite slow, every line is parsed every time it is executed.
|
||||
|
||||
The main goal of Vim9 script is to drastically improve performance. An
|
||||
increase in execution speed of 10 to 100 times can be expected. A secondary
|
||||
goal is to avoid Vim-specific constructs and get closer to commonly used
|
||||
programming languages, such as JavaScript, TypeScript and Java.
|
||||
|
||||
The performance improvements can only be achieved by not being 100% backwards
|
||||
compatible. For example, in a function the arguments are not available in the
|
||||
"a:" dictionary, as creating that dictionary adds quite a lot of overhead.
|
||||
Other differences are more subtle, such as how errors are handled.
|
||||
|
||||
The Vim9 script syntax and semantics are used in:
|
||||
- a function defined with the `:def` command
|
||||
- a script file where the first command is `vim9script`
|
||||
|
||||
When using `:function` in a Vim9 script file the legacy syntax is used.
|
||||
However, this is discouraged.
|
||||
|
||||
Vim9 script and legacy Vim script can be mixed. There is no need to rewrite
|
||||
old scripts, they keep working as before.
|
||||
|
||||
==============================================================================
|
||||
|
||||
2. Differences from legacy Vim script *vim9-differences*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
Vim9 functions ~
|
||||
|
||||
`:def` has no extra arguments like `:function` does: "range", "abort", "dict"
|
||||
or "closure". A `:def` function always aborts on an error, does not get a
|
||||
range passed and cannot be a "dict" function.
|
||||
|
||||
In the function body:
|
||||
- Arguments are accessed by name, without "a:".
|
||||
- There is no "a:" dictionary or "a:000" list. Variable arguments are defined
|
||||
with a name and have a list type: >
|
||||
def MyFunc(...itemlist: list<type>)
|
||||
for item in itemlist
|
||||
...
|
||||
|
||||
|
||||
Variable declarations with :let and :const ~
|
||||
|
||||
Local variables need to be declared with `:let`. Local constants need to be
|
||||
declared with `:const`. We refer to both as "variables".
|
||||
|
||||
Variables can be local to a script, function or code block: >
|
||||
vim9script
|
||||
let script_var = 123
|
||||
def SomeFunc()
|
||||
let func_var = script_var
|
||||
if cond
|
||||
let block_var = func_var
|
||||
...
|
||||
|
||||
The variables are only visible in the block where they are defined and nested
|
||||
blocks. Once the block ends the variable is no longer accessible: >
|
||||
if cond
|
||||
let inner = 5
|
||||
else
|
||||
let inner = 0
|
||||
endif
|
||||
echo inner " Error!
|
||||
|
||||
The declaration must be done earlier: >
|
||||
let inner: number
|
||||
if cond
|
||||
inner = 5
|
||||
else
|
||||
inner = 0
|
||||
endif
|
||||
echo inner
|
||||
|
||||
To intentionally use a variable that won't be available later, a block can be
|
||||
used: >
|
||||
{
|
||||
let temp = 'temp'
|
||||
...
|
||||
}
|
||||
echo temp " Error!
|
||||
|
||||
An existing variable cannot be assigned to with `:let`, since that implies a
|
||||
declaration. An exception is global variables: these can be both used with
|
||||
and without `:let`, because there is no rule about where they are declared.
|
||||
|
||||
Variables cannot shadow previously defined variables.
|
||||
Variables may shadow Ex commands, rename the variable if needed.
|
||||
|
||||
Since "&opt = value" is now assigning a value to option "opt", ":&" cannot be
|
||||
used to repeat a `:substitute` command.
|
||||
|
||||
|
||||
Omitting :call and :eval ~
|
||||
|
||||
Functions can be called without `:call`: >
|
||||
writefile(lines, 'file')
|
||||
Using `:call` is still possible, but this is discouraged.
|
||||
|
||||
A method call without `eval` is possible, so long as the start is an
|
||||
identifier or can't be an Ex command. It does NOT work for string constants: >
|
||||
myList->add(123) " works
|
||||
g:myList->add(123) " works
|
||||
[1, 2, 3]->Process() " works
|
||||
#{a: 1, b: 2}->Process() " works
|
||||
{'a': 1, 'b': 2}->Process() " works
|
||||
"foobar"->Process() " does NOT work
|
||||
("foobar")->Process() " works
|
||||
'foobar'->Process() " does NOT work
|
||||
('foobar')->Process() " works
|
||||
|
||||
In case there is ambiguity between a function name and an Ex command, use ":"
|
||||
to make clear you want to use the Ex command. For example, there is both the
|
||||
`:substitute` command and the `substitute()` function. When the line starts
|
||||
with `substitute(` this will use the function, prepend a colon to use the
|
||||
command instead: >
|
||||
:substitute(pattern (replacement (
|
||||
|
||||
|
||||
No curly braces expansion ~
|
||||
|
||||
|curly-braces-names| cannot be used.
|
||||
|
||||
|
||||
No :append, :change or :insert ~
|
||||
|
||||
These commands are too quickly confused with local variable names.
|
||||
|
||||
|
||||
Comparators ~
|
||||
|
||||
The 'ignorecase' option is not used for comparators that use strings.
|
||||
|
||||
|
||||
White space ~
|
||||
|
||||
Vim9 script enforces proper use of white space. This is no longer allowed: >
|
||||
let var=234 " Error!
|
||||
let var= 234 " Error!
|
||||
let var =234 " Error!
|
||||
There must be white space before and after the "=": >
|
||||
let var = 234 " OK
|
||||
|
||||
White space is required around most operators.
|
||||
|
||||
White space is not allowed:
|
||||
- Between a function name and the "(": >
|
||||
call Func (arg) " Error!
|
||||
call Func
|
||||
\ (arg) " Error!
|
||||
call Func(arg) " OK
|
||||
call Func(
|
||||
\ arg) " OK
|
||||
call Func(
|
||||
\ arg " OK
|
||||
\ )
|
||||
|
||||
|
||||
Conditions and expressions ~
|
||||
|
||||
Conditions and expression are mostly working like they do in JavaScript. A
|
||||
difference is made where JavaScript does not work like most people expect.
|
||||
Specifically, an empty list is falsey.
|
||||
|
||||
Any type of variable can be used as a condition, there is no error, not even
|
||||
for using a list or job. This is very much like JavaScript, but there are a
|
||||
few exceptions.
|
||||
|
||||
type TRUE when ~
|
||||
bool v:true
|
||||
number non-zero
|
||||
float non-zero
|
||||
string non-empty
|
||||
blob non-empty
|
||||
list non-empty (different from JavaScript)
|
||||
dictionary non-empty (different from JavaScript)
|
||||
funcref when not NULL
|
||||
partial when not NULL
|
||||
special v:true
|
||||
job when not NULL
|
||||
channel when not NULL
|
||||
class when not NULL
|
||||
object when not NULL (TODO: when isTrue() returns v:true)
|
||||
|
||||
The boolean operators "||" and "&&" do not change the value: >
|
||||
8 || 2 == 8
|
||||
0 || 2 == 2
|
||||
0 || '' == ''
|
||||
8 && 2 == 2
|
||||
0 && 2 == 0
|
||||
[] && 2 == []
|
||||
|
||||
When using `..` for string concatenation the arguments are always converted to
|
||||
string. >
|
||||
'hello ' .. 123 == 'hello 123'
|
||||
'hello ' .. v:true == 'hello true'
|
||||
|
||||
In Vim9 script one can use "true" for v:true and "false" for v:false.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. New style functions *fast-functions*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
*:def*
|
||||
:def[!] {name}([arguments])[: {return-type}
|
||||
Define a new function by the name {name}. The body of
|
||||
the function follows in the next lines, until the
|
||||
matching `:enddef`.
|
||||
|
||||
When {return-type} is omitted the function is not
|
||||
expected to return anything.
|
||||
|
||||
{arguments} is a sequence of zero or more argument
|
||||
declarations. There are three forms:
|
||||
{name}: {type}
|
||||
{name} = {value}
|
||||
{name}: {type} = {value}
|
||||
The first form is a mandatory argument, the caller
|
||||
must always provide them.
|
||||
The second and third form are optional arguments.
|
||||
When the caller omits an argument the {value} is used.
|
||||
|
||||
NOTE: It is possible to nest `:def` inside another
|
||||
`:def`, but it is not possible to nest `:def` inside
|
||||
`:function`, for backwards compatibility.
|
||||
|
||||
[!] is used as with `:function`.
|
||||
|
||||
*:enddef*
|
||||
:enddef End of a function defined with `:def`.
|
||||
|
||||
|
||||
If the script the function is defined in is Vim9 script, then script-local
|
||||
variables can be accessed without the "s:" prefix. They must be defined
|
||||
before the function. If the script the function is defined in is legacy
|
||||
script, then script-local variables must be accessed with the "s:" prefix.
|
||||
|
||||
|
||||
*:disa* *:disassemble*
|
||||
:disa[ssemble] {func} Show the instructions generated for {func}.
|
||||
This is for debugging and testing.
|
||||
|
||||
==============================================================================
|
||||
|
||||
4. Types *vim9-types*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
The following builtin types are supported:
|
||||
bool
|
||||
number
|
||||
float
|
||||
string
|
||||
blob
|
||||
list<type>
|
||||
dict<type>
|
||||
(a: type, b: type): type
|
||||
job
|
||||
channel
|
||||
|
||||
Not supported yet:
|
||||
tuple<a: type, b: type, ...>
|
||||
|
||||
These types can be used in declarations, but no variable will have this type:
|
||||
type|type
|
||||
void
|
||||
any
|
||||
|
||||
There is no array type, use list<type> instead. For a list constant an
|
||||
efficient implementation is used that avoids allocating lot of small pieces of
|
||||
memory.
|
||||
|
||||
A function defined with `:def` must declare the return type. If there is no
|
||||
type then the function doesn't return anything. "void" is used in type
|
||||
declarations.
|
||||
|
||||
Custom types can be defined with `:type`: >
|
||||
:type MyList list<string>
|
||||
{not implemented yet}
|
||||
|
||||
And classes and interfaces can be used as types: >
|
||||
:class MyClass
|
||||
:let mine: MyClass
|
||||
|
||||
:interface MyInterface
|
||||
:let mine: MyInterface
|
||||
|
||||
:class MyTemplate<Targ>
|
||||
:let mine: MyTemplate<number>
|
||||
:let mine: MyTemplate<string>
|
||||
|
||||
:class MyInterface<Targ>
|
||||
:let mine: MyInterface<number>
|
||||
:let mine: MyInterface<string>
|
||||
{not implemented yet}
|
||||
|
||||
|
||||
Type inference *type-inference*
|
||||
|
||||
In general: Whenever the type is clear it can be omitted. For example, when
|
||||
declaring a variable and giving it a value: >
|
||||
let var = 0 " infers number type
|
||||
let var = 'hello' " infers string type
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
5. Namespace, Import and Export
|
||||
*vim9script* *vim9-export* *vim9-import*
|
||||
|
||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||
|
||||
A Vim9 script can be written to be imported. This means that everything in
|
||||
the script is local, unless exported. Those exported items, and only those
|
||||
items, can then be imported in another script.
|
||||
|
||||
|
||||
Namespace ~
|
||||
*:vim9script* *:vim9*
|
||||
To recognize a file that can be imported the `vim9script` statement must
|
||||
appear as the first statement in the file. It tells Vim to interpret the
|
||||
script in its own namespace, instead of the global namespace. If a file
|
||||
starts with: >
|
||||
vim9script
|
||||
let myvar = 'yes'
|
||||
Then "myvar" will only exist in this file. While without `vim9script` it would
|
||||
be available as `g:myvar` from any other script and function.
|
||||
|
||||
The variables at the file level are very much like the script-local "s:"
|
||||
variables in legacy Vim script, but the "s:" is omitted.
|
||||
|
||||
In Vim9 script the global "g:" namespace can still be used as before.
|
||||
|
||||
A side effect of `:vim9script` is that the 'cpoptions' option is set to the
|
||||
Vim default value, like with: >
|
||||
:set cpo&vim
|
||||
One of the effects is that |line-continuation| is always enabled.
|
||||
The original value of 'cpoptions' is restored at the end of the script.
|
||||
|
||||
|
||||
Export ~
|
||||
*:export* *:exp*
|
||||
Exporting one item can be written as: >
|
||||
export const EXPORTED_CONST = 1234
|
||||
export let someValue = ...
|
||||
export def MyFunc() ...
|
||||
export class MyClass ...
|
||||
|
||||
As this suggests, only constants, variables, `:def` functions and classes can
|
||||
be exported.
|
||||
|
||||
Alternatively, an export statement can be used to export several already
|
||||
defined (otherwise script-local) items: >
|
||||
export {EXPORTED_CONST, someValue, MyFunc, MyClass}
|
||||
|
||||
|
||||
Import ~
|
||||
*:import* *:imp*
|
||||
The exported items can be imported individually in another Vim9 script: >
|
||||
import EXPORTED_CONST from "thatscript.vim"
|
||||
import MyClass from "myclass.vim"
|
||||
|
||||
To import multiple items at the same time: >
|
||||
import {someValue, MyClass} from "thatscript.vim"
|
||||
|
||||
In case the name is ambiguous, another name can be specified: >
|
||||
import MyClass as ThatClass from "myclass.vim"
|
||||
import {someValue, MyClass as ThatClass} from "myclass.vim"
|
||||
|
||||
To import all exported items under a specific identifier: >
|
||||
import * as That from 'thatscript.vim'
|
||||
|
||||
Then you can use "That.EXPORTED_CONST", "That.someValue", etc. You are free
|
||||
to choose the name "That", but it is highly recommended to use the name of the
|
||||
script file to avoid confusion.
|
||||
|
||||
The script name after `import` can be:
|
||||
- A relative path, starting "." or "..". This finds a file relative to the
|
||||
location of the script file itself. This is useful to split up a large
|
||||
plugin into several files.
|
||||
- An absolute path, starting with "/" on Unix or "D:/" on MS-Windows. This
|
||||
will be rarely used.
|
||||
- A path not being relative or absolute. This will be found in the
|
||||
"import" subdirectories of 'runtimepath' entries. The name will usually be
|
||||
longer and unique, to avoid loading the wrong file.
|
||||
|
||||
Once a vim9 script file has been imported, the result is cached and used the
|
||||
next time the same script is imported. It will not be read again.
|
||||
*:import-cycle*
|
||||
The `import` commands are executed when encountered. If that script (directly
|
||||
or indirectly) imports the current script, then items defined after the
|
||||
`import` won't be processed yet. Therefore cyclic imports can exist, but may
|
||||
result in undefined items.
|
||||
|
||||
|
||||
Import in an autoload script ~
|
||||
|
||||
For optimal startup speed, loading scripts should be postponed until they are
|
||||
actually needed. A recommended mechanism:
|
||||
|
||||
1. In the plugin define user commands, functions and/or mappings that refer to
|
||||
an autoload script. >
|
||||
command -nargs=1 SearchForStuff call searchfor#Stuff(<f-args>)
|
||||
|
||||
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen.
|
||||
|
||||
2. In the autocommand script do the actual work. You can import items from
|
||||
other files to split up functionality in appropriate pieces. >
|
||||
vim9script
|
||||
import FilterFunc from "../import/someother.vim"
|
||||
def searchfor#Stuff(arg: string)
|
||||
let filtered = FilterFunc(arg)
|
||||
...
|
||||
< This goes in .../autoload/searchfor.vim. "searchfor" in the file name
|
||||
must be exactly the same as the prefix for the function name, that is how
|
||||
Vim finds the file.
|
||||
|
||||
3. Other functionality, possibly shared between plugins, contains the exported
|
||||
items and any private items. >
|
||||
vim9script
|
||||
let localVar = 'local'
|
||||
export def FilterFunc(arg: string): string
|
||||
...
|
||||
< This goes in .../import/someother.vim.
|
||||
|
||||
|
||||
Import in legacy Vim script ~
|
||||
|
||||
If an `import` statement is used in legacy Vim script, for identifier the
|
||||
script-local "s:" namespace will be used, even when "s:" is not specified.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
9. Rationale *vim9-rationale*
|
||||
|
||||
The :def command ~
|
||||
|
||||
Plugin writers have asked for a much faster Vim script. Investigation have
|
||||
shown that keeping the existing semantics of function calls make this close to
|
||||
impossible, because of the overhead involved with calling a function, setting
|
||||
up the local function scope and executing lines. There are many details that
|
||||
need to be handled, such as error messages and exceptions. The need to create
|
||||
a dictionary for a: and l: scopes, the a:000 list and several others add too
|
||||
much overhead that cannot be avoided.
|
||||
|
||||
Therefore the `:def` method to define a new-style function had to be added,
|
||||
which allows for a function with different semantics. Most things still work
|
||||
as before, but some parts do not. A new way to define a function was
|
||||
considered the best way to separate the old-style code from Vim9 script code.
|
||||
|
||||
Using "def" to define a function comes from Python. Other languages use
|
||||
"function" which clashes with legacy Vim script.
|
||||
|
||||
|
||||
Type checking ~
|
||||
|
||||
When compiling lines of Vim commands into instructions as much as possible
|
||||
should be done at compile time. Postponing it to runtime makes the execution
|
||||
slower and means mistakes are found only later. For example, when
|
||||
encountering the "+" character and compiling this into a generic add
|
||||
instruction, at execution time the instruction would have to inspect the type
|
||||
of the arguments and decide what kind of addition to do. And when the
|
||||
type is dictionary throw an error. If the types are known to be numbers then
|
||||
an "add number" instruction can be used, which is faster. The error can be
|
||||
given at compile time, no error handling is needed at runtime.
|
||||
|
||||
The syntax for types is similar to Java, since it is easy to understand and
|
||||
widely used. The type names are what was used in Vim before, with some
|
||||
additions such as "void" and "bool".
|
||||
|
||||
|
||||
JavaScript/TypeScript syntax and semantics ~
|
||||
|
||||
Script writers have complained that the Vim script syntax is unexpectedly
|
||||
different from what they are used to. To reduce this complaint popular
|
||||
languages will be used as an example. At the same time, we do not want to
|
||||
abandon the well-known parts of legacy Vim script.
|
||||
|
||||
Since Vim already uses `:let` and `:const` and optional type checking is
|
||||
desirable, the JavaScript/TypeScript syntax fits best for variable
|
||||
declarations. >
|
||||
const greeting = 'hello' " string type is inferred
|
||||
let name: string
|
||||
...
|
||||
name = 'John'
|
||||
|
||||
Expression evaluation was already close to what JavaScript and other languages
|
||||
are doing. Some details are unexpected and can be fixed. For example how the
|
||||
|| and && operators work. Legacy Vim script: >
|
||||
let result = 44
|
||||
...
|
||||
return result || 0 " returns 1
|
||||
|
||||
Vim9 script works like JavaScript, keep the value: >
|
||||
let result = 44
|
||||
...
|
||||
return result || 0 " returns 44
|
||||
|
||||
On the other hand, overloading "+" to use both for addition and string
|
||||
concatenation goes against legacy Vim script and often leads to mistakes.
|
||||
For that reason we will keep using ".." for string concatenation. Lua also
|
||||
uses ".." this way.
|
||||
|
||||
|
||||
Import and Export ~
|
||||
|
||||
A problem of legacy Vim script is that by default all functions and variables
|
||||
are global. It is possible to make them script-local, but then they are not
|
||||
available in other scripts.
|
||||
|
||||
In Vim9 script a mechanism very similar to the Javascript import and export
|
||||
mechanism is supported. It is a variant to the existing `:source` command
|
||||
that works like one would expect:
|
||||
- Instead of making everything global by default, everything is script-local,
|
||||
unless exported.
|
||||
- When importing a script the symbols that are imported are listed, avoiding
|
||||
name conflicts and failures if later functionality is added.
|
||||
- The mechanism allows for writing a big, long script with a very clear API:
|
||||
the exported function(s) and class(es).
|
||||
- By using relative paths loading can be much faster for an import inside of a
|
||||
package, no need to search many directories.
|
||||
- Once an import has been used, it can be cached and loading it again can be
|
||||
avoided.
|
||||
- The Vim-specific use of "s:" to make things script-local can be dropped.
|
||||
|
||||
|
||||
Classes ~
|
||||
|
||||
Vim supports interfaces to Perl, Python, Lua, Tcl and a few others. But
|
||||
these have never become widespread. When Vim 9 was designed a decision was
|
||||
made to phase out these interfaces and concentrate on Vim script, while
|
||||
encouraging plugin authors to write code in any language and run it as an
|
||||
external tool, using jobs and channels.
|
||||
|
||||
Still, using an external tool has disadvantages. An alternative is to convert
|
||||
the tool into Vim script. For that to be possible without too much
|
||||
translation, and keeping the code fast at the same time, the constructs of the
|
||||
tool need to be supported. Since most languages support classes the lack of
|
||||
class support in Vim is then a problem.
|
||||
|
||||
Previously Vim supported a kind-of object oriented programming by adding
|
||||
methods to a dictionary. With some care this could be made to work, but it
|
||||
does not look like real classes. On top of that, it's very slow, because of
|
||||
the use of dictionaries.
|
||||
|
||||
The support of classes in Vim9 script is a "minimal common functionality" of
|
||||
class support in most languages. It works mostly like Java, which is the most
|
||||
popular programming language.
|
||||
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
0
runtime/doc/vimdiff-it.1
Executable file → Normal file
0
runtime/doc/vimdiff-it.1
Executable file → Normal file
0
runtime/doc/vimtutor-it.1
Executable file → Normal file
0
runtime/doc/vimtutor-it.1
Executable file → Normal file
0
runtime/doc/xxd-it.1
Executable file → Normal file
0
runtime/doc/xxd-it.1
Executable file → Normal file
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Nov 26
|
||||
" Last Change: 2020 Jan 31
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -384,7 +384,7 @@ au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||
" CUDA Cumpute Unified Device Architecture
|
||||
au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||
|
||||
" Dockerfilb; Podman uses the same syntax with name Containerfile
|
||||
" Dockerfile; Podman uses the same syntax with name Containerfile
|
||||
au BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile setf dockerfile
|
||||
|
||||
" WildPackets EtherPeek Decoder
|
||||
@@ -491,7 +491,7 @@ au BufNewFile,BufRead *.rul
|
||||
au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl')
|
||||
|
||||
" DOT
|
||||
au BufNewFile,BufRead *.dot setf dot
|
||||
au BufNewFile,BufRead *.dot,*.gv setf dot
|
||||
|
||||
" Dylan - lid files
|
||||
au BufNewFile,BufRead *.lid setf dylanlid
|
||||
@@ -833,6 +833,9 @@ au BufNewFile,BufRead *.k setf kwt
|
||||
" Kivy
|
||||
au BufNewFile,BufRead *.kv setf kivy
|
||||
|
||||
" Kotlin
|
||||
au BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin
|
||||
|
||||
" KDE script
|
||||
au BufNewFile,BufRead *.ks setf kscript
|
||||
|
||||
@@ -1627,6 +1630,13 @@ au BufNewFile,BufRead *.sml setf sml
|
||||
" Sratus VOS command macro
|
||||
au BufNewFile,BufRead *.cm setf voscm
|
||||
|
||||
" Swift
|
||||
au BufNewFile,BufRead *.swift setf swift
|
||||
au BufNewFile,BufRead *.swift.gyb setf swiftgyb
|
||||
|
||||
" Swift Intermediate Language
|
||||
au BufNewFile,BufRead *.sil setf sil
|
||||
|
||||
" Sysctl
|
||||
au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Sep 28
|
||||
" Last Change: 2020 Feb 01
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -15,12 +15,16 @@ let b:did_ftplugin = 1
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< ofu< | if has('vms') | setl isk< | endif"
|
||||
let b:undo_ftplugin = "setl fo< com< ofu< cms< def< inc< | if has('vms') | setl isk< | endif"
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
setlocal fo-=t fo+=croql
|
||||
|
||||
" These options have the right value as default, but the user may have
|
||||
" overruled that.
|
||||
setlocal commentstring& define& include&
|
||||
|
||||
" Set completion with CTRL-X CTRL-O to autoloaded function.
|
||||
if exists('&ofu')
|
||||
setlocal ofu=ccomplete#Complete
|
||||
|
||||
15
runtime/ftplugin/swift.vim
Normal file
15
runtime/ftplugin/swift.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
" This source file is part of the Swift.org open source project
|
||||
"
|
||||
" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
|
||||
" Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
"
|
||||
" See https://swift.org/LICENSE.txt for license information
|
||||
" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
"
|
||||
" Vim maintainer: Emir SARI <bitigchi@me.com>
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,:///,://
|
||||
setlocal expandtab
|
||||
setlocal ts=2
|
||||
setlocal sw=2
|
||||
setlocal smartindent
|
||||
11
runtime/ftplugin/swiftgyb.vim
Normal file
11
runtime/ftplugin/swiftgyb.vim
Normal file
@@ -0,0 +1,11 @@
|
||||
" This source file is part of the Swift.org open source project
|
||||
"
|
||||
" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
|
||||
" Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
"
|
||||
" See https://swift.org/LICENSE.txt for license information
|
||||
" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
"
|
||||
" Vim maintainer: Emir SARI <bitigchi@me.com>
|
||||
|
||||
runtime! ftplugin/swift.vim
|
||||
@@ -84,8 +84,10 @@ if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words =
|
||||
\ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
|
||||
\ '\<def\>:\<retu\%[rn]\>:\<enddef\>,' .
|
||||
\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
|
||||
\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
|
||||
\ '{:},' .
|
||||
\ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
|
||||
\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,'
|
||||
" Ignore syntax region commands and settings, any 'en*' would clobber
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
" Last change: 2016 Apr 05
|
||||
"
|
||||
" To use it, copy it to
|
||||
" for Unix: ~/.gvimrc
|
||||
" for Amiga: s:.gvimrc
|
||||
" for MS-DOS and Win32: $VIM\_gvimrc
|
||||
" for OpenVMS: sys$login:.gvimrc
|
||||
" for Unix: ~/.gvimrc
|
||||
" for Amiga: s:.gvimrc
|
||||
" for MS-Windows: $VIM\_gvimrc
|
||||
" for Haiku: ~/config/settings/vim/gvimrc
|
||||
" for OpenVMS: sys$login:.gvimrc
|
||||
|
||||
" Make external commands work through a pipe instead of a pseudo-tty
|
||||
"set noguipty
|
||||
|
||||
0
runtime/indent/lifelines.vim
Executable file → Normal file
0
runtime/indent/lifelines.vim
Executable file → Normal file
@@ -10,7 +10,7 @@ endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetVimIndent()
|
||||
setlocal indentkeys+==end,=else,=cat,=fina,=END,0\\,0=\"\\\
|
||||
setlocal indentkeys+==end,=},=else,=cat,=fina,=END,0\\,0=\"\\\
|
||||
|
||||
let b:undo_indent = "setl indentkeys< indentexpr<"
|
||||
|
||||
@@ -92,7 +92,7 @@ function GetVimIndentIntern()
|
||||
else
|
||||
" A line starting with :au does not increment/decrement indent.
|
||||
if prev_text !~ '^\s*au\%[tocmd]'
|
||||
let i = match(prev_text, '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>')
|
||||
let i = match(prev_text, '\(^\||\)\s*\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|def\|el\%[seif]\)\>\)')
|
||||
if i >= 0
|
||||
let ind += shiftwidth()
|
||||
if strpart(prev_text, i, 1) == '|' && has('syntax_items')
|
||||
@@ -115,8 +115,8 @@ function GetVimIndentIntern()
|
||||
|
||||
|
||||
" Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry,
|
||||
" :endfun, :else and :augroup END.
|
||||
if cur_text =~ '^\s*\(ene\@!\|cat\|fina\|el\|aug\%[roup]\s\+[eE][nN][dD]\)'
|
||||
" :endfun, :enddef, :else and :augroup END.
|
||||
if cur_text =~ '^\s*\(ene\@!\|}\|cat\|fina\|el\|aug\%[roup]\s\+[eE][nN][dD]\)'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"
|
||||
" Author: Bram Moolenaar
|
||||
" Copyright: Vim license applies, see ":help license"
|
||||
" Last Change: 2019 Dec 11
|
||||
" Last Change: 2020 Feb 19
|
||||
"
|
||||
" WORK IN PROGRESS - Only the basics work
|
||||
" Note: On MS-Windows you need a recent version of gdb. The one included with
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: AmigaDos
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 9
|
||||
" Version: 10
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Nick Jensen <nickspoon@gmail.com>
|
||||
" Former Maintainers: Anduin Withers <awithers@anduin.com>
|
||||
" Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2019-08-01
|
||||
" Last Change: 2020-01-27
|
||||
" Filenames: *.cs
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/nickspoons/vim-cs
|
||||
@@ -97,6 +97,8 @@ syn match csXmlComment "///.*$" contains=csXmlCommentLeader,@csXml,@Spell keepen
|
||||
syn include @csXml syntax/xml.vim
|
||||
hi def link xmlRegion Comment
|
||||
|
||||
" Since syntax/xml.vim contains `syn spell toplevel`, we need to set it back to `default` here.
|
||||
syn spell default
|
||||
|
||||
" [1] 9.5 Pre-processing directives
|
||||
syn region csPreCondit start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)" skip="\\$" end="$" contains=csComment keepend
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: C-shell (csh)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 13
|
||||
" Version: 14
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: DCL (Digital Command Language - vms)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 12
|
||||
" Version: 13
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2019 Oct 20
|
||||
" Last Change: 2020 Feb 02
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -24,7 +24,7 @@ let s:supported = [
|
||||
\ 'wheezy', 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
|
||||
\ 'sid', 'rc-buggy',
|
||||
\
|
||||
\ 'trusty', 'xenial', 'bionic', 'disco', 'eoan', 'focal', 'devel'
|
||||
\ 'trusty', 'xenial', 'bionic', 'eoan', 'focal', 'devel'
|
||||
\ ]
|
||||
let s:unsupported = [
|
||||
\ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||
@@ -33,7 +33,8 @@ let s:unsupported = [
|
||||
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
|
||||
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
||||
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic'
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
|
||||
\ 'disco'
|
||||
\ ]
|
||||
let &cpo=s:cpo
|
||||
|
||||
@@ -43,7 +44,7 @@ exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"
|
||||
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
exe 'syn match debchangelogTarget contained "\%( \%('.join(s:supported, '\|').'\)\>[-[:alnum:]]*\)\+"'
|
||||
exe 'syn match debchangelogUnsupportedTarget contained "\%( \%('.join(s:unsupported, '\|').'\)\>[-[:alnum:]]*\)\+"'
|
||||
syn keyword debchangelogUnreleased contained UNRELEASED
|
||||
syn match debchangelogUnreleased contained / UNRELEASED/
|
||||
syn match debchangelogVersion contained "(.\{-})"
|
||||
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
||||
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||
" Last Change: 2019 Oct 18
|
||||
" Last Change: 2020 Feb 02
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -26,7 +26,7 @@ let s:supported = [
|
||||
\ 'wheezy', 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
|
||||
\ 'sid', 'rc-buggy',
|
||||
\
|
||||
\ 'trusty', 'xenial', 'bionic', 'disco', 'eoan', 'focal', 'devel'
|
||||
\ 'trusty', 'xenial', 'bionic', 'eoan', 'focal', 'devel'
|
||||
\ ]
|
||||
let s:unsupported = [
|
||||
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||
@@ -35,7 +35,8 @@ let s:unsupported = [
|
||||
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
|
||||
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
||||
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic'
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
|
||||
\ 'disco'
|
||||
\ ]
|
||||
let &cpo=s:cpo
|
||||
|
||||
|
||||
@@ -1,26 +1,45 @@
|
||||
" dockerfile.vim - Syntax highlighting for Dockerfiles
|
||||
" Maintainer: Honza Pokorny <https://honza.ca>
|
||||
" Version: 0.6
|
||||
" Last Change: 2019 Aug 16
|
||||
" Last Change: 2020 Feb 11
|
||||
" License: BSD
|
||||
|
||||
" https://docs.docker.com/engine/reference/builder/
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:current_syntax = "dockerfile"
|
||||
syntax include @JSON syntax/json.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syntax include @Shell syntax/sh.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syntax case ignore
|
||||
syntax match dockerfileLinePrefix /\v^\s*(ONBUILD\s+)?\ze\S/ contains=dockerfileKeyword nextgroup=dockerfileInstruction skipwhite
|
||||
syntax region dockerfileFrom matchgroup=dockerfileKeyword start=/\v^\s*(FROM)\ze(\s|$)/ skip=/\v\\\_./ end=/\v((^|\s)AS(\s|$)|$)/ contains=dockerfileOption
|
||||
|
||||
syntax match dockerfileKeyword /\v^\s*(ONBUILD\s+)?(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)\s/
|
||||
syntax keyword dockerfileKeyword contained ADD ARG CMD COPY ENTRYPOINT ENV EXPOSE HEALTHCHECK LABEL MAINTAINER ONBUILD RUN SHELL STOPSIGNAL USER VOLUME WORKDIR
|
||||
syntax match dockerfileOption contained /\v(^|\s)\zs--\S+/
|
||||
|
||||
syntax match dockerfileKeyword /\v(AS)/
|
||||
syntax match dockerfileInstruction contained /\v<(\S+)>(\s+--\S+)*/ contains=dockerfileKeyword,dockerfileOption skipwhite nextgroup=dockerfileValue
|
||||
syntax match dockerfileInstruction contained /\v<(ADD|COPY)>(\s+--\S+)*/ contains=dockerfileKeyword,dockerfileOption skipwhite nextgroup=dockerfileJSON
|
||||
syntax match dockerfileInstruction contained /\v<(HEALTHCHECK)>(\s+--\S+)*/ contains=dockerfileKeyword,dockerfileOption skipwhite nextgroup=dockerfileInstruction
|
||||
syntax match dockerfileInstruction contained /\v<(CMD|ENTRYPOINT|RUN)>/ contains=dockerfileKeyword skipwhite nextgroup=dockerfileShell
|
||||
syntax match dockerfileInstruction contained /\v<(CMD|ENTRYPOINT|RUN)>\ze\s+\[/ contains=dockerfileKeyword skipwhite nextgroup=dockerfileJSON
|
||||
syntax match dockerfileInstruction contained /\v<(SHELL|VOLUME)>/ contains=dockerfileKeyword skipwhite nextgroup=dockerfileJSON
|
||||
|
||||
syntax region dockerfileString start=/\v"/ skip=/\v\\./ end=/\v"/
|
||||
syntax region dockerfileString contained start=/\v"/ skip=/\v\\./ end=/\v"/
|
||||
syntax region dockerfileJSON contained keepend start=/\v\[/ skip=/\v\\\_./ end=/\v$/ contains=@JSON
|
||||
syntax region dockerfileShell contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=@Shell
|
||||
syntax region dockerfileValue contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=dockerfileString
|
||||
|
||||
syntax match dockerfileComment "\v^\s*#.*$"
|
||||
syntax region dockerfileComment start=/\v^\s*#/ end=/\v$/
|
||||
set commentstring=#\ %s
|
||||
|
||||
hi def link dockerfileString String
|
||||
hi def link dockerfileKeyword Keyword
|
||||
hi def link dockerfileComment Comment
|
||||
hi def link dockerfileOption Special
|
||||
|
||||
let b:current_syntax = "dockerfile"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Elm Filter rules
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 8
|
||||
" Version: 9
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: exports
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 7
|
||||
" Version: 8
|
||||
" Notes: This file includes both SysV and BSD 'isms
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
|
||||
" Version: 101
|
||||
" Last Change: 2019 Nov. 26
|
||||
" Version: 102
|
||||
" Last Change: 2019 Dec. 14
|
||||
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
|
||||
" Usage: For instructions, do :help fortran-syntax from Vim
|
||||
" Credits:
|
||||
@@ -185,8 +185,8 @@ syn match fortranLabelNumber display "^ \d\s"ms=s+4,me=e-1
|
||||
if exists("fortran_more_precise")
|
||||
" Numbers as targets
|
||||
syn match fortranTarget display "\(\<if\s*(.\+)\s*\)\@<=\(\d\+\s*,\s*\)\{2}\d\+\>"
|
||||
syn match fortranTarget display "\(\<do\s\+\)\@<11=\d\+\>"
|
||||
syn match fortranTarget display "\(\<go\s*to\s*(\=\)\@<11=\(\d\+\s*,\s*\)*\d\+\>"
|
||||
syn match fortranTarget display "\(\<do\s\+\)\@11<=\d\+\>"
|
||||
syn match fortranTarget display "\(\<go\s*to\s*(\=\)\@11<=\(\d\+\s*,\s*\)*\d\+\>"
|
||||
endif
|
||||
|
||||
syn keyword fortranTypeR external
|
||||
@@ -274,7 +274,7 @@ syn match fortranType "\<elemental\>"
|
||||
syn match fortranType "\<pure\>"
|
||||
syn match fortranType "\<impure\>"
|
||||
if exists("fortran_more_precise")
|
||||
syn match fortranConstructName "\(\<end\s*forall\s\+\)\@<15=\a\w*\>"
|
||||
syn match fortranConstructName "\(\<end\s*forall\s\+\)\@15<=\a\w*\>"
|
||||
endif
|
||||
|
||||
if b:fortran_dialect == "f08"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Lex
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 16
|
||||
" Version: 17
|
||||
" URL: http://mysite.verizon.net/astronaut/vim/index.html#SYNTAX_LEX
|
||||
"
|
||||
" Option:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Lisp
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Jul 11, 2019
|
||||
" Version: 29
|
||||
" Version: 30
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
|
||||
"
|
||||
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: Makefile
|
||||
" Maintainer: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name>
|
||||
" Maintainer: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name>, <https://github.com/rohieb>
|
||||
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" URL: https://github.com/vim/vim/syntax/make.vim
|
||||
" Last Change: 2019 Dec 04
|
||||
" URL: https://github.com/vim/vim/blob/master/runtime/syntax/make.vim
|
||||
" Last Change: 2020 Jan 15
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -42,6 +42,7 @@ syn region makeIdent start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement
|
||||
syn match makeIdent "\$\$\w*"
|
||||
syn match makeIdent "\$[^({]"
|
||||
syn match makeIdent "^ *[^:#= \t]*\s*[:+?!*]="me=e-2
|
||||
syn match makeIdent "^ *[^:#= \t]*\s*::="me=e-3
|
||||
syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1
|
||||
syn match makeIdent "%"
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Maple V (based on release 4)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 16
|
||||
" Version: 17
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
|
||||
"
|
||||
" Package Function Selection: {{{1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Markdown
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: *.markdown
|
||||
" Last Change: 2019 Dec 05
|
||||
" Last Change: 2020 Jan 14
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -88,11 +88,11 @@ let s:concealends = ''
|
||||
if has('conceal') && get(g:, 'markdown_syntax_conceal', 1) == 1
|
||||
let s:concealends = ' concealends'
|
||||
endif
|
||||
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" skip="\\*" contains=markdownLineStart,@Spell' . s:concealends
|
||||
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends
|
||||
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@<!_\S\@=" end="\S\@<=_\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends
|
||||
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" skip="\\*" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends
|
||||
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" skip="\\\*" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends
|
||||
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\w\@<!__\S\@=" end="\S\@<=__\w\@!" skip="\\_" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends
|
||||
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" skip="\\*" contains=markdownLineStart,@Spell' . s:concealends
|
||||
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends
|
||||
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\w\@<!___\S\@=" end="\S\@<=___\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends
|
||||
|
||||
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
" Language: resolver configuration file
|
||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||
" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
|
||||
" Last Change: 2013 May 21
|
||||
" Version: 1.0
|
||||
" Last Change: 2020 Feb 15
|
||||
" By: DJ Lucas
|
||||
" Version: 1.1
|
||||
"
|
||||
" Credits:
|
||||
" David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
" Stefano Zacchiroli <zack@debian.org>
|
||||
" DJ Lucas <dj@linuxfromscratch.org>
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -31,6 +33,15 @@ syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
|
||||
|
||||
" Particular
|
||||
syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\s\@<=::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\)\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
|
||||
syn match resolvIPNameserver contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/
|
||||
syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/
|
||||
syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: rpcgen
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 12
|
||||
" Version: 13
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN
|
||||
|
||||
if exists("b:current_syntax")
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||
" Last Change: Jun 16, 2019
|
||||
" Version: 188
|
||||
" Last Change: Oct 16, 2019
|
||||
" Version: 189
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||
" For options and settings, please use: :help ft-sh-syntax
|
||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
||||
@@ -124,13 +124,14 @@ syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsa
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
syn cluster ErrorList add=shDTestError
|
||||
endif
|
||||
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
|
||||
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
|
||||
syn cluster shArithList contains=@shArithParenList,shParenError
|
||||
syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
|
||||
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDo,shEcho,shExpr,shFor,shForPP,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
|
||||
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
|
||||
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
||||
" COMBAK: removing shEscape fromshDblQuoteList fails ksh04:43
|
||||
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
||||
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
||||
syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
|
||||
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
||||
@@ -147,6 +148,7 @@ syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
|
||||
syn cluster shIdList contains=shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
|
||||
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
|
||||
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
|
||||
syn cluster shPPSLeftList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
|
||||
syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
|
||||
syn cluster shTestList contains=shArithmetic,shCharClass,shCommandSub,shCommandSubBQ,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
|
||||
@@ -156,8 +158,8 @@ syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shComman
|
||||
" Echo: {{{1
|
||||
" ====
|
||||
" This one is needed INSIDE a CommandSub, so that `echo bla` be correct
|
||||
syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
|
||||
syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
|
||||
syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
|
||||
syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
|
||||
syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]'
|
||||
|
||||
" This must be after the strings, so that ... \" will be correct
|
||||
@@ -196,7 +198,7 @@ endif
|
||||
" Options: {{{1
|
||||
" ====================
|
||||
syn match shOption "\s\zs[-+][-_a-zA-Z#@]\+"
|
||||
syn match shOption "\s\zs--[^ \t$`'"|);]\+"
|
||||
syn match shOption "\s\zs--[^ \t$=`'"|);]\+"
|
||||
|
||||
" File Redirection Highlighted As Operators: {{{1
|
||||
"===========================================
|
||||
@@ -292,9 +294,12 @@ endif
|
||||
"======
|
||||
syn match shWrapLineOperator "\\$"
|
||||
syn region shCommandSubBQ start="`" skip="\\\\\|\\." end="`" contains=shBQComment,@shCommandSubList
|
||||
"see ksh13
|
||||
"COMBAK: see ksh13:50
|
||||
"syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shSingleQuote,shDoubleQuote,shComment
|
||||
"COMBAK: see sh11:27
|
||||
syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shComment
|
||||
"COMBAK: see ksh13:53
|
||||
"syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.'
|
||||
|
||||
" $() and $(()): {{{1
|
||||
" $(..) is not supported by sh (Bourne shell). However, apparently
|
||||
@@ -356,6 +361,7 @@ syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip
|
||||
syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contained contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
||||
syn match shStringSpecial "[^[:print:] \t]" contained
|
||||
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
|
||||
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
|
||||
syn match shSpecialSQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,@shNoZSList
|
||||
syn match shSpecialDQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshDblQuote,@shNoZSList
|
||||
syn match shSpecialStart "\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
|
||||
@@ -527,7 +533,7 @@ if exists("b:is_bash")
|
||||
" bash : ${parameter//pattern/string}
|
||||
" bash : ${parameter//pattern}
|
||||
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
|
||||
syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shCommandSubList
|
||||
syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shPPSLeftList
|
||||
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shPPSRightList
|
||||
|
||||
" bash : ${parameter/#substring/replacement}
|
||||
|
||||
178
runtime/syntax/sil.vim
Normal file
178
runtime/syntax/sil.vim
Normal file
@@ -0,0 +1,178 @@
|
||||
" This source file is part of the Swift.org open source project
|
||||
"
|
||||
" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
|
||||
" Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
"
|
||||
" See https://swift.org/LICENSE.txt for license information
|
||||
" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
"
|
||||
" Vim syntax file
|
||||
" Language: sil
|
||||
"
|
||||
" Vim maintainer: Emir SARI <bitigchi@me.com>
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn keyword silStage skipwhite nextgroup=silStages
|
||||
\ sil_stage
|
||||
syn keyword silStages
|
||||
\ canonical
|
||||
\ raw
|
||||
|
||||
syn match silIdentifier skipwhite
|
||||
\ /@\<[A-Za-z_0-9]\+\>/
|
||||
|
||||
syn match silConvention skipwhite
|
||||
\ /$\?@convention/
|
||||
syn region silConvention contained contains=silConventions
|
||||
\ start="@convention(" end=")"
|
||||
syn keyword silConventions
|
||||
\ block
|
||||
\ c
|
||||
\ method
|
||||
\ objc_method
|
||||
\ thick
|
||||
\ thin
|
||||
\ witness_method
|
||||
|
||||
syn match silFunctionType skipwhite
|
||||
\ /@\(\<autoreleased\>\|\<callee_guaranteed\>\|\<callee_owned\>\|\<error\>\|\<guaranteed\>\|\<in\>\|\<in_constant\>\|\<in_guaranteed\>\|\<inout\>\|\<inout_aliasable\>\|\<noescape\>\|\<out\>\|\<owned\>\)/
|
||||
syn match silMetatypeType skipwhite
|
||||
\ /@\(\<thick\>\|\<thin\>\|\<objc\>\)/
|
||||
|
||||
" TODO: handle [tail_elems sil-type * sil-operand]
|
||||
syn region silAttribute contains=silAttributes
|
||||
\ start="\[" end="\]"
|
||||
syn keyword silAttributes contained containedin=silAttribute
|
||||
\ abort
|
||||
\ deinit
|
||||
\ delegatingself
|
||||
\ derivedself
|
||||
\ derivedselfonly
|
||||
\ dynamic
|
||||
\ exact
|
||||
\ init
|
||||
\ modify
|
||||
\ mutating
|
||||
\ objc
|
||||
\ open
|
||||
\ read
|
||||
\ rootself
|
||||
\ stack
|
||||
\ static
|
||||
\ strict
|
||||
\ unknown
|
||||
\ unsafe
|
||||
\ var
|
||||
|
||||
syn keyword swiftImport import skipwhite nextgroup=swiftImportModule
|
||||
syn match swiftImportModule /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent
|
||||
syn match swiftImportComponent /\.\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent
|
||||
|
||||
syn region swiftComment start="/\*" end="\*/" contains=swiftComment,swiftTodo
|
||||
syn region swiftLineComment start="//" end="$" contains=swiftTodo
|
||||
|
||||
syn match swiftLineComment /^#!.*/
|
||||
syn match swiftTypeName /\<[A-Z][a-zA-Z_0-9]*\>/
|
||||
syn match swiftDecimal /\<[-]\?[0-9]\+\>/
|
||||
syn match swiftDecimal /\<[-+]\?[0-9]\+\>/
|
||||
|
||||
syn match swiftTypeName /\$\*\<\?[A-Z][a-zA-Z0-9_]*\>/
|
||||
syn match swiftVarName /%\<[A-z[a-z_0-9]\+\(#[0-9]\+\)\?\>/
|
||||
|
||||
syn keyword swiftKeyword break case continue default do else for if in static switch repeat return where while skipwhite
|
||||
|
||||
syn keyword swiftKeyword sil internal thunk skipwhite
|
||||
syn keyword swiftKeyword public hidden private shared public_external hidden_external skipwhite
|
||||
syn keyword swiftKeyword getter setter allocator initializer enumelt destroyer globalaccessor objc skipwhite
|
||||
syn keyword swiftKeyword alloc_global alloc_stack alloc_ref alloc_ref_dynamic alloc_box alloc_existential_box alloc_value_buffer dealloc_stack dealloc_box dealloc_existential_box dealloc_ref dealloc_partial_ref dealloc_value_buffer skipwhite
|
||||
syn keyword swiftKeyword debug_value debug_value_addr skipwhite
|
||||
syn keyword swiftKeyword load load_unowned store assign mark_uninitialized mark_function_escape copy_addr destroy_addr index_addr index_raw_pointer bind_memory to skipwhite
|
||||
syn keyword swiftKeyword strong_retain strong_release strong_retain_unowned ref_to_unowned unowned_to_ref unowned_retain unowned_release load_weak store_unowned store_weak fix_lifetime autorelease_value set_deallocating is_unique is_escaping_closure skipwhite
|
||||
syn keyword swiftKeyword function_ref integer_literal float_literal string_literal global_addr skipwhite
|
||||
syn keyword swiftKeyword class_method super_method witness_method objc_method objc_super_method skipwhite
|
||||
syn keyword swiftKeyword partial_apply builtin skipwhite
|
||||
syn keyword swiftApplyKeyword apply try_apply skipwhite
|
||||
syn keyword swiftKeyword metatype value_metatype existential_metatype skipwhite
|
||||
syn keyword swiftKeyword retain_value release_value retain_value_addr release_value_addr tuple tuple_extract tuple_element_addr struct struct_extract struct_element_addr ref_element_addr skipwhite
|
||||
syn keyword swiftKeyword init_enum_data_addr unchecked_enum_data unchecked_take_enum_data_addr inject_enum_addr skipwhite
|
||||
syn keyword swiftKeyword init_existential_addr init_existential_value init_existential_metatype deinit_existential_addr deinit_existential_value open_existential_addr open_existential_box open_existential_box_value open_existential_metatype init_existential_ref open_existential_ref open_existential_value skipwhite
|
||||
syn keyword swiftKeyword upcast address_to_pointer pointer_to_address pointer_to_thin_function unchecked_addr_cast unchecked_ref_cast unchecked_ref_cast_addr ref_to_raw_pointer ref_to_bridge_object ref_to_unmanaged unmanaged_to_ref raw_pointer_to_ref skipwhite
|
||||
syn keyword swiftKeyword convert_function thick_to_objc_metatype thin_function_to_pointer objc_to_thick_metatype thin_to_thick_function unchecked_ref_bit_cast unchecked_trivial_bit_cast bridge_object_to_ref bridge_object_to_word unchecked_bitwise_cast skipwhite
|
||||
syn keyword swiftKeyword objc_existential_metatype_to_object objc_metatype_to_object objc_protocol skipwhite
|
||||
syn keyword swiftKeyword unconditional_checked_cast unconditional_checked_cast_addr unconditional_checked_cast_value skipwhite
|
||||
syn keyword swiftKeyword cond_fail skipwhite
|
||||
syn keyword swiftKeyword unreachable return throw br cond_br switch_value select_enum select_enum_addr select_value switch_enum switch_enum_addr dynamic_method_br checked_cast_br checked_cast_value_br checked_cast_addr_br skipwhite
|
||||
syn keyword swiftKeyword project_box project_existential_box project_value_buffer project_block_storage init_block_storage_header copy_block mark_dependence skipwhite
|
||||
|
||||
syn keyword swiftTypeDefinition class extension protocol struct typealias enum skipwhite nextgroup=swiftTypeName
|
||||
syn region swiftTypeAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftTypeName
|
||||
syn match swiftTypeName /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ contained nextgroup=swiftTypeParameters
|
||||
|
||||
syn region swiftTypeParameters start="<" end=">" skipwhite contained
|
||||
|
||||
syn keyword swiftFuncDefinition func skipwhite nextgroup=swiftFuncAttributes,swiftFuncName,swiftOperator
|
||||
syn region swiftFuncAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftFuncName,swiftOperator
|
||||
syn match swiftFuncName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained nextgroup=swiftTypeParameters
|
||||
syn keyword swiftFuncKeyword subscript init destructor nextgroup=swiftTypeParameters
|
||||
|
||||
syn keyword swiftVarDefinition var skipwhite nextgroup=swiftVarName
|
||||
syn keyword swiftVarDefinition let skipwhite nextgroup=swiftVarName
|
||||
syn match swiftVarName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained
|
||||
|
||||
syn keyword swiftDefinitionModifier static
|
||||
|
||||
syn match swiftImplicitVarName /\$\<[A-Za-z_0-9]\+\>/
|
||||
|
||||
hi def link swiftImport Include
|
||||
hi def link swiftImportModule Title
|
||||
hi def link swiftImportComponent Identifier
|
||||
hi def link swiftApplyKeyword Statement
|
||||
hi def link swiftKeyword Statement
|
||||
hi def link swiftTypeDefinition Define
|
||||
hi def link swiftTypeName Type
|
||||
hi def link swiftTypeParameters Special
|
||||
hi def link swiftTypeAttributes PreProc
|
||||
hi def link swiftFuncDefinition Define
|
||||
hi def link swiftDefinitionModifier Define
|
||||
hi def link swiftFuncName Function
|
||||
hi def link swiftFuncAttributes PreProc
|
||||
hi def link swiftFuncKeyword Function
|
||||
hi def link swiftVarDefinition Define
|
||||
hi def link swiftVarName Identifier
|
||||
hi def link swiftImplicitVarName Identifier
|
||||
hi def link swiftIdentifierKeyword Identifier
|
||||
hi def link swiftTypeDeclaration Delimiter
|
||||
hi def link swiftBoolean Boolean
|
||||
hi def link swiftString String
|
||||
hi def link swiftInterpolation Special
|
||||
hi def link swiftComment Comment
|
||||
hi def link swiftLineComment Comment
|
||||
hi def link swiftDecimal Number
|
||||
hi def link swiftHex Number
|
||||
hi def link swiftOct Number
|
||||
hi def link swiftBin Number
|
||||
hi def link swiftOperator Function
|
||||
hi def link swiftChar Character
|
||||
hi def link swiftLabel Label
|
||||
hi def link swiftNew Operator
|
||||
|
||||
hi def link silStage Special
|
||||
hi def link silStages Type
|
||||
hi def link silConvention Special
|
||||
hi def link silConventionParameter Special
|
||||
hi def link silConventions Type
|
||||
hi def link silIdentifier Identifier
|
||||
hi def link silFunctionType Special
|
||||
hi def link silMetatypeType Special
|
||||
hi def link silAttribute PreProc
|
||||
|
||||
let b:current_syntax = "sil"
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: sendmail
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Oct 25, 2016
|
||||
" Version: 8
|
||||
" Version: 9
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Language: SPEC: Build/install scripts for Linux RPM packages
|
||||
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
|
||||
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
|
||||
" Last Change: 2019 Sep 27
|
||||
" Last Change: 2020 Feb 07
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -111,7 +111,7 @@ syn region specDescriptionArea matchgroup=specSection start='^%description' end=
|
||||
syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
|
||||
|
||||
"%% Scripts Section %%
|
||||
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
|
||||
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|check\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
|
||||
|
||||
"%% Changelog Section %%
|
||||
syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Contributor: Dean, Adam Kenneth <adam.ken.dean@hpe.com>
|
||||
" Last Change: 2019 Sep 09
|
||||
" Last Change: 2020 Feb 12
|
||||
" Added RemoteCommand from pull request #4809
|
||||
" Included additional keywords from Martin.
|
||||
" SSH Version: 7.4p1
|
||||
"
|
||||
|
||||
@@ -131,24 +132,25 @@ syn case ignore
|
||||
" Keywords
|
||||
syn keyword sshconfigHostSect Host
|
||||
|
||||
syn keyword sshconfigMatch canonical exec host originalhost user localuser all
|
||||
syn keyword sshconfigMatch canonical final exec host originalhost user localuser all
|
||||
|
||||
syn keyword sshconfigKeyword AddressFamily
|
||||
syn keyword sshconfigKeyword AddKeysToAgent
|
||||
syn keyword sshconfigKeyword BatchMode
|
||||
syn keyword sshconfigKeyword BindAddress
|
||||
syn keyword sshconfigKeyword BindInterface
|
||||
syn keyword sshconfigKeyword CanonicalDomains
|
||||
syn keyword sshconfigKeyword CanonicalizeFallbackLocal
|
||||
syn keyword sshconfigKeyword CanonicalizeHostname
|
||||
syn keyword sshconfigKeyword CanonicalizeMaxDots
|
||||
syn keyword sshconfigKeyword CanonicalizePermittedCNAMEs
|
||||
syn keyword sshconfigKeyword CASignatureAlgorithms
|
||||
syn keyword sshconfigKeyword CertificateFile
|
||||
syn keyword sshconfigKeyword ChallengeResponseAuthentication
|
||||
syn keyword sshconfigKeyword CheckHostIP
|
||||
syn keyword sshconfigKeyword Cipher
|
||||
syn keyword sshconfigKeyword Ciphers
|
||||
syn keyword sshconfigKeyword ClearAllForwardings
|
||||
syn keyword sshconfigKeyword Compression
|
||||
syn keyword sshconfigKeyword CompressionLevel
|
||||
syn keyword sshconfigKeyword ConnectTimeout
|
||||
syn keyword sshconfigKeyword ConnectionAttempts
|
||||
syn keyword sshconfigKeyword ControlMaster
|
||||
@@ -158,18 +160,13 @@ syn keyword sshconfigKeyword DynamicForward
|
||||
syn keyword sshconfigKeyword EnableSSHKeysign
|
||||
syn keyword sshconfigKeyword EscapeChar
|
||||
syn keyword sshconfigKeyword ExitOnForwardFailure
|
||||
syn keyword sshconfigKeyword FingerprintHash
|
||||
syn keyword sshconfigKeyword ForwardAgent
|
||||
syn keyword sshconfigKeyword ForwardX11
|
||||
syn keyword sshconfigKeyword ForwardX11Timeout
|
||||
syn keyword sshconfigKeyword ForwardX11Trusted
|
||||
syn keyword sshconfigKeyword GSSAPIAuthentication
|
||||
syn keyword sshconfigKeyword GSSAPIClientIdentity
|
||||
syn keyword sshconfigKeyword GSSAPIDelegateCredentials
|
||||
syn keyword sshconfigKeyword GSSAPIKeyExchange
|
||||
syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
|
||||
syn keyword sshconfigKeyword GSSAPIServerIdentity
|
||||
syn keyword sshconfigKeyword GSSAPITrustDNS
|
||||
syn keyword sshconfigKeyword GSSAPITrustDns
|
||||
syn keyword sshconfigKeyword GatewayPorts
|
||||
syn keyword sshconfigKeyword GlobalKnownHostsFile
|
||||
syn keyword sshconfigKeyword HashKnownHosts
|
||||
@@ -180,6 +177,7 @@ syn keyword sshconfigKeyword HostbasedAuthentication
|
||||
syn keyword sshconfigKeyword HostbasedKeyTypes
|
||||
syn keyword sshconfigKeyword IPQoS
|
||||
syn keyword sshconfigKeyword IdentitiesOnly
|
||||
syn keyword sshconfigKeyword IdentityAgent
|
||||
syn keyword sshconfigKeyword IdentityFile
|
||||
syn keyword sshconfigKeyword IgnoreUnknown
|
||||
syn keyword sshconfigKeyword Include
|
||||
@@ -199,35 +197,53 @@ syn keyword sshconfigKeyword PasswordAuthentication
|
||||
syn keyword sshconfigKeyword PermitLocalCommand
|
||||
syn keyword sshconfigKeyword Port
|
||||
syn keyword sshconfigKeyword PreferredAuthentications
|
||||
syn keyword sshconfigKeyword Protocol
|
||||
syn keyword sshconfigKeyword ProxyCommand
|
||||
syn keyword sshconfigKeyword ProxyJump
|
||||
syn keyword sshconfigKeyword ProxyUseFDPass
|
||||
syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
|
||||
syn keyword sshconfigKeyword PubkeyAuthentication
|
||||
syn keyword sshconfigKeyword RSAAuthentication
|
||||
syn keyword sshconfigKeyword RekeyLimit
|
||||
syn keyword sshconfigKeyword RemoteCommand
|
||||
syn keyword sshconfigKeyword RemoteForward
|
||||
syn keyword sshconfigKeyword RequestTTY
|
||||
syn keyword sshconfigKeyword RhostsRSAAuthentication
|
||||
syn keyword sshconfigKeyword RevokedHostKeys
|
||||
syn keyword sshconfigKeyword SecurityKeyProvider
|
||||
syn keyword sshconfigKeyword SendEnv
|
||||
syn keyword sshconfigKeyword ServerAliveCountMax
|
||||
syn keyword sshconfigKeyword ServerAliveInterval
|
||||
syn keyword sshconfigKeyword SmartcardDevice
|
||||
syn keyword sshconfigKeyword SetEnv
|
||||
syn keyword sshconfigKeyword StreamLocalBindMask
|
||||
syn keyword sshconfigKeyword StreamLocalBindUnlink
|
||||
syn keyword sshconfigKeyword StrictHostKeyChecking
|
||||
syn keyword sshconfigKeyword SyslogFacility
|
||||
syn keyword sshconfigKeyword TCPKeepAlive
|
||||
syn keyword sshconfigKeyword Tunnel
|
||||
syn keyword sshconfigKeyword TunnelDevice
|
||||
syn keyword sshconfigKeyword UseBlacklistedKeys
|
||||
syn keyword sshconfigKeyword UsePrivilegedPort
|
||||
syn keyword sshconfigKeyword UpdateHostKeys
|
||||
syn keyword sshconfigKeyword User
|
||||
syn keyword sshconfigKeyword UserKnownHostsFile
|
||||
syn keyword sshconfigKeyword UseRoaming
|
||||
syn keyword sshconfigKeyword VerifyHostKeyDNS
|
||||
syn keyword sshconfigKeyword VisualHostKey
|
||||
syn keyword sshconfigKeyword XAuthLocation
|
||||
|
||||
" Deprecated/ignored/remove/unsupported keywords
|
||||
|
||||
syn keyword sshConfigDeprecated Cipher
|
||||
syn keyword sshconfigDeprecated GSSAPIClientIdentity
|
||||
syn keyword sshconfigDeprecated GSSAPIKeyExchange
|
||||
syn keyword sshconfigDeprecated GSSAPIRenewalForcesRekey
|
||||
syn keyword sshconfigDeprecated GSSAPIServerIdentity
|
||||
syn keyword sshconfigDeprecated GSSAPITrustDNS
|
||||
syn keyword sshconfigDeprecated GSSAPITrustDns
|
||||
syn keyword sshconfigDeprecated Protocol
|
||||
syn keyword sshconfigDeprecated RSAAuthentication
|
||||
syn keyword sshconfigDeprecated RhostsRSAAuthentication
|
||||
syn keyword sshconfigDeprecated CompressionLevel
|
||||
syn keyword sshconfigDeprecated UseRoaming
|
||||
syn keyword sshconfigDeprecated UsePrivilegedPort
|
||||
|
||||
" Define the default highlighting
|
||||
|
||||
hi def link sshconfigComment Comment
|
||||
@@ -236,17 +252,17 @@ hi def link sshconfigHostPort sshconfigConstant
|
||||
hi def link sshconfigNumber sshconfigConstant
|
||||
hi def link sshconfigConstant Constant
|
||||
hi def link sshconfigYesNo sshconfigEnum
|
||||
hi def link sshconfigCipher sshconfigEnum
|
||||
hi def link sshconfigCiphers sshconfigEnum
|
||||
hi def link sshconfigCipher sshconfigDeprecated
|
||||
hi def link sshconfigCiphers sshconfigEnum
|
||||
hi def link sshconfigMAC sshconfigEnum
|
||||
hi def link sshconfigHostKeyAlgo sshconfigEnum
|
||||
hi def link sshconfigLogLevel sshconfigEnum
|
||||
hi def link sshconfigSysLogFacility sshconfigEnum
|
||||
hi def link sshconfigAddressFamily sshconfigEnum
|
||||
hi def link sshconfigIPQoS sshconfigEnum
|
||||
hi def link sshconfigIPQoS sshconfigEnum
|
||||
hi def link sshconfigKbdInteractive sshconfigEnum
|
||||
hi def link sshconfigKexAlgo sshconfigEnum
|
||||
hi def link sshconfigTunnel sshconfigEnum
|
||||
hi def link sshconfigKexAlgo sshconfigEnum
|
||||
hi def link sshconfigTunnel sshconfigEnum
|
||||
hi def link sshconfigPreferredAuth sshconfigEnum
|
||||
hi def link sshconfigVar sshconfigEnum
|
||||
hi def link sshconfigEnum Identifier
|
||||
@@ -254,6 +270,7 @@ hi def link sshconfigSpecial Special
|
||||
hi def link sshconfigKeyword Keyword
|
||||
hi def link sshconfigHostSect Type
|
||||
hi def link sshconfigMatch Type
|
||||
hi def link sshconfigDeprecated Error
|
||||
|
||||
let b:current_syntax = "sshconfig"
|
||||
|
||||
|
||||
277
runtime/syntax/swift.vim
Normal file
277
runtime/syntax/swift.vim
Normal file
@@ -0,0 +1,277 @@
|
||||
" This source file is part of the Swift.org open source project
|
||||
"
|
||||
" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
|
||||
" Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
"
|
||||
" See https://swift.org/LICENSE.txt for license information
|
||||
" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
"
|
||||
" Vim syntax file
|
||||
" Language: swift
|
||||
" Maintainer: Joe Groff <jgroff@apple.com>
|
||||
" Last Change: 2018 Jan 21
|
||||
"
|
||||
" Vim maintainer: Emir SARI <bitigchi@me.com>
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn keyword swiftKeyword
|
||||
\ associatedtype
|
||||
\ break
|
||||
\ catch
|
||||
\ continue
|
||||
\ defer
|
||||
\ do
|
||||
\ else
|
||||
\ fallthrough
|
||||
\ for
|
||||
\ guard
|
||||
\ if
|
||||
\ in
|
||||
\ repeat
|
||||
\ return
|
||||
\ switch
|
||||
\ throw
|
||||
\ try
|
||||
\ where
|
||||
\ while
|
||||
syn match swiftMultiwordKeyword
|
||||
\ "indirect case"
|
||||
|
||||
syn keyword swiftImport skipwhite skipempty nextgroup=swiftImportModule
|
||||
\ import
|
||||
|
||||
syn keyword swiftDefinitionModifier
|
||||
\ convenience
|
||||
\ dynamic
|
||||
\ fileprivate
|
||||
\ final
|
||||
\ internal
|
||||
\ lazy
|
||||
\ nonmutating
|
||||
\ open
|
||||
\ override
|
||||
\ prefix
|
||||
\ private
|
||||
\ public
|
||||
\ required
|
||||
\ rethrows
|
||||
\ static
|
||||
\ throws
|
||||
\ weak
|
||||
|
||||
syn keyword swiftInOutKeyword skipwhite skipempty nextgroup=swiftTypeName
|
||||
\ inout
|
||||
|
||||
syn keyword swiftIdentifierKeyword
|
||||
\ Self
|
||||
\ metatype
|
||||
\ self
|
||||
\ super
|
||||
|
||||
syn keyword swiftFuncKeywordGeneral skipwhite skipempty nextgroup=swiftTypeParameters
|
||||
\ init
|
||||
|
||||
syn keyword swiftFuncKeyword
|
||||
\ deinit
|
||||
\ subscript
|
||||
|
||||
syn keyword swiftScope
|
||||
\ autoreleasepool
|
||||
|
||||
syn keyword swiftMutating skipwhite skipempty nextgroup=swiftFuncDefinition
|
||||
\ mutating
|
||||
syn keyword swiftFuncDefinition skipwhite skipempty nextgroup=swiftTypeName,swiftOperator
|
||||
\ func
|
||||
|
||||
syn keyword swiftTypeDefinition skipwhite skipempty nextgroup=swiftTypeName
|
||||
\ class
|
||||
\ enum
|
||||
\ extension
|
||||
\ protocol
|
||||
\ struct
|
||||
|
||||
syn keyword swiftTypeAliasDefinition skipwhite skipempty nextgroup=swiftTypeAliasName
|
||||
\ typealias
|
||||
|
||||
syn match swiftMultiwordTypeDefinition skipwhite skipempty nextgroup=swiftTypeName
|
||||
\ "indirect enum"
|
||||
|
||||
syn keyword swiftVarDefinition skipwhite skipempty nextgroup=swiftVarName
|
||||
\ let
|
||||
\ var
|
||||
|
||||
syn keyword swiftLabel
|
||||
\ get
|
||||
\ set
|
||||
\ didSet
|
||||
\ willSet
|
||||
|
||||
syn keyword swiftBoolean
|
||||
\ false
|
||||
\ true
|
||||
|
||||
syn keyword swiftNil
|
||||
\ nil
|
||||
|
||||
syn match swiftImportModule contained nextgroup=swiftImportComponent
|
||||
\ /\<[A-Za-z_][A-Za-z_0-9]*\>/
|
||||
syn match swiftImportComponent contained nextgroup=swiftImportComponent
|
||||
\ /\.\<[A-Za-z_][A-Za-z_0-9]*\>/
|
||||
|
||||
syn match swiftTypeAliasName contained skipwhite skipempty nextgroup=swiftTypeAliasValue
|
||||
\ /\<[A-Za-z_][A-Za-z_0-9]*\>/
|
||||
syn match swiftTypeName contained skipwhite skipempty nextgroup=swiftTypeParameters
|
||||
\ /\<[A-Za-z_][A-Za-z_0-9\.]*\>/
|
||||
syn match swiftVarName contained skipwhite skipempty nextgroup=swiftTypeDeclaration
|
||||
\ /\<[A-Za-z_][A-Za-z_0-9]*\>/
|
||||
syn match swiftImplicitVarName
|
||||
\ /\$\<[A-Za-z_0-9]\+\>/
|
||||
|
||||
" TypeName[Optionality]?
|
||||
syn match swiftType contained skipwhite skipempty nextgroup=swiftTypeParameters
|
||||
\ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/
|
||||
" [Type:Type] (dictionary) or [Type] (array)
|
||||
syn region swiftType contained contains=swiftTypePair,swiftType
|
||||
\ matchgroup=Delimiter start=/\[/ end=/\]/
|
||||
syn match swiftTypePair contained skipwhite skipempty nextgroup=swiftTypeParameters,swiftTypeDeclaration
|
||||
\ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/
|
||||
" (Type[, Type]) (tuple)
|
||||
" FIXME: we should be able to use skip="," and drop swiftParamDelim
|
||||
syn region swiftType contained contains=swiftType,swiftParamDelim
|
||||
\ matchgroup=Delimiter start="[^@]\?(" end=")" matchgroup=NONE skip=","
|
||||
syn match swiftParamDelim contained
|
||||
\ /,/
|
||||
" <Generic Clause> (generics)
|
||||
syn region swiftTypeParameters contained contains=swiftVarName,swiftConstraint
|
||||
\ matchgroup=Delimiter start="<" end=">" matchgroup=NONE skip=","
|
||||
syn keyword swiftConstraint contained
|
||||
\ where
|
||||
|
||||
syn match swiftTypeAliasValue skipwhite skipempty nextgroup=swiftType
|
||||
\ /=/
|
||||
syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType,swiftInOutKeyword
|
||||
\ /:/
|
||||
syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType
|
||||
\ /->/
|
||||
|
||||
syn match swiftKeyword
|
||||
\ /\<case\>/
|
||||
syn region swiftCaseLabelRegion
|
||||
\ matchgroup=swiftKeyword start=/\<case\>/ matchgroup=Delimiter end=/:/ oneline contains=TOP
|
||||
syn region swiftDefaultLabelRegion
|
||||
\ matchgroup=swiftKeyword start=/\<default\>/ matchgroup=Delimiter end=/:/ oneline
|
||||
|
||||
syn region swiftParenthesisRegion contains=TOP
|
||||
\ matchgroup=NONE start=/(/ end=/)/
|
||||
|
||||
syn region swiftString contains=swiftInterpolationRegion
|
||||
\ start=/"/ skip=/\\\\\|\\"/ end=/"/
|
||||
syn region swiftInterpolationRegion contained contains=TOP
|
||||
\ matchgroup=swiftInterpolation start=/\\(/ end=/)/
|
||||
syn region swiftComment contains=swiftComment,swiftLineComment,swiftTodo
|
||||
\ start="/\*" end="\*/"
|
||||
syn region swiftLineComment contains=swiftComment,swiftTodo
|
||||
\ start="//" end="$"
|
||||
|
||||
syn match swiftDecimal
|
||||
\ /[+\-]\?\<\([0-9][0-9_]*\)\([.][0-9_]*\)\?\([eE][+\-]\?[0-9][0-9_]*\)\?\>/
|
||||
syn match swiftHex
|
||||
\ /[+\-]\?\<0x[0-9A-Fa-f][0-9A-Fa-f_]*\(\([.][0-9A-Fa-f_]*\)\?[pP][+\-]\?[0-9][0-9_]*\)\?\>/
|
||||
syn match swiftOct
|
||||
\ /[+\-]\?\<0o[0-7][0-7_]*\>/
|
||||
syn match swiftBin
|
||||
\ /[+\-]\?\<0b[01][01_]*\>/
|
||||
|
||||
syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters
|
||||
\ "\.\@<!\.\.\.\@!\|[/=\-+*%<>!&|^~]\@<!\(/[/*]\@![/=\-+*%<>!&|^~]*\|*/\@![/=\-+*%<>!&|^~]*\|->\@![/=\-+*%<>!&|^~]*\|[=+%<>!&|^~][/=\-+*%<>!&|^~]*\)"
|
||||
syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters
|
||||
\ "\.\.[<.]"
|
||||
|
||||
syn match swiftChar
|
||||
\ /'\([^'\\]\|\\\(["'tnr0\\]\|x[0-9a-fA-F]\{2}\|u[0-9a-fA-F]\{4}\|U[0-9a-fA-F]\{8}\)\)'/
|
||||
|
||||
syn match swiftTupleIndexNumber contains=swiftDecimal
|
||||
\ /\.[0-9]\+/
|
||||
syn match swiftDecimal contained
|
||||
\ /[0-9]\+/
|
||||
|
||||
syn match swiftPreproc
|
||||
\ /#\(\<file\>\|\<line\>\|\<function\>\)/
|
||||
syn match swiftPreproc
|
||||
\ /^\s*#\(\<if\>\|\<else\>\|\<elseif\>\|\<endif\>\|\<error\>\|\<warning\>\)/
|
||||
syn region swiftPreprocFalse
|
||||
\ start="^\s*#\<if\>\s\+\<false\>" end="^\s*#\(\<else\>\|\<elseif\>\|\<endif\>\)"
|
||||
|
||||
syn match swiftAttribute
|
||||
\ /@\<\w\+\>/ skipwhite skipempty nextgroup=swiftType,swiftTypeDefinition
|
||||
|
||||
syn keyword swiftTodo MARK TODO FIXME contained
|
||||
|
||||
syn match swiftCastOp skipwhite skipempty nextgroup=swiftType
|
||||
\ "\<is\>"
|
||||
syn match swiftCastOp skipwhite skipempty nextgroup=swiftType
|
||||
\ "\<as\>[!?]\?"
|
||||
|
||||
syn match swiftNilOps
|
||||
\ "??"
|
||||
|
||||
syn region swiftReservedIdentifier oneline
|
||||
\ start=/`/ end=/`/
|
||||
|
||||
hi def link swiftImport Include
|
||||
hi def link swiftImportModule Title
|
||||
hi def link swiftImportComponent Identifier
|
||||
hi def link swiftKeyword Statement
|
||||
hi def link swiftMultiwordKeyword Statement
|
||||
hi def link swiftTypeDefinition Define
|
||||
hi def link swiftMultiwordTypeDefinition Define
|
||||
hi def link swiftType Type
|
||||
hi def link swiftTypePair Type
|
||||
hi def link swiftTypeAliasName Identifier
|
||||
hi def link swiftTypeName Function
|
||||
hi def link swiftConstraint Special
|
||||
hi def link swiftFuncDefinition Define
|
||||
hi def link swiftDefinitionModifier Operator
|
||||
hi def link swiftInOutKeyword Define
|
||||
hi def link swiftFuncKeyword Function
|
||||
hi def link swiftFuncKeywordGeneral Function
|
||||
hi def link swiftTypeAliasDefinition Define
|
||||
hi def link swiftVarDefinition Define
|
||||
hi def link swiftVarName Identifier
|
||||
hi def link swiftImplicitVarName Identifier
|
||||
hi def link swiftIdentifierKeyword Identifier
|
||||
hi def link swiftTypeAliasValue Delimiter
|
||||
hi def link swiftTypeDeclaration Delimiter
|
||||
hi def link swiftTypeParameters Delimiter
|
||||
hi def link swiftBoolean Boolean
|
||||
hi def link swiftString String
|
||||
hi def link swiftInterpolation Special
|
||||
hi def link swiftComment Comment
|
||||
hi def link swiftLineComment Comment
|
||||
hi def link swiftDecimal Number
|
||||
hi def link swiftHex Number
|
||||
hi def link swiftOct Number
|
||||
hi def link swiftBin Number
|
||||
hi def link swiftOperator Function
|
||||
hi def link swiftChar Character
|
||||
hi def link swiftLabel Operator
|
||||
hi def link swiftMutating Statement
|
||||
hi def link swiftPreproc PreCondit
|
||||
hi def link swiftPreprocFalse Comment
|
||||
hi def link swiftAttribute Type
|
||||
hi def link swiftTodo Todo
|
||||
hi def link swiftNil Constant
|
||||
hi def link swiftCastOp Operator
|
||||
hi def link swiftNilOps Operator
|
||||
hi def link swiftScope PreProc
|
||||
|
||||
let b:current_syntax = "swift"
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
24
runtime/syntax/swiftgyb.vim
Normal file
24
runtime/syntax/swiftgyb.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
" This source file is part of the Swift.org open source project
|
||||
"
|
||||
" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
|
||||
" Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
"
|
||||
" See https://swift.org/LICENSE.txt for license information
|
||||
" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
"
|
||||
" Vim syntax file
|
||||
" Language: gyb on swift
|
||||
"
|
||||
" Vim maintainer: Emir SARI <bitigchi@me.com>
|
||||
|
||||
runtime! syntax/swift.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syn include @Python syntax/python.vim
|
||||
syn region pythonCode matchgroup=gybPythonCode start=+^ *%+ end=+$+ contains=@Python keepend
|
||||
syn region pythonCode matchgroup=gybPythonCode start=+%{+ end=+}%+ contains=@Python keepend
|
||||
syn match gybPythonCode /\${[^}]*}/
|
||||
hi def link gybPythonCode CursorLineNr
|
||||
|
||||
let b:current_syntax = "swiftgyb"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim syntax support file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2001 Sep 12
|
||||
" Last Change: 2020 Feb 13
|
||||
|
||||
" This file sets up the default methods for highlighting.
|
||||
" It is loaded from "synload.vim" and from Vim for ":syntax reset".
|
||||
@@ -43,10 +43,12 @@ if &background == "dark"
|
||||
else
|
||||
SynColor Comment term=bold cterm=NONE ctermfg=DarkBlue ctermbg=NONE gui=NONE guifg=Blue guibg=NONE
|
||||
SynColor Constant term=underline cterm=NONE ctermfg=DarkRed ctermbg=NONE gui=NONE guifg=Magenta guibg=NONE
|
||||
SynColor Special term=bold cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=SlateBlue guibg=NONE
|
||||
" #6a5acd is SlateBlue
|
||||
SynColor Special term=bold cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=#6a5acd guibg=NONE
|
||||
SynColor Identifier term=underline cterm=NONE ctermfg=DarkCyan ctermbg=NONE gui=NONE guifg=DarkCyan guibg=NONE
|
||||
SynColor Statement term=bold cterm=NONE ctermfg=Brown ctermbg=NONE gui=bold guifg=Brown guibg=NONE
|
||||
SynColor PreProc term=underline cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=Purple guibg=NONE
|
||||
" #6a0dad is Purple
|
||||
SynColor PreProc term=underline cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=#6a0dad guibg=NONE
|
||||
SynColor Type term=underline cterm=NONE ctermfg=DarkGreen ctermbg=NONE gui=bold guifg=SeaGreen guibg=NONE
|
||||
SynColor Underlined term=underline cterm=underline ctermfg=DarkMagenta gui=underline guifg=SlateBlue
|
||||
SynColor Ignore term=NONE cterm=NONE ctermfg=white ctermbg=NONE gui=NONE guifg=bg guibg=NONE
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Language: tags
|
||||
" Maintainer: Charles E. Campbell <NdrOchip@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Oct 26, 2016
|
||||
" Version: 7
|
||||
" Version: 8
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: TeX
|
||||
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
|
||||
" Last Change: May 14, 2019
|
||||
" Version: 114
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Jan 24, 2020
|
||||
" Version: 116
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
||||
"
|
||||
" Notes: {{{1
|
||||
@@ -147,6 +147,11 @@ if exists("g:tex_nospell") && g:tex_nospell
|
||||
else
|
||||
let s:tex_nospell = 0
|
||||
endif
|
||||
if exists("g:tex_excludematcher")
|
||||
let s:tex_excludematcher= g:tex_excludematcher
|
||||
else
|
||||
let s:tex_excludematcher= 0
|
||||
endif
|
||||
|
||||
" Clusters: {{{1
|
||||
" --------
|
||||
@@ -156,8 +161,12 @@ if !s:tex_no_error
|
||||
endif
|
||||
syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
|
||||
syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texEmphStyle,texNoSpell
|
||||
syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell
|
||||
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texEmphStyle,texItalBoldStyle,texNoSpell
|
||||
syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell
|
||||
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texEmphStyle,texItalBoldStyle,texNoSpell
|
||||
if !s:tex_excludematcher
|
||||
syn cluster texBoldGroup add=texMatcher
|
||||
syn cluster texItalGroup add=texMatcher
|
||||
endif
|
||||
if !s:tex_nospell
|
||||
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
||||
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
||||
@@ -305,11 +314,6 @@ if s:tex_conceal !~# 'b'
|
||||
endif
|
||||
syn match texTypeStyle "\\textmd\>"
|
||||
syn match texTypeStyle "\\textrm\>"
|
||||
syn match texTypeStyle "\\textsc\>"
|
||||
syn match texTypeStyle "\\textsf\>"
|
||||
syn match texTypeStyle "\\textsl\>"
|
||||
syn match texTypeStyle "\\texttt\>"
|
||||
syn match texTypeStyle "\\textup\>"
|
||||
|
||||
syn match texTypeStyle "\\mathbb\>"
|
||||
syn match texTypeStyle "\\mathbf\>"
|
||||
@@ -386,12 +390,18 @@ if s:tex_fast =~# 'b'
|
||||
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
||||
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\emph\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\texts[cfl]\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\textup\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\texttt\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
||||
else
|
||||
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup
|
||||
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
||||
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
||||
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\emph\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\texts[cfl]\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texEmphGroup
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\textup\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texEmphGroup
|
||||
syn region texEmphStyle matchgroup=texTypeStyle start="\\texttt\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texEmphGroup
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -624,7 +634,7 @@ if s:tex_fast =~# 'r'
|
||||
syn region texRefOption contained matchgroup=Delimiter start='\[' end=']' contains=@texRefGroup,texRefZone nextgroup=texRefOption,texCite
|
||||
syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texRefZone,texCite
|
||||
endif
|
||||
syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
|
||||
syn match texRefZone '\\cite\%([tp]\*\=\)\=\>' nextgroup=texRefOption,texCite
|
||||
|
||||
" Handle newcommand, newenvironment : {{{1
|
||||
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.0 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: November 29, 2019
|
||||
" Version: 8.0-28
|
||||
" Version: 8.0-29
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@@ -26,6 +26,7 @@ syn keyword vimCommand contained abo[veleft] argdo au bel[owright] bp[revious] b
|
||||
syn keyword vimCommand contained addd arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cn[ext] colo[rscheme] cons[t] cs d[elete] deletel delm[arks] diffo[ff] dir doaut ea el[se] endt[ry] exu[sage] fin[d] foldc[lose] g h[elp] hi if intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcd ter[minal] tlm tlunmenu tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xmapc[lear] xprop y[ank]
|
||||
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] com cope[n] cscope debug deletep delp diffp[atch] dj[ump] dp earlier elsei[f] endw[hile] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong]
|
||||
syn match vimCommand contained "\<z[-+^.=]\=\>"
|
||||
syn keyword vimCommand contained def endd[ef] disa[ssemble] vim9[script] imp[ort] exp[ort]
|
||||
syn keyword vimStdPlugin contained Arguments Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Winbar XMLent XMLns
|
||||
|
||||
" vimOptions are caught only when contained in a vimSet {{{2
|
||||
@@ -237,16 +238,17 @@ endif
|
||||
" =========
|
||||
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
|
||||
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLetHereDoc,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
|
||||
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
|
||||
syn match vimFunction "\<\(fu\%[nction]\|def\)!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
|
||||
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
|
||||
syn region vimFuncBody contained fold start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
|
||||
syn region vimFuncBody contained fold start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\|enddef\>\)" contains=@vimFuncBodyList
|
||||
else
|
||||
syn region vimFuncBody contained start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
|
||||
syn region vimFuncBody contained start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\|enddef\>\)" contains=@vimFuncBodyList
|
||||
endif
|
||||
syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)"
|
||||
syn match vimFuncSID contained "\c<sid>\|\<s:"
|
||||
syn keyword vimFuncKey contained fu[nction]
|
||||
syn keyword vimFuncKey contained def
|
||||
syn match vimFuncBlank contained "\s\+"
|
||||
|
||||
syn keyword vimPattern contained start skip end
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: xmath (a simulation tool)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 9
|
||||
" Version: 10
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XMATH
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
" Vim syntax file
|
||||
" Language: XSLT
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Sun, 28 Oct 2001 21:22:24 +0100
|
||||
" Maintainer: Bogdan Barbu <l4b.bogdan.barbu@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Fri, 17 Jan 2020 07:15:37 +0200
|
||||
" Filenames: *.xsl
|
||||
" $Id: xslt.vim,v 1.1 2004/06/13 15:52:10 vimboss Exp $
|
||||
|
||||
" REFERENCES:
|
||||
" [1] http://www.w3.org/TR/xslt
|
||||
"
|
||||
" [2] http://www.w3.org/TR/xslt20
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -19,11 +20,13 @@ runtime syntax/xml.vim
|
||||
syn cluster xmlTagHook add=xslElement
|
||||
syn case match
|
||||
|
||||
syn match xslElement '\%(xsl:\)\@<=analyze-string'
|
||||
syn match xslElement '\%(xsl:\)\@<=apply-imports'
|
||||
syn match xslElement '\%(xsl:\)\@<=apply-templates'
|
||||
syn match xslElement '\%(xsl:\)\@<=attribute'
|
||||
syn match xslElement '\%(xsl:\)\@<=attribute-set'
|
||||
syn match xslElement '\%(xsl:\)\@<=call-template'
|
||||
syn match xslElement '\%(xsl:\)\@<=character-map'
|
||||
syn match xslElement '\%(xsl:\)\@<=choose'
|
||||
syn match xslElement '\%(xsl:\)\@<=comment'
|
||||
syn match xslElement '\%(xsl:\)\@<=copy'
|
||||
@@ -33,19 +36,25 @@ syn match xslElement '\%(xsl:\)\@<=document'
|
||||
syn match xslElement '\%(xsl:\)\@<=element'
|
||||
syn match xslElement '\%(xsl:\)\@<=fallback'
|
||||
syn match xslElement '\%(xsl:\)\@<=for-each'
|
||||
syn match xslElement '\%(xsl:\)\@<=for-each-group'
|
||||
syn match xslElement '\%(xsl:\)\@<=function'
|
||||
syn match xslElement '\%(xsl:\)\@<=if'
|
||||
syn match xslElement '\%(xsl:\)\@<=include'
|
||||
syn match xslElement '\%(xsl:\)\@<=import'
|
||||
syn match xslElement '\%(xsl:\)\@<=import-schema'
|
||||
syn match xslElement '\%(xsl:\)\@<=key'
|
||||
syn match xslElement '\%(xsl:\)\@<=message'
|
||||
syn match xslElement '\%(xsl:\)\@<=namespace'
|
||||
syn match xslElement '\%(xsl:\)\@<=namespace-alias'
|
||||
syn match xslElement '\%(xsl:\)\@<=number'
|
||||
syn match xslElement '\%(xsl:\)\@<=otherwise'
|
||||
syn match xslElement '\%(xsl:\)\@<=output'
|
||||
syn match xslElement '\%(xsl:\)\@<=param'
|
||||
syn match xslElement '\%(xsl:\)\@<=perform-sort'
|
||||
syn match xslElement '\%(xsl:\)\@<=processing-instruction'
|
||||
syn match xslElement '\%(xsl:\)\@<=preserve-space'
|
||||
syn match xslElement '\%(xsl:\)\@<=script'
|
||||
syn match xslElement '\%(xsl:\)\@<=sequence'
|
||||
syn match xslElement '\%(xsl:\)\@<=sort'
|
||||
syn match xslElement '\%(xsl:\)\@<=strip-space'
|
||||
syn match xslElement '\%(xsl:\)\@<=stylesheet'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: bin using xxd
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Aug 31, 2016
|
||||
" Version: 10
|
||||
" Version: 11
|
||||
" Notes: use :help xxd to see how to invoke it
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XXD
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Yacc
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Mar 25, 2019
|
||||
" Version: 16
|
||||
" Version: 17
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_YACC
|
||||
"
|
||||
" Options: {{{1
|
||||
|
||||
@@ -625,7 +625,7 @@ NOTA: El fichero recuperado se sit
|
||||
|
||||
4. Para abrir una línea por encima del cursor, simplemente pulse una O
|
||||
mayúscula, en lugar de una o minúscula. Pruebe este en la línea siguiente.
|
||||
Abra una línea sobre ésta pulsando Mayu-O cuando el curso está en esta línea.
|
||||
Abra una línea sobre ésta pulsando Mayu-O cuando el cursor está en esta línea.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lección 6.2: EL MANDATO «APPEND» (añadir)
|
||||
@@ -662,7 +662,7 @@ Nota:
|
||||
|
||||
3. Ahora pulse R y sustituya el resto del texto de la primera línea
|
||||
escribiendo sobre el viejo texto para que la primera línea sea igual
|
||||
que la primera.
|
||||
que la segunda.
|
||||
|
||||
---> Para hacer que esta línea sea igual que la anterior use las teclas.
|
||||
---> Para hacer que esta línea sea igual que la siguiente escriba R y el texto.
|
||||
|
||||
@@ -625,7 +625,7 @@ NOTA: El fichero recuperado se sitúa a partir de la posición del cursor.
|
||||
|
||||
4. Para abrir una línea por encima del cursor, simplemente pulse una O
|
||||
mayúscula, en lugar de una o minúscula. Pruebe este en la línea siguiente.
|
||||
Abra una línea sobre ésta pulsando Mayu-O cuando el curso está en esta línea.
|
||||
Abra una línea sobre ésta pulsando Mayu-O cuando el cursor está en esta línea.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lección 6.2: EL MANDATO «APPEND» (añadir)
|
||||
@@ -662,7 +662,7 @@ Nota: ¡Esto evita el pulsar i , el último carácter, el texto a insertar,
|
||||
|
||||
3. Ahora pulse R y sustituya el resto del texto de la primera línea
|
||||
escribiendo sobre el viejo texto para que la primera línea sea igual
|
||||
que la primera.
|
||||
que la segunda.
|
||||
|
||||
---> Para hacer que esta línea sea igual que la anterior use las teclas.
|
||||
---> Para hacer que esta línea sea igual que la siguiente escriba R y el texto.
|
||||
|
||||
@@ -131,8 +131,8 @@ NOTA: Enquanto segue este tutorial, n
|
||||
|
||||
---> Há algum texto faltando nes
|
||||
Há algum texto faltando nesta linha.
|
||||
Há algum texto faltan
|
||||
---> Há algum texto faltando aqui.
|
||||
---> Há algum texto faltan
|
||||
Há algum texto faltando aqui.
|
||||
|
||||
5. Quando se sentir confortável adicionando texto, vá para a Lição 1.6.
|
||||
|
||||
|
||||
@@ -131,8 +131,8 @@ NOTA: Enquanto segue este tutorial, não tente memorizar, aprenda pelo uso.
|
||||
|
||||
---> Há algum texto faltando nes
|
||||
Há algum texto faltando nesta linha.
|
||||
Há algum texto faltan
|
||||
---> Há algum texto faltando aqui.
|
||||
---> Há algum texto faltan
|
||||
Há algum texto faltando aqui.
|
||||
|
||||
5. Quando se sentir confortável adicionando texto, vá para a Lição 1.6.
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
" for Unix: ~/.vimrc
|
||||
" for Amiga: s:.vimrc
|
||||
" for MS-Windows: $VIM\_vimrc
|
||||
" for Haiku: ~/config/settings/vim/vimrc
|
||||
" for OpenVMS: sys$login:.vimrc
|
||||
|
||||
" When started as "evim", evim.vim will already have done these settings, bail
|
||||
|
||||
@@ -10,6 +10,9 @@ TARGETOS = WINNT
|
||||
!ifndef APPVER
|
||||
APPVER = 5.01
|
||||
!endif
|
||||
!ifndef WINVER
|
||||
WINVER = 0x0501
|
||||
!endif
|
||||
|
||||
!if "$(DEBUG)" != "yes"
|
||||
NODEBUG = 1
|
||||
@@ -53,6 +56,13 @@ olelibsdll = ole32.lib uuid.lib oleaut32.lib user32.lib gdi32.lib advapi32.lib
|
||||
# include CPUARG
|
||||
cflags = $(cflags) $(CPUARG)
|
||||
|
||||
# set WINVER and _WIN32_WINNT
|
||||
cflags = $(cflags) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
|
||||
|
||||
!if "$(CL)" == "/D_USING_V110_SDK71_"
|
||||
rcflags = $(rcflags) /D_USING_V110_SDK71_
|
||||
!endif
|
||||
|
||||
SUBSYSTEM = console
|
||||
!if "$(SUBSYSTEM_VER)" != ""
|
||||
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
|
||||
|
||||
@@ -16,7 +16,7 @@ See INSTALLvms.txt for VMS
|
||||
See INSTALLx.txt for cross-compiling on Unix
|
||||
See ../READMEdir/README_390.txt for z/OS and OS/390 Unix
|
||||
See ../runtime/doc/os_beos.txt for BeBox
|
||||
|
||||
See ../runtime/doc/os_haiku.txt for Haiku
|
||||
|
||||
1. Generic
|
||||
==========
|
||||
|
||||
@@ -957,6 +957,7 @@ correct directory structure.
|
||||
|
||||
Copy the "runtime" files into "vim82":
|
||||
copy runtime\* vim82
|
||||
xcopy /s runtime\* vim82
|
||||
|
||||
B. Copy the new binaries into the "vim82" directory
|
||||
----------------------------------------------------
|
||||
|
||||
@@ -198,7 +198,7 @@ from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
|
||||
more information can be found in os_vms_fix.com file itself.
|
||||
|
||||
NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
|
||||
leave singe (long) line directives. You have to fix them manually.
|
||||
leave single (long) line directives. You have to fix them manually.
|
||||
Known problematic files are option.h and option.c
|
||||
|
||||
4.2. After the conversion you can continue building as it has been described
|
||||
@@ -319,7 +319,7 @@ perl_env :
|
||||
|
||||
Build it as normally.
|
||||
|
||||
Used sharable images are:
|
||||
Used shareable images are:
|
||||
gtk_root:[glib]libglib.exe /share,-
|
||||
gtk_root:[glib.gmodule]libgmodule.exe /share,-
|
||||
gtk_root:[gtk.gdk]libgdk.exe /share,-
|
||||
|
||||
@@ -783,11 +783,15 @@ OBJ = \
|
||||
$(OUTDIR)/term.o \
|
||||
$(OUTDIR)/testing.o \
|
||||
$(OUTDIR)/textprop.o \
|
||||
$(OUTDIR)/time.o \
|
||||
$(OUTDIR)/ui.o \
|
||||
$(OUTDIR)/undo.o \
|
||||
$(OUTDIR)/usercmd.o \
|
||||
$(OUTDIR)/userfunc.o \
|
||||
$(OUTDIR)/version.o \
|
||||
$(OUTDIR)/vim9compile.o \
|
||||
$(OUTDIR)/vim9execute.o \
|
||||
$(OUTDIR)/vim9script.o \
|
||||
$(OUTDIR)/viminfo.o \
|
||||
$(OUTDIR)/winclip.o \
|
||||
$(OUTDIR)/window.o
|
||||
@@ -1153,6 +1157,12 @@ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/version.o: version.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/vim9compile.o: vim9compile.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/vim9execute.o: vim9execute.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/vim9script.o: vim9script.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/viminfo.o: viminfo.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp gui_dwrite.h
|
||||
|
||||
@@ -102,6 +102,7 @@ SRC = arabic.c \
|
||||
term.c \
|
||||
testing.c \
|
||||
textprop.c \
|
||||
time.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#
|
||||
# OLE interface: OLE=yes (usually with GUI=yes)
|
||||
#
|
||||
# IME support: IME=yes (requires GUI=yes)
|
||||
# IME support: IME=yes (default is yes)
|
||||
# DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default
|
||||
# is yes)
|
||||
# Global IME support: GIME=yes (requires GUI=yes)
|
||||
@@ -626,6 +626,12 @@ NODEFAULTLIB =
|
||||
NODEFAULTLIB = /nodefaultlib
|
||||
!endif
|
||||
|
||||
# Specify source code charset to suppress warning C4819 on non-English
|
||||
# environment. Only available from MSVC 14.
|
||||
!if $(MSVC_MAJOR) >= 14
|
||||
CFLAGS = $(CFLAGS) /source-charset:utf-8
|
||||
!endif
|
||||
|
||||
# Use multiprocess build on MSVC 10
|
||||
!if ("$(USE_MP)" == "yes") && ($(MSVC_MAJOR) >= 10)
|
||||
CFLAGS = $(CFLAGS) /MP
|
||||
@@ -666,6 +672,9 @@ CFLAGS = $(CFLAGS) $(WP64CHECK)
|
||||
|
||||
CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
|
||||
RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
|
||||
! if "$(CL)" == "/D_USING_V110_SDK71_"
|
||||
RCFLAGS = $(RCFLAGS) /D_USING_V110_SDK71_
|
||||
! endif
|
||||
! ifdef USE_MSVCRT
|
||||
CFLAGS = $(CFLAGS) /MD
|
||||
LIBC = msvcrt.lib
|
||||
@@ -695,6 +704,12 @@ CFLAGS = $(CFLAGS) /Zl /MTd
|
||||
! endif
|
||||
!endif # DEBUG
|
||||
|
||||
!if $(MSVC_MAJOR) >= 8
|
||||
# Visual Studio 2005 has 'deprecated' many of the standard CRT functions
|
||||
CFLAGS_DEPR = /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
|
||||
CFLAGS = $(CFLAGS) $(CFLAGS_DEPR)
|
||||
!endif
|
||||
|
||||
!include Make_all.mak
|
||||
!include testdir\Make_all.mak
|
||||
|
||||
@@ -787,10 +802,14 @@ OBJ = \
|
||||
$(OUTDIR)\term.obj \
|
||||
$(OUTDIR)\testing.obj \
|
||||
$(OUTDIR)\textprop.obj \
|
||||
$(OUTDIR)\time.obj \
|
||||
$(OUTDIR)\ui.obj \
|
||||
$(OUTDIR)\undo.obj \
|
||||
$(OUTDIR)\usercmd.obj \
|
||||
$(OUTDIR)\userfunc.obj \
|
||||
$(OUTDIR)\vim9compile.obj \
|
||||
$(OUTDIR)\vim9execute.obj \
|
||||
$(OUTDIR)\vim9script.obj \
|
||||
$(OUTDIR)\viminfo.obj \
|
||||
$(OUTDIR)\winclip.obj \
|
||||
$(OUTDIR)\window.obj \
|
||||
@@ -812,6 +831,9 @@ OLE_IDL = if_ole.idl
|
||||
OLE_LIB = oleaut32.lib
|
||||
!endif
|
||||
|
||||
!ifndef IME
|
||||
IME = yes
|
||||
!endif
|
||||
!if "$(IME)" == "yes"
|
||||
CFLAGS = $(CFLAGS) -DFEAT_MBYTE_IME
|
||||
! ifndef DYNAMIC_IME
|
||||
@@ -1340,15 +1362,17 @@ $(VIM): $(VIM).exe
|
||||
$(OUTDIR):
|
||||
if not exist $(OUTDIR)/nul mkdir $(OUTDIR)
|
||||
|
||||
CFLAGS_INST = /nologo /O2 -DNDEBUG -DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) $(CFLAGS_DEPR)
|
||||
|
||||
install.exe: dosinst.c dosinst.h version.h
|
||||
$(CC) /nologo -DNDEBUG -DWIN32 dosinst.c kernel32.lib shell32.lib \
|
||||
$(CC) $(CFLAGS_INST) dosinst.c kernel32.lib shell32.lib \
|
||||
user32.lib ole32.lib advapi32.lib uuid.lib \
|
||||
-link -subsystem:$(SUBSYSTEM_TOOLS)
|
||||
- if exist install.exe del install.exe
|
||||
ren dosinst.exe install.exe
|
||||
|
||||
uninstall.exe: uninstall.c dosinst.h version.h
|
||||
$(CC) /nologo -DNDEBUG -DWIN32 uninstall.c shell32.lib advapi32.lib \
|
||||
$(CC) $(CFLAGS_INST) uninstall.c shell32.lib advapi32.lib \
|
||||
-link -subsystem:$(SUBSYSTEM_TOOLS)
|
||||
|
||||
vimrun.exe: vimrun.c
|
||||
@@ -1578,7 +1602,7 @@ $(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c $(INCL)
|
||||
$(CC) $(CFLAGS_OUTDIR) $(LUA_INC) if_lua.c
|
||||
|
||||
auto/if_perl.c : if_perl.xs typemap
|
||||
-mkdir auto
|
||||
-if not exist auto/nul mkdir auto
|
||||
$(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
|
||||
-typemap typemap if_perl.xs -output $@
|
||||
|
||||
@@ -1713,6 +1737,8 @@ $(OUTDIR)/term.obj: $(OUTDIR) testing.c $(INCL)
|
||||
|
||||
$(OUTDIR)/textprop.obj: $(OUTDIR) textprop.c $(INCL)
|
||||
|
||||
$(OUTDIR)/time.obj: $(OUTDIR) time.c $(INCL)
|
||||
|
||||
$(OUTDIR)/ui.obj: $(OUTDIR) ui.c $(INCL)
|
||||
|
||||
$(OUTDIR)/undo.obj: $(OUTDIR) undo.c $(INCL)
|
||||
@@ -1723,6 +1749,12 @@ $(OUTDIR)/userfunc.obj: $(OUTDIR) userfunc.c $(INCL)
|
||||
|
||||
$(OUTDIR)/version.obj: $(OUTDIR) version.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/vim9compile.obj: $(OUTDIR) vim9compile.c $(INCL)
|
||||
|
||||
$(OUTDIR)/vim9execute.obj: $(OUTDIR) vim9execute.c $(INCL)
|
||||
|
||||
$(OUTDIR)/vim9script.obj: $(OUTDIR) vim9script.c $(INCL)
|
||||
|
||||
$(OUTDIR)/viminfo.obj: $(OUTDIR) viminfo.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/window.obj: $(OUTDIR) window.c $(INCL)
|
||||
@@ -1900,10 +1932,14 @@ proto.h: \
|
||||
proto/term.pro \
|
||||
proto/testing.pro \
|
||||
proto/textprop.pro \
|
||||
proto/time.pro \
|
||||
proto/ui.pro \
|
||||
proto/undo.pro \
|
||||
proto/usercmd.pro \
|
||||
proto/userfunc.pro \
|
||||
proto/vim9compile.pro \
|
||||
proto/vim9execute.pro \
|
||||
proto/vim9script.pro \
|
||||
proto/viminfo.pro \
|
||||
proto/window.pro \
|
||||
$(SOUND_PRO) \
|
||||
|
||||
@@ -281,7 +281,7 @@ ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
|
||||
$(TCL_INC)$(XDIFF_INC)$(XPM_INC))
|
||||
|
||||
# CFLAGS displayed in :ver information
|
||||
# It is specially formated for correct display of unix like includes
|
||||
# It is specially formatted for correct display of unix like includes
|
||||
# as $(GUI_INC) - replaced with $(GUI_INC_VER)
|
||||
# Otherwise should not be any other difference.
|
||||
ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
|
||||
@@ -381,11 +381,15 @@ SRC = \
|
||||
termlib.c \
|
||||
testing.c \
|
||||
textprop.c \
|
||||
time.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
userfunc.c \
|
||||
version.c \
|
||||
vim9compile.c \
|
||||
vim9execute.c \
|
||||
vim9script.c \
|
||||
viminfo.c \
|
||||
window.c \
|
||||
$(GUI_SRC) \
|
||||
@@ -484,11 +488,15 @@ OBJ = \
|
||||
termlib.obj \
|
||||
testing.obj \
|
||||
textprop.obj \
|
||||
time.obj \
|
||||
ui.obj \
|
||||
undo.obj \
|
||||
usercmd.obj \
|
||||
userfunc.obj \
|
||||
version.obj \
|
||||
vim9compile.obj \
|
||||
vim9execute.obj \
|
||||
vim9script.obj \
|
||||
viminfo.obj \
|
||||
window.obj \
|
||||
$(GUI_OBJ) \
|
||||
@@ -972,6 +980,9 @@ testing.obj : testing.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h
|
||||
time.obj : time.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h
|
||||
ui.obj : ui.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h
|
||||
@@ -994,6 +1005,18 @@ viminfo.obj : viminfo.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h version.h
|
||||
vim9compile.obj : vim9compile.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h version.h
|
||||
vim9execute.obj : vim9execute.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h version.h
|
||||
vim9script.obj : vim9script.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h version.h
|
||||
window.obj : window.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
|
||||
157
src/Makefile
157
src/Makefile
@@ -1385,6 +1385,20 @@ CARBONGUI_BUNDLE = gui_bundle
|
||||
APPDIR = $(VIMNAME).app
|
||||
CARBONGUI_TESTARG = VIMPROG=../$(APPDIR)/Contents/MacOS/$(VIMTARGET)
|
||||
|
||||
### Haiku GUI
|
||||
HAIKUGUI_SRC = gui.c gui_haiku.cc
|
||||
HAIKUGUI_OBJ = objects/gui.o objects/gui_haiku.o
|
||||
HAIKUGUI_DEFS = -DFEAT_GUI_HAIKU
|
||||
HAIKUGUI_IPATH =
|
||||
HAIKUGUI_LIBS_DIR =
|
||||
HAIKUGUI_LIBS1 = -lbe -lroot -ltracker -ltranslation -lsupc++ -lstdc++
|
||||
HAIKUGUI_LIBS2 =
|
||||
HAIKUGUI_INSTALL = install_normal install_haiku_extra
|
||||
HAIKUGUI_TARGETS = installglinks_haiku
|
||||
HAIKUGUI_MAN_TARGETS =
|
||||
HAIKUGUI_TESTTARGET = gui
|
||||
HAIKUGUI_BUNDLE =
|
||||
|
||||
# All GUI files
|
||||
ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_xmdlg.c gui_xmebw.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c
|
||||
ALL_GUI_PRO = gui.pro gui_gtk.pro gui_motif.pro gui_xmdlg.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w32.pro gui_photon.pro
|
||||
@@ -1623,6 +1637,7 @@ BASIC_SRC = \
|
||||
main.c \
|
||||
map.c \
|
||||
mark.c \
|
||||
mbyte.c \
|
||||
memfile.c \
|
||||
memline.c \
|
||||
menu.c \
|
||||
@@ -1631,7 +1646,6 @@ BASIC_SRC = \
|
||||
misc2.c \
|
||||
mouse.c \
|
||||
move.c \
|
||||
mbyte.c \
|
||||
normal.c \
|
||||
ops.c \
|
||||
option.c \
|
||||
@@ -1645,8 +1659,8 @@ BASIC_SRC = \
|
||||
quickfix.c \
|
||||
regexp.c \
|
||||
register.c \
|
||||
scriptfile.c \
|
||||
screen.c \
|
||||
scriptfile.c \
|
||||
search.c \
|
||||
session.c \
|
||||
sha256.c \
|
||||
@@ -1661,11 +1675,15 @@ BASIC_SRC = \
|
||||
terminal.c \
|
||||
testing.c \
|
||||
textprop.c \
|
||||
time.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
userfunc.c \
|
||||
version.c \
|
||||
vim9compile.c \
|
||||
vim9execute.c \
|
||||
vim9script.c \
|
||||
viminfo.c \
|
||||
window.c \
|
||||
bufwrite.c \
|
||||
@@ -1761,13 +1779,13 @@ OBJ_COMMON = \
|
||||
objects/list.o \
|
||||
objects/map.o \
|
||||
objects/mark.o \
|
||||
objects/mbyte.o \
|
||||
objects/memline.o \
|
||||
objects/menu.o \
|
||||
objects/misc1.o \
|
||||
objects/misc2.o \
|
||||
objects/mouse.o \
|
||||
objects/move.o \
|
||||
objects/mbyte.o \
|
||||
objects/normal.o \
|
||||
objects/ops.o \
|
||||
objects/option.o \
|
||||
@@ -1781,8 +1799,8 @@ OBJ_COMMON = \
|
||||
objects/quickfix.o \
|
||||
objects/regexp.o \
|
||||
objects/register.o \
|
||||
objects/scriptfile.o \
|
||||
objects/screen.o \
|
||||
objects/scriptfile.o \
|
||||
objects/search.o \
|
||||
objects/session.o \
|
||||
objects/sha256.o \
|
||||
@@ -1797,11 +1815,15 @@ OBJ_COMMON = \
|
||||
objects/terminal.o \
|
||||
objects/testing.o \
|
||||
objects/textprop.o \
|
||||
objects/time.o \
|
||||
objects/ui.o \
|
||||
objects/undo.o \
|
||||
objects/usercmd.o \
|
||||
objects/userfunc.o \
|
||||
objects/version.o \
|
||||
objects/vim9compile.o \
|
||||
objects/vim9execute.o \
|
||||
objects/vim9script.o \
|
||||
objects/viminfo.o \
|
||||
objects/window.o \
|
||||
objects/bufwrite.o \
|
||||
@@ -1873,9 +1895,12 @@ PRO_AUTO = \
|
||||
arabic.pro \
|
||||
arglist.pro \
|
||||
autocmd.pro \
|
||||
beval.pro \
|
||||
blowfish.pro \
|
||||
buffer.pro \
|
||||
bufwrite.pro \
|
||||
change.pro \
|
||||
channel.pro \
|
||||
charset.pro \
|
||||
cindent.pro \
|
||||
cmdexpand.pro \
|
||||
@@ -1904,6 +1929,7 @@ PRO_AUTO = \
|
||||
findfile.pro \
|
||||
fold.pro \
|
||||
getchar.pro \
|
||||
gui_beval.pro \
|
||||
hardcopy.pro \
|
||||
hashtab.pro \
|
||||
highlight.pro \
|
||||
@@ -1930,6 +1956,7 @@ PRO_AUTO = \
|
||||
misc2.pro \
|
||||
mouse.pro \
|
||||
move.pro \
|
||||
netbeans.pro \
|
||||
normal.pro \
|
||||
ops.pro \
|
||||
option.pro \
|
||||
@@ -1943,8 +1970,8 @@ PRO_AUTO = \
|
||||
quickfix.pro \
|
||||
regexp.pro \
|
||||
register.pro \
|
||||
scriptfile.pro \
|
||||
screen.pro \
|
||||
scriptfile.pro \
|
||||
search.pro \
|
||||
session.pro \
|
||||
sha256.pro \
|
||||
@@ -1960,18 +1987,17 @@ PRO_AUTO = \
|
||||
termlib.pro \
|
||||
testing.pro \
|
||||
textprop.pro \
|
||||
time.pro \
|
||||
ui.pro \
|
||||
undo.pro \
|
||||
usercmd.pro \
|
||||
userfunc.pro \
|
||||
version.pro \
|
||||
vim9compile.pro \
|
||||
vim9execute.pro \
|
||||
vim9script.pro \
|
||||
viminfo.pro \
|
||||
window.pro \
|
||||
bufwrite.pro \
|
||||
beval.pro \
|
||||
gui_beval.pro \
|
||||
netbeans.pro \
|
||||
channel.pro \
|
||||
$(ALL_GUI_PRO) \
|
||||
$(TCL_PRO)
|
||||
|
||||
@@ -3079,6 +3105,9 @@ objects/blowfish.o: blowfish.c
|
||||
objects/buffer.o: buffer.c
|
||||
$(CCC) -o $@ buffer.c
|
||||
|
||||
objects/bufwrite.o: bufwrite.c
|
||||
$(CCC) -o $@ bufwrite.c
|
||||
|
||||
objects/change.o: change.c
|
||||
$(CCC) -o $@ change.c
|
||||
|
||||
@@ -3202,6 +3231,9 @@ objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
|
||||
objects/gui_gtk_x11.o: gui_gtk_x11.c
|
||||
$(CCC) -o $@ gui_gtk_x11.c
|
||||
|
||||
objects/gui_haiku.o: gui_haiku.cc
|
||||
$(CCC) -o $@ gui_haiku.cc
|
||||
|
||||
objects/gui_motif.o: gui_motif.c
|
||||
$(CCC) -o $@ gui_motif.c
|
||||
|
||||
@@ -3334,6 +3366,9 @@ objects/os_beos.o: os_beos.c
|
||||
objects/os_qnx.o: os_qnx.c
|
||||
$(CCC) -o $@ os_qnx.c
|
||||
|
||||
objects/os_haiku.rsrc: os_haiku.rdef
|
||||
cat $< | $(CCC) -E - | grep -v '^#' | rc -o "$@" -
|
||||
|
||||
objects/os_macosx.o: os_macosx.m
|
||||
$(CCC) -o $@ os_macosx.m
|
||||
|
||||
@@ -3421,6 +3456,9 @@ objects/testing.o: testing.c
|
||||
objects/textprop.o: textprop.c
|
||||
$(CCC) -o $@ textprop.c
|
||||
|
||||
objects/time.o: time.c
|
||||
$(CCC) -o $@ time.c
|
||||
|
||||
objects/ui.o: ui.c
|
||||
$(CCC) -o $@ ui.c
|
||||
|
||||
@@ -3433,15 +3471,21 @@ objects/usercmd.o: usercmd.c
|
||||
objects/userfunc.o: userfunc.c
|
||||
$(CCC) -o $@ userfunc.c
|
||||
|
||||
objects/vim9compile.o: vim9compile.c
|
||||
$(CCC) -o $@ vim9compile.c
|
||||
|
||||
objects/vim9execute.o: vim9execute.c
|
||||
$(CCC) -o $@ vim9execute.c
|
||||
|
||||
objects/vim9script.o: vim9script.c
|
||||
$(CCC) -o $@ vim9script.c
|
||||
|
||||
objects/viminfo.o: viminfo.c
|
||||
$(CCC) -o $@ viminfo.c
|
||||
|
||||
objects/window.o: window.c
|
||||
$(CCC) -o $@ window.c
|
||||
|
||||
objects/bufwrite.o: bufwrite.c
|
||||
$(CCC) -o $@ bufwrite.c
|
||||
|
||||
objects/netbeans.o: netbeans.c
|
||||
$(CCC) -o $@ netbeans.c
|
||||
|
||||
@@ -3592,6 +3636,61 @@ $(APPDIR)/Contents:
|
||||
# Dependencies that "make depend" doesn't find
|
||||
objects/gui_gtk_x11.o: version.h
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Haiku installation
|
||||
#
|
||||
# This rule:
|
||||
# - add resources to already installed vim binary to avoid
|
||||
# stripping them during install;
|
||||
# - copy rgb.txt to runtime directory;
|
||||
# - update system MIME database with info about vim application.
|
||||
#
|
||||
install_haiku_extra: $(DEST_BIN)/$(VIMTARGET) objects/os_haiku.rsrc
|
||||
xres -o $(DEST_BIN)/$(VIMTARGET) objects/os_haiku.rsrc
|
||||
$(INSTALL_DATA) $(SCRIPTSOURCE)/rgb.txt $(DEST_RT)
|
||||
mimeset $(DEST_BIN)/$(VIMTARGET)
|
||||
|
||||
# List of g*-links that should be replaced with shell script equivalents.
|
||||
# This solves the problem of them from Tracker.
|
||||
#
|
||||
HAIKU_GLINKS = $(DEST_BIN)/$(GVIMTARGET) \
|
||||
$(DEST_BIN)/$(GVIEWTARGET) \
|
||||
$(DEST_BIN)/$(GVIMDIFFTARGET) \
|
||||
$(DEST_BIN)/$(RGVIMTARGET) \
|
||||
$(DEST_BIN)/$(RGVIEWTARGET)
|
||||
|
||||
# This rule:
|
||||
# - Replace gvim link with copy of vim binary.
|
||||
# - Replace g*-links with shell script equivalents to solve the
|
||||
# problem of calling them from Tracker,
|
||||
# - Add icon resources to mentioned g*-link shell scripts
|
||||
# - in case gui-less vim.con executable available use it.
|
||||
#
|
||||
installglinks_haiku: $(HAIKU_GLINKS) install_haiku_extra
|
||||
@catattr -r "BEOS:ICON" $(DEST_BIN)/$(GVIMTARGET) > ~icon.attr
|
||||
for i in $(HAIKU_GLINKS); do \
|
||||
rm $$i ; \
|
||||
echo "#!/bin/sh" > $$i ; \
|
||||
case $$i in \
|
||||
$(DEST_BIN)/$(GVIMTARGET)) \
|
||||
cp $(DEST_BIN)/$(VIMTARGET) $$i ; \
|
||||
if [ -f $(VIMTARGET).con ] ; then \
|
||||
$(STRIP) $(VIMTARGET).con ; \
|
||||
mv $(VIMTARGET).con $(DEST_BIN)/$(VIMTARGET) ; \
|
||||
fi ;; \
|
||||
$(DEST_BIN)/$(GVIEWTARGET)) printf "%s -R %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \
|
||||
$(DEST_BIN)/$(GVIMDIFFTARGET)) printf "%s -d %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \
|
||||
$(DEST_BIN)/$(RGVIMTARGET)) printf "%s -Z %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \
|
||||
$(DEST_BIN)/$(RGVIEWTARGET)) printf "%s -Z -R %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \
|
||||
*) printf "%s %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \
|
||||
esac ; \
|
||||
chmod $(BINMOD) $$i ; \
|
||||
addattr -f ~icon.attr -t \'VICN\' BEOS:ICON $$i ; \
|
||||
done
|
||||
addattr -f ~icon.attr -t \'VICN\' BEOS:ICON $(DEST_BIN)/$(VIMNAME)tutor
|
||||
@rm ~icon.attr
|
||||
|
||||
###############################################################################
|
||||
### (automatically generated by 'make depend')
|
||||
### Dependencies:
|
||||
@@ -3787,6 +3886,10 @@ objects/mark.o: mark.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/mbyte.o: mbyte.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/memfile.o: memfile.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
@@ -3819,10 +3922,6 @@ objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/mbyte.o: mbyte.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
@@ -3875,14 +3974,14 @@ objects/register.o: register.c vim.h protodef.h auto/config.h feature.h os_unix.
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/scriptfile.o: scriptfile.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/screen.o: screen.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/scriptfile.o: scriptfile.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/search.o: search.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
@@ -3941,6 +4040,10 @@ objects/textprop.o: textprop.c vim.h protodef.h auto/config.h feature.h os_unix.
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/time.o: time.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/ui.o: ui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
@@ -3961,6 +4064,18 @@ objects/version.o: version.c vim.h protodef.h auto/config.h feature.h os_unix.h
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h version.h
|
||||
objects/vim9compile.o: vim9compile.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h vim9.h
|
||||
objects/vim9execute.o: vim9execute.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h vim9.h
|
||||
objects/vim9script.o: vim9script.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h vim9.h
|
||||
objects/viminfo.o: viminfo.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
|
||||
@@ -79,6 +79,7 @@ tag.c | tags
|
||||
term.c | terminal handling, termcap codes
|
||||
testing.c | testing: assert and test functions
|
||||
textprop.c | text properties
|
||||
time.c | time and timer functions
|
||||
undo.c | undo and redo
|
||||
usercmd.c | user defined commands
|
||||
userfunc.c | user defined functions
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user