Compare commits

...

113 Commits

Author SHA1 Message Date
Yegappan Lakshmanan
3ee25965e4 patch 9.0.2147: Type check tests fail without the channel feature
Problem:  Type check tests fail without the channel feature
Solution: only run tests, when Vim was build with +channel

fixes: #13617
closes: #13619

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-04 20:31:14 +01:00
Christian Brabandt
0d0b3b1951 patch 9.0.2146: text-property without type errors when joining
Problem:  text-property without type errors when joining
Solution: count all text-properties, with or without type
          before joining lines

Error when joining lines with text properties without a proper type

When joining lines, we need to consider all text properties that are
attached to a line, even when those text properties are invalid and do
not have a type attached to them.

However, since patch v9.0.0993
(commit: 89469d157a)
those text properties won't be counted when joining lines and therefore
this will cause the adjustment for text properties on joining to go
wrong (and may later cause SIGABRT with an invalid free pointer)

I am not sure, why the condition to not count text properties with a
valid type was added in patch v9.0.993, because no test fails if those
condition is removed. So let's just remove this condition and add a test
that verifies, that we are able to join lines, even when the text
properties attached to it do not have a valid type.

fixes: #13609
closes: #13614

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-03 17:56:43 +01:00
zeertzjq
5b4d1fcbf0 patch 9.0.2145: wrong scrolling in insert mode with smoothscroll
Problem:  Wrong scrolling in Insert mode with 'smoothscroll' at the
          bottom of the window.
Solution: Don't use set_topline() when 'smoothscroll' is set.

fixes: #13612
closes: #13613

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-03 17:54:10 +01:00
zeertzjq
4e26a9aab6 patch 9.0.2144: Text properties causes wrong line wrapping
Problem:  Text properties causes wrong line wrapping to be drawn.
Solution: Find the index of the last text property that inserts text.

closes: #13611

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-03 17:50:47 +01:00
Christian Brabandt
c089c3816b CI: disable the test_terminal_resize2() test for GH CI in gui mode (#13615)
becaues it tends to time-out CI for unknown reasons.

related: #13566

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-03 17:48:29 +01:00
Christian Brabandt
abfa13ebe9 patch 9.0.2143: [security]: buffer-overflow in ex_substitute
Problem:  [security]: buffer-overflow in ex_substitute
Solution: clear memory after allocating

When allocating the new_start pointer in ex_substitute() the memory
pointer points to some garbage that the following for loop in
ex_cmds.c:4743 confuses and causes it to accessing the new_start pointer
beyond it's size, leading to a buffer-overlow.

So fix this by using alloc_clear() instead of alloc(), which will
clear the memory by NUL and therefore cause the loop to terminate
correctly.

Reported by @henices, thanks!

closes: #13596
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 18:58:51 +01:00
Christian Brabandt
b39b240c38 patch 9.0.2142: [security]: stack-buffer-overflow in option callback functions
Problem:  [security]: stack-buffer-overflow in option callback functions
Solution: pass size of errbuf down the call stack, use snprintf()
          instead of sprintf()

We pass the error buffer down to the option callback functions, but in
some parts of the code, we simply use sprintf(buf) to write into the error
buffer, which can overflow.

So let's pass down the length of the error buffer and use sprintf(buf, size)
instead.

Reported by @henices, thanks!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 18:58:51 +01:00
Christian Brabandt
0fb375aae6 patch 9.0.2141: [security]: buffer-overflow in suggest_trie_walk
Problem:  [security]: buffer-overflow in suggest_trie_walk
Solution: Check n before using it as index into byts array

Basically, n as an index into the byts array, can point to beyond the byts
array. So let's double check, that n is within the expected range after
incrementing it from sp->ts_curi and bail out if it would be invalid.

Reported by @henices, thanks!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 18:58:50 +01:00
Christian Brabandt
eec0c2b3a4 patch 9.0.2140: [security]: use-after-free in win-enter
Problem:  [security]: use-after-free in win-enter
Solution: validate window pointer before calling win_enter()

win_goto() may stop visual mode, if it is active. However, this may in
turn trigger the ModeChanged autocommand, which could potentially free
the wp pointer which was valid before now became stale and points to now
freed memory.

So before calling win_enter(), let's verify one more time, that the
wp pointer still points to a valid window structure.

Reported by @henices, thanks!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 18:58:50 +01:00
Peter Simonyi
9cc95aa0d8 CI: check that all files are listed in Filelist (#13601)
Sometimes patches add files that should be included in tarballs for
distribution, but are not added to Filelist (used by Makefile to build
the tar archive).  This can break the build, or it can be silently
ignored as runtime files are simply not included in the distribution.

Add a CI check to ensure all files tracked in the repository are
assigned to a variable in Filelist.  A few files were not listed because
they do not need to be included in builds and tarballs, so add an IGNORE
variable for these exceptions.

Co-authored-by: Peter Simonyi <pts@petersimonyi.ca>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 18:07:42 +01:00
Christian Brabandt
4f3480c943 patch 9.0.2139: html.angular ft is problematic
Problem:  html.angular ft is problematic
Solution: partly revert v9.0.2137

The html.angular filetype causes issues and does not trigger FileType
autocommands for the html or angular filetypes.

So let's roll back that particular change and detect this only as html
file

related: https://github.com/vim/vim/pull/13594#issuecomment-1834465890

closes: #13604

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 18:01:17 +01:00
Christian Brabandt
926c3f45a2 CI: disable the test_terminal_resize() test for GH CI in GUI (#13603)
fixes: #13566

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-12-01 17:59:32 +01:00
Ernie Rael
fda700cb04 patch 9.0.2138: Overflow logic requires long long
Problem:  Overflow logic requires long long
Solution: Define vimlong_T data type to make life easier
          for porters

closes: #13598

Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-30 18:20:00 +01:00
Peter Simonyi
72314bb85f runtime(Filelist): include several missing files (#13600)
These files were discovered to be missing from Filelist, and thus
distribution tarballs:
- editorconfig plugin
- extra files for Rust support
- readme for Haiku OS builds

Co-authored-by: Peter Simonyi <pts@petersimonyi.ca>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-30 17:46:55 +01:00
ObserverOfTime
7bed263c34 patch 9.0.2137: Can't detect angular & mustache filetypes
Problem:  Can't detect angular & mustache filetypes
Solution: Detect *.mustache as Mustache filetype;
          detect *.component.html as html.angular filetype

closes: #13594

Signed-off-by: ObserverOfTime <chronobserver@disroot.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-30 17:41:19 +01:00
Christian Brabandt
110dd905dd runtime(syntax-test): ci fails, disable html test for now
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-30 17:33:32 +01:00
Shawn Hatori
8ceb99001b patch 9.0.2136: MSVC errorformat can be improved
Problem:  MSVC errorformat can be improved
Solution: parse error type and column number in MSVC errorformat

closes: #13587

Signed-off-by: Shawn Hatori <shawn.hatori@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-28 20:51:07 +01:00
zeertzjq
fcaeb3d42b patch 9.0.2135: No test for mode() when executing Ex commands
Problem:  No test for mode() when executing Ex commands
Solution: Add some test cases and simplify several other test cases.
          Also add a few more test cases for ModeChanged.

closes: #13588

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-28 20:46:29 +01:00
K.Takata
ffd6d31cb2 runtime(lang): Revise Makefile (#13589)
* Revise runtime/lang/Makefile
* Use predefined variables (`$@`, `$<`) instead of the actual file names.
  (Adding new rules should become easier.)
* Adjust spacing.
* Regenerate converted menu files

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-28 20:44:28 +01:00
dkearns
a9058440b7 runtime(html): Update syntax file (#13591)
Add missing search element and update ARIA attribute list.

Add a very basic test file to check all elements are matched.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-28 20:41:41 +01:00
Christian Brabandt
c4ffeddfe5 patch 9.0.2134: ml_get error when scrolling
Problem:  ml_get error when scrolling after delete
Solution: mark topline to be validated in main_loop
          if it is larger than current buffers line
          count

reset_lnums() is called after e.g. TextChanged autocommands and it may
accidentally cause curwin->w_topline to become invalid, e.g. if the
autocommand has deleted some lines.

So verify that curwin->w_topline points to a valid line and if not, mark
the window to have w_topline recalculated in main_loop() in
update_topline() after reset_lnums() returns.

fixes: #13568
fixes: #13578

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-27 23:25:03 +01:00
Sam-programs
d1c3ef1f47 patch 9.0.2133: Cannot detect overstrike mode in Cmdline mode
Problem:  Cannot detect overstrike mode in Cmdline mode
Solution: Make mode() return "cr" for overstrike

closes: #13569

Signed-off-by: Sam-programs <None>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-27 22:22:51 +01:00
Christian Brabandt
5c23343770 patch 9.0.2132: Duplicate Netbeans Error Message
Problem:  Duplicate Netbeans Error Message
Solution: Remove duplicate message

We have 2 error Messages used for the Netbeans interface:

- EXTERN char e_invalid_buffer_identifier_in_close[]
  INIT(= N_("E648: Invalid buffer identifier in close"));
- EXTERN char e_invalid_buffer_identifier_in_close_2[]
  INIT(= N_("E649: Invalid buffer identifier in close"));

Since the error message is exactly the same, get rid of the  second
message.

closes: #13584

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-27 20:04:24 +01:00
Daniel Buch Hansen
b9efc72c24 patch 9.0.2131: not all nushell files detected
Problem:  not all nushell files detected
Solution: use *.nu to detect nushell files

closes: #13586

Signed-off-by: Daniel Buch Hansen <boogiewasthere@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-27 20:00:56 +01:00
Christian Brabandt
c6754de5dd translation(de): Updated German translations (#13585)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-27 19:59:15 +01:00
Chris Aumann
cf40409e7d runtime(nginx): add additional nginx keywords (#13581)
* Add support for missing keywords to the nginx syntax plugin

This adds support for several keywords from
- the built-in HTTP/2 module,
- the built-in SSL module,
- the built-in uWSGI module,
- the experimental QUIC branch,
- the third-party SSL CT module,
- the third-party dynamic TLS records patch.

Co-Author: ObserverOfTime <chronobserver@disroot.org>

* Add missing http2/ http3 keywords to nginx plugin

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26 15:06:27 +01:00
Restorer
64c6bfd8ee runtime(tutor): add Make_mvc.mak file for tutor (#13580)
* Added Make_mvc.mak file for tutor

* updated Filelist

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26 15:01:56 +01:00
Restorer
2bad26fe2c translation(ru): updated Russian translations for tutorials (#13579)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26 10:14:11 +01:00
Antonio Giovanni Colombo
4e7727dd88 translation(it): updated Italian translation
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26 10:11:54 +01:00
Ken Takata
075ad70474 patch 9.0.2130: some errors with translation Makefiles
Problem:  some errors with translation Makefiles
Solution: fix issues

Update src/po/ makefiles after 9.0.2127

* Change how to check `%LANGUAGE%`.
  Check it only when needed.
* Add double quotes to where `GETTEXT_PATH` is used.
  Before 9.0.2127, this worked: `nmake -f Make_mvc.mak GETTEXT_PATH="\"C:\Program Files\Git\usr\bin\""` (which was a bit tricky.)
  9.0.2127 broke this and syntax error occurred.
  This doesn't work either in 9.0.2127: `nmake -f Make_mvc.mak GETTEXT_PATH="C:\Program Files\Git\usr\bin"`
  With this Commit, this works: `nmake -f Make_mvc.mak GETTEXT_PATH="C:\Program Files\Git\usr\bin"`
* Better error report for the `check` target.
  Show the line number of the error. (Imported from vim-jp/lang-ja.)

closes: #13567

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25 15:51:00 +01:00
mityu
a555069b7d patch 9.0.2129: [security]: use-after-free in call_dfunc()
Problem:  [security]: use-after-free in call_dfunc()
Solution: Refresh dfunc pointer

closes: #13571

This Commit fixes a SEGV caused by a use-after-free bug in call_dfunc().
When calling check_ufunc_arg_types() from the call_dfunc() it may cause
def functions to be re-compiled and if there are too many def functions,
the def_functions array will be re-allocated.  Which means, that the
dfunc pointer in call_dfunc() now starts pointing to freed memory.

So we need to reset the dfunc pointer after calling
check_ufunc_arg_types().

Let's also add a test, to ensure we do not regress.

Signed-off-by: mityu <mityu.mail@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25 15:41:20 +01:00
Restorer
8c14e79737 runtime(doc): Update doc Makefiles with comments from #13567 (#13577)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25 15:39:51 +01:00
Jōshin
813a538bb3 runtime(tsx): add indentation plugin (fixes #13574) (#13576)
for now, let's just use the typescript indent file.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25 15:38:09 +01:00
Julien Marrec
2e31065a65 patch 9.0.2128: runtime(swig): add syntax and filetype plugins
Add syntax and filetype plugins for SWIG (Simplified Wrapper Interface
Generator) description files.

The default syntax for .i files highlights comments in a reverse
color scheme which doesn't look well.  This syntax builds
on vim's c++ syntax by adding highlighting for common swig
directives and user defined directives.  For an alternative
syntax, see vimscript #1247 (which I found after writing this).

closes: #13562

Co-authored-by: Matěj Cepl <mcepl@cepl.eu>
Co-authored-by: Julien Marrec <julien.marrec@gmail.com>
Signed-off-by: Julien Marrec <julien.marrec@gmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25 15:30:46 +01:00
RestorerZ
e214692718 patch 9.0.2127: translation Makefiles can be improved
Problem:  translation Makefiles can be improved
Solution: Modified and extended po-related Makefiles and
          related files

closes: #13518

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23 20:58:32 +01:00
zeertzjq
00624a2fa0 patch 9.0.2126: unused assignments when checking 'listchars'
Problem:  Unused assignments when checking the value of 'listchars'.
Solution: Loop only once when just checking the value.  Add a test to
          check that this change doesn't cause double-free.

closes: #13559

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23 20:47:16 +01:00
zeertzjq
40ed6711bd patch 9.0.2125: File info disappears when 'cmdheight' has decreased
Problem:  File info disappears immediately when 'cmdheight' has just
          decreased due to switching tabpage and 'shortmess' doesn't
          contain 'o' or 'O'.
Solution: Make sure msg_row isn't smaller than cmdline_row.

fixes: #13560
closes: #13561

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23 20:37:01 +01:00
Ernie Rael
2b0882fa65 patch 9.0.2124: INT overflow detection logic can be simplified
Problem:  INT overflow logic can be simplified
Solution: introduce trim_to_int() function

closes: #13556

Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23 20:33:05 +01:00
Christian Brabandt
df63da98d8 patch 9.0.2123: Problem with initializing the length of range() lists
Problem:  Problem with initializing the length of range() lists
Solution: Set length explicitly when it shouldn't contain any items

range() may cause a wrong calculation of list length, which may later
then cause a segfault in list_find().  This is usually not a problem,
because range_list_materialize() calculates the length, when it
materializes the list.

In addition, in list_find() when the length of the range was wrongly
initialized, it may seem to be valid, so the check for list index
out-of-bounds will not be true, because it is called before the list is
actually materialized. And so we may eventually try to access a null
pointer, causing a segfault.

So this patch does 3 things:

- In f_range(), when we know that the list should be empty, explicitly
  set the list->lv_len value to zero. This should happen, when
  start is larger than end (in case the stride is positive) or
  end is larger than start when the stride is negative.
  This should fix the underlying issue properly. However,

- as a safety measure, let's check that the requested index is not
  out of range one more time, after the list has been materialized
  and return NULL in case it suddenly is.

- add a few more tests to verify the behaviour.

fixes: #13557
closes: #13563

Co-authored-by: Tim Pope <tpope@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23 20:14:28 +01:00
Christian Brabandt
3770574e4a patch 9.0.2122: [security]: prevent overflow in indenting
Problem:  [security]: prevent overflow in indenting
Solution: use long long and remove cast to (int)

The shiftwidth option values are defined as being long. However, when
calculating the actual amount of indent, we cast down to (int), which
may cause the shiftwidth value to become negative and later it may even
cause Vim to try to allocate a huge amount of memory.

We already use long and long long variable types to calculate the indent
(and detect possible overflows), so the cast to (int) seems superfluous
and can be safely removed. So let's just remove the (int) cast and
calculate the indent using longs.

Additionally, the 'shiftwidth' option value is also used when determining
the actual 'cino' options. There it can again cause another overflow, so
make sure it is safe in parse_cino() as well.

fixes: #13554
closes: #13555

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-22 22:18:35 +01:00
Christian Brabandt
26c11c5688 patch 9.0.2121: [security]: use-after-free in ex_substitute
Problem:  [security]: use-after-free in ex_substitute
Solution: always allocate memory

closes: #13552

A recursive :substitute command could cause a heap-use-after free in Vim
(CVE-2023-48706).

The whole reproducible test is a bit tricky, I can only reproduce this
reliably when no previous substitution command has been used yet
(which is the reason, the test needs to run as first one in the
test_substitute.vim file) and as a combination of the `:~` command
together with a :s command that contains the special substitution atom `~\=`
which will make use of a sub-replace special atom and calls a vim script
function.

There was a comment in the existing :s code, that already makes the
`sub` variable allocate memory so that a recursive :s call won't be able
to cause any issues here, so this was known as a potential problem
already.  But for the current test-case that one does not work, because
the substitution does not start with `\=` but with `~\=` (and since
there does not yet exist a previous substitution atom, Vim will simply
increment the `sub` pointer (which then was not allocated dynamically)
and later one happily use a sub-replace special expression (which could
then free the `sub` var).

The following commit fixes this, by making the sub var always using
allocated memory, which also means we need to free the pointer whenever
we leave the function. Since sub is now always an allocated variable,
we also do no longer need the sub_copy variable anymore, since this one
was used to indicated when sub pointed to allocated memory (and had
therefore to be freed on exit) and when not.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-c8qm-x72m-q53q

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-22 21:52:45 +01:00
K.Takata
8750e3cf81 runtime(netrw): Fix handling of very long filename on longlist style (#12150)
If there is a file with a very long filename (longer than
g:netrw_maxfilenamelen), and if g:netrw_liststyle is set to 1, no space
is inserted between the filename and the filesize and the file cannot be
opened because of this.

E.g.:
```
$ echo hello > 12345678901234567890123456789012	  # 32 bytes: OK
$ echo hello > 123456789012345678901234567890123  # 33 bytes: not OK
$ echo hello > 1234567890123456789012345678901234 # 34 bytes: not OK
$ echo hello > こんにちは                         # multibyte filename
$ LC_ALL=C.UTF-8 vim . --clean --cmd "set loadplugins" --cmd "let g:netrw_liststyle=1"
```

Then, it will be shown like this:
```
" ============================================================================
" Netrw Directory Listing                                        (netrw v171)
"   /cygdrive/c/work/netrw-test
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../                              0 Mon Mar 13 19:25:16 2023
./                               0 Mon Mar 13 19:44:58 2023
12345678901234567890123456789012 6 Mon Mar 13 19:29:43 2023
12345678901234567890123456789012346 Mon Mar 13 19:32:40 2023
1234567890123456789012345678901236 Mon Mar 13 19:29:49 2023
こんにちは                  6 Mon Mar 13 19:30:41 2023
```

If the length of the filename is 32 bytes, there is a space between the
filename and the filesize. However, when it is longer than 32 bytes, no
space is shown.

Also, you may find that the filesize of the multibyte named file is not
aligned.

After this patch is applied, the filelist will be shown like this:
```
" ============================================================================
" Netrw Directory Listing                                        (netrw v171)
"   /cygdrive/c/work/netrw-test
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../                                             0 Mon Mar 13 20:49:22 2023
./                                              0 Mon Mar 13 21:12:14 2023
1234567890123456789012345678901             10000 Mon Mar 13 20:57:55 2023
12345678901234567890123456789012                6 Mon Mar 13 19:29:43 2023
123456789012345678901234567890123               6 Mon Mar 13 19:29:49 2023
1234567890123456789012345678901234              6 Mon Mar 13 19:32:40 2023
1234567890123456789012345678901234567       10000 Mon Mar 13 21:03:23 2023
1234567890123456789012345678901234567890    10000 Mon Mar 13 21:03:36 2023
123456789012345678901234567890123456789012  10000 Mon Mar 13 21:03:59 2023
1234567890123456789012345678901234567890123  10000 Mon Mar 13 21:03:45 2023
1234567890123456789012345678901234567890123456  5 Mon Mar 13 21:08:15 2023
12345678901234567890123456789012345678901234567  10 Mon Mar 13 21:05:21 2023
こんにちは                                      6 Mon Mar 13 19:30:41 2023
```

Now we have 32 + 2 + 15 = 49 characters for filename and filesize.
It tries to align the filesize as much as possible.
The last line that has multibyte filename is also aligned.

Also fixed the issue that the file list is not shown correctly when
g:netrw_sort_by is set to 'size' and g:netrw_sizestyle is set to 'h' or
'H'.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-22 10:20:01 +01:00
Christian Brabandt
4e5c3cf07b patch 9.0.2120: un-used assignment in do_source_buffer_init
Problem:  un-used assignment in do_source_buffer_init
Solution: Remove it

Coverity warns about assigning NULL to line in scriptfile.c:1408,
because right after that assignment, in the next iteration of the loop,
line will be overwritten by the next value from vim_strsave().

And in case this was the last iteration, the line variable is no longer
used until the function returns. So we can safely remove that assignment.

closes: #13547

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:59:54 +01:00
Christian Brabandt
6b36645f07 patch 9.0.2119: remove dead-condition in ex_class
Problem:  remove dead-condition in ex_class()
Solution: remove the extra condition

The variable is_class must be true once we reach the

,----
| else if (has_static)
`----

in line 1750, because we break out earlier if is_class is false in line
1598 of vim9class.c. And once 'has_static = TRUE', we must be in a
class and there fore is_class is true.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:57:05 +01:00
Christian Brabandt
a5218a7330 patch 9.0.2118: [security]: avoid double-free in get_style_font_variants
Problem:  [security]: avoid double-free
Solution: Only fee plain_font, when it is not the same as bold_font

When plain_font == bold_font and bold_font is not NULL, we may end up
trying to free bold_font again, which already has been freed a few lines
above.

So only free bold_font, when the condition gui.font_can_bold is true,
which means that bold_font is not pointing to plain_font (so it needs to
be freed separately).

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:54:12 +01:00
Christian Brabandt
567cae2630 patch 9.0.2117: [security] use-after-free in qf_free_items
Problem:  [security] use-after-free in qf_free_items
Solution: only access qfpnext, if it hasn't been freed

Coverity discovered a possible use-after-free in qf_free_items. When
freeing the qfline items, we may access freed memory, when qfp ==
qfpnext.

So only access qfpnext, when it hasn't been freed.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:52:12 +01:00
Christian Brabandt
cb0c113ddc runtime(netrw): expand $COMSPEC without applying 'wildignore' (#13542)
When expanding $COMSPEC and a user has set :set wildignore=*.exe
netrw won't be able to properly cmd.exe, because it does not ignore the
wildignore setting.

So let's explicitly use expand() without applying the 'wildignore' and
'suffixes' settings to the result

closes: #13426

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:48:16 +01:00
dkearns
69866449dd runtime(vim): Improve keymap file highlighting (#13550)
- Match :loadkeymap to EOF as a region and contain only allowed items.
- Add highlighting for <Char- notation.
- add basic syntax highlighting tests

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:43:40 +01:00
zdohnal
d2c977bb7c runtime(Filelist): include new doc-Makefiles (#13551)
Tags for help files disappeared with the latest Vim update in Fedora,
which is caused by silent error (it didn't stop the build) about missing
file. I use 'make unixall' in Fedora to get the latest patchlevels and
the new files were missing from Filelist file which is used for
generating the tarball.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 19:42:56 +01:00
h_east
596a9f29c8 runtime(doc): Fix whitespace and formatting of some help files (#13549)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21 12:24:23 +00:00
njohnston
aabca259fa runtime(doc): minor typo fixes (#13548)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-20 00:18:57 +01:00
Luuk van Baal
e670d17342 patch 9.0.2116: No test for defining sign without attribute
Problem:  No test for defining sign without attribute
Solution: Add test for defining sign without attributes

closes: #13544

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-19 10:57:02 +01:00
Christian Brabandt
6701abfb52 patch 9.0.2115: crash when callback function aborts because of recursiveness
Problem:  crash when callback function aborts because of recursiveness
Solution: correctly initialize rettv

Initialize rettv in invoke_popup_callback()

Since v9.0.2030, call_callback may exit early when the callback recurses
too much.  This meant that call_func, which would set rettv->v_type =
VAR_UNKNOWN, was not being called.

Without rettv->v_type being explicitly set, it still contained whatever
garbage was used to initialize the stack value in invoke_popup_callback.
This would lead to possible crashes when calling clear_tv(&rettv).

Rather than rely on action at a distance, explicitly initialize rettv's
type to VAR_UNKNOWN so clear_tv can tell nothing needs to be done.

closes: #13495
closes: #13545
Signed-off-by: James McCoy <jamessan@jamessan.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-19 10:52:50 +01:00
Christian Brabandt
22cbc8a4e1 patch 9.0.2114: overflow detection not accurate when adding digits
Problem:  overflow detection not accurate when adding digits
Solution: Use a helper function

Use a helper function to better detect overflows before adding integer
digits to a long or an integer variable respectively. Signal the
overflow to the caller function.

closes: #13539

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Michael Henry <vim@drmikehenry.com>
Signed-off-by: Ernie Rael <errael@raelity.com>
2023-11-19 10:47:21 +01:00
Christian Brabandt
22a97fc241 patch 9.0.2113: Coverity warns for another overflow in shift_line()
Problem:  Coverity warns for another overflow in shift_line()
Solution: Test for INT_MAX after the if condition, cast integer values
          to (long long) before multiplying.

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Michael Henry <vim@drmikehenry.com>
Signed-off-by: Ernie Rael <errael@raelity.com>
2023-11-19 10:45:24 +01:00
Restorer
ab4f27e2a8 runtime(doc): Refactor doc-Makefiles (#13519)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-18 17:12:20 +01:00
Christian Brabandt
6ffe084e6e runtime(doc): document proper notation of gVim, document vim-security list
Also, while at it, document the vim-security mailing list.

closes: #13429

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-18 10:13:13 +01:00
Ivan Pešić
cc6be3e755 translation(sr): Update Serbian messages translation (#13538)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-17 12:54:10 +01:00
Christian Brabandt
6bf131888a patch 9.0.2112: [security]: overflow in shift_line
Problem:  [security]: overflow in shift_line
Solution: allow a max indent of INT_MAX

[security]: overflow in shift_line

When shifting lines in operator pending mode and using a very large
value, we may overflow the size of integer. Fix this by using a long
variable, testing if the result would be larger than INT_MAX and if so,
indent by INT_MAX value.

Special case: We cannot use long here, since on 32bit architectures (or
on Windows?), it typically cannot take larger values than a plain int,
so we have to use long long count, decide whether the resulting
multiplication of the shiftwidth value * amount is larger than INT_MAX
and if so, we will store INT_MAX as possible larges value in the long
long count variable.

Then we can safely cast it back to int when calling the functions to set
the indent (set_indent() or change_indent()). So this should be safe.

Add a test that when using a huge value in operator pending mode for
shifting, we will shift by INT_MAX

closes: #13535

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:38 +01:00
Christian Brabandt
73b2d3790c patch 9.0.2111: [security]: overflow in get_number
Problem:  [security]: overflow in get_number
Solution: Return 0 when the count gets too large

[security]: overflow in get_number

When using the z= command, we may overflow the count with values larger
than MAX_INT. So verify that we do not overflow and in case when an
overflow is detected, simply return 0

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:38 +01:00
Christian Brabandt
060623e4a3 patch 9.0.2110: [security]: overflow in ex address parsing
Problem:  [security]: overflow in ex address parsing
Solution: Verify that lnum is positive, before substracting from
          LONG_MAX

[security]: overflow in ex address parsing

When parsing relative ex addresses one may unintentionally cause an
overflow (because LONG_MAX - lnum will overflow for negative addresses).

So verify that lnum is actually positive before doing the overflow
check.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:38 +01:00
Christian Brabandt
58f9befca1 patch 9.0.2109: [security]: overflow in nv_z_get_count
Problem:  [security]: overflow in nv_z_get_count
Solution: break out, if count is too large

When getting the count for a normal z command, it may overflow for large
counts given. So verify, that we can safely store the result in a long.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:37 +01:00
Christian Brabandt
ac63787734 patch 9.0.2108: [security]: overflow with count for :s command
Problem:  [security]: overflow with count for :s command
Solution: Abort the :s command if the count is too large

If the count after the :s command is larger than what fits into a
(signed) long variable, abort with e_value_too_large.

Adds a test with INT_MAX as count and verify it correctly fails.

It seems the return value on Windows using mingw compiler wraps around,
so the initial test using :s/./b/9999999999999999999999999990 doesn't
fail there, since the count is wrapping around several times and finally
is no longer larger than 2147483647. So let's just use 2147483647 in the
test, which hopefully will always cause a failure

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:37 +01:00
Christian Brabandt
cb0b99f067 patch 9.0.2107: [security]: FPE in adjust_plines_for_skipcol
Problem:  [security]: FPE in adjust_plines_for_skipcol
Solution: don't divide by zero, return zero

Prevent a floating point exception when calculating w_skipcol (which can
happen with a small window when the number option is set and cpo+=n).

Add a test to verify

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:37 +01:00
Christian Brabandt
25aabc2b8e patch 9.0.2106: [security]: Use-after-free in win_close()
Problem:  [security]: Use-after-free in win_close()
Solution: Check window is valid, before accessing it

If the current window structure is no longer valid (because a previous
autocommand has already freed this window), fail and return before
attempting to set win->w_closing variable.

Add a test to trigger ASAN in CI

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16 22:04:00 +01:00
Christian Brabandt
67abf1592c runtime(tar): comment out strange error condition check
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14 17:17:12 +01:00
Luuk van Baal
bb800a7907 patch 9.0.2105: skipcol not reset when topline changed
Problem:  Skipcol is not reset when topline changed scrolling cursor to top
Solution: reset skipcol

closes: #13528
closes: #13532

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14 17:05:18 +01:00
rhysd
bc8f79d36a patch 9.0.2104: wast filetype should be replaced by wat filetype
Problem:  wast filetype should be replaced by wat filetype
Solution: start using the official wat filetype name

runtime: rename `wast` filetype to `wat` (Wasm text format)

The problem is the name of the current filetype wast. When the plugin
was initially created, the file extension for Wasm text format was not
fixed and .wast was more popular.

However, recently .wat became the official file extension for
WebAssembly text (WAT) format and .wast is now a file extension for the
unofficial WAST format, which is a superset of .wat for the convenience
to describe the Wasm specification conformance tests.

https://webassembly.js.org/docs/contrib-wat-vs-wast.html

However for now, let's keep using the `wat` filetype even for the .wast
extension, so that we at least do not lose the filetype settings and
syntax highlighting. This can be adjusted later, if it turns out to have
a separate need for.

closes: #13533

Signed-off-by: rhysd <lin90162@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14 16:46:07 +01:00
Christian Brabandt
30c762d99a runtime(doc): fix typo in pi_gzip.txt
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14 16:44:37 +01:00
Christian Brabandt
2076463e38 patch 9.0.2103: recursive callback may cause issues on some archs
Problem:  recursive callback may cause issues on some archs
Solution: Decrease the limit drastically to 20

Recursive callback limit causes problems on some architectures

Since commit 47510f3d65 we have a test
that causes a recursive popup callback function to be executed. However
it seems the current limit of 'maxfuncdepth' option value is still too
recursive for some 32bit architectures (e.g. 32bit ARM).

So instead of allowing a default limit of 100 (default value for
'maxfuncdepth'), let's reduce this limit to 20. I don't think there is a
use case where one would need such a high recursive callback limit and a
limit of 20 seems reasonable (although it is currently hard-coded).

closes: #13495
closes: #13502

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12 16:59:29 +01:00
Christian Brabandt
9588666360 patch 9.0.2102: matchparen highlight not cleared in completion mode
Problem:  matchparen highlight not cleared in completion mode
Solution: Clear matchparen highlighting in completion mode

Remove hard-coded hack in insexpand.c to clear the :3match before
displaying the completion menu.

Add a test for matchparen highlighting. While at it, move all test tests
related to the matchparen plugin into a separate test file.

closes: #13493
closes: #13524

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12 16:55:01 +01:00
Shane-XB-Qian
2dd613f57b runtime(termdebug): improve the breakpoint sign label (#13525)
// related #12589
// that should be the last chat (I) with Bram, r.i.p

Signed-off-by: shane.xb.qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12 16:53:39 +01:00
shane.xb.qian
4ae16d721a Improve CONTRIBUTING.md
closes: #13521

Signed-off-by: shane.xb.qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12 16:49:07 +01:00
shane.xb.qian
fdbadea4b6 patch 9.0.2101: CI: test_termdebug may still fail
Problem:  CI: test_termdebug may still fail
Solution: use term_wait() to make it more robust

closes: #13529

Signed-off-by: shane.xb.qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12 09:42:12 +01:00
Restorer
424da590e4 runtime(doc): Renamed "makefile_*.mak" for Vim documentation (#13517)
* Rename makefile_all.mak and makefile_mvc.mak

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 19:26:00 +01:00
dkearns
2c133f6c1a runtime(lynx): Update for Lynx 2.8.9 (#13510)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 19:06:56 +01:00
dkearns
9358b8d993 runtime(vim): Improve :let-heredoc syntax highlighting (#12923)
"trim" and "eval" are allowed in any order and whitespace is not
required after "=<<".

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 19:06:01 +01:00
Christian Brabandt
305127f9f2 patch 9.0.2100: CI: test_termdebug fails
Problem:  CI: test_termdebug fails
Solution: only test for a changed winlayout, if the window
          width actually changed

Also, include an unrelated comment (which doesn't warrant its own patch
number)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 18:59:33 +01:00
Christian Brabandt
1b08d2cd07 runtime(doc): clarify when formatoptions applies
closes: #13503

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 15:51:19 +01:00
Ivan Grimaldi
5994329667 runtime(i3config): Update for i3 4.23 (#13522)
Co-authored-by: Ivan Grimaldi <grimaldi.ivam@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 13:09:26 +01:00
Nir Lichtman
6cd2d1df92 patch 9.0.2099: win32: terminal codes clear the terminal
Problem:  Terminal control codes¹ are sent even when silent
          mode is on, causing the terminal to clear up
Solution: Block any terminal codes when silent mode is on

¹https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences

fixes: #12822
closes: #13521

Signed-off-by: Nir Lichtman <nir@lichtman.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 11:33:43 +01:00
ccn
2c5240ec8b runtime(doc): Update usr_51.txt to be more inclusive (#13496)
use their instead of his as the user may not be male


Co-authored-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 09:35:50 +01:00
dkearns
521fb7e143 runtime(doc): Add missing null_<type> help tags (#13498)
Problem:  Not all null_<type> values have a help tag
Solution: Add missing help tags

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 09:33:43 +01:00
Philip H
f1952d9fa8 CI: labeler.yml use all instead of any for doc detection (#13507)
fixup: https://github.com/vim/vim/pull/13506#pullrequestreview-1722013761

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 09:14:48 +01:00
ObserverOfTime
4f9074b96c patch 9.0.2098: No filetype support for xcompose files
Problem:  No filetype support for xcompose files
Solution: Add filetype detection

closes: #13508

Signed-off-by: ObserverOfTime <chronobserver@disroot.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 09:12:27 +01:00
Ernie Rael
bee966d3fe runtime(doc): clarify :help inclusion section
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 09:10:24 +01:00
K.Takata
cb5e7a2026 CI: labeler.yml: Add some more component detection rules (#13511)
Add rules for `installer`, `platform-mac`, `platform-windows`, `xxd`.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 09:04:31 +01:00
Gerrit Meier
8f0fe20ff1 patch 9.0.2097: No support for cypher files
Problem:  No support for cypher files
Solution: Add cypher filetype detection

Cypher query language support to work with (mostly) graph databases.

Already existing lsp support in Neovim's nvim-lspconfig:
https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#cypher_ls

closes: #13516

Signed-off-by: Gerrit Meier <meistermeier@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 08:58:26 +01:00
Ernie Rael
03042a2753 patch 9.0.2096: Vim9: confusing usage of private
Problem:  Vim9: confusing usage of private
Solution: clarify and use protected keyword instead

[vim9class] document `_` as protected instead of private

fixes #13504
closes: #13520

Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-11 08:53:32 +01:00
Philip H
4b0018feca CI: labeler.yml: add documentation label (#13506)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-09 08:51:03 +00:00
zeertzjq
20a94f44b3 runtime(doc): fix grammar in termdebug doc, remove trailing spaces (#13505)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-09 07:21:58 +00:00
shane.xb.qian
ca48202b6f runtime(termdebug): improve window handling, shorten var types
closes #13474

Signed-off-by: shane.xb.qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-08 22:03:26 +01:00
shane.xb.qian
7fbbd7fdc6 runtime(termdebug): handle buffer-local mappings properly
closes: #13475

Signed-off-by: shane.xb.qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-08 21:46:30 +01:00
Christian Brabandt
6a650bf696 patch 9.0.2095: statusline may look different than expected
Problem:  statusline may look different than expected
Solution: do not check for highlighting of stl and stlnc characters

statusline fillchar may be different than expected

If the highlighting group for the statusline for the current window
|hl-StatusLine| or the non-current window |hl-StatusLineNC| are cleared
(or do not differ from each other), than Vim will use the hard-coded
fallback values '^' (for the non-current windows) or '=' (for the
current window).  I believe this was done, to make sure the statusline
will always be visible and be distinguishable from the rest of the
window.

However, this may be unexpected, if a user explicitly defined those
fillchar characters just to notice that those values are then not used
by Vim.

So, let's assume users know what they are doing and just always return
the configured stl and stlnc values.  And if they want the statusline to
be non-distinguishable from the rest of the window space, so be it.  It
is their responsibility and Vim shall not know better what to use.

fixes: #13366
closes: #13488

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-08 21:23:29 +01:00
Yegappan Lakshmanan
1fc47c2c9b patch 9.0.2094: Vim9: need more assignment tests
Problem:  Vim9: need more assignment tests
Solution: Add test for using different types in assignment, function
          arguments and return values

closes: #13491

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-08 21:10:11 +01:00
dkearns
d56f15caf6 runtime(wget): Update for Wget2 2.1.0 (#13497)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-08 20:53:20 +01:00
zeertzjq
4d62a2f443 patch 9.0.2093: Unsupported option causes skipping of modeline test
Problem:  Unsupported option causes rest of modeline test to be skipped.
Solution: Revert the change from patch 8.2.1432.

closes: #13499
closes: #13500

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-08 20:51:02 +01:00
Christian Brabandt
2a94e98792 patch 9.0.2092: tests: failure in test_arabic
Problem:  tests: failure in test_arabic
Solution: adjust the test for the changed arabic keymap

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 19:18:52 +01:00
avidseeker
caee7956a2 runtime(keymap): Switch Hindu-Arabic to Arabic numerals in arabic keymap (#13430)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 17:59:20 +01:00
Restorer
3570631dc6 translation(ru): Update the translation of Russian messages to Vim 9.0.2091 (#13490)
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 17:56:14 +01:00
Christian Brabandt
3d37231437 runtime(tar): improve the error detection
Do not rely on the fact, that the last line matches warning, error,
inappropriate or unrecognized to determine if an error occurred. It
could also be a file, contains such a keyword.

So make the error detection slightly more strict and only assume an
error occured, if in addition to those 4 keywords, also a space matches
(this assumes the error message contains a space), which luckily on Unix
not many files match by default.

The whole if condition seems however slightly dubious.  In case an error
happened, this would probably already be caught in the previous if
statement, since this checks for the return code of the tar program.

There may however be tar implementations, that do not set the exit code
for some kind of error (but print an error message)? But let's keep this
check for now, not many people have noticed this behaviour until now, so
it seems to work reasonably well anyhow.

related: #6425
fixes: #13489
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 17:51:09 +01:00
Christian Brabandt
da4e433dc3 runtime(doc): document vim-script library function
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 10:45:49 +01:00
Sean Dewar
b2a4c110a5 runtime(dist): Make dist/vim.vim work properly when lacking vim9script support (#13487)
`:return` cannot be used outside of `:function` (or `:def`) in older Vims
lacking Vim9script support or in Neovim, even when evaluation is being skipped
in the dead `:else` branch.

Instead, use the pattern described in `:h vim9-mix`, which uses `:finish` to end
script processing before it reaches the vim9script stuff.

Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 10:11:37 +01:00
Yegappan Lakshmanan
6709816f78 patch 9.0.2091: Vim9: cannot convert list to string using +=
Problem:  Vim9: cannot convert list to string using +=
          (after 9.0.2072)
Solution: convert dict index to string later in compile_member()

fixes: #13485
closes: #13486

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-05 10:07:03 +01:00
Christian Brabandt
4f174f0de9 runtime(dist): add legacy version for central vim library
Also, enable the zip and gzip plugins by default, unless those variables
were not explicitly set by the user.

related: #13413

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 11:19:28 +01:00
D. Ben Knoble
cd8a3eaf53 runtime(dist): centralize safe executable check and add vim library (#13413)
Follow up to 816fbcc26 (patch 9.0.1833: [security] runtime file fixes,
2023-08-31) and f7ac0ef50 (runtime: don't execute external commands when
loading ftplugins, 2023-09-06).

This puts the logic for safe executable checks in a single place, by introducing
a central vim library, so all filetypes benefit from consistency.

Notable changes:
- dist#vim because the (autoload) namespace for a new runtime support
  library. Supporting functions should get documentation. It might make
  life easier for NeoVim devs to make the documentation a new file
  rather than cram it into existing files, though we may want
  cross-references to it somewhere…
- The gzip and zip plugins need to be opted into by enabling execution
  of those programs (or the global plugin_exec). This needs
  documentation or discussion.
- This fixes a bug in the zig plugin: code setting s:tmp_cwd was removed
  in f7ac0ef50 (runtime: don't execute external commands when loading
  ftplugins, 2023-09-06), but the variable was still referenced. Since
  the new function takes care of that automatically, the variable is no
  longer needed.

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 10:11:17 +01:00
Christian Brabandt
08b1c61e8b runtime(doc): clarify terminal capabilities for focus reporting
closes: #13440

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 10:03:52 +01:00
Christian Brabandt
57f9ce1a09 patch 9.0.2090: complete_info() skips entries with 'noselect'
Problem:  complete_info() skips entries with 'noselect'
Solution: Check, if first entry is at original text state

Unfortunately, Commit daef8c7437
introduced a regression, that when ':set completeopt+=noselect' is set
and no completion item has been selected yet, it did not fill the
complete_info['items'] list.

This happened, because the current match item did not have the
CP_ORIGINAL_TEXT flag set and then the cp->prev pointer did point to the
original flag item, which caused the following while loop to not being
run but being skipped instead.

So when the 'noselect' is set, only start with to the previous selection
item, if the initial completion item has the CP_ORIGINAL_TEXT flag set,
else use the 2nd previous item instead.

fixes: #13451
closes: #13452

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 09:58:14 +01:00
Restorer
b23c1fc596 runtime(doc): Add Makefile for the Vim documentation on Windows (#13467)
* Makefile for the Vim documentation on Windows

* Corrected comments

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 09:57:09 +01:00
GuyBrush
15d270019e patch 9.0.2089: sound_playfile() fails when using powershell
Problem:  sound_playfile() fails when using powershell
Solution: quote filename using doublequotes, don't escape filename,
          because it doesn't use the shell

Avoiding powershell escaping because mci open command doesn't support
single quoted filenames: open 'C:\whatever\sound.wav' is not valid.

closes: #13471

Signed-off-by: GuyBrush <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 09:54:00 +01:00
Yegappan Lakshmanan
5a53925a6e patch 9.0.2088: Vim9: still allows abstract static methods
Problem:  Vim9: still allows abstract static methods
          (after v9.0.2084, v9.0.2085 and v9.0.2087)
Solution: Disallow abstract static methods

closes: #13479

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 09:42:46 +01:00
Lucien Grondin
ce3b0136c6 runtime(sh): Update sh syntax and add shDerefOffset to shDerefVarArray for bash (#13480)
Add shDerefOffset to shDerefVarArray.

Example code:

```bash
declare -a a=({a..z})

echo "${a[@]:1:3}"
```


Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 09:41:37 +01:00
Jiri Slaby
2f54c13292 runtime(script.vim): make strace ft check less strict (#13482)
Strace output, depending on parameters (-ttf this time), can dump both
times and pid:
  1038  07:14:20.959262 execve("./e.py", ["./e.py"], 0x7ffca1422840 /* 51 vars */) = 0 <0.000150>

So loose the regexp matching this, so that the above is matched too.

Fixes #13481.

Co-authored-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-04 09:39:54 +01:00
193 changed files with 9765 additions and 4071 deletions

4
.github/CODEOWNERS vendored
View File

@@ -224,6 +224,7 @@ runtime/ftplugin/spec.vim @ignatenkobrain
runtime/ftplugin/ssa.vim @ObserverOfTime
runtime/ftplugin/swayconfig.vim @jamespeapen
runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/swig.vim @jmarrec
runtime/ftplugin/tap.vim @petdance
runtime/ftplugin/tcsh.vim @dkearns
runtime/ftplugin/tidy.vim @dkearns
@@ -237,6 +238,7 @@ runtime/ftplugin/vdf.vim @ObserverOfTime
runtime/ftplugin/wast.vim @rhysd
runtime/ftplugin/wget.vim @dkearns
runtime/ftplugin/wget2.vim @dkearns
runtime/ftplugin/xcompose.vim @ObserverOfTime
runtime/ftplugin/xml.vim @chrisbra
runtime/ftplugin/xs.vim @petdance
runtime/ftplugin/zsh.vim @chrisbra
@@ -501,6 +503,7 @@ runtime/syntax/sshdconfig.vim @Jakuje
runtime/syntax/sudoers.vim @e-kwsm
runtime/syntax/svn.vim @hdima
runtime/syntax/swayconfig.vim @jamespeapen
runtime/syntax/swig.vim @jmarrec
runtime/syntax/systemverilog.vim @Kocha
runtime/syntax/tags.vim @cecamp
runtime/syntax/tap.vim @petdance
@@ -525,6 +528,7 @@ runtime/syntax/wdl.vim @zenmatic
runtime/syntax/wget.vim @dkearns
runtime/syntax/wget2.vim @dkearns
runtime/syntax/xbl.vim @dkearns
runtime/syntax/xcompose.vim @ObserverOfTime
runtime/syntax/xmath.vim @cecamp
runtime/syntax/xml.vim @chrisbra
runtime/syntax/xs.vim @petdance

46
.github/labeler.yml vendored
View File

@@ -8,6 +8,9 @@ CI:
- any: ['.appveyor.yml']
- any: ['.codecov.yml']
documentation:
- all: ['*/doc/*']
translation:
- any: ['src/po/*.po']
@@ -47,6 +50,46 @@ if_tcl:
- any: ['src/proto/if_tcl.pro']
- any: ['runtime/doc/if_tcl.txt']
installer:
- any: ['nsis/**']
- any: ['src/dosinst.*']
- any: ['src/uninstall.c']
platform-mac:
- any: ['src/INSTALLmac.txt']
- any: ['src/os_mac*']
- any: ['src/proto/os_mac*']
platform-windows:
- any: ['nsis/**']
- any: ['src/*.bat']
- any: ['src/*.bmp']
- any: ['src/*.ico']
- any: ['src/GvimExt/*']
- any: ['src/INSTALLpc.txt']
- any: ['src/Make_cyg*.mak']
- any: ['src/Make_ming.mak']
- any: ['src/Make_mvc.mak']
- any: ['src/dosinst.*']
- any: ['src/gui_dwrite.*']
- any: ['src/gui_w32*']
- any: ['src/if_ole.*']
- any: ['src/iid_ole.c']
- any: ['src/os_mswin*']
- any: ['src/os_w32*']
- any: ['src/os_win32.*']
- any: ['src/proto/gui_w32.pro']
- any: ['src/proto/os_mswin.pro']
- any: ['src/proto/os_win32.pro']
- any: ['src/proto/winclip.pro']
- any: ['src/uninstall.c']
- any: ['src/vim.manifest']
- any: ['src/vim.rc']
- any: ['src/vimrun.c']
- any: ['src/winclip.c']
- any: ['src/xpm/**']
- any: ['src/xpm_w32.*']
runtime:
- any: ['runtime/ftplugin']
- any: ['runtime/syntax']
@@ -58,3 +101,6 @@ termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
plugin-netrw:
- any: ['runtime/plugin/netrwPlugin.vim']
- any: ['runtime/autoload/netrw*']
xxd:
- any: ['src/xxd/*']

View File

@@ -81,6 +81,12 @@ jobs:
- name: Checkout repository from github
uses: actions/checkout@v4
- name: Check Filelist (for packaging)
run: |
# If any files in the repository are not listed in Filelist this will
# exit with an error code and list the missing entries.
make -f ci/unlisted.make
- run: sudo dpkg --add-architecture i386
if: matrix.architecture == 'i386'

View File

@@ -1,13 +1,12 @@
# Contributing to Vim
Patches are welcome in whatever form.
Discussions about patches happen on the vim-dev maillist.
Discussions about patches happen on the [vim-dev][0] mailing list.
If you create a pull request on GitHub it will be
forwarded to the vim-dev maillist. You can also send your patch there
directly. In that case an attachment with a unified diff format is preferred.
Information about the maillist can be found [on the Vim website].
[on the Vim website]: http://www.vim.org/maillist.php#vim-dev
forwarded to the vim-dev mailing list. You can also send your patch there
directly (but please note, the initial posting is subject to moderation).
In that case an attachment with a unified diff format is preferred.
Information about the mailing list can be found [on the Vim website][0]
A pull request has the advantage that it will trigger the Continuous
Integration tests, you will be warned of problems (you can ignore the coverage
@@ -22,31 +21,27 @@ Contributions will be distributed with Vim under the Vim license. Providing a
change to be included implies that you agree with this and your contribution
does not cause us trouble with trademarks or patents. There is no CLA to sign.
# Reporting issues
We use GitHub issues, but that is not a requirement. Writing to the Vim
maillist is also fine.
mailing list is also fine.
Please use the GitHub issues only for actual issues. If you are not 100% sure
that your problem is a Vim issue, please first discuss this on the Vim user
maillist. Try reproducing the problem without any of your plugins or settings:
mailing list. Try reproducing the problem without any of your plugins or settings:
vim --clean
If you report an issue, please describe exactly how to reproduce it.
For example, don't say "insert some text" but say what you did exactly:
"ahere is some text&lt;Esc&gt;".
`ahere is some text<Esc>`.
Ideally, the steps you list can be used to write a test to verify the problem
is fixed.
Feel free to report even the smallest problem, also typos in the documentation.
You can find known issues in the todo file: ":help todo".
Or open [the todo file] on GitHub to see the latest version.
[the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
You can find known issues in the todo file: `:help todo`.
Or open [the todo file][todo list] on GitHub to see the latest version.
# Syntax, indent and other runtime files
@@ -57,11 +52,10 @@ If you find a problem with one of these files or have a suggestion for
improvement, please first try to contact the maintainer directly.
Look in the header of the file for the name and email address.
The maintainer will take care of issues and send updates to Bram for
The maintainer will take care of issues and send updates to the Vim project for
distribution with Vim.
If the maintainer does not respond, contact the vim-dev maillist.
If the maintainer does not respond, contact the [vim-dev][0] mailing list.
# Translations
@@ -77,8 +71,28 @@ can be translated:
The help files can be translated and made available separately.
See https://www.vim.org/translations.php for examples.
# How do I contribute to the project?
Please have a look at the following [discussion][6], which should give you some
ideas. Please also check the [develop.txt][7] helpfile for the recommended
style. Often it's also beneficial to check the surrounding code for the style
being used.
# I have a question
If you have some question on the style guide, please contact the [vim-dev][0]
mailing list. For other questions please use the [Vi Stack Exchange][8] website, the
[vim-use][9] mailing list or make use of the [discussion][10] feature here at github.
[todo list]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
[0]: http://www.vim.org/maillist.php#vim-dev
[1]: https://github.com/vim/vim/blob/master/src/po/README.txt
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
[5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi
[6]: https://github.com/vim/vim/discussions/13087
[7]: https://github.com/vim/vim/blob/master/runtime/doc/develop.txt
[8]: https://vi.stackexchange.com
[9]: http://www.vim.org/maillist.php#vim-use
[10]: https://github.com/vim/vim/discussions

View File

@@ -213,6 +213,7 @@ SRC_ALL = \
src/testdir/dumps/*.dump \
src/testdir/dumps/*.vim \
src/testdir/samples/*.txt \
src/testdir/samples/*.vim \
src/testdir/samples/test000 \
src/testdir/color_ramp.vim \
src/testdir/silent.wav \
@@ -698,6 +699,7 @@ RT_ALL = \
runtime/doc/*.pl \
runtime/doc/*.txt \
runtime/doc/Makefile \
runtime/doc/Make_all.mak \
runtime/doc/doctags.c \
runtime/doc/doctags.vim \
runtime/doc/test_urls.vim \
@@ -756,6 +758,17 @@ RT_ALL = \
runtime/pack/dist/opt/dvorak/dvorak/enable.vim \
runtime/pack/dist/opt/dvorak/dvorak/disable.vim \
runtime/pack/dist/opt/editexisting/plugin/editexisting.vim \
runtime/pack/dist/opt/editorconfig/.editorconfig \
runtime/pack/dist/opt/editorconfig/CONTRIBUTORS \
runtime/pack/dist/opt/editorconfig/LICENSE* \
runtime/pack/dist/opt/editorconfig/mkzip.sh \
runtime/pack/dist/opt/editorconfig/README.md \
runtime/pack/dist/opt/editorconfig/autoload/*.vim \
runtime/pack/dist/opt/editorconfig/autoload/editorconfig_core/*.vim \
runtime/pack/dist/opt/editorconfig/doc/tags \
runtime/pack/dist/opt/editorconfig/doc/editorconfig.txt \
runtime/pack/dist/opt/editorconfig/ftdetect/editorconfig.vim \
runtime/pack/dist/opt/editorconfig/plugin/editorconfig.vim \
runtime/pack/dist/opt/justify/plugin/justify.vim \
runtime/pack/dist/opt/matchit/plugin/matchit.vim \
runtime/pack/dist/opt/matchit/doc/matchit.txt \
@@ -781,7 +794,9 @@ RT_SCRIPTS = \
runtime/makemenu.vim \
runtime/autoload/*.vim \
runtime/autoload/README.txt \
runtime/autoload/cargo/*.vim \
runtime/autoload/dist/*.vim \
runtime/autoload/rust/*.vim \
runtime/autoload/xml/*.vim \
runtime/autoload/zig/*.vim \
runtime/colors/*.vim \
@@ -846,6 +861,8 @@ RT_AMI_DOS = \
# DOS runtime (also in the extra archive)
RT_DOS = \
README_dos.txt \
runtime/doc/Make_mvc.mak \
runtime/tutor/Make_mvc.mak \
vimtutor.bat \
# DOS runtime without CR-LF translation (also in the extra archive)
@@ -952,6 +969,7 @@ IN_README_DIR = \
README_bindos.txt \
README_dos.txt \
README_extra.txt \
README_haiku.txt \
README_mac.txt \
README_ole.txt \
README_os2.txt \
@@ -988,11 +1006,13 @@ LANG_GEN = \
runtime/doc/*-tr.UTF-8.1 \
runtime/lang/README.txt \
runtime/lang/Makefile \
runtime/lang/Make_all.mak \
runtime/lang/menu_*.vim \
runtime/keymap/README.txt \
runtime/keymap/*.vim \
runtime/tutor/README.*.txt \
runtime/tutor/Makefile \
runtime/tutor/Make_all.mak \
runtime/tutor/tutor.utf-8 \
runtime/tutor/tutor.?? \
runtime/tutor/tutor.??.utf-8 \
@@ -1047,10 +1067,25 @@ LANG_SRC = \
src/po/vim.desktop.in \
src/po/gvim.desktop.in \
src/po/sjiscorr.c \
src/po/big5corr.c \
src/po/*.po \
# the language files for the Win32 lang archive
LANG_DOS = \
src/po/*.mo \
runtime/lang/Make_mvc.mak \
# Files in the repository that are deliberately not listed above, and will thus
# be excluded from distribution tarballs and the like.
# This excludes them from the CI check for unlisted files.
IGNORE = \
.appveyor.yml \
.github/FUNDING.yml \
.github/labeler.yml \
.github/workflows/label.yml \
SECURITY.md \
ci/unlisted.make \
src/libvterm/CODE-MAP \
runtime/syntax/testdir/input/html_html \
# vim: set ft=make:

49
ci/unlisted.make Normal file
View File

@@ -0,0 +1,49 @@
# vim: ft=make
SHELL = /bin/bash
# List all files that are tracked in git but not listed in Filelist.
# Exit code is 2 ("Make encountered an error") if any such files exist.
# Filelist is a Makefile that defines many variables, so we use Make itself to
# query which variables it defines, then expand them all by wrapping each name
# in $(...), importing Filelist and using $(eval).
include Filelist
$(eval all_patterns := $(shell \
make -f Filelist --question --print-data-base --no-builtin-rules \
--no-builtin-variables 2>/dev/null \
| sed -nre \
'/^# makefile .from \x27Filelist\x27,/ { \
n; \
s/ = .*//; \
T; \
s/.*/$$(\0)/; \
p; \
}'))
# In Makefile's `prepeare` target, all the IN_README_DIR files are moved from
# READMEdir to the root, so add those files in their Git-tracked location:
all_patterns := $(all_patterns) \
$(foreach readme, $(IN_README_DIR), READMEdir/$(readme))
# The result 'all_patterns' is a list of patterns (globs), which we expand with
# wildcard to get actual filenames. Note this means Filelist can list a file
# that does not exist, and it will be omitted at this step.
listed_files := $(wildcard $(all_patterns))
# Default target to actually run the comparison:
.PHONY: check
check:
@# There are too many files to list on the command line, so we write
@# that to a temporary file, one per line.
$(file > Filelist-listed-files)
$(foreach filename, $(listed_files),\
$(file >> Filelist-listed-files,$(filename)))
@# Compare the sorted lists. Delete that temporary file on both
@# success and failure, but exit with diff's exit code.
diff -u0 --label files-in-git <(git ls-files | sort) \
--label Filelist <(sort --unique Filelist-listed-files); \
RV=$$?; \
rm Filelist-listed-files; \
(($$RV != 0)) && echo "Add files to the right variable in Filelist."; \
exit $$RV

View File

@@ -590,23 +590,27 @@ export def FTprogress_cweb()
endif
enddef
export def FTprogress_asm()
# These include the leading '%' sign
var ft_swig_keywords = '^\s*%\%(addmethods\|apply\|beginfile\|clear\|constant\|define\|echo\|enddef\|endoffile\|extend\|feature\|fragment\|ignore\|import\|importfile\|include\|includefile\|inline\|insert\|keyword\|module\|name\|namewarn\|native\|newobject\|parms\|pragma\|rename\|template\|typedef\|typemap\|types\|varargs\|warn\)'
# This is the start/end of a block that is copied literally to the processor file (C/C++)
var ft_swig_verbatim_block_start = '^\s*%{'
export def FTi()
if exists("g:filetype_i")
exe "setf " .. g:filetype_i
return
endif
# This function checks for an assembly comment the first ten lines.
# This function checks for an assembly comment or a SWIG keyword or verbatim block in the first 50 lines.
# If not found, assume Progress.
var lnum = 1
while lnum <= 10 && lnum < line('$')
while lnum <= 50 && lnum < line('$')
var line = getline(lnum)
if line =~ '^\s*;' || line =~ '^\*'
FTasm()
return
elseif line !~ '^\s*$' || line =~ '^/\*'
# Not an empty line: Doesn't look like valid assembly code.
# Or it looks like a Progress /* comment
break
elseif line =~ ft_swig_keywords || line =~ ft_swig_verbatim_block_start
setf swig
return
endif
lnum += 1
endwhile

View File

@@ -369,7 +369,7 @@ def DetectFromText(line1: string)
# Strace
# inaccurate fast match first, then use accurate slow match
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:.]* *execve(')
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:. ]*execve(')
|| line1 =~ '^__libc_start_main'
setl ft=strace

32
runtime/autoload/dist/vim.vim vendored Normal file
View File

@@ -0,0 +1,32 @@
" Vim runtime support library,
" runs the vim9 script version or legacy script version
" on demand (mostly for Neovim compatability)
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Nov 04
" enable the zip and gzip plugin by default, if not set
if !exists('g:zip_exec')
let g:zip_exec = 1
endif
if !exists('g:gzip_exec')
let g:gzip_exec = 1
endif
if !has('vim9script')
function dist#vim#IsSafeExecutable(filetype, executable)
let cwd = getcwd()
return get(g:, a:filetype .. '_exec', get(g:, 'plugin_exec', 0)) &&
\ (fnamemodify(exepath(a:executable), ':p:h') !=# cwd
\ || (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1 &&
\ cwd != '.'))
endfunction
finish
endif
def dist#vim#IsSafeExecutable(filetype: string, executable: string): bool
return dist#vim9#IsSafeExecutable(filetype, executable)
enddef

17
runtime/autoload/dist/vim9.vim vendored Normal file
View File

@@ -0,0 +1,17 @@
vim9script
# Vim runtime support library
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2023 Oct 25
export def IsSafeExecutable(filetype: string, executable: string): bool
var cwd = getcwd()
return get(g:, filetype .. '_exec', get(g:, 'plugin_exec', 0))
&& (fnamemodify(exepath(executable), ':p:h') !=# cwd
|| (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1
&& cwd != '.'))
enddef
# Uncomment this line to check for compilation errors early
# defcompile

View File

@@ -11,10 +11,7 @@ fun s:check(cmd)
let name = substitute(a:cmd, '\(\S*\).*', '\1', '')
if !exists("s:have_" . name)
" safety check, don't execute anything from the current directory
let s:tmp_cwd = getcwd()
let f = (fnamemodify(exepath(name), ":p:h") !=# s:tmp_cwd
\ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
unlet s:tmp_cwd
let f = dist#vim#IsSafeExecutable('gzip', name)
if !f
echoerr "Warning: NOT executing " .. name .. " from current directory!"
endif

View File

@@ -1,7 +1,10 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
" Date: May 03, 2023
" Version: 173
" Version: 173a
" Last Change:
" 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a)
" 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a)
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
@@ -400,7 +403,7 @@ if !exists("g:netrw_localcopycmd")
if g:netrw_cygwin
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd = expand("$COMSPEC")
let g:netrw_localcopycmd = expand("$COMSPEC", v:true)
let g:netrw_localcopycmdopt= " /c copy"
endif
elseif has("unix") || has("macunix")
@@ -415,7 +418,7 @@ if !exists("g:netrw_localcopydircmd")
let g:netrw_localcopydircmd = "cp"
let g:netrw_localcopydircmdopt= " -R"
else
let g:netrw_localcopydircmd = expand("$COMSPEC")
let g:netrw_localcopydircmd = expand("$COMSPEC", v:true)
let g:netrw_localcopydircmdopt= " /c xcopy /e /c /h /i /k"
endif
elseif has("unix")
@@ -436,7 +439,7 @@ if has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
call s:NetrwInit("g:netrw_localmkdir","mkdir")
else
let g:netrw_localmkdir = expand("$COMSPEC")
let g:netrw_localmkdir = expand("$COMSPEC", v:true)
let g:netrw_localmkdiropt= " /c mkdir"
endif
else
@@ -452,7 +455,7 @@ if !exists("g:netrw_localmovecmd")
if g:netrw_cygwin
let g:netrw_localmovecmd= "mv"
else
let g:netrw_localmovecmd = expand("$COMSPEC")
let g:netrw_localmovecmd = expand("$COMSPEC", v:true)
let g:netrw_localmovecmdopt= " /c move"
endif
elseif has("unix") || has("macunix")
@@ -11185,16 +11188,16 @@ fun! s:LocalListing()
" call Decho("pfile <".pfile.">",'~'.expand("<slnum>"))
if w:netrw_liststyle == s:LONGLIST
let longfile= printf("%-".g:netrw_maxfilenamelen."S",pfile)
let sz = getfsize(filename)
let szlen = 15 - (strdisplaywidth(longfile) - g:netrw_maxfilenamelen)
let szlen = (szlen > 0) ? szlen : 0
let fsz = printf("%".szlen."S",sz)
if g:netrw_sizestyle =~# "[hH]"
let sz= s:NetrwHumanReadable(sz)
endif
let longfile= printf("%-".g:netrw_maxfilenamelen."S",pfile)
let pfile = longfile." ".sz." ".strftime(g:netrw_timefmt,getftime(filename))
let fsz = printf("%".szlen."S",sz)
let pfile = longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
endif
@@ -11204,7 +11207,7 @@ fun! s:LocalListing()
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (time)")
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
let t = getftime(filename)
let ft = strpart("000000000000000000",1,18-strlen(t)).t
let ft = printf("%018d",t)
" call Decho("exe NetrwKeepj put ='".ft.'/'.pfile."'",'~'.expand("<slnum>"))
let ftpfile= ft.'/'.pfile
sil! NetrwKeepj put=ftpfile
@@ -11214,10 +11217,7 @@ fun! s:LocalListing()
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (size)")
" call Decho("getfsize(".filename.")=".getfsize(filename),'~'.expand("<slnum>"))
let sz = getfsize(filename)
if g:netrw_sizestyle =~# "[hH]"
let sz= s:NetrwHumanReadable(sz)
endif
let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz
let fsz = printf("%018d",sz)
" call Decho("exe NetrwKeepj put ='".fsz.'/'.filename."'",'~'.expand("<slnum>"))
let fszpfile= fsz.'/'.pfile
sil! NetrwKeepj put =fszpfile

View File

@@ -1,7 +1,7 @@
" tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION
" Date: Jan 07, 2020
" Version: 32
" Date: Nov 14, 2023
" Version: 32b (with modifications from the Vim Project)
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" License: Vim License (see vim's :help license)
"
@@ -22,7 +22,7 @@
if &cp || exists("g:loaded_tar")
finish
endif
let g:loaded_tar= "v32"
let g:loaded_tar= "v32a"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2"
@@ -208,18 +208,24 @@ fun! tar#Browse(tarfile)
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~# '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
keepj sil! %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".fnameescape(a:tarfile)
let &ei= eikeep
keepj sil! 1d
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
"
" The following should not be neccessary, since in case of errors the
" previous if statement should have caught the problem (because tar exited
" with a non-zero exit code).
" if line("$") == curlast || ( line("$") == (curlast + 1) &&
" \ getline("$") =~# '\c\<\%(warning\|error\|inappropriate\|unrecognized\)\>' &&
" \ getline("$") =~ '\s' )
" redraw!
" echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
" keepj sil! %d
" let eikeep= &ei
" set ei=BufReadCmd,FileReadCmd
" exe "r ".fnameescape(a:tarfile)
" let &ei= eikeep
" keepj sil! 1d
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
" return
" endif
" set up maps supported for tar
setlocal noma nomod ro

View File

@@ -57,14 +57,10 @@ if !exists("g:zip_extractcmd")
let g:zip_extractcmd= g:zip_unzipcmd
endif
let s:tmp_cwd = getcwd()
if (fnamemodify(exepath(g:zip_unzipcmd), ":p:h") ==# getcwd()
\ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.'))
unlet s:tmp_cwd
if !dist#vim#IsSafeExecutable('zip', g:zip_unzipcmd)
echoerr "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!"
finish
endif
unlet s:tmp_cwd
" ----------------
" Functions: {{{1

338
runtime/doc/Make_all.mak Normal file
View File

@@ -0,0 +1,338 @@
# Makefile with common components
DOCS = \
arabic.txt \
autocmd.txt \
builtin.txt \
change.txt \
channel.txt \
cmdline.txt \
debug.txt \
debugger.txt \
develop.txt \
diff.txt \
digraph.txt \
editing.txt \
eval.txt \
farsi.txt \
filetype.txt \
fold.txt \
ft_ada.txt \
ft_context.txt \
ft_mp.txt \
ft_ps1.txt \
ft_raku.txt \
ft_rust.txt \
ft_sql.txt \
gui.txt \
gui_w32.txt \
gui_x11.txt \
hangulin.txt \
hebrew.txt \
help.txt \
helphelp.txt \
howto.txt \
if_cscop.txt \
if_lua.txt \
if_mzsch.txt \
if_ole.txt \
if_perl.txt \
if_pyth.txt \
if_ruby.txt \
if_sniff.txt \
if_tcl.txt \
indent.txt \
index.txt \
insert.txt \
intro.txt \
map.txt \
mbyte.txt \
message.txt \
mlang.txt \
motion.txt \
netbeans.txt \
options.txt \
os_390.txt \
os_amiga.txt \
os_beos.txt \
os_dos.txt \
os_haiku.txt \
os_mac.txt \
os_mint.txt \
os_msdos.txt \
os_os2.txt \
os_qnx.txt \
os_risc.txt \
os_unix.txt \
os_vms.txt \
os_win32.txt \
pattern.txt \
pi_getscript.txt \
pi_gzip.txt \
pi_logipat.txt \
pi_netrw.txt \
pi_paren.txt \
pi_spec.txt \
pi_tar.txt \
pi_vimball.txt \
pi_zip.txt \
popup.txt \
print.txt \
quickfix.txt \
quickref.txt \
quotes.txt \
recover.txt \
remote.txt \
repeat.txt \
rileft.txt \
russian.txt \
scroll.txt \
sign.txt \
spell.txt \
sponsor.txt \
starting.txt \
syntax.txt \
tabpage.txt \
tagsrch.txt \
term.txt \
terminal.txt \
testing.txt \
textprop.txt \
tips.txt \
todo.txt \
uganda.txt \
undo.txt \
userfunc.txt \
usr_01.txt \
usr_02.txt \
usr_03.txt \
usr_04.txt \
usr_05.txt \
usr_06.txt \
usr_07.txt \
usr_08.txt \
usr_09.txt \
usr_10.txt \
usr_11.txt \
usr_12.txt \
usr_20.txt \
usr_21.txt \
usr_22.txt \
usr_23.txt \
usr_24.txt \
usr_25.txt \
usr_26.txt \
usr_27.txt \
usr_28.txt \
usr_29.txt \
usr_30.txt \
usr_31.txt \
usr_32.txt \
usr_40.txt \
usr_41.txt \
usr_42.txt \
usr_43.txt \
usr_44.txt \
usr_45.txt \
usr_50.txt \
usr_51.txt \
usr_52.txt \
usr_90.txt \
usr_toc.txt \
various.txt \
version4.txt \
version5.txt \
version6.txt \
version7.txt \
version8.txt \
version9.txt \
vi_diff.txt \
vim9.txt \
vim9class.txt \
visual.txt \
windows.txt \
workshop.txt
HTMLS = \
arabic.html \
autocmd.html \
builtin.html \
change.html \
channel.html \
cmdline.html \
debug.html \
debugger.html \
develop.html \
diff.html \
digraph.html \
editing.html \
eval.html \
farsi.html \
filetype.html \
fold.html \
ft_ada.html \
ft_context.html \
ft_mp.html \
ft_ps1.html \
ft_raku.html \
ft_rust.html \
ft_sql.html \
gui.html \
gui_w32.html \
gui_x11.html \
hangulin.html \
hebrew.html \
helphelp.html \
howto.html \
if_cscop.html \
if_lua.html \
if_mzsch.html \
if_ole.html \
if_perl.html \
if_pyth.html \
if_ruby.html \
if_sniff.html \
if_tcl.html \
indent.html \
index.html \
insert.html \
intro.html \
map.html \
mbyte.html \
message.html \
mlang.html \
motion.html \
netbeans.html \
options.html \
os_390.html \
os_amiga.html \
os_beos.html \
os_dos.html \
os_haiku.html \
os_mac.html \
os_mint.html \
os_msdos.html \
os_os2.html \
os_qnx.html \
os_risc.html \
os_unix.html \
os_vms.html \
os_win32.html \
pattern.html \
pi_getscript.html \
pi_gzip.html \
pi_logipat.html \
pi_netrw.html \
pi_paren.html \
pi_spec.html \
pi_tar.html \
pi_vimball.html \
pi_zip.html \
popup.html \
print.html \
quickfix.html \
quickref.html \
quotes.html \
recover.html \
remote.html \
repeat.html \
rileft.html \
russian.html \
scroll.html \
sign.html \
spell.html \
sponsor.html \
starting.html \
syntax.html \
tabpage.html \
tagsrch.html \
term.html \
terminal.html \
testing.html \
textprop.html \
tips.html \
todo.html \
uganda.html \
undo.html \
userfunc.html \
usr_01.html \
usr_02.html \
usr_03.html \
usr_04.html \
usr_05.html \
usr_06.html \
usr_07.html \
usr_08.html \
usr_09.html \
usr_10.html \
usr_11.html \
usr_12.html \
usr_20.html \
usr_21.html \
usr_22.html \
usr_23.html \
usr_24.html \
usr_25.html \
usr_26.html \
usr_27.html \
usr_28.html \
usr_29.html \
usr_30.html \
usr_31.html \
usr_32.html \
usr_40.html \
usr_41.html \
usr_42.html \
usr_43.html \
usr_44.html \
usr_45.html \
usr_50.html \
usr_51.html \
usr_52.html \
usr_90.html \
usr_toc.html \
various.html \
version4.html \
version5.html \
version6.html \
version7.html \
version8.html \
version9.html \
vi_diff.html \
vimindex.html \
vim9.html \
vim9class.html \
visual.html \
windows.html \
workshop.html
CONVERTED = \
vim-da.UTF-8.1 \
vimdiff-da.UTF-8.1 \
vimtutor-da.UTF-8.1 \
vim-de.UTF-8.1 \
vim-fr.UTF-8.1 \
evim-fr.UTF-8.1 \
vimdiff-fr.UTF-8.1 \
vimtutor-fr.UTF-8.1 \
xxd-fr.UTF-8.1 \
vim-it.UTF-8.1 \
evim-it.UTF-8.1 \
vimdiff-it.UTF-8.1 \
vimtutor-it.UTF-8.1 \
xxd-it.UTF-8.1 \
vim-pl.UTF-8.1 \
evim-pl.UTF-8.1 \
vimdiff-pl.UTF-8.1 \
vimtutor-pl.UTF-8.1 \
xxd-pl.UTF-8.1 \
vim-ru.UTF-8.1 \
evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \
vimtutor-ru.UTF-8.1 \
xxd-ru.UTF-8.1 \
vim-tr.UTF-8.1 \
evim-tr.UTF-8.1 \
vimdiff-tr.UTF-8.1 \
vimtutor-tr.UTF-8.1

490
runtime/doc/Make_mvc.mak Normal file
View File

@@ -0,0 +1,490 @@
#
# Makefile for the Vim documentation on Windows
#
# 17.11.23, Restorer, <restorer@mail2k.ru>
# Common components
!INCLUDE Make_all.mak
# TODO: to think about what to use instead of awk. PowerShell?
#AWK =
# Correct the following line for the where executeable file vim is installed.
# Please do not put the path in quotes.
VIMEXE = D:\Programs\Vim\vim90\vim.exe
# Correct the following line for the directory where iconv installed.
# Please do not put the path in quotes.
ICONV_PATH = D:\Programs\GetText\bin
# In case some package like GnuWin32, UnixUtils
# or something similar is installed on the system.
# If the "touch" program is installed on the system, but it is not registered
# in the %PATH% environment variable, then specify the full path to this file.
!IF EXIST ("touch.exe")
TOUCH = "touch.exe" %1
!ELSE
TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 )
!ENDIF
# In case some package like GnuWin32, UnixUtils, gettext
# or something similar is installed on the system.
# If the "iconv" program is installed on the system, but it is not registered
# in the %PATH% environment variable, then specify the full path to this file.
!IF EXIST ("iconv.exe")
ICONV = "iconv.exe"
!ELSEIF EXIST ("$(ICONV_PATH)\iconv.exe")
ICONV = "$(ICONV_PATH)\iconv.exe"
!ENDIF
RM = del /q
.SUFFIXES :
.SUFFIXES : .c .o .txt .html
all : tags perlhtml $(CONVERTED)
# Use "doctags" to generate the tags file. Only works for English!
tags : doctags $(DOCS)
doctags.exe $(DOCS) | sort /L C /O tags
powershell -nologo -noprofile -Command \
"(Get-Content -Raw tags | Get-Unique | % {$$_ -replace \"`r\", \"\"}) \
| New-Item -Force -Path . -ItemType file -Name tags"
doctags : doctags.c
$(CC) doctags.c
# Use Vim to generate the tags file. Can only be used when Vim has been
# compiled and installed. Supports multiple languages.
vimtags : $(DOCS)
@"$(VIMEXE)" --clean -esX -V1 -u doctags.vim
uganda.nsis.txt : uganda.???
!@powershell -nologo -noprofile -Command \
$$ext=(Get-Item $?).Extension; (Get-Content $? ^| \
% {$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''}) \
^| Set-Content $*$$ext
!@powershell -nologo -noprofile -Command \
$$ext=(Get-Item $?).Extension; \
(Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1' \
^| Set-Content $(@B)$$ext
# TODO:
#html: noerrors tags $(HTMLS)
# if exist errors.log (more errors.log)
# TODO:
#noerrors:
# $(RM) errors.log
# TODO:
#.txt.html:
# TODO:
#index.html: help.txt
# TODO:
#vimindex.html: index.txt
# TODO:
#tags.ref tags.html: tags
# Perl version of .txt to .html conversion.
# There can't be two rules to produce a .html from a .txt file.
# Just run over all .txt files each time one changes. It's fast anyway.
perlhtml : tags $(DOCS)
vim2html.pl tags $(DOCS)
# Check URLs in the help with "curl" or "powershell".
test_urls :
"$(VIMEXE)" -S test_urls.vim
clean :
$(RM) doctags.exe doctags.obj
$(RM) *.html vim-stylesheet.css
arabic.txt :
<<touch.bat $@
@$(TOUCH)
<<
farsi.txt :
<<touch.bat $@
@$(TOUCH)
<<
hebrew.txt :
<<touch.bat $@
@$(TOUCH)
<<
russian.txt :
<<touch.bat $@
@$(TOUCH)
<<
gui_w32.txt :
<<touch.bat $@
@$(TOUCH)
<<
if_ole.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_390.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_amiga.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_beos.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_dos.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_haiku.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_mac.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_mint.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_msdos.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_os2.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_qnx.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_risc.txt :
<<touch.bat $@
@$(TOUCH)
<<
os_win32.txt :
<<touch.bat $@
@$(TOUCH)
<<
convert-all : $(CONVERTED)
!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
!ERROR The program "PowerShell" version 3.0 or higher is required to work
!ENDIF
vim-da.UTF-8.1 : vim-da.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimdiff-da.UTF-8.1 : vimdiff-da.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimtutor-da.UTF-8.1 : vimtutor-da.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vim-de.UTF-8.1 : vim-de.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
evim-fr.UTF-8.1 : evim-fr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vim-fr.UTF-8.1 : vim-fr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimdiff-fr.UTF-8.1 : vimdiff-fr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimtutor-fr.UTF-8.1 : vimtutor-fr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t utf-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
xxd-fr.UTF-8.1 : xxd-fr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
evim-it.UTF-8.1 : evim-it.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vim-it.UTF-8.1 : vim-it.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimdiff-it.UTF-8.1 : vimdiff-it.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimtutor-it.UTF-8.1 : vimtutor-it.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
xxd-it.UTF-8.1 : xxd-it.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
evim-pl.UTF-8.1 : evim-pl.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vim-pl.UTF-8.1 : vim-pl.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimdiff-pl.UTF-8.1 : vimdiff-pl.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimtutor-pl.UTF-8.1 : vimtutor-pl.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
xxd-pl.UTF-8.1 : xxd-pl.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
evim-ru.UTF-8.1 : evim-ru.1
!IF DEFINED (ICONV)
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vim-ru.UTF-8.1 : vim-ru.1
!IF DEFINED (ICONV)
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimdiff-ru.UTF-8.1 : vimdiff-ru.1
!IF DEFINED (ICONV)
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimtutor-ru.UTF-8.1 : vimtutor-ru.1
!IF DEFINED (ICONV)
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
xxd-ru.UTF-8.1 : xxd-ru.1
!IF DEFINED (ICONV)
$(ICONV) -f KOI8-R -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
evim-tr.UTF-8.1 : evim-tr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vim-tr.UTF-8.1 : vim-tr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimdiff-tr.UTF-8.1 : vimdiff-tr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
vimtutor-tr.UTF-8.1 : vimtutor-tr.1
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
!ELSE
# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
powershell -nologo -noprofile -Command \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:

View File

@@ -13,337 +13,8 @@ VIMEXE = vim
# AWK, used for "make html". Comment this out if the include gives problems.
include ../../src/auto/config.mk
DOCS = \
arabic.txt \
autocmd.txt \
builtin.txt \
change.txt \
channel.txt \
cmdline.txt \
debug.txt \
debugger.txt \
develop.txt \
diff.txt \
digraph.txt \
editing.txt \
eval.txt \
farsi.txt \
filetype.txt \
fold.txt \
ft_ada.txt \
ft_context.txt \
ft_mp.txt \
ft_ps1.txt \
ft_raku.txt \
ft_rust.txt \
ft_sql.txt \
gui.txt \
gui_w32.txt \
gui_x11.txt \
hangulin.txt \
hebrew.txt \
help.txt \
helphelp.txt \
howto.txt \
if_cscop.txt \
if_lua.txt \
if_mzsch.txt \
if_ole.txt \
if_perl.txt \
if_pyth.txt \
if_ruby.txt \
if_sniff.txt \
if_tcl.txt \
indent.txt \
index.txt \
insert.txt \
intro.txt \
map.txt \
mbyte.txt \
message.txt \
mlang.txt \
motion.txt \
netbeans.txt \
options.txt \
os_390.txt \
os_amiga.txt \
os_beos.txt \
os_dos.txt \
os_haiku.txt \
os_mac.txt \
os_mint.txt \
os_msdos.txt \
os_os2.txt \
os_qnx.txt \
os_risc.txt \
os_unix.txt \
os_vms.txt \
os_win32.txt \
pattern.txt \
pi_getscript.txt \
pi_gzip.txt \
pi_logipat.txt \
pi_netrw.txt \
pi_paren.txt \
pi_spec.txt \
pi_tar.txt \
pi_vimball.txt \
pi_zip.txt \
popup.txt \
print.txt \
quickfix.txt \
quickref.txt \
quotes.txt \
recover.txt \
remote.txt \
repeat.txt \
rileft.txt \
russian.txt \
scroll.txt \
sign.txt \
spell.txt \
sponsor.txt \
starting.txt \
syntax.txt \
tabpage.txt \
tagsrch.txt \
term.txt \
terminal.txt \
testing.txt \
textprop.txt \
tips.txt \
todo.txt \
uganda.txt \
undo.txt \
userfunc.txt \
usr_01.txt \
usr_02.txt \
usr_03.txt \
usr_04.txt \
usr_05.txt \
usr_06.txt \
usr_07.txt \
usr_08.txt \
usr_09.txt \
usr_10.txt \
usr_11.txt \
usr_12.txt \
usr_20.txt \
usr_21.txt \
usr_22.txt \
usr_23.txt \
usr_24.txt \
usr_25.txt \
usr_26.txt \
usr_27.txt \
usr_28.txt \
usr_29.txt \
usr_30.txt \
usr_31.txt \
usr_32.txt \
usr_40.txt \
usr_41.txt \
usr_42.txt \
usr_43.txt \
usr_44.txt \
usr_45.txt \
usr_50.txt \
usr_51.txt \
usr_52.txt \
usr_90.txt \
usr_toc.txt \
various.txt \
version4.txt \
version5.txt \
version6.txt \
version7.txt \
version8.txt \
version9.txt \
vi_diff.txt \
vim9.txt \
vim9class.txt \
visual.txt \
windows.txt \
workshop.txt
HTMLS = \
arabic.html \
autocmd.html \
builtin.html \
change.html \
channel.html \
cmdline.html \
debug.html \
debugger.html \
develop.html \
diff.html \
digraph.html \
editing.html \
eval.html \
farsi.html \
filetype.html \
fold.html \
ft_ada.html \
ft_context.html \
ft_mp.html \
ft_ps1.html \
ft_raku.html \
ft_rust.html \
ft_sql.html \
gui.html \
gui_w32.html \
gui_x11.html \
hangulin.html \
hebrew.html \
helphelp.html \
howto.html \
if_cscop.html \
if_lua.html \
if_mzsch.html \
if_ole.html \
if_perl.html \
if_pyth.html \
if_ruby.html \
if_sniff.html \
if_tcl.html \
indent.html \
index.html \
insert.html \
intro.html \
map.html \
mbyte.html \
message.html \
mlang.html \
motion.html \
netbeans.html \
options.html \
os_390.html \
os_amiga.html \
os_beos.html \
os_dos.html \
os_haiku.html \
os_mac.html \
os_mint.html \
os_msdos.html \
os_os2.html \
os_qnx.html \
os_risc.html \
os_unix.html \
os_vms.html \
os_win32.html \
pattern.html \
pi_getscript.html \
pi_gzip.html \
pi_logipat.html \
pi_netrw.html \
pi_paren.html \
pi_spec.html \
pi_tar.html \
pi_vimball.html \
pi_zip.html \
popup.html \
print.html \
quickfix.html \
quickref.html \
quotes.html \
recover.html \
remote.html \
repeat.html \
rileft.html \
russian.html \
scroll.html \
sign.html \
spell.html \
sponsor.html \
starting.html \
syntax.html \
tabpage.html \
tagsrch.html \
term.html \
terminal.html \
testing.html \
textprop.html \
tips.html \
todo.html \
uganda.html \
undo.html \
userfunc.html \
usr_01.html \
usr_02.html \
usr_03.html \
usr_04.html \
usr_05.html \
usr_06.html \
usr_07.html \
usr_08.html \
usr_09.html \
usr_10.html \
usr_11.html \
usr_12.html \
usr_20.html \
usr_21.html \
usr_22.html \
usr_23.html \
usr_24.html \
usr_25.html \
usr_26.html \
usr_27.html \
usr_28.html \
usr_29.html \
usr_30.html \
usr_31.html \
usr_32.html \
usr_40.html \
usr_41.html \
usr_42.html \
usr_43.html \
usr_44.html \
usr_45.html \
usr_50.html \
usr_51.html \
usr_52.html \
usr_90.html \
usr_toc.html \
various.html \
version4.html \
version5.html \
version6.html \
version7.html \
version8.html \
version9.html \
vi_diff.html \
vimindex.html \
vim9.html \
vim9class.html \
visual.html \
windows.html \
workshop.html
CONVERTED = \
vim-fr.UTF-8.1 \
evim-fr.UTF-8.1 \
vimdiff-fr.UTF-8.1 \
vimtutor-fr.UTF-8.1 \
xxd-fr.UTF-8.1 \
vim-it.UTF-8.1 \
evim-it.UTF-8.1 \
vimdiff-it.UTF-8.1 \
vimtutor-it.UTF-8.1 \
xxd-it.UTF-8.1 \
vim-pl.UTF-8.1 \
evim-pl.UTF-8.1 \
vimdiff-pl.UTF-8.1 \
vimtutor-pl.UTF-8.1 \
xxd-pl.UTF-8.1 \
vim-ru.UTF-8.1 \
evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \
vimtutor-ru.UTF-8.1 \
xxd-ru.UTF-8.1 \
vim-tr.UTF-8.1 \
evim-tr.UTF-8.1 \
vimdiff-tr.UTF-8.1 \
vimtutor-tr.UTF-8.1
# Common components
include Make_all.mak
.SUFFIXES:
.SUFFIXES: .c .o .txt .html
@@ -476,6 +147,18 @@ os_win32.txt:
# Note that $< works with GNU make while $> works for BSD make.
# Is there a solution that works for both??
vim-da.UTF-8.1: vim-da.1
iconv -f latin1 -t utf-8 $< >$@
vimdiff-da.UTF-8.1: vimdiff-da.1
iconv -f latin1 -t utf-8 $< >$@
vimtutor-da.UTF-8.1: vimtutor-da.1
iconv -f latin1 -t utf-8 $< >$@
vim-de.UTF-8.1: vim-de.1
iconv -f latin1 -t utf-8 $< >$@
vim-fr.UTF-8.1: vim-fr.1
iconv -f latin1 -t utf-8 $< >$@

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.0. Last change: 2023 Sep 27
*builtin.txt* For Vim version 9.0. Last change: 2023 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4008,8 +4008,8 @@ getqflist([{what}]) *getqflist()*
text description of the error
type type of the error, 'E', '1', etc.
valid |TRUE|: recognized error message
user_data
custom data associated with the item, can be
user_data
custom data associated with the item, can be
any type.
When there is no error list or it's empty, an empty list is
@@ -6413,7 +6413,9 @@ mode([expr]) Return a string that indicates the current mode.
Rvx Virtual Replace mode |i_CTRL-X| completion
c Command-line editing
ct Command-line editing via Terminal-Job mode
cr Command-line editing overstrike mode |c_<Insert>|
cv Vim Ex mode |gQ|
cvr Vim Ex mode while in overstrike mode |c_<Insert>|
ce Normal Ex mode |Q|
r Hit-enter prompt
rm The -- more -- prompt
@@ -6793,96 +6795,96 @@ printf({fmt}, {expr1} ...) *printf()*
having a different word order, positional arguments may be
used to indicate this. For instance: >
#, c-format
msgid "%s returning %s"
msgstr "waarde %2$s komt terug van %1$s"
#, c-format
msgid "%s returning %s"
msgstr "waarde %2$s komt terug van %1$s"
<
In this example, the sentence has its 2 string arguments reversed
in the output. >
In this example, the sentence has its 2 string arguments
reversed in the output. >
echo printf(
"In The Netherlands, vim's creator's name is: %1$s %2$s",
"Bram", "Moolenaar")
< In The Netherlands, vim's creator's name is: Bram Moolenaar >
echo printf(
"In The Netherlands, vim's creator's name is: %1$s %2$s",
"Bram", "Moolenaar")
< In The Netherlands, vim's creator's name is: Bram Moolenaar >
echo printf(
"In Belgium, vim's creator's name is: %2$s %1$s",
"Bram", "Moolenaar")
< In Belgium, vim's creator's name is: Moolenaar Bram
echo printf(
"In Belgium, vim's creator's name is: %2$s %1$s",
"Bram", "Moolenaar")
< In Belgium, vim's creator's name is: Moolenaar Bram
Width (and precision) can be specified using the '*' specifier.
In this case, you must specify the field width position in the
argument list. >
echo printf("%1$*2$.*3$d", 1, 2, 3)
< 001 >
echo printf("%2$*3$.*1$d", 1, 2, 3)
< 2 >
echo printf("%3$*1$.*2$d", 1, 2, 3)
< 03 >
echo printf("%1$*2$.*3$g", 1.4142, 2, 3)
< 1.414
echo printf("%1$*2$.*3$d", 1, 2, 3)
< 001 >
echo printf("%2$*3$.*1$d", 1, 2, 3)
< 2 >
echo printf("%3$*1$.*2$d", 1, 2, 3)
< 03 >
echo printf("%1$*2$.*3$g", 1.4142, 2, 3)
< 1.414
You can mix specifying the width and/or precision directly
and via positional arguments: >
echo printf("%1$4.*2$f", 1.4142135, 6)
< 1.414214 >
echo printf("%1$*2$.4f", 1.4142135, 6)
< 1.4142 >
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
< 1.41
echo printf("%1$4.*2$f", 1.4142135, 6)
< 1.414214 >
echo printf("%1$*2$.4f", 1.4142135, 6)
< 1.4142 >
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
< 1.41
*E1500*
You cannot mix positional and non-positional arguments: >
echo printf("%s%1$s", "One", "Two")
< E1500: Cannot mix positional and non-positional
arguments: %s%1$s
echo printf("%s%1$s", "One", "Two")
< E1500: Cannot mix positional and non-positional arguments:
%s%1$s
*E1501*
You cannot skip a positional argument in a format string: >
echo printf("%3$s%1$s", "One", "Two", "Three")
< E1501: format argument 2 unused in $-style
format: %3$s%1$s
echo printf("%3$s%1$s", "One", "Two", "Three")
< E1501: format argument 2 unused in $-style format:
%3$s%1$s
*E1502*
You can re-use a [field-width] (or [precision]) argument: >
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
< 1 at width 2 is: 01
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
< 1 at width 2 is: 01
However, you can't use it as a different type: >
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
< E1502: Positional argument 2 used as field
width reused as different type: long int/int
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
< E1502: Positional argument 2 used as field width reused as
different type: long int/int
*E1503*
When a positional argument is used, but not the correct number
or arguments is given, an error is raised: >
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
< E1503: Positional argument 3 out of bounds:
%1$d at width %2$d is: %01$*2$.*3$d
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
< E1503: Positional argument 3 out of bounds: %1$d at width
%2$d is: %01$*2$.*3$d
Only the first error is reported: >
echo printf("%01$*2$.*3$d %4$d", 1, 2)
< E1503: Positional argument 3 out of bounds:
%01$*2$.*3$d %4$d
echo printf("%01$*2$.*3$d %4$d", 1, 2)
< E1503: Positional argument 3 out of bounds: %01$*2$.*3$d
%4$d
*E1504*
A positional argument can be used more than once: >
echo printf("%1$s %2$s %1$s", "One", "Two")
< One Two One
echo printf("%1$s %2$s %1$s", "One", "Two")
< One Two One
However, you can't use a different type the second time: >
echo printf("%1$s %2$s %1$d", "One", "Two")
< E1504: Positional argument 1 type used
inconsistently: int/string
echo printf("%1$s %2$s %1$d", "One", "Two")
< E1504: Positional argument 1 type used inconsistently:
int/string
*E1505*
Various other errors that lead to a format string being
wrongly formatted lead to: >
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
< E1505: Invalid format specifier:
%1$d at width %2$d is: %01$*2$.3$d
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
< E1505: Invalid format specifier: %1$d at width %2$d is:
%01$*2$.3$d
*E1507*
This internal error indicates that the logic to parse a
@@ -10177,8 +10179,8 @@ type({expr}) The result is a Number representing the type of {expr}.
Job: 8 |v:t_job|
Channel: 9 |v:t_channel|
Blob: 10 |v:t_blob|
Class 12 |v:t_class|
Object 13 |v:t_object|
Class: 12 |v:t_class|
Object: 13 |v:t_object|
For backward compatibility, this method can be used: >
:if type(myvar) == type(0)
:if type(myvar) == type("")

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 9.0. Last change: 2023 Sep 19
*change.txt* For Vim version 9.0. Last change: 2023 Nov 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -644,9 +644,9 @@ For other systems the tmpnam() library function is used.
current line only. When [count] is given, replace in
[count] lines, starting with the last line in [range].
When [range] is omitted start in the current line.
*E939*
[count] must be a positive number. Also see
|cmdline-ranges|.
*E939* *E1510*
[count] must be a positive number (max 2147483647)
Also see |cmdline-ranges|.
See |:s_flags| for [flags].
The delimiter doesn't need to be /, see

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 9.0. Last change: 2023 May 20
*cmdline.txt* For Vim version 9.0. Last change: 2023 Nov 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -362,6 +362,7 @@ terminals)
A positive number represents the absolute index of an entry
as it is given in the first column of a :history listing.
This number remains fixed even if other entries are deleted.
(see |E1510|)
A negative number means the relative position of an entry,
counted from the newest entry (which has index -1) backwards.

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.0. Last change: 2023 Jun 01
*eval.txt* For Vim version 9.0. Last change: 2023 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -36,6 +36,7 @@ a remark is given.
11. No +eval feature |no-eval-feature|
12. The sandbox |eval-sandbox|
13. Textlock |textlock|
14. Vim script library |vim-script-library|
Testing support is documented in |testing.txt|.
Profiling is documented at |profiling|.
@@ -4801,5 +4802,37 @@ This is not allowed when the textlock is active:
- closing a window or quitting Vim
- etc.
==============================================================================
14. Vim script library *vim-script-library*
Vim comes bundled with a Vim script library, that can be used by runtime,
script authors. Currently, it only includes very few functions, but it may
grow over time.
The functions are available as |Vim9-script| as well as using legacy Vim
script (to be used for non Vim 9.0 versions and Neovim).
*dist#vim* *dist#vim9*
The functions make use of the autoloaded prefix "dist#vim" (for legacy Vim
script and Neovim) and "dist#vim9" for Vim9 script.
The following functions are available:
dist#vim#IsSafeExecutable(filetype, executable) ~
dist#vim9#IsSafeExecutable(filetype:string, executable:string): bool ~
This function takes a filetype and an executable and checks whether it is safe
to execute the given executable. For security reasons users may not want to
have Vim execute random executables or may have forbidden to do so for
specific filetypes by setting the "<filetype>_exec" variable (|plugin_exec|).
It returns |true| or |false| to indicate whether the plugin should run the given
exectuable. It takes the following arguments:
argument type ~
filetype string
executable string
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -394,17 +394,25 @@ highlighting. So do these:
You can find the details in $VIMRUNTIME/syntax/help.vim
*inclusion*
Vim is for everybody, no matter race, gender or anything. Some people make a
big deal about using "he" or "his" when referring to the user, thinking it
means we assume the user is male. That is not the case, it's just a habit of
writing help text, which quite often is many years old. Also, a lot of the
text is written by contributors for whom English is not their first language.
We do not make any assumptions about the gender of the user, no matter how the
text is phrased. Some people have suggested using "they", but that is not
regular English. We do not want to spend much time on this discussion. The
goal is that the reader understands how Vim works, the exact wording is
GENDER NEUTRAL LANGUAGE
*gender-neutral* *inclusion*
Vim is for everybody, no matter race, gender or anything. For new or updated
help text, gender neutral language is recommended. Some of the help text is
many years old and there is no need to change it. We do not make any
assumptions about the gender of the user, no matter how the text is phrased.
The goal is that the reader understands how Vim works, the exact wording is
secondary.
Many online technical style guides include sections about gender neutral
language. Here are a few: >
https://developers.google.com/style/pronouns
https://techwhirl.com/gender-neutral-technical-writing/
https://www.skillsyouneed.com/write/gender-neutral-language.html
https://ualr.edu/writingcenter/avoid-sexist-language/
<
Note: gender neutral language does not require using singular "they".
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*if_ole.txt* For Vim version 9.0. Last change: 2022 Oct 08
*if_ole.txt* For Vim version 9.0. Last change: 2023 Nov 19
VIM REFERENCE MANUAL by Paul Moore
@@ -59,7 +59,7 @@ Vim exposes four methods for use by clients.
SendKeys(keys) Execute a series of keys.
This method takes a single parameter, which is a string of keystrokes. These
keystrokes are executed exactly as if they had been types in at the keyboard.
keystrokes are executed exactly as if they had been typed in at the keyboard.
Special keys can be given using their <..> names, as for the right hand side
of a mapping. Note: Execution of the Ex "normal" command is not supported -
see below |ole-normal|.

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 9.0. Last change: 2023 Aug 15
*intro.txt* For Vim version 9.0. Last change: 2023 Nov 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -43,7 +43,8 @@ document, there is a separate document for each supported system, see
*pronounce*
Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
capital, since it's a name, again like Jim.
capital, since it's a name, again like Jim. The GUI version of Vim is written
"gVim" (or "GVim" when at the beginning of a sentence).
This manual is a reference for all the Vim commands and options. This is not
an introduction to the use of Vi or Vim, it gets a bit complicated here and
@@ -97,12 +98,14 @@ There are several mailing lists for Vim:
<vim-mac@vim.org> *vim-mac* *vim_mac*
For discussions about using and improving the Macintosh version of
Vim.
<vim-security@googlegroups.com> *vim-security*
This list is for (privately) discussing security relevant issues of Vim.
See http://www.vim.org/maillist.php for the latest information.
NOTE:
- Anyone can see the archive, e.g. on Google groups. Search this if you have
questions.
questions, except for the vim-security list.
- You can only send messages to these lists if you have subscribed!
- The first message is moderated, thus it may take a few hours to show up.
- You need to send the messages from the same location as where you subscribed

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 9.0. Last change: 2023 May 24
*message.txt* For Vim version 9.0. Last change: 2023 Nov 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -135,6 +135,8 @@ This happens when an Ex command executes an Ex command that executes an Ex
command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
larger. When it's more there probably is an endless loop. Probably a
|:execute| or |:source| command is involved.
Can also happen with a recursive callback function (|job-callback|).
A limit of 20 is used here.
*E254*
Cannot allocate color {name} ~

View File

@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 9.0. Last change: 2022 Apr 03
*netbeans.txt* For Vim version 9.0. Last change: 2023 Nov 26
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -846,7 +846,7 @@ REJECT Not used.
These errors occur when a message violates the protocol:
*E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636*
*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
*E647* *E648* *E649* *E650* *E651* *E652*
*E647* *E648* *E650* *E651* *E652*
==============================================================================

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.0. Last change: 2023 Oct 23
*options.txt* For Vim version 9.0. Last change: 2023 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1424,7 +1424,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Some applications use the BOM to recognize the encoding of the file.
Often used for UCS-2 files on MS-Windows. For other applications it
causes trouble, for example: "cat file1 file2" makes the BOM of file2
appear halfway the resulting file. Gcc doesn't accept a BOM.
appear halfway through the resulting file. Gcc doesn't accept a BOM.
When Vim reads a file and 'fileencodings' starts with "ucs-bom", a
check for the presence of the BOM is done and 'bomb' set accordingly.
Unless 'binary' is set, it is removed from the first line, so that you
@@ -3494,8 +3494,8 @@ A jump table for the options with a short description can be found at |Q_op|.
and the value of that item:
item name default Used for ~
stl ' ' or '^' statusline of the current window
stlnc ' ' or '=' statusline of the non-current windows
stl ' ' statusline of the current window
stlnc ' ' statusline of the non-current windows
vert '|' vertical separators |:vsplit|
fold '-' filling 'foldtext'
foldopen '-' mark the beginning of a fold
@@ -3505,15 +3505,11 @@ A jump table for the options with a short description can be found at |Q_op|.
eob '~' empty lines below the end of a buffer
lastline '@' 'display' contains lastline/truncate
Any one that is omitted will fall back to the default. For "stl" and
"stlnc" the space will be used when there is highlighting, '^' or '='
otherwise.
Any one that is omitted will fall back to the default.
Example: >
:set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:-
< This is similar to the default, except that these characters will also
be used when there is highlighting.
:set fillchars=stl:\ ,stlnc:\ ,vert:\|,fold:-,diff:-
<
For the "stl", "stlnc", "foldopen", "foldclose" and "foldsep" items
single-byte and multibyte characters are supported. But double-width
characters are not supported.
@@ -3795,9 +3791,10 @@ A jump table for the options with a short description can be found at |Q_op|.
'formatoptions' 'fo' string (Vim default: "tcq", Vi default: "vt")
local to buffer
This is a sequence of letters which describes how automatic
formatting is to be done. See |fo-table|. When the 'paste' option is
on, no formatting is done (like 'formatoptions' is empty). Commas can
be inserted for readability.
formatting is to be done.
See |fo-table| for possible values and |gq| for how to format text.
When the 'paste' option is on, no formatting is done (like
'formatoptions' is empty). Commas can be inserted for readability.
To avoid problems with flags that are added in the future, use the
"+=" and "-=" feature of ":set" |add-option-flags|.
NOTE: This option is set to the Vi default value when 'compatible' is
@@ -5489,7 +5486,6 @@ A jump table for the options with a short description can be found at |Q_op|.
Increasing this limit above 200 also changes the maximum for Ex
command recursion, see |E169|.
See also |:function|.
Also used for maximum depth of callback functions.
*'maxmapdepth'* *'mmd'* *E223*
'maxmapdepth' 'mmd' number (default 1000)
@@ -9303,7 +9299,7 @@ A jump table for the options with a short description can be found at |Q_op|.
uses another default.
*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
'wildignorecase' 'wic' boolean (default off)
global
When set case is ignored when completing file names and directories.

View File

@@ -1,4 +1,4 @@
*pi_gzip.txt* For Vim version 9.0. Last change: 2019 May 05
*pi_gzip.txt* For Vim version 9.0. Last change: 2023 Nov 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12,6 +12,14 @@ The functionality mentioned here is a |standard-plugin|.
This plugin is only available if 'compatible' is not set.
You can avoid loading this plugin by setting the "loaded_gzip" variable: >
:let loaded_gzip = 1
<
*g:gzip_exec*
For security reasons, one may prevent that Vim runs executables automatically
when opening a buffer. This option (default: "1") can be used to prevent
executing the executables command when set to "0": >
:let g:gzip_exec = 0
<
==============================================================================
1. Autocommands *gzip-autocmd*

View File

@@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 9.0. Last change: 2023 Mar 12
*pi_zip.txt* For Vim version 9.0. Last change: 2023 Nov 05
+====================+
| Zip File Interface |
@@ -69,6 +69,13 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
This option specifies the program (and any options needed) used to
extract a file from a zip archive. By default, >
let g:zip_extractcmd= g:zip_unzipcmd
<
*g:zip_exec*
For security reasons, one may prevent that Vim runs executables
automatically when opening a buffer. This option (default: "1")
can be used to prevent executing the "unzip" command when set to
"0": >
let g:zip_exec=0
<
PREVENTING LOADING~

View File

@@ -4514,6 +4514,7 @@ E1507 builtin.txt /*E1507*
E1508 editing.txt /*E1508*
E1509 editing.txt /*E1509*
E151 helphelp.txt /*E151*
E1510 change.txt /*E1510*
E152 helphelp.txt /*E152*
E153 helphelp.txt /*E153*
E154 helphelp.txt /*E154*
@@ -5046,7 +5047,6 @@ E645 netbeans.txt /*E645*
E646 netbeans.txt /*E646*
E647 netbeans.txt /*E647*
E648 netbeans.txt /*E648*
E649 netbeans.txt /*E649*
E65 pattern.txt /*E65*
E650 netbeans.txt /*E650*
E651 netbeans.txt /*E651*
@@ -6758,6 +6758,8 @@ dircolors.vim syntax.txt /*dircolors.vim*
dis motion.txt /*dis*
disable-menus gui.txt /*disable-menus*
discard editing.txt /*discard*
dist#vim eval.txt /*dist#vim*
dist#vim9 eval.txt /*dist#vim9*
distribute-script usr_51.txt /*distribute-script*
distributed-plugins usr_05.txt /*distributed-plugins*
distribution intro.txt /*distribution*
@@ -7422,6 +7424,7 @@ g:gnat.Project_File ft_ada.txt /*g:gnat.Project_File*
g:gnat.Set_Project_File() ft_ada.txt /*g:gnat.Set_Project_File()*
g:gnat.Tags() ft_ada.txt /*g:gnat.Tags()*
g:gnat.Tags_Command ft_ada.txt /*g:gnat.Tags_Command*
g:gzip_exec pi_gzip.txt /*g:gzip_exec*
g:html_charset_override syntax.txt /*g:html_charset_override*
g:html_diff_one_file syntax.txt /*g:html_diff_one_file*
g:html_dynamic_folds syntax.txt /*g:html_dynamic_folds*
@@ -7616,6 +7619,7 @@ g:vimsyn_minlines syntax.txt /*g:vimsyn_minlines*
g:vimsyn_noerror syntax.txt /*g:vimsyn_noerror*
g:yaml_schema syntax.txt /*g:yaml_schema*
g:zipPlugin_ext pi_zip.txt /*g:zipPlugin_ext*
g:zip_exec pi_zip.txt /*g:zip_exec*
g:zip_extractcmd pi_zip.txt /*g:zip_extractcmd*
g:zip_nomax pi_zip.txt /*g:zip_nomax*
g:zip_shq pi_zip.txt /*g:zip_shq*
@@ -7666,6 +7670,7 @@ gd pattern.txt /*gd*
gdb debug.txt /*gdb*
gdb-version terminal.txt /*gdb-version*
ge motion.txt /*ge*
gender-neutral helphelp.txt /*gender-neutral*
get() builtin.txt /*get()*
get-ms-debuggers debug.txt /*get-ms-debuggers*
getbufinfo() builtin.txt /*getbufinfo()*
@@ -9058,10 +9063,12 @@ null vim9.txt /*null*
null-variable eval.txt /*null-variable*
null_blob vim9.txt /*null_blob*
null_channel vim9.txt /*null_channel*
null_class vim9.txt /*null_class*
null_dict vim9.txt /*null_dict*
null_function vim9.txt /*null_function*
null_job vim9.txt /*null_job*
null_list vim9.txt /*null_list*
null_object vim9.txt /*null_object*
null_partial vim9.txt /*null_partial*
null_string vim9.txt /*null_string*
number_relativenumber options.txt /*number_relativenumber*
@@ -9330,8 +9337,6 @@ printf-s builtin.txt /*printf-s*
printf-x builtin.txt /*printf-x*
printing print.txt /*printing*
printing-formfeed print.txt /*printing-formfeed*
private-method vim9class.txt /*private-method*
private-variable vim9class.txt /*private-variable*
profile repeat.txt /*profile*
profiling repeat.txt /*profiling*
profiling-variable eval.txt /*profiling-variable*
@@ -9356,6 +9361,8 @@ prop_type_change() textprop.txt /*prop_type_change()*
prop_type_delete() textprop.txt /*prop_type_delete()*
prop_type_get() textprop.txt /*prop_type_get()*
prop_type_list() textprop.txt /*prop_type_list()*
protected-method vim9class.txt /*protected-method*
protected-variable vim9class.txt /*protected-variable*
ps1-about ft_ps1.txt /*ps1-about*
ps1-compiler ft_ps1.txt /*ps1-compiler*
ps1-folding ft_ps1.txt /*ps1-folding*
@@ -9364,6 +9371,7 @@ ps1-syntax ft_ps1.txt /*ps1-syntax*
psql ft_sql.txt /*psql*
ptcap.vim syntax.txt /*ptcap.vim*
pterm-mouse options.txt /*pterm-mouse*
public-variable vim9class.txt /*public-variable*
pum_getpos() builtin.txt /*pum_getpos()*
pumvisible() builtin.txt /*pumvisible()*
put change.txt /*put*
@@ -9503,6 +9511,7 @@ rcp pi_netrw.txt /*rcp*
read-in-close-cb channel.txt /*read-in-close-cb*
read-messages insert.txt /*read-messages*
read-only-share editing.txt /*read-only-share*
read-only-variable vim9class.txt /*read-only-variable*
read-stdin version5.txt /*read-stdin*
readblob() builtin.txt /*readblob()*
readdir() builtin.txt /*readdir()*
@@ -10430,6 +10439,7 @@ termdebug-customizing terminal.txt /*termdebug-customizing*
termdebug-events terminal.txt /*termdebug-events*
termdebug-example terminal.txt /*termdebug-example*
termdebug-frames terminal.txt /*termdebug-frames*
termdebug-mappings terminal.txt /*termdebug-mappings*
termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping*
@@ -10987,6 +10997,8 @@ vim-modes intro.txt /*vim-modes*
vim-modes-intro intro.txt /*vim-modes-intro*
vim-raku ft_raku.txt /*vim-raku*
vim-script-intro usr_41.txt /*vim-script-intro*
vim-script-library eval.txt /*vim-script-library*
vim-security intro.txt /*vim-security*
vim-use intro.txt /*vim-use*
vim-variable eval.txt /*vim-variable*
vim.b if_lua.txt /*vim.b*
@@ -10998,6 +11010,7 @@ vim.w if_lua.txt /*vim.w*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim9 vim9.txt /*vim9*
vim9-access-modes vim9class.txt /*vim9-access-modes*
vim9-autoload vim9.txt /*vim9-autoload*
vim9-boolean vim9.txt /*vim9-boolean*
vim9-classes vim9.txt /*vim9-classes*

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 9.0. Last change: 2023 Oct 25
*term.txt* For Vim version 9.0. Last change: 2023 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -332,11 +332,16 @@ using the "xterm" workaround. These are the relevant entries (so far):
XM "\033[?1006;1004;1000%?%p1%{1}%=%th%el%;"
mouse enable / disable |t_XM|
FE "\033[?1004h" enable focus event tracking |t_fe|
FD "\033[?1004l" disable focus event tracking |t_fd|
The "XM" entry includes "1006" to enable SGR style mouse reporting. This
supports columns above 223. It also includes "1004" which enables focus
reporting. The t_fe and t_fd entries can be left empty (they don't have
entries in terminfo/termcap anyway).
reporting.
Note: As of 2023, the "1004" is currently not used by Vim itself, instead
it is recommended to set focus reporting independently of mouse tracking by
the |t_fe| and |t_fd| entries, as ncurses also starts to use with the latest
versions (and will then also end up in terminfo/termcap).
*xterm-kitty* *kitty-terminal*
The Kitty terminal is a special case. Mainly because it works differently
@@ -752,8 +757,9 @@ For Windows Terminal you can use something like this: >
let &t_SI = "\e[5 q" " blink bar
let &t_SR = "\e[3 q" " blink underline
let &t_EI = "\e[1 q" " blink block
let &t_ti ..= "\e[1 q" " blink block
let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink block)
let &t_ti ..= "\e[1 q" " blink block
let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink
" block)
endif
{not available when compiled without the |+cursorshape| feature}

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 9.0. Last change: 2023 Aug 23
*terminal.txt* For Vim version 9.0. Last change: 2023 Nov 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -42,6 +42,7 @@ If the result is "1" you have it.
Other commands |termdebug-commands|
Events |termdebug-events|
Prompt mode |termdebug-prompt|
Mappings |termdebug-mappings|
Communication |termdebug-communication|
Customizing |termdebug-customizing|
@@ -1461,18 +1462,22 @@ Prompt mode can be used even when the |+terminal| feature is present with: >
If there is no g:termdebug_config you can use: >
let g:termdebug_use_prompt = 1
<
*termdebug_map_K*
The K key is normally mapped to |:Evaluate|. If you do not want this use: >
Mappings ~
*termdebug_map_K* *termdebug-mappings*
The K key is normally mapped to |:Evaluate| unless a buffer local (|:map-local|)
mapping to K already exists. If you do not want this use: >
let g:termdebug_config['map_K'] = 0
If there is no g:termdebug_config you can use: >
let g:termdebug_map_K = 0
<
*termdebug_map_minus*
The - key is normally mapped to |:Down|. If you do not want this use: >
The - key is normally mapped to |:Down| unless a buffer local mapping to the -
key already exists. If you do not want this use: >
let g:termdebug_config['map_minus'] = 0
<
*termdebug_map_plus*
The + key is normally mapped to |:Up|. If you do not want this use: >
The + key is normally mapped to |:Up| unless a buffer local mapping to the +
key already exists. If you do not want this use: >
let g:termdebug_config['map_plus'] = 0
<
*termdebug_disasm_window*
@@ -1483,6 +1488,9 @@ If you want the Asm window shown by default, set the "disasm_window" flag to
If there is no g:termdebug_config you can use: >
let g:termdebug_disasm_window = 15
Any value greater than 1 will set the Asm window height to that value.
If the current window has enough horizontal space, it will be vertically split
and the Asm window will be shown side by side with the source code window (and
the height option won't be used).
*termdebug_variables_window*
If you want the Var window shown by default, set the "variables_window" flag
@@ -1493,6 +1501,9 @@ height: >
If there is no g:termdebug_config you can use: >
let g:termdebug_variables_window = 15
Any value greater than 1 will set the Var window height to that value.
If the current window has enough horizontal space, it will be vertically split
and the Var window will be shown side by side with the source code window (and
the height options won't be used).
Communication ~
*termdebug-communication*
@@ -1577,9 +1588,9 @@ If there is no g:termdebug_config you can use: >
Change default signs ~
*termdebug_signs*
Termdebug uses the last two characters of the breakpoint ID in the
signcolumn to represent breakpoints. For example, breakpoint ID 133
will be displayed as `33`.
Termdebug uses the hex number of the breakpoint ID in the signcolumn to
represent breakpoints. if it is greater than "0xFF", then it will be displayed
as "F+", due to we really only have two screen cells for the sign.
If you want to customize the breakpoint signs: >
let g:termdebug_config['sign'] = '>>'

View File

@@ -6,21 +6,41 @@
" Written by Christian Brabandt.
func Test_check_URLs()
"20.10.23, added by Restorer
if has("win32")
echoerr "Doesn't work on MS-Windows"
return
let s:outdev = 'nul'
else
let s:outdev = '/dev/null'
endif
" Restorer: For Windows users. If "curl" or "weget" is installed on the system
" but not in %PATH%, add the full routes for them to this environment variable.
if executable('curl')
" Note: does not follow redirects!
let s:command = 'curl --silent --fail --output /dev/null --head '
let s:command1 = 'curl --silent --fail --output ' ..s:outdev.. ' --head '
let s:command2 = ""
elseif executable('wget')
" Note: only allow a couple of redirects
let s:command = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O /dev/null '
let s:command1 = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O ' ..s:outdev.. ' '
let s:command2 = ""
elseif has("win32") "20.10.23, added by Restorer
if executable('powershell')
if 2 == system('powershell -nologo -noprofile "$psversiontable.psversion.major"')
echoerr 'To work in OS Windows requires the program "PowerShell" version 3.0 or higher'
return
endif
let s:command1 =
\ "powershell -nologo -noprofile \"{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'};try{(Invoke-WebRequest -MaximumRedirection 2 -TimeoutSec 5 -Uri "
let s:command2 = ').StatusCode}catch{exit [int]$Error[0].Exception.Status}"'
endif
else
echoerr 'Only works when "curl" or "wget" is available'
echoerr 'Only works when "curl" or "wget", or "powershell" is available'
return
endif
" Do the testing.
set report =999
set nomore shm +=s
let pat='\(https\?\|ftp\)://[^\t* ]\+'
exe 'helpgrep' pat
helpclose
@@ -36,22 +56,21 @@ func Test_check_URLs()
put =urls
" remove some more invalid items
" empty lines
v/./d
"20.10.23, Restorer: '_' is a little faster, see `:h global`
v/./d _
" remove # anchors
%s/#.*$//e
" remove trailing stuff (parenthesis, dot, comma, quotes), but only for HTTP
" links
g/^h/s#[.,)'"/>][:.]\?$##
g#^[hf]t\?tp:/\(/\?\.*\)$#d
silent! g/ftp://,$/d
silent! g/=$/d
g/^h/s#[.),'"`/>][:.,]\?$##
g#^[hf]t\?tp:/\(/\?\.*\)$#d _
silent! g/ftp://,$/d _
silent! g/=$/d _
let a = getline(1,'$')
let a = uniq(sort(a))
%d
%d _
call setline(1, a)
" Do the testing.
set nomore
%s/.*/\=TestURL(submatch(0))/
" highlight the failures
@@ -61,8 +80,10 @@ endfunc
func TestURL(url)
" Relies on the return code to determine whether a page is valid
echom printf("Testing URL: %d/%d %s", line('.'), line('$'), a:url)
call system(s:command . shellescape(a:url))
call system(s:command1 .. shellescape(a:url) .. s:command2)
return printf("%s %d", a:url, v:shell_error)
endfunc
call Test_check_URLs()
" vim: sw=2 sts=2 et

View File

@@ -103,8 +103,8 @@ NOT LOADING
It is possible that a user doesn't always want to load this plugin. Or the
system administrator has dropped it in the system-wide plugin directory, but a
user has his own plugin he wants to use. Then the user must have a chance to
disable loading this specific plugin. These lines will make it possible: >
user has their own plugin they want to use. Then the user must have a chance
to disable loading this specific plugin. These lines will make it possible: >
7 if exists("g:loaded_typecorrect")
8 finish
@@ -136,7 +136,7 @@ item can be used: >
The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
The user can set the "g:mapleader" variable to the key sequence that he wants
The user can set the "g:mapleader" variable to the key sequence that they want
plugin mappings to start with. Thus if the user has done: >
g:mapleader = "_"
@@ -147,8 +147,8 @@ will be used, which is a backslash. Then a map for "\a" will be defined.
Note that <unique> is used, this will cause an error message if the mapping
already happened to exist. |:map-<unique>|
But what if the user wants to define his own key sequence? We can allow that
with this mechanism: >
But what if the user wants to define their own key sequence? We can allow
that with this mechanism: >
19 if !hasmapto('<Plug>TypecorrAdd;')
20 map <unique> <Leader>a <Plug>TypecorrAdd;
@@ -156,7 +156,7 @@ with this mechanism: >
This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
defines the mapping from "<Leader>a" if it doesn't. The user then has a
chance of putting this in his vimrc file: >
chance of putting this in their vimrc file: >
map ,c <Plug>TypecorrAdd;
@@ -262,7 +262,7 @@ Now let's add a user command to add a correction: >
The user command is defined only if no command with the same name already
exists. Otherwise we would get an error here. Overriding the existing user
command with ":command!" is not a good idea, this would probably make the user
wonder why the command he defined himself doesn't work. |:command|
wonder why the command they defined themselves doesn't work. |:command|
If it did happen you can find out who to blame with: >
verbose command Correct
@@ -494,7 +494,7 @@ An example of how to define functionality in a filetype plugin: >
|hasmapto()| is used to check if the user has already defined a map to
<Plug>JavaImport;. If not, then the filetype plugin defines the default
mapping. This starts with |<LocalLeader>|, which allows the user to select
the key(s) he wants filetype plugin mappings to start with. The default is a
the key(s) they want filetype plugin mappings to start with. The default is a
backslash.
"<unique>" is used to give an error message if the mapping already exists or
overlaps with an existing mapping.

View File

@@ -6,11 +6,21 @@
# Sun Feb 24 14:49:17 CET 2002
use strict;
use warnings;
use vars qw/%url $date/;
%url = ();
$date = `date`;
chop $date;
# 30.11.23, Restorer:
# This command does not work in OS Windows.
# The "date" command in Windows is different from its counterpart in UNIX-like systems.
# The closest analog is the "date /t" command, but how it would work in UNIX,
# I don't know. I've corrected it as best I can. I don't know Perl.
#$date = `date`;
#chop $date;
my ($year) = 1900 + (localtime())[5];
my ($month) = 1 + (localtime())[4];
my ($day) = (localtime())[3];
#$date = localtime(); # outputs like this Fri Nov 3 00:56:59 2023
sub maplink
{
@@ -164,7 +174,7 @@ EOF
}
print OUT<<EOF;
</pre>
<p><i>Generated by vim2html on $date</i></p>
<p><i>Generated by vim2html on $day.$month.$year</i></p>
</body>
</html>
EOF

View File

@@ -1025,8 +1025,9 @@ always converted to string: >
Simple types are Number, Float, Special and Bool. For other types |string()|
should be used.
*false* *true* *null* *null_blob* *null_channel*
*null_dict* *null_function* *null_job* *null_list*
*null_partial* *null_string* *E1034*
*null_class* *null_dict* *null_function* *null_job*
*null_list* *null_object* *null_partial* *null_string*
*E1034*
In Vim9 script one can use the following predefined values: >
true
false

View File

@@ -1,4 +1,4 @@
*vim9class.txt* For Vim version 9.0. Last change: 2023 Sep 18
*vim9class.txt* For Vim version 9.0. Last change: 2023 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -117,7 +117,7 @@ variable.
Object variable write access ~
*read-only-variable*
Now try to change an object variable directly: >
pos.lnum = 9
@@ -133,7 +133,7 @@ way. Most often there is no problem using a value, while setting a value may
have side effects that need to be taken care of. In this case, the SetLnum()
method could check if the line number is valid and either give an error or use
the closest valid value.
*:public* *E1331*
*:public* *public-variable* *E1331*
If you don't care about side effects and want to allow the object variable to
be changed at any time, you can make it public: >
@@ -150,16 +150,16 @@ If you try to set an object variable that doesn't exist you get an error: >
*E1376*
A object variable cannot be accessed using the class name.
Private variables ~
*private-variable* *E1332* *E1333*
On the other hand, if you do not want the object variables to be read directly,
you can make them private. This is done by prefixing an underscore to the
name: >
Protected variables ~
*protected-variable* *E1332* *E1333*
On the other hand, if you do not want the object variables to be read directly
from outside the class or its sub-classes, you can make them protected. This
is done by prefixing an underscore to the name: >
this._lnum: number
this._col number
Now you need to provide methods to get the value of the private variables.
Now you need to provide methods to get the value of the protected variables.
These are commonly called getters. We recommend using a name that starts with
"Get": >
@@ -182,11 +182,11 @@ number to the total number of lines: >
return this._lnum
enddef
<
Private methods ~
*private-method* *E1366*
Protected methods ~
*protected-method* *E1366*
If you want object methods to be accessible only from other methods of the
same class and not used from outside the class, then you can make them
private. This is done by prefixing the method name with an underscore: >
protected. This is done by prefixing the method name with an underscore: >
class SomeClass
def _Foo(): number
@@ -197,7 +197,7 @@ private. This is done by prefixing the method name with an underscore: >
enddef
endclass
<
Accessing a private method outside the class will result in an error (using
Accessing a protected method outside the class will result in an error (using
the above class): >
var a = SomeClass.new()
@@ -292,9 +292,9 @@ or local variable name is not allowed.
To access a class member outside of the class where it is defined, the class
name prefix must be used. A class member cannot be accessed using an object.
Just like object members the access can be made private by using an underscore
as the first character in the name, and it can be made public by prefixing
"public": >
Just like object members the access can be made protected by using an
underscore as the first character in the name, and it can be made public by
prefixing "public": >
class OtherThing
static total: number # anybody can read, only class can write
@@ -323,8 +323,8 @@ Inside the class the class method can be called by name directly, outside the
class the class name must be prefixed: `OtherThing.ClearTotalSize()`. To use
a super class method in a child class, the class name must be prefixed.
Just like object methods the access can be made private by using an underscore
as the first character in the method name: >
Just like object methods the access can be made protected by using an
underscore as the first character in the method name: >
class OtherThing
static def _Foo()
@@ -402,7 +402,7 @@ class, for which objects can be created. Example: >
An abstract class is defined the same way as a normal class, except that it
does not have any new() method. *E1359*
*abstract-method* *E1371* *E1372*
*abstract-method* *E1371* *E1372*
An abstract method can be defined in an abstract class by using the "abstract"
prefix when defining the method: >
@@ -477,8 +477,8 @@ The interface name can be used as a type: >
<
*E1378* *E1379* *E1380* *E1387*
An interface can contain only object methods and read-only object variables.
An interface cannot contain read-write and private object variables, private
object methods, class variables and class methods.
An interface cannot contain read-write or protected object variables,
protected object methods, class variables and class methods.
An interface can extend another interface using "extends". The sub-interface
inherits all the instance variables and methods from the super interface.
@@ -526,11 +526,12 @@ once. They can appear in any order, although this order is recommended: >
< *E1355* *E1369*
Each variable and method name can be used only once. It is not possible to
define a method with the same name and different type of arguments. It is not
possible to use a public and private member variable with the same name. A
possible to use a public and protected member variable with the same name. A
object variable name used in a super class cannot be reused in a child class.
Object Variable Initialization ~
If the type of a variable is not explicitly specified in a class, then it is
set to "any" during class definition. When an object is instantiated from the
class, then the type of the variable is set.
@@ -559,7 +560,7 @@ in the extended method. The method of the base class can be called by
prefixing "super.".
*E1377*
The access level of a method (public or private) in a child class should be
The access level of a method (public or protected) in a child class should be
the same as the super class.
Other object methods of the base class are taken over by the child class.
@@ -597,11 +598,11 @@ Items in a class ~
*E1318* *E1325* *E1388*
Inside a class, in between `:class` and `:endclass`, these items can appear:
- An object variable declaration: >
this._privateVariableName: memberType
this._protectedVariableName: memberType
this.readonlyVariableName: memberType
public this.readwriteVariableName: memberType
- A class variable declaration: >
static _privateClassVariableName: memberType
static _protectedClassVariableName: memberType
static readonlyClassVariableName: memberType
static public readwriteClassVariableName: memberType
- A constructor method: >
@@ -609,10 +610,10 @@ Inside a class, in between `:class` and `:endclass`, these items can appear:
def newName(arguments)
- A class method: >
static def SomeMethod(arguments)
static def _PrivateMethod(arguments)
static def _ProtectedMethod(arguments)
- An object method: >
def SomeMethod(arguments)
def _PrivateMethod(arguments)
def _ProtectedMethod(arguments)
For the object variable the type must be specified. The best way is to do
this explicitly with ": {type}". For simple types you can also use an
@@ -704,8 +705,8 @@ Note that you cannot use another default value than "v:none" here. If you
want to initialize the object variables, do it where they are declared. This
way you only need to look in one place for the default values.
All object variables will be used in the default constructor, also private
access ones.
All object variables will be used in the default constructor, including
protected access ones.
If the class extends another one, the object variables of that class will come
first.
@@ -962,6 +963,18 @@ while there is no ClassName() method, it's a method by another name in the
class called ClassName. Quite confusing.
Vim9class access modes ~
*vim9-access-modes*
The variable access modes, and their meaning, supported by Vim9class are
|public-variable| read and write from anywhere
|read-only-variable| read from anywhere, write from inside the
class and sub-classes
|protected-variable| read and write from inside the class and
sub-classes
The method access modes are similar, but without the read-only mode.
Default read access to object variables ~
Some users will remark that the access rules for object variables are
@@ -978,10 +991,10 @@ directly writing you get an error, which makes you wonder if you actually want
to allow that. This helps writing code with fewer mistakes.
Making object variables private with an underscore ~
Making object variables protected with an underscore ~
When an object variable is private, it can only be read and changed inside the
class (and in sub-classes), then it cannot be used outside of the class.
When an object variable is protected, it can only be read and changed inside
the class (and in sub-classes), then it cannot be used outside of the class.
Prepending an underscore is a simple way to make that visible. Various
programming languages have this as a recommendation.
@@ -991,21 +1004,21 @@ Since the name only appears in the class (and sub-classes) they will be easy
to find and change.
The other way around is much harder: you can easily prepend an underscore to
the object variable inside the class to make it private, but any usage
the object variable inside the class to make it protected, but any usage
elsewhere you will have to track down and change. You may have to make it a
"set" method call. This reflects the real world problem that taking away
access requires work to be done for all places where that access exists.
An alternative would have been using the "private" keyword, just like "public"
changes the access in the other direction. Well, that's just to reduce the
number of keywords.
An alternative would have been using the "protected" keyword, just like
"public" changes the access in the other direction. Well, that's just to
reduce the number of keywords.
No protected object variables ~
No private object variables ~
Some languages provide several ways to control access to object variables.
The most known is "protected", and the meaning varies from language to
language. Others are "shared", "private" and even "friend".
language. Others are "shared", "private", "package" and even "friend".
These rules make life more difficult. That can be justified in projects where
many people work on the same, complex code where it is easy to make mistakes.

View File

@@ -342,6 +342,9 @@ au BufNewFile,BufRead *.cc
au BufNewFile,BufRead *.cpp
\ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif
" Cypher query language
au BufNewFile,BufRead *.cypher setf cypher
" C++
au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp
if has("fname_case")
@@ -1394,6 +1397,9 @@ au BufRead,BufNewFile *.mu setf mupad
" Mush
au BufNewFile,BufRead *.mush setf mush
" Mustache
au BufNewFile,BufRead *.mustache setf mustache
" Mutt setup file (also for Muttng)
au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
@@ -1457,7 +1463,7 @@ au BufNewFile,BufRead *.nse setf lua
au BufNewFile,BufRead *.nsi,*.nsh setf nsis
" Nu
au BufNewFile,BufRead {env,config}.nu setf nu
au BufNewFile,BufRead *.nu setf nu
" Oblivion Language and Oblivion Script Extender
au BufNewFile,BufRead *.obl,*.obse,*.oblivion,*.obscript setf obse
@@ -1685,8 +1691,8 @@ au BufNewFile,BufRead .procmail,.procmailrc setf procmail
" Progress or CWEB
au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb()
" Progress or assembly
au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm()
" Progress or assembly or Swig
au BufNewFile,BufRead *.i call dist#ft#FTi()
" Progress or Pascal
au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal()
@@ -2180,6 +2186,9 @@ au BufNewFile,BufRead *.swift.gyb setf swiftgyb
" Swift Intermediate Language or SILE
au BufNewFile,BufRead *.sil call dist#ft#FTsil()
" Swig
au BufNewFile,BufRead *.swg,*.swig setf swig
" Sysctl
au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
@@ -2451,8 +2460,7 @@ au BufNewFile,BufRead *.vroom setf vroom
au BufNewFile,BufRead *.vue setf vue
" WebAssembly
au BufNewFile,BufRead *.wat setf wat
au BufNewFile,BufRead *.wast setf wast
au BufNewFile,BufRead *.wat,*.wast setf wat
" WebAssembly Interface Type (WIT)
au BufNewFile,BufRead *.wit setf wit
@@ -2534,6 +2542,9 @@ au BufNewFile,BufRead */etc/xinetd.conf setf xinetd
" XS Perl extension interface language
au BufNewFile,BufRead *.xs setf xs
" X compose file
au BufNewFile,BufRead .XCompose,Compose setf xcompose
" X resources file
au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults

View File

@@ -37,8 +37,8 @@ if exists("g:awk_is_gawk")
let b:undo_ftplugin .= " | setl fp<"
endif
" Disabled by default for security reasons.
if get(g:, 'awk_exec', get(g:, 'plugin_exec', 0))
" Disabled by default for security reasons.
if dist#vim#IsSafeExecutable('awk', 'gawk')
let path = system("gawk 'BEGIN { printf ENVIRON[\"AWKPATH\"] }'")
let path = substitute(path, '^\.\=:\|:\.\=$\|:\.\=:', ',,', 'g') " POSIX cwd
let path = substitute(path, ':', ',', 'g')

View File

@@ -57,8 +57,8 @@ if &filetype == 'changelog'
endif
let s:default_login = 'unknown'
" Disabled by default for security reasons.
if get(g:, 'changelog_exec', get(g:, 'plugin_exec', 0))
" Disabled by default for security reasons.
if dist#vim#IsSafeExecutable('changelog', 'whoami')
let login = s:login()
else
let login = s:default_login

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Lynx Web Browser Configuration
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Sep 09
" Last Change: 2023 Nov 09
if exists("b:did_ftplugin")
finish
@@ -18,7 +18,7 @@ setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = "setl cms< com< fo<"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Lynx Configuration Files (lynx.cfg .lynxrc)\tlynx.cfg;.lynxrc\n" ..
let b:browsefilter = "Lynx Configuration Files (lynx.cfg, .lynxrc)\tlynx.cfg;.lynxrc\n" ..
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -56,12 +56,8 @@ endif
" Set this once, globally.
if !exists("perlpath")
let s:tmp_cwd = getcwd()
" safety check: don't execute perl binary by default
if executable("perl") && get(g:, 'perl_exec', get(g:, 'plugin_exec', 0))
\ && (fnamemodify(exepath("perl"), ":p:h") != s:tmp_cwd
\ || (index(split($PATH, has("win32") ? ';' : ':'), s:tmp_cwd) != -1
\ && s:tmp_cwd != '.'))
if dist#vim#IsSafeExecutable('perl', 'perl')
try
if &shellxquote != '"'
let perlpath = system('perl -e "print join(q/,/,@INC)"')
@@ -77,7 +73,6 @@ if !exists("perlpath")
" current directory and the directory of the current file.
let perlpath = ".,,"
endif
unlet! s:tmp_cwd
endif
" Append perlpath to the existing path value, if it is set. Since we don't

13
runtime/ftplugin/swig.vim Normal file
View File

@@ -0,0 +1,13 @@
" Vim filetype plugin file
" Language: SWIG
" Maintainer: Julien Marrec <julien.marrec 'at' gmail com>
" Last Change: 2023 November 23
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let b:undo_ftplugin = "setlocal iskeyword<"
setlocal iskeyword+=%

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: WebAssembly
" Maintainer: rhysd <lin90162@yahoo.co.jp>
" Last Change: Jul 29, 2018
" Last Change: Nov 14, 2023
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
if exists("b:did_ftplugin")

View File

@@ -1,5 +1,5 @@
" Vim filetype plugin file
" Language: Wget configuration file (/etc/wgetrc ~/.wgetrc)
" Language: Wget configuration file (/etc/wgetrc ~/.wgetrc)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Apr 28
@@ -18,7 +18,7 @@ setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = "setl fo< com< cms<"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Wget Configuration File (wgetrc, .wgetrc)\twgetrc;.wgetrc\n" .
let b:browsefilter = "Wget Configuration File (wgetrc, .wgetrc)\twgetrc;.wgetrc\n" ..
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -1,5 +1,5 @@
" Vim filetype plugin file
" Language: Wget2 configuration file (/etc/wget2rc ~/.wget2rc)
" Language: Wget2 configuration file (/etc/wget2rc ~/.wget2rc)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Apr 28
@@ -18,7 +18,7 @@ setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = "setl fo< com< cms<"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Wget2 Configuration File (wget2rc, .wget2rc)\twget2rc;.wget2rc\n" .
let b:browsefilter = "Wget2 Configuration File (wget2rc, .wget2rc)\twget2rc;.wget2rc\n" ..
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -0,0 +1,13 @@
" Vim filetype plugin file
" Language: XCompose
" Maintainer: ObserverOfTime <chronobserver@disroot.org
" Last Change: 2023 Nov 09
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setl comments=:# commentstring=#\ %s
let b:undo_ftplugin = 'setl com< cms<'

View File

@@ -41,16 +41,13 @@ let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
" Safety check: don't execute zig from current directory
if !exists('g:zig_std_dir') && exists('*json_decode') &&
\ executable('zig') && get(g:, 'zig_exec', get(g:, 'plugin_exec', 0))
\ && (fnamemodify(exepath("zig"), ":p:h") != s:tmp_cwd
\ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
\ executable('zig') && dist#vim#IsSafeExecutable('zig', 'zig')
silent let s:env = system('zig env')
if v:shell_error == 0
let g:zig_std_dir = json_decode(s:env)['std_dir']
endif
unlet! s:env
endif
unlet! s:tmp_cwd
if exists('g:zig_std_dir')
let &l:path = g:zig_std_dir . ',' . &l:path

View File

@@ -0,0 +1,2 @@
" Placeholder for backwards compatilibity: .tsx used to stand for TypeScript.
runtime! indent/typescript.vim

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: WebAssembly
" Maintainer: rhysd <lin90162@yahoo.co.jp>
" Last Change: Jul 29, 2018
" Last Change: Nov 14, 2023
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
if exists("b:did_indent")

View File

@@ -1,7 +1,7 @@
" Vim Keymap file for Arabic
" Maintainer : Arabic Support group <support-at-arabeyes.org>
" Created by : Nadim Shaikli <nadim-at-arabeyes.org>
" Last Updated : 2003 Apr 26
" Last Updated : 2023-10-27
" This is for a standard Microsoft Arabic keyboard layout.
" Use this short name in the status line.
@@ -41,16 +41,6 @@ m <char-0x0629> " (1577) - TEH MARBUTA
, <char-0x0648> " (1608) - WAW
. <char-0x0632> " (1586) - ZAIN
/ <char-0x0638> " (1592) - ZAH
0 <char-0x0660> " (1632) - Arabic 0
1 <char-0x0661> " (1633) - Arabic 1
2 <char-0x0662> " (1634) - Arabic 2
3 <char-0x0663> " (1635) - Arabic 3
4 <char-0x0664> " (1636) - Arabic 4
5 <char-0x0665> " (1637) - Arabic 5
6 <char-0x0666> " (1638) - Arabic 6
7 <char-0x0667> " (1639) - Arabic 7
8 <char-0x0668> " (1640) - Arabic 8
9 <char-0x0669> " (1641) - Arabic 9
` <char-0x0630> " (1584) - THAL
~ <char-0x0651> " (1617) - Tanween -- SHADDA
Q <char-0x064e> " (1614) - Tanween -- FATHA

30
runtime/lang/Make_all.mak Normal file
View File

@@ -0,0 +1,30 @@
#
# Makefile with common components
#
CONVERTED = \
menu_chinese_gb.936.vim \
menu_chinese_taiwan.950.vim \
menu_cs_cz.iso_8859-2.vim \
menu_czech_czech_republic.1250.vim \
menu_czech_czech_republic.ascii.vim \
menu_hu_hu.iso_8859-2.vim \
menu_ja_jp.euc-jp.vim \
menu_japanese_japan.932.vim \
menu_ko_kr.euckr.vim \
menu_pl_pl.iso_8859-2.vim \
menu_polish_poland.1250.vim \
menu_ru_ru.cp1251.vim \
menu_ru_ru.koi8-r.vim \
menu_sk_sk.iso_8859-2.vim \
menu_sl_si.cp1250.vim \
menu_sl_si.latin2.vim \
menu_sr_rs.ascii.vim \
menu_sr_rs.iso_8859-2.vim \
menu_sr_rs.iso_8859-5.vim \
menu_tr_tr.cp1254.vim \
menu_tr_tr.iso_8859-9.vim \
menu_uk_ua.cp1251.vim \
menu_uk_ua.koi8-u.vim \
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:

517
runtime/lang/Make_mvc.mak Normal file
View File

@@ -0,0 +1,517 @@
#
# Makefile for converted the Vim menu files on Windows
#
# 08.11.23, Restorer, <restorer@mail2k.ru>
!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
!ERROR The program "PowerShell" version 3.0 or higher is required to work
!ENDIF
# Common components
!INCLUDE Make_all.mak
# Correct the following line for the directory where iconv is installed.
# Please do not put the path in quotes.
ICONV_PATH = D:\Programs\GetText\bin
# In case some package like GnuWin32, UnixUtils, gettext
# or something similar is installed on the system.
# If the "iconv" program is installed on the system, but it is not registered
# in the %PATH% environment variable, then specify the full path to this file.
!IF EXIST ("iconv.exe")
ICONV = "iconv.exe"
!ELSEIF EXIST ("$(ICONV_PATH)\iconv.exe")
ICONV = "$(ICONV_PATH)\iconv.exe"
!ENDIF
RM = del /q
all : $(CONVERTED)
# Convert menu_zh_cn.utf-8.vim to create menu_chinese_gb.936.vim.
menu_chinese_gb.936.vim : menu_zh_cn.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP936 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(936))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(936)) -replace \
'scriptencoding utf-8', 'scriptencoding cp936' -replace \
' Original translations', ' Generated from menu_zh_cn.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(936))
# Convert menu_zh_tw.utf-8.vim to create menu_chinese_taiwan.950.vim.
menu_chinese_taiwan.950.vim : menu_zh_tw.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP950 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(950))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(950)) -replace \
'scriptencoding utf-8', 'scriptencoding cp950' -replace \
' Original translations', ' Generated from menu_zh_tw.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(950))
# Convert menu_cs_cz.utf-8.vim to create menu_cs_cz.iso_8859-2.vim.
menu_cs_cz.iso_8859-2.vim : menu_cs_cz.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28592)) -replace \
' Czech \(UTF-8\)', ' Czech (ISO-8859-2)' -replace \
\"scriptencoding utf-8\", \"scriptencoding iso-8859-2\" -replace \
\" Original translations\", \" Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT\"; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28592))
# Convert menu_cs_cz.utf-8.vim to create menu_czech_czech_republic.1250.vim.
menu_czech_czech_republic.1250.vim : menu_cs_cz.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1250 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1250))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(1250)) -replace \
' Czech \(UTF-8\)', ' Czech (CP1250)' -replace \
\"scriptencoding utf-8\", \"scriptencoding cp1250\" -replace \
\" Original translations\", \" Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT\"; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(1250))
# Convert menu_cs_cz.utf-8.vim to create menu_czech_czech_republic.ascii.vim.
menu_czech_czech_republic.ascii.vim : menu_cs_cz.utf-8.vim
$(RM) $@
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)) -replace \
'scriptencoding utf-8', 'scriptencoding latin1' -replace \
' Original translations', ' Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT' -replace \
'Czech \(UTF-8\)', 'Czech (ASCII - without diacritics)' -creplace \
[char]193, 'A' -creplace [char]225, 'a' -creplace [char]268, 'C' -creplace \
[char]269, 'c' -creplace [char]270, 'D' -creplace [char]271, 'd' -creplace \
[char]201, 'E' -creplace [char]233, 'e' -creplace [char]282, 'E' -creplace \
[char]283, 'e' -creplace [char]205, 'I' -creplace [char]237, 'i' -creplace \
[char]327, 'N' -creplace [char]328, 'n' -creplace [char]211, 'O' -creplace \
[char]243, 'o' -creplace [char]344, 'R' -creplace [char]345, 'r' -creplace \
[char]352, 'S' -creplace [char]353, 's' -creplace [char]356, 'T' -creplace \
[char]357, 't' -creplace [char]218, 'U' -creplace [char]250, 'u' -creplace \
[char]366, 'U' -creplace [char]367, 'u' -creplace [char]221, 'Y' -creplace \
[char]253, 'y' -creplace [char]381, 'Z' -creplace [char]382, 'z' ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
# Convert menu_hu_hu.utf-8.vim to create menu_hu_hu.iso_8859-2.vim.
menu_hu_hu.iso_8859-2.vim : menu_hu_hu.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28592)) -replace \
'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
' Original translations', ' Generated from menu_hu_hu.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28592))
# Convert menu_ja_jp.utf-8.vim to create menu_ja_jp.euc-jp.vim.
menu_ja_jp.euc-jp.vim : menu_ja_jp.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t EUC-JP $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(51932))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(51932)) -replace \
'Japanese \(UTF-8\)', 'Japanese (EUC-JP)' -replace \
'scriptencoding utf-8', 'scriptencoding euc-jp' -replace \
' Original translations', ' Generated from menu_ja_jp.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(51932))
# Convert menu_ja_jp.utf-8.vim to create menu_japanese_japan.932.vim.
menu_japanese_japan.932.vim : menu_ja_jp.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP932 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(932))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(932)) -replace \
'Japanese \(UTF-8\)', 'Japanese (CP932)' -replace \
'scriptencoding utf-8', 'scriptencoding cp932' -replace \
' Original translations', ' Generated from menu_ja_jp.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(932))
# Convert menu_ko_kr.utf-8.vim to create menu_ko_kr.euckr.vim.
menu_ko_kr.euckr.vim : menu_ko_kr.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t EUC-KR $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(51949))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(51949)) -replace \
'scriptencoding utf-8', 'scriptencoding euc-kr' -replace \
' Original translations', ' Generated from menu_ko_kr.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(51949))
# Convert menu_pl_pl.utf-8.vim to create menu_pl_pl.iso_8859-2.vim.
menu_pl_pl.iso_8859-2.vim : menu_pl_pl.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28592)) -replace \
'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
' Original translations', ' Generated from menu_pl_pl.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28592))
# Convert menu_pl_pl.utf-8.vim to create menu_polish_poland.1250.vim.
menu_polish_poland.1250.vim : menu_pl_pl.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1250 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1250))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(1250)) -replace \
'scriptencoding utf-8', 'scriptencoding cp1250' -replace \
' Original translations', ' Generated from menu_pl_pl.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(1250))
# Convert menu_ru_ru.utf-8.vim to create menu_ru_ru.cp1251.vim.
menu_ru_ru.cp1251.vim : menu_ru_ru.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1251 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1251))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(1251)) -replace \
'scriptencoding utf-8', 'scriptencoding cp1251' -replace \
' Original translations', ' Generated from menu_ru_ru.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(1251))
# Convert menu_ru_ru.utf-8.vim to create menu_ru_ru.koi8-r.vim.
menu_ru_ru.koi8-r.vim : menu_ru_ru.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t KOI8-R $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(20866))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(20866)) -replace \
'scriptencoding utf-8', 'scriptencoding koi8-r' -replace \
' Original translations', ' Generated from menu_ru_ru.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(20866))
# Convert menu_slovak_slovak_republic.1250.vim to create menu_sk_sk.iso_8859-2.vim.
menu_sk_sk.iso_8859-2.vim : menu_slovak_slovak_republic.1250.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f CP1250 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(1250)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28592)) -replace \
'scriptencoding cp1250', 'scriptencoding iso-8859-2' -replace \
' Original translations', ' Generated from menu_slovak_slovak_republic.1250.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28592))
# Convert menu_sl_si.utf-8.vim to create menu_sl_si.cp1250.vim.
menu_sl_si.cp1250.vim : menu_sl_si.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1250 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1250))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(1250)) -replace \
'scriptencoding utf-8', 'scriptencoding cp1250' -replace \
' Original translations', ' Generated from menu_sl_si.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(1250))
# Convert menu_sl_si.utf-8.vim to create menu_sl_si.latin2.vim.
menu_sl_si.latin2.vim : menu_sl_si.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28592)) -replace \
'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
' Original translations', ' Generated from menu_sl_si.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28592))
# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.ascii.vim.
menu_sr_rs.ascii.vim : menu_sr_rs.utf-8.vim
$(RM) $@
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)) -replace \
'scriptencoding utf-8', 'scriptencoding latin1' -replace \
' Original translations', ' Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT' -creplace \
[char]1072, 'a' -creplace [char]1073, 'b' -creplace [char]1074, 'v' -creplace \
[char]1075, 'g' -creplace [char]1076, 'd' -creplace [char]1106, 'dj' -creplace \
[char]1077, 'e' -creplace [char]1078, 'z' -creplace [char]1079, 'z' -creplace \
[char]1080, 'i' -creplace [char]1112, 'j' -creplace [char]1082, 'k' -creplace \
[char]1083, 'l' -creplace [char]1113, 'lj' -creplace [char]1084, 'm' -creplace \
[char]1085, 'n' -creplace [char]1114, 'nj' -creplace [char]1086, 'o' -creplace \
[char]1087, 'p' -creplace [char]1088, 'r' -creplace [char]1089, 's' -creplace \
[char]1090, 't' -creplace [char]1115, 'c' -creplace [char]1091, 'u' -creplace \
[char]1092, 'f' -creplace [char]1093, 'h' -creplace [char]1094, 'c' -creplace \
[char]1095, 'c' -creplace [char]1119, 'dz' -creplace [char]1096, 's' -creplace \
[char]1040, 'A' -creplace [char]1041, 'B' -creplace [char]1042, 'V' -creplace \
[char]1043, 'G' -creplace [char]1044, 'D' -creplace [char]1026, 'Đ' -creplace \
[char]1045, 'E' -creplace [char]1046, 'Z' -creplace [char]1047, 'Z' -creplace \
[char]1048, 'I' -creplace [char]1032, 'J' -creplace [char]1050, 'K' -creplace \
[char]1051, 'L' -creplace [char]1033, 'Lj' -creplace [char]1052, 'M' -creplace \
[char]1053, 'N' -creplace [char]1034, 'Nj' -creplace [char]1054, 'O' -creplace \
[char]1055, 'P' -creplace [char]1056, 'R' -creplace [char]1057, 'S' -creplace \
[char]1058, 'T' -creplace [char]1035, 'C' -creplace [char]1059, 'U' -creplace \
[char]1060, 'F' -creplace [char]1061, 'H' -creplace [char]1062, 'C' -creplace \
[char]1063, 'C' -creplace [char]1039, 'Dz' -creplace [char]1064, 'S' ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.iso_8859-2.vim.
menu_sr_rs.iso_8859-2.vim : menu_sr_rs.utf-8.vim
$(RM) $@
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)) -creplace \
[char]1072, 'a' -creplace [char]1073, 'b' -creplace [char]1074, 'v' -creplace \
[char]1075, 'g' -creplace [char]1076, 'd' -creplace [char]1106, [char]273 -creplace \
[char]1077, 'e' -creplace [char]1078, [char]382 -creplace [char]1079, 'z' -creplace \
[char]1080, 'i' -creplace [char]1112, 'j' -creplace [char]1082, 'k' -creplace \
[char]1083, 'l' -creplace [char]1113, 'lj' -creplace [char]1084, 'm' -creplace \
[char]1085, 'n' -creplace [char]1114, 'nj' -creplace [char]1086, 'o' -creplace \
[char]1087, 'p' -creplace [char]1088, 'r' -creplace [char]1089, 's' -creplace \
[char]1090, 't' -creplace [char]1115, [char]263 -creplace [char]1091, 'u' -creplace \
[char]1092, 'f' -creplace [char]1093, 'h' -creplace [char]1094, 'c' -creplace \
[char]1095, [char]269 -creplace [char]1119, 'dz' -creplace [char]1096, [char]353 -creplace \
[char]1040, 'A' -creplace [char]1041, 'B' -creplace [char]1042, 'V' -creplace \
[char]1043, 'G' -creplace [char]1044, 'D' -creplace [char]1026, 'Đ' -creplace \
[char]1045, 'E' -creplace [char]1046, [char]381 -creplace [char]1047, 'Z' -creplace \
[char]1048, 'I' -creplace [char]1032, 'J' -creplace [char]1050, 'K' -creplace \
[char]1051, 'L' -creplace [char]1033, 'Lj'-creplace [char]1052, 'M' -creplace \
[char]1053, 'N' -creplace [char]1034, 'Nj' -creplace [char]1054, 'O' -creplace \
[char]1055, 'P' -creplace [char]1056, 'R' -creplace [char]1057, 'S' -creplace \
[char]1058, 'T' -creplace [char]1035, [char]262 -creplace [char]1059, 'U' -creplace \
[char]1060, 'F' -creplace [char]1061, 'H' -creplace [char]1062, 'C' -creplace \
[char]1063, [char]268 -creplace [char]1039, 'Dz' -creplace [char]1064, [char]352 -replace \
'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
' Original translations', ' Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, [System.Text.Encoding]::GetEncoding(28592))
# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.iso_8859-5.vim.
menu_sr_rs.iso_8859-5.vim : menu_sr_rs.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-5 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28595))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28595)) -replace \
'scriptencoding utf-8', 'scriptencoding iso-8859-5' -replace \
' Original translations', ' Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28595))
# Convert menu_tr_tr.utf-8.vim to create menu_tr_tr.cp1254.vim.
menu_tr_tr.cp1254.vim : menu_tr_tr.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1254 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1254))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(1254)) -replace \
'scriptencoding utf-8', 'scriptencoding cp1254' -replace \
' Original translations', ' Generated from menu_tr_tr.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(1254))
# Convert menu_tr_tr.utf-8.vim to create menu_tr_tr.iso_8859-9.vim.
menu_tr_tr.iso_8859-9.vim : menu_tr_tr.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-9 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28599))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(28599)) -replace \
'scriptencoding utf-8', 'scriptencoding iso-8859-9' -replace \
' Original translations', ' Generated from menu_tr_tr.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(28599))
# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.cp1251.vim.
menu_uk_ua.cp1251.vim : menu_uk_ua.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1251 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1251))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(1251)) -replace \
'scriptencoding utf-8', 'scriptencoding cp1251' -replace \
' Original translations', ' Generated from menu_uk_ua.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(1251))
# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.koi8-u.vim.
menu_uk_ua.koi8-u.vim : menu_uk_ua.utf-8.vim
$(RM) $@
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t KOI8-U $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(21866))
!ENDIF
powershell -nologo -noprofile -Command \
$$out = [System.IO.File]::ReadAllText(\"$@\", \
[System.Text.Encoding]::GetEncoding(21866)) -replace \
'scriptencoding utf-8', 'scriptencoding koi8-u' -replace \
' Original translations', ' Generated from menu_uk_ua.utf-8.vim, DO NOT EDIT'; \
[System.IO.File]::WriteAllText(\"$@\", $$out, \
[System.Text.Encoding]::GetEncoding(21866))
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:

View File

@@ -1,165 +1,164 @@
# Author: Ada (Haowen) Yu <me@yuhaowen.com>
all: \
menu_chinese_gb.936.vim \
menu_uk_ua.cp1251.vim \
menu_uk_ua.koi8-u.vim \
menu_chinese_taiwan.950.vim \
menu_cs_cz.iso_8859-2.vim \
menu_czech_czech_republic.1250.vim \
menu_ja_jp.euc-jp.vim \
menu_japanese_japan.932.vim \
menu_ko_kr.euckr.vim \
menu_pl_pl.iso_8859-2.vim \
menu_polish_poland.1250.vim \
menu_ru_ru.koi8-r.vim \
menu_ru_ru.cp1251.vim \
menu_sl_si.cp1250.vim \
menu_sl_si.latin2.vim \
menu_slovak_slovak_republic.1250.vim \
menu_tr_tr.cp1254.vim \
menu_tr_tr.iso_8859-9.vim \
menu_sr_rs.iso_8859-5.vim \
menu_sr_rs.iso_8859-2.vim \
menu_sr_rs.ascii.vim \
menu_czech_czech_republic.ascii.vim \
menu_hu_hu.iso_8859-2.vim \
menu_sk_sk.iso_8859-2.vim \
# Common components
include Make_all.mak
SED = LANG=C sed
all: $(CONVERTED)
# Convert menu_zh_cn.utf-8.vim to create menu_chinese_gb.936.vim.
menu_chinese_gb.936.vim: menu_zh_cn.utf-8.vim
rm -f menu_chinese_gb.936.vim
iconv -f utf-8 -t cp936 menu_zh_cn.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp936/' -e 's/" Original translations/" Generated from menu_zh_cn.utf-8.vim, DO NOT EDIT/' > menu_chinese_gb.936.vim
rm -f $@
iconv -f UTF-8 -t CP936 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp936/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_zh_tw.utf-8.vim to create menu_chinese_taiwan.950.vim.
menu_chinese_taiwan.950.vim: menu_zh_tw.utf-8.vim
rm -f menu_chinese_taiwan.950.vim
iconv -f utf-8 -t cp950 menu_zh_tw.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp950/' -e 's/" Original translations/" Generated from menu_zh_tw.utf-8.vim, DO NOT EDIT/' > menu_chinese_taiwan.950.vim
rm -f $@
iconv -f UTF-8 -t CP950 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp950/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_cs_cz.utf-8.vim to create menu_cs_cz.iso_8859-2.vim.
menu_cs_cz.iso_8859-2.vim: menu_cs_cz.utf-8.vim
rm -f menu_cs_cz.iso_8859-2.vim
iconv -f utf-8 -t iso8859-2 menu_cs_cz.utf-8.vim | \
rm -f $@
iconv -f UTF-8 -t ISO-8859-2 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' \
-e 's/" Original translations/" Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(ISO8859-2)/' \
> menu_cs_cz.iso_8859-2.vim
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(ISO8859-2)/' \
> $@
# Convert menu_cs_cz.utf-8.vim to create menu_czech_czech_republic.1250.vim.
menu_czech_czech_republic.1250.vim: menu_cs_cz.utf-8.vim
rm -f menu_czech_czech_republic.1250.vim
iconv -f utf-8 -t cp1250 menu_cs_cz.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' \
-e 's/" Original translations/" Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(CP1250)/' \
> menu_czech_czech_republic.1250.vim
rm -f $@
iconv -f UTF-8 -t CP1250 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(CP1250)/' \
> $@
# Convert menu_cs_cz.utf-8.vim to create menu_czech_czech_republic.ascii.vim.
menu_czech_czech_republic.ascii.vim: menu_cs_cz.utf-8.vim
rm -f menu_czech_czech_republic.ascii.vim
rm -f $@
$(SED) -e 's/Á/A/g' -e 's/á/a/g' -e 's/Č/C/g' -e 's/č/c/g' -e 's/Ď/D/g' \
-e 's/ď/d/g' -e 's/É/E/g' -e 's/é/e/g' -e 's/Ě/E/g' -e 's/ě/e/g' \
-e 's/Í/I/g' -e 's/í/i/g' -e 's/Ň/N/g' -e 's/ň/n/g' -e 's/Ó/O/g' \
-e 's/ó/o/g' -e 's/Ř/R/g' -e 's/ř/r/g' -e 's/Š/S/g' -e 's/š/s/g' \
-e 's/Ť/T/g' -e 's/ť/t/g' -e 's/Ú/U/g' -e 's/ú/u/g' -e 's/Ů/U/g' \
-e 's/ů/u/g' -e 's/Ý/Y/g' -e 's/ý/y/g' -e 's/Ž/Z/g' -e 's/ž/z/g' \
-e 's/scriptencoding utf-8/scriptencoding latin1/' \
-e 's/" Original translations/" Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(ASCII - without diacritics)/' \
menu_cs_cz.utf-8.vim > menu_czech_czech_republic.ascii.vim
-e 's/scriptencoding utf-8/scriptencoding latin1/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(ASCII - without diacritics)/' \
$< > $@
# Convert menu_ja_jp.utf-8.vim to create menu_ja_jp.euc-jp.vim.
menu_ja_jp.euc-jp.vim: menu_ja_jp.utf-8.vim
rm -f menu_ja_jp.euc-jp.vim
iconv -f utf-8 -t euc-jp menu_ja_jp.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding euc-jp/' \
-e 's/" Original translations/" Generated from menu_ja_jp.utf-8.vim, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(EUC-JP)/' \
> menu_ja_jp.euc-jp.vim
rm -f $@
iconv -f UTF-8 -t EUC-JP $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding euc-jp/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(EUC-JP)/' \
> $@
# Convert menu_ja_jp.utf-8.vim to create menu_japanese_japan.932.vim.
menu_japanese_japan.932.vim: menu_ja_jp.utf-8.vim
rm -f menu_japanese_japan.932.vim
iconv -f utf-8 -t cp932 menu_ja_jp.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp932/' \
-e 's/" Original translations/" Generated from menu_ja_jp.utf-8.vim, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(CP932)/' \
> menu_japanese_japan.932.vim
rm -f $@
iconv -f UTF-8 -t CP932 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp932/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
-e 's/\(" Menu Translations:.*\)(.*)/\1(CP932)/' \
> $@
# Convert menu_ko_kr.utf-8.vim to create menu_ko_kr.euckr.vim.
menu_ko_kr.euckr.vim: menu_ko_kr.utf-8.vim
rm -f menu_ko_kr.euckr.vim
iconv -f utf-8 -t euc-kr menu_ko_kr.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding euc-kr/' -e 's/" Original translations/" Generated from menu_ko_kr.utf-8.vim, DO NOT EDIT/' > menu_ko_kr.euckr.vim
rm -f $@
iconv -f UTF-8 -t EUC-KR $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding euc-kr/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_pl_pl.utf-8.vim to create menu_pl_pl.iso_8859-2.vim.
menu_pl_pl.iso_8859-2.vim: menu_pl_pl.utf-8.vim
rm -f menu_pl_pl.iso_8859-2.vim
iconv -f utf-8 -t iso8859-2 menu_pl_pl.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' -e 's/" Original translations/" Generated from menu_pl_pl.utf-8.vim, DO NOT EDIT/' > menu_pl_pl.iso_8859-2.vim
rm -f $@
iconv -f UTF-8 -t ISO-8859-2 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_pl_pl.utf-8.vim to create menu_polish_poland.1250.vim.
menu_polish_poland.1250.vim: menu_pl_pl.utf-8.vim
rm -f menu_polish_poland.1250.vim
iconv -f utf-8 -t cp1250 menu_pl_pl.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' -e 's/" Original translations/" Generated from menu_pl_pl.utf-8.vim, DO NOT EDIT/' > menu_polish_poland.1250.vim
rm -f $@
iconv -f UTF-8 -t CP1250 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_ru_ru.utf-8.vim to create menu_ru_ru.koi8-r.vim.
menu_ru_ru.koi8-r.vim: menu_ru_ru.utf-8.vim
rm -f menu_ru_ru.koi8-r.vim
iconv -f utf-8 -t koi8-r menu_ru_ru.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding koi8-r/' -e 's/" Original translations/" Generated from menu_ru_ru.utf-8.vim, DO NOT EDIT/' > menu_ru_ru.koi8-r.vim
rm -f $@
iconv -f UTF-8 -t KOI8-R $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding koi8-r/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_ru_ru.utf-8.vim to create menu_ru_ru.cp1251.vim.
menu_ru_ru.cp1251.vim: menu_ru_ru.utf-8.vim
rm -f menu_ru_ru.cp1251.vim
iconv -f utf-8 -t cp1251 menu_ru_ru.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1251/' -e 's/" Original translations/" Generated from menu_ru_ru.utf-8.vim, DO NOT EDIT/' > menu_ru_ru.cp1251.vim
rm -f $@
iconv -f UTF-8 -t CP1251 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1251/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_sl_si.utf-8.vim to create menu_sl_si.cp1250.vim.
menu_sl_si.cp1250.vim: menu_sl_si.utf-8.vim
rm -f menu_sl_si.cp1250.vim
iconv -f utf-8 -t cp1250 menu_sl_si.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' \
-e 's/" Original translations/" Generated from menu_sl_si.utf-8.vim, DO NOT EDIT/' > menu_sl_si.cp1250.vim
rm -f $@
iconv -f UTF-8 -t CP1250 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_uk_ua.utf-8.vim to create menu_sl_si.latin2.vim.
# for naming encodings, see `:h encoding-names`
# Convert menu_sl_si.utf-8.vim to create menu_sl_si.latin2.vim.
menu_sl_si.latin2.vim: menu_sl_si.utf-8.vim
rm -f menu_sl_si.latin2.vim
iconv -f utf-8 -t latin2 menu_sl_si.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding latin2/' -e 's/" Original translations/" Generated from menu_sl_si.utf-8.vim, DO NOT EDIT/' > menu_sl_si.latin2.vim
# Convert menu_uk_ua.utf-8.vim to create menu_slovak_slovak_republic.1250.vim.
menu_slovak_slovak_republic.1250.vim: menu_sl_si.utf-8.vim
rm -f menu_slovak_slovak_republic.1250.vim
iconv -f utf-8 -t cp1250 menu_sl_si.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1250/' -e 's/" Original translations/" Generated from menu_sl_si.utf-8.vim, DO NOT EDIT/' > menu_slovak_slovak_republic.1250.vim
rm -f $@
iconv -f UTF-8 -t ISO-8859-2 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_tr_tr.utf-8.vim to create menu_tr_tr.cp1254.vim.
menu_tr_tr.cp1254.vim: menu_tr_tr.utf-8.vim
rm -f menu_tr_tr.cp1254.vim
iconv -f utf-8 -t cp1254 menu_tr_tr.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1254/' -e 's/" Original translations/" Generated from menu_tr_tr.utf-8.vim, DO NOT EDIT/' > menu_tr_tr.cp1254.vim
rm -f $@
iconv -f UTF-8 -t CP1254 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1254/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_tr_tr.utf-8.vim to create menu_tr_tr.iso_8859-9.vim.
menu_tr_tr.iso_8859-9.vim: menu_tr_tr.utf-8.vim
rm -f menu_tr_tr.iso_8859-9.vim
iconv -f utf-8 -t iso8859-9 menu_tr_tr.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso8859-9/' -e 's/" Original translations/" Generated from menu_tr_tr.utf-8.vim, DO NOT EDIT/' > menu_tr_tr.iso_8859-9.vim
rm -f $@
iconv -f UTF-8 -t ISO-8859-9 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-9/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.iso_8859-5.vim.
menu_sr_rs.iso_8859-5.vim: menu_sr_rs.utf-8.vim
rm -f menu_sr_rs.iso_8859-5.vim
iconv -f utf-8 -t iso8859-5 menu_sr_rs.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso8859-5/' -e 's/" Original translations/" Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT/' > menu_sr_rs.iso_8859-5.vim
rm -f $@
iconv -f UTF-8 -t ISO-8859-5 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-5/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# for naming encodings, see `:h encoding-names`
# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.iso_8859-2.vim.
menu_sr_rs.iso_8859-2.vim: menu_sr_rs.utf-8.vim
rm -f menu_sr_rs.iso_8859-2.vim
rm -f $@
$(SED) -e 's/а/a/g' -e 's/б/b/g' -e 's/в/v/g' -e 's/г/g/g' -e 's/д/d/g' \
-e 's/ђ/đ/g' -e 's/е/e/g' -e 's/ж/ž/g' -e 's/з/z/g' -e 's/и/i/g' \
-e 's/ј/j/g' -e 's/к/k/g' -e 's/л/l/g' -e 's/љ/lj/g' -e 's/м/m/g' \
@@ -172,13 +171,14 @@ menu_sr_rs.iso_8859-2.vim: menu_sr_rs.utf-8.vim
-e 's/Н/N/g' -e 's/Њ/Nj/g' -e 's/О/O/g' -e 's/П/P/g' -e 's/Р/R/g' \
-e 's/С/S/g' -e 's/Т/T/g' -e 's/Ћ/Ć/g' -e 's/У/U/g' -e 's/Ф/F/g' \
-e 's/Х/H/g' -e 's/Ц/C/g' -e 's/Ч/Č/g' -e 's/Џ/Dž/g' -e 's/Ш/Š/g' \
-e 's/scriptencoding utf-8/scriptencoding iso8859-2/' -e 's/" Original translations/" Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT/' \
menu_sr_rs.utf-8.vim | iconv -f utf-8 -t iso8859-2 \
> menu_sr_rs.iso_8859-2.vim
-e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
$< | iconv -f UTF-8 -t ISO-8859-2 \
> $@
# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.ascii.vim.
menu_sr_rs.ascii.vim: menu_sr_rs.utf-8.vim
rm -f menu_sr_rs.ascii.vim
rm -f $@
$(SED) -e 's/а/a/g' -e 's/б/b/g' -e 's/в/v/g' -e 's/г/g/g' -e 's/д/d/g' \
-e 's/ђ/dj/g' -e 's/е/e/g' -e 's/ж/z/g' -e 's/з/z/g' -e 's/и/i/g' \
-e 's/ј/j/g' -e 's/к/k/g' -e 's/л/l/g' -e 's/љ/lj/g' -e 's/м/m/g' \
@@ -191,29 +191,38 @@ menu_sr_rs.ascii.vim: menu_sr_rs.utf-8.vim
-e 's/Н/N/g' -e 's/Њ/Nj/g' -e 's/О/O/g' -e 's/П/P/g' -e 's/Р/R/g' \
-e 's/С/S/g' -e 's/Т/T/g' -e 's/Ћ/C/g' -e 's/У/U/g' -e 's/Ф/F/g' \
-e 's/Х/H/g' -e 's/Ц/C/g' -e 's/Ч/C/g' -e 's/Џ/Dz/g' -e 's/Ш/S/g' \
-e 's/scriptencoding utf-8/scriptencoding latin1/' -e 's/" Original translations/" Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT/' \
menu_sr_rs.utf-8.vim > menu_sr_rs.ascii.vim
-e 's/scriptencoding utf-8/scriptencoding latin1/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
$< > $@
# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.cp1251.vim.
menu_uk_ua.cp1251.vim: menu_uk_ua.utf-8.vim
rm -f menu_uk_ua.cp1251.vim
iconv -f utf-8 -t cp1251 menu_uk_ua.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1251/' -e 's/" Original translations/" Generated from menu_uk_ua.utf-8.vim, DO NOT EDIT/' > menu_uk_ua.cp1251.vim
rm -f $@
iconv -f UTF-8 -t CP1251 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding cp1251/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.koi8-u.vim.
menu_uk_ua.koi8-u.vim: menu_uk_ua.utf-8.vim
rm -f menu_uk_ua.koi8-u.vim
iconv -f utf-8 -t koi8-u menu_uk_ua.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding koi8-u/' -e 's/" Original translations/" Generated from menu_uk_ua.utf-8.vim, DO NOT EDIT/' > menu_uk_ua.koi8-u.vim
rm -f $@
iconv -f UTF-8 -t KOI8-U $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding koi8-u/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_hu_hu.utf-8.vim to create menu_hu_hu.iso_8859-2.vim.
menu_hu_hu.iso_8859-2.vim: menu_hu_hu.utf-8.vim
rm -f menu_hu_hu.iso_8859-2.vim
iconv -f utf-8 -t iso8859-2 menu_hu_hu.utf-8.vim | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' -e 's/" Original translations/" Generated from menu_hu_hu.utf-8.vim, DO NOT EDIT/' > menu_hu_hu.iso_8859-2.vim
rm -f $@
iconv -f UTF-8 -t ISO-8859-2 $< | \
$(SED) -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@
# Convert menu_slovak_slovak_republic.1250.vim to create menu_sk_sk.iso_8859-2.vim.
menu_sk_sk.iso_8859-2.vim: menu_slovak_slovak_republic.1250.vim
rm -f menu_sk_sk.iso_8859-2.vim
iconv -f cp1250 -t iso8859-2 menu_slovak_slovak_republic.1250.vim | \
$(SED) -e 's/scriptencoding cp1250/scriptencoding iso-8859-2/' -e 's/" Original translations/" Generated from menu_slovak_slovak_republic.1250.vim, DO NOT EDIT/' > menu_sk_sk.iso_8859-2.vim
rm -f $@
iconv -f CP1250 -t ISO-8859-2 $< | \
$(SED) -e 's/scriptencoding cp1250/scriptencoding iso-8859-2/' \
-e 's/" Original translations/" Generated from $<, DO NOT EDIT/' \
> $@

View File

@@ -13,7 +13,7 @@ let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim
scriptencoding iso8859-2
scriptencoding iso-8859-2
" {{{ File menu
menutrans &File &Soubor

View File

@@ -15,7 +15,7 @@ let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim
scriptencoding latin2
scriptencoding iso-8859-2
" {{{ FILE / DATOTEKA
menutrans &File &Datoteka

View File

@@ -12,7 +12,7 @@ let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim
scriptencoding iso8859-2
scriptencoding iso-8859-2
" Help menu
menutrans &Help Pomo&<26>

View File

@@ -12,7 +12,7 @@ let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim
scriptencoding iso8859-5
scriptencoding iso-8859-5
" Help menu
menutrans &Help <20><><EFBFBD><EFBFBD>&<26>

View File

@@ -9,7 +9,7 @@ endif
let did_menu_trans = 1
let s:keepcpo= &cpo
set cpo&vim
scriptencoding iso8859-9
scriptencoding iso-8859-9
" Top
menutrans &File &Dosya

View File

@@ -651,7 +651,7 @@ SynMenu UV.VSE\ JCL:vsejcl
SynMenu WXYZ.WEB.CWEB:cweb
SynMenu WXYZ.WEB.WEB:web
SynMenu WXYZ.WEB.WEB\ Changes:change
SynMenu WXYZ.WebAssembly:wast
SynMenu WXYZ.WebAssembly:wat
SynMenu WXYZ.Webmacro:webmacro
SynMenu WXYZ.Website\ MetaLanguage:wml
SynMenu WXYZ.wDiff:wdiff

View File

@@ -2,7 +2,7 @@
"
" Author: Bram Moolenaar
" Copyright: Vim license applies, see ":help license"
" Last Change: 2023 Aug 23
" Last Change: 2023 Nov 02
"
" WORK IN PROGRESS - The basics works stable, more to come
" Note: In general you need at least GDB 7.12 because this provides the
@@ -859,7 +859,9 @@ func s:ParseVarinfo(varinfo)
let nameIdx = matchstrpos(a:varinfo, '{name="\([^"]*\)"')
let dict['name'] = a:varinfo[nameIdx[1] + 7 : nameIdx[2] - 2]
let typeIdx = matchstrpos(a:varinfo, ',type="\([^"]*\)"')
let dict['type'] = a:varinfo[typeIdx[1] + 7 : typeIdx[2] - 2]
" 'type' maybe is a url-like string,
" try to shorten it and show only the /tail
let dict['type'] = (a:varinfo[typeIdx[1] + 7 : typeIdx[2] - 2])->fnamemodify(':t')
let valueIdx = matchstrpos(a:varinfo, ',value="\(.*\)"}')
if valueIdx[1] == -1
let dict['value'] = 'Complex value'
@@ -990,7 +992,9 @@ func s:InstallCommands()
endif
if map
let s:k_map_saved = maparg('K', 'n', 0, 1)
nnoremap K :Evaluate<CR>
if !empty(s:k_map_saved) && !s:k_map_saved.buffer || empty(s:k_map_saved)
nnoremap K :Evaluate<CR>
endif
endif
let map = 1
@@ -999,7 +1003,9 @@ func s:InstallCommands()
endif
if map
let s:plus_map_saved = maparg('+', 'n', 0, 1)
nnoremap <expr> + $'<Cmd>{v:count1}Up<CR>'
if !empty(s:plus_map_saved) && !s:plus_map_saved.buffer || empty(s:plus_map_saved)
nnoremap <expr> + $'<Cmd>{v:count1}Up<CR>'
endif
endif
let map = 1
@@ -1008,7 +1014,9 @@ func s:InstallCommands()
endif
if map
let s:minus_map_saved = maparg('-', 'n', 0, 1)
nnoremap <expr> - $'<Cmd>{v:count1}Down<CR>'
if !empty(s:minus_map_saved) && !s:minus_map_saved.buffer || empty(s:minus_map_saved)
nnoremap <expr> - $'<Cmd>{v:count1}Down<CR>'
endif
endif
@@ -1080,26 +1088,29 @@ func s:DeleteCommands()
delcommand Winbar
if exists('s:k_map_saved')
if empty(s:k_map_saved)
if !empty(s:k_map_saved) && !s:k_map_saved.buffer
nunmap K
else
call mapset(s:k_map_saved)
elseif empty(s:k_map_saved)
nunmap K
endif
unlet s:k_map_saved
endif
if exists('s:plus_map_saved')
if empty(s:plus_map_saved)
if !empty(s:plus_map_saved) && !s:plus_map_saved.buffer
nunmap +
else
call mapset(s:plus_map_saved)
elseif empty(s:plus_map_saved)
nunmap +
endif
unlet s:plus_map_saved
endif
if exists('s:minus_map_saved')
if empty(s:minus_map_saved)
if !empty(s:minus_map_saved) && !s:minus_map_saved.buffer
nunmap -
else
call mapset(s:minus_map_saved)
elseif empty(s:minus_map_saved)
nunmap -
endif
unlet s:minus_map_saved
endif
@@ -1420,8 +1431,15 @@ endfunc
func s:GotoAsmwinOrCreateIt()
if !win_gotoid(s:asmwin)
let mdf = ''
if win_gotoid(s:sourcewin)
exe 'rightbelow new'
" 60 is approx spaceBuffer * 3
if winwidth(0) > (78 + 60)
let mdf = 'vert'
exe mdf .. ' ' .. 60 .. 'new'
else
exe 'rightbelow new'
endif
else
exe 'new'
endif
@@ -1443,7 +1461,7 @@ func s:GotoAsmwinOrCreateIt()
let s:asmbuf = bufnr('Termdebug-asm-listing')
endif
if s:GetDisasmWindowHeight() > 0
if mdf != 'vert' && s:GetDisasmWindowHeight() > 0
exe 'resize ' .. s:GetDisasmWindowHeight()
endif
endif
@@ -1483,8 +1501,15 @@ endfunc
func s:GotoVariableswinOrCreateIt()
if !win_gotoid(s:varwin)
let mdf = ''
if win_gotoid(s:sourcewin)
exe 'rightbelow new'
" 60 is approx spaceBuffer * 3
if winwidth(0) > (78 + 60)
let mdf = 'vert'
exe mdf .. ' ' .. 60 .. 'new'
else
exe 'rightbelow new'
endif
else
exe 'new'
endif
@@ -1505,7 +1530,7 @@ func s:GotoVariableswinOrCreateIt()
let s:varbuf = bufnr('Termdebug-variables-listing')
endif
if s:GetVariablesWindowHeight() > 0
if mdf != 'vert' && s:GetVariablesWindowHeight() > 0
exe 'resize ' .. s:GetVariablesWindowHeight()
endif
endif
@@ -1623,9 +1648,9 @@ func s:CreateBreakpoint(id, subid, enabled)
let label = get(g:termdebug_config, 'sign', '')
endif
if label == ''
let label = substitute(nr, '\..*', '', '')
if strlen(label) > 2
let label = strpart(label, strlen(label) - 2)
let label = printf('%02X', a:id)
if a:id > 255
let label = 'F+'
endif
endif
call sign_define('debugBreakpoint' .. nr,
@@ -1774,3 +1799,5 @@ call s:InitAutocmd()
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 sts=2 et

View File

@@ -26,6 +26,7 @@ augroup matchparen
autocmd! WinLeave,BufLeave * call s:Remove_Matches()
if exists('##TextChanged')
autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair()
autocmd! TextChangedP * call s:Remove_Matches()
endif
augroup END

View File

@@ -618,7 +618,7 @@ an 50.160.330 &Syntax.UV.VSE\ JCL :cal SetSyn("vsejcl")<CR>
an 50.170.100 &Syntax.WXYZ.WEB.CWEB :cal SetSyn("cweb")<CR>
an 50.170.110 &Syntax.WXYZ.WEB.WEB :cal SetSyn("web")<CR>
an 50.170.120 &Syntax.WXYZ.WEB.WEB\ Changes :cal SetSyn("change")<CR>
an 50.170.130 &Syntax.WXYZ.WebAssembly :cal SetSyn("wast")<CR>
an 50.170.130 &Syntax.WXYZ.WebAssembly :cal SetSyn("wat")<CR>
an 50.170.140 &Syntax.WXYZ.Webmacro :cal SetSyn("webmacro")<CR>
an 50.170.150 &Syntax.WXYZ.Website\ MetaLanguage :cal SetSyn("wml")<CR>
an 50.170.170 &Syntax.WXYZ.wDiff :cal SetSyn("wdiff")<CR>

View File

@@ -3,9 +3,9 @@
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainers: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Claudio Fleiner <claudio@fleiner.com>
" Last Change: 2023 Feb 20
" Last Change: 2023 Nov 28
" Please check :help html.vim for some comments and a description of the options
" See :help html.vim for some comments and a description of the options
" quit when a syntax file was already loaded
if !exists("main_syntax")
@@ -28,7 +28,6 @@ syn case ignore
" mark illegal characters
syn match htmlError "[<>&]"
" tags
syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
@@ -39,7 +38,6 @@ syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,
syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
syn match htmlTagError contained "[^>]<"ms=s+1
" tag names
syn keyword htmlTagName contained address applet area a base basefont
syn keyword htmlTagName contained big blockquote br caption center
@@ -61,7 +59,7 @@ syn keyword htmlTagName contained article aside audio bdi canvas data
syn keyword htmlTagName contained datalist details dialog embed figcaption
syn keyword htmlTagName contained figure footer header hgroup keygen main
syn keyword htmlTagName contained mark menuitem meter nav output picture
syn keyword htmlTagName contained progress rb rp rt rtc ruby section
syn keyword htmlTagName contained progress rb rp rt rtc ruby search section
syn keyword htmlTagName contained slot source summary template time track
syn keyword htmlTagName contained video wbr
@@ -88,19 +86,72 @@ syn keyword htmlArg contained size src start target text type url
syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
syn match htmlArg contained "\<\%(http-equiv\|href\|title\)="me=e-1
" aria attributes
exe 'syn match htmlArg contained "\<aria-\%(' . join([
\ 'activedescendant', 'atomic', 'autocomplete', 'busy', 'checked', 'colcount',
\ 'colindex', 'colspan', 'controls', 'current', 'describedby', 'details',
\ 'disabled', 'dropeffect', 'errormessage', 'expanded', 'flowto', 'grabbed',
\ 'haspopup', 'hidden', 'invalid', 'keyshortcuts', 'label', 'labelledby', 'level',
\ 'live', 'modal', 'multiline', 'multiselectable', 'orientation', 'owns',
\ 'placeholder', 'posinset', 'pressed', 'readonly', 'relevant', 'required',
\ 'roledescription', 'rowcount', 'rowindex', 'rowspan', 'selected', 'setsize',
\ 'sort', 'valuemax', 'valuemin', 'valuenow', 'valuetext'
\ ], '\|') . '\)\>"'
syn keyword htmlArg contained role
" ARIA attributes {{{1
let s:aria =<< trim END
activedescendant
atomic
autocomplete
braillelabel
brailleroledescription
busy
checked
colcount
colindex
colindextext
colspan
controls
current
describedby
description
details
disabled
errormessage
expanded
flowto
haspopup
hidden
invalid
keyshortcuts
label
labelledby
level
live
modal
multiline
multiselectable
orientation
owns
placeholder
posinset
pressed
readonly
relevant
required
roledescription
rowcount
rowindex
rowindextext
rowspan
selected
setsize
sort
valuemax
valuemin
valuenow
valuetext
END
let s:aria_deprecated =<< trim END
dropeffect
grabbed
END
call extend(s:aria, s:aria_deprecated)
exe 'syn match htmlArg contained "\%#=1\<aria-\%(' .. s:aria->join('\|') .. '\)\>"'
unlet s:aria s:aria_deprecated
" }}}
" Netscape extensions
syn keyword htmlTagName contained frame noframes frameset nobr blink
syn keyword htmlTagName contained layer ilayer nolayer spacer
@@ -321,9 +372,9 @@ if !exists("html_no_rendering")
hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
hi def htmlItalic term=italic cterm=italic gui=italic
if v:version > 800 || v:version == 800 && has("patch1038")
hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
else
hi def htmlStrike term=underline cterm=underline gui=underline
hi def htmlStrike term=underline cterm=underline gui=underline
endif
endif
endif
@@ -356,4 +407,5 @@ endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:

View File

@@ -3,7 +3,7 @@
" Original Author: Josef Litos (JosefLitos/i3config.vim)
" Maintainer: Quentin Hibon (github user hiqua)
" Version: 1.0.0
" Last Change: 2023-09-14
" Last Change: 2023-11-11
" References:
" http://i3wm.org/docs/userguide.html#configuring
@@ -182,7 +182,7 @@ syn match i3ConfigKeyword /^smart_gaps \(on\|off\|inverse_outer\)$/ contains=i3C
" 5 Configuring bar
syn match i3ConfigBarModifier /^\s\+modifier \S\+$/ contained contains=i3ConfigBindModifier,i3ConfigVariable,i3ConfigBindModkey,i3ConfigBarOptVals
syn keyword i3ConfigBarOpts bar i3bar_command status_command mode hidden_state id position output tray_output tray_padding separator_symbol workspace_buttons workspace_min_width strip_workspace_numbers strip_workspace_name binding_mode_indicator padding contained
syn keyword i3ConfigBarOpts bar i3bar_command status_command workspace_command mode hidden_state id position output tray_output tray_padding separator_symbol workspace_buttons workspace_min_width strip_workspace_numbers strip_workspace_name binding_mode_indicator padding contained
syn keyword i3ConfigBarOptVals dock hide invisible show none top bottom primary nonprimary contained
syn region i3ConfigBarBlock start=/^bar {$/ end=/^}$/ contains=i3ConfigBarOpts,i3ConfigBarOptVals,i3ConfigBarModifier,i3ConfigBind,i3ConfigString,i3ConfigComment,i3ConfigFont,i3ConfigBoolean,i3ConfigNumber,i3ConfigParen,i3ConfigColor,i3ConfigVariable,i3ConfigColorsBlock,i3ConfigShOper,i3ConfigShCommand fold keepend extend
@@ -212,7 +212,7 @@ syn region i3ConfigAction start=/layout/ skip=/\\$/ end=/[,;]\|$/ contained cont
" 6.4 Focusing containers
syn keyword i3ConfigFocusKeyword focus contained
syn keyword i3ConfigFocusOpts left right up down parent child next prev sibling floating tiling mode_toggle contained
syn keyword i3ConfigFocusOpts left right up down workspace parent child next prev sibling floating tiling mode_toggle contained
syn keyword i3ConfigFocusOutputOpts left right down up current primary nonprimary next prev contained
syn region i3ConfigFocusOutput start=/ output / skip=/\\$/ end=/[,;]\|$/ contained contains=i3ConfigWorkspaceOutput,i3ConfigFocusOutputOpts,i3ConfigString,i3ConfigNumber,i3ConfigSeparator keepend
syn match i3ConfigFocusOutputLine /^focus output .*$/ contains=i3ConfigFocusKeyword,i3ConfigFocusOutput

View File

@@ -1,9 +1,9 @@
" Vim syntax file
" Language: Lynx configuration file (lynx.cfg)
" Language: Lynx Web Browser Configuration (lynx.cfg)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2013 Jun 20
" Last Change: 2023 Nov 09
" Lynx 2.8.7
" Lynx 2.8.9
if exists("b:current_syntax")
finish
@@ -12,34 +12,35 @@ endif
let s:cpo_save = &cpo
set cpo&vim
syn match lynxStart "^" transparent skipwhite nextgroup=lynxOption
syn match lynxStart "^" skipwhite nextgroup=lynxOption
syn match lynxComment "\(^\|\s\+\)#.*$" contains=lynxTodo
syn match lynxComment "\%(^\|\s\+\)#.*" contains=lynxTodo
syn keyword lynxTodo TODO NOTE FIXME XXX contained
syn match lynxDelimiter ":" skipwhite nextgroup=lynxBoolean,lynxNumber,lynxNone,lynxRCOption
syn match lynxDelimiter ":" skipwhite nextgroup=lynxBoolean,lynxHttpProtocol,lynxNumber,lynxNone,lynxRCOption
syn case ignore
syn keyword lynxBoolean TRUE FALSE ON OFF contained
syn keyword lynxNone NONE contained
syn keyword lynxNone NONE contained
syn case match
syn match lynxNumber "-\=\<\d\+\>" contained
syn match lynxNumber "-\=\<\d\+\>" contained
syn match lynxHttpProtocol "\<1\.[01]\>" contained
"{{{ Options
syn case ignore
syn keyword lynxOption ACCEPT_ALL_COOKIES ALERTSECS ALWAYS_RESUBMIT_POSTS
\ ALWAYS_TRUSTED_EXEC ANONFTP_PASSWORD ASSUMED_COLOR
\ ASSUMED_DOC_CHARSET_CHOICE ASSUME_CHARSET ASSUME_LOCAL_CHARSET
\ ASSUME_UNREC_CHARSET AUTO_SESSION AUTO_UNCACHE_DIRLISTS BAD_HTML
\ BIBP_BIBHOST BIBP_GLOBAL_SERVER BLOCK_MULTI_BOOKMARKS BOLD_H1
\ BOLD_HEADERS BOLD_NAME_ANCHORS BOOKMARK_FILE BROKEN_FTP_EPSV
\ BROKEN_FTP_RETR BZIP2_PATH CASE_SENSITIVE_ALWAYS_ON
\ CASE_SENSITIVE_SEARCHING CHARACTER_SET CHARSETS_DIRECTORY
\ CHARSET_SWITCH_RULES CHECKMAIL CHMOD_PATH COLLAPSE_BR_TAGS COLOR
\ COLOR_STYLE COMPRESS_PATH CONNECT_TIMEOUT COOKIE_ACCEPT_DOMAINS
\ COOKIE_FILE COOKIE_LOOSE_INVALID_DOMAINS
syn keyword lynxOption ACCEPT_ALL_COOKIES ALERTSECS
\ ALWAYS_RESUBMIT_POSTS ALWAYS_TRUSTED_EXEC ANONFTP_PASSWORD
\ ASSUMED_COLOR ASSUMED_DOC_CHARSET_CHOICE ASSUME_CHARSET
\ ASSUME_LOCAL_CHARSET ASSUME_UNREC_CHARSET AUTO_SESSION
\ AUTO_UNCACHE_DIRLISTS BAD_HTML BIBP_BIBHOST BIBP_GLOBAL_SERVER
\ BLOCK_MULTI_BOOKMARKS BOLD_H1 BOLD_HEADERS BOLD_NAME_ANCHORS
\ BOOKMARK_FILE BROKEN_FTP_EPSV BROKEN_FTP_RETR BZIP2_PATH
\ CASE_SENSITIVE_ALWAYS_ON CASE_SENSITIVE_SEARCHING CHARACTER_SET
\ CHARSETS_DIRECTORY CHARSET_SWITCH_RULES CHECKMAIL CHMOD_PATH
\ COLLAPSE_BR_TAGS COLOR COLOR_STYLE COMPRESS_PATH CONNECT_TIMEOUT
\ COOKIE_ACCEPT_DOMAINS COOKIE_FILE COOKIE_LOOSE_INVALID_DOMAINS
\ COOKIE_QUERY_INVALID_DOMAINS COOKIE_REJECT_DOMAINS COOKIE_SAVE_FILE
\ COOKIE_STRICT_INVALID_DOMAINS COPY_PATH CSO_PROXY CSWING_PATH
\ DEBUGSECS DEFAULT_BOOKMARK_FILE DEFAULT_CACHE_SIZE DEFAULT_COLORS
@@ -97,35 +98,45 @@ syn keyword lynxOption ACCEPT_ALL_COOKIES ALERTSECS ALWAYS_RESUBMIT_POSTS
\ USE_FIXED_RECORDS USE_MOUSE USE_SELECT_POPUPS UUDECODE_PATH
\ VERBOSE_IMAGES VIEWER VISITED_LINKS VI_KEYS VI_KEYS_ALWAYS_ON
\ WAIS_PROXY XHTML_PARSING XLOADIMAGE_COMMAND ZCAT_PATH ZIP_PATH
\ TRIM_BLANK_LINES GUESS_SCHEME HTTP_PROTOCOL HTML5_CHARSETS
\ TRIM_BLANK_LINES PREFERRED_CONTENT_TYPE SSL_CLIENT_CERT_FILE
\ SSL_CLIENT_KEY_FILE MAX_URI_SIZE UNIQUE_URLS MESSAGE_LANGUAGE
\ CONV_JISX0201KANA WAIT_VIEWER_TERMINATION BLAT_MAIL ALT_BLAT_MAIL
\ DONT_WRAP_PRE TRACK_INTERNAL_LINKS FORCE_HTML HIDDENLINKS SHORT_URL
\ LISTONLY LIST_INLINE LOCALHOST WITH_BACKSPACES
\ contained nextgroup=lynxDelimiter
syn keyword lynxRCOption accept_all_cookies assume_charset auto_session
\ bookmark_file case_sensitive_searching character_set
\ cookie_accept_domains cookie_file cookie_loose_invalid_domains
\ cookie_query_invalid_domains cookie_reject_domains
\ collapse_br_tags cookie_accept_domains cookie_file
\ cookie_loose_invalid_domains cookie_query_invalid_domains
\ cookie_reject_domains cookie_strict_invalid_domain
\ cookie_strict_invalid_domains dir_list_style display emacs_keys
\ file_editor file_sorting_method force_cookie_prompt force_ssl_prompt
\ ftp_passive kblayout keypad_mode lineedit_mode locale_charset
\ make_links_for_all_images make_pseudo_alts_for_inlines
\ multi_bookmark no_pause personal_mail_address preferred_charset
\ preferred_encoding preferred_language preferred_media_types raw_mode
\ run_all_execution_links run_execution_links_on_local_files scrollbar
\ select_popups send_useragent session_file set_cookies show_color
\ show_cursor show_dotfiles show_kb_rate sub_bookmarks tagsoup
\ underline_links user_mode useragent verbose_images vi_keys
\ visited_links
\ ftp_passive html5_charsets http_protocol kblayout keypad_mode
\ lineedit_mode locale_charset make_links_for_all_images
\ make_pseudo_alts_for_inlines multi_bookmark no_pause
\ personal_mail_address preferred_charset preferred_encoding
\ preferred_language preferred_media_types raw_mode
\ run_all_execution_links run_execution_links_local
\ run_execution_links_on_local_files scrollbar select_popups
\ send_useragent session_file set_cookies show_color show_cursor
\ show_dotfiles show_kb_rate sub_bookmarks tagsoup underline_links
\ useragent user_mode verbose_images vi_keys visited_links
\ contained nextgroup=lynxDelimiter
syn case match
" }}}
" cfg2html.pl formatting directives
syn match lynxFormatDir "^\.h\d\s.*$"
syn match lynxFormatDir "^\.\(ex\|nf\)\(\s\+\d\+\)\=$"
syn match lynxFormatDir "^\.\%(ex\|nf\)\%(\s\+\d\+\)\=$"
syn match lynxFormatDir "^\.fi$"
syn match lynxFormatDir "^\.url\>"
hi def link lynxBoolean Boolean
hi def link lynxComment Comment
hi def link lynxDelimiter Special
hi def link lynxFormatDir Special
hi def link lynxHttpProtocol Constant
hi def link lynxNone Constant
hi def link lynxNumber Number
hi def link lynxOption Identifier
@@ -137,4 +148,4 @@ let b:current_syntax = "lynx"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 fdm=marker:
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: nginx.conf
" Maintainer: Chris Aumann <me@chr4.org>
" Last Change: Jan 25, 2023
" Last Change: Nov 25, 2023
if exists("b:current_syntax")
finish
@@ -260,6 +260,7 @@ syn keyword ngxDirective hls_forward_args
syn keyword ngxDirective hls_fragment
syn keyword ngxDirective hls_mp4_buffer_size
syn keyword ngxDirective hls_mp4_max_buffer_size
syn keyword ngxDirective http2
syn keyword ngxDirective http2_chunk_size
syn keyword ngxDirective http2_body_preread_size
syn keyword ngxDirective http2_idle_timeout
@@ -271,6 +272,7 @@ syn keyword ngxDirective http2_push
syn keyword ngxDirective http2_push_preload
syn keyword ngxDirective http2_recv_buffer_size
syn keyword ngxDirective http2_recv_timeout
syn keyword ngxDirective http3
syn keyword ngxDirective http3_hq
syn keyword ngxDirective http3_max_concurrent_pushes
syn keyword ngxDirective http3_max_concurrent_streams

View File

@@ -531,7 +531,7 @@ if exists("b:is_kornshell") || exists("b:is_posix")
endif
" sh ksh bash : ${var[... ]...} array reference: {{{1
syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError
syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError,shDerefOffset
" Special ${parameter OPERATOR word} handling: {{{1
" sh ksh bash : ${parameter:-word} word is default value

99
runtime/syntax/swig.vim Normal file
View File

@@ -0,0 +1,99 @@
" Vim syntax file
" Language: SWIG
" Maintainer: Julien Marrec <julien.marrec 'at' gmail com>
" Last Change: 2023 November 23
if exists("b:current_syntax")
finish
endif
" Read the C++ syntax to start with
runtime! syntax/cpp.vim
unlet b:current_syntax
" SWIG extentions
syn keyword swigInclude %include %import %importfile %includefile %module
syn keyword swigMostCommonDirective %alias %apply %beginfile %clear %constant %define %echo %enddef %endoffile
syn keyword swigMostCommonDirective %extend %feature %director %fragment %ignore %inline
syn keyword swigMostCommonDirective %keyword %name %namewarn %native %newobject %parms %pragma
syn keyword swigMostCommonDirective %rename %template %typedef %typemap %types %varargs
" SWIG: Language specific macros
syn keyword swigOtherLanguageSpecific %luacode %go_import
syn keyword swigCSharp %csattributes %csconst %csconstvalue %csmethodmodifiers %csnothrowexception
syn keyword swigCSharp %dconstvalue %dmanifestconst %dmethodmodifiers
syn keyword swigJava %javaconstvalue %javaexception %javamethodmodifiers %javaconst %nojavaexception
syn keyword swigGuile %multiple_values %values_as_list %values_as_vector
syn keyword swigPHP %rinit %rshutdown %minit %mshutdown
syn keyword swigPython %pybinoperator %pybuffer_binary %pybuffer_mutable_binary %pybuffer_mutable_string %pybuffer_string
syn keyword swigPython %pythonappend %pythonbegin %pythoncode %pythondynamic %pythonnondynamic %pythonprepend
syn keyword swigRuby %markfunc %trackobjects %bang
syn keyword swigScilab %scilabconst
" SWIG: Insertion
syn keyword swigInsertSection %insert %begin %runtime %header %wrapper %init
" SWIG: Other directives
syn keyword swigCstring %cstring_bounded_mutable %cstring_bounded_output %cstring_chunk_output %cstring_input_binary %cstring_mutable
syn keyword swigCstring %cstring_output_allocate %cstring_output_allocate_size %cstring_output_maxsize %cstring_output_withsize
syn keyword swigCWstring %cwstring_bounded_mutable %cwstring_bounded_output %cwstring_chunk_output %cwstring_input_binary %cwstring_mutable
syn keyword swigCWstring %cwstring_output_allocate %cwstring_output_allocate_size %cwstring_output_maxsize %cwstring_output_withsize
syn keyword swigCMalloc %malloc %calloc %realloc %free %sizeof %allocators
syn keyword swigExceptionHandling %catches %raise %allowexception %exceptionclass %warn %warnfilter %exception
syn keyword swigContract %contract %aggregate_check
syn keyword swigDirective %addmethods %array_class %array_functions %attribute %attribute2 %attribute2ref
syn keyword swigDirective %attribute_ref %attributeref %attributestring %attributeval %auto_ptr %callback
syn keyword swigDirective %delete_array %delobject %extend_smart_pointer %factory %fastdispatch %freefunc %immutable
syn keyword swigDirective %implicit %implicitconv %interface %interface_custom %interface_impl %intrusive_ptr %intrusive_ptr_no_wrap
syn keyword swigDirective %mutable %naturalvar %nocallback %nocopyctor %nodefaultctor %nodefaultdtor %nonaturalvar %nonspace
syn keyword swigDirective %nspace %pointer_cast %pointer_class %pointer_functions %predicate %proxycode
syn keyword swigDirective %refobject %set_output %shared_ptr %std_comp_methods
syn keyword swigDirective %std_nodefconst_type %typecheck %typemaps_string %unique_ptr %unrefobject %valuewrapper
syn match swigVerbatimStartEnd "%[{}]"
syn match swigUserDef "%\w\+"
syn match swigVerbatimMacro "^\s*%#\w\+\%( .*\)\?$"
" SWIG: typemap var and typemap macros (eg: $1, $*1_type, $&n_ltype, $self)
syn match swigTypeMapVars "\$[*&_a-zA-Z0-9]\+"
" Default highlighting
hi def link swigInclude Include
hi def link swigMostCommonDirective Structure
hi def link swigDirective Macro
hi def link swigContract swigExceptionHandling
hi def link swigExceptionHandling Exception
hi def link swigUserDef Function
hi def link swigCMalloc Statement
hi def link swigCstring Type
hi def link swigCWstring Type
hi def link swigCSharp swigOtherLanguageSpecific
hi def link swigJava swigOtherLanguageSpecific
hi def link swigGuile swigOtherLanguageSpecific
hi def link swigPHP swigOtherLanguageSpecific
hi def link swigPython swigOtherLanguageSpecific
hi def link swigRuby swigOtherLanguageSpecific
hi def link swigScilab swigOtherLanguageSpecific
hi def link swigOtherLanguageSpecific Special
hi def link swigInsertSection PreProc
hi def link swigVerbatimStartEnd Statement
hi def link swigVerbatimMacro Macro
hi def link swigTypeMapVars SpecialChar
let b:current_syntax = "swig"
" vim: ts=8

View File

@@ -0,0 +1,20 @@
><+0#0000e05#ffffff0|!|-@1| +0#0000000&@70
| +0#0000e05&@1|H|T|M|L| |S|y|n|t|a|x| |T|e|s|t| |F|i|l|e| +0#0000000&@51
| +0#0000e05&@1|M|a|i|n|t|a|i|n|e|r|:| |D|o|u|g| |K|e|a|r|n|s| |<|d|o|u|g|k|e|a|r|n|s|@|g|m|a|i|l|.|c|o|m|>| +0#0000000&@26
| +0#0000e05&@1|L|a|s|t| |C|h|a|n|g|e|:| |2|0|2|3| |N|o|v| |2|8| +0#0000000&@48
|-+0#0000e05&@1|>| +0#0000000&@71
@75
|<+0#0000e05&|!|-@1| |H|T|M|L| |E|l|e|m|e|n|t|s| |-@1|>| +0#0000000&@52
|<+0#00e0e07&|a+0#af5f00255&|>+0#00e0e07&| +0#0000000&@71
|<+0#00e0e07&|a+0#af5f00255&|b@1|r|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|a+0#af5f00255&|d@1|r|e|s@1|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|a+0#af5f00255&|r|e|a|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|a+0#af5f00255&|r|t|i|c|l|e|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|a+0#af5f00255&|s|i|d|e|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|a+0#af5f00255&|u|d|i|o|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|b+0#af5f00255&|>+0#00e0e07&|.+2#0000000&@2|<+0#00e0e07&|/|b+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|b+0#af5f00255&|a|s|e|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|b+0#af5f00255&|d|i|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|b+0#af5f00255&|d|o|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|b+0#af5f00255&|l|o|c|k|q|u|o|t|e|>+0#00e0e07&| +0#0000000&@62
|"|i|n|p|u|t|/|h|t|m|l|.|h|t|m|l|"| |1|4|6|L|,| |1|4|1|7|B| @27|1|,|1| @10|T|o|p|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|a+0#af5f00255&|u|d|i|o|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|b+0#af5f00255&|>+0#00e0e07&|.+2#0000000&@2|<+0#00e0e07&|/|b+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|b+0#af5f00255&|a|s|e|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|b+0#af5f00255&|d|i|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|b+0#af5f00255&|d|o|>+0#00e0e07&| +0#0000000&@69
><+0#00e0e07&|b+0#af5f00255&|l|o|c|k|q|u|o|t|e|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|b+0#af5f00255&|o|d|y|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|b+0#af5f00255&|r|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|b+0#af5f00255&|u|t@1|o|n|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|c+0#af5f00255&|a|n|v|a|s|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|c+0#af5f00255&|a|p|t|i|o|n|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|c+0#af5f00255&|i|t|e|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|c+0#af5f00255&|o|d|e|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|c+0#af5f00255&|o|l|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|c+0#af5f00255&|o|l|g|r|o|u|p|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|d+0#af5f00255&|a|t|a|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|d+0#af5f00255&|a|t|a|l|i|s|t|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|d+0#af5f00255&@1|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|d+0#af5f00255&|e|l|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|d+0#af5f00255&|e|l|>+0#00e0e07&| +0#0000000&@60
@57|1|9|,|1| @9|1|0|%|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|d+0#af5f00255&|e|l|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|d+0#af5f00255&|e|l|>+0#00e0e07&| +0#0000000&@60
|<+0#00e0e07&|d+0#af5f00255&|e|t|a|i|l|s|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|d+0#af5f00255&|f|n|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|d+0#af5f00255&|i|a|l|o|g|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|d+0#af5f00255&|i|v|>+0#00e0e07&| +0#0000000&@69
><+0#00e0e07&|d+0#af5f00255&|l|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|d+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|e+0#af5f00255&|m|>+0#00e0e07&|.+4#0000000&@2|<+0#00e0e07&|/|e+0#af5f00255&|m|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|e+0#af5f00255&|m|b|e|d|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|f+0#af5f00255&|i|e|l|d|s|e|t|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|f+0#af5f00255&|i|g|c|a|p|t|i|o|n|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|f+0#af5f00255&|i|g|u|r|e|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|f+0#af5f00255&|o@1|t|e|r|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|f+0#af5f00255&|o|r|m|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|h+0#af5f00255&|1|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|1|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|h+0#af5f00255&|2|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|2|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|h+0#af5f00255&|3|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|3|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|h+0#af5f00255&|4|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|4|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|h+0#af5f00255&|5|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|5|>+0#00e0e07&| +0#0000000&@62
@57|3|7|,|1| @9|2|4|%|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|h+0#af5f00255&|5|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|5|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|h+0#af5f00255&|6|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|6|>+0#00e0e07&| +0#0000000&@62
|<+0#00e0e07&|h+0#af5f00255&|e|a|d|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|e|a|d|>+0#00e0e07&| +0#0000000&@58
|<+0#00e0e07&|h+0#af5f00255&|e|a|d|e|r|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|h+0#af5f00255&|g|r|o|u|p|>+0#00e0e07&| +0#0000000&@66
><+0#00e0e07&|h+0#af5f00255&|r|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|h+0#af5f00255&|t|m|l|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|i+0#af5f00255&|>+0#00e0e07&|.+4#0000000&@2|<+0#00e0e07&|/|i+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|i+0#af5f00255&|f|r|a|m|e|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|i+0#af5f00255&|m|g|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|i+0#af5f00255&|n|p|u|t|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|i+0#af5f00255&|n|s|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|k+0#af5f00255&|b|d|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|l+0#af5f00255&|a|b|e|l|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|l+0#af5f00255&|e|g|e|n|d|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|l+0#af5f00255&|i|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|l+0#af5f00255&|i|n|k|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|m+0#af5f00255&|a|i|n|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|m+0#af5f00255&|a|p|>+0#00e0e07&| +0#0000000&@69
@57|5@1|,|1| @9|3|8|%|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|m+0#af5f00255&|a|p|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|m+0#af5f00255&|a|r|k|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|m+0#af5f00255&|e|n|u|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|m+0#af5f00255&|e|t|a|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|m+0#af5f00255&|e|t|e|r|>+0#00e0e07&| +0#0000000&@67
><+0#00e0e07&|n+0#af5f00255&|a|v|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|n+0#af5f00255&|o|s|c|r|i|p|t|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|o+0#af5f00255&|b|j|e|c|t|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|o+0#af5f00255&|l|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|o+0#af5f00255&|p|t|g|r|o|u|p|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|o+0#af5f00255&|p|t|i|o|n|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|o+0#af5f00255&|u|t|p|u|t|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|p+0#af5f00255&|>+0#00e0e07&| +0#0000000&@71
|<+0#00e0e07&|p+0#af5f00255&|i|c|t|u|r|e|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|p+0#af5f00255&|r|e|>+0#00e0e07&|.+0#0000000&@2|<+0#00e0e07&|/|p+0#af5f00255&|r|e|>+0#00e0e07&| +0#0000000&@60
|<+0#00e0e07&|p+0#af5f00255&|r|o|g|r|e|s@1|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|q+0#af5f00255&|>+0#00e0e07&| +0#0000000&@71
|<+0#00e0e07&|r+0#af5f00255&|p|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|r+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@70
@57|7|3|,|1| @9|5|2|%|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|r+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|r+0#af5f00255&|u|b|y|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|s+0#af5f00255&|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|s+0#af5f00255&|a|m|p|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|s+0#af5f00255&|c|r|i|p|t|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|s+0#af5f00255&|c|r|i|p|t|>+0#00e0e07&| +0#0000000&@54
><+0#00e0e07&|s+0#af5f00255&|e|a|r|c|h|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|s+0#af5f00255&|e|c|t|i|o|n|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|s+0#af5f00255&|e|l|e|c|t|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|s+0#af5f00255&|l|o|t|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|s+0#af5f00255&|m|a|l@1|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|s+0#af5f00255&|o|u|r|c|e|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|s+0#af5f00255&|p|a|n|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|s+0#af5f00255&|t|r|o|n|g|>+0#00e0e07&|.+2#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|r|o|n|g|>+0#00e0e07&| +0#0000000&@54
|<+0#00e0e07&|s+0#af5f00255&|t|y|l|e|>+0#00e0e07&|.+0#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|y|l|e|>+0#00e0e07&| +0#0000000&@56
|<+0#00e0e07&|s+0#af5f00255&|u|b|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|s+0#af5f00255&|u|m@1|a|r|y|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|s+0#af5f00255&|u|p|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|t+0#af5f00255&|a|b|l|e|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|t+0#af5f00255&|b|o|d|y|>+0#00e0e07&| +0#0000000&@67
@57|9|1|,|1| @9|6@1|%|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|t+0#af5f00255&|b|o|d|y|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|t+0#af5f00255&|d|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|t+0#af5f00255&|e|m|p|l|a|t|e|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|t+0#af5f00255&|e|x|t|a|r|e|a|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|t+0#af5f00255&|f|o@1|t|>+0#00e0e07&| +0#0000000&@67
><+0#00e0e07&|t+0#af5f00255&|h|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|t+0#af5f00255&|h|e|a|d|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|t+0#af5f00255&|i|m|e|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|t+0#af5f00255&|i|t|l|e|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|t+0#af5f00255&|i|t|l|e|>+0#00e0e07&| +0#0000000&@56
|<+0#00e0e07&|t+0#af5f00255&|r|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|t+0#af5f00255&|r|a|c|k|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|u+0#af5f00255&|>+0#00e0e07&|.+8#0000000&@2|<+0#00e0e07&|/|u+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|u+0#af5f00255&|l|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|v+0#af5f00255&|a|r|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|v+0#af5f00255&|i|d|e|o|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|w+0#af5f00255&|b|r|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|x+0#af5f00255&|m|p|>+0#00e0e07&| +0#0000000&@69
@75
|<+0#0000e05&|!|-@1| |D|e|p|r|e|c|a|t|e|d| |E|l|e|m|e|n|t|s| |-@1|>| +0#0000000&@46
@57|1|0|9|,|1| @8|8|1|%|

View File

@@ -0,0 +1,20 @@
|<+0#0000e05#ffffff0|!|-@1| |D|e|p|r|e|c|a|t|e|d| |E|l|e|m|e|n|t|s| |-@1|>| +0#0000000&@46
|<+0#00e0e07&|a+0#af5f00255&|c|r|o|n|y|m|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|b+0#af5f00255&|i|g|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|c+0#af5f00255&|e|n|t|e|r|>+0#00e0e07&| +0#0000000&@66
|<+0#00e0e07&|d+0#af5f00255&|i|r|>+0#00e0e07&| +0#0000000&@69
><+0#00e0e07&|f+0#af5f00255&|o|n|t|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|f+0#af5f00255&|r|a|m|e|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|f+0#af5f00255&|r|a|m|e|s|e|t|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|m+0#af5f00255&|a|r|q|u|e@1|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|m+0#af5f00255&|e|n|u|i|t|e|m|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|n+0#af5f00255&|o|b|r|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|n+0#af5f00255&|o|f|r|a|m|e|s|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|p+0#af5f00255&|a|r|a|m|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|r+0#af5f00255&|b|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|r+0#af5f00255&|t|c|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&| +0#0000000&@54
|<+0#00e0e07&|t+0#af5f00255&@1|>+0#00e0e07&| +0#0000000&@70
@75
|<+0#0000e05&|!|-@1| |N|o|t|e|:| |t|h|e|s|e| |d|e|p|r|e|c|a|t|e|d| |e|l|e|m|e|n|t|s| |h|a|v|e| |n|e|v|e|r| |b|e@1|n| |m|a|t|c|h|e|d| |-@1|>| +0#0000000&@10
@57|1|2|7|,|1| @8|9|5|%|

View File

@@ -0,0 +1,20 @@
|<+0#00e0e07#ffffff0|f+0#af5f00255&|r|a|m|e|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|f+0#af5f00255&|r|a|m|e|s|e|t|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|m+0#af5f00255&|a|r|q|u|e@1|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|m+0#af5f00255&|e|n|u|i|t|e|m|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|n+0#af5f00255&|o|b|r|>+0#00e0e07&| +0#0000000&@68
|<+0#00e0e07&|n+0#af5f00255&|o|f|r|a|m|e|s|>+0#00e0e07&| +0#0000000&@64
|<+0#00e0e07&|p+0#af5f00255&|a|r|a|m|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|r+0#af5f00255&|b|>+0#00e0e07&| +0#0000000&@70
|<+0#00e0e07&|r+0#af5f00255&|t|c|>+0#00e0e07&| +0#0000000&@69
|<+0#00e0e07&|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&| +0#0000000&@54
|<+0#00e0e07&|t+0#af5f00255&@1|>+0#00e0e07&| +0#0000000&@70
@75
|<+0#0000e05&|!|-@1| |N|o|t|e|:| |t|h|e|s|e| |d|e|p|r|e|c|a|t|e|d| |e|l|e|m|e|n|t|s| |h|a|v|e| |n|e|v|e|r| |b|e@1|n| |m|a|t|c|h|e|d| |-@1|>| +0#0000000&@10
|<+0#00e0e07&|i+0#0000000&|m|a|g|e|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|n+0#0000000&|o|e|m|b|e|d|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|p+0#0000000&|l|a|i|n|t|e|x|t|>+0#00e0e07&| +0#0000000&@63
@75
|<+0#0000e05&|!|-@1| |E|x|p|e|r|i|m|e|n|t|a|l| |-@1|>| +0#0000000&@53
><+0#00e0e07&|p+0#0000000&|o|r|t|a|l|>+0#00e0e07&| +0#0000000&@66
@57|1|4|6|,|1| @8|B|o|t|

View File

@@ -0,0 +1,20 @@
>"+0#0000e05#ffffff0| |V|i|m| |K|e|y|m|a|p| |f|i|l|e| |f|o|r| |s|y|n|t|a|x| |t|e|s|t|i|n|g| @38
@75
@75
@46| +0#0000000&@28
@75
@75
|"+0#0000e05&| +0#0000000&|M+0#e000e06&|a|i|n|t|a|i|n|e|r|:| +0#0000e05&@2|D|o|u|g| |K|e|a|r|n|s| |<|d|o|u|g|k|e|a|r|n|s|@|g|m|a|i|l|.|c|o|m|>| @24
@60| +0#0000000&@14
|"+0#0000e05&| +0#0000000&|L+0#e000e06&|a|s|t| |C|h|a|n|g|e|d|:| +0#0000e05&|2|0|2|3| |N|o|v| |2|1| @47
@75
@75
@46| +0#0000000&@28
@75
@75
@75
@75
|s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&|u|t|f|-+0#af5f00255&|8+0#e000002&| +0#0000000&@54
@75
|@+0#4040ff13&@2| @71
|"+0#0000000&|i|n|p|u|t|/|v|i|m|.|v|i|m|"| |2|6|L|,| |3|9@1|2|B| @30|1|,|1| @10|T|o|p|

View File

@@ -0,0 +1,20 @@
| +0&#ffffff0@74
@75
|a| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| @38| +0#0000000&@15
|'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| @10| +0#0000000&@22
@75
>"+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| @56
@60| +0#0000000&@14
|<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| @2
@75
@75
@46| +0#0000000&@28
|c| @13|<+0#e000e06&|c|h|a|r|-|0|1|0|3|>| +0#0000000&@4|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |R|H|S| |-| |o|c|t|a|l| @4
@60| +0#0000000&@14
|<+0#e000e06&|c|h|a|r|-|0|x|0@1|6|4|>| +0#0000000&@1|<+0#e000e06&|c|h|a|r|-|0|x|0@1|4@1|>| +0#0000000&@2|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |a|n|d| |R|H|S| |-| |h|e
|x|a|d|e|c|i|m|a|l| @50| +0#0000000&@14
@75
|"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12
|#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e
|n|t| +0#0000000&@72
@57|1|9|,|1| @9|9|3|%|

View File

@@ -0,0 +1,20 @@
|a+0&#ffffff0| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| @38| +0#0000000&@15
|'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| @10| +0#0000000&@22
@75
|"+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| @56
@60| +0#0000000&@14
|<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| @2
@75
@75
@46| +0#0000000&@28
|c| @13|<+0#e000e06&|c|h|a|r|-|0|1|0|3|>| +0#0000000&@4|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |R|H|S| |-| |o|c|t|a|l| @4
@60| +0#0000000&@14
|<+0#e000e06&|c|h|a|r|-|0|x|0@1|6|4|>| +0#0000000&@1|<+0#e000e06&|c|h|a|r|-|0|x|0@1|4@1|>| +0#0000000&@2|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |a|n|d| |R|H|S| |-| |h|e
|x|a|d|e|c|i|m|a|l| @50| +0#0000000&@14
@75
|"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12
|#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e
|n|t| +0#0000000&@72
>\|"| |“| @18|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| | +0#0000000&@2
|~+0#4040ff13&| @73
| +0#0000000&@56|2|6|,|1| @9|B|o|t|

View File

@@ -0,0 +1,146 @@
<!--
HTML Syntax Test File
Maintainer: Doug Kearns <dougkearns@gmail.com>
Last Change: 2023 Nov 28
-->
<!-- HTML Elements -->
<a>
<abbr>
<address>
<area>
<article>
<aside>
<audio>
<b>...</b>
<base>
<bdi>
<bdo>
<blockquote>
<body>
<br>
<button>
<canvas>
<caption>
<cite>
<code>
<col>
<colgroup>
<data>
<datalist>
<dd>
<del>...</del>
<details>
<dfn>
<dialog>
<div>
<dl>
<dt>
<em>...</em>
<embed>
<fieldset>
<figcaption>
<figure>
<footer>
<form>
<h1>...</h1>
<h2>...</h2>
<h3>...</h3>
<h4>...</h4>
<h5>...</h5>
<h6>...</h6>
<head>...</head>
<header>
<hgroup>
<hr>
<html>
<i>...</i>
<iframe>
<img>
<input>
<ins>
<kbd>
<label>
<legend>
<li>
<link>
<main>
<map>
<mark>
<menu>
<meta>
<meter>
<nav>
<noscript>
<object>
<ol>
<optgroup>
<option>
<output>
<p>
<picture>
<pre>...</pre>
<progress>
<q>
<rp>
<rt>
<ruby>
<s>...</s>
<samp>
<script>...</script>
<search>
<section>
<select>
<slot>
<small>
<source>
<span>
<strong>...</strong>
<style>...</style>
<sub>
<summary>
<sup>
<table>
<tbody>
<td>
<template>
<textarea>
<tfoot>
<th>
<thead>
<time>
<title>...</title>
<tr>
<track>
<u>...</u>
<ul>
<var>
<video>
<wbr>
<xmp>
<!-- Deprecated Elements -->
<acronym>
<big>
<center>
<dir>
<font>
<frame>
<frameset>
<marquee>
<menuitem>
<nobr>
<noframes>
<param>
<rb>
<rtc>
<strike>...</strike>
<tt>
<!-- Note: these deprecated elements have never been matched -->
<image>
<noembed>
<plaintext>
<!-- Experimental -->
<portal>

View File

@@ -0,0 +1,26 @@
" Vim Keymap file for syntax testing
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Changed: 2023 Nov 21
scriptencoding utf-8
let b:keymap_name = "syntax-test"
loadkeymap
" Line comment
" Another line comment
a A Basic mapping
'a á More than one char in first column
" Special notation
<char-62> B Special notation allowed in LHS - decimal
c <char-0103> Special notation allowed in RHS - octal
<char-0x0064> <char-0x0044> Special notation allowed in LHS and RHS - hexadecimal
" Vim-script comment characters
# <char-0x00a3> Line should not match as a Vim9-script comment
\" “ Line should not match as a legacy-script comment

View File

@@ -2,7 +2,8 @@
" Language: Vim 9.0 script
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: May 09, 2023
" 2023 Sep 14 by Vim Project (all :loadkeymap variants)
" 2023 Nov 12 by Vim Project (:let-heredoc improvements)
" 2023 Nov 20 by Vim Project (:loadkeymap improvements)
" Version: 9.0-25
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
" Automatically generated keyword lists: {{{1
@@ -30,10 +31,6 @@ syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified]
syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
" :loadkeymap command (Vim Project Addition) {{{3
" TODO: this needs to be folded into the autogenerated keyword list above
syn keyword vimCommand contained loadk[eymap]
" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained acd ambw arshape aw backupskip beval bk bri bufhidden cdh ci cinsd cms commentstring conceallevel cpt cscopetagorder csto cursorlineopt dg dir ed enc equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr gli guifont guitabtooltip hidden hlg imactivatefunc imi inc inex isident keymap langmap linebreak lm lsp makeencoding maxmem mh mmp more mousemoveevent mzq numberwidth opfunc patchexpr pfn pp printfont pumwidth pythonthreehome re restorescreen ro rulerformat scl scs sft shellslash shortmess showtabline slm smoothscroll spell spl srr statusline sw sxq tag tal tenc termwintype tgst titleold tpm ttm tw udir ur verbose viminfofile warn wfh wildchar wim winminheight wmh write
syn keyword vimOption contained ai anti asd awa balloondelay bevalterm bkc briopt buflisted cdhome cin cinw co compatible confirm crb cscopeverbose csverb cwh dict directory edcompatible encoding errorbells exrc fdm ff filetype fmr foldlevelstart formatlistpat gd go guifontset helpfile highlight hls imactivatekey iminsert include inf isk keymodel langmenu lines lmap luadll makeprg maxmempattern mis mmt mouse mouses mzquantum nuw osfiletype patchmode ph preserveindent printheader pvh pyx readonly revins rop runtimepath scr sect sh shelltemp shortname shq sloc sms spellcapcheck splitbelow ss stl swapfile syn tagbsearch tb term terse thesaurus titlestring tr tty twk ul ut verbosefile virtualedit wb wfw wildcharm winaltkeys winminwidth wmnu writeany
@@ -269,6 +266,19 @@ syn keyword vimPattern contained start skip end
" vimTypes : new for vim9
syn match vimType ":\s*\zs\<\(bool\|number\|float\|string\|blob\|list<\|dict<\|job\|channel\|func\)\>"
" Keymaps: (Vim Project Addition) {{{2
" =======
" TODO: autogenerated vimCommand keyword list does not handle all abbreviations
" : handle Vim9 script comments when something like #13104 is merged
syn match vimKeymapStart "^" contained skipwhite nextgroup=vimKeymapLhs,vimKeymapLineComment
syn match vimKeymapLhs "\S\+" contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation
syn match vimKeymapRhs "\S\+" contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation
syn match vimKeymapTailComment "\S.*" contained
syn match vimKeymapLineComment +".*+ contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle
syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart
" Special Filenames, Modifiers, Extension Removal: {{{2
" ===============================================
syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst
@@ -407,7 +417,7 @@ syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
" Let And Var: {{{2
" ===========
syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\s\+\)\=\%(eval\s\+\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$'
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s*\%(trim\s\+\%(eval\s\+\)\=\|eval\s\+\%(trim\s\+\)\=\)\=\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$'
syn keyword vimLet var skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc
" Abbreviations: {{{2
@@ -467,6 +477,7 @@ syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\
syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
syn match vimNotation '\%#=1\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>" contains=vimBracket
syn match vimBracket contained "[\\<>]"
syn case match
@@ -940,6 +951,8 @@ if !exists("skip_vim_syntax_inits")
hi def link vimInsert vimString
hi def link vimIskSep Delimiter
hi def link vimKeyCode vimSpecFile
hi def link vimKeymapLineComment vimComment
hi def link vimKeymapTailComment vimComment
hi def link vimKeyword Statement
hi def link vimLet vimCommand
hi def link vimLetHereDoc vimString

View File

@@ -1,97 +0,0 @@
" Vim syntax file
" Language: WebAssembly
" Maintainer: rhysd <lin90162@yahoo.co.jp>
" Last Change: Aug 7, 2023
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn cluster wastNotTop contains=wastModule,wastInstWithType,wastInstGetSet,wastInstGeneral,wastParamInst,wastControlInst,wastSimdInst,wastString,wastNamedVar,wastUnnamedVar,wastFloat,wastNumber,wastComment,wastList,wastType
" Instructions
" https://webassembly.github.io/spec/core/text/instructions.html
" Note: memarg (align=,offset=) can be added to memory instructions
syn match wastInstWithType "\%((\s*\)\@<=\<\%(i32\|i64\|f32\|f64\|memory\)\.[[:alnum:]_]\+\%(/\%(i32\|i64\|f32\|f64\)\)\=\>\%(\s\+\%(align\|offset\)=\)\=" contained display
syn match wastInstGeneral "\%((\s*\)\@<=\<[[:alnum:]_]\+\>" contained display
syn match wastInstGetSet "\%((\s*\)\@<=\<\%(local\|global\)\.\%(get\|set\)\>" contained display
" https://webassembly.github.io/spec/core/text/instructions.html#control-instructions
syn match wastControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|then\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display
" https://webassembly.github.io/spec/core/text/instructions.html#parametric-instructions
syn match wastParamInst "\%((\s*\)\@<=\<\%(drop\|select\)\>" contained display
" SIMD instructions
" https://webassembly.github.io/simd/core/text/instructions.html#simd-instructions
syn match wastSimdInst "\<\%(v128\|i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2)\)\.[[:alnum:]_]\+\%(\s\+\%(i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2\)\)\=\>" contained display
" Identifiers
" https://webassembly.github.io/spec/core/text/values.html#text-id
syn match wastNamedVar "$\+[[:alnum:]!#$%&'./:=><?@\\^_`~+-]*" contained contains=wastEscapeUtf8
syn match wastUnnamedVar "$\+\d\+[[:alnum:]!#$%&'./:=><?@\\^_`~+-]\@!" contained display
" Presuming the source text is itself encoded correctly, strings that do not
" contain any uses of hexadecimal byte escapes are always valid names.
" https://webassembly.github.io/spec/core/text/values.html#names
syn match wastEscapedUtf8 "\\\x\{1,6}" contained containedin=wastNamedVar display
" String literals
" https://webassembly.github.io/spec/core/text/values.html#strings
syn region wastString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=wastStringSpecial
syn match wastStringSpecial "\\\x\x\|\\[tnr'\\\"]\|\\u\x\+" contained containedin=wastString display
" Float literals
" https://webassembly.github.io/spec/core/text/values.html#floating-point
syn match wastFloat "\<-\=\d\%(_\=\d\)*\%(\.\d\%(_\=\d\)*\)\=\%([eE][-+]\=\d\%(_\=\d\)*\)\=" display contained
syn match wastFloat "\<-\=0x\x\%(_\=\x\)*\%(\.\x\%(_\=\x\)*\)\=\%([pP][-+]\=\d\%(_\=\d\)*\)\=" display contained
syn keyword wastFloat inf nan contained
syn match wastFloat "nan:0x\x\%(_\=\x\)*" display contained
" Integer literals
" https://webassembly.github.io/spec/core/text/values.html#integers
syn match wastNumber "\<-\=\d\%(_\=\d\)*\>" display contained
syn match wastNumber "\<-\=0x\x\%(_\=\x\)*\>" display contained
" Comments
" https://webassembly.github.io/spec/core/text/lexical.html#comments
syn region wastComment start=";;" end="$"
syn region wastComment start="(;;\@!" end=";)"
syn region wastList matchgroup=wastListDelimiter start="(;\@!" matchgroup=wastListDelimiter end=";\@<!)" contains=@wastNotTop
" Types
" https://webassembly.github.io/spec/core/text/types.html
" Note: `mut` was changed to `const`/`var` at Wasm 2.0
syn keyword wastType i64 i32 f64 f32 param result funcref func externref extern mut v128 const var contained
syn match wastType "\%((\_s*\)\@<=func\%(\_s*[()]\)\@=" display contained
" Modules
" https://webassembly.github.io/spec/core/text/modules.html
syn keyword wastModule module type export import table memory global data elem contained
syn match wastModule "\%((\_s*\)\@<=func\%(\_s\+\$\)\@=" display contained
syn sync maxlines=100
hi def link wastModule PreProc
hi def link wastListDelimiter Delimiter
hi def link wastInstWithType Operator
hi def link wastInstGetSet Operator
hi def link wastInstGeneral Operator
hi def link wastControlInst Statement
hi def link wastSimdInst Operator
hi def link wastParamInst Conditional
hi def link wastString String
hi def link wastStringSpecial Special
hi def link wastNamedVar Identifier
hi def link wastUnnamedVar PreProc
hi def link wastFloat Float
hi def link wastNumber Number
hi def link wastComment Comment
hi def link wastType Type
hi def link wastEscapedUtf8 Special
let b:current_syntax = "wast"
let &cpo = s:cpo_save
unlet s:cpo_save

97
runtime/syntax/wat.vim Normal file
View File

@@ -0,0 +1,97 @@
" Vim syntax file
" Language: WebAssembly
" Maintainer: rhysd <lin90162@yahoo.co.jp>
" Last Change: Nov 14, 2023
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn cluster watNotTop contains=watModule,watInstWithType,watInstGetSet,watInstGeneral,watParamInst,watControlInst,watSimdInst,watString,watNamedVar,watUnnamedVar,watFloat,watNumber,watComment,watList,watType
" Instructions
" https://webassembly.github.io/spec/core/text/instructions.html
" Note: memarg (align=,offset=) can be added to memory instructions
syn match watInstWithType "\%((\s*\)\@<=\<\%(i32\|i64\|f32\|f64\|memory\)\.[[:alnum:]_]\+\%(/\%(i32\|i64\|f32\|f64\)\)\=\>\%(\s\+\%(align\|offset\)=\)\=" contained display
syn match watInstGeneral "\%((\s*\)\@<=\<[[:alnum:]_]\+\>" contained display
syn match watInstGetSet "\%((\s*\)\@<=\<\%(local\|global\)\.\%(get\|set\)\>" contained display
" https://webassembly.github.io/spec/core/text/instructions.html#control-instructions
syn match watControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|then\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display
" https://webassembly.github.io/spec/core/text/instructions.html#parametric-instructions
syn match watParamInst "\%((\s*\)\@<=\<\%(drop\|select\)\>" contained display
" SIMD instructions
" https://webassembly.github.io/simd/core/text/instructions.html#simd-instructions
syn match watSimdInst "\<\%(v128\|i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2)\)\.[[:alnum:]_]\+\%(\s\+\%(i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2\)\)\=\>" contained display
" Identifiers
" https://webassembly.github.io/spec/core/text/values.html#text-id
syn match watNamedVar "$\+[[:alnum:]!#$%&'./:=><?@\\^_`~+-]*" contained contains=watEscapeUtf8
syn match watUnnamedVar "$\+\d\+[[:alnum:]!#$%&'./:=><?@\\^_`~+-]\@!" contained display
" Presuming the source text is itself encoded correctly, strings that do not
" contain any uses of hexadecimal byte escapes are always valid names.
" https://webassembly.github.io/spec/core/text/values.html#names
syn match watEscapedUtf8 "\\\x\{1,6}" contained containedin=watNamedVar display
" String literals
" https://webassembly.github.io/spec/core/text/values.html#strings
syn region watString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=watStringSpecial
syn match watStringSpecial "\\\x\x\|\\[tnr'\\\"]\|\\u\x\+" contained containedin=watString display
" Float literals
" https://webassembly.github.io/spec/core/text/values.html#floating-point
syn match watFloat "\<-\=\d\%(_\=\d\)*\%(\.\d\%(_\=\d\)*\)\=\%([eE][-+]\=\d\%(_\=\d\)*\)\=" display contained
syn match watFloat "\<-\=0x\x\%(_\=\x\)*\%(\.\x\%(_\=\x\)*\)\=\%([pP][-+]\=\d\%(_\=\d\)*\)\=" display contained
syn keyword watFloat inf nan contained
syn match watFloat "nan:0x\x\%(_\=\x\)*" display contained
" Integer literals
" https://webassembly.github.io/spec/core/text/values.html#integers
syn match watNumber "\<-\=\d\%(_\=\d\)*\>" display contained
syn match watNumber "\<-\=0x\x\%(_\=\x\)*\>" display contained
" Comments
" https://webassembly.github.io/spec/core/text/lexical.html#comments
syn region watComment start=";;" end="$"
syn region watComment start="(;;\@!" end=";)"
syn region watList matchgroup=watListDelimiter start="(;\@!" matchgroup=watListDelimiter end=";\@<!)" contains=@watNotTop
" Types
" https://webassembly.github.io/spec/core/text/types.html
" Note: `mut` was changed to `const`/`var` at Wasm 2.0
syn keyword watType i64 i32 f64 f32 param result funcref func externref extern mut v128 const var contained
syn match watType "\%((\_s*\)\@<=func\%(\_s*[()]\)\@=" display contained
" Modules
" https://webassembly.github.io/spec/core/text/modules.html
syn keyword watModule module type export import table memory global data elem contained
syn match watModule "\%((\_s*\)\@<=func\%(\_s\+\$\)\@=" display contained
syn sync maxlines=100
hi def link watModule PreProc
hi def link watListDelimiter Delimiter
hi def link watInstWithType Operator
hi def link watInstGetSet Operator
hi def link watInstGeneral Operator
hi def link watControlInst Statement
hi def link watSimdInst Operator
hi def link watParamInst Conditional
hi def link watString String
hi def link watStringSpecial Special
hi def link watNamedVar Identifier
hi def link watUnnamedVar PreProc
hi def link watFloat Float
hi def link watNumber Number
hi def link watComment Comment
hi def link watType Type
hi def link watEscapedUtf8 Special
let b:current_syntax = "wat"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Wget configuration file (/etc/wgetrc ~/.wgetrc)
" Language: Wget configuration file (/etc/wgetrc ~/.wgetrc)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Apr 28
" Last Change: 2023 Nov 05
" GNU Wget 1.21 built on linux-gnu.
@@ -12,7 +12,7 @@ endif
let s:cpo_save = &cpo
set cpo&vim
syn match wgetComment "#.*$" contains=wgetTodo contained
syn match wgetComment "#.*" contains=wgetTodo contained
syn keyword wgetTodo TODO NOTE FIXME XXX contained
@@ -21,208 +21,206 @@ syn region wgetString start=+'+ skip=+\\\\\|\\'+ end=+'+ contained oneline
syn case ignore
syn keyword wgetBoolean on off yes no contained
syn keyword wgetNumber inf contained
syn match wgetNumber "\<\d\+>" contained
syn match wgetQuota "\<\d\+[kmgt]\>" contained
syn match wgetTime "\<\d\+[smhdw]\>" contained
syn keyword wgetBoolean on off yes no contained
syn keyword wgetNumber inf contained
syn match wgetNumber "\<\d\+>" contained
syn match wgetQuota "\<\d\+[kmgt]\>" contained
syn match wgetTime "\<\d\+[smhdw]\>" contained
"{{{ Commands
let s:commands =<< trim EOL
accept
accept_regex
add_host_dir
adjust_extension
always_rest
ask_password
auth_no_challenge
accept-regex
add-host-dir
adjust-extension
always-rest
ask-password
auth-no-challenge
background
backup_converted
backup-converted
backups
base
bind_address
bind_dns_address
body_data
body_file
ca_certificate
ca_directory
bind-address
bind-dns-address
body-data
body-file
ca-certificate
ca-directory
cache
certificate
certificate_type
check_certificate
choose_config
certificate-type
check-certificate
choose-config
ciphers
compression
connect_timeout
content_disposition
content_on_error
connect-timeout
content-disposition
content-on-error
continue
convert_file_only
convert_links
convert-file-only
convert-links
cookies
crl_file
cut_dirs
crl-file
cut-dirs
debug
default_page
delete_after
dns_cache
dns_servers
dns_timeout
dir_prefix
dir_struct
default-page
delete-after
dns-cache
dns-servers
dns-timeout
dir-prefix
dir-struct
domains
dot_bytes
dots_in_line
dot_spacing
dot_style
egd_file
exclude_directories
exclude_domains
follow_ftp
follow_tags
force_html
ftp_passwd
ftp_password
ftp_user
ftp_proxy
ftps_clear_data_connection
ftps_fallback_to_ftp
ftps_implicit
ftps_resume_ssl
dot-bytes
dots-in-line
dot-spacing
dot-style
egd-file
exclude-directories
exclude-domains
follow-ftp
follow-tags
force-html
ftp-passwd
ftp-password
ftp-user
ftp-proxy
ftps-clear-data-connection
ftps-fallback-to-ftp
ftps-implicit
ftps-resume-ssl
hsts
hsts_file
ftp_stmlf
hsts-file
ftp-stmlf
glob
header
html_extension
html-extension
htmlify
http_keep_alive
http_passwd
http_password
http_proxy
https_proxy
https_only
http_user
if_modified_since
ignore_case
ignore_length
ignore_tags
include_directories
inet4_only
inet6_only
http-keep-alive
http-passwd
http-password
http-proxy
https-proxy
https-only
http-user
if-modified-since
ignore-case
ignore-length
ignore-tags
include-directories
inet4-only
inet6-only
input
input_meta_link
input-meta-link
iri
keep_bad_hash
keep_session_cookies
kill_longer
limit_rate
load_cookies
keep-bad-hash
keep-session-cookies
kill-longer
limit-rate
load-cookies
locale
local_encoding
local-encoding
logfile
login
max_redirect
metalink_index
metalink_over_http
max-redirect
metalink-index
metalink-over-http
method
mirror
netrc
no_clobber
no_config
no_parent
no_proxy
no-clobber
no-config
no-parent
no-proxy
numtries
output_document
page_requisites
passive_ftp
output-document
page-requisites
passive-ftp
passwd
password
pinned_pubkey
post_data
post_file
prefer_family
preferred_location
preserve_permissions
private_key
private_key_type
pinned-pubkey
post-data
post-file
prefer-family
preferred-location
preserve-permissions
private-key
private-key-type
progress
protocol_directories
proxy_passwd
proxy_password
proxy_user
protocol-directories
proxy-passwd
proxy-password
proxy-user
quiet
quota
random_file
random_wait
read_timeout
rec_level
random-file
random-wait
read-timeout
rec-level
recursive
referer
regex_type
regex-type
reject
rejected_log
reject_regex
relative_only
remote_encoding
remove_listing
report_speed
restrict_file_names
retr_symlinks
retry_connrefused
retry_on_host_error
retry_on_http_error
rejected-log
reject-regex
relative-only
remote-encoding
remove-listing
report-speed
restrict-file-names
retr-symlinks
retry-connrefused
retry-on-host-error
retry-on-http-error
robots
save_cookies
save_headers
secure_protocol
server_response
show_all_dns_entries
show_progress
simple_host_check
span_hosts
save-cookies
save-headers
secure-protocol
server-response
show-all-dns-entries
show-progress
simple-host-check
span-hosts
spider
start_pos
strict_comments
start-pos
strict-comments
sslcertfile
sslcertkey
timeout
timestamping
use_server_timestamps
use-server-timestamps
tries
trust_server_names
trust-server-names
unlink
use_askpass
use-askpass
user
use_proxy
user_agent
use-proxy
user-agent
verbose
wait
wait_retry
warc_cdx
warc_cdx_dedup
warc_compression
warc_digests
warc_file
warc_header
warc_keep_log
warc_max_size
warc_temp_dir
wait-retry
warc-cdx
warc-cdx-dedup
warc-compression
warc-digests
warc-file
warc-header
warc-keep-log
warc-max-size
warc-temp-dir
wdebug
xattr
EOL
"}}}
call map(s:commands, "substitute(v:val, '_', '[-_]\\\\=', 'g')")
for cmd in s:commands
exe 'syn match wgetCommand "\<' . cmd . '\>" nextgroup=wgetAssignmentOperator skipwhite contained'
exe 'syn match wgetCommand "\<' .. substitute(cmd, '-', '[-_]\\=', "g") .. '\>" nextgroup=wgetAssignmentOperator skipwhite contained'
endfor
unlet s:commands
syn case match
syn match wgetStart "^" nextgroup=wgetCommand,wgetComment skipwhite
syn match wgetLineStart "^" nextgroup=wgetCommand,wgetComment skipwhite
syn match wgetAssignmentOperator "=" nextgroup=wgetString,wgetBoolean,wgetNumber,wgetQuota,wgetTime skipwhite contained
hi def link wgetAssignmentOperator Special

View File

@@ -1,9 +1,9 @@
" Vim syntax file
" Language: Wget2 configuration file (/etc/wget2rc ~/.wget2rc)
" Language: Wget2 configuration file (/etc/wget2rc ~/.wget2rc)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Apr 28
" Last Change: 2023 Nov 05
" GNU Wget2 2.0.0 - multithreaded metalink/file/website downloader
" GNU Wget2 2.1.0 - multithreaded metalink/file/website downloader
if exists("b:current_syntax")
finish
@@ -12,21 +12,20 @@ endif
let s:cpo_save = &cpo
set cpo&vim
syn match wgetComment "#.*$" contains=wgetTodo contained
syn match wget2Comment "#.*" contains=wget2Todo contained
syn keyword wgetTodo TODO NOTE FIXME XXX contained
syn keyword wget2Todo TODO NOTE FIXME XXX contained
syn region wgetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained oneline
syn region wgetString start=+'+ skip=+\\\\\|\\'+ end=+'+ contained oneline
syn region wget2String start=+"+ skip=+\\\\\|\\"+ end=+"+ contained oneline
syn region wget2String start=+'+ skip=+\\\\\|\\'+ end=+'+ contained oneline
syn case ignore
syn keyword wgetBoolean on off yes no y n contained
syn keyword wgetNumber infinity inf contained
syn match wgetNumber "\<\d\+>" contained
syn match wgetQuota "\<\d\+[kmgt]\>" contained
syn match wgetTime "\<\d\+[smhd]\>" contained
syn keyword wget2Boolean on off yes no y n contained
syn keyword wget2Number infinity inf contained
syn match wget2Number "\<\d\+>" contained
syn match wget2Quota "\<\d\+[kmgt]\>" contained
syn match wget2Time "\<\d\+[smhd]\>" contained
"{{{ Commands
let s:commands =<< trim EOL
@@ -67,6 +66,7 @@ let s:commands =<< trim EOL
cut-dirs
cut-file-get-vars
cut-url-get-vars
dane
debug
default-http-port
default-https-port
@@ -85,6 +85,7 @@ let s:commands =<< trim EOL
execute
filter-mime-type
filter-urls
follow-sitemaps
follow-tags
force-atom
force-css
@@ -221,28 +222,27 @@ let s:commands =<< trim EOL
EOL
"}}}
call map(s:commands, "substitute(v:val, '_', '[-_]\\\\=', 'g')")
for cmd in s:commands
exe 'syn match wgetCommand "\<' . cmd . '\>" nextgroup=wgetAssignmentOperator skipwhite contained'
exe 'syn match wget2Command "\<' .. substitute(cmd, '-', '[-_]\\=', "g") .. '\>" nextgroup=wget2AssignmentOperator skipwhite contained'
endfor
unlet s:commands
syn case match
syn match wgetStart "^" nextgroup=wgetCommand,wgetComment skipwhite
syn match wgetAssignmentOperator "=" nextgroup=wgetString,wgetBoolean,wgetNumber,wgetQuota,wgetTime skipwhite contained
syn match wget2LineStart "^" nextgroup=wget2Command,wget2Comment skipwhite
syn match wget2AssignmentOperator "=" nextgroup=wget2String,wget2Boolean,wget2Number,wget2Quota,wget2Time skipwhite contained
hi def link wgetAssignmentOperator Special
hi def link wgetBoolean Boolean
hi def link wgetCommand Identifier
hi def link wgetComment Comment
hi def link wgetNumber Number
hi def link wgetQuota Number
hi def link wgetString String
hi def link wgetTime Number
hi def link wgetTodo Todo
hi def link wget2AssignmentOperator Special
hi def link wget2Boolean Boolean
hi def link wget2Command Identifier
hi def link wget2Comment Comment
hi def link wget2Number Number
hi def link wget2Quota Number
hi def link wget2String String
hi def link wget2Time Number
hi def link wget2Todo Todo
let b:current_syntax = "wget"
let b:current_syntax = "wget2"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -0,0 +1,37 @@
" Vim syntax file
" Language: XCompose
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Filenames: .XCompose, Compose
" Last Change: 2023 Nov 09
" Comments
syn keyword xcomposeTodo contained TODO FIXME XXX
syn match xcomposeComment /#.*/ contains=xcomposeTodo
" Includes
syn keyword xcomposeInclude include nextgroup=xcomposeFile skipwhite
syn match xcomposeFile /"\([^"]\|\\"\)\+"/ contained
syn match xcomposeSubstitution /%[HLS]/ contained containedin=xcomposeFile
" Modifiers
syn keyword xcomposeModifier Ctrl Lock Caps Shift Alt Meta None
syn match xcomposeModifierPrefix /\s*\zs[!~]\ze\s*/
" Keysyms
syn match xcomposeKeysym /<[A-Za-z0-9_]\+>/
syn match xcomposeKeysym /[A-Za-z0-9_]\+/ contained
syn match xcomposeString /"\([^"]\|\\"\)\+"/ contained nextgroup=xcomposeKeysym skipwhite
syn match xcomposeColon /:/ nextgroup=xcomposeKeysym,xcomposeString skipwhite
hi def link xcomposeColon Delimiter
hi def link xcomposeComment Comment
hi def link xcomposeFile String
hi def link xcomposeInclude Include
hi def link xcomposeKeysym Constant
hi def link xcomposeModifier Function
hi def link xcomposeModifierPrefix Operator
hi def link xcomposeString String
hi def link xcomposeSubstitution Special
hi def link xcomposeTodo Todo
let b:current_syntax = 'xcompose'

View File

@@ -0,0 +1,33 @@
#
# Makefile with common components
#
CONVERTED = \
tutor.utf-8 \
tutor.bar \
tutor.ca.utf-8 \
tutor.de.utf-8 \
tutor.el \
tutor.el.cp737 \
tutor.eo \
tutor.es \
tutor.fr.utf-8 \
tutor.hr \
tutor.hr.cp1250 \
tutor.hu \
tutor.hu.cp1250 \
tutor.it.utf-8 \
tutor.ja.sjis \
tutor.ja.euc \
tutor.ko.euc \
tutor.nl \
tutor.no.utf-8 \
tutor.nb \
tutor.nb.utf-8 \
tutor.ru \
tutor.ru.cp1251 \
tutor.sv.utf-8 \
tutor.tr.iso9 \
tutor.zh.utf-8
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:

295
runtime/tutor/Make_mvc.mak Normal file
View File

@@ -0,0 +1,295 @@
#
# Makefile for converting the Vim tutorial on Windows.
#
# 21.11.23, Restorer, restorer@mail2k.ru
!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
!ERROR The program "PowerShell" version 3.0 or higher is required to work
!ENDIF
# Common components
!INCLUDE Make_all.mak
# Correct the following line for the directory where iconv is installed.
# Please do not put the path in quotes.
ICONV_PATH = D:\Programs\GetText\bin
# In case some package like GnuWin32, UnixUtils, gettext
# or something similar is installed on the system.
# If the "iconv" program is installed on the system, but it is not registered
# in the %PATH% environment variable, then specify the full path to this file.
!IF EXIST ("iconv.exe")
ICONV = "iconv.exe"
!ELSEIF EXIST ("$(ICONV_PATH)\iconv.exe")
ICONV = "$(ICONV_PATH)\iconv.exe"
!ENDIF
RM = del /q
CP = copy /y
all : $(CONVERTED)
tutor.utf-8 : tutor
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
tutor.bar : tutor.bar.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-1 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28591))
!ENDIF
tutor.ca.utf-8 : tutor.ca
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
tutor.de.utf-8 : tutor.de
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
tutor.el : tutor.el.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-7 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28597))
!ENDIF
tutor.el.cp737 : tutor.el.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP737 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(737))
!ENDIF
tutor.eo : tutor.eo.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-3 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28593))
!ENDIF
tutor.es : tutor.es.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-1 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28591))
!ENDIF
tutor.fr.utf-8 : tutor.fr
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
tutor.hr : tutor.hr.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
tutor.hr.cp1250 : tutor.hr.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1250 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1250))
!ENDIF
tutor.hu : tutor.hu.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28592))
!ENDIF
tutor.hu.cp1250 : tutor.hu.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1250 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1250))
!ENDIF
tutor.it.utf-8 : tutor.it
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
tutor.ja.sjis : tutor.ja.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP932 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(932))
!ENDIF
tutor.ja.euc : tutor.ja.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t EUC-JP $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(51932))
!ENDIF
tutor.ko.euc : tutor.ko.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t EUC-KR $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(51949))
!ENDIF
tutor.nl : tutor.nl.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-1 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28591))
!ENDIF
tutor.no.utf-8 : tutor.no
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
# nb is an alias for no
tutor.nb : tutor.no
$(CP) tutor.no tutor.nb
tutor.nb.utf-8 : tutor.no.utf-8
$(CP) tutor.no.utf-8 tutor.nb.utf-8
tutor.ru : tutor.ru.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t KOI8-R $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(20866))
!ENDIF
tutor.ru.cp1251 : tutor.ru.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t CP1251 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(1251))
!ENDIF
tutor.sv.utf-8 : tutor.sv
!IF DEFINED (ICONV)
$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
!ENDIF
tutor.tr.iso9 : tutor.tr.utf-8
!IF DEFINED (ICONV)
$(ICONV) -f UTF-8 -t ISO-8859-9 $? >$@
!ELSE
powershell -nologo -noprofile -Command \
[System.IO.File]::WriteAllText(\"$@\", \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(65001)), \
[System.Text.Encoding]::GetEncoding(28599))
!ENDIF
tutor.zh.utf-8 : tutor.zh.big5
powershell -nologo -noprofile -Command \
[System.IO.File]::ReadAllText(\"$?\", \
[System.Text.Encoding]::GetEncoding(950)) ^| \
1>nul New-Item -Force -ItemType file -Path . -Name $@
clean : $(CONVERTED)
!$(RM) $**
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:

View File

@@ -5,27 +5,10 @@
#
# Similarly for Russian and Korean
all: tutor.utf-8 \
tutor.bar \
tutor.ca.utf-8 \
tutor.de.utf-8 \
tutor.el tutor.el.cp737 \
tutor.eo \
tutor.es \
tutor.fr.utf-8 \
tutor.hr tutor.hr.cp1250 \
tutor.hu tutor.hu.cp1250 \
tutor.it.utf-8 \
tutor.ja.sjis tutor.ja.euc \
tutor.ko.euc \
tutor.nl \
tutor.no.utf-8 \
tutor.nb \
tutor.nb.utf-8 \
tutor.ru tutor.ru.cp1251 \
tutor.sv.utf-8 \
tutor.tr.iso9 \
tutor.zh.utf-8
# Common components
include Make_all.mak
all: $(CONVERTED)
tutor.utf-8: tutor
iconv -f ISO-8859-1 -t UTF-8 tutor > tutor.utf-8
@@ -46,7 +29,7 @@ tutor.el: tutor.el.utf-8
iconv -f UTF-8 -t ISO-8859-7 tutor.el.utf-8 > tutor.el
tutor.el.cp737: tutor.el.utf-8
iconv -f UTF-8 -t cp737 tutor.el.utf-8 > tutor.el.cp737
iconv -f UTF-8 -t CP737 tutor.el.utf-8 > tutor.el.cp737
tutor.es: tutor.es.utf-8
iconv -f UTF-8 -t ISO-8859-1 tutor.es.utf-8 > tutor.es
@@ -58,16 +41,19 @@ tutor.hu: tutor.hu.utf-8
iconv -f UTF-8 -t ISO-8859-2 tutor.hu.utf-8 > tutor.hu
tutor.hu.cp1250: tutor.hu.utf-8
iconv -f UTF-8 -t cp1250 tutor.hu.utf-8 > tutor.hu.cp1250
iconv -f UTF-8 -t CP1250 tutor.hu.utf-8 > tutor.hu.cp1250
tutor.it.utf-8: tutor.it
iconv -f ISO-8859-1 -t UTF-8 tutor.it > tutor.it.utf-8
tutor.hr: tutor.hr.utf-8
iconv -f UTF-8 -t ISO-8859-2 tutor.hr.utf-8 > tutor.hr
tutor.hr.cp1250: tutor.hr.utf-8
iconv -f UTF-8 -t cp1250 tutor.hr.utf-8 > tutor.hr.cp1250
iconv -f UTF-8 -t CP1250 tutor.hr.utf-8 > tutor.hr.cp1250
tutor.ja.sjis: tutor.ja.utf-8
iconv -f UTF-8 -t cp932 tutor.ja.utf-8 > tutor.ja.sjis
iconv -f UTF-8 -t CP932 tutor.ja.utf-8 > tutor.ja.sjis
tutor.ja.euc: tutor.ja.utf-8
iconv -f UTF-8 -t EUC-JP tutor.ja.utf-8 > tutor.ja.euc
@@ -92,7 +78,7 @@ tutor.ru: tutor.ru.utf-8
iconv -f UTF-8 -t KOI8-R tutor.ru.utf-8 > tutor.ru
tutor.ru.cp1251: tutor.ru.utf-8
iconv -f UTF-8 -t cp1251 tutor.ru.utf-8 > tutor.ru.cp1251
iconv -f UTF-8 -t CP1251 tutor.ru.utf-8 > tutor.ru.cp1251
tutor.tr.iso9: tutor.tr.utf-8
iconv -f UTF-8 -t ISO-8859-9 tutor.tr.utf-8 > tutor.tr.iso9

View File

@@ -0,0 +1,39 @@
«Учебник» — это практическое пособие для начинающих пользователей редактора Vim.
На освоение представленного материала большинству начинающих пользователей
потребуется менее часа. По окончанию курса вы сможете выполнять несложные
операции над текстом с помощью редактора Vim.
Файл, содержащий обучающие уроки, называется «tutor». Чтобы начать с ним
работать, просто наберите команду "vim tutor" и следуйте инструкциям,
преведённым в уроках. Задания в учебнике предполагают редактирование файла,
поэтому НЕ ДЕЛАЙТЕ ЭТОГО В ОРИГИНАЛЬНОЙ КОПИИ ФАЙЛА.
Для полноценной работы с учебником вы можете использовать программу "vimtutor".
При запуске этой программы будет создана временная копия файла для работы с ним.
Я планировал добавление в учебник более развёрнутых уроков, но на это уже не
хватило времени. Если занятия вам понравились, то, пожалуйста, напишите мне об
этом и присылайте любые улучшения, которые вы сделаете.
Боб Уэр (Bob Ware), Colorado School of Mines, США, Колорадо, Голден, 80401,
(303) 273-3987
bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet
Переводы
-----------
Файлы tutor.xx и tutor.xx.utf-8 являются переводами учебника (где xx — код
языка). Кодировка файлов tutor.xx может быть latin1 или другой традиционной
кодировкой. Если не требуется перевод в такой традиционной кодировке, вам нужно
просто подготовить файл tutor.xx.utf-8.
Если необходима другая кодировка текста, вы также можете сделать такой файл,
его наименование должно быть tutor.xx.enc (замените «enc» на фактическое
название кодировки). Возможно, что для этого потребуется настроить файл
«tutor.vim».
Для создания файла tutor.xx из tutor.xx.utf-8 можно использовать команду "make".
Посмотрите файл «Makefile», чтобы получить подробной информации. (Для некоторых
языков файл tutor.xx.utf-8 создаётся из tutor.xx в силу сложившихся причин).
[Брам Моленар (Bram Moolenaar) и др. изменили этот файл для редактора Vim]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1272,7 +1272,7 @@ $(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
$(VIM): $(VIM).exe
$(OUTDIR):
if not exist $(OUTDIR)/nul mkdir $(OUTDIR)
if not exist $(OUTDIR)/nul mkdir $(OUTDIR:/=\)
CFLAGS_INST = /nologo /O2 -DNDEBUG -DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) $(CFLAGS_DEPR)

View File

@@ -1730,10 +1730,17 @@ parse_cino(buf_T *buf)
char_u *p;
char_u *l;
char_u *digits;
int n;
vimlong_T n;
int divider;
int fraction = 0;
int sw = (int)get_sw_value(buf);
int sw;
long t = get_sw_value(buf);
// needed for cino-(, it will be multiplied by 2 again
if (t > INT_MAX / 2)
sw = INT_MAX / 2;
else
sw = (int)t;
// Set the default values.
@@ -1895,54 +1902,56 @@ parse_cino(buf_T *buf)
{
n *= sw;
if (divider)
n += (sw * fraction + divider / 2) / divider;
n += ((vimlong_T)sw * fraction + divider / 2) / divider;
}
++p;
}
if (l[1] == '-')
n = -n;
n = trim_to_int(n);
// When adding an entry here, also update the default 'cinoptions' in
// doc/indent.txt, and add explanation for it!
switch (*l)
{
case '>': buf->b_ind_level = n; break;
case 'e': buf->b_ind_open_imag = n; break;
case 'n': buf->b_ind_no_brace = n; break;
case 'f': buf->b_ind_first_open = n; break;
case '{': buf->b_ind_open_extra = n; break;
case '}': buf->b_ind_close_extra = n; break;
case '^': buf->b_ind_open_left_imag = n; break;
case 'L': buf->b_ind_jump_label = n; break;
case ':': buf->b_ind_case = n; break;
case '=': buf->b_ind_case_code = n; break;
case 'b': buf->b_ind_case_break = n; break;
case 'p': buf->b_ind_param = n; break;
case 't': buf->b_ind_func_type = n; break;
case '/': buf->b_ind_comment = n; break;
case 'c': buf->b_ind_in_comment = n; break;
case 'C': buf->b_ind_in_comment2 = n; break;
case 'i': buf->b_ind_cpp_baseclass = n; break;
case '+': buf->b_ind_continuation = n; break;
case '(': buf->b_ind_unclosed = n; break;
case 'u': buf->b_ind_unclosed2 = n; break;
case 'U': buf->b_ind_unclosed_noignore = n; break;
case 'W': buf->b_ind_unclosed_wrapped = n; break;
case 'w': buf->b_ind_unclosed_whiteok = n; break;
case 'm': buf->b_ind_matching_paren = n; break;
case 'M': buf->b_ind_paren_prev = n; break;
case ')': buf->b_ind_maxparen = n; break;
case '*': buf->b_ind_maxcomment = n; break;
case 'g': buf->b_ind_scopedecl = n; break;
case 'h': buf->b_ind_scopedecl_code = n; break;
case 'j': buf->b_ind_java = n; break;
case 'J': buf->b_ind_js = n; break;
case 'l': buf->b_ind_keep_case_label = n; break;
case '#': buf->b_ind_hash_comment = n; break;
case 'N': buf->b_ind_cpp_namespace = n; break;
case 'k': buf->b_ind_if_for_while = n; break;
case 'E': buf->b_ind_cpp_extern_c = n; break;
case 'P': buf->b_ind_pragma = n; break;
case '>': buf->b_ind_level = (int)n; break;
case 'e': buf->b_ind_open_imag = (int)n; break;
case 'n': buf->b_ind_no_brace = (int)n; break;
case 'f': buf->b_ind_first_open = (int)n; break;
case '{': buf->b_ind_open_extra = (int)n; break;
case '}': buf->b_ind_close_extra = (int)n; break;
case '^': buf->b_ind_open_left_imag = (int)n; break;
case 'L': buf->b_ind_jump_label = (int)n; break;
case ':': buf->b_ind_case = (int)n; break;
case '=': buf->b_ind_case_code = (int)n; break;
case 'b': buf->b_ind_case_break = (int)n; break;
case 'p': buf->b_ind_param = (int)n; break;
case 't': buf->b_ind_func_type = (int)n; break;
case '/': buf->b_ind_comment = (int)n; break;
case 'c': buf->b_ind_in_comment = (int)n; break;
case 'C': buf->b_ind_in_comment2 = (int)n; break;
case 'i': buf->b_ind_cpp_baseclass = (int)n; break;
case '+': buf->b_ind_continuation = (int)n; break;
case '(': buf->b_ind_unclosed = (int)n; break;
case 'u': buf->b_ind_unclosed2 = (int)n; break;
case 'U': buf->b_ind_unclosed_noignore = (int)n; break;
case 'W': buf->b_ind_unclosed_wrapped = (int)n; break;
case 'w': buf->b_ind_unclosed_whiteok = (int)n; break;
case 'm': buf->b_ind_matching_paren = (int)n; break;
case 'M': buf->b_ind_paren_prev = (int)n; break;
case ')': buf->b_ind_maxparen = (int)n; break;
case '*': buf->b_ind_maxcomment = (int)n; break;
case 'g': buf->b_ind_scopedecl = (int)n; break;
case 'h': buf->b_ind_scopedecl_code = (int)n; break;
case 'j': buf->b_ind_java = (int)n; break;
case 'J': buf->b_ind_js = (int)n; break;
case 'l': buf->b_ind_keep_case_label = (int)n; break;
case '#': buf->b_ind_hash_comment = (int)n; break;
case 'N': buf->b_ind_cpp_namespace = (int)n; break;
case 'k': buf->b_ind_if_for_while = (int)n; break;
case 'E': buf->b_ind_cpp_extern_c = (int)n; break;
case 'P': buf->b_ind_pragma = (int)n; break;
}
if (*p == ',')
++p;

View File

@@ -1149,6 +1149,7 @@ win_line(
#ifdef FEAT_PROP_POPUP
int did_line = FALSE; // set to TRUE when line text done
int text_prop_count;
int last_textprop_text_idx = -1;
int text_prop_next = 0; // next text property to use
textprop_T *text_props = NULL;
int *text_prop_idxs = NULL;
@@ -1616,6 +1617,11 @@ win_line(
area_highlighting = TRUE;
extra_check = TRUE;
/* Find the last text property that inserts text. */
for (int i = 0; i < text_prop_count; ++i)
if (text_props[i].tp_id < 0)
last_textprop_text_idx = i;
// When skipping virtual text the props need to be sorted. The
// order is reversed!
if (lnum == wp->w_topline && wp->w_skipcol > 0)
@@ -3791,7 +3797,7 @@ win_line(
|| (wlv.n_extra > 0 && (wlv.c_extra != NUL
|| *wlv.p_extra != NUL))
#ifdef FEAT_PROP_POPUP
|| text_prop_next < text_prop_count
|| text_prop_next <= last_textprop_text_idx
#endif
))
{
@@ -4083,7 +4089,7 @@ win_line(
#endif
#ifdef FEAT_PROP_POPUP
|| text_prop_above || text_prop_follows
|| text_prop_next < text_prop_count
|| text_prop_next <= last_textprop_text_idx
#endif
|| (wp->w_p_list && wp->w_lcs_chars.eol != NUL
&& wlv.p_extra != at_end_str)

View File

@@ -501,9 +501,12 @@ edit(
* something.
* Don't do this when the topline changed already, it has
* already been adjusted (by insertchar() calling open_line())).
* Also don't do this when 'smoothscroll' is set, as the window should
* then be scrolled by screen lines.
*/
if (curbuf->b_mod_set
&& curwin->w_p_wrap
&& !curwin->w_p_sms
&& !did_backspace
&& curwin->w_topline == old_topline
#ifdef FEAT_DIFF

Some files were not shown because too many files have changed in this diff Show More