Compare commits

...

345 Commits

Author SHA1 Message Date
Yegappan Lakshmanan
5d77364e4a patch 9.1.0197: Vim9: problem evaluating negated boolean logic
Problem:  Vim9: problem evaluating negated boolean logic
          (lxhillwind)
Solution: Don't clear the first value on short circuit evaluation
          (Yegappan Lakshmanan)

fixes: #14265
closes: #14269

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-22 19:37:29 +01:00
Restorer
8e37daf620 CI: Fix for Sodium version 1.0.19 and MinGW (#14267)
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-22 19:34:52 +01:00
Aliaksei Budavei
3e72bf10a0 runtime(java): Recognise the {@snippet} documentation tag (#14271)
Remember that ‘code fragments are typically Java source
code, but they may also be fragments of properties files,
source code in other languages, or plain text.’  Therefore,
with these changes, markup tags are highlighted in the Java
source files (as external snippets) and in the {@snippet}
tags.

Also:

- Improve matching of the multi-line {@code} documentation
  tag with any contained balanced braces.
- Recognise the {@literal} documentation tag.
- Highlight stray blanks in comments.

Related to an enhancement proposal for PCRE-like callouts
discussed at https://github.com/vim/vim/issues/11217.

References:
https://openjdk.org/jeps/413
https://docs.oracle.com/en/java/javase/21/docs/specs/javadoc/doc-comment-spec.html

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-22 19:32:48 +01:00
Christian Brabandt
f976e2c956 CI: mingw complains about unknown escape sequence: '\l', fails with libsodium (#14259)
Problem:  CI: mingw complains about unknown escape sequence: '\l', fails with sodium v1.0.19
Solution: Use other slash instead, also revert sodium version to v1.0.18

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-21 21:55:22 +01:00
dkearns
35e6f4ca27 runtime(vim): Update base-syntax, improve function definition highlighting (#14203)
Improve function definition highlighting.

- Match bang and function modifiers - abort etc.
- Only match valid scope modifiers.
- Match listing commands.
- Don't match ex commands in function names.
- Split function syntax groups into :func and :def subgroups.
- Match Vim9-script parameter and return types.
- Limit legacy-script and Vim9-script comments to :func and :def
  definitions, respectively.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-21 20:41:10 +01:00
RobbiZ98
3a6bd0c5c7 patch 9.1.0196: filetype: support for gnuplot files is lacking
Problem:  filetype: support for gnuplot files is lacking
Solution: Also detect *.gnuplot files
          (RobbiZ98)

closes: #14243

Signed-off-by: RobbiZ98 <113035863+RobbiZ98@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-21 20:24:51 +01:00
Christian Brabandt
85a769d466 patch 9.1.0195: memleak with ex_drop, NULL dereference
Problem:  memleak with ex_drop(), NULL dereference
          (zeertzjq)
Solution: revert back to ex_rewind(), use curbuf instead of buf

fixes: #14246
closes: #14251

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-21 20:19:00 +01:00
Christian Brabandt
9eb236f455 patch 9.1.0194: gcc complains about uninitialized var
Problem:  gcc complains about uninitialized var
          (Tony Mechelynck)
Solution: initialize to NULL

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-21 20:12:59 +01:00
zeertzjq
70e566b0bd patch 9.1.0193: May leak memory in completion when ga_grow() fails
Problem:  May leak memory in completion when ga_grow() fails.
Solution: Free "wca" when ga_grow() fails (zeertzjq).

fixes: #14248
closes: #14249

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-21 07:11:58 +01:00
Alin Mr
6d1d18084b runtime(colors): don't unnecessarily reload v:colornames dict
fixes: #14234
closes: #14235

Signed-off-by: Alin Mr <almr.oss@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-20 20:27:26 +01:00
Christian Brabandt
978178823b patch 9.1.0192: drop: don't rewind when editing the same file
Problem:  :drop tries to :rewind the argumentlist, which results in E37
          (after v9.1.0046)
Solution: instead of calling ex_rewind(), call open_buffer() only when
          re-using the initial empty buffer

fixes: #14219
closes: #14220

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-20 20:20:39 +01:00
RestorerZ
2680a074d4 patch 9.1.0191: Installer does not remove all files
Problem:  Installer does not remove all files
Solution: Update installer and delete all files on uninstall
          update Sodium library dependency, update Readme
          (RestorerZ)

closes: #14214

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-20 20:18:18 +01:00
Girish Palya
8950bf7f8b patch 9.1.0190: complete_info() returns wrong order of items
Problem:  complete_info() returns wrong order of items
          (after v9.0.2018)
Solution: Revert Patch v9.0.2018
          (Girish Palya)

bug fix: complete_info() gives wrong results

1) complete_info() reverses list of items during <c-p>
2) 'selected' item index is wrong during <c-p>
3) number of items returnd can be wrong

Solution:
- Decouple 'cp_number' from 'selected' index since they need not be
  correlated
- Do not iterate the list backwards
- Add targeted tests

Regression introduced by 69fb5afb3b
Following are unnecessary commits to patch problems from above:
fef6630166
daef8c7437

All the tests from above commits are retained though.

fixes: #14204
closes: #14241

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-20 20:11:26 +01:00
James McCoy
2708c0b585 runtime(deb822sources): Add minimal ftplugin (#14240)
Set comment related options and avoid automatic line wrapping.

Signed-off-by: James McCoy <jamessan@jamessan.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-20 19:55:05 +01:00
zeertzjq
918b92b961 patch 9.1.0189: Memory leak with "above" virttext and 'relativenumber'
Problem:  Memory leak with "above" virtual text and 'relativenumber'.
Solution: Free "text_props" and "text_prop_idxs" before returning.
          Also fix off-by-one error causing line number to be drawn
          beyond end of window (zeertzjq).

fixes: #14239
closes: #14241

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-20 19:49:20 +01:00
wrapperup
9f26e5a9bc patch 9.1.0188: filetype: no support for Vento files
Problem:  Vento files are not recognized.
Solution: Recognize *.vto files as filetype "vento" (wrapperup)

Vento is a templating engine https://vento.js.org/

closes: #14229

Signed-off-by: wrapperup <wrapperup4@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-19 18:09:13 +01:00
dkearns
ec21bafc13 runtime(vim): Update base-syntax, disallow '.' at start of menu item names (#14232)
Disallow '.' at the start of a menu item name.

This is the menu path separator character and should be escaped with a
'\' in this case.

Partially fixes #14230.  "popup" is still incorrectly matched as the Ex
command.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-19 18:04:42 +01:00
Christian Brabandt
702f7923f6 runtime(syntax-tests): regenerate c_00 and markdown dumps
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 22:07:22 +01:00
Aliaksei Budavei
a2addebca3 runtime(syntax-tests): include missing changes
related: #14215

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 20:40:54 +01:00
MyyPo
ef21bcaab1 runtime(rust): Respect no_plugin_maps and no_rust_maps globals (#14221)
Signed-off-by: myypo <nikirsmcgl@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:38:09 +01:00
Aliaksei Budavei
a9bc195d64 runtime(syntax-tests): Retrofit input/c.c. with TEST_SETUP
Also:

- Include a syntax test for Markdown that takes advantage of
  a sourceable setup configuration.
- Update Filelist

closes: #14215

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:32:48 +01:00
Aliaksei Budavei
f6069a7ddc runtime(syntax-tests): Support sourceable Vim configuration for syntax tests
Not all programming languages support comments; without such
support, the TEST_SETUP functionality that offers embeddable
Vim Ex commands may no longer be applicable.

We can achieve similar functionality by storing Ex commands
in a Vim file with its basename matching the basename of the
test file, and having this Vim file sourced, and then having
the test file loaded and tested.  When such a Vim file would
be used for a language that has comments and whose matching
test file has embedded TEST_SETUP lines, we will accommodate
it by letting the TEST_SETUP lines augment and/or overrule
sourced configuration.

Further details can be found in the discussion thread at
https://github.com/vim/vim/discussions/14117.

related: #14215

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:32:48 +01:00
Aliaksei Budavei
93edd254d5 runtime(syntax-tests): Support embeddable Vim configuration for syntax tests
Currently, the very same syntax file for which a test can
be written is the only place where global variables can be
defined so that the file parts guarded with such variables
can be read during screen dump generation.  This approach
would lead to littering the syntax file with test-related
queries.

Instead, we could borrow the idea of comment-based mechanism
for test setup from the indent test runner.  With it, the
first 20 lines of each test file would be ALWAYS scanned in
search of the TEST_SETUP markers and, when found, the part
between the end of the marker and the end of the line would
be treated as a Vim Ex command.

Note that with these changes, runtime/defaults.vim is no
longer sourced for screen dump generation; however, some of
its functionality is reintroduced.

Further details can be found in the discussion thread at
https://github.com/vim/vim/discussions/14117.

related: #14215

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:32:16 +01:00
Aliaksei Budavei
78c189837a runtime(doc): Recover some missed commas and periods in starting.txt
Also:

- Insert some missing words;
- Strive for consistency with capitalisation of words;
- Improve shell alias examples.

The gvim words were left alone for now, but they deserve to
be treated like proper names, GVim or GUI Vim, unless these
refer to executable filenames (on *nix systems).

closes: #14194

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:25:27 +01:00
zeertzjq
4e334d0443 patch 9.1.0187: filetype: no support for Dafny files
Problem:  Dafny files are not recognized.
Solution: Recognize *.dfy files as filetype "dafny" (zeertzjq).

Ref: https://dafny.org/
Ref: https://github.com/mlr-msft/vim-loves-dafny

closes: #14226

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:21:48 +01:00
dkearns
9530fe4f3a runtime(vim): Update base-syntax, improve :highlight command (#14228)
Improve :highlight command highlighting

- Use the same highlight groups for "default link" with and without
  bang.
- Match some common line-continuation use.
- Match :hi clear variants.
- Highlight color-name values.

Resync vim.vim and generator/vim.vim.base.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-18 19:19:51 +01:00
Christian Brabandt
0e17f7e972 runtime(doc): clarify close behaviour for :term
closes: #14207

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-17 20:14:25 +01:00
Matthew Hughes
3d46de703c runtime(go): goPackageComment highlighting too broad
Previously this would highlight any comment before a line starting
`package`, for example

    var (
      // This comment would be highlighted as a goPackageComment
      packages []string
    )

The package clause is only valid when followed by a space[1], so include
this restriction

This is upstreaming a change from `go-vim`[2]

[1] https://go.dev/ref/spec#Package_clause
[2] d1c36cc417

Signed-off-by: Matthew Hughes <matthewhughes934@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-17 20:05:43 +01:00
zeertzjq
deb2204bff patch 9.1.0186: cursor pos wrong on mouse click after eol with 'rl', 've' and conceal
Problem:  Wrong cursor position when clicking after end of line with
          'rightleft', 'virtualedit' and conceal.
Solution: Set values in ScreenCols[] also with SLF_RIGHTLEFT.  Also fix
          off-by-one cursor position with 'colorcolumn' (zeertzjq).

closes: #14218

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-17 19:44:30 +01:00
zeertzjq
f6272551bd patch 9.1.0185: 'wincolor' hl missing with 'rightleft', "below" virttext, 'nowrap'
Problem:  'wincolor' highlight missing with 'rightleft', "below" virtual
          text and 'nowrap'.
Solution: Handle 'rightleft' in draw_screen_line() (zeertzjq).

closes: #14216

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-17 10:01:47 +01:00
RestorerZ
8291e91c6b runtime(indent-test): MS-Windows: Add Makefile for running indent tests
A few more unrelated changes:
- fix Vim script style of indent test
- Change comments to complete sentences in Filelist

closes: #14198
2024-03-16 15:13:21 +01:00
zeertzjq
d0c1b7723f patch 9.1.0184: Cursor pos wrong when clicking with conceal and wrap
Problem:  Cursor position wrong when clicking with conceal and wrap.
Solution: Use the virtual column of the last char for ScreenCols[] in
          boguscols.  Remove use of MAXCOL in ScreenCols[].  Rename
          third argument of wlv_screen_line() to "clear_end" as that's
          clearer what it does (zeertzjq).

related: 14192
closes: #14200

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-16 15:03:33 +01:00
zeertzjq
9e7f1fc2f1 patch 9.1.0183: Wrong display or screenpos() result when toggling diff mode
Problem:  Wrong display or screenpos() result when toggling diff mode.
Solution: Reset w_skipcol when disabling 'wrap'.  Reset w_leftcol when
          enabling 'wrap' (zeertzjq).

fixes: #14210
closes: #14211

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-16 09:40:22 +01:00
zeertzjq
6a04bf5ee5 patch 9.1.0182: Can define function with invalid name inside 'formatexpr'
Problem:  Can define function with invalid name inside 'formatexpr'.
Solution: Use goto instead of checking for did_emsg later.
          (zeertzjq)

closes: #14209

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-16 09:39:06 +01:00
Restorer
20eaf8b78d tools/rename.bat uses 'mv' and "move" (#14201)
refactor tools/rename.bat and support both "mv" for Linux build environments
and "move" for Windows build environments

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-16 09:38:10 +01:00
zeertzjq
989faa4fce runtime(doc): make :h tag-! more consistent (#14208)
- Use "on" and "off" for 'winfixbuf' option values.
- Retab the table.

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-16 09:21:20 +01:00
dkearns
b4b3d7de24 runtime(vim): Update base-syntax, revert last change to vimUserFunc (#14202)
Fix highlighting of ":echo (expr)" (broken in commit 61887b3) by
re-enabling the original fix for #9987.

Addresses https://github.com/vim/vim/pull/14199#issuecomment-1999732062.

This will be fixed more generally when there is context-sensitive
matching for commands and functions.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-15 18:53:53 +01:00
dkearns
61887b3d6f runtime(vim): Update base-syntax, improve :echo and :execute highlighting (#14199)
Improve :echo and :execute highlighting.

- Add better line-continuation support for both commands.
- Improve the :execute command's expression argument matching.
- Remove the fix for issue #9987 as this is now handled by correctly
  matching the parens in :echo (...) as operator parens.


Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-15 12:45:48 +00:00
Christ van Willegen
c35fc03dbd patch 9.1.0181: no overflow check for string formatting
Problem:  no overflow check for string formatting
Solution: Check message formatting function for overflow.
          (Chris van Willegen)

closes: #13799

Signed-off-by: Christ van Willegen <cvwillegen@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-14 18:58:04 +01:00
zeertzjq
010e1539d6 patch 9.1.0180: Cursor pos wrong when double-width chars are concealed
Problem:  Cursor pos wrong when double-width chars are concealed.
Solution: Advance one more virtual column for a double-width char.
          Run some tests with both 'wrap' and 'nowrap' (zeertzjq).

closes: #14197

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-14 18:22:17 +01:00
zeertzjq
9352c28292 patch 9.1.0179: 'wincolor' highlight missing with "below" virtual text
Problem:  'wincolor' highlight missing with "below" virtual text.
Solution: Subtract n_attr_skip from n_attr.  Combine 'wincolor' with
          other highlights when 'nowrap' is set. (zeertzjq)

closes: #14196

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-14 18:16:56 +01:00
Christian Brabandt
45da32964d runtime(mswin): still another clipboard_working test
Commit 760f664213 missed to revert back
another test for `if has('clipboard_working')`

So change the remaining check around the inoremap <c-v> mappings.

fixes #14195

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-14 07:59:09 +01:00
Christian Brabandt
0a32b8854b patch 9.1.0178: E1513 might be confusing
Problem:  E1513 might be confusing
          (Christoph Thoma)
Solution: reword error message, fix test to not
          depend on the actual message

fixes: #14189

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-13 20:59:27 +01:00
zeertzjq
8c55d60658 patch 9.1.0177: Coverity reports dead code
Problem:  Coverity reports dead code.
Solution: Remove the dead code. Also fix a mistake in ml_get_pos_len()
          and update some comments (zeertzjq).

closes: #14189

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-13 20:42:26 +01:00
zeertzjq
253ff4dece patch 9.1.0176: Cursor column wrong with 'virtualedit' and conceal
Problem:  Cursor column wrong with 'virtualedit' and conceal.
Solution: Correct cursor column at end of line if never reached.
          (zeertzjq)

closes: #14190

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-13 20:38:26 +01:00
Sean Dewar
5866bc3a0f patch 9.1.0175: wrong window positions with 'winfix{width,height}'
Problem:  winframe functions incorrectly recompute window positions if
          the altframe wasn't adjacent to the closed frame, which is
          possible if adjacent windows had 'winfix{width,height}' set.

Solution: recompute for windows within the parent of the altframe and
          closed frame. Skip this (as before) if the altframe was
          top/left, but only if adjacent to the closed frame, as
          positions won't change in that case. Also correct the return
          value documentation for win_screenpos. (Sean Dewar)

The issue revealed itself after removing the win_comp_pos call below
winframe_restore in win_splitmove. Similarly, wrong positions could result from
windows closed in other tabpages, as win_free_mem uses winframe_remove (at least
until it is entered later, where enter_tabpage calls win_comp_pos).

NOTE: As win_comp_pos handles only curtab, it's possible via other means for
positions in non-current tabpages to be wrong (e.g: after changing 'laststatus',
'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional
as an optimization? Should probably be documented in win_screenpos then, but I
won't address that here.

closes: #14191

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-13 20:17:24 +01:00
zeertzjq
21b0a3df8c patch 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrap
Problem:  'cursorline' and 'wincolor' highlight missing with concealed and
          wrapped lines.
Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols.
          (zeertzjq)

Since 'cursorline' and 'wincolor' highlight apply after the end of the
line, it is more consistent to have them also apply to boguscols.

Assigning MAXCOL to values in ScreenCols[] make mouse click behave the
same with 'cursorline' and 'nocursorline', but such behavior may be
incorrect, as it puts the cursor on the next screen line.  That may be
fixed in a future PR.

closes: #14192

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-13 20:09:02 +01:00
Christian Brabandt
760f664213 runtime(mswin): revert back the check for clipboard_working support
Commit d9ebd46bd0 changed the condition to
check if the clipboard is available from:
```
has('clipboard')
```
to
```
has('clipboard_working')
```
Assuming that is the more accurate test because even when clipboard
support is enabled at compile time it may not be actually working (e.g.
if no X11 environment is available, or when working on a remote server).

However it seems that condition does not evaluate to true, when the GUI
has not been started up yet (and there was no X11 Connection yet possible).

So let's just revert back the check to `has('clipboard')`, since that
has been proven to be working well enough.

related: #13809

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-13 16:38:16 +01:00
RestorerZ
e498cafe74 patch 9.1.0173: msgfmt ver. 0.22 forcibly converts text to UTF-8
Problem:  msgfmt ver. 0.22 forcibly converts text to UTF-8
Solution: use '--no-convert' if msgfmt supports it. Add a configure
          check for the msgfmt version (RestorerZ).

closes: #14163

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 22:14:39 +01:00
Christian Brabandt
9a660d2883 runtime(doc): add reference to matchbufline() at :h search()
related: #14173

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 22:03:45 +01:00
zeertzjq
94b7c3233e patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()
Problem:  More code can use ml_get_buf_len() instead of STRLEN().
Solution: Change more STRLEN() calls to ml_get_buf_len().  Also do not
          set ml_line_textlen in ml_replace_len() if "has_props" is set,
          because "len_arg" also includes the size of text properties in
          that case. (zeertzjq)

closes: #14183

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 21:50:32 +01:00
Sean Dewar
5cac1a9bee patch 9.1.0171: Small split-move related improvements
Problem:  small improvements can be made to split-move related
          functions.
Solution: apply them (Sean Dewar):

- Improve some doc comments (frame_flatten should still work for non-current
  tabpages, despite the topframe check, which looks benign, though I'm unsure if
  it's still needed; see #2467).

- f_win_splitmove should check_split_disallowed on wp, not targetwin, as that's
  what win_splitmove checks (though it's probably unnecessary to check
  b_locked_split at all; see #14109, which I hope to get around to finishing at
  some point).

- Make winframe_restore restore window positions for the altframe, which
  winframe_remove changes. This doesn't affect the prior behaviour, as we called
  win_comp_pos after, but as win_comp_pos only works for curtab, and
  winframe_remove supports non-current tabpages, we should undo it. Regardless,
  this should mean we don't need win_comp_pos anymore; adjust tests to check
  that window positions remain unchanged.

  I'm not sure win_comp_pos is needed after last_status anyway if it doesn't
  steal rows from another frame to make room for a new statusline, which
  shouldn't be the case after winframe_remove? To be safe, I'll leave it as is.

closes: #14185

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 21:11:39 +01:00
Sean Dewar
d64801e913 patch 9.1.0170: Re-allow curwin == prevwin, but document it instead
Problem:  more places exist where curwin == prevwin, and it may even be
          expected in some cases.
Solution: revert v9.1.0001, but document that it's possible instead.
          (Sean Dewar)

I've had a change of heart for the following reasons:

- A quick 'n dirty [GitHub code
  search](https://github.com/search?q=%2F%28winnr%5C%28%5C%29%5Cs*%3D%3D%5Cs*winnr%5C%28%5B%27%22%5D%23%5B%27%22%5D%5C%29%7Cwinnr%5C%28%5B%27%22%5D%23%5B%27%22%5D%5C%29%5Cs*%3D%3D%5Cs*winnr%5C%28%5C%29%29%2F&type=code)
  reveals some cases where it's expected in the wild.

  Particularly, it made me aware `winnr() == winnr('#')` is possible when curwin
  is changed temporarily during the evaluation of a &statusline expression item
  (`%{...}`), and is used to show something different on the statusline
  belonging to the previous window; that behaviour wasn't changed in v9.1.0001,
  but it means curwin == prevwin makes sense in some cases.

- The definition and call sites of back_to_prevwin imply some expectation that
  prevwin == wp (== curwin) is possible, as it's used to skip entering the
  prevwin in that case.

- Prior to v9.1.0001, `:wincmd p` would not beep in the case that was patched in
  v9.1.0001, but now does. That resulted in #14047 being opened, as it affected
  the CtrlP plugin.

  I find it odd that `:wincmd p` had cases where it wouldn't beep despite doing
  nothing, but it may be preferable to keep things that way (or instead also
  beep if curwin == prevwin, if that's preferred).

- After more digging, I found cases in win_free_mem, enter_tabpage,
  aucmd_restbuf and qf_open_new_cwindow where curwin == prevwin is possible
  (many of them from autocommands). Others probably exist too, especially in
  places where curwin is changed temporarily.

fixes: #14047
closes: #14186

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 20:50:27 +01:00
Sean Dewar
e101028a5c patch 9.1.0169: current window number returned by tabpagewinnr may be outdated
Problem:  current window number returned by tabpagewinnr may be outdated
          when called from win_execute for the original tabpage.
Solution: update the original tabpage's tp_curwin in switch_win; use
          {un}use_tabpage instead. Don't do it in restore_win to ensure
          tp_curwin of the temporarily visited tabpage is unchanged from
          switch_win visiting it, as before. (Sean Dewar)

Maybe restore_win should only restore tp_curwin if
`curtab == switchwin->sw_curtab`, in case the user changed tabpages from within
win_execute, but not doing that is consistent with the old behaviour.

related: #14186

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 20:42:25 +01:00
John Marriott
bfcc895482 patch 9.1.0168: too many STRLEN() calls
Problem:  too many STRLEN() calls
Solution: Make use of ml_get_len() calls instead
          (John Marriott)

closes: #14123

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-11 22:04:45 +01:00
dkearns
5cd86c6cff runtime(vim): Update base-syntax, improve number matching (#14175)
- Limit blob literals to an even number of hexadecimal digits and
  correctly located dots.
- Match octal numbers.

The current version unsuccessfully attempts to match a leading '-' as
part of the float literal.  It's actually parsed as part of the literal
for all numbers but the syntax file hasn't matched it like that for a
long time and highlights negative numbers as UNARY-MINUS NUMBER.  This
will be fixed when better expression matching is implemented.


Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-11 21:40:58 +01:00
zeertzjq
49ffb6b428 patch 9.1.0167: Changing buffer in another window causes it to show matchparen
Problem:  Changing buffer in another window using win_execute() causes
          it to show matchparen (after 9.0.0969).
Solution: Delay highlighting with SafeState in BufWinEnter.
          (zeertzjq)

closes: #14177

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-11 21:38:58 +01:00
zeertzjq
5406eb8722 patch 9.1.0166: Internal error with blockwise getregion() in another buffer
Problem:  Internal error with blockwise getregion() in another buffer
Solution: Also change curwin->w_buffer when changing curbuf (zeertzjq)

closes: #14179

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-11 21:36:42 +01:00
Rimas Kudelis
cb942cc4ca translation(lt): Update Lithuanian translation of Vim tutor to v.1.7 (#14176)
Signed-off-by: Rimas Kudelis <rimas@kudelis.lt>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-11 15:15:04 +00:00
zeertzjq
0049a495c8 runtime(doc): improve 'winfixbuf' docs (#14180)
- Make it not sound like a buffer option.
- "!" is called a modifier, not an option.

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-11 15:13:16 +00:00
Christian Brabandt
675cbfb47f runtime(doc): Update Markdown syntax, add missing configs
fixes: #14168

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-10 19:34:32 +01:00
Yegappan Lakshmanan
fa63008727 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Problem:  Vim9: Importing an autoload imported script fails
          (Song-Tianxiang)
Solution: Return the script ID in this case
          (Yegappan Lakshmanan)

fixes: #14171
closes: #14174

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-10 19:22:38 +01:00
zeertzjq
26dd09ad5e patch 9.1.0164: Internal error when passing invalid position to getregion()
Problem:  Internal error or crash when passing invalid position to
          getregion().
Solution: Give an error for invalid position (zeertzjq).

closes: #14172

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-10 15:46:58 +01:00
zeertzjq
82e079df81 patch 9.1.0163: Calling STRLEN() to compute ml_line_textlen when not needed
Problem:  Calling STRLEN() to compute ml_line_textlen when not needed.
Solution: Use 0 when STRLEN() will be required and call STRLEN() later.
          (zeertzjq)

closes: #14155

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-10 08:55:42 +01:00
Paul R. Tagliamonte
14759ded57 patch 9.1.0162: problem with writing extended attributes on failure
Problem:  problem with writing extended attributes on failure
Solution: Change return type to ssize_t and check listxattr's return
          value correctly on failure (Paul Tagliamonte)

The existing logic will return when the listxattr call returns with the
errno set to ENOTSUP (or a size of 0 bytes), without checking to see if
listxattr actually failed. listxattr can fail with at least E2BIG,
ENOTSUP, ERANGE, or anything that `stat(2)` can fail with (in my case;
ENOENT from stat).

The returned size is stored to a size_t, but the return type is a
ssize_t. On failure, listxattr returns -1, which will get translated to
size_t's MAX. If the listxattr call failed with anything other than
ENOTSUP, this triggers a request for size_t MAX bytes.

This means that, if the listxattr call fails with anything other than
ENOTSUP on save, vim will error with

`E342: Out of memory!  (allocating 18446744073709551615 bytes)`

(keen observers will note 18446744073709551615 is 0xffffffffffffffff)

In reality, this is likely masking a different (usually filesystem?)
error -- but at least it's an error being pushed to the user now, and we
don't try to allocate size_t MAX bytes.

I've opted to change the type that we store listxattr to from size_t to
ssize_t, to match listxattr(2)'s signature, and to check for the -1
return value. Additionally, I've removed the errno check -- if we get a
listxattr failure for any reason, we may as well bail without trying;
it's not like we can even recover.

closes: #14169

Signed-off-by: Paul Tagliamonte <paultag@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-10 08:53:33 +01:00
Rimas Kudelis
ca0e0d2708 translation(lt): Added Lithuanian translation of Tutor v. 1.4 by Laurynas Stančikas (#14118)
This translation has been available for free download from lietuvybe.org,
then lietuvybe.akl.lt, then lietuvybė.lt since at least 2006[1], but noone
ever bothered to contribute it upstream.

[1] https://web.archive.org/web/20060222162117/http://lietuvybe.org/files/vim-tutor-lt.txt

Co-authored-by: Laurynas Stančikas <lasas@gim.ktu.lt>
Signed-off-by: 	Rimas Kudelis <rimas@kudelis.lt>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 18:27:46 +01:00
Aliaksei Budavei
a2c65809da runtime(java): Recognise string templates (#14150)
As this is encouraged in the referenced JEPs, "to visually
distinguish a string template from a string literal, and
a text block template from a text block", the default
colours for java\%[Debug]StrTempl are made distinct from
java\%[Debug]String.

According to §3.2 Lexical Translations (JLS, c. 1996 or any
more recent version), line terminators, white space, and
comments are discarded before tokens are accepted. Since
a template expression comprises a template processor, a dot,
and a template, it may be visually appealing to break up
its head across a few lines whenever its tail already spans
multiple lines.  Curiously, no allowance for it is made in
the distributed tests for OpenJDK 21; the proposed regexp
patterns take in consideration a line terminator and white
space after a dot.

References:
https://openjdk.org/jeps/430 (Preview)
https://openjdk.org/jeps/459 (Second Preview)
https://openjdk.org/jeps/465

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 18:03:11 +01:00
dkearns
5d67aef306 runtime(vim): Update base-syntax, improve :map highlighting (#14141)
Improve :map command highlighting.

- Fix multiline RHS matching, allow continued lines and comments.
- Allow ^V-escaped whitespace in LHS.
- Handle map-bar properly and allow trailing commands.

Fixes issue #12672.


Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 18:01:22 +01:00
zeertzjq
13a014452a patch 9.1.0161: expand() removes slash after env variable that ends with colon
Problem:  expand() removes a slash after an environment variable that
          ends with a colon on Windows.
Solution: Check the correct char for a colon (zeertzjq)

closes: #14161

Note: Vim still removes the path-separator at the end, if another path separator
follows directly after it, e.g. on:

```
    echo $FOO='/usr/'
    echo expand('$FOO/bar') == '/usr/bar'
```

see:

,----[ misc1.c:1630 ]
|   // if var[] ends in a path separator and tail[] starts
|   // with it, skip a character
|   if (after_pathsep(dst, dst + c)
| #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA)
| 	  && (dst == save_dst || dst[-1] != ':')
| #endif
| 	  && vim_ispathsep(*tail))
|       ++tail;
`----

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 17:44:46 +01:00
dkearns
62b26040eb runtime(vim): Update base-syntax, improve :menu{,translate} highlighting (#14162)
Improve :menu and :menutranslate highlighting.

- Match args to :menutranslation and :popup.
- Only highlight special notation in {rhs} of :menu, like :map.
- Allow line continuations in {rhs} of :menu and between {english} and
  {mylang} of :menutranslation, matching common usage.
- Bug fixes.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 17:43:28 +01:00
Yegappan Lakshmanan
35b867b685 patch 9.1.0160: Vim9: Add support for using a class type of itself in an object method
Problem:  Add support for using a class type of itself in an object
          method (thinca)
Solution: Vim9: Add support for using a class type of itself in an
          object method (Yegappan Lakshmanan)

fixes: #12369
closes: #14165

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 15:44:19 +01:00
zeertzjq
b2ec0da080 patch 9.1.0159: Crash in WinClosed after BufUnload closes other windows
Problem:  Crash in WinClosed after BufUnload closes other windows
Solution: Don't trigger WinClosed if the buffer is NULL (zeertzjq)

Now win_close_othertab() doesn't trigger any autocommands if the buffer
is NULL, so remove the autocmd blocking above (which was added not long
ago in patch v9.0.0550) for consistency.

Also remove an unreachable close_last_window_tabpage() above:
- It is only reached if only_one_window() returns TRUE and last_window()
  returns FALSE.
- If only_one_window() returns TRUE, there is only one tabpage.
- If there is only one tabpage and last_window() returns FALSE, the
  one_window() in last_window() must return FALSE, and the ONE_WINDOW
  in close_last_window_tabpage() must also be FALSE.
- So close_last_window_tabpage() doesn't do anything and returns FALSE.

Then the curtab != prev_curtab check also doesn't make much sense, and
the only_one_window() can be replaced with a check for popup and a call
to last_window() since this is a stricter check than only_one_window().

closes: #14166

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-09 15:39:27 +01:00
zeertzjq
8a01744c56 patch 9.1.0158: 'shortmess' "F" flag doesn't work properly with 'autoread'
Problem:  'shortmess' "F" flag doesn't work properly with 'autoread'
          (after 9.1.0154)
Solution: Hide the file info message instead of the warning dialog
          (zeertzjq)

closes: #14159
closes: #14158

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-07 21:48:33 +01:00
zeertzjq
0df8f93bda patch 9.1.0157: Duplicate assignment in f_getregion()
Problem:  Duplicate assignment in f_getregion().
Solution: Remove the duplicate assignment.  Also improve getregion()
          docs wording and fix an unrelated typo (zeertzjq)

closes: #14154

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-07 21:43:21 +01:00
Sean Dewar
769eb2d0c3 patch 9.1.0156: Make 'wfb' failing to split still report E1513
Problem:  may not be clear why failing to split causes an ":Xdo" command
          to abort if 'wfb' is set.
Solution: do not return immediately if win_split fails, so E1513 is
          still given. Expect both errors in the test. Also fix tests to
          pass CI.
          (Sean Dewar)

closes: #14152

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-07 21:38:21 +01:00
Aliaksei Budavei
64de03a22b runtime(syntax-tests): remove executable bit from sh test file
related: #14138

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-07 21:33:51 +01:00
Shougo Matsushita
84bf6e658d patch 9.1.0155: can only get getregion() from current buffer
Problem:  can only call getregion() for current buffer
Solution: Allow to retrieve selections from different buffers
          (Shougo Matsushita)

closes: #14131

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-06 21:39:35 +01:00
Shougo Matsushita
9db39b0ec9 patch 9.1.0154: shm=F not respected when reloading buffer with 'autoread'
Problem:  shm=F not respected when reloading buffer with 'autoread'
Solution: Check SHM_FILEINFO in buf_check_timestamp()
          (Shougo Matsushita)

closes: #14144

Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-06 20:58:41 +01:00
zeertzjq
7ac1145fbe patch 9.1.0153: Text properties corrupted with fo+=aw and backspace
Problem:  Text properties corrupted with fo+=aw and backspace
Solution: Allocate line and move text properties
          (zeertzjq)

closes: #14147

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-06 20:54:22 +01:00
Christos Longros
c62dacb7ed translation(gr): add translation of the installer (#14148)
Add greek translation of the installer

Signed-off-by: Christos Longros <98426896+chrislongros@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-06 20:53:02 +01:00
Antonio Giovanni Colombo
e3f2ef0eec translation(it): Update Italian translation for winfixbuf
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-06 20:44:10 +01:00
Christian Brabandt
af7ae81600 patch 9.1.0152: Coverity complains about ignoring return value
Problem:  Coverity complains about ignoring return value of win_split()
          (after v9.1.150)
Solution: Check if win_split() failed, add winfixbuf.res to Makefile
2024-03-06 20:43:05 +01:00
Christian Brabandt
a72d1be5a9 patch 9.1.0151: ml_get_buf_len() does not consider text properties
Problem:  ml_get_buf_len() does not consider text properties
          (zeertzj)
Solution: Store text length excluding text properties length
          in addition in the memline

related #14123
closes: #14133

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-05 20:43:25 +01:00
Sean Dewar
4bb505e28c patch 9.1.0150: Several minor 'winfixbuf' issues
Problem:  several minor 'winfixbuf' issues exist, mostly relating to the
          quickfix list
Solution: address them and adjust tests. Retab and reflow a few things too.
          (Sean Dewar)

Things touched include:

- Replace the semsgs with gettext'd emsgs.

- Handle window switching in ex_listdo properly, so curbuf and curwin
  are kept in-sync and trigger autocommands; handle those properly.

- Don't change the list entry index in qf_jump_edit_buffer if we fail
  due to 'wfb' (achieved by returning FAIL; QF_ABORT should only be used
  if the list was changed).

- Make qf_jump_edit_buffer actually switch to prevwin when using `:cXX`
  commands **outside** of the list window if 'wfb' is set in curwin.
  Handle autocommands properly in case they mess with the list.

  NOTE: previously, it seemed to split if 'wfb' was set, but do nothing
  and fail if prevwin is *valid*. This behaviour seemed strange, and maybe
  unintentional? Now it aligns more with what's described for the `:cXX`
  commands in the original PR description when used outside a list window,
  I think.

- In both functions, only consider prevwin if 'wfb' isn't set for it;
  fallback to splitting otherwise.

- Use win_split to split. Not sure if there was a specific reason for
  using ex_splitview. win_split is simpler and respects modifiers like
  :vertical that may have been used. Plus, its return value can be checked
  for setting opened_window in qf code (technically win_split_ins autocmds
  could immediately close it or change windows, in which the qf code might
  close some other window on failure; it's already the case elsewhere,
  though).

closes: #14142

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-05 20:39:07 +01:00
Ivan Pešić
e1051924c7 translation(sr): Update Serbian messages (#14143)
* translation(sr): Update Serbian messages
* Update serbian.nsi
* Update gvim.nsi

Add serbian language to the installer

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-05 20:34:00 +01:00
Wu Yongwei
63c39e4ef7 runtime(c): Recognize "__inline" (#14145)
`__inline` is recognized by GCC, and may even be preferred, as MSVC does
not recognize `__inline__`.

Signed-off-by: Wu Yongwei <wuyongwei@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-05 20:27:27 +01:00
dkearns
e5c9ba6015 runtime(vim): Update base-syntax, fix escaping :syn and :hi sub-groups (#14137)
* runtime(vim): Update base-syntax, fix escaping :syn and :hi sub-groups

- Remove contained :syntax and :highlight sub-groups from the function
  body cluster.  These should only match in the respective commands.
- Remove vimSynLine syntax group from several clusters.  The definition
  of vimSynLine was removed in Vim 5.3.

* runtime(vim): Update syntax generator, use standard Last Change date format

The de facto standard date format is YYYY MMM DD.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-04 19:15:42 +01:00
dkearns
1bdc9435c1 runtime(sh): Update syntax file, fix issue #962 (#14138)
Allow the opening parenthesis of a multiline array assignment, within an
if statement, to appear at EOL.

Fixes issue #962.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-04 19:14:08 +01:00
Sean Dewar
5131f224da patch 9.1.0149: null pointer member access when accessing 'winfixbuf' property
Problem:  qf_goto_win_with_qfl_file may check if prevwin has 'winfixbuf'
          set without checking if it's valid first.
Solution: Reverse the condition. Add a test, a modeline, and a missing
          CheckFeature. (Searn Dewar)

closes: #14140

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-04 19:09:26 +01:00
Jay Sitter
e84490311b runtime(css): update syntax script
Signed-off-by: Jay Sitter <jay@jaysitter.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-04 16:19:48 +01:00
dkearns
691aee8b07 runtime(vim): Update base-syntax, fix issue #14135 (#14136)
Fix incorrect error highlighting for function calls in :command
definitions.  vimFunctionError should be restricted to :function header
lines.

fixes: #14135

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 19:02:47 +01:00
Christian Brabandt
58f1e5c089 runtime(doc): Highlight the error message at *E1513*
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 16:47:47 +01:00
dkearns
c4aef9a97b runtime(vim): Update base-syntax, improve :augroup highlighting (#14125)
- Explicitly match the bang and group name in :aug! {name}.
- Allow any characters in a group name.
- Match default group switch marker, END.
- Match :aug without arguments (list command).

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 16:42:47 +01:00
Shixian Li
d9ebd46bd0 runtime(mswin): Use unnamed register when clipboard not working (#13813)
* Use unnamed register while clipboard not exist
* Do not need to specify the unnamed register explicitly
fixes: #13809

Signed-off-by: Shixian Li <lsx7@sina.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 16:41:46 +01:00
Yegappan Lakshmanan
d3eae7bc11 patch 9.1.0148: Vim9: can't call internal methods with objects
Problem:  Vim9: can't call internal methods with objects
Solution: Add support for empty(), len() and string() function
          calls for objects (Yegappan Lakshmanan)

closes: #14129

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 16:34:51 +01:00
Colin Kennedy
2157035637 patch 9.1.0147: Cannot keep a buffer focused in a window
Problem:  Cannot keep a buffer focused in a window
          (Amit Levy)
Solution: Add the 'winfixbuf' window-local option
          (Colin Kennedy)

fixes:  #6445
closes: #13903

Signed-off-by: Colin Kennedy <colinvfx@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 16:16:47 +01:00
Restorer
353faa373e translation(ru): Updated Russian installer translation (#14134)
* translation(ru): Updated Russian translation for NSIS
* update CODEOWNERS

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 15:52:37 +01:00
Aliaksei Budavei
b3030b653b runtime(java): Recognise text blocks (#14128)
Also, accept as valid the space escape sequence `\s`.

Also, consistently use the claimed `javaDebug` prefix for
syntax group definitions kept under `g:java_highlight_debug`.

Since `javaStringError` is commented out for its generality,
let's comment out `javaDebugStringError`, its copy, as well.

References:
https://openjdk.org/jeps/378
https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.7

Closes #10910.

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-03 15:51:01 +01:00
dkearns
e93afc2e61 runtime(r,rhelp,rmd,rnoweb,rrst): Update ftplugin, browsefilter labels (#14126)
Use the standard format for browsefilter labels:
  "File Description (*.ext1, *.ext2, *.ext3)"

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-02 19:27:47 +01:00
Aliaksei Budavei
100a665634 runtime(java): Improve the recognition of literals (#14120)
* Emend the Unicode and octal escape sequence patterns;
* Accept the (repeated) underscore separators in all
  numerical literals;
* Recognise hexadecimal floating-point literals.

(The space escape sequence '\s' will be introduced along
with text blocks in another PR.)

References:
https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.3
https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.1
https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.2
https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.7


Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-01 23:11:14 +01:00
zeertzjq
c27fcf4857 patch 9.1.0146: v:echospace wrong with invalid value of 'showcmdloc'
Problem:  v:echospace wrong after setting invalid value to 'showcmdloc'.
Solution: Only call comp_col() if value is valid.
          (zeertzjq)

closes: #14119

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-01 23:03:16 +01:00
zeertzjq
87410ab3f5 runtime(doc): some improvements to getregion() docs (#14122)
- Mention the default selection behavior
- Remove useless sentence
- Correct description about space padding

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-01 23:00:23 +01:00
Christian Brabandt
8fad5d5887 runtime(doc,netrw): update "Last Change header", remove trailing whitespace
Update Last-Change Header for netrw and doc/indent.txt, fix a trailing
whitespace in indent.txt and make CI happy.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-29 18:13:04 +01:00
Christian Brabandt
56b7da3c05 runtime(netrw): handle file/dir symlinks specifically in tree mode
fixes: #2386
related: #3609

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-29 17:48:14 +01:00
Sam-programs
062141b1a7 patch 9.1.0145: v:echospace not correct when 'showcmdloc' != last
Problem:  the amount of available space (v:echospace) on the command
          line is not correct when showcmdloc is drawn into the
          statusline or tabline.
Solution: only add SHOWCMD_COLS to the shown command column when
          'showcmdloc' is set to last (Sam-programs)

closes: #14108

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Sam-programs <130783534+Sam-programs@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-29 17:40:29 +01:00
Yegappan Lakshmanan
4d55c54e30 patch 9.1.0144: getregion() needs more tests
Problem:  getregion() needs more tests
Solution: Run the getregion() test in both the legacy and Vim9 contexts
          (Yegappan Lakshmanan)

closes: #14114

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-29 17:30:43 +01:00
Christian Brabandt
b4eb3f1e44 runtime(yaml): disable multiline_scalar detection by default
There have been many complaints about Yaml indenting too much, because
it considers values to be multi-line by default, which leads to
unintended indenting for (apparently most) users.

So let's hide this feature behind the new feature flag, keep it
simple and prefer single line value key pairs by default.

If you want the old behaviour, set the following value: >

  :let g:yaml_indent_multiline_scalar = 1

If not set, it will indent the same as the previous line.

closes #13845

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-29 17:28:07 +01:00
Christian Brabandt
55f8bba73b patch 9.1.0143: [security]: autocmd causes use-after-free in set_curbuf()
Problem:  [security]: autocmd cause use-after-free in set_curbuf()
          (kawarimidoll)
Solution: check side-effect of BufLeave autocommand, when the number
          of windows changed, close windows containing buffers that will
          be wiped, if curbuf changed unexpectedly make sure b_nwindows
          is decremented otherwise it cannot be wiped

set_curbuf() already makes some efforts to ensure the BufLeave
autocommands do not cause issues.  However there are still 2 issues
that are not taken care of:

1) If a BufLeave autocommand opens a new window containing the same
buffer as that is going got be closed in close_buffer() a bit later,
we suddenly have another window open, containing a free'd buffer.  So we
must check if the number of windows changed and if it does (and the
current buffer is going to be wiped (according to the 'bufhidden'
setting), let's immediately close all windows containing the current
buffer using close_windows()

2) If a BufLeave autocommand changes our current buffer (displays it in
the current window), buf->b_nwindow will be incremented. As part of
set_curbuf() we will however enter another buffer soon, which means, the
newly created curbuf will have b_nwindows still have set, even so the
buffer is no longer displayed in a window. This causes later problems,
because it will no longer be possible to wipe such a buffer. So just
before entering the final buffer, check if the curbuf changed when
calling the BufLeave autocommand and if it does (and curbuf is still
valid), decrement curbuf->b_nwindows.

Both issues can be verified using the provided test (however the second
issue only because such an impacted buffer won't be wiped, causing
futher issues in later tests).

fixes: #13839
closes: #14104

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 23:32:00 +01:00
Philip H
0fdd18596f CI: enable apt upgrade on github runners again to fix i386 build
This reverts commit 7f630e6f35 which
reverted 7349c5160a

Let's see how many more iterations of reverting a commit we can
achieve...

closes: #14113

Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 23:28:34 +01:00
Shougo Matsushita
19b718828d patch 9.1.0142: getregion() can be improved
Problem:  getregion() can be improved (after v9.1.120)
Solution: change getregion() implementation to use pos as lists and
          one optional {opt} dictionary (Shougo Matsushita)

Note: The following is a breaking change!

Currently, the getregion() function (included as of patch v9.1.120) takes
3 arguments: the first 2 arguments are strings, describing a position,
arg3 is the type string.

However, that is slightly inflexible, there is no way to specify
additional arguments. So let's instead change the function signature to:

getregion(pos1, pos2 [, {Dict}]) where both pos1 and pos2 are lists.
This is slightly cleaner, and gives us the flexibility to specify
additional arguments as key/value pairs to the optional Dict arg.

Now it supports the "type" key to specify the selection type
(characterwise, blockwise or linewise) and now in addition one can also
define the selection type, independently of what the 'selection' option
actually is.

Technically, this is a breaking change, but since the getregion()
Vimscript function is still quite new, this should be fine.

closes: #14090

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 22:49:03 +01:00
Christian Brabandt
d0d4adb609 runtime(Filelist): include runtime/syntax/testdir/ftplugin
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 21:53:26 +01:00
zeertzjq
4e141c66b9 patch 9.1.0141: Put in Visual mode wrong if it replaces fold marker
Problem:  Put in Visual mode wrong if it replaces fold marker.
Solution: Temporarily disable folding during put in Visual mode.
          (zeertzjq)

fixes: #14097
closes: #14100

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 21:49:51 +01:00
elig0n
b1289f19ef runtime(doc): Fix typo under *kitty-terminal* in term.txt
closes: #14106

Signed-off-by: elig0n <31196036+elig0n@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 21:46:15 +01:00
Ivan Pešić
97a35ae356 translation(sr): Update Serbian translation (#14107)
Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 21:41:27 +01:00
Aliaksei Budavei
9ecf02cd5f runtime(java): Recognise _when_ clauses in _switch_ blocks
Also:

- distinguish _yield_ when used as a contextual keyword from
  when used qualified as a method or a method reference (as
  can be seen in testdir/input/java_switch.java, variables
  and method declarations named _yield_ will be recognised
  as the namesake keyword--consider picking other names for
  variables, and defining g:java_highlight_functions to have
  method names painted; since _yield_ statements can have
  trailing parens, they must be recognised as statements,
  for only qualified _yield_ method calls are supported);

- recognise grouped _default_ _case_ labels;

- describe primitive types for _case_ labels (JLS, §14.11,
  §3.10.1);

- recognise some non-ASCII identifiers (see javaLambdaDef,
  javaUserLabel) (further improvement for better recognition
  of identifiers will be arranged in a separate PR).

Because the arrow '->' is used in two kinds of expressions,
lambda (abstractions) and _switch_, necessary changes were
made for the recognition of either (and further improvement
touching lambda expressions will be separately arranged).

Because 'default' is used for instance method declarations
in interfaces and in _switch_ labels, necessary changes were
made for the recognition of either (and further improvement
touching method declarations will be separately arranged).

Finally, it deemed appropriate to put 'yield' in the syntax
group of javaOperator rather than javaStatement, for its
member 'var' is also another contextual keyword (e.g., this
is valid syntax: "var var = var(test.var);").

References:
https://openjdk.org/jeps/361 (Switch Expressions)
https://openjdk.org/jeps/440 (Record Patterns)
https://openjdk.org/jeps/441 (Pattern Matching for switch)

Also, add a Java specific filetype plugin for the syntax
test, so that no soft-wrapping of long indented lines occur.

Otherwise the syntax scripts would miss a few lines during
scrolling and verification of the screen dumps.

closes: #14105

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 21:33:45 +01:00
Christian Brabandt
56824430c0 runtime(syntax-tests): simplify code and allow filetype options
The whole testdir/runtest.vim is a bit of a mess. So this is an attempt
to improving the current state. First of all, let's move most of the
code into a single RunTest() function so that it's easier to run this
manually.

Then, let's add the possibility to customize filetype specific tests by
applying filetype specific options. We will make use of it in the next
commit, where the provided java file uses tabs, which cause line
wrapping which will then cause the scrolling to miss some lines when
redrawing (see #14105)

related: #14105

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-28 21:24:25 +01:00
Antonio Giovanni Colombo
0c98a71236 translation(it): Update Italian translation
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-27 22:41:22 +01:00
Dylan Thacker-Smith
da0c9137d1 patch 9.1.0140: cursor on wrong row after 1 char 'below' virtual text when EOL is shown
Problem:  The cursor screen row was incorrectly being calculated when the
          cursor follows a 1 character text_align 'below' virtual text line,
          resulting in the cursor being shown on the wrong line.
          This was caused by a cell size of 2 instead of 1 being used for the EOL
          character, which propagated to the calculation of space for putting the
          'below' virtual text on its own line. (rickhowe)
Solution: Fix the size used for the EOL character in calculating the
          cursor's screen position (Dylan Thacker-Smith)

fixes: #11959
related: #12028
closes: #14096

Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-27 20:25:10 +01:00
dkearns
e84d2d4432 runtime(sh): Update ftplugin, fix #14101 (#14102)
Add the 'b' flag to 'comments', so that the shebang line is not detected as comment.

Fixes #14101.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-27 20:00:32 +01:00
dkearns
b1427b46f5 runtime(vim): Update base-syntax, improve :echo highlighting (#14103)
- Normalise behaviour of :echo commands and improve expression matching.
- Allow continued argument lines.
- Refine string interpolation groups.
- Remove duplicated :menu and :map generated commands that are handled
  specially later in the file.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-27 19:59:30 +01:00
James McCoy
c7ddc9b735 runtime(debian): update Debian syntax files (#14098)
* debversions.vim: Move lunar to unsupported release
* debsources: Add word boundaries around keyword match patterns

Co-authored-by: James Addison <jay@jp-hosting.net>
Signed-off-by: James Addison <jay@jp-hosting.net>
Signed-off-by: James McCoy <jamessan@jamessan.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-27 06:34:45 +00:00
Erik S. V. Jansson
2f02638aa8 patch 9.1.0139: MS-Windows: ligatures map cleared on startup
Problem:  MS-Windows: ligatures map cleared on startup
Solution: Don't clear the ligatures_map, if the guiligatures
          option has already been set (Erik S. V. Jansson)

If guiligatures is set from a .vimrc it's possible
that it will be cleared on start-up (e.g. in Win32
that's what happens).

So don't clear the ligatures map if gui_set_ligatures()
has already been called (e.g. after setting 'ligatures'
from .vimrc)

closes: #14094

Signed-off-by: Erik S. V. Jansson <caffeineviking@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-26 22:23:05 +01:00
John Marriott
02d7a6c6cf patch 9.1.0138: too many STRLEN calls when getting a memline
Problem:  too many STRLEN calls when getting a memline
Solution: Optimize calls to STRLEN(), add a few functions in memline.c
          that return the byte length instead of relying on STRLEN()
          (John Marriott)

closes: #14052

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-26 21:25:03 +01:00
dkearns
2c51e15b66 runtime(vim): Update syntax file, improve :substitute matching (#14093)
- Differentiate between :substitute and substitute(), fixes #13883.
- Match all allowed :substitute delimiters.
- Remove leading context from :substitute matches.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-26 21:10:18 +01:00
zeertzjq
ff2b79d239 patch 9.1.0137: <Del> in cmdline mode doesn't delete composing chars
Problem:  <Del> in cmdline mode doesn't delete composing chars
Solution: Use mb_head_off() and mb_ptr2len() (zeertzjq)

closes: #14095

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-26 20:38:36 +01:00
Doug Kearns
db7622ea82 runtime(doc): Fix typo in usr_41.txt
closes: #14092

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-25 15:23:02 +01:00
zeertzjq
d086b8f646 runtime(doc): fix inconsistent indent (#14089)
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-25 08:42:52 +01:00
Yegappan Lakshmanan
a2ebb6e917 patch 9.1.0136: Vim9: need more test for exists()
methods

Problem:  Vim9: need more test for exists()
Solution: Add test for exists() with class/objct variables and methods
          (Yegappan Lakshmanan)

closes: #14088

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-25 08:40:10 +01:00
Matt Ellis
374e26aba2 runtime(doc): clarify ':set[l] {option}<' behaviour
closes: #14062

Signed-off-by: Matt Ellis <m.t.ellis@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 17:04:07 +01:00
zeertzjq
cd3a13e774 patch 9.1.0135: Insufficient testing for 'delcombine'
Problem:  Insufficient testing for 'delcombine'.
Solution: Add test for both Normal and Insert modes without Arabic.
          (zeertzjq)

closes: #14086

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 16:51:32 +01:00
Christian Brabandt
6a46c19b25 patch 9.1.0134: CI: Test_term_gettitle() is flaky on MacOS 14
Problem:  Test_term_gettitle() is flaky on MacOS 14 and Github runners
Solution: Skip the test on Github CI

closes: #14085

It fails with this: '^\\[No Name\\] - VIM\\d*$' does not match 'e] - VIM'
It is not clear why term_gettitle() only get's the last part of the
expected title (perhaps there is a Carriage return in there or the
terminal window is too small?)

So let's just skip this test for now.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 15:58:04 +01:00
Erik S. V. Jansson
8b1e749ca6 patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Problem:  font ligatures don't render correctly in the Win32 GUI-version
          of gvim even when set rop=type:directx is used. Setting
          guiligatures also doesn't make any difference. This leads to
          broken font ligatures when the cursor passes through them. It
          does not recover from this, and they remain broken until you
          re-render the whole buffer (e.g. by using Ctrl+L).

Solution: the problem is that we only re-draw the current and previous
          character in gui_undraw_cursor() and only have the special case
          for GTK when it comes to rendering ligatures. So let's enable
          gui_adjust_undraw_cursor_for_ligatures() to also happen for
          Win32 GUI if guiligatures is setup correctly (all this does is
          expand the range of gui_undraw_cursor() with ligature characters).

related: #9181
related: #12901
closes: #14084

Signed-off-by: Erik S. V. Jansson <caffeineviking@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 14:26:52 +01:00
zeertzjq
048761bcd4 patch 9.1.0132: "C" doesn't include composing chars with 'virtualedit'
Problem:  using "C" and 've=all' set, doesn't include composing chars
          when changing a line, keeps the composing chars for whatever
          is typed afterwards.
Solution: Use mb_head_off() and mb_ptr2len() instead of mb_tail_off().
          (zeertzjq)

closes: #14083

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 14:21:39 +01:00
Christian Brabandt
0dc0bff000 patch 9.1.0131: buffer-completion may not always find all matches
Problem:  buffer-completion code too complicated and does not always
          find all matches (irisjae)
Solution: do not try to anchor pattern to beginning of line or
          directory-separator, always return all matches

Note: we are considering the non-fuzzy buffer-matching here.

Currently, the buffer-completion code makes 2 attempts to match a
pattern against the list of available patterns. First try is to match
the pattern and anchor it to either the beginning of the file name or
at a directory-separator (// or \\).

When a match is found, Vim returns the matching buffers and does not try
to find a match anywhere within a buffer name. So if you have opened two
buffers like /tmp/Foobar.c and /tmp/MyFoobar.c using `:b Foo` will only
complete to the first filename, but not the second (the same happens
with `getcompletion('Foo', 'buffer')`).

It may make sense, that completion priorities buffer names at directory
boundaries, but it inconsistent, may cause confusion why a certain
buffer name is not completed when typing `:b Foo<C-D>` which returns
only a single file name and then pressing Enter (to switch to that
buffer), Vim will error with 'E93: More than one match for Foo').
Similar things may happen when wiping the /tmp/Foobar.c pattern and
afterwards the completion starts completing other buffers.

So let's simplify the code and always match the pattern anywhere in the
buffer name, do not try to favor matches at directory boundaries. This
is also simplifies the code a bit, we do not need to run over the list
of buffers several times, but only twice.

fixes #13894
closes: #14082

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 14:17:33 +01:00
Sean Dewar
abf7030a5c patch 9.1.0130: [security]: UAF if win_split_ins autocommands delete "wp"
Problem:  heap-use-after-free in win_splitmove if Enter/Leave
          autocommands from win_split_ins immediately closes "wp".
Solution: check that "wp" is valid after win_split_ins.
          (Sean Dewar)

closes: #14078

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 10:20:24 +01:00
Dylan Thacker-Smith
f548ae7b63 patch 9.1.0129: Fix truncation of text_wrap 'wrap' virt text after EOL list char
Problem:  Virtual text with text_wrap 'wrap' was effectively being
          truncated by a break conditional on the EOL list character
          being added to the screen line. (BigPeet)
Solution: Remove the condition that was leading to the early break and
          instead fix a similar but incorrectly written outer condition
          that checks if there is more to add at the end of the screen
          line. (Dylan Thacker-Smith)

Also, related:
- update comment in win_line()
- remove no longer necessary at_end_str variable in win_line()

fixes: #12725
closes: #14079

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 10:17:11 +01:00
Yegappan Lakshmanan
a35235e824 runtime(doc) Update help text for matchbufline() and matchstrlist()
closes: #14080

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 10:09:43 +01:00
dragonish
aa31346da4 runtime(tutor): small fixes to the zh tutor (#14081)
dragonish <no.web.developer@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-24 10:08:19 +01:00
Petr Pisar
315cd1fbcb runtime(spec): Recognize SourceLicense tag name in RPM spec syntax (#14046)
rpm-4.19.0 added a new SourceLicense tag. It is used at the same place
as License tag.

This patch adds the new tag name into a Vim syntax file to be
highligted the same way as the License tag. Note that it has to be
defined in the syntax file before Source\d* regexp. Otherwise it's not
recognized by Vim.

Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-22 20:39:09 +01:00
Sean Dewar
2a65e73944 patch 9.1.0128: win_gotoid() may abort even when not switching a window
Problem:  win_gotoid() checks for textlock and other things when switching
          to a window that is already current (after v9.1.0119)
Solution: return early with success when attempting to switch to curwin
          (Sean Dewar)

Other potential causes of E565 from win_gotoid after v9.1.0119 should be
correct. Plugins can consider using win_execute() instead if they wish to
temporarily switch windows during textlock.

fixes: #14073
closes: #14074

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-22 19:53:33 +01:00
zeertzjq
5e3674b42d patch 9.1.0127: Naming a non-pointer variable "oap" is strange
Problem:  Naming a non-pointer variable "oap" is strange.
Solution: Rename it to "oa". Also prevent using freed memory in case of
          memory allocation failure. (zeertzjq)

closes: #14075

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-22 19:51:34 +01:00
zeertzjq
421b597470 patch 9.1.0126: Internal error when using upper-case mark in getregion()
Problem:  Internal error when passing mark in another buffer to
          getregion().
Solution: Don't allow marks in another buffer (zeertzjq)

closes: #14076

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Internal error when passing mark in another buffer to getregion()
2024-02-22 19:48:06 +01:00
dkearns
1624970d32 runtime(vim): Update base-syntax, fix :unabbrev highlighting (#14077)
Fixes issue #7876

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-22 19:45:05 +01:00
Nick Hanley
20d61e1b94 runtime(java): add syntax support for Java switch expressions (#9124)
Signed-off-by: Nick Hanley <nicholasjhanley@gmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-22 15:06:19 +01:00
Dylan Thacker-Smith
83925be1e6 patch 9.1.0125: unused init of text_prop_idxs in win_line()
Problem:  unused init of text_prop_idxs in win_line
Solution: Remove it, fix typo
          (Dylan Thacker-Smith)

Later use of text_prop_idxs treats it as empty, incrementing
text_props_active as new elements are added to this array, so remove
this unused conditional initialization when text_props_active is 0.

closes: #14063

Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 21:03:10 +01:00
Dylan Thacker-Smith
8055721c2d patch 9.1.0124: display of below/right virtual text with non-virtual text overlap
Problem:  Virtual text with text_align 'right'/'below' wasn't being
          used when a non-virtual text property overlaps with the end of
          the line. This was because the non-virtual text property had a
          higher priority, preventing the virtual text from being used.
Solution: Fix the sorting of text properties so virtual text properties
          have a higher priority than non-virtual text properties.
          (Dylan Thacker-Smith)

related: #14063

Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 21:00:59 +01:00
Christian Brabandt
ec9c32637f runtime(doc): clarify expand() for :terminal windows
While adding to the documentation, also mention the rolled-back key-translation
strategy in version9.txt

closes: #14069

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 20:42:16 +01:00
GuyBrush
52ecc76c7f patch 9.1.0123: MS-Windows: system() may deadlock
Problem:  MS-Windows: system() may deadlock when calling binaries that
          expect stdin
Solution: Ignore the SHELL_EXPAND flag
          (GuyBrush)

This happens on binaries that expect stdin. For example:

:echo system("xxd")

will cause a deadlock.

SHELL_EXPAND is a flag devoted to support the linux implementation of
the backtick-expansion mechanism.

On linux backtic-expansion relies in the function mch_expand_wildchars()
(os_unix.c) that delegates on each specific shell (bash, sh, csh, zsh)
the expansion. Basically it composes a shell command that does the
expansion and redirects the output to a file and call_shell() it. On
windows backtick-expansion is performed by Vim itself.

On linux SHELL_EXPAND modifies how mch_call_shell_fork() (os_unix.c)
works. This function:

- relies on posix fork() to spawn a child process to execute a
  external command.
- Child and parent process communicate using pipes (or pseudoterminal
  if available).
  User input (type ahead content) is processed in a loop only if
  !(SHELL_EXPAND || SHELL_COOKED).
  Though signals are used to detect Ctrl-C in all cases (the input
  loop is not necessary to interrupt the function).
  In the backtick-expansion the external command is the shell command
  that provides the expansion. For the child redirection:
  -  SHELL_EXPAND replaces stdin, stdout & stderr to /dev/null. This is
     why the shell command composed includes redirection (otherwise
     output would be lost).

  -  !SHELL_EXPAND replaces stdin, stdout & stderr with the parent
     created pipes (or pseudoterminal).
     Note that the use of SIGINT signal prevents mch_call_shell_fork()
     from hanging vim.

On Windows mch_system_piped() (os_win32.c) (which is only used when the
GUI is running) mimics mch_call_shell_fork() (os_unix.c).
Win32 lacks fork() and relies on CreateProcessW() and only has pipe
support (not pseudoterminal) which makes the implementation much
different.

But, the key idea is that windows lacks signals, the OS provides support
for console apps but gvim is not one. The only way of detecting a Ctrl-C
is actually processing user input (type ahead content). By ignoring the
user input under SHELL_EXPAND the function can hang gvim.

Ignoring SHELL_EXPAND flag has no consequence in Windows because as
mentioned above it is only meaningful in linux.

closes: #13988

Signed-off-by: GuyBrush <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 20:16:38 +01:00
Maxim Kim
9ca335aad2 patch 9.1.0122: Some minor issues with the getregion() function
Problem:  Some minor issues with the getregion() function
Solution: Fix examples in the help, use OP_NOP op_type and MBLOCK
          as motion_type in f_getreg(), update vim syntax to
          for getregion() (Maxim Kim)

```
:xnoremap <CR>
\ <Cmd>echow getregion('v', '.', mode())<CR>
```
`echo` while in visual mode has no visible effect, thus people trying
example might be frustrated as it looks like nothing happens.

So the option is to change it to `echow` or `echom`.
With `echom` it is again has no visible effect but one can at least inspect `:messages`.
On the other hand `echow` showes selected text in a popup window.

```
Can also be used as a |method|: >
'.'->getregion("'a', 'v')
```

Here is the typo, which makes example invalid, should be `("'a", ...`

closes: #14064

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 19:53:02 +01:00
Eric Pruitt
e8f6af6091 runtime(tmux): Update tmux syntax (#14065)
Signed-off-by: Eric Pruitt <eric.pruitt@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 19:46:47 +01:00
Sean Dewar
02fcae02a9 patch 9.1.0121: Infinite loop or signed overflow with 'smoothscroll'
Problem:  infinite loop in win_update with 'smoothscroll' set when
          window width is equal to textoff, or signed integer overflow
          if smaller.
Solution: don't revalidate wp->w_skipcol in that case, as no buffer text
          is being shown. (Sean Dewar)

Don't instead reset w_skipcol; that would lose the scroll position
within the line, which may be undesirable if the window is made wider
later.

Also include changes from the splitmove PR #14042 that I (in my infinite
Git wisdom) forgot to commit. This includes a change to
Test_window_split_no_room to ensure it doesn't fail for some screen
sizes.

Move Test_smoothscroll_in_zero_width_window to test_scroll_opt.vim, as
that file feels more appropriate.

closes: #14068

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 19:40:44 +01:00
Shougo Matsushita
3f905ab3c4 patch 9.1.0120: hard to get visual region using Vim script
Problem:  hard to get visual region using Vim script
Solution: Add getregion() Vim script function
          (Shougo Matsushita, Jakub Łuczyński)

closes: #13998
closes: #11579

Co-authored-by: =?UTF-8?q?Jakub=20=C5=81uczy=C5=84ski?= <doubleloop@o2.pl>
Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-21 00:02:45 +01:00
Sean Dewar
f865895c87 patch 9.1.0119: can move away from cmdwin using win_splitmove()
Problem:  can switch windows while textlocked via f_win_gotoid and
          f_win_splitmove (which also allows switching in the cmdwin).
Solution: Check text_or_buf_locked in f_win_splitmove()
          (Sean Dewar)

While at it, call text_or_buf_locked() in f_win_gotoid() instead of
testing for cmdwin_type() (which text_buf_locked() does and
in addition will also verify that the buffer is not locked).

closes: #14042

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-20 22:05:10 +01:00
Sean Dewar
704966c254 patch 9.1.0118: Use different restoration strategy in win_splitmove
Problem:  saving and restoring all frames to split-move is overkill now
          that WinNewPre is not fired when split-moving.
Solution: defer the flattening of frames until win_split_ins begins
          reorganising them, and attempt to restore the layout by
          undoing our changes. (Sean Dewar)

This also means we no longer must allocate.

related: #14042

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-20 22:00:33 +01:00
Sean Dewar
96cc4aef3d patch 9.1.0117: Stop split-moving from firing WinNew and WinNewPre autocommands
Problem:  win_splitmove fires WinNewPre and possibly WinNew when moving
          windows, even though no new windows are created.
Solution: don't fire WinNew and WinNewPre when inserting an existing
          window, even if it isn't the current window. Improve the
          accuracy of related documentation. (Sean Dewar)

Likewise, before this patch, WinClosed was not fired anyway (even for :wincmd
H/J/K/L, which also didn't fire WinNew, but did still fire WinNewPre), despite
documentation saying windows are "closed". Note that :wincmd T actually indeed
works by creating a new window (and closing the old one), unlike the others.

This also fixes issues where WinNewPre is fired when split-moving while curwin
doesn't yet have a frame or entry in the window list, causing many things to not
work (it's not considered valid at that point). This was guaranteed when using
:wincmd H/J/K/L.

Because WinNewPre is no longer fired when split-moving, this makes restoring the
previous window layout on failure easier, as we can be sure that frames are not
resized from WinNewPre autocommands if win_split_ins fails. This allows us to
use a different strategy in the following commit.

--

In my opinion, this leaves questions about the current usefulness of WinNewPre.
A motivation described in #10635 states how creating a new window can steal room
from other windows, and how WinNewPre will be useful for detecting that, but
this is also true when inserting an existing window, which now doesn't fire it.
Maybe the autocommand should be changed to have a better name?

There are also other issues I found with the current implementation of WinNewPre
that need addressing:

- it allows switching windows and tabpages, which can cause incorrect windows to
  be split/moved, and big problems when switching tabpages.

- it fires before win_split_ins checks for room, before it makes any changes to
  window sizes or before it considers allocating a new window. This should be
  changed or documented.

I hope to address some of this stuff in a different PR, if possible.

related: #14038

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-20 21:52:31 +01:00
Sean Dewar
0fd44a5ad8 patch 9.1.0116: win_split_ins may not check available room
Problem:  win_split_ins has no check for E36 when moving an existing
          window
Solution: check for room and fix the issues in f_win_splitmove()
          (Sean Dewar)

win_split_ins has no check for E36 when moving an existing window,
allowing for layouts with many overlapping zero-sized windows to be
created (which may also cause drawing issues with tablines and such).
f_win_splitmove also has some bugs.

So check for room and fix the issues in f_win_splitmove. Handle failure
in the two relevant win_split_ins callers by restoring the original
layout, and factor the common logic into win_splitmove.

Don't check for room when opening an autocommand window, as it's a
temporary window that's rarely interacted with or drawn anyhow, and is
rather important for some autocommands.

Issues fixed in f_win_splitmove:
- Error if splitting is disallowed.
- Fix heap-use-after-frees if autocommands fired from switching to "targetwin"
  close "wp" or "oldwin".
- Fix splitting the wrong window if autocommands fired from switching to
  "targetwin" switch to a different window.
- Ensure -1 is returned for all errors.

Also handle allocation failure a bit earlier in make_snapshot (callers,
except win_splitmove, don't really care if a snapshot can't be made, so
just ignore the return value).

Note: Test_smoothscroll_in_zero_width_window failed after these changes with
E36, as it was using the previous behaviour to create a zero-width window.
I've fixed the test such that it fails with UBSAN as expected when v9.0.1367 is
reverted (and simplified it too).

related: #14042

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-20 20:35:41 +01:00
Yegappan Lakshmanan
15935e7f54 runtime(doc): Add a place holder section for version 9.2 (#14060)
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-20 19:48:22 +01:00
dkearns
ef387c062b runtime(filetype): Modula-2 files with priority not detected (#14055)
Problem:  Modula-2 files with a specified priority are not detected.
Solution: Match the priority syntax in module header lines when
          performing heuristic content detection.

Disable the :defcompile debug line.  This was accidentally left enabled
in commit 68a8947.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-19 20:58:30 +01:00
Linda_pp
72a1f45e93 CI: install gnudiff and enable Test_diffmode on macos-14 runner again (#14056)
Signed-off-by: rhysd <lin90162@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-19 20:55:55 +01:00
Christian Brabandt
f9ca139e3a runtime(misc): announce adoption of various runtime files
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-19 20:46:49 +01:00
Aliaksei Budavei
dfcef890cb runtime(vim): Distinguish Vim9 constructor definitions from the :new ex command (#14050)
With the arrival of Vim9 classes, the syntax must allow for
_new_ constructors; multiple constructor definitions are
supported for a class, provided distinct suffix-names are
used.  Currently, the defined constructors match either
vimCommand or vimFunctionError (for any newBar).

For example:
------------------------------------------------------------
vim9script

class Foo
    def new()
    enddef

    def newBar()
    enddef
endclass
------------------------------------------------------------

Since every constructor is required to bear a lower-cased
_new_ prefix name, it should suffice to distinguish them
from functions, and so there are no new highlight or syntax
groups introduced.


Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: h-east <h.east.727@gmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-18 19:02:14 +01:00
zeertzjq
c86bff1771 patch 9.1.0115: Using freed memory with full tag stack and user data
Problem:  Using freed memory with full tag stack and user data
          (Konstantin Khlebnikov)
Solution: Clear the user data pointer of the newest entry.
          (zeertzjq, Konstantin Khlebnikov)

fixes: neovim/neovim#27498
closes: #14053

Co-authored-by: Konstantin Khlebnikov koct9i@gmail.com
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Konstantin Khlebnikov koct9i@gmail.com
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-18 18:57:07 +01:00
h_east
026b17404a runtime(doc): Fix typo in testing.txt (#14054)
Signed-off-by: h-east <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-18 18:51:46 +01:00
zeertzjq
fcaed6a70f patch 9.1.0114: Setting some options may change curswant
Problem:  Setting some options changes curswant unnecessarily.
Solution: Add a P_HLONLY flag that prevents changing curswant.
          (zeertzjq)

closes: #14044

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-18 09:33:54 +01:00
Christian Brabandt
79230f027a runtime(less): update "Last Change:" header
Commit 103f1dfb7d forgot to update the
"Last Change:" header. So update it now.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-15 22:15:58 +01:00
Christian Brabandt
103f1dfb7d runtime(less): reset readonly setting when disabling less mode
While at it, also do the unmap only if a specific key has been mapped.
There are some keys that are only selectively mapped and it would cause
an error if we are trying to unmap such a key (e.g. z when your
foldmethod is not manual).

fixes: #14040

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-15 21:44:05 +01:00
Christian Brabandt
9071ed8107 patch 9.1.0113: duplicate code when cleaning undo stack
Problem:  duplicate code when cleaning undo stack
Solution: refactor undo cleanup into a single public function

related: #13928

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-15 20:17:37 +01:00
Christian Brabandt
f0d3d4a426 patch 9.1.0112: Remove undo information, when cleaning quickfix buffer
Problem:  When the quickfix buffer has been modified an autocommand
          may invalidate the undo stack (kawarimidoll)
Solution: When clearing the quickfix buffer, also wipe the undo stack

fixes: #13905
closes: #13928

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-15 20:15:04 +01:00
Brandon Maier
d00fb4b3a2 patch 9.1.0111: filetype: no support for bats files
The '*.bats' file type is for Bash Automated Testing System (BATS)
scripts. BATS scripts are Bash with a special '@test' extension but they
otherwise work with Vim's bash filetype.

See https://github.com/bats-core/bats-core

closes: #14039

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-15 00:17:05 +01:00
Brandon Maier
5f20f050ef patch 9.1.0110: filetype: add 'Config.in' filetype detection
The 'Config.in' file type is for Buildroot configuration files.
Buildroot Config.in files use the same Kconfig backend as the Linux
kernel's Kconfig files.

Buildroot also has other filename variants that follow "Config.in.*",
they are used to distinguish multiple Config.in files in the same
directory.

See https://buildroot.org/downloads/manual/manual.html#_literal_config_in_literal_file

closes: #14038

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 22:30:06 +01:00
Luca Saccarola
1da0e85816 runtime(asciidoc): include basic ftplugin
closes: #13873

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 22:26:43 +01:00
Brandon Maier
cf1d65e060 patch 9.1.0109: filetype: no support for its files
Problem:  filetype: no support for its files
Solution: Add detection for *.its files as dts file type
          (Brandon Maier)

The '*.its' file type is for U-Boot Flattened Image Trees (FIT) which
use the flattened devicetree format.

See https://github.com/u-boot/u-boot/blob/master/doc/usage/fit/source_file_format.rst#terminology

closes: #14037

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 21:33:40 +01:00
Doug Kearns
1633de8c35 runtime(vim): Update base-syntax, remove unused vimString region
These were included with the initial release of the syntax file for Vim
5 and were probably intended to allow for syn-region start/skip/end
patterns with a '!' or '+' delimiter.  However, these cases are
currently handled by the vimSynRegPat group.

The removed patterns never match anywhere in the distributed runtime
files and it is believed that this is generally true.

closes: #14035

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 21:28:44 +01:00
Doug Kearns
fe6d5b0ae4 runtime(vim): Update base-syntax, fix :behave highlighting
closes: #14036

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 21:17:43 +01:00
h-east
5c3855bcab runtime(vim): update Vim Syntax generator
- Add missing "Last Change:" line.
- The date on this line in vim.vim is updated by update_date.vim at
  Make time. (I made a mistake in the file path)
- Remove unnecessary "b:loaded_syntax_vim_ex".
- Remove "Base File Date:" line in vim.vim.base
- Add Doug Kearns as Maintainer

closes: #14031

Signed-off-by: h-east <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 21:00:01 +01:00
Markus Schneider-Pargmann
b1700fb33f patch 9.1.0108: filetype: no support for dtso files
Problem:  filetype: no support for dtso files
Solution: Add detection for *.dtso files as dts file type
          (Markus Schneider-Pargmann)

*.dtso files are devicetree overlay files which have the same syntax as dts or dtsi files.

closes: #14026

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 20:44:28 +01:00
Yee Cheng Chin
49f2ba6d41 patch 9.1.0107: CI: Fix MacOS-14 tests
Problem:  CI: Fix MacOS-14 tests (after 9.1.0070)
Solution: Re-enable sound tests by granting Mic access,
          disable Test_diff_screen because of buggy MacOS diff
          (non GNU version), re-enable Test_term_gettitle()
          (Yee Cheng Chin)

macos-14 runner was turned on in #13943, but it had to turn off a few
tests in order for CI to run. Re-enable them and fix the underlying
issues.

* `Test_diff_screen`: The test failure is due to a bug in Apple's diff
  utility. Apple introduced a new diff tool based on FreeBSD in macOS 13
  and it has buggy behaviors when using unified diff (`-U0`) and the
  diff is on the first line of the file. Simply disable this test for
  now if we detect Apple diff (instead of the old GNU diff). Can
  re-enable this in the future if Apple fixes the issue.
* `Test_play_event` / `Test_play_silent`: GitHub Actions currently has
  an issue with playing sound in CI in macos-14 runners. It for some
  reason triggers a microphone permission dialog popup which blocks the
  CI action (see https://github.com/actions/runner-images/issues/9330).
  To fix this, add a temporary step in macos-14 to manually allow
  microphone permissions in the runner.
* `Test_term_gettitle`: I could not reproduce the failure, so I just
  turned it on and it seems to run just fine. Maybe it's a timing issue
  and whatnot but either way that should be fixed when we can reproduce
  the issue.

closes: #14032

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 20:34:58 +01:00
Maxim Kim
34e4a05d02 patch 9.1.0106: Visual highlight hard to read with 'termguicolors'
Problem:  Visual highlight hard to read with 'termguicolors'
          (Maxim Kim)
Solution: Set Visual GUI foreground to black (with background=light)
          and lightgrey (with background=dark)
          (Maxim Kim)

fixes: #14024
closes: #14025

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-14 20:28:17 +01:00
h-east
9b53c052d5 runtime(vim): include Vim Syntax generator
fixes: #13939
closes: #14021
related: vim-jp/syntax-vim-ex#28

Signed-off-by: h-east <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-13 21:11:22 +01:00
zeertzjq
e71022082d patch 9.1.0105: Style: typos found
Problem:  Style: typos found
Solution: correct them
          (zeertzjq)

closes: #14023

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-13 20:32:04 +01:00
Christian Brabandt
2f9aef42af patch 9.1.0104: Linking fails with -lto because of PERL_CFLAGS
Problem:  Linking fails with -lto because of PERL_CFLAGS
          (Zoltan Toth)
Solution: Filter out -flto argument from Perl CFLAGS.

fixes: #14012

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-12 23:14:19 +01:00
zeertzjq
f0a9d65e0a patch 9.1.0103: 'breakindentopt' "min" not correct with 'signcolumn'
Problem:  'breakindentopt' "min" works incorrectly with 'signcolumn'.
Solution: Use win_col_off() and win_col_off2().
          (zeertzjq)

closes: #14014

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-12 22:53:20 +01:00
zeertzjq
b47fbb4083 patch 9.1.0102: settabvar() may change the last accessed tabpage
Problem:  settabvar() may change the last accessed tabpage.
Solution: Save and restore lastused_tabpage.
          (zeertzjq)

closes: #14017

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-12 22:50:26 +01:00
glepnir
bd1232a1fa patch 9.1.0101: upper-case of German sharp s should be U+1E9E
Problem:  upper-case of ß should be U+1E9E (CAPITAL LETTER SHARP S)
          (fenuks)
Solution: Make gU, ~ and g~ convert the U+00DF LATIN SMALL LETTER SHARP S (ß)
          to U+1E9E LATIN CAPITAL LETTER SHARP S (ẞ), update tests
          (glepnir)

This is part of Unicode 5.1.0 from April 2008, so should be fairly safe
to use now and since 2017 is part of the German standard orthography,
according to Wikipedia:
https://en.wikipedia.org/wiki/Capital_%E1%BA%9E#cite_note-auto-12

There is however one exception: UnicodeData.txt for U+00DF
LATIN SMALL LETTER SHARP S does NOT define U+1E9E LATIN CAPITAL LETTER
SHARP S as its upper case version. Therefore, toupper() won't be able
to convert from lower sharp s to upper case sharp s (the other way
around however works, since U+00DF is considered the lower case
character of U+1E9E and therefore tolower() works correctly for the
upper case version).

fixes: #5573
closes: #14018

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-12 22:39:40 +01:00
zeertzjq
f2d90a3511 patch 9.1.0100: Redrawing can be improved with undo and 'spell'
Problem:  When undoing with 'spell', redrawWinline() is called after
          changed_lines(), while later win_update() sets redraw type to
          UPD_NOT_VALID, even though w_redraw_top and w_redraw_bot are
          still valid.
Solution: Only set redraw type to UPD_NOT_VALID when inserting/deleting
          lines after parts of window has pending redraw, i.e., when
          changed_lines() is called after redrawWinline().
          (zeertzjq)

closes: #14019

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-12 20:28:01 +01:00
Yegappan Lakshmanan
a0010a186d patch 9.1.0099: Not able to use diff() with 'diffexpr'
Problem:  Not able to use diff() with 'diffexpr'
          (rickhowe, after v9.1.0096)
Solution: Use a default context length of 0, update diff() help text,
          add a test for using diff() with 'diffexpr'
          (Yegappan Lakshmanan)

closes: #14013

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-12 20:24:56 +01:00
Christian Brabandt
6d91227267 runtime(gpg): Mark dangerous use-embedded-filename with WarningMsg
The syntax highlighter is likely to encourage people to use the listed
commands.

But `use-embedded-filename` is a dangerous option that can cause GnuPG
to write arbitrary data to arbitrary files whenever GnuPG encounters
malicious data.

GnuPG upstream explicitly warns against using this option:

https://dev.gnupg.org/T4500
https://dev.gnupg.org/T6972

However, since this is a valid option, we cannot just drop it from the
syntax script. Instead, let's mark it with the WarningMsg highlighting
to make it obvious, that this option is different (and should not be
used for security reasons).

closes: #13961

Co-authored-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Signed-off-by:  Christian Brabandt <cb@256bit.org>
2024-02-11 18:19:45 +01:00
glepnir
0d3c0a66a3 patch 9.1.0098: CompletionChanged not triggered when new leader added without matches
Problem:  CompletionChanged not triggered when new leader added causing
          no matching item in the completion menu
Solution: When completion is active but no items matched still trigger
          CompletChanged event
          (glepnir)

closes: #13982

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-11 17:52:40 +01:00
zeertzjq
efabd7c8d4 patch 9.1.0097: 'breakindent' behaves inconsistently with 'list' and splits
Problem:  'breakindent' behaves inconsistently with 'list' and splits.
Solution: Use 'listchars' from the correct window and handle caching
          properly. Move cheaper comparisons to the top.
          (zeertzjq)

closes: #14008

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-11 17:16:19 +01:00
dkearns
b614b284ee runtime(vim): Update syntax file (#14009)
- allow comments after :highight commands
- match the bang in a :highlight[!] command
- highlight the bang in :map[!], :menu[!] and :unlet[!] with vimOper
  like all other commands

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-11 17:13:34 +01:00
Yegappan Lakshmanan
be156a31c5 patch 9.1.0096: diff() function uses 'diffexpr'
Problem:  diff() function uses 'diffexpr'
          (rickhowe)
Solution: Make diff() always use internal diff(), add support for
          unified diff context length, sort diff() options in help
          (Yegappan Lakshmanan)

fixes: #13989
closes: #14010

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-11 17:08:29 +01:00
Christian Brabandt
52eb0b8677 patch 9.1.0095: tests: test_restricted() fails
Problem:  tests: test_restricted() fails
          (after: v9.1.0091)
Solution: Add a space before the pipecmd and the actual Vim command to
          run

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-10 13:50:54 +01:00
Goffredo Baroncelli
0022148773 patch 9.1.0094: xxd: buffer-overflow when writing color output
Problem:  xxd: buffer-overflow when writing color output
Solution: properly account for the color escape sequences and
          adjust LLEN macro
          (Goffredo Baroncelli)

xxd: crash with higer number of column

xxd writes the data into a buffer before printing. Unfortunately
the buffer doesn't consider the space consumed by the escape
sequences used to change the color of the character.

BEFORE:
$ xxd -Ralways -c 256 /etc/passwd
Segmentation fault (core dumped)

AFTER:
$ ./xxd -Ralways -c 256 /etc/passwd
00000000: 726f 6f74 3a78 3a30 3a30 3a72 6f6f 743a 2f72 [...]

To solve this issue I had to increase the size of the buffer
considering for each byte of data 11 further characters for the
color escape sequence.

closes: #14003

Signed-off-by: Goffredo Baroncelli <kreijack@libero.it>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-10 13:31:06 +01:00
zeertzjq
77078276bf patch 9.1.0093: Still a qsort() comparison function that returns result of subtraction
Problem:  Still a qsort() comparison function fuzzy_match_item_compare()
          that returns result of subtraction (after 9.1.0089).
Solution: Use an explicit comparison instead of subtraction.
          (zeertzjq)

closes: #14004

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-10 13:24:03 +01:00
Christian Brabandt
c908371aec patch 9.1.0092: Compiler warning for missing type in scroll_event()
Problem:  Compiler warning for missing type in scroll_event()
          (chdiza)
Solution: Declare display_type explicitly as integer

fixes: #14005

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-10 13:17:16 +01:00
Christian Brabandt
627c950e5b patch 9.1.0091: Syntax test fails when run with non C locale
Problem:  Syntax test fails when run with non C locale
Solution: Run syntax tests with C locale, clean up Xtestscript file,
          strip environment variables from GetVimCommand()
          (h-east)

closes: #14007

Co-authored-by: h-east <h.east.727@gmail.com>
Signed-off-by: h-east <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-10 13:02:17 +01:00
Maxim Kim
45932c5c4a patch 9.1.0090: Assigning wrong colors when parsing terminal OSC response
Problem:  Assigning wrong colors when parsing terminal OSC response
Solution: Correctly assign Green and Blue from the terminal response
          (Maxim Kim)

closes: #13981

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 23:11:54 +01:00
Andrew Radev
415a5a951b runtime(vim): Fix indent after line with literal dict
closes: #13966

Signed-off-by: Andrew Radev <andrey.radev@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 19:46:59 +01:00
Christian Brabandt
e06e437665 patch 9.1.0089: qsort() comparison functions should be transitive
Problem:  qsort() comparison functions should be transitive
Solution: Do not subtract values, but rather use explicit comparisons

Improve qsort() comparison functions

There has been a recent report on qsort() causing out-of-bounds read &
write in glibc for non transitive comparison functions
https://www.qualys.com/2024/01/30/qsort.txt

Even so the bug is in glibc's implementation of the qsort() algorithm,
it's bad style to just use substraction for the comparison functions,
which may cause overflow issues and as hinted at in OpenBSD's manual
page for qsort(): "It is almost always an error to use subtraction to
compute the return value of the comparison function."

So check the qsort() comparison functions and change them to be safe.

closes: #13980

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 19:39:14 +01:00
Christian Brabandt
c9e79e5284 patch 9.1.0088: TextChanged not triggered for :norm! commands
Problem:  TextChanged not triggered for :norm! commands
          (machakann, after v9.0.2031)
Solution: Only reset curbuf->b_last_changedtick if TextChangedI
          was triggered in insert mode (and not blocked)

Note: for unknown reasons, the test fails on Windows (but seems to work
fine when running interactively)

fixes: #13967
closes: #13984

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 19:34:36 +01:00
glepnir
2975a54f28 patch 9.1.0087: Restoring lastused_tabpage too early in do_arg_all()
Problem:  Restore lastused_tabpage too early in do_arg_all() function it
          will change later in the function.
Solution: Restore lastused_tabpage a bit later, when being done with
          tabpages (glepnir)

closes: #13992

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 19:30:26 +01:00
lilydjwg
725c7c31a4 patch 9.1.0086: Problem when scrolling using slow touchpads scroll event
Problem:  Problem when scrolling using slow touchpads scroll event
Solution: better ways to determine if a smooth scroll has ended (when
          available) (lilydjwg)

related: #13997

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 19:24:23 +01:00
lilydjwg
c4d4a1e041 patch 9.1.0085: X11 scroll size changes after accessing clipboard
Problem:  X11 scroll size changes after accessing clipboard
          (Ernie Rael)
Solution: use GDK_SCROLL_MASK for X11 and GDK_SMOOTH_SCROLL_MASK for
          Wayland (lilydjwg)

because GDK_SCROLL_SMOOTH events don't work well for x11 (see comments).

fixes #13994
closes: #13997

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 19:13:12 +01:00
K.Takata
bd2f45a6e5 CI: Add Codecov token (#13999)
codecov-action@4 requires a token.
Add it to the repository secrets.

See: https://github.com/vim/vim/pull/13978#issuecomment-1935336624

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 18:18:11 +01:00
zeertzjq
df23d7f4bd patch 9.1.0084: Visual hl wrong when it ends before multibyte 'showbreak'
Problem:  Visual hl wrong when it ends before multibyte 'showbreak'.
          (lacygoil)
Solution: Use vcol_sbr instead of adding n_extra.
          (zeertzjq)

fixes: #11272
closes: #13996

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-09 18:14:12 +01:00
zeertzjq
ae07ebc04b patch 9.1.0083: Redrawing can be improved when deleting lines with 'number'
Problem:  Redrawing can be improved when inserting/deleting lines with 'number'.
Solution: Only redraw the number column of lines below changed lines.
          Add a test as this wasn't previously tested.
          (zeertzjq)

closes: #13985

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-08 11:37:40 +01:00
zeertzjq
7ce34c9a94 patch 9.1.0082: Redrawing can be improved when deleting lines with 'cursorline'
Problem:  Redrawing can be improved when deleting lines with 'cursorline'.
Solution: Use smarter invalidation and adjustment.  Remove unnecessary
          UPD_VALID as it is already set at the top of the loop.  Make
          the test for #4862 fail without the fix.
          (zeertzjq)

closes: #13986

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-08 11:34:55 +01:00
zeertzjq
b8170143c8 runtime(doc): further improve docs about List/Blob += operator
closes: #13990

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-08 11:23:22 +01:00
lilydjwg
1efb1b08a1 patch 9.1.0081: X11 mouse-scrolling stutters
Problem:  X11 mouse-scrolling stutters
          (Ron Aaron, after 9.1.0064)
Solution: Handle GDK_SCROLL_SMOOTH fractional distance events
          (lilydjwg)

I don't know why, but with GDK_SMOOTH_SCROLL_MASK we get wheel events as
GDK_SCROLL_SMOOTH. What's more, one wheel scroll is counted as 1.5
distance in Wayland but 1.0 in X11.

I failed to find any docs on gtk.org about this.

fixes: #13987
closes: #13991

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-08 11:04:21 +01:00
qeatzy
c9c2e2d2ff runtime(doc): Clarify list-concatenation a bit more
Make doc list-concatenation more clear as for += and extend().

1. describe `+=` for list-concatenation more accurately
2. add `extend()` example for list-concatenation
3. Fix CI errors for missing helptags reference |+=|

closes: #13983

Signed-off-by: qeatzy <qeatzy@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-07 17:56:35 +01:00
Yegappan Lakshmanan
1af35631f8 patch 9.1.0080: unexpected error for modifying final list using +=
Problem:  unexpected error for modifying final list using += operator
          (Ernie Rael)
Solution: Allow List value modification of a final variable using +=
          operator
          (Yegappan Lakshmanan)

fixes: #13745
fixes: #13959
closes: #13962

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 11:03:36 +01:00
zeertzjq
ebfd856cfd patch 9.1.0079: LineNrAbove/Below highlighting wrong on wrapped lines
Problem:  LineNrAbove and LineNrBelow background wrong on wrapped lines.
Solution: Update number column also for wrapped part of a line.
          (zeertzjq)

closes: #13974

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 10:59:03 +01:00
Christian Brabandt
f7f33e3719 runtime(dosbatch): improve '::' comment highlighting
Added a syntax region for command blocks so that the highlighting of
`::` comments in them can be controlled.  The `dosbatch_colons_comment`
variable now controls if all `::` comments in a code block are
highlighted as comments or errors.  A `::` comment at the end of a
command block is always highlighted as an error.

This re-enables the highlighting of `::` comments in `.bat` files as
requested in #13666, while allowing control of highlighting them in
command blocks requested in #11778 and first attempted in #11980.

related: #11980
fixes: #13666

Co-authored-by: Mike Williams <mikew@globalgraphics.com>
Signed-off-by: Mike Williams <mikew@globalgraphics.com>
Signed-off-by: mevanlc <mevanlc@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 10:56:26 +01:00
lilydjwg
b1457d4cb9 patch 9.1.0078: GTK3: using wrong style for pre-edit area
Problem:  GTK3: using wrong style for pre-edit area
Solution: remove the widget name, adjust css
          (lilydjwg)

closes: #13972

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 10:49:14 +01:00
Philip H
7f630e6f35 CI: skip apt upgrade on github runners (#13975)
Revert: https://github.com/vim/vim/pull/13680
Fixed in: https://github.com/actions/runner-images/issues/9016

Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 10:47:49 +01:00
dependabot[bot]
ea7f2f29af CI: Bump codecov/codecov-action from 3 to 4 (#13978)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 10:46:10 +01:00
zeertzjq
3f1b5312e0 patch 9.1.0077: Unnecessary call to redraw_for_cursorline() in nv_mousescroll()
Problem:  The call to redraw_for_cursorline() in nv_mousescroll() is
          unnecessary because redraw_for_cursorline() only sets redraw
          type to UPD_VALID, and all code paths in do_mousescroll()
          already set redraw type to at least UPD_VALID.
Solution: Remove call to redraw_for_cursorline() in nv_mousescroll().
          (zeertzjq)

closes: #13979

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-06 10:43:36 +01:00
Christian Brabandt
0f4054feb6 runtime(colors): color names in the v:colornames dict should be lower cased
Vim will lookup color names from the v:colornames dictionary by its
lower case color name. So when sourcing the v:colornames dictionary,
make sure to convert upper case color names to lower case.

Also, while at it, mention in the documentation, that the dictionary
should contain lower case names only.

fixes: #13976
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-05 10:34:26 +01:00
lopy
de7f5bde6c patch 9.1.0076: luau config file not detected
Problem:  luau config file not detected
          (lopy)
Solution: Detect it as jsonc
          (lopy)

fixes: #13960
closes: #13970

Signed-off-by: lopy <70210066+lopi-py@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-04 10:27:33 +01:00
dkearns
7c5aeaffa2 runtime(vim): Update syntax file (#13969)
Improve string interpolation highlighting.

Use the vimSep group to highlight interpolation braces as vimOperParen
has no highlighting of its own and employs vimSep via matchgroup.

Add vimNumber to the interpolation group's contained list.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-03 18:18:31 +01:00
glepnir
cbb46b4398 patch 9.1.0075: insert completion not correct when adding new leader
Problem:  insert completion not correct when adding new leader
Solution: Reset compl_curr_match to compl_shown_match
          (glepnir)

closes: #13957

Co-authored-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-03 18:11:13 +01:00
zeertzjq
eac3fdcfa0 patch 9.1.0074: did_set_breakat() should be in optionstr.c
Problem:  did_set_breakat() should be in optionstr.c as 'breakat' is a
          string option.
Solution: Move did_set_breakat() to optionstr.c.
          (zeertzjq)

closes: #13958

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-03 18:08:09 +01:00
zeertzjq
0c989e4a3a patch 9.1.0073: Looping over modifier_keys_table unnecessarily
Problem:  Looping over modifier_keys_table[] unnecessarily with only
          MOD_MASK_ALT or MOD_MASK_CMD, as modifier_keys_table[] only
          contains MOD_MASK_SHIFT and MOD_MASK_CTRL, and the loop won't
          do anything.
Solution: Remove MOD_MASK_ALT and MOD_MASK_CMD from the condition.
          (zeertzjq)

closes: #13963

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-03 18:05:38 +01:00
Yegappan Lakshmanan
609370392a patch 9.1.0072: Not able to build without FEAT_DIFF
Problem:  Not able to build without FEAT_DIFF
          (John Marriott, after 9.1.0071)
Solution: Adjust #ifdefs
          (Yegappan Lakshmanan)

closes: #13964

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-03 17:41:54 +01:00
Jordi Mas
2d205d0a95 translation(ca): Fixe typos in Catalan translation (#13968)
Signed-off-by: Jordi Mas <jmas@softcatala.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-03 17:40:03 +01:00
Yegappan Lakshmanan
fa37835b8c patch 9.1.0071: Need a diff() Vim script function
Problem:  Need a diff() Vim script function
Solution: Add the diff() Vim script function using the
          xdiff internal diff library, add support for
          "unified" and "indices" mode.
          (Yegappan Lakshmanan)

fixes: #4241
closes: #12321

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 22:05:27 +01:00
Restorer
1226b0584a translation(ru): Updated Russian translation of messages (#13947)
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 21:45:32 +01:00
dkearns
e3e3934bb1 runtime(vim): Update syntax file (#13948)
Improve string escape sequence and special key matching.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 21:44:26 +01:00
Ajit-Thakkar
9204f39580 runtime(fortran): update syntax (#13953)
* runtime (Fortran) update syntax
* runtime (Fortran) small fix

Signed-off-by: Ajit-Thakkar <142174202+Ajit-Thakkar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 21:43:01 +01:00
rhysd
e93d5cadec patch 9.1.0070: CI: testsuite not run on M1 Mac
Problem:  CI: testsuite not run on M1 Mac
Solution: Make it run on gh runners for M1, disable failing tests for
          now, until we figure the problem with the failings tests out
          (rhysd)

closes: #13943

Signed-off-by: rhysd <lin90162@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 21:22:14 +01:00
Olaf Seibert
fd472655a9 patch 9.1.0069: ScreenLines may not be correctly initialized, causing hang
Problem:  ScreenLines may not be correctly initialized, causing hang
          (Olaf Seibert, after 9.0.0220)
Solution: always initialize ScreneLines when allocating a screen
          (Olaf Seibert)

ScreenLines and related structures could be left uninitialized
causing a screen update to run into an infinite loop when using latin1
encoding.

Partly caused because by patch 9.0.0220, which makes mb_ptr2len return
zero for NUL

related: #12671
closes: #13946

Signed-off-by: Olaf Seibert <rhialto@falu.nl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 21:11:16 +01:00
Maxim Kim
59bafc8171 patch 9.1.0068: Visual highlighting can still be improved
Problem:  Visual highlighting can still be improved
Solution: Update Visual highlighting for 8 color terminals,
          use uniform grey highlighting for dark and light bg
          (Maxim Kim)

Update terminal Visual

1. Use `ctermbg=Grey ctermfg=Black` for both dark and light

This uniforms Visual highlighting between default dark and light colors
And should work for vim usually detecting light background for terminals
with black/dark background colors.

Previously used `ctermfg=White` leaks `cterm=bold` if available colors
are less than 16.

2. Use `term=reverse cterm=reverse ctermbg=NONE ctermfg=NONE`
   for terminals reporting less than 8 colors available

If the terminal has less than 8 colors, grey just doesn't work right

closes: #13940

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-02-01 21:07:51 +01:00
Christian Brabandt
e1cd1fda69 patch 9.1.0067: gcc still complains about use of uninitialized var
Problem:  gcc still complains about use of uninitialized var
          ((Tony Mechelynck, after 9.1.0064/9.1.0066))
Solution: This time init the correct variable

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 22:12:57 +01:00
D. Ben Knoble
83f627ff42 runtime(racket): add missing space to b:undo_indent var (#13945)
This copies commit 2a4862a (fixup! indent: only reset some options when
has vim9, 2024-01-31) from https://github.com/benknoble/vim-racket and
fixes 26b0176a9 (runtime(racket): undo some indent options only when
vim9script is available (#13935), 2024-01-30).

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:53:55 +01:00
Philip H
f430e7daeb runtime(Filelist): include README_vimlogo.txt (#13944)
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:51:48 +01:00
Christian Brabandt
f2fb7dd3d3 patch 9.1.0066: gcc complains about use of uninitialized var
Problem:  gcc complains about use of uninitialized var
          (Tony Mechelynck, after 9.1.0064)
Solution: initialize button to silence gcc

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:29:07 +01:00
Shay Hill
ece7145689 runtime(vimlogo): Include and modernize vimlogo.svg
fix degenerate splines in vimlogo.svg

closes: #13941

Signed-off-by: Shay Hill <shay_public@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:15:03 +01:00
MiguelBarro
c46c21b4ca runtime(netrw): fixing remote file removal via ssh (#13942)
Make pattern, which retrieves the path component from e.g. 
`scp://user@host//opt/program/file.ext` non-greedy.

Signed-off-by: GuyBrush <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:07:17 +01:00
Philip H
0a3d369687 CI: get rid of snap and speed up CI (#13938)
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:04:22 +01:00
Philip H
28db30ddb1 CI: update clang to v18 (#13937)
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-31 20:02:10 +01:00
Christian Brabandt
8fecb472c4 runtime(doc): correct Vim patch for Wayland support
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-30 23:37:41 +01:00
D. Ben Knoble
26b0176a98 runtime(racket): undo some indent options only when vim9script is available (#13935)
This copies commit 64edf95 (indent: only reset some options when has
vim9, 2024-01-30) from https://github.com/benknoble/vim-racket.

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-30 23:32:59 +01:00
Christian Brabandt
1b7fbe726a runtime(doc): Update help for Wayland support
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-30 20:41:53 +01:00
Christian Brabandt
fef6630166 patch 9.1.0065: Segfault with CompleteChanged autocommand
Problem:  Segfault with CompleteChanged autocommand
          (markonm )
Solution: Test match->cp_prev for being NULL before accessing it

closes: #13929

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-29 21:49:36 +01:00
lilydjwg
6e0a18f82b patch 9.1.0064: No Wayland support
Problem:  No Wayland support
Solution: Add Wayland UI support
          (lilydjwg)

closes: #9639

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-29 20:54:28 +01:00
lilydjwg
94ff09a093 patch 9.1.0063: GTK code can be improved
Problem:  GTK code can be improved
Solution: Improve GTK code for initial Wayland support
          (lilydjwg)

related: #9639

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-29 20:18:22 +01:00
zeertzjq
e99f068878 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Problem:  Internal error when :luado/perldo/pydo etc delete lines
Solution: Test that the line is still valid line number
          (zeertzjq)

closes: #13931

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-29 19:32:39 +01:00
Christian Brabandt
e6d8b4662d patch 9.1.0061: UX of visual highlighting can be improved
Problem:  UX of visual highlighting can be improved
Solution: Improve readibility of visual highlighting,
          by setting better foreground and background
          colors

The default visual highlighting currently is nice in that it overlays
the actual syntax highlighting by using a separate distinct background
color.

However, this can cause hard to read text, because the contrast
between the actual syntax element and the background color is way too
low. That is an issue, that has been bothering colorschemes authors for
quite some time so much, that they are defining the Visual highlighting
group to use a separate foreground and background color, so that the
syntax highlighting vanishes, but the text remains readable (ref:
vim/colorschemes#250)

So this is an attempt to perform the same fix for the default Visual
highlighting and just use a default foreground and background color
instead of using reverse.

I also removed the hard-coded changes to the Visual highlighting in
init_highlight. It's not quite clear to me, why those were there and not
added directly to the highlighting_init_<dark|light> struct.

closes: #13663
related: vim/colorschemes#250

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-28 23:38:28 +01:00
user202729
bdb9d9afba runtime(netrw): Use :exec norm! <leftmouse> before :call mapping in netrw (#12180)
fixes: #12143

Signed-off-by: user202729 <25191436+user202729@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-28 23:29:21 +01:00
zeertzjq
bf321806bf patch 9.1.0060: Recorded register cannot be translated using keytrans()
Problem:  Recorded register cannot be translated using keytrans() when
          it involves character search (iddqd505)
Solution: Record a K_IGNORE instead of a K_NOP (zeertzjq)

related: #13916
closes: #13925

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-28 19:03:00 +01:00
thinca
cf8695d48c runtime(vim): Highlight string interpolation
closes: #13923

Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-28 18:58:14 +01:00
dkearns
21ce159e05 runtime(vim): Update syntax and ftplugin files (#13924)
Improve matching of line-continuations and interspersed comments.

These are now also matched in multiline syntax command patterns,
dictionary literals, and parenthesised expressions and argument lists.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-28 18:54:08 +01:00
dkearns
0cc6108fea runtime(ant): Update syntax file (#13926)
Remove invalid display option from syn-keyword commands.

Take over maintenance of this file.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-27 18:20:46 +01:00
Melker Ulander
772f8f5425 runtime(hurl): add hurl filetype plugin(#13921)
Signed-off-by: Melker Ulander <melker.ulander@pm.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-27 11:26:14 +01:00
dkearns
b418a51933 runtime(vim): Update syntax file (#13919)
Add foreach() function.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-27 11:24:45 +01:00
h_east
4d49643c3c runtime(doc): style fixes in vim9.txt (#13918)
Remove backticks and a few other style fixes

Signed-off-by: h-east <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-27 11:22:28 +01:00
Sergey Vlasov
1f47db75fd patch 9.1.0059: No event triggered before creating a window
Problem:  No event is triggered before creating a window.
          (Sergey Vlasov)
Solution: Add the WinNewPre event (Sergey Vlasov)

fixes: #10635
closes: #12761

Signed-off-by: Sergey Vlasov <sergey@vlasov.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 23:07:00 +01:00
Casey Tucker
92e90a1e10 patch 9.1.0058: Cannot map Super Keys in GTK UI
Problem:  Cannot map Super Keys in GTK UI
          (Casey Tucker)
Solution: Enable Super Key mappings in GTK using <D-Key>
          (Casey Tucker)

As a developer who works in both Mac and Linux using the same keyboard,
it can be frustrating having to remember different key combinations or
having to rely on system utilities to remap keys.

This change allows `<D-z>` `<D-x>` `<D-c>` `<D-v>` etc. to be recognized
by the `map` commands, along with the `<D-S-...>` shifted variants.

```vimrc
if has('gui_gtk')
	nnoremap  <D-z>    u
	nnoremap  <D-S-Z>  <C-r>
	vnoremap  <D-x>    "+d
	vnoremap  <D-c>    "+y
	cnoremap  <D-v>    <C-R>+
	inoremap  <D-v>    <C-o>"+gP
	nnoremap  <D-v>    "+P
	vnoremap  <D-v>    "-d"+P
	nnoremap  <D-s>    :w<CR>
	inoremap  <D-s>    <C-o>:w<CR>
	nnoremap  <D-w>    :q<CR>
	nnoremap  <D-q>    :qa<CR>
	nnoremap  <D-t>    :tabe<CR>
	nnoremap  <D-S-T>  :vs#<CR><C-w>T
	nnoremap  <D-a>    ggVG
	vnoremap  <D-a>    <ESC>ggVG
	inoremap  <D-a>    <ESC>ggVG
	nnoremap  <D-f>    /
	nnoremap  <D-g>    n
	nnoremap  <D-S-G>  N
	vnoremap  <D-x>    "+x
endif
```

closes: #12698

Signed-off-by: Casey Tucker <dctucker@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 22:44:00 +01:00
Christian Brabandt
6a02eb073e patch 9.1.0057: MS-Windows: Key event test still fails
Problem:  MS-Windows: Key event test still fails
Solution: Skip testing CTRL-C, since it causes an Interrupt
          which causes a test failure (after 9.1.0053)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 22:28:37 +01:00
VanaIgr
6638ec8afa patch 9.1.0056: wrong number of trailing spaces inserted after blockwise put
Problem:  Incorrect number of trailing spaces inserted for multibyte
	  characters when pasting a blockwise register in blockwise visual
          mode (VanaIgr)
Solution: Skip over trailing UTF-8 bytes when computing the number of trailing
          spaces (VanaIgr)

When pasting in blockwise visual mode, and the register type is <CTRL-V>, Vim
aligns the text after the replaced area by inserting spaces after pasted
lines that are shorter than the longest line. When a shorter line contains
multibyte characters, each trailing UTF-8 byte's width is counted in addition
to the width of the character itself. Each trailing byte counts as being 4
cells wide (since it would be displayed as <xx>).

closes: #13909

Signed-off-by: VanaIgr <vanaigranov@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 21:58:33 +01:00
kawaii-Code
78019df645 patch 9.1.0055: formatting long lines is slow
Problem:  formatting long lines is slow
          (kawaii-Code)
Solution: optimize gq (internal_format) for long
          lines (kawaii-Code)

Implemented two workarounds that significantly reduce
the amount of pointless calls. Ideally the algorithm
would be rewritten not to be n^2, but it's too complicated
with too many corner cases.

closes: #13914

Signed-off-by: kawaii-Code <nia.personal.0@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 21:40:05 +01:00
zeertzjq
703f9bc943 patch 9.1.0054: 'linebreak' may still apply to leading whitespace
Problem:  'linebreak' may still apply to leading whitespace
          (VanaIgr)
Solution: Compare pointers instead of virtual columns.
          (zeertzjq)

related: neovim/neovim#27180
closes: #13915

Co-authored-by: VanaIgr <vanaigranov@gmail.com>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 21:28:56 +01:00
Christian Brabandt
12b9277672 patch 9.1.0053: MS-Windows: Key event test still fails
Problem:  MS-Windows: Key event test still fails
Solution: Catch more interrupts
          (after 9.1.0051)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 21:23:22 +01:00
Christian Brabandt
fa8c971558 patch 9.1.0052: Patch 9.1.0041 causes regressions for users
Problem:  Patch 9.1.0041 causes regressions for users
          (Gleb Fotengauer-Malinovskiy)
Solution: Revert 9.1.0041 and restore old behaviour

Revert "patch 9.1.0041: xxd -i may generate incorrect C statements"

This reverts commit 7062be1312.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 20:50:49 +01:00
Christian Brabandt
f6ebaa7ae6 patch 9.1.0051: MS-Windows: Key event test fail
Problem:  MS-Windows: Key event test fail
          (after 9.1.0050)
Solution: Catch Interrupt and return Ctrl-C

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 20:44:49 +01:00
gi1242
046a0f75d0 runtime(mail): fix #13913 (#13917)
switch to the DFA engine for the emoji collaction range

Co-authored-by: GI <gi1242+vim@gmail.com>
Signed-off-by: GI <gi1242@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-25 19:52:47 +01:00
K.Takata
a262d3f41b runtime(netrw): Don't change global options (#13910)
Originally reported at: https://github.com/vim-jp/issues/issues/1428
'isk' was unintentionally changed by netrw, regression
introduced in Commit: 71badf9547

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-24 20:10:19 +01:00
Ajit-Thakkar
e1ddc2d587 runtime(fortran): update syntax and documentation (#13912)
* runtime (doc): update Fortran section
* runtime(syntax): Complete support for Fortran 2023.
   Minor improvements.

Signed-off-by: Ajit-Thakkar <142174202+Ajit-Thakkar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-24 20:08:34 +01:00
Anton Sharonov
68d9472c65 patch 9.1.0050: Win32 Keyboard handling is sub-optimal
Problem:  Win32 Keyboard handling is sub-optimal and has
          many issues with international keyboards
          (risa2000) (after v8.2.4807)
Solution: soft-rollback the change, allow the user to select
          a suitable key-translation strategy
          (Anton Sharonov)

Read about the details in the help:
    :h w32-experimental-keycode-trans-strategy

fixes: #10615
fixes: #12595
closes: #12752

Signed-off-by: Anton Sharonov <anton.sharonov@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 23:19:02 +01:00
Sean Dewar
1fb4103206 patch 9.1.0049: Make "[Command Line]" a special buffer name
Problem:  E95 is possible if a buffer called "[Command Line]" already
          exists when opening the cmdwin. This can also happen if the
          cmdwin's buffer could not be deleted when closing.

Solution: Un-name the cmdwin buffer, and give it a special name instead,
          similar to what's done for quickfix buffers and for unnamed
          prompt and scratch buffers. As a result, BufFilePre/Post are
          no longer fired when opening the cmdwin. Add a "command" key
          to the dictionary returned by getbufinfo() to differentiate
          the cmdwin buffer instead. (Sean Dewar)

NOTE: This is technically a breaking change... maybe this needs a different
solution? (Or maybe this issue can be ignored...)

A GitHub search reveals some plugins expect the old behaviour. However, many of
those plugins also do not seem to account for the string being translated, so
they are subtly broken anyway (not withstanding the fact that you can call any
old buffer "[Command Line]" too...)

closes: #12819

Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 22:37:39 +01:00
Sean Dewar
43b395ec2e patch 9.1.0048: Abort opening cmdwin if autocmds screw things up
Problem:  Autocmds triggered from opening the cmdwin (in win_split and
          do_ecmd) can cause issues such as E199, as the current checks
          are insufficient.

Solution: Commands executed from the cmdwin apply to the old curwin/buf,
          so they should be kept in a "suspended" state; abort if
          they've changed. Also abort if cmdwin/buf was tampered with,
          and check that curwin is correct. Try to clean up the cmdwin
          buffer (only if hidden and non-current to simplify things; the
          same approach is used when closing cmdwin normally), and add a
          beep. (Sean Dewar)

It'd be nice to also check that curwin was *really* created by win_split, as
autocommands can change curwin before it returns (so it can't be assumed to be
that of the split); for now, this means that the cmdwin may not be the botwin in
that case, which is probably OK.

closes: #12819

Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 22:35:05 +01:00
Sean Dewar
988f74311c patch 9.1.0047: issues with temp curwin/buf while cmdwin is open
Problem:  Things that temporarily change/restore curwin/buf (e.g:
          win_execute, some autocmds) may break assumptions that
          curwin/buf is the cmdwin when "cmdwin_type != 0", causing
          issues.

Solution: Expose the cmdwin's real win/buf and check that instead. Also
          try to ensure these variables are NULL if "cmdwin_type == 0",
          allowing them to be used directly in most cases without
          checking cmdwin_type. (Sean Dewar)

Alternatively, we could ban win_execute in the cmdwin and audit all places that
temporarily change/restore curwin/buf, but I didn't notice any problems arising
from allowing this (standard cmdwin restrictions still apply, so things that may
actually break the cmdwin are still forbidden).

closes: #12819

Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 22:31:55 +01:00
Christian Brabandt
4927110a43 CI: regenerate helptags to fix CI job
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 22:29:47 +01:00
Luca Saccarola
ca0e9823a1 runtime(c): Highlight user defined functions
closes: #13763

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 21:34:09 +01:00
Rocco Mao
f96dc8d07f patch 9.1.0046: :drop does not re-use empty buffer
Problem:  :drop does not re-use empty buffer
          (Rocco Mao)
Solution: Make :drop re-use an empty buffer
          (Rocco Mao)

fixes: #13851
closes: #13881

Signed-off-by: Rocco Mao <dapeng.mao@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 21:27:19 +01:00
Christian Brabandt
cc979b49dc patch 9.1.0045: --remote-* does not ignore wilidignore
Problem:  --remote-silent applies the wildignore option
          to each argument, which may result in "E479: No match"
          (hebaronson)
Solution: temporarily reset 'wildignore' setting when building
          the :drop command

closes: #13835

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 21:16:54 +01:00
zeertzjq
e13b665a6e runtime(doc): change "VIsual mode" to "Visual mode" in :h SafeState (#13901)
"Visual mode" is used everywhere else in the help when not referring to
something in the source code.

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 20:39:04 +01:00
Zoltan Arpadffy
4231ad0852 translation(hu): use correct encoding in header of hu po file (#13902)
closes: #13900 

Signed-off-by: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 20:38:07 +01:00
dkearns
9c5b90db03 runtime(vim): Update syntax file (#13906)
Highlight :2match and :3match and add these to :help ex-cmd-index.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 20:34:28 +01:00
dkearns
50dbe16cd8 runtime(qml): Use shiftwidth() in indent plugin (#13908)
Fixes #13907

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 20:33:32 +01:00
Antonio Giovanni Colombo
7de2b7c891 translation(it): Update Italian translation
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 19:51:05 +01:00
GI
36e2c0f293 runtime(mail): updated syntax file
Signed-off-by: GI <gi1242@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-23 19:48:08 +01:00
Restorer
459867b631 runtime(doc): improve doc makefiles, add clean rule (#13855)
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:42:44 +01:00
Restorer
e8ff5e6df4 runtime(lang): improve makefiles, add clean rule, fix typo (#13856)
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:41:47 +01:00
RestorerZ
76ba724e1d patch 9.1.0044: po Makefiles can be improved
Problem:  po Makefiles can be improved
Solution: Improve the style of the Makefiles, update
          Makefile variables, update documentation
          (RestorerZ)

closes: #13858
closes: #13857

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:38:38 +01:00
Restorer
91155eb31f runtime(tutor): simplify tutor makefiles (#13859)
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:25:43 +01:00
Johnothan King
add31baeda runtime(sh): Add handling for ksh93 shared-state comsubs and mksh valsubs (#13884)
This commit adds support for ksh93 shared-state command
substitutions (syntax: ${ command; }) and mksh's value
substitutions (syntax: ${|command;}) in the sh syntax script.

Also add a syntax test for ksh subshares with dumps included
to make sure it doesn't regress.

fixes: #9514

Signed-off-by: Johnothan King <johnothanking@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:19:54 +01:00
Christian Brabandt
7c71db3a58 patch 9.1.0043: ml_get: invalid lnum when :s replaces visual selection
Problem:  ml_get: invalid lnum when :s replaces visual selection
          (@ropery)
Solution: substitute may decrement the number of lines in a buffer,
          so validate, that the bottom lines of the visual selection
          stays within the max buffer line

fixes: #13890
closes: #13892

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:12:34 +01:00
Andrea C from The App
3b2c27415d runtime(chuck): include ChucK syntax file (#13895)
Co-authored-by: gacallea <gacallea@users.noreply.github.com>
Signed-off-by: gacallea <gacallea@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:10:42 +01:00
Billie Cleek
ea9a93e5b0 runtime(go): update Go syntax file (#13896)
Update the Go syntax file with some recent changes made to vim-go.

Signed-off-by: Billie Cleek <bhcleek@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:08:44 +01:00
dependabot[bot]
1cee50904e CI: Bump actions/cache from 3 to 4 (#13897)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-22 20:06:01 +01:00
Christian Brabandt
c1884c94c5 patch 9.1.0042: Missing test for Chuck Filetype
Problem:  Missing test for Chuck filetype
          after commit 27a4632af6
          (Christian Clason)
Solution: Add a filetype test

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-21 09:40:22 +01:00
Ivan Pešić
d08e437802 translation(sr): Update Serbian messages translation (#13889)
Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-19 23:31:39 +01:00
Christian Brabandt
27a4632af6 runtime(filetype): detect *.ck files as Chuck filetype (#13888)
closes #13886

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-19 23:30:34 +01:00
Kuratius
7062be1312 patch 9.1.0041: xxd -i may generate incorrect C statements
Problem:  xxd -i may generate incorrect C statements
          (Kuratius)
Solution: xxd: Make size type returned by -i option compatible
          with C standard by using type size_t instead of
          unsigned int (Kuratius)

Also change affected tests to now correctly expect size_t's

fixes: #13876
closes: #13880

Signed-off-by: Kuratius <Kuratius@gmx.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 22:34:51 +01:00
Christian Brabandt
f942db2557 runtime(man): man on AIX does not understand -l
fixes: #13847

Co-authored-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 21:55:41 +01:00
James Eapen
46d67d22b9 runtime(swayconfig): add focus_follows_mouse and smart_qaps syntax keywords
See:
0aceff7469/sway/sway.5.scd (L680)
`focus_follows_mouse yes|no|always`
0aceff7469/sway/sway.5.scd (L770)

closes: #13797

Signed-off-by: James Eapen <james.eapen@vai.org><author>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 21:43:31 +01:00
James Eapen
a39af02904 runtime(i3config): remove always from focus_follows_mouse
The always option does not exist in i3, only sway.

From https://i3wm.org/docs/userguide.html:
`focus_follows_mouse yes|no`

Version number incremented by 2 because the last commit did not
increment the version.

Signed-off-by: James Eapen <james.eapen@vai.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 21:43:12 +01:00
MiguelBarro
6e5a6c9965 runtime(netrw): minor changes to fix move cmd on windows (#13823)
Signed-off-by: GuyBrush <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 21:35:36 +01:00
zeertzjq
f267847017 patch 9.1.0040: issue with prompt buffer and hidden buffer
Problem:  Modifying a hidden buffer still interferes with prompt buffer
          mode changes.
Solution: Save and restore b_prompt_insert.
          (zeertzjq)

closes: #13875

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Modifying hidden buffer still interferes with prompt buffer mode changes
2024-01-17 21:22:59 +01:00
zeertzjq
6a8d2e1634 patch 9.1.0039: too vague errors for 'listchars'/'fillchars'
Problem:  too vague errors for 'listchars'/'fillchars'
Solution: Include the field name in error message.
          (zeertzjq)

related: neovim/neovim#27050
closes: #13877

Co-authored-by: Cole Frankenhoff <cole.nhf@gmail.com>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 21:07:08 +01:00
zeertzjq
4ea37f88e8 patch 9.1.0038: Unnecessary loop in getvcol()
Problem:  Unnecessary loop in getvcol().
Solution: Compare next char position with pos->col directly.
          (zeertzjq)

The loop below already handles end of line before checking for posptr,
and the next char is after pos->col whether pos->col is at the start or
in the middle of the char in question, so neither the NUL check nor the
mb_head_off() are needed when comparing the position of the next char
with pos->col directly.

closes: #13878

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 20:52:13 +01:00
zeertzjq
5b0722b864 patch 9.1.0037: Calling get_breakindent_win() repeatedly when computing virtcol
Problem:  Calling get_breakindent_win() repeatedly when computing
          virtual column, and get_breakindent_win() does a STRCMP() on
          the whole line since patch 9.0.0016.
Solution: Cache the result, since the line doesn't change.
          (zeertzjq)

closes: #13879

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 20:42:53 +01:00
John Marriott
73e16c7406 patch 9.1.0036: MS-Windows: Warning about unused variable
Problem:  MS-Windows: Warning about unused variable
          (after 9.1.0030, John Marriott)
Solution: Adjust #ifdef and test for HAVE_TGETENT
          (John Marriott)

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-17 20:19:10 +01:00
Maxim Kim
211211052d runtime(odin): include ftplugin, syntax and indent script (#13867)
Note for Neovim Contributors: this is bundled as Vim9 Script. If you want to use this on Neovim, you need to convert the Vim9 scripts to Vim Script or Lua or leave it out.

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-16 17:33:51 +01:00
altermo
7d711fe209 patch 9.1.0035: i_CTRL-] triggers InsertCharPre
Problem:  i_CTRL-] triggers InsertCharPre
Solution: Return if CTRL-] is received. InsertCharPre
          is supposed to be only used for chars to be inserted
          but i_CTRL-] triggers expansion and is not inserted
          into the buffer (altermo)

closes: #13853
closes: #13864

Signed-off-by: altermo
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-16 17:25:17 +01:00
Christian Brabandt
ac4cffc6d9 patch 9.1.0034: Window scrolls unexpectedly when 'scrollbind' is set
Problem:  Window may unexpectedly scroll when 'scrollbind' is set
          and setting a buffer-local option using setbufvar()
          (Boris Staletic)
Solution: Save and restore the windows topline before opening the
          popup window.

fixes: #13863
closes: #13869

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-16 17:22:38 +01:00
zeertzjq
96958366ad patch 9.1.0033: Insert mode not stopped if closing prompt buffer modifies hidden buffer
Problem:  Insert mode not stopped if an autocommand modifies a hidden
          buffer while closing a prompt buffer.
Solution: Don't set b_prompt_insert if stop_insert_mode is already set.
          (zeertzjq)

closes: #13872

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-16 17:21:04 +01:00
Ken Takata
1a9aba8ad4 patch 9.1.0032: MS-Windows installer misses keymaps
Problem:  MS-Windows installer misses keymaps
          (Maxim Kim)
Solution: Include keymaps in the installer archive
          (Ken Takata)

fixes: vim/vim-win32-installer#331
closes: #13871

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-16 17:14:29 +01:00
Christian Brabandt
4afda3307d patch 9.1.0031: Link Error on Windows
Problem:  Link Error on Windows
Solution: Add ifdef HAVE_TGETENT for term_strings_not_set()

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-15 22:52:49 +01:00
Ajit-Thakkar
ef79c57837 runtime(fortran): update fortran syntax (#13870)
Support most remaining features of Fortran 2018/2023
Small improvements to folding etc,
Code cleanup: use \? instead of mix of \= and \?

Signed-off-by: Ajit-Thakkar <142174202+Ajit-Thakkar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-15 22:42:03 +01:00
Christian Brabandt
9c58191b34 CI: regenerate helptags, fix ci help tags job failing
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-15 22:39:54 +01:00
PMunch
a606f3ac03 patch 9.1.0030: Cannot use terminal alternate font
Problem:  Cannot use terminal alternate fonts (PMunch)
Solution: Support terminal alternate fonts using
          CSI SGR 10-20 and t_CF code (PMunch)

Add support for alternate font highlighting

This adds support for alternate font highlighting using CSI SGR 10-20.
Few terminals currently support this, but with added tool support this
should improve over time. The change here is more or less taken from how
colors are configured and applied, but there might be some parts I
missed while implementing it. Changing fonts is done through the new
`:hi ctermfont` attribute which takes a number, 0 is the normal font, and
the numbers 1-9 select an "alternative" font. Which fonts are in use is
up to the terminal.

fixes: #13513
closes: #13537

Signed-off-by: PMunch <peterme@peterme.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-15 22:27:35 +01:00
Yegappan Lakshmanan
eb3475df0d runtime(doc): Replace non-breaking space with normal space (#13868)
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-15 20:08:25 +01:00
Doug Kearns
93197fde0f runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Problem:  The "*.*" browsefilter pattern only matches all files on
	  Windows (Daryl Lee)
Solution: Use "*" to filter on all platforms but keep "*.*" as the label
	  text on Windows. (Fixes #12685, Doug Kearns)

The *.* browsefilter pattern used to match "All Files" on Windows is a
legacy of the DOS 8.3 filename wildcard matching algorithm.  For reasons
of backward compatibility this still works on Windows to match all
files, even those without an extension.

However, this pattern only matches filenames containing a dot on other
platforms.  This often makes files without an extension difficult to
access from the file dialog, e.g., "Makefile"

On Windows it is still standard practice to use "*.*" for the filter
label so ftplugins should use "All Files (*.*)" on Windows and "All
Files (*)" on other platforms.  This matches Vim's default browsefilter
values.

This commit also normalises the browsefilter conditional test to check
for the Win32 and GTK GUI features and an unset b:browsefilter.

closes: #12759

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-14 21:02:54 +01:00
Danek Duvall
d7d560374b patch 9.1.0029: Cannot act on various terminal response codes
Problem:  Cannot act on various terminal response codes
Solution: Add the TerminalResponseAll autocommand
          (Danek Duvall)

closes: #13829

Signed-off-by: Danek Duvall <duvall@comfychair.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-14 20:19:59 +01:00
GuyBrush
1f13fcc934 patch 9.1.0028: win32: Ctrl-D cannot be used to close a pipe
Problem:  win32: Ctrl-D cannot be used to close a pipe
Solution: Properly detect Ctrl-D when reading from a pipe
          (GuyBrush)

Enabling Ctrl-D for gvim pipeline input
and apply defensive programming on account of PR #12752
so that once PR 12752 is merged, CTRL-D will keep on working

closes: #13849

Signed-off-by: GuyBrush <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-14 20:08:40 +01:00
Christian Brabandt
8102a4c463 CI: Check help tags for errors (duplicates, missing, etc) (#13865)
- Run the doc make html awk script, which also checks, that all
  referenced help tags exists.
- Run the doc maketags awk script, which checks for duplicates
- in case of any error in the previous two steps, exit the CI with
  an error and show the errors.log file, that is generated by the
  previous 2 steps

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-14 19:24:05 +01:00
errael
c92b8bed1f runtime(help): delete duplicate help tag E741 (#13861)
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-14 19:11:07 +01:00
Ernie Rael
e79e207760 patch 9.1.0027: Vim is missing a foreach() func
Problem:  Vim is missing a foreach() func
Solution: Implement foreach({expr1}, {expr2}) function,
          which applies {expr2} for each item in {expr1}
          without changing it (Ernie Rael)

closes: #12166

Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-13 11:47:33 +01:00
Ken Takata
d8cb1ddab7 patch 9.1.0026: win32: Windows default font lacking
Problem:  win32: Windows default font lacking (@clach04)
Solution: Improve default font (Ken Takata)

win32: Improve default font

Currently, Fixedsys is the default font on Windows.
It is not suitable for recent High DPI environments.

* Change the default font to Consolas.
* Allow to change the default font by the translation message. E.g.:
  ```
  msgid "DefaultFontNameForWindows"
  msgstr "Courier New"
  ```

fixes: #12919
closes: #13266

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 18:12:04 +01:00
dundargoc
dc4c37b9d5 patch 9.1.0025: A few typos in tests and justify.vim
Problem:  A few typos in tests and justify.vim
Solution: fix them

closes: #13848

Signed-off-by: dundargoc <gocdundar@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 18:02:10 +01:00
Igor Todorovski
497e5282b6 patch 9.1.0024: z/OS (MVS) support can be improved
Problem:  z/OS (MVS) support can be improved
Solution: set UTF-8 as the default encoding for z/OS

closes: #13821

Signed-off-by: Igor Todorovski <itodorov@ca.ibm.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:59:18 +01:00
Igor Todorovski
48a75f3dfb patch 9.1.0023: xxd: few problems with EBCDIC for z/OS (MVS)
Problem:  xxd: few problems with EBCDIC for z/OS (MVS)
Solution: Fix xxd build and support ASCII and UTF-8 on z/OS (MVS)
          natively, add MVS guard checks with __CHARSET_LIB,
          support $LIBS in the Makefile
          (Igor Todorovski)

related: #13821

Signed-off-by: Igor Todorovski <itodorov@ca.ibm.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:53:18 +01:00
Christian Brabandt
49471963fe patch 9.1.0022: Coverity complains about improper use of negative value
Problem:  Coverity complains about improper use of negative value
Solution: Add a condition to validate that keytyped is larger or equal
          to 0

Apparently patch 9.1.0006 made it more explicit for Coverity, that the
TOLOWER_LOC() macros do not handle negative values properly. However,
that condition has always been there even before that, so add a
condition to verify that keytyped is indeed at least 0

closes: #13824

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:48:08 +01:00
zeertzjq
424ec1f235 patch 9.1.0021: i_CTRL-R- doesn't work for multibyte chars in Replace mode
Problem:  i_CTRL-R- doesn't work for multibyte chars in Replace mode,
          Coverity complains missing return value for u_save_cursor()
Solution: Use mb_charlen() and del_chars() instead, handle failure mode
          for u_save_cursor() correctly (@zeertzjq)

closes: #13846

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:43:05 +01:00
Yegappan Lakshmanan
4f32c83a77 patch 9.1.0020: Vim9: cannot compile all methods in a class
Problem:  Vim9: cannot compile all methods in a class
Solution: Support compiling all the methods in a class using :defcompile
          (Yegappan Lakshmanan)

closes: #13844

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:41:09 +01:00
Christian Brabandt
8610f74382 patch 9.1.0019: cmdline may disappear when changing 'cmdheight'
Problem:  cmdline may disappear when changing 'cmdheight'
          (after Patch 9.0.0190, @markonm)
Solution: always re-calculate the old_p_ch value, not only
          when cmdline_row was higher than expected

fixes: #13822
closes: #13826

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:34:40 +01:00
Ken Takata
b52600d561 patch 9.1.0018: use of #if instead of #ifdef
Problem:  use of #if instead of #ifdef
Solution: use correct form of #ifdef

`#if FEAT_GUI_HAIKU` was used mistakenly. Use the correct form
`#ifdef FEAT_GUI_HAIKU` instead.

closes: #13843

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:31:07 +01:00
K.Takata
2357765304 runtime(netrw): Decode multibyte percent-encoding filename correctly (#13842)
Use `printf("%c")` instead of `nr2char()` to handle '%xx' as a byte.

Close #13787

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:30:01 +01:00
Yegappan Lakshmanan
28d71b566a patch 9.1.0017: [security]: use-after-free in eval1_emsg()
Problem:  use-after-free in eval1_emsg() when an empty
          line follows a lambda (by @yu3s)
Solution: only set evalarg->eval_using_cmdline = FALSE when
          the *arg pointer is not null

fixes: #13833
closes: #13841

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-12 17:27:02 +01:00
K.Takata
71d0ba07a3 runtime(netrw): Sync with netrw 174b (#13836)
* Import netrw v174b
* Revert unwanted changes
* Fix indent
* Revert some changes
* Update tags
* Break long line

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-09 19:21:05 +01:00
Maxim Kim
5f4cc8ea65 runtime(colorschemes): Add initial support for Added/Removed/Changed highlight groups (#13830)
For some of the colorschemes where diffAdded and diffRemoved were explicitly set up.

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-08 20:14:04 +01:00
Christian Brabandt
3a5b3df776 runtime(tar): fix a few problems with the tar plugin
From: #138331:
  - Updating .tar.zst files was broken. Fixes #12639.
  - Extracting files from .tar.zst / .tzs files was also broken and
    works now.
From: #12637:
  - Fixes variable assignment and typo
From: #8109:
  - Rename .tzs to the more standard .tzst

fixes: #12639
fixes: #8105
closes: #8109
closes: #12637
closes: #13831

Co-authored-by: Martin Rys <martin@rys.pw>
Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Co-authored-by: Carlo Teubner <carlo@cteubner.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-08 20:02:14 +01:00
Maxim Kim
ceed36873e runtime(vim): accept dot in completionList for Vim9 syntax (#13832)
if you have autoloaded command complete function in vim9script, it shouldn't be highlighted as Error:

```
import autoload "share.vim"
command! -range=% -nargs=? -complete=custom,share.Complete Share share.Paste(<q-args>, <line1>, <line2>)
```

`share.Complete` is a valid complete function.

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-08 19:42:02 +01:00
Romain Lafourcade
124371c5a1 patch 9.1.0016: default diff highlighting is too noisy
Problem:  default diff highlighting is too noisy
Solution: Link diff highlighting groups to new
          Added/Removed/Changed, revert previous change
          (Romain Lafourcade)

Remove diff* links added in #13776 and doc added in commit b1392be

The links added in #13776 are way too noisy for the contexts in which
the `diff` syntax is applied (git commits, patches, etc.).

This commit:

- removes those links
- adds new default highlighting groups Added, Changed and
  Removed
- links the diff highlighting groups to those new defaults
- removes the doc changes
- adjusts the syntax_completion test for those newly added group
  names

Note: Changes to the default color schemes will be handled separately,
by adding links to those newly created Added/Removed/Changed
highlighting groups.

related: #13776
closes #13825

Signed-off-by: Romain Lafourcade <romain.lafourcade@razorfish.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-07 23:32:19 +01:00
Aliaksei Budavei
b21499537f runtime(doc): Improve the documentation for Vim9 classes (#13828)
* Emend textual typos
* Emend syntactic errors in examples
* Acknowledge no support for abstract static methods
* Acknowledge the non-ubiquity of instance qualification

"This" was never allowed in method declarations, e.g.:
    class A
        def this.M()
        enddef
    endclass

and, since patch 9.0.2167, "this" can no longer be used in field
declarations, e.g.:
    class B
        var this.f: string
    endclass

* Recognise abstract child classes
* Reword an ambiguous turn of phrase

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-07 15:52:10 +01:00
Christian Brabandt
5d5cbb2b9a patch 9.1.0015: i_CTRL-R- no longer works in replace mode
Problem:  i_CTRL-R- no longer works in replace mode
Solution: delete characters in replace mode before putting, add a test,
          add a bit warning into the documentation, that i_CTRL-R-P/O
          is not supported in Replace mode for now

fixes: #13792
closes: #13816

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-05 18:19:52 +01:00
zeertzjq
b1ed7ec9f7 patch 9.1.0014: incorrect use of W_WINROW in edit.c
Problem:  incorrect use of W_WINROW in edit.c
Solution: compare against curwin->w_height instead

Remove incorrect use of W_WINROW

In structs.h it is mentioned that w_wrow is relative to w_winrow, so
using W_WINROW doesn't make sense when comparing with window height.

This change won't lead to any observable behavior change:

The condition intends to check if there are 'scrolloff' lines between
the current cursor when the bottom of the window. When W_WINROW(curwin)
is added to curwin->w_height - 1 - get_scrolloff_value(), the condition
is instead satisfied when the cursor is on some screen line below that
position. However,
- If 'scrolloff' is smaller than half the window height, this condition
  can only be satisfied when W_WINROW(curwin) == 0. And if it is not
  satisfied, update_topline() does the actual scrolling.
- If 'scrolloff' is larger than half the window height, update_topline()
  will put the cursor at the center of the window soon afterwards
  anyway, because set_topline() now unsets VALID_TOPLINE flag starting
  from 7db7bb45b0.

To put it in another way, 7db7bb45b0
makes the update_topline() just below correct the mistakes made in this
block, so this incorrect use of W_WINROW() no longer affects observable
behavior.

closes: #12331

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-05 18:11:43 +01:00
Doug Kearns
68a8947069 patch 9.1.0013: Modula2 filetype support lacking
Problem:  Modula2 filetype support lacking
Solution: Improve the Modula-2 runtime support, add additional modula2
          dialects, add compiler plugin, update syntax highlighting,
          include syntax tests, update Makefiles (Doug Kearns)

closes: #6796
closes: #8115

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Benjamin Kowarsch <trijezdci@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-05 17:59:04 +01:00
Maxim Kim
3779516988 patch 9.1.0012: regression with empty inner blocks introduced
Problem:  regression with empty inner blocks introduced
          (after v9.1.0007)
Solution: Set correct cursor position, Check for visual mode
          being active (Maxim Kim)

relates: #13514
closes: #13819

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-05 17:52:49 +01:00
K.Takata
7b7672d5ca runtime(doc): Fix typos in version9.txt (#13817)
Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-05 17:47:01 +01:00
Lifepillar
963fd7d6e5 runtime(doc): Fix typos in reltime() help. (#13818)
Signed-off-by: Lifepillar <lifepillar@lifepillar.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-05 17:44:57 +01:00
dkearns
c79646dfb1 runtime(vim): Update syntax file (#13671)
Support multiline :syntax commands.

Match :syn-cchar option in :syn-{keyword,region}.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-04 22:58:48 +01:00
Christian Brabandt
d2cc51f9a1 patch 9.1.0011: regexp cannot match combining chars in collection
Problem:  regexp cannot match combining chars in collection
Solution: Check for combining characters in regex collections for the
          NFA and BT Regex Engine

Also, while at it, make debug mode work again.

fixes #10286
closes: #12871

Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-04 22:54:08 +01:00
855 changed files with 29888 additions and 5741 deletions

71
.github/CODEOWNERS vendored
View File

@@ -9,20 +9,15 @@
# So if a pull request only touches javascript files, only these owners
# will be requested to review.
nsis/lang/russian.nsi @RestorerZ
runtime/autoload/freebasic.vim @dkearns
runtime/autoload/getscript.vim @cecamp
runtime/autoload/haskell.vim @alx741
runtime/autoload/javascript.vim @jsit
runtime/autoload/netrw.vim @cecamp
runtime/autoload/netrwFileHandlers.vim @cecamp
runtime/autoload/netrwSettings.vim @cecamp
runtime/autoload/modula2.vim @dkearns
runtime/autoload/php.vim @david-szabo97
runtime/autoload/rubycomplete.vim @segfault @dkearns
runtime/autoload/rust.vim @lilyball
runtime/autoload/tar.vim @cecamp
runtime/autoload/vimball.vim @cecamp
runtime/autoload/xmlformat.vim @chrisbra
runtime/autoload/zip.vim @cecamp
runtime/autoload/dist/json.vim @habamax
runtime/colors/blue.vim @habamax @romainl @neutaaaaan
runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan
@@ -65,6 +60,7 @@ runtime/compiler/eruby.vim @dkearns
runtime/compiler/fbc.vim @dkearns
runtime/compiler/gawk.vim @dkearns
runtime/compiler/gjs.vim @dkearns
runtime/compiler/gm2.vim @dkearns
runtime/compiler/go.vim @dbarnett
runtime/compiler/haml.vim @tpope
runtime/compiler/hare.vim @rsaihe
@@ -106,12 +102,6 @@ runtime/compiler/xmllint.vim @dkearns
runtime/compiler/xo.vim @dkearns
runtime/compiler/yamllint.vim @romainl
runtime/compiler/zsh.vim @dkearns
runtime/doc/pi_getscript.txt @cecamp
runtime/doc/pi_logipat.txt @cecamp
runtime/doc/pi_netrw.txt @cecamp
runtime/doc/pi_tar.txt @cecamp
runtime/doc/pi_vimball.txt @cecamp
runtime/doc/pi_zip.txt @cecamp
runtime/doc/ps1.txt @heaths
runtime/ftplugin/abaqus.vim @costerwi
runtime/ftplugin/apache.vim @dubgeiser
@@ -125,6 +115,7 @@ runtime/ftplugin/cs.vim @nickspoons
runtime/ftplugin/csh.vim @dkearns
runtime/ftplugin/css.vim @dkearns
runtime/ftplugin/cucumber.vim @tpope
runtime/ftplugin/deb822sources.vim @jamessan
runtime/ftplugin/debchangelog.vim @jamessan
runtime/ftplugin/debcontrol.vim @jamessan
runtime/ftplugin/debsources.vim @jamessan
@@ -180,8 +171,8 @@ runtime/ftplugin/lynx.vim @dkearns
runtime/ftplugin/m3build.vim @dkearns
runtime/ftplugin/m3quake.vim @dkearns
runtime/ftplugin/markdown.vim @tpope
runtime/ftplugin/matlab.vim @cecamp
runtime/ftplugin/meson.vim @Liambeguin
runtime/ftplugin/modula2.vim @dkearns
runtime/ftplugin/modula3.vim @dkearns
runtime/ftplugin/nginx.vim @chr4
runtime/ftplugin/nroff.vim @a-vrma
@@ -202,14 +193,9 @@ runtime/ftplugin/pymanifest.vim @ObserverOfTime
runtime/ftplugin/python.vim @tpict
runtime/ftplugin/qb64.vim @dkearns
runtime/ftplugin/qml.vim @ChaseKnowlden
runtime/ftplugin/r.vim @jalvesaq
runtime/ftplugin/racket.vim @benknoble
runtime/ftplugin/readline.vim @dkearns
runtime/ftplugin/rhelp.vim @jalvesaq
runtime/ftplugin/rmd.vim @jalvesaq
runtime/ftplugin/rnoweb.vim @jalvesaq
runtime/ftplugin/routeros.vim @zainin
runtime/ftplugin/rrst.vim @jalvesaq
runtime/ftplugin/rst.vim @marshallward
runtime/ftplugin/ruby.vim @tpope @dkearns
runtime/ftplugin/rust.vim @lilyball
@@ -299,14 +285,9 @@ runtime/indent/prolog.vim @dkearns
runtime/indent/ps1.vim @heaths
runtime/indent/qb64.vim @dkearns
runtime/indent/qml.vim @ChaseKnowlden
runtime/indent/r.vim @jalvesaq
runtime/indent/racket.vim @benknoble
runtime/indent/rapid.vim @KnoP-01
runtime/indent/readline.vim @dkearns
runtime/indent/rhelp.vim @jalvesaq
runtime/indent/rmd.vim @jalvesaq
runtime/indent/rnoweb.vim @jalvesaq
runtime/indent/rrst.vim @jalvesaq
runtime/indent/ruby.vim @AndrewRadev @dkearns
runtime/indent/sass.vim @tpope
runtime/indent/scala.vim @derekwyatt
@@ -324,21 +305,19 @@ runtime/indent/xml.vim @chrisbra
runtime/indent/zsh.vim @chrisbra
runtime/keymap/armenian-eastern_utf-8.vim @blinskey
runtime/keymap/armenian-western_utf-8.vim @blinskey
runtime/keymap/russian-typograph.vim @RestorerZ
runtime/keymap/tamil_tscii.vim @yegappan
runtime/lang/menu_en_gb.latin1.vim @mrdubya
runtime/lang/menu_ru_ru.cp1251.vim @RestorerZ
runtime/lang/menu_ru_ru.koi8-r.vim @RestorerZ
runtime/lang/menu_ru_ru.utf-8.vim @RestorerZ
runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @yegappan
runtime/pack/dist/opt/matchit/ @chrisbra
runtime/plugin/getscriptPlugin.vim @cecamp
runtime/plugin/logiPat.vim @cecamp
runtime/plugin/netrwPlugin.vim @cecamp
runtime/plugin/tarPlugin.vim @cecamp
runtime/plugin/vimballPlugin.vim @cecamp
runtime/plugin/zipPlugin.vim @cecamp
runtime/plugin/manpager.vim @Konfekt
runtime/syntax/shared/hgcommitDiff.vim @vegerot
runtime/syntax/abaqus.vim @costerwi
runtime/syntax/aidl.vim @dpelle
runtime/syntax/amiga.vim @cecamp
runtime/syntax/ant.vim @dkearns
runtime/syntax/arduino.vim @johshoff
runtime/syntax/asciidoc.vim @aerostitch
runtime/syntax/asm.vim @dkearns
@@ -355,14 +334,13 @@ runtime/syntax/cabalconfig.vim @coot
runtime/syntax/cabalproject.vim @coot
runtime/syntax/cf.vim @ernstvanderlinden
runtime/syntax/chatito.vim @ObserverOfTime
runtime/syntax/chuck.vim @gacallea
runtime/syntax/clojure.vim @axvr
runtime/syntax/cs.vim @nickspoons
runtime/syntax/csh.vim @cecamp
runtime/syntax/cucumber.vim @tpope
runtime/syntax/d.vim @JesseKPhillips
runtime/syntax/dart.vim @pr3d4t0r
runtime/syntax/datascript.vim @dpelle
runtime/syntax/dcl.vim @cecamp
runtime/syntax/deb822sources.vim @jamessan
runtime/syntax/debchangelog.vim @jamessan
runtime/syntax/debcontrol.vim @jamessan
@@ -378,11 +356,9 @@ runtime/syntax/dtd.vim @chrisbra
runtime/syntax/dts.vim @zonque
runtime/syntax/editorconfig.vim @gpanders
runtime/syntax/eiffel.vim @jocelyn
runtime/syntax/elmfilt.vim @cecamp
runtime/syntax/erlang.vim @hcs42
runtime/syntax/eruby.vim @tpope @dkearns
runtime/syntax/expect.vim @dkearns
runtime/syntax/exports.vim @cecamp
runtime/syntax/falcon.vim @steveno
runtime/syntax/fennel.vim @gpanders
runtime/syntax/fetchmail.vim @dkearns
@@ -409,6 +385,7 @@ runtime/syntax/gyp.vim @ObserverOfTime
runtime/syntax/haml.vim @tpope
runtime/syntax/hare.vim @rsaihe
runtime/syntax/haskell.vim @coot
runtime/syntax/help_ru.vim @RestorerZ
runtime/syntax/hgcommit.vim @k-takata
runtime/syntax/hitest.vim @lacygoill
runtime/syntax/hog.vim @wtfbbqhax
@@ -427,9 +404,7 @@ runtime/syntax/kconfig.vim @chrisbra
runtime/syntax/kotlin.vim @udalov
runtime/syntax/krl.vim @KnoP-01
runtime/syntax/less.vim @genoma
runtime/syntax/lex.vim @cecamp
runtime/syntax/liquid.vim @tpope
runtime/syntax/lisp.vim @cecamp
runtime/syntax/lua.vim @marcuscf
runtime/syntax/lyrics.vim @ObserverOfTime
runtime/syntax/lynx.vim @dkearns
@@ -438,13 +413,15 @@ runtime/syntax/m3quake.vim @dkearns
runtime/syntax/mailcap.vim @dkearns
runtime/syntax/make.vim @rohieb
runtime/syntax/mallard.vim @jhradilek
runtime/syntax/maple.vim @cecamp
runtime/syntax/markdown.vim @tpope
runtime/syntax/mason.vim @petdance
runtime/syntax/meson.vim @Liambeguin
runtime/syntax/modula2.vim @dkearns
runtime/syntax/modula2/opt/iso.vim @trijezdci
runtime/syntax/modula2/opt/pim.vim @trijezdci
runtime/syntax/modula2/opt/r10.vim @trijezdci
runtime/syntax/modula3.vim @dkearns
runtime/syntax/n1ql.vim @pr3d4t0r
runtime/syntax/netrw.vim @cecamp
runtime/syntax/nginx.vim @chr4
runtime/syntax/ninja.vim @nico
runtime/syntax/nix.vim @equill
@@ -469,7 +446,6 @@ runtime/syntax/psl.vim @danielkho
runtime/syntax/pymanifest.vim @ObserverOfTime
runtime/syntax/qb64.vim @dkearns
runtime/syntax/qml.vim @ChaseKnowlden
runtime/syntax/r.vim @jalvesaq
runtime/syntax/racket.vim @benknoble
runtime/syntax/raml.vim @in3d
runtime/syntax/rapid.vim @KnoP-01
@@ -479,11 +455,8 @@ runtime/syntax/rcs.vim @hdima
runtime/syntax/rebol.vim @mrdubya
runtime/syntax/rego.vim @zenmatic
runtime/syntax/resolv.vim @rid9
runtime/syntax/rmd.vim @jalvesaq
runtime/syntax/rng.vim @jhradilek
runtime/syntax/routeros.vim @zainin
runtime/syntax/rpcgen.vim @cecamp
runtime/syntax/rrst.vim @jalvesaq
runtime/syntax/rst.vim @marshallward
runtime/syntax/ruby.vim @dkearns
runtime/syntax/sass.vim @tpope
@@ -491,9 +464,7 @@ runtime/syntax/scala.vim @derekwyatt
runtime/syntax/scss.vim @tpope
runtime/syntax/sdoc.vim @gpanders
runtime/syntax/sed.vim @dkearns
runtime/syntax/sh.vim @cecamp
runtime/syntax/shared/debversions.vim @jamessan
runtime/syntax/sm.vim @cecamp
runtime/syntax/solidity.vim @cothi
runtime/syntax/spec.vim @ignatenkobrain
runtime/syntax/sqloracle.vim @chrisbra
@@ -507,11 +478,9 @@ 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
runtime/syntax/tcsh.vim @dkearns
runtime/syntax/teraterm.vim @k-takata
runtime/syntax/tex.vim @cecamp
runtime/syntax/tidy.vim @dkearns
runtime/syntax/tmux.vim @ericpruitt
runtime/syntax/toml.vim @averms
@@ -523,7 +492,6 @@ runtime/syntax/typescriptcommon.vim @HerringtonDarkholme
runtime/syntax/typescriptreact.vim @HerringtonDarkholme
runtime/syntax/unison.vim @chuwy
runtime/syntax/vdf.vim @ObserverOfTime
runtime/syntax/vim.vim @cecamp
runtime/syntax/vroom.vim @dbarnett
runtime/syntax/wast.vim @rhysd
runtime/syntax/wdl.vim @zenmatic
@@ -531,18 +499,18 @@ 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
runtime/syntax/xslt.vim @Boobies
runtime/syntax/xxd.vim @cecamp
runtime/syntax/yacc.vim @cecamp
runtime/syntax/zserio.vim @dpelle
runtime/syntax/zsh.vim @chrisbra
runtime/tutor/tutor.eo @dpelle
runtime/tutor/tutor.eo.utf-8 @dpelle
runtime/tutor/tutor.fr @dpelle
runtime/tutor/tutor.fr.utf-8 @dpelle
runtime/tutor/tutor.ru @RestorerZ
runtime/tutor/tutor.ru.cp1251 @RestorerZ
runtime/tutor/tutor.ru.utf-8 @RestorerZ
src/iscygpty.* @k-takata
src/libvterm/ @leonerd
src/po/ca.po @nfdisco
@@ -554,6 +522,7 @@ src/po/fr.po @dpelle
src/po/ga.po @kscanne
src/po/it.po @azc100
src/po/ja.po @k-takata
src/po/ru.po @RestorerZ
src/po/sr.po @eevan78
src/po/tr.po @bitigchi
src/po/uk.po @sakhnik

View File

@@ -22,7 +22,7 @@ jobs:
env:
CC: ${{ matrix.compiler }}
GCC_VER: 13
CLANG_VER: 17
CLANG_VER: 18
TEST: test
SRCDIR: ./src
LEAK_CFLAGS: -DEXITFREE
@@ -90,6 +90,10 @@ jobs:
- run: sudo dpkg --add-architecture i386
if: matrix.architecture == 'i386'
- name: Uninstall snap
run: |
sudo bash ci/remove_snap.sh
- name: Install packages
run: |
PKGS=( \
@@ -265,7 +269,13 @@ jobs:
if: contains(matrix.extra, 'vimtags')
run: |
# This will exit with an error code if the generated vim tags differs from source.
git diff --exit-code -- runtime/doc/tags
(
cd runtime/doc
git diff --exit-code -- tags
make html; rm *.html tags.ref;
test -f errors.log && exit 3;
true
)
- name: Generate gcov files
if: matrix.coverage
@@ -276,9 +286,10 @@ jobs:
- name: Codecov
timeout-minutes: 20
if: matrix.coverage
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
flags: linux,${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }}
token: ${{ secrets.CODECOV_TOKEN }}
- name: ASan logs
if: contains(matrix.extra, 'asan') && !cancelled()
@@ -289,7 +300,7 @@ jobs:
done
macos:
runs-on: macos-latest
runs-on: ${{ matrix.runner }}
env:
CC: clang
@@ -302,6 +313,7 @@ jobs:
fail-fast: false
matrix:
features: [tiny, normal, huge]
runner: [macos-latest, macos-14]
steps:
- name: Checkout repository from github
@@ -310,8 +322,14 @@ jobs:
- name: Install packages
if: matrix.features == 'huge'
run: |
brew install lua
echo "LUA_PREFIX=/usr/local" >> $GITHUB_ENV
brew install lua libtool
echo "LUA_PREFIX=$(brew --prefix)" >> $GITHUB_ENV
- name: Grant microphone access for macos-14
if: matrix.runner == 'macos-14'
run: |
# Temporary fix to fix microphone permission issues for macos-14 when playing sound.
sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);"
- name: Set up environment
run: |
@@ -355,6 +373,11 @@ jobs:
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
- name: Install packages for testing
run: |
# Apple diff is broken. Use GNU diff instead. See #14032.
brew install diffutils
- name: Test
timeout-minutes: 20
run: |
@@ -385,11 +408,11 @@ jobs:
# winpty
WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
# libsodium
SODIUM_VER: '1.0.18'
SODIUM_VER: '1.0.19'
SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip
SODIUM_MSVC_VER: v143
SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz
SODIUM_MINGW_VER: 23
SODIUM_MINGW_VER: 26
# Escape sequences
COL_RED: "\x1b[31m"
COL_GREEN: "\x1b[32m"
@@ -451,7 +474,10 @@ jobs:
echo "SODIUM_LIB=${SODIUM_DIR}\\${{ matrix.arch == 'x64' && 'x64' || 'Win32' }}\\Release\\${SODIUM_MSVC_VER}\\dynamic" >> $GITHUB_ENV
else
SODIUM_DIR=D:\\libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }}
# do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l
SODIUM_DIR_SLASH=D:/libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }}
echo "SODIUM_LIB=${SODIUM_DIR}\\bin" >> $GITHUB_ENV
echo "SODIUM_DIR_SLASH=${SODIUM_DIR_SLASH}" >> $GITHUB_ENV
fi
echo "SODIUM_DIR=${SODIUM_DIR}" >> $GITHUB_ENV
@@ -477,7 +503,7 @@ jobs:
echo %SODIUM_VER%>> urls.txt
- name: Cache downloaded files
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: downloads
key: ${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('urls.txt') }}
@@ -575,7 +601,7 @@ jobs:
DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
DYNAMIC_PYTHON3_STABLE_ABI=${PYTHON3_STABLE} \
DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR} \
DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR_SLASH} \
STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }}
else
mingw32-make -f Make_ming.mak -j2 \
@@ -660,7 +686,8 @@ jobs:
- name: Codecov
timeout-minutes: 20
if: matrix.coverage
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
directory: src
flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }}
token: ${{ secrets.CODECOV_TOKEN }}

5
.gitignore vendored
View File

@@ -97,6 +97,11 @@ src/kword_test
# Generated by "make install"
runtime/doc/doctags
# Temporarily generated by "runtime/syntax/generator/make"
runtime/syntax/generator/generator.err
runtime/syntax/generator/sanity_check.err
runtime/syntax/generator/vim.vim.rc
# Generated by "make shadow". The directory names could be anything but we
# restrict them to shadow (the default) or shadow-*
src/shadow

View File

@@ -1,7 +1,7 @@
# List of distributed Vim files.
# Used by Makefile.
# source files for all source archives
# Source files for all source archives.
SRC_ALL = \
.cirrus.yml \
.gitattributes \
@@ -20,6 +20,7 @@ SRC_ALL = \
ci/config.mk*.sed \
ci/if_ver*.vim \
ci/setup-xvfb.sh \
ci/remove_snap.sh \
src/Make_all.mak \
src/README.md \
src/alloc.c \
@@ -429,7 +430,7 @@ SRC_ALL = \
src/xdiff/xutils.h \
# source files for Unix only
# Source files for Unix-like only.
SRC_UNIX = \
Makefile \
Filelist \
@@ -495,7 +496,7 @@ SRC_UNIX = \
src/which.sh \
src/xxd/Makefile \
# source files for both DOS and Unix
# Source files for both MS Windows and Unix-like.
SRC_DOS_UNIX = \
src/gui_xim.c \
src/if_cscope.c \
@@ -521,7 +522,7 @@ SRC_DOS_UNIX = \
src/proto/if_tcl.pro \
src/typemap \
# source files for MS-Windows (also in the extra archive)
# Source files for MS Windows (also in the extra archive).
SRC_DOS = \
src/GvimExt/*.mak \
src/GvimExt/GvimExt.reg \
@@ -597,7 +598,7 @@ SRC_DOS = \
nsis/lang/*.nsi \
uninstall.txt \
# source files for DOS without CR/LF translation (also in the extra archive)
# Source files for MS Windows without CR/LF translation (also in the extra archive).
SRC_DOS_BIN = \
src/tearoff.bmp \
src/tools.bmp \
@@ -614,10 +615,10 @@ SRC_DOS_BIN = \
runtime/bitmaps/vim.ico \
nsis/icons.zip \
# source files for Amiga, DOS, etc. (also in the extra archive)
# Source files for Amiga, DOS, etc. (also in the extra archive).
SRC_AMI_DOS = \
# source files for Amiga (also in the extra archive)
# Source files for Amiga (also in the extra archive).
SRC_AMI = \
README_amisrc.txt \
README_amisrc.txt.info \
@@ -631,7 +632,7 @@ SRC_AMI = \
src/testdir/amiga.vim \
src/xxd/Make_amiga.mak \
# source files for Haiku (also in the extra archive)
# Source files for Haiku (also in the extra archive).
SRC_HAIKU = \
README_haiku.txt \
src/os_haiku.h \
@@ -640,7 +641,7 @@ SRC_HAIKU = \
src/gui_haiku.h \
src/proto/gui_haiku.pro \
# source files for the Mac (also in the extra archive)
# Source files for the Mac (also in the extra archive).
SRC_MAC = \
src/INSTALLmac.txt \
src/os_mac.h \
@@ -649,7 +650,7 @@ SRC_MAC = \
src/proto/os_mac_conv.pro \
src/proto/os_macosx.pro \
# source files for VMS (in the extra archive)
# Source files for VMS (in the extra archive).
SRC_VMS = \
src/INSTALLvms.txt \
src/Make_vms.mms \
@@ -663,7 +664,7 @@ SRC_VMS = \
src/xxd/Make_vms.mms \
vimtutor.com \
# source files for QNX (in the extra archive)
# Source files for QNX (in the extra archive).
SRC_QNX = \
src/os_qnx.c \
src/os_qnx.h \
@@ -671,7 +672,7 @@ SRC_QNX = \
src/proto/gui_photon.pro \
src/proto/os_qnx.pro \
# source files for the extra archive (all sources that are not for Unix)
# Source files for the extra archive (all sources that are not for Unix).
SRC_EXTRA = \
$(SRC_AMI) \
$(SRC_AMI_DOS) \
@@ -686,7 +687,7 @@ SRC_EXTRA = \
src/os_vms_fix.com \
src/toolbar.phi \
# runtime files for all distributions
# Runtime files for all distributions.
RT_ALL = \
README.txt \
README.md \
@@ -777,12 +778,12 @@ RT_ALL = \
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \
# runtime files for all distributions without CR-NL translation
# Runtime files for all distributions without CR/LF translation.
RT_ALL_BIN = \
runtime/doc/tags \
runtime/print/*.ps \
# runtime script files
# Runtime script files.
RT_SCRIPTS = \
runtime/filetype.vim \
runtime/scripts.vim \
@@ -818,15 +819,23 @@ RT_SCRIPTS = \
runtime/plugin/README.txt \
runtime/syntax/*.vim \
runtime/syntax/README.txt \
runtime/syntax/modula2/opt/*.vim \
runtime/syntax/shared/*.vim \
runtime/syntax/shared/README.txt \
runtime/syntax/Makefile \
runtime/syntax/testdir/README.txt \
runtime/syntax/testdir/runtest.vim \
runtime/syntax/testdir/ftplugin/*.* \
runtime/syntax/testdir/input/*.* \
runtime/syntax/testdir/input/setup/*.* \
runtime/syntax/testdir/dumps/*.dump \
runtime/syntax/generator/Makefile \
runtime/syntax/generator/README.md \
runtime/syntax/generator/gen_syntax_vim.vim \
runtime/syntax/generator/update_date.vim \
runtime/syntax/generator/vim.vim.base \
# Unix runtime
# Unix-like runtime.
RT_UNIX = \
README_unix.txt \
runtime/hi16-action-make.png \
@@ -834,7 +843,7 @@ RT_UNIX = \
runtime/gvim.desktop \
runtime/vim.desktop \
# Unix and DOS runtime without CR-LF translation
# Unix-like and MS Windows runtime without CR/LF translation.
RT_UNIX_DOS_BIN = \
runtime/vim16x16.gif \
runtime/vim16x16.png \
@@ -846,10 +855,10 @@ RT_UNIX_DOS_BIN = \
runtime/vim48x48.png \
runtime/vim48x48.xpm \
# runtime not for unix or extra
# Runtime not for Unix-like or extra.
RT_NO_UNIX = \
# runtime for Amiga (also in the extra archive)
# Runtime for Amiga (also in the extra archive).
RT_AMI_DOS = \
runtime/doc/evim.man \
runtime/doc/vim.man \
@@ -857,20 +866,22 @@ RT_AMI_DOS = \
runtime/doc/vimtutor.man \
runtime/doc/xxd.man \
# DOS runtime (also in the extra archive)
# MS Windows runtime (also in the extra archive).
RT_DOS = \
README_dos.txt \
runtime/doc/Make_mvc.mak \
runtime/indent/Make_mvc.mak \
runtime/tutor/Make_mvc.mak \
runtime/lang/Make_mvc.mak \
vimtutor.bat \
# DOS runtime without CR-LF translation (also in the extra archive)
# MS Windows runtime without CR/LF translation (also in the extra archive).
RT_DOS_BIN = \
runtime/vimlogo.cdr \
runtime/vimlogo.eps \
runtime/vimlogo.gif \
runtime/vimlogo.pdf \
runtime/vimlogo.svg \
# Amiga runtime (also in the extra archive)
RT_AMI = \
@@ -892,7 +903,7 @@ RT_AMI = \
runtime/tutor.info \
runtime/tutor/*.info \
# runtime files in extra archive
# Runtime files in extra archive.
RT_EXTRA = \
$(RT_AMI) \
$(RT_AMI_DOS) \
@@ -900,46 +911,46 @@ RT_EXTRA = \
$(RT_DOS_BIN) \
README_mac.txt \
# included in all Amiga archives
# Included in all Amiga archives.
ROOT_AMI = \
Contents \
Contents.info \
runtime.info \
vimdir.info \
# root files for the extra archive
# Root files for the extra archive.
ROOT_EXTRA = \
$(ROOT_AMI) \
# files for Amiga small binary (also in extra archive)
# Files for Amiga small binary (also in extra archive).
BIN_AMI = \
README_amibin.txt \
README_amibin.txt.info \
Vim.info \
Xxd.info \
# files for DOS binary (also in extra archive)
# Files for MS Windows binary (also in extra archive).
BIN_DOS = \
README_bindos.txt \
uninstall.txt \
# files for Win32 OLE binary (also in extra archive)
# Files for Win32 OLE binary (also in extra archive).
BIN_OLE = \
README_ole.txt \
# files for Win32s binary (also in extra archive)
# Files for Win32s binary (also in extra archive).
BIN_W32S = \
README_w32s.txt \
# files for VMS binary (also in extra archive)
# Files for VMS binary (also in extra archive).
BIN_VMS = \
README_vms.txt \
# files for OS/2 binary (also in extra archive)
# Files for OS/2 binary (also in extra archive).
BIN_OS2 = \
README_os2.txt \
# binary files for extra archive
# Binary files for extra archive.
BIN_EXTRA = \
$(BIN_AMI) \
$(BIN_DOS) \
@@ -948,7 +959,7 @@ BIN_EXTRA = \
$(BIN_VMS) \
$(BIN_OS2) \
# all files for extra archive
# All files for extra archive.
EXTRA = \
$(BIN_EXTRA) \
$(ROOT_EXTRA) \
@@ -957,7 +968,7 @@ EXTRA = \
README_extra.txt \
runtime/vimlogo.xpm \
# files in READMEdir that are included from the top dir
# Files in READMEdir that are included from the top dir.
IN_README_DIR = \
README.txt.info \
README_ami.txt \
@@ -977,6 +988,7 @@ IN_README_DIR = \
README_src.txt \
README_srcdos.txt \
README_unix.txt \
README_vimlogo.txt \
README_vms.txt \
README_w32s.txt \
Contents \
@@ -987,7 +999,7 @@ IN_README_DIR = \
src.info \
vimdir.info \
# generic language files
# Generic language files.
LANG_GEN = \
runtime/doc/*-da.1 \
runtime/doc/*-da.UTF-8.1 \
@@ -1040,7 +1052,7 @@ LANG_GEN = \
runtime/spell/main.aap \
runtime/spell/*.vim \
# generic language files, binary
# Generic language files, binary.
LANG_GEN_BIN = \
runtime/spell/README_en.txt \
runtime/spell/en.ascii.spl \
@@ -1050,7 +1062,7 @@ LANG_GEN_BIN = \
runtime/spell/en.latin1.sug \
runtime/spell/en.utf-8.sug \
# all files for lang archive
# All files for lang archive.
LANG_SRC = \
src/po/README.txt \
src/po/README_mingw.txt \
@@ -1070,7 +1082,7 @@ LANG_SRC = \
src/po/big5corr.c \
src/po/*.po \
# the language files for the Win32 lang archive
# The language files for the Win32 lang archive.
LANG_DOS = \
src/po/*.mo \

View File

@@ -0,0 +1,11 @@
The Python project that creates `vimlogo.svg` can be found at
`https://github.com/ShayHill/vimlogo`. The Vim license applies.
`vimlogo.svg` is an effort to remove errors and inadvertant inconsistencies
from the original vim logo while maintaing the original design. `vimlogo.svg`
is based on the `vimlogo.svg` file (previously?) found at
`https://www.vim.org/logos.php`
As of 2024 Jan 30, `vimlogo.svg` is a separate project from `vimlogo.cdr`,
`vimlogo.eps`, `vimlogo.gif`, `vimlogo.pdf`, and `vimlogo.xpm`, all of which
are slightly different from each other.

13
ci/remove_snap.sh Normal file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env sh
pushd /etc/apt/preferences.d/
cat > nosnap.pref <<EOF
# To prevent repository packages from triggering the installation of snap,
# this file forbids snapd from being installed by APT.
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOF
popd
snap remove --purge $(snap list | awk '!/^Name|^core/ {print $1}')
apt-get purge -y snapd

View File

@@ -29,18 +29,26 @@ To build the installable .exe:
4. Get a "diff.exe" program. If you skip this the built-in diff will always
be used (which is fine for most users). If you do have your own
"diff.exe" put it in the "../.." directory (above the "vim90" directory,
"diff.exe" put it in the "../.." directory (above the "vim91" directory,
it's the same for all Vim versions).
You can find one in previous Vim versions or in this archive:
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
5 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim90"
5. Also put "winpty32.dll" and "winpty-agent.exe" in "../.." (above the "vim91"
directory). This is required for the terminal window.
6. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
6. To use stronger encryption, add the Sodium library. You can get it here:
https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip
Unpack the archive. Put the "libsodium.dll" from
path/to/libsodium/Win32/Release/v143/dynamic for the 32bit version or
path/to/libsodium/X64/Release/v143/dynamic for the 64bit version in the
"../.." directory (above the "vim91" directory, where "diff.exe" and
"winpty32.dll").
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
to do this on Unix. Make sure the file is in DOS file format!
7. Get gettext and iconv DLLs from the following site:
8. Get gettext and iconv DLLs from the following site:
https://github.com/mlocati/gettext-iconv-windows/releases
Both 64- and 32-bit versions are needed.
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract

View File

@@ -1,6 +1,6 @@
# NSIS file to create a self-installing exe for Vim.
# It requires NSIS version 3.0 or later.
# Last Change: 2014 Nov 5
# Last Change: 2024 Mar 17
Unicode true
@@ -58,6 +58,37 @@ Unicode true
!include "Sections.nsh"
!include "x64.nsh"
# See https://nsis.sourceforge.io/LogicLib
;FileExists is already part of LogicLib, but returns true for directories
;as well as files
!macro _FileExists2 _a _b _t _f
!insertmacro _LOGICLIB_TEMP
StrCpy $_LOGICLIB_TEMP "0"
;if path is not blank, continue to next check
StrCmp `${_b}` `` +4 0
;if path exists, continue to next check (IfFileExists returns true if this
;is a directory)
IfFileExists `${_b}` `0` +3
;if path is not a directory, continue to confirm exists
IfFileExists `${_b}\*.*` +2 0
StrCpy $_LOGICLIB_TEMP "1" ;file exists
;now we have a definitive value - the file exists or it does not
StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}`
!macroend
!undef FileExists
!define FileExists `"" FileExists2`
!macro _DirExists _a _b _t _f
!insertmacro _LOGICLIB_TEMP
StrCpy $_LOGICLIB_TEMP "0"
;if path is not blank, continue to next check
StrCmp `${_b}` `` +3 0
;if directory exists, continue to confirm exists
IfFileExists `${_b}\*.*` 0 +2
StrCpy $_LOGICLIB_TEMP "1"
StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}`
!macroend
!define DirExists `"" DirExists`
!define PRODUCT "Vim ${VER_MAJOR}.${VER_MINOR}"
!define UNINST_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall"
!define UNINST_REG_KEY_VIM "${UNINST_REG_KEY}\${PRODUCT}"
@@ -167,9 +198,11 @@ Page custom SetCustom ValidateCustom
!include "lang\danish.nsi"
!include "lang\dutch.nsi"
!include "lang\german.nsi"
!include "lang\greek.nsi"
!include "lang\italian.nsi"
!include "lang\japanese.nsi"
!include "lang\russian.nsi"
!include "lang\serbian.nsi"
!include "lang\simpchinese.nsi"
!include "lang\tradchinese.nsi"
!include "lang\turkish.nsi"
@@ -363,9 +396,6 @@ Section "$(str_section_exe)" id_section_exe
File /oname=gvim.exe ${VIMSRC}\gvim_ole.exe
!if /FileExists "${VIMSRC}\vim${BIT}.dll"
File ${VIMSRC}\vim${BIT}.dll
!endif
!if /FileExists "${VIMRT}\libsodium.dll"
File ${VIMRT}\libsodium.dll
!endif
File /oname=install.exe ${VIMSRC}\installw32.exe
File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe
@@ -377,9 +407,18 @@ Section "$(str_section_exe)" id_section_exe
File ..\uninstall.txt
File ${VIMRT}\*.vim
!if /FileExists "${VIMTOOLS}\diff.exe"
File ${VIMTOOLS}\diff.exe
!endif
!if /FileExists "${VIMTOOLS}\winpty${BIT}.dll"
File ${VIMTOOLS}\winpty${BIT}.dll
!endif
!if /FileExists "${VIMTOOLS}\winpty-agent.exe"
File ${VIMTOOLS}\winpty-agent.exe
!endif
!if /FileExists "${VIMTOOLS}\libsodium.dll"
File ${VIMTOOLS}\libsodium.dll
!endif
SetOutPath $0\colors
File /r ${VIMRT}\colors\*.*
@@ -388,17 +427,22 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMRT}\compiler\*.*
SetOutPath $0\doc
File ${VIMRT}\doc\*.txt
File /x uganda.nsis.txt ${VIMRT}\doc\*.txt
File ${VIMRT}\doc\tags
SetOutPath $0\ftplugin
File ${VIMRT}\ftplugin\*.*
SetOutPath $0\indent
File ${VIMRT}\indent\*.*
File ${VIMRT}\indent\README.txt
File ${VIMRT}\indent\*.vim
SetOutPath $0\keymap
File ${VIMRT}\keymap\README.txt
File ${VIMRT}\keymap\*.vim
SetOutPath $0\macros
File /r ${VIMRT}\macros\*.*
File /r /x *.info ${VIMRT}\macros\*.*
SetOutPath $0\pack
File /r ${VIMRT}\pack\*.*
@@ -416,7 +460,7 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMSRC}\vim.ico
SetOutPath $0\syntax
File /r /x testdir ${VIMRT}\syntax\*.*
File /r /x testdir /x generator /x Makefile ${VIMRT}\syntax\*.*
SetOutPath $0\spell
File ${VIMRT}\spell\*.txt
@@ -428,7 +472,7 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMRT}\tools\*.*
SetOutPath $0\tutor
File ${VIMRT}\tutor\*.*
File /x Makefile /x *.info ${VIMRT}\tutor\*.*
SectionEnd
##########################################################
@@ -559,10 +603,7 @@ Section "$(str_section_nls)" id_section_nls
SectionIn 1 3
SetOutPath $0\lang
File /r ${VIMRT}\lang\*.*
SetOutPath $0\keymap
File ${VIMRT}\keymap\README.txt
File ${VIMRT}\keymap\*.vim
File /r /x Makefile ${VIMRT}\lang\*.*
SetOutPath $0
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
"${GETTEXT}\gettext${BIT}\libintl-8.dll" \
@@ -942,7 +983,7 @@ Section "un.$(str_unsection_register)" id_unsection_register
SectionIn RO
# Apparently $INSTDIR is set to the directory where the uninstaller is
# created. Thus the "vim61" directory is included in it.
# created. Thus the "vim91" directory is included in it.
StrCpy $0 "$INSTDIR"
# delete the context menu entry and batch files
@@ -1039,6 +1080,7 @@ Section "un.$(str_unsection_exe)" id_unsection_exe
RMDir /r $0\tutor
RMDir /r $0\lang
RMDir /r $0\keymap
RMDir /r $0\bitmaps
Delete $0\*.exe
Delete $0\*.bat
Delete $0\*.vim
@@ -1048,14 +1090,17 @@ Section "un.$(str_unsection_exe)" id_unsection_exe
MessageBox MB_OK|MB_ICONEXCLAMATION $(str_msg_rm_exe_fail) /SD IDOK
${EndIf}
# No error message if the "vim62" directory can't be removed, the
# No error message if the "vim91" directory can't be removed, the
# gvimext.dll may still be there.
RMDir $0
SectionEnd
# Remove "vimfiles" directory under the specified directory.
!macro RemoveVimfiles dir
${If} ${FileExists} ${dir}\vimfiles
${If} ${FileExists} ${dir}\_viminfo
Delete ${dir}\_viminfo
${EndIf}
${If} ${DirExists} ${dir}\vimfiles
RMDir ${dir}\vimfiles\colors
RMDir ${dir}\vimfiles\compiler
RMDir ${dir}\vimfiles\doc
@@ -1065,6 +1110,9 @@ SectionEnd
RMDir ${dir}\vimfiles\keymap
RMDir ${dir}\vimfiles\plugin
RMDir ${dir}\vimfiles\syntax
${If} ${FileExists} ${dir}\vimfiles\.netrwhist*
Delete ${dir}\vimfiles\.netrwhist*
${EndIf}
RMDir ${dir}\vimfiles
${EndIf}
!macroend

276
nsis/lang/greek.nsi Normal file
View File

@@ -0,0 +1,276 @@
# vi:set ts=8 sts=4 sw=4 et fdm=marker:
#
# greek.nsi: Greek language strings for gvim NSIS installer.
#
# Locale ID : 1032
# fileencoding : UTF-8
# Author : Christos Longros
!insertmacro MUI_LANGUAGE "Greek"
# Overwrite the default translation.
# These strings should be always English. Otherwise dosinst.c fails.
LangString ^SetupCaption ${LANG_GREEK} \
"$(^Name) Setup"
LangString ^UninstallCaption ${LANG_GREEK} \
"$(^Name) Uninstall"
##############################################################################
# MUI Configuration Strings {{{1
##############################################################################
#LangString str_dest_folder ${LANG_GREEK} \
# "Φάκελος προορισμός (Πρέπει να τελειώνει σε $\"vim$\")"
LangString str_show_readme ${LANG_GREEK} \
"Εμφάνιση README μετά την ολοκλήρωση της εγκατάστασης"
# Install types:
LangString str_type_typical ${LANG_GREEK} \
"Typical"
LangString str_type_minimal ${LANG_GREEK} \
"Minimal"
LangString str_type_full ${LANG_GREEK} \
"Full"
##############################################################################
# Section Titles & Description {{{1
##############################################################################
LangString str_section_old_ver ${LANG_GREEK} \
"Απεγκατάσταση υπάρχουσων εκδόσεων"
LangString str_desc_old_ver ${LANG_GREEK} \
"Απεγκατάσταση υπάρχουσων εκδόσεων Vim από το σύστημά σας."
LangString str_section_exe ${LANG_GREEK} \
"Vim GUI and runtime files"
LangString str_desc_exe ${LANG_GREEK} \
"Vim GUI executables and runtime files. This component is required."
LangString str_section_console ${LANG_GREEK} \
"Vim console program"
LangString str_desc_console ${LANG_GREEK} \
"Console version of Vim (vim.exe)."
LangString str_section_batch ${LANG_GREEK} \
"Δημιουργία αρχείων .bat"
LangString str_desc_batch ${LANG_GREEK} \
"Δημιουργία αρχείων .bat από παράγωγα Vim στον κατάλογο των Windows για \
χρήση γραμμής εντολών."
LangString str_group_icons ${LANG_GREEK} \
"Δημιουργία εικονιδίων Vim"
LangString str_desc_icons ${LANG_GREEK} \
"Δημιουργία εικονιδίων για τον Vim σε διάφορες τοποθεσίες για την διευκόλυνση της προσβασιμότητας."
LangString str_section_desktop ${LANG_GREEK} \
"Στην επιφάνεια εργασίας"
LangString str_desc_desktop ${LANG_GREEK} \
"Δημιουργία εικονιδίων για gVim εκτελέσιμα στην επιφάνεια εργασίας."
LangString str_section_start_menu ${LANG_GREEK} \
"In the Start Menu Programs Folder"
LangString str_desc_start_menu ${LANG_GREEK} \
"Προσθήκη του Vim στον φάκελο προγραμμάτων του μενού εκκίνησης."
#LangString str_section_quick_launch ${LANG_GREEK} \
# "In the Quick Launch Bar"
#LangString str_desc_quick_launch ${LANG_GREEK} \
# "Add Vim shortcut in the quick launch bar."
LangString str_section_edit_with ${LANG_GREEK} \
"Add Vim Context Menu"
LangString str_desc_edit_with ${LANG_GREEK} \
"Add Vim to the $\"Open With...$\" context menu list."
#LangString str_section_edit_with32 ${LANG_GREEK} \
# "32-bit Version"
#LangString str_desc_edit_with32 ${LANG_GREEK} \
# "Add Vim to the $\"Open With...$\" context menu list \
# for 32-bit applications."
#LangString str_section_edit_with64 ${LANG_GREEK} \
# "64-bit Version"
#LangString str_desc_edit_with64 ${LANG_GREEK} \
# "Add Vim to the $\"Open With...$\" context menu list \
# for 64-bit applications."
LangString str_section_vim_rc ${LANG_GREEK} \
"Δημιουργία προεπιλεγμένων ρυθμίσεων"
LangString str_desc_vim_rc ${LANG_GREEK} \
"Δημιουργία προεπιλεγμένου αρχείου ρυθμίσεων (_vimrc) αν δεν υπάρχει ήδη."
LangString str_group_plugin ${LANG_GREEK} \
"Δημιουργία καταλόγων Plugin"
LangString str_desc_plugin ${LANG_GREEK} \
"Δημιουργία καταλόγων plugin. Οι κατάλογοι Plugin επιτρέπουν την επέκταση του Vim \
με την μεταφορά ενός αρχείου σε έναν κατάλογο."
LangString str_section_plugin_home ${LANG_GREEK} \
"Private"
LangString str_desc_plugin_home ${LANG_GREEK} \
"Δημιουργία καταλόγων plugin στον κατάλογο HOME."
LangString str_section_plugin_vim ${LANG_GREEK} \
"Shared"
LangString str_desc_plugin_vim ${LANG_GREEK} \
"Δημιουργία καταλόγων plugin στον κατάλογο εγκατάστασης του Vim, χρησιμοποιείται από \
όλους στο σύστημα."
LangString str_section_nls ${LANG_GREEK} \
"Native Language Support"
LangString str_desc_nls ${LANG_GREEK} \
"Install files for native language support."
LangString str_unsection_register ${LANG_GREEK} \
"Unregister Vim"
LangString str_desc_unregister ${LANG_GREEK} \
"Unregister Vim from the system."
LangString str_unsection_exe ${LANG_GREEK} \
"Remove Vim Executables/Runtime Files"
LangString str_desc_rm_exe ${LANG_GREEK} \
"Remove all Vim executables and runtime files."
LangString str_ungroup_plugin ${LANG_GREEK} \
"Remove plugin directories"
LangString str_desc_rm_plugin ${LANG_GREEK} \
"Remove the plugin directories if they are empty."
LangString str_unsection_plugin_home ${LANG_GREEK} \
"Private"
LangString str_desc_rm_plugin_home ${LANG_GREEK} \
"Remove the plugin directories from HOME directory."
LangString str_unsection_plugin_vim ${LANG_GREEK} \
"Shared"
LangString str_desc_rm_plugin_vim ${LANG_GREEK} \
"Remove the plugin directories from Vim install directory."
LangString str_unsection_rootdir ${LANG_GREEK} \
"Remove the Vim root directory"
LangString str_desc_rm_rootdir ${LANG_GREEK} \
"Remove the Vim root directory. It contains your Vim configuration files!"
##############################################################################
# Messages {{{1
##############################################################################
#LangString str_msg_too_many_ver ${LANG_GREEK} \
# "Found $vim_old_ver_count Vim versions on your system.$\r$\n\
# This installer can only handle ${VIM_MAX_OLD_VER} versions \
# at most.$\r$\n\
# Please remove some versions and start again."
#LangString str_msg_invalid_root ${LANG_GREEK} \
# "Invalid install path: $vim_install_root!$\r$\n\
# It should end with $\"vim$\"."
#LangString str_msg_bin_mismatch ${LANG_GREEK} \
# "Binary path mismatch!$\r$\n$\r$\n\
# Expect the binary path to be $\"$vim_bin_path$\",$\r$\n\
# but system indicates the binary path is $\"$INSTDIR$\"."
#LangString str_msg_vim_running ${LANG_GREEK} \
# "Vim is still running on your system.$\r$\n\
# Please close all instances of Vim before you continue."
#LangString str_msg_register_ole ${LANG_GREEK} \
# "Attempting to register Vim with OLE. \
# There is no message indicates whether this works or not."
#LangString str_msg_unreg_ole ${LANG_GREEK} \
# "Attempting to unregister Vim with OLE. \
# There is no message indicates whether this works or not."
#LangString str_msg_rm_start ${LANG_GREEK} \
# "Uninstalling the following version:"
#LangString str_msg_rm_fail ${LANG_GREEK} \
# "Fail to uninstall the following version:"
#LangString str_msg_no_rm_key ${LANG_GREEK} \
# "Cannot find uninstaller registry key."
#LangString str_msg_no_rm_reg ${LANG_GREEK} \
# "Cannot find uninstaller from registry."
#LangString str_msg_no_rm_exe ${LANG_GREEK} \
# "Cannot access uninstaller."
#LangString str_msg_rm_copy_fail ${LANG_GREEK} \
# "Fail to copy uninstaller to temporary directory."
#LangString str_msg_rm_run_fail ${LANG_GREEK} \
# "Αποτυχία εκτέλεσης της λειτουργίας απεγκατάστασης."
#LangString str_msg_abort_install ${LANG_GREEK} \
# "Installer will abort."
LangString str_msg_install_fail ${LANG_GREEK} \
"Η εγκατάσταση απέτυχε. Better luck next time."
LangString str_msg_rm_exe_fail ${LANG_GREEK} \
"Μερικά αρχεία στο $0 δεν έχουν διαγραφεί!$\r$\n\
Πρέπει να το κάνετε χειροκίνητα."
#LangString str_msg_rm_root_fail ${LANG_GREEK} \
# "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αδύνατη η αφαίρεση $\"$vim_install_root$\", δεν είναι κενό!"
LangString str_msg_uninstalling ${LANG_GREEK} \
"Απεγκατάσταση παλιάς έκδοσης the old version..."
LangString str_msg_registering ${LANG_GREEK} \
"Καταχώρηση..."
LangString str_msg_unregistering ${LANG_GREEK} \
"Unregistering..."
##############################################################################
# Dialog Box {{{1
##############################################################################
LangString str_vimrc_page_title ${LANG_GREEK} \
"Επιλογή ρυθμίσεων _vimrc"
LangString str_vimrc_page_subtitle ${LANG_GREEK} \
"Choose the settings for enhancement, keyboard and mouse."
LangString str_msg_compat_title ${LANG_GREEK} \
" Συμπεριφορά Vi / Vim "
LangString str_msg_compat_desc ${LANG_GREEK} \
"&Compatibility and enhancements"
LangString str_msg_compat_vi ${LANG_GREEK} \
"Vi compatible"
LangString str_msg_compat_vim ${LANG_GREEK} \
"Vim original"
LangString str_msg_compat_defaults ${LANG_GREEK} \
"Vim with some enhancements (load defaults.vim)"
LangString str_msg_compat_all ${LANG_GREEK} \
"Vim with all enhancements (load vimrc_example.vim) (Default)"
LangString str_msg_keymap_title ${LANG_GREEK} \
" Mappings "
LangString str_msg_keymap_desc ${LANG_GREEK} \
"&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
LangString str_msg_keymap_default ${LANG_GREEK} \
"Do not remap keys (Default)"
LangString str_msg_keymap_windows ${LANG_GREEK} \
"Remap a few keys"
LangString str_msg_mouse_title ${LANG_GREEK} \
" Ποντίκι "
LangString str_msg_mouse_desc ${LANG_GREEK} \
"&Behavior of right and left buttons"
LangString str_msg_mouse_default ${LANG_GREEK} \
"Right: popup menu, Left: visual mode (Default)"
LangString str_msg_mouse_windows ${LANG_GREEK} \
"Right: popup menu, Left: select mode (Windows)"
LangString str_msg_mouse_unix ${LANG_GREEK} \
"Right: extends selection, Left: visual mode (Unix)"

View File

@@ -22,20 +22,20 @@ LangString ^UninstallCaption ${LANG_RUSSIAN} \
##############################################################################
#LangString str_dest_folder ${LANG_RUSSIAN} \
# "Маршрут к каталогу установки (должен оканчиваться каталогом $\"vim$\")"
# "Маршрут установки программы (должен завершаться каталогом $\"vim$\")"
LangString str_show_readme ${LANG_RUSSIAN} \
"После окончания установки ознакомиться с кратким описанием"
" Ознакомиться с кратким описанием программы"
# Install types:
LangString str_type_typical ${LANG_RUSSIAN} \
"Стандартная"
"Стандартный"
LangString str_type_minimal ${LANG_RUSSIAN} \
"Минимальная"
"Минимальный"
LangString str_type_full ${LANG_RUSSIAN} \
"Полная"
"Полный"
##############################################################################
@@ -50,59 +50,61 @@ LangString str_desc_old_ver ${LANG_RUSSIAN} \
LangString str_section_exe ${LANG_RUSSIAN} \
"Графический интерфейс и вспомогательные файлы"
LangString str_desc_exe ${LANG_RUSSIAN} \
"Графический интерфейс программы Vim и все необходимые для этого файлы. \
"Исполняемые файлы и все необходимые для работы программы файлы. \
Это обязательный компонент"
LangString str_section_console ${LANG_RUSSIAN} \
"Консольная программа Vim"
LangString str_desc_console ${LANG_RUSSIAN} \
"Вариант редактора Vim (vim.exe), используемый в командной оболочке"
"Вариант редактора Vim (vim.exe), используемый для работы в командной \
оболочке"
LangString str_section_batch ${LANG_RUSSIAN} \
"Создать командные файлы"
LangString str_desc_batch ${LANG_RUSSIAN} \
"Создание командных bat-файлов позволяющих работать с редактором \
Vim из командной строки Windows"
"Создание командных bat-файлов в каталоге Windows для работы с редактором \
Vim из командной строки"
LangString str_group_icons ${LANG_RUSSIAN} \
"Создать ярлыки для редактора Vim"
LangString str_desc_icons ${LANG_RUSSIAN} \
"Создание ярлыков редактора Vim для облегчения запуска программы"
"Создание ярлыков программы для удобного и быстрого запуска редактора Vim"
LangString str_section_desktop ${LANG_RUSSIAN} \
"На Рабочем столе"
LangString str_desc_desktop ${LANG_RUSSIAN} \
"Создание ярлыков программы Gvim на Рабочем столе"
"Создание ярлыков редактора Vim на Рабочем столе"
LangString str_section_start_menu ${LANG_RUSSIAN} \
"В меню кнопки Пуск"
LangString str_desc_start_menu ${LANG_RUSSIAN} \
"Создание ярлыков программы Gvim в меню кнопки Пуск"
"Создание ярлыков редактора Vim в меню кнопки Пуск"
#LangString str_section_quick_launch ${LANG_RUSSIAN} \
# "На панели быстрого запуска"
#LangString str_desc_quick_launch ${LANG_RUSSIAN} \
# "Создание ярлыков программы GVim на панели быстрого запуска"
# "Создание ярлыков редактора Vim на панели быстрого запуска"
LangString str_section_edit_with ${LANG_RUSSIAN} \
"В контекстном меню"
"Запуск редактора Vim из контекстного меню"
LangString str_desc_edit_with ${LANG_RUSSIAN} \
"Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню"
"Добавление необходимой строки в пункт контекстного меню \
«Открыть с помощью...»"
#LangString str_section_edit_with32 ${LANG_RUSSIAN} \
# "32-разрядная версия программы"
# "Для 32-разрядной версии программы"
#LangString str_desc_edit_with32 ${LANG_RUSSIAN} \
# "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню \
# для 32-разрядных приложений"
# "Добавление в пункт контекстного меню \
# «Открыть с помощью...» 32-разрядных приложений"
#LangString str_section_edit_with64 ${LANG_RUSSIAN} \
# "64-разрядная версия программы"
# "Для 64-разрядной версии программы"
#LangString str_desc_edit_with64 ${LANG_RUSSIAN} \
# "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню \
# для 64-разрядных приложений"
# "Добавление в пункт контекстного меню \
# «Открыть с помощью...» 64-разрядных приложений"
LangString str_section_vim_rc ${LANG_RUSSIAN} \
"Настройки программы по умолчанию"
"Начальная настройка программы"
LangString str_desc_vim_rc ${LANG_RUSSIAN} \
"Создание файла _vimrc с предустановленными настройками, если нет других \
файлов настроек"
@@ -110,25 +112,31 @@ LangString str_desc_vim_rc ${LANG_RUSSIAN} \
LangString str_group_plugin ${LANG_RUSSIAN} \
"Создать каталог для подключаемых модулей"
LangString str_desc_plugin ${LANG_RUSSIAN} \
"Создание каталога для размещения подключаемых модулей, которые расширяют \
возможности редактора Vim"
"Создание каталога для подключаемых модулей, которые расширяют возможности \
редактора Vim"
LangString str_section_plugin_home ${LANG_RUSSIAN} \
"Личный каталог"
LangString str_desc_plugin_home ${LANG_RUSSIAN} \
"Создание каталога для подключаемых модулей в домашнем каталоге пользователя"
"В домашнем каталоге пользователя. Модули в этом каталоге доступны только \
этому пользователю"
LangString str_section_plugin_vim ${LANG_RUSSIAN} \
"Общий каталог"
LangString str_desc_plugin_vim ${LANG_RUSSIAN} \
"Создание каталога для подключаемых модулей в каталоге установки редактора Vim. \
Модули в этом каталоге будут доступны для любого пользователя \
зарегистрировавшегося в системе"
"В каталоге установки редактора Vim. Модули в этом каталоге доступны для \
всех пользователей"
#LangString str_section_vis_vim ${LANG_RUSSIAN} \
# "Подключаемый модуль VisVim"
#LangString str_desc_vis_vim ${LANG_RUSSIAN} \
# "Подключаемый модуль VisVim используется для интеграции с \
# Microsoft Visual Studio"
LangString str_section_nls ${LANG_RUSSIAN} \
"Поддержка региональных языков"
LangString str_desc_nls ${LANG_RUSSIAN} \
"Установка файлов для поддержки региональных языков операционной системы"
"Установка файлов для работы программе на различных региональных языках"
LangString str_unsection_register ${LANG_RUSSIAN} \
"Отменить регистрацию компонентов программы Vim"
@@ -158,8 +166,8 @@ LangString str_desc_rm_plugin_vim ${LANG_RUSSIAN} \
LangString str_unsection_rootdir ${LANG_RUSSIAN} \
"Удалить основной каталог программы Vim"
LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \
"Удаление основного каталога программы Vim. В этом каталоге находятся файлы \
настроек!"
"Удаление основного каталога программы Vim. В этом каталоге находятся \
файлы настроек!"
##############################################################################
@@ -199,10 +207,11 @@ LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \
# "Произошёл сбой при выполнении удаления следующих версий программы:"
#LangString str_msg_no_rm_key ${LANG_RUSSIAN} \
# "Не удалось найти раздел реестра, содержащий информацию об удалении программы"
# "Не удалось найти раздел реестра, содержащий информацию об удалении \
# программы"
#LangString str_msg_no_rm_reg ${LANG_RUSSIAN} \
# "Не удалось найти программу выполняющую удаление, указанную в разделе реестра"
# "Не удалось найти указанную в реестре программу, которая выполняет удаление"
#LangString str_msg_no_rm_exe ${LANG_RUSSIAN} \
# "Отсутствуют права на доступ к программе, выполняющей удаление"
@@ -219,14 +228,15 @@ LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \
LangString str_msg_install_fail ${LANG_RUSSIAN} \
"Произошла ошибка при установке программы. Попробуйте повторить установку \
немного попозже"
# когда луна будет в другой фазе и ветер должен дуть с юго‐запада
# когда Луна будет в другой фазе и ветер должен дуть с юго‐запада
LangString str_msg_rm_exe_fail ${LANG_RUSSIAN} \
"Некоторые файлы не были удалены из каталога $0 $\r$\n\
Необходимо выполнить их удаление самостоятельно"
#LangString str_msg_rm_root_fail ${LANG_RUSSIAN} \
# "Внимание! В каталоге $\"$vim_install_root$\" содержатся файлы. Удаление каталога не выполнено"
# "Внимание! В каталоге $\"$vim_install_root$\" содержатся файлы. Удаление \
# каталога не выполнено"
LangString str_msg_uninstalling ${LANG_RUSSIAN} \
"Удаление предыдущих версий программ..."
@@ -245,7 +255,8 @@ LangString str_msg_unregistering ${LANG_RUSSIAN} \
LangString str_vimrc_page_title ${LANG_RUSSIAN} \
"Установка параметров программы"
LangString str_vimrc_page_subtitle ${LANG_RUSSIAN} \
"Параметры, используемые для клавиатуры, «мыши» и функциональности программы"
"Параметры, используемые для клавиатуры, манипулятора «мышь» и \
функциональности программы"
LangString str_msg_compat_title ${LANG_RUSSIAN} \
" Варианты использования программы "
@@ -256,27 +267,26 @@ LangString str_msg_compat_vi ${LANG_RUSSIAN} \
LangString str_msg_compat_vim ${LANG_RUSSIAN} \
"Работа в варианте функциональности редактора Vim"
LangString str_msg_compat_defaults ${LANG_RUSSIAN} \
"Работа редактора Vim с некоторыми улучшениями (файл defaults.vim)"
"Включить некоторые улучшения (из файла defaults.vim)"
LangString str_msg_compat_all ${LANG_RUSSIAN} \
"Работа редактора Vim со всеми улучшениями (файл vimrc_example.vim). \
Используется по умолчанию"
"Включить все улучшения (из файла vimrc_example.vim). Стандартно"
LangString str_msg_keymap_title ${LANG_RUSSIAN} \
" Клавиатурные команды "
LangString str_msg_keymap_desc ${LANG_RUSSIAN} \
"Клавиатурные команды используемые в ОС Windows (CTRL+V, CTRL+C, CTRL+S, CTRL+F и т. п.)"
"Изменение клавиатурных команд CTRL+V, CTRL+C, CTRL+S, CTRL+F и т. п."
LangString str_msg_keymap_default ${LANG_RUSSIAN} \
"Не изменять клавиатурные команды. Использовать принятые в редакторе Vim"
"Без изменения, использовать как принято в редакторе Vim"
LangString str_msg_keymap_windows ${LANG_RUSSIAN} \
"Изменить указанные клавиатурные команды"
"Изменить и использовать как принято в ОС Windows"
LangString str_msg_mouse_title ${LANG_RUSSIAN} \
" Манипулятор «мышь» "
LangString str_msg_mouse_desc ${LANG_RUSSIAN} \
"Действий правой и левой кнопки манипулятора «мышь»"
"Действия правой и левой кнопки манипулятора «мышь»"
LangString str_msg_mouse_default ${LANG_RUSSIAN} \
"Правая кнопка — всплывающее меню, левая кнопка — режим визуальный"
"Правая — всплывающее меню, левая — режим визуальный (Vim)"
LangString str_msg_mouse_windows ${LANG_RUSSIAN} \
"Правая кнопка — всплывающее меню, левая кнопка — режим выборки (как в ОС Windows)"
"Правая — всплывающее меню, левая — режим выборки (Windows)"
LangString str_msg_mouse_unix ${LANG_RUSSIAN} \
"Правая кнопка — расширяемый режим выбора, левая кнопка — режим визуальный (как в UNIXподобных ОС)"
"Правая — расширение выборки, левая — режим визуальный (UNIX)"

View File

@@ -6,7 +6,7 @@
# fileencoding : UTF-8
# Author : Ivan Pešić
!insertmacro MUI_LANGUAGE "Српски"
!insertmacro MUI_LANGUAGE "Serbian"
# Overwrite the default translation.

View File

@@ -2,8 +2,8 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2023 Aug 10
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2024 Feb 18
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
# These functions are moved here from runtime/filetype.vim to make startup
@@ -279,6 +279,19 @@ export def DtraceCheck()
endif
enddef
export def FTdef()
if get(g:, "filetype_def", "") == "modula2" || IsModula2()
SetFiletypeModula2()
return
endif
if exists("g:filetype_def")
exe "setf " .. g:filetype_def
else
setf def
endif
enddef
export def FTe()
if exists('g:filetype_euphoria')
exe 'setf ' .. g:filetype_euphoria
@@ -517,16 +530,53 @@ def IsLProlog(): bool
return getline(lnum) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)'
enddef
def IsModula2(): bool
return getline(nextnonblank(1)) =~ '\<MODULE\s\+\w\+\s*\%(\[.*]\s*\)\=;\|^\s*(\*'
enddef
def SetFiletypeModula2()
const KNOWN_DIALECTS = ["iso", "pim", "r10"]
const KNOWN_EXTENSIONS = ["gm2"]
const LINE_COUNT = 200
const TAG = '(\*!m2\(\w\+\)\%(+\(\w\+\)\)\=\*)'
var dialect = get(g:, "modula2_default_dialect", "pim")
var extension = get(g:, "modula2_default_extension", "")
var matches = []
# ignore unknown dialects or badly formatted tags
for lnum in range(1, min([line("$"), LINE_COUNT]))
matches = matchlist(getline(lnum), TAG)
if !empty(matches)
if index(KNOWN_DIALECTS, matches[1]) >= 0
dialect = matches[1]
endif
if index(KNOWN_EXTENSIONS, matches[2]) >= 0
extension = matches[2]
endif
break
endif
endfor
modula2#SetDialect(dialect, extension)
setf modula2
enddef
# Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod
export def FTmod()
if get(g:, "filetype_mod", "") == "modula2" || IsModula2()
SetFiletypeModula2()
return
endif
if exists("g:filetype_mod")
exe "setf " .. g:filetype_mod
elseif expand("<afile>") =~ '\<go.mod$'
setf gomod
elseif IsLProlog()
setf lprolog
elseif getline(nextnonblank(1)) =~ '\%(\<MODULE\s\+\w\+\s*;\|^\s*(\*\)'
setf modula2
elseif IsRapid()
setf rapid
else

View File

@@ -3,7 +3,7 @@
" Maintainer: Jason Franklin <jason@oneway.dev>
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Autoload Split: Bram Moolenaar
" Last Change: 2023 Jun 28
" Last Change: 2024 Jan 17 (make it work on AIX, see #13847)
let s:cpo_save = &cpo
set cpo-=C
@@ -13,14 +13,26 @@ let s:man_tag_depth = 0
let s:man_sect_arg = ""
let s:man_find_arg = "-w"
try
if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
let s:man_sect_arg = "-s"
let s:man_find_arg = "-l"
if !has("win32") && $OSTYPE !~ 'cygwin\|linux'
" cache the value
let uname_s = system('uname -s')
if uname_s =~ "SunOS" && system('uname -r') =~ "^5"
" Special Case for Man on SunOS
let s:man_sect_arg = "-s"
let s:man_find_arg = "-l"
elseif uname_s =~? 'AIX'
" Special Case for Man on AIX
let s:man_sect_arg = ""
let s:man_find_arg = ""
endif
endif
catch /E145:/
" Ignore the error in restricted mode
endtry
unlet! uname_s
func s:ParseIntoPageAndSection()
" Accommodate a reference that terminates in a hyphen.
"

View File

@@ -3,6 +3,9 @@ vim9script
# Language: Vim script
# Maintainer: github user lacygoill
# Last Change: 2023 Jun 29
#
# Includes Changes from Vim:
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
# NOTE: Whenever you change the code, make sure the tests are still passing:
#
@@ -381,7 +384,7 @@ const LINE_CONTINUATION_AT_EOL: string = '\%('
# It can be the start of a dictionary or a block.
# We only want to match the former.
.. '\|' .. $'^\%({STARTS_CURLY_BLOCK}\)\@!.*\zs{{'
.. '\)\s*\%(\s#.*\)\=$'
.. '\)\s*\%(\s#[^{].*\)\=$'
# }}}2
# SOL {{{2
# BACKSLASH_AT_SOL {{{3

View File

@@ -1,6 +1,7 @@
" ---------------------------------------------------------------------
" getscript.vim
" Author: Charles E. Campbell
" Maintainer: This runtime file is looking for a new maintainer.
" Original Author: Charles E. Campbell
" Date: Jan 21, 2014
" Version: 36
" Installing: :help glvs-install

View File

@@ -0,0 +1,31 @@
" Vim filetype plugin file
" Language: Modula-2
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2024 Jan 04
" Dialect can be one of pim, iso, r10
function modula2#GetDialect() abort
if exists("b:modula2.dialect")
return b:modula2.dialect
endif
if exists("g:modula2_default_dialect")
let dialect = g:modula2_default_dialect
else
let dialect = "pim"
endif
return dialect
endfunction
function modula2#SetDialect(dialect, extension = "") abort
if exists("b:modula2")
unlockvar! b:modula2
endif
let b:modula2 = #{ dialect: a:dialect, extension: a:extension }
lockvar! b:modula2
endfunction
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:

View File

@@ -1,11 +1,14 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
" Date: May 03, 2023
" Maintainer: This runtime file is looking for a new maintainer.
" Date: May 03, 2023
" 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>
" 2024 Feb 19 by Vim Project: (announce adoption)
" 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly
" Former Maintainer: Charles E Campbell
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
@@ -2020,7 +2023,7 @@ fun! NetrwStatusLine()
if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
" restore user's status line
let &stl = s:netrw_users_stl
let &l:stl = s:netrw_users_stl
let &laststatus = s:netrw_users_ls
if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
if exists("w:netrw_explore_line") |unlet w:netrw_explore_line |endif
@@ -2121,9 +2124,9 @@ fun! netrw#NetRead(mode,...)
let wholechoice = wholechoice . " " . choice
let ichoice = ichoice + 1
if ichoice > a:0
if !exists("g:netrw_quiet")
call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",3)
endif
if !exists("g:netrw_quiet")
call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",3)
endif
" call Dret("netrw#NetRead :2 getcwd<".getcwd().">")
return
endif
@@ -2544,9 +2547,9 @@ fun! netrw#NetWrite(...) range
let wholechoice= wholechoice . " " . choice
let ichoice = ichoice + 1
if choice > a:0
if !exists("g:netrw_quiet")
call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",13)
endif
if !exists("g:netrw_quiet")
call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",13)
endif
" call Dret("netrw#NetWrite")
return
endif
@@ -2817,7 +2820,7 @@ fun! netrw#NetWrite(...) range
if a:firstline == 1 && a:lastline == line("$")
" restore modifiability; usually equivalent to set nomod
let &mod= mod
let &l:mod= mod
" call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
elseif !exists("leavemod")
" indicate that the buffer has not been modified since last written
@@ -3006,7 +3009,7 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
setl isk-=/
filetype detect
" call Decho("..local filetype<".&ft."> for buf#".bufnr()."<".bufname().">")
let &isk= iskkeep
let &l:isk= iskkeep
" call Dredir("ls!","NetrwGetFile (renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">)")
let line1 = 1
let line2 = line("$")
@@ -5003,12 +5006,12 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
if g:netrw_chgwin >= 1
" call Decho("edit-a-file: changing window to #".g:netrw_chgwin.": (due to g:netrw_chgwin)",'~'.expand("<slnum>"))
if winnr("$")+1 == g:netrw_chgwin
" if g:netrw_chgwin is set to one more than the last window, then
" vertically split the last window to make that window available.
let curwin= winnr()
exe "NetrwKeepj keepalt ".winnr("$")."wincmd w"
vs
exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd ".curwin
" if g:netrw_chgwin is set to one more than the last window, then
" vertically split the last window to make that window available.
let curwin= winnr()
exe "NetrwKeepj keepalt ".winnr("$")."wincmd w"
vs
exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd ".curwin
endif
exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd w"
endif
@@ -6127,7 +6130,7 @@ fun! s:NetrwServerEdit(islocal,fname)
" used something like <cr>.
" call Decho("user must have closed server AND did not use ctrl-r",'~'.expand("<slnum>"))
if exists("g:netrw_browse_split")
unlet g:netrw_browse_split
unlet g:netrw_browse_split
endif
let g:netrw_browse_split= 0
if exists("s:netrw_browse_split_".winnr())
@@ -6161,7 +6164,7 @@ fun! s:NetrwServerEdit(islocal,fname)
if !ctrlr
" call Decho("server<".g:netrw_servername."> not available and ctrl-r not used",'~'.expand("<slnum>"))
if exists("g:netrw_browse_split")
unlet g:netrw_browse_split
unlet g:netrw_browse_split
endif
let g:netrw_browse_split= 0
call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,a:fname))
@@ -6679,14 +6682,14 @@ fun! s:NetrwMaps(islocal)
nmap <buffer> <2-leftmouse> <Plug>Netrw2Leftmouse
imap <buffer> <leftmouse> <Plug>ILeftmouse
imap <buffer> <middlemouse> <Plug>IMiddlemouse
nno <buffer> <silent> <Plug>NetrwLeftmouse <leftmouse>:call <SID>NetrwLeftmouse(1)<cr>
nno <buffer> <silent> <Plug>NetrwCLeftmouse <leftmouse>:call <SID>NetrwCLeftmouse(1)<cr>
nno <buffer> <silent> <Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr>
nno <buffer> <silent> <Plug>NetrwSLeftmouse <leftmouse>:call <SID>NetrwSLeftmouse(1)<cr>
nno <buffer> <silent> <Plug>NetrwSLeftdrag <leftmouse>:call <SID>NetrwSLeftdrag(1)<cr>
nno <buffer> <silent> <Plug>NetrwLeftmouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwLeftmouse(1)<cr>
nno <buffer> <silent> <Plug>NetrwCLeftmouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwCLeftmouse(1)<cr>
nno <buffer> <silent> <Plug>NetrwMiddlemouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwPrevWinOpen(1)<cr>
nno <buffer> <silent> <Plug>NetrwSLeftmouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwSLeftmouse(1)<cr>
nno <buffer> <silent> <Plug>NetrwSLeftdrag :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwSLeftdrag(1)<cr>
nmap <buffer> <silent> <Plug>Netrw2Leftmouse -
exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
exe 'nnoremap <buffer> <silent> <rightmouse> :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
exe 'vnoremap <buffer> <silent> <rightmouse> :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
endif
exe 'nnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
exe 'nnoremap <buffer> <silent> <nowait> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
@@ -6780,22 +6783,22 @@ fun! s:NetrwMaps(islocal)
nnoremap <buffer> <silent> <Plug>NetrwRefresh :call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
if g:netrw_mousemaps == 1
nmap <buffer> <leftmouse> <Plug>NetrwLeftmouse
nno <buffer> <silent> <Plug>NetrwLeftmouse <leftmouse>:call <SID>NetrwLeftmouse(0)<cr>
nno <buffer> <silent> <Plug>NetrwLeftmouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwLeftmouse(0)<cr>
nmap <buffer> <c-leftmouse> <Plug>NetrwCLeftmouse
nno <buffer> <silent> <Plug>NetrwCLeftmouse <leftmouse>:call <SID>NetrwCLeftmouse(0)<cr>
nno <buffer> <silent> <Plug>NetrwCLeftmouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwCLeftmouse(0)<cr>
nmap <buffer> <s-leftmouse> <Plug>NetrwSLeftmouse
nno <buffer> <silent> <Plug>NetrwSLeftmouse <leftmouse>:call <SID>NetrwSLeftmouse(0)<cr>
nno <buffer> <silent> <Plug>NetrwSLeftmouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwSLeftmouse(0)<cr>
nmap <buffer> <s-leftdrag> <Plug>NetrwSLeftdrag
nno <buffer> <silent> <Plug>NetrwSLeftdrag <leftmouse>:call <SID>NetrwSLeftdrag(0)<cr>
nno <buffer> <silent> <Plug>NetrwSLeftdrag :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwSLeftdrag(0)<cr>
nmap <middlemouse> <Plug>NetrwMiddlemouse
nno <buffer> <silent> <middlemouse> <Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr>
nno <buffer> <silent> <middlemouse> <Plug>NetrwMiddlemouse :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwPrevWinOpen(0)<cr>
nmap <buffer> <2-leftmouse> <Plug>Netrw2Leftmouse
nmap <buffer> <silent> <Plug>Netrw2Leftmouse -
imap <buffer> <leftmouse> <Plug>ILeftmouse
imap <buffer> <middlemouse> <Plug>IMiddlemouse
imap <buffer> <s-leftmouse> <Plug>ISLeftmouse
exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
exe 'nnoremap <buffer> <silent> <rightmouse> :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
exe 'vnoremap <buffer> <silent> <rightmouse> :exec "norm! \<lt>leftmouse>"<bar>call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
endif
exe 'nnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
exe 'nnoremap <buffer> <silent> <nowait> d :call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>'
@@ -7506,7 +7509,7 @@ fun! s:NetrwMarkFileExe(islocal,enbloc)
for fname in s:netrwmarkfilelist_{curbufnr}
if a:islocal
if g:netrw_keepdir
let fname= s:ShellEscape(netrw#WinPath(s:ComposePath(curdir,fname)))
let fname= s:ShellEscape(netrw#WinPath(s:ComposePath(curdir,fname)))
endif
else
let fname= s:ShellEscape(netrw#WinPath(b:netrw_curdir.fname))
@@ -7862,7 +7865,7 @@ fun! s:NetrwMarkFileMove(islocal)
let movecmd = netrw#WinPath(movecmd).movecmdargs
" call Decho("windows exception: movecmd<".movecmd."> (#1: had a space)",'~'.expand("<slnum>"))
else
let movecmd = netrw#WinPath(movecmd)
let movecmd = netrw#WinPath(g:netrw_localmovecmd)
" call Decho("windows exception: movecmd<".movecmd."> (#2: no space)",'~'.expand("<slnum>"))
endif
else
@@ -7876,10 +7879,6 @@ fun! s:NetrwMarkFileMove(islocal)
endif
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
let fname= substitute(fname,'/','\\','g')
if g:netrw_keepdir
" Jul 19, 2022: fixing file move when g:netrw_keepdir is 1
let fname= b:netrw_curdir."\\".fname
endif
endif
" call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>"))
let ret= system(movecmd.g:netrw_localmovecmdopt." ".s:ShellEscape(fname)." ".tgt)
@@ -9478,7 +9477,7 @@ fun! s:NetrwTreeDir(islocal)
" call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
elseif curline =~ '@$'
" call Decho("handle symbolic link from current line",'~'.expand("<slnum>"))
let treedir= resolve(substitute(substitute(getline('.'),'@.*$','','e'),'^|*\s*','','e'))
let potentialdir= resolve(substitute(substitute(getline('.'),'@.*$','','e'),'^|*\s*','','e'))
" call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
else
" call Decho("do not extract tree subdirectory from current line and set treedir to empty",'~'.expand("<slnum>"))
@@ -9503,7 +9502,6 @@ fun! s:NetrwTreeDir(islocal)
" call Decho("COMBAK#23 : mod=".&mod." win#".winnr())
" call Decho("islocal=".a:islocal." curline<".curline.">",'~'.expand("<slnum>"))
let potentialdir= s:NetrwFile(substitute(curline,'^'.s:treedepthstring.'\+ \(.*\)@$','\1',''))
" call Decho("potentialdir<".potentialdir."> isdir=".isdirectory(potentialdir),'~'.expand("<slnum>"))
" call Decho("COMBAK#24 : mod=".&mod." win#".winnr())
@@ -9516,8 +9514,15 @@ fun! s:NetrwTreeDir(islocal)
" " call Decho("newdir <".newdir.">",'~'.expand("<slnum>"))
" else
" call Decho("apply NetrwTreePath to treetop<".w:netrw_treetop.">",'~'.expand("<slnum>"))
let treedir = s:NetrwTreePath(w:netrw_treetop)
" endif
if a:islocal && curline =~ '@$'
if isdirectory(s:NetrwFile(potentialdir))
let treedir = w:netrw_treetop.'/'.potentialdir.'/'
let w:netrw_treetop = treedir
endif
else
let potentialdir= s:NetrwFile(substitute(curline,'^'.s:treedepthstring.'\+ \(.*\)@$','\1',''))
let treedir = s:NetrwTreePath(w:netrw_treetop)
endif
endif
" call Decho("COMBAK#25 : mod=".&mod." win#".winnr())
@@ -10215,7 +10220,7 @@ fun! s:SetupNetrwStatusLine(statline)
" set up status line (may use User9 highlighting)
" insure that windows have a statusline
" make sure statusline is displayed
let &stl=a:statline
let &l:stl=a:statline
setl laststatus=2
" call Decho("stl=".&stl,'~'.expand("<slnum>"))
redraw
@@ -10331,7 +10336,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd)
setl ff=unix
" restore settings
let &ff= ffkeep
let &l:ff= ffkeep
" call Dret("NetrwRemoteFtpCmd")
return
@@ -10368,7 +10373,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd)
endif
" restore settings " {{{3
let &ff= ffkeep
let &l:ff= ffkeep
" call Dret("NetrwRemoteFtpCmd")
endfun
@@ -10672,7 +10677,7 @@ fun! s:NetrwRemoteRmFile(path,rmfile,all)
NetrwKeepj call netrw#ErrorMsg(s:ERROR,"for some reason b:netrw_curdir doesn't exist!",53)
let ok="q"
else
let remotedir= substitute(b:netrw_curdir,'^.*//[^/]\+/\(.*\)$','\1','')
let remotedir= substitute(b:netrw_curdir,'^.\{-}//[^/]\+/\(.*\)$','\1','')
" call Decho("netrw_rm_cmd<".netrw_rm_cmd.">",'~'.expand("<slnum>"))
" call Decho("remotedir<".remotedir.">",'~'.expand("<slnum>"))
" call Decho("rmfile<".a:rmfile.">",'~'.expand("<slnum>"))
@@ -10685,7 +10690,7 @@ fun! s:NetrwRemoteRmFile(path,rmfile,all)
let ret= system(netrw_rm_cmd)
if v:shell_error != 0
if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir
call netrw#ErrorMsg(s:ERROR,"remove failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-cd)",102)
call netrw#ErrorMsg(s:ERROR,"remove failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-cd)",102)
else
call netrw#ErrorMsg(s:WARNING,"cmd<".netrw_rm_cmd."> failed",60)
endif
@@ -11193,16 +11198,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 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
if g:netrw_sizestyle =~# "[hH]"
let sz= s:NetrwHumanReadable(sz)
endif
let fsz = printf("%".szlen."S",sz)
let pfile = longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
let pfile= longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
endif
@@ -11587,7 +11592,7 @@ endfun
" netrw#RFC2396: converts %xx into characters {{{2
fun! netrw#RFC2396(fname)
" call Dfunc("netrw#RFC2396(fname<".a:fname.">)")
let fname = escape(substitute(a:fname,'%\(\x\x\)','\=nr2char("0x".submatch(1))','ge')," \t")
let fname = escape(substitute(a:fname,'%\(\x\x\)','\=printf("%c","0x".submatch(1))','ge')," \t")
" call Dret("netrw#RFC2396 ".fname)
return fname
endfun
@@ -12222,7 +12227,7 @@ fun! s:NetrwLcd(newdir)
if (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin
if a:newdir =~ '^\\\\\w\+' || a:newdir =~ '^//\w\+'
let dirname = '\'
exe 'NetrwKeepj sil lcd '.fnameescape(dirname)
exe 'NetrwKeepj sil lcd '.fnameescape(dirname)
endif
endif
catch /^Vim\%((\a\+)\)\=:E472/

View File

@@ -1,6 +1,7 @@
" netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell
" Maintainer: This runtime file is looking for a new maintainer.
" Original Author: Charles E. Campbell
" Date: Sep 18, 2020
" Version: 11
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1

View File

@@ -1,6 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Nov 15, 2021
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E Campbell
" Version: 18
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,

View File

@@ -2,7 +2,8 @@
" AUTOLOAD PORTION
" Date: Nov 14, 2023
" Version: 32b (with modifications from the Vim Project)
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E Campbell
" License: Vim License (see vim's :help license)
"
" Contains many ideas from Michael Toren's <tar.vim>
@@ -163,9 +164,9 @@ fun! tar#Browse(tarfile)
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzs\)$'
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzst\)$'
if has("unix") && executable("file")
let filekind= system("file ".shellescape(tarfile,1)) =~ "bzip2"
let filekind= system("file ".shellescape(tarfile,1))
else
let filekind= ""
endif
@@ -192,7 +193,7 @@ fun! tar#Browse(tarfile)
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(zst\|tzs\)$'
elseif tarfile =~# '\.\(zst\|tzst\)$'
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else
if tarfile =~ '^\s*-'
@@ -230,7 +231,7 @@ fun! tar#Browse(tarfile)
" set up maps supported for tar
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
noremap <silent> <buffer> x :call tar#Extract()<cr>
noremap <silent> <buffer> x :call tar#Extract()<cr>
if &mouse != ""
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>TarBrowseSelect()<cr>
endif
@@ -468,9 +469,9 @@ fun! tar#Write(fname)
let compress= "xz -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.zst'
call system("zstd --decompress -- ".shellescape(tarfile,0))
call system("zstd --decompress --rm -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.zst','','e')
let compress= "zstd -- ".shellescape(tarfile,0)
let compress= "zstd --rm -- ".shellescape(tarfile,0)
elseif tarfile =~# '\.lzma'
call system("lzma -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.lzma','','e')
@@ -486,7 +487,7 @@ fun! tar#Write(fname)
else
" call Decho("tarfile<".tarfile."> fname<".fname.">")
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if has("win32unix") && executable("cygpath")
@@ -502,7 +503,7 @@ fun! tar#Write(fname)
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("tarfile<".tarfile."> fname<".fname.">")
if exists("g:tar_secure")
let tar_secure= " -- "
else
@@ -512,7 +513,7 @@ fun! tar#Write(fname)
if has("win32unix") && executable("cygpath")
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
endif
" delete old file from tarfile
" call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
@@ -521,8 +522,8 @@ fun! tar#Write(fname)
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
else
" update tarfile with new file
" update tarfile with new file
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0
@@ -555,7 +556,7 @@ fun! tar#Write(fname)
unlet s:tblfile_{winnr()}
endif
endif
" cleanup and restore current directory
cd ..
call s:Rmdir("_ZIPVIM_")
@@ -696,13 +697,13 @@ fun! tar#Extract()
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tzs")
elseif filereadable(tarbase.".tzst")
let extractcmd= substitute(extractcmd,"-","--zstd","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzs ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzs ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tzs ".fname.": failed!")
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
@@ -710,7 +711,7 @@ fun! tar#Extract()
elseif filereadable(tarbase.".tar.zst")
let extractcmd= substitute(extractcmd,"-","--zstd","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!")

View File

@@ -1,6 +1,7 @@
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell
" Date: Apr 11, 2016
" Maintainer: This runtime file is looking for a new maintainer.
" Original Author: Charles E. Campbell
" Date: Apr 11, 2016
" Version: 37
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2011 by Charles E. Campbell

View File

@@ -2,7 +2,8 @@
" AUTOLOAD PORTION
" Date: Mar 12, 2023
" Version: 33
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E Campbell
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,

View File

@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 15 Dec 2023 20:05:33
" Last Updated: Mon 08 Jan 2024 09:42:49 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -76,8 +76,8 @@ hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cter
hi Label guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
@@ -186,8 +186,8 @@ if s:t_Co >= 256
hi Label ctermfg=220 ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
@@ -299,8 +299,8 @@ if s:t_Co >= 16
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
@@ -411,8 +411,8 @@ if s:t_Co >= 8
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg

View File

@@ -4,7 +4,7 @@
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 15 Dec 2023 20:05:33
" Last Updated: Mon 08 Jan 2024 09:43:03 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -54,8 +54,8 @@ hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
@@ -162,8 +162,8 @@ if s:t_Co >= 256
hi! link Tag Special
hi! link Typedef Type
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg

View File

@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 15 Dec 2023 20:05:35
" Last Updated: Mon 08 Jan 2024 09:43:27 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -28,8 +28,8 @@ hi! link CursorIM Cursor
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
@@ -136,8 +136,8 @@ if s:t_Co >= 256
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg
@@ -247,8 +247,8 @@ if s:t_Co >= 16
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Debug Special
hi! link diffAdded String
hi! link diffRemoved WarningMsg
hi! link Added String
hi! link Removed WarningMsg
hi! link diffOnly WarningMsg
hi! link diffNoEOL WarningMsg
hi! link diffIsA WarningMsg

View File

@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 15 Dec 2023 20:05:35
" Last Updated: Mon 08 Jan 2024 09:39:53 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -106,8 +106,9 @@ hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Debug guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE
hi DiffAdd guifg=#dadada guibg=#5f875f gui=NONE cterm=NONE
hi DiffDelete guifg=#af875f guibg=NONE gui=NONE cterm=NONE
hi diffAdded guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
hi Added guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
hi Changed guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE
hi Removed guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
hi diffSubname guifg=#af87af guibg=NONE gui=NONE cterm=NONE
hi DiffText guifg=#dadada guibg=#878787 gui=NONE cterm=NONE
hi DiffChange guifg=#bcbcbc guibg=#5f5f5f gui=NONE cterm=NONE
@@ -199,8 +200,9 @@ if s:t_Co >= 256
hi Debug ctermfg=66 ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=253 ctermbg=65 cterm=NONE
hi DiffDelete ctermfg=137 ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=108 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=167 ctermbg=NONE cterm=NONE
hi Added ctermfg=108 ctermbg=NONE cterm=NONE
hi Changed ctermfg=66 ctermbg=NONE cterm=NONE
hi Removed ctermfg=167 ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=139 ctermbg=NONE cterm=NONE
hi DiffText ctermfg=253 ctermbg=102 cterm=NONE
hi DiffChange ctermfg=250 ctermbg=59 cterm=NONE
@@ -277,8 +279,9 @@ if s:t_Co >= 16
hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Changed ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi DiffText ctermfg=white ctermbg=lightgrey cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkgray cterm=NONE
@@ -355,8 +358,9 @@ if s:t_Co >= 8
hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Changed ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi DiffText ctermfg=white ctermbg=black cterm=bold,reverse
hi DiffChange ctermfg=black ctermbg=white cterm=NONE

View File

@@ -4,6 +4,9 @@
" Similar in spirit to rgb.txt, this plugin establishes a human-friendly name
" for every color listed in the CSS standard:
"
" Note: the color names should be in lower case, because Vim will lookup the
" a color by its lower case name.
"
" https://www.w3.org/TR/css-color-3/
let s:keepcpo= &cpo
@@ -26,7 +29,6 @@ call extend(v:colornames, {
\ 'css_blue': '#0000FF',
\ 'css_teal': '#008080',
\ 'css_aqua': '#00FFFF',
\
\ 'css_aliceblue': '#f0f8ff',
\ 'css_antiquewhite': '#faebd7',
\ 'css_aquamarine': '#7fffd4',
@@ -160,6 +162,14 @@ call extend(v:colornames, {
\ 'css_yellowgreen': '#9acd32',
\ }, 'keep')
" all keys should be in lower case, convert keys that are not yet
for [key, val] in items(filter(copy(v:colornames), { key -> key =~ '\u'}))
call remove(v:colornames, key)
if !has_key(v:colornames, tolower(key))
call extend(v:colornames, {tolower(key): val}, 'keep')
endif
endfor
let &cpo= s:keepcpo
unlet s:keepcpo

View File

@@ -1,17 +1,50 @@
" Maintainer: Drew Vogel <dvogel@sidejump.org>
" Last Change: 2023 Apr 19
" Last Change: 2024 Mar 20
"
" Replaced rgb.txt as the source of de facto standard color names. This is
" sourced each time the colorscheme command is run. It is also sourced each
" time the highlight command fails to recognize a gui color. You can override
" these colors by introducing a new colors/lists/default.vim file earlier in
" the runtimepath.
" Note: the color names should be in lower case, because Vim will lookup the
" a color by its lower case name.
" make sure line continuation works
let s:keepcpo = &cpo
set cpo&vim
call extend(v:colornames, {
function! s:Cleanup()
let &cpo = s:keepcpo
unlet s:keepcpo
endfunction
function! s:AddColors(cnames) abort
call extend(v:colornames, a:cnames, 'keep')
" all keys should be in lower case, convert keys that are not yet
let len_after = len(v:colornames)
if len_after == len(a:cnames)
" after extend(): v:colornames has all the keys of default_cnames
" checked: v:colornames also has no extra keys
" => keys are the same, and keys(default_cnames) are known to be ok
return
endif
for [key, val] in items(filter(copy(v:colornames), { key -> key =~ '\u'}))
call remove(v:colornames, key)
if !has_key(v:colornames, tolower(key))
call extend(v:colornames, {tolower(key): val}, 'keep')
endif
endfor
endfunction
if exists('s:default_cnames')
call s:AddColors(s:default_cnames)
call s:Cleanup()
finish
endif
let s:default_cnames = {
\ 'snow': '#fffafa',
\ 'ghost white': '#f8f8ff',
\ 'ghostwhite': '#f8f8ff',
@@ -800,9 +833,9 @@ call extend(v:colornames, {
\ 'rebeccapurple': '#663399',
\ 'silver': '#c0c0c0',
\ 'teal': '#008080'
\ }, 'keep')
\ }
let &cpo = s:keepcpo
unlet s:keepcpo
call s:AddColors(s:default_cnames)
call s:Cleanup()
"vim: sw=4

View File

@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://www.github.com/vim/colorschemes
" License: Vim License (see `:help license`)
" Last Updated: Fri 15 Dec 2023 20:05:37
" Last Updated: Mon 08 Jan 2024 09:41:03 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -164,8 +164,9 @@ if &background ==# 'dark'
hi DiffChange guifg=#c6c6c6 guibg=#5f5f5f gui=NONE cterm=NONE
hi DiffText guifg=#afffff guibg=#5f8787 gui=NONE cterm=NONE
hi DiffDelete guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
hi diffAdded guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
hi Added guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
hi Changed guifg=#5fafff guibg=NONE gui=NONE cterm=NONE
hi Removed guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
hi diffSubname guifg=#ff87ff guibg=NONE gui=NONE cterm=NONE
hi dirType guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
hi dirPermissionUser guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE
@@ -254,8 +255,9 @@ else
hi DiffChange guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#5fd7d7 gui=NONE cterm=NONE
hi DiffDelete guifg=#870000 guibg=NONE gui=NONE cterm=NONE
hi diffAdded guifg=#008700 guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
hi Added guifg=#008700 guibg=NONE gui=NONE cterm=NONE
hi Changed guifg=#005fd7 guibg=NONE gui=NONE cterm=NONE
hi Removed guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
hi diffSubname guifg=#af00af guibg=NONE gui=NONE cterm=NONE
hi dirType guifg=#005f5f guibg=NONE gui=NONE cterm=NONE
hi dirPermissionUser guifg=#af5f00 guibg=NONE gui=NONE cterm=NONE
@@ -421,8 +423,9 @@ if s:t_Co >= 256
hi DiffChange ctermfg=251 ctermbg=59 cterm=NONE
hi DiffText ctermfg=159 ctermbg=66 cterm=NONE
hi DiffDelete ctermfg=174 ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=77 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=174 ctermbg=NONE cterm=NONE
hi Added ctermfg=77 ctermbg=NONE cterm=NONE
hi Changed ctermfg=75 ctermbg=NONE cterm=NONE
hi Removed ctermfg=174 ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=213 ctermbg=NONE cterm=NONE
hi dirType ctermfg=176 ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=71 ctermbg=NONE cterm=NONE
@@ -506,8 +509,9 @@ if s:t_Co >= 256
hi DiffChange ctermfg=16 ctermbg=252 cterm=NONE
hi DiffText ctermfg=16 ctermbg=80 cterm=NONE
hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=28 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=160 ctermbg=NONE cterm=NONE
hi Added ctermfg=28 ctermbg=NONE cterm=NONE
hi Changed ctermfg=26 ctermbg=NONE cterm=NONE
hi Removed ctermfg=160 ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=127 ctermbg=NONE cterm=NONE
hi dirType ctermfg=23 ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=130 ctermbg=NONE cterm=NONE
@@ -596,8 +600,9 @@ if s:t_Co >= 16
hi DiffChange ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=green ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi Added ctermfg=green ctermbg=NONE cterm=NONE
hi Changed ctermfg=blue ctermbg=NONE cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=magenta ctermbg=NONE cterm=NONE
hi dirType ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=darkgreen ctermbg=NONE cterm=NONE
@@ -681,8 +686,9 @@ if s:t_Co >= 16
hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Changed ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Removed ctermfg=red ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi dirType ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=darkyellow ctermbg=NONE cterm=NONE

View File

@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 15 Dec 2023 20:05:38
" Last Updated: Mon 08 Jan 2024 09:50:15 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -28,6 +28,7 @@ hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link Added Constant
hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
@@ -100,6 +101,7 @@ if s:t_Co >= 256
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link Added Constant
hi Normal ctermfg=120 ctermbg=16 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE

View File

@@ -4,7 +4,7 @@
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 15 Dec 2023 20:05:43
" Last Updated: Mon 08 Jan 2024 09:40:36 AM AEDT
" Generated by Colortemplate v2.2.3
@@ -93,8 +93,9 @@ if &background ==# 'dark'
hi DiffChange guifg=#d0d0d0 guibg=#5f5f5f gui=NONE cterm=NONE
hi DiffText guifg=#afffff guibg=#5f8787 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffafaf guibg=#875f5f gui=NONE cterm=NONE
hi diffAdded guifg=#00af5f guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d7005f guibg=NONE gui=NONE cterm=NONE
hi Added guifg=#00af5f guibg=NONE gui=NONE cterm=NONE
hi Changed guifg=#0087d7 guibg=NONE gui=NONE cterm=NONE
hi Removed guifg=#d7005f guibg=NONE gui=NONE cterm=NONE
else
" Light background
if (has('termguicolors') && &termguicolors) || has('gui_running')
@@ -167,8 +168,9 @@ else
hi DiffChange guifg=#262626 guibg=#dadada gui=NONE cterm=NONE
hi DiffText guifg=#005f5f guibg=#afd7d7 gui=NONE cterm=NONE
hi DiffDelete guifg=#875f5f guibg=#ffd7d7 gui=NONE cterm=NONE
hi diffAdded guifg=#008700 guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
hi Added guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE
hi Changed guifg=#0087d7 guibg=NONE gui=NONE cterm=NONE
hi Removed guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
endif
if s:t_Co >= 256
@@ -247,8 +249,9 @@ if s:t_Co >= 256
hi DiffChange ctermfg=252 ctermbg=59 cterm=NONE
hi DiffText ctermfg=159 ctermbg=66 cterm=NONE
hi DiffDelete ctermfg=217 ctermbg=95 cterm=NONE
hi diffAdded ctermfg=35 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=161 ctermbg=NONE cterm=NONE
hi Added ctermfg=35 ctermbg=NONE cterm=NONE
hi Changed ctermfg=32 ctermbg=NONE cterm=NONE
hi Removed ctermfg=161 ctermbg=NONE cterm=NONE
else
" Light background
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
@@ -316,8 +319,9 @@ if s:t_Co >= 256
hi DiffChange ctermfg=235 ctermbg=253 cterm=NONE
hi DiffText ctermfg=23 ctermbg=152 cterm=NONE
hi DiffDelete ctermfg=95 ctermbg=224 cterm=NONE
hi diffAdded ctermfg=28 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=160 ctermbg=NONE cterm=NONE
hi Added ctermfg=71 ctermbg=NONE cterm=NONE
hi Changed ctermfg=32 ctermbg=NONE cterm=NONE
hi Removed ctermfg=160 ctermbg=NONE cterm=NONE
endif
unlet s:t_Co
finish
@@ -386,12 +390,13 @@ if s:t_Co >= 16
hi Directory ctermfg=blue ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Changed ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
else
" Light background
hi Normal ctermfg=black ctermbg=white cterm=NONE
@@ -455,12 +460,13 @@ if s:t_Co >= 16
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE
hi Added ctermfg=green ctermbg=NONE cterm=NONE
hi Changed ctermfg=blue ctermbg=NONE cterm=NONE
hi Removed ctermfg=red ctermbg=NONE cterm=NONE
endif
unlet s:t_Co
finish
@@ -510,7 +516,7 @@ if s:t_Co >= 8
hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi Folded ctermfg=black ctermbg=NONE cterm=bold
hi Folded ctermfg=grey ctermbg=NONE cterm=bold
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse
@@ -519,20 +525,20 @@ if s:t_Co >= 8
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi String ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Special ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkcyan cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE
else
" Light background
hi Normal ctermfg=black ctermbg=grey cterm=NONE
@@ -586,20 +592,20 @@ if s:t_Co >= 8
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi String ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold
hi Identifier ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Special ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkcyan cterm=NONE
hi DiffText ctermfg=grey ctermbg=black cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE
endif
unlet s:t_Co
finish
@@ -700,7 +706,7 @@ endif
" Color: colorlC #ff5fff 207 magenta
" Color: colorDim #878787 102 grey
" Color: colorMP #ff00af 199 magenta
" Color: diffAdd #5f875f 65 darkmagenta
" Color: diffAdd #5f875f 65 darkgreen
" Color: diffAddFg #afffaf 157 black
" Color: diffDelete #875f5f 95 darkred
" Color: diffDeleteFg #ffafaf 217 black
@@ -739,7 +745,7 @@ endif
" Color: colorDim #626262 241 darkgrey
" Color: colorSt #5f5f5f 59 darkgrey
" Color: colorMP #ff00af 199 magenta
" Color: diffAdd #afd7af 151 darkmagenta
" Color: diffAdd #afd7af 151 darkgreen
" Color: diffAddFg #005f00 22 black
" Color: diffDelete #ffd7d7 224 darkred
" Color: diffDeleteFg #875f5f 95 black

26
runtime/compiler/gm2.vim Normal file
View File

@@ -0,0 +1,26 @@
" Vim compiler file
" Compiler: GNU Modula-2 Compiler
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2024 Jan 04
if exists("current_compiler")
finish
endif
let current_compiler = "gm2"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo&vim
CompilerSet makeprg=gm2
CompilerSet errorformat=%-G%f:%l:%c:\ error:\ compilation\ failed,
\%f:%l:%c:\ %trror:\ %m,
\%f:%l:%c:\ %tarning:\ %m,
\%f:%l:%c:\ %tote:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -39,6 +39,9 @@ ICONV = "$(ICONV_PATH)\iconv.exe"
!ENDIF
RM = del /q
PS = PowerShell.exe
PSFLAGS = -NoLogo -NoProfile -Command
.SUFFIXES :
.SUFFIXES : .c .o .txt .html
@@ -49,9 +52,9 @@ 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"
$(PS) $(PSFLAGS) \
(Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ -replace \"`r\", \"\"})\
^| New-Item -Force -Path . -ItemType file -Name tags
doctags : doctags.c
$(CC) doctags.c
@@ -64,12 +67,10 @@ vimtags : $(DOCS)
uganda.nsis.txt : uganda.???
!@powershell -nologo -noprofile -Command \
$$ext=(Get-Item $?).Extension; (Get-Content $? ^| \
% {$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''}) \
!@$(PS) $(PSFLAGS) $$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; \
!@$(PS) $(PSFLAGS) $$ext=(Get-Item $?).Extension; \
(Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1' \
^| Set-Content $(@B)$$ext
@@ -105,7 +106,7 @@ perlhtml : tags $(DOCS)
# Check URLs in the help with "curl" or "powershell".
test_urls :
"$(VIMEXE)" -S test_urls.vim
"$(VIMEXE)" --clean -S test_urls.vim
clean :
$(RM) doctags.exe doctags.obj
@@ -203,7 +204,7 @@ os_win32.txt :
<<
convert-all : $(CONVERTED)
!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
!IF [$(PS) $(PSFLAGS) "exit $$psversiontable.psversion.major"] == 2
!ERROR The program "PowerShell" version 3.0 or higher is required to work
!ENDIF
@@ -212,7 +213,7 @@ vim-da.UTF-8.1 : vim-da.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -222,7 +223,7 @@ vimdiff-da.UTF-8.1 : vimdiff-da.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -232,7 +233,7 @@ vimtutor-da.UTF-8.1 : vimtutor-da.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -242,7 +243,7 @@ vim-de.UTF-8.1 : vim-de.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -252,7 +253,7 @@ evim-fr.UTF-8.1 : evim-fr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -262,7 +263,7 @@ vim-fr.UTF-8.1 : vim-fr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -272,7 +273,7 @@ vimdiff-fr.UTF-8.1 : vimdiff-fr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -282,7 +283,7 @@ vimtutor-fr.UTF-8.1 : vimtutor-fr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -292,7 +293,7 @@ xxd-fr.UTF-8.1 : xxd-fr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -302,7 +303,7 @@ evim-it.UTF-8.1 : evim-it.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -312,7 +313,7 @@ vim-it.UTF-8.1 : vim-it.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -322,7 +323,7 @@ vimdiff-it.UTF-8.1 : vimdiff-it.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -332,7 +333,7 @@ vimtutor-it.UTF-8.1 : vimtutor-it.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -342,7 +343,7 @@ xxd-it.UTF-8.1 : xxd-it.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -352,7 +353,7 @@ evim-pl.UTF-8.1 : evim-pl.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -362,7 +363,7 @@ vim-pl.UTF-8.1 : vim-pl.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -372,7 +373,7 @@ vimdiff-pl.UTF-8.1 : vimdiff-pl.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -382,7 +383,7 @@ vimtutor-pl.UTF-8.1 : vimtutor-pl.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -392,7 +393,7 @@ xxd-pl.UTF-8.1 : xxd-pl.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -402,7 +403,7 @@ evim-ru.UTF-8.1 : evim-ru.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -412,7 +413,7 @@ vim-ru.UTF-8.1 : vim-ru.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -422,7 +423,7 @@ vimdiff-ru.UTF-8.1 : vimdiff-ru.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -432,7 +433,7 @@ vimtutor-ru.UTF-8.1 : vimtutor-ru.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -442,7 +443,7 @@ xxd-ru.UTF-8.1 : xxd-ru.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -452,7 +453,7 @@ evim-tr.UTF-8.1 : evim-tr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -462,7 +463,7 @@ vim-tr.UTF-8.1 : vim-tr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -472,7 +473,7 @@ vimdiff-tr.UTF-8.1 : vimdiff-tr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF
@@ -482,7 +483,7 @@ vimtutor-tr.UTF-8.1 : vimtutor-tr.1
$(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 \
$(PS) $(PSFLAGS) \
[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
1>nul New-Item -Force -Path . -ItemType file -Name $@
!ENDIF

View File

@@ -18,6 +18,7 @@ include Make_all.mak
.SUFFIXES:
.SUFFIXES: .c .o .txt .html
.PHONY: all vimtags noerrors perlhtml clean test_urls
all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
@@ -28,26 +29,26 @@ vimtags: $(DOCS)
# Use "doctags" to generate the tags file. Only works for English!
tags: doctags $(DOCS)
./doctags $(DOCS) | LANG=C LC_ALL=C sort >tags
./doctags $(DOCS) | LANG=C LC_ALL=C sort >$@
uniq -d -2 tags
doctags: doctags.c
$(CC) doctags.c -o doctags
vim.man: vim.1
nroff -man vim.1 | sed -e s/.//g > vim.man
nroff -man $< | sed -e s/.//g > $@
evim.man: evim.1
nroff -man evim.1 | sed -e s/.//g > evim.man
nroff -man $< | sed -e s/.//g > $@
vimdiff.man: vimdiff.1
nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man
nroff -man $< | sed -e s/.//g > $@
vimtutor.man: vimtutor.1
nroff -man vimtutor.1 | sed -e s/.//g > vimtutor.man
nroff -man $< | sed -e s/.//g > $@
xxd.man: xxd.1
nroff -man xxd.1 | sed -e s/.//g > xxd.man
nroff -man $< | sed -e s/.//g > $@
uganda.nsis.txt: uganda.txt
sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78:.*//' \
@@ -68,10 +69,10 @@ $(HTMLS): tags.ref
# index.html is the starting point for HTML, but for the help files it is
# help.txt. Therefore use vimindex.html for index.txt.
index.html: help.txt
$(AWK) -f makehtml.awk help.txt >index.html
$(AWK) -f makehtml.awk $< >$@
vimindex.html: index.txt
$(AWK) -f makehtml.awk index.txt >vimindex.html
$(AWK) -f makehtml.awk $< >$@
tags.ref tags.html: tags
$(AWK) -f maketags.awk tags >tags.html
@@ -84,7 +85,7 @@ perlhtml: tags $(DOCS)
# Check URLs in the help with "curl".
test_urls:
vim -S test_urls.vim
$(VIMEXE) --clean -S test_urls.vim
clean:
-rm -f doctags *.html tags.ref
@@ -92,58 +93,58 @@ clean:
# These files are in the extra archive, skip if not present
arabic.txt:
touch arabic.txt
touch $@
farsi.txt:
touch farsi.txt
touch $@
hebrew.txt:
touch hebrew.txt
touch $@
russian.txt:
touch russian.txt
touch $@
gui_w32.txt:
touch gui_w32.txt
touch $@
if_ole.txt:
touch if_ole.txt
touch $@
os_390.txt:
touch os_390.txt
touch $@
os_amiga.txt:
touch os_amiga.txt
touch $@
os_beos.txt:
touch os_beos.txt
touch $@
os_dos.txt:
touch os_dos.txt
touch $@
os_haiku.txt:
touch os_haiku.txt
touch $@
os_mac.txt:
touch os_mac.txt
touch $@
os_mint.txt:
touch os_mint.txt
touch $@
os_msdos.txt:
touch os_msdos.txt
touch $@
os_os2.txt:
touch os_os2.txt
touch $@
os_qnx.txt:
touch os_qnx.txt
touch $@
os_risc.txt:
touch os_risc.txt
touch $@
os_win32.txt:
touch os_win32.txt
touch $@
# Note that $< works with GNU make while $> works for BSD make.
# Is there a solution that works for both??

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 9.1. Last change: 2023 May 20
*autocmd.txt* For Vim version 9.1. Last change: 2024 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -340,6 +340,7 @@ Name triggered by ~
|GUIEnter| after starting the GUI successfully
|GUIFailed| after starting the GUI failed
|TermResponse| after the terminal response to |t_RV| is received
|TermResponseAll| after the terminal response to |t_RV| and others is received
|QuitPre| when using `:quit`, before deciding whether to exit
|ExitPre| when using a command that may make Vim exit
@@ -380,6 +381,7 @@ Name triggered by ~
|CursorMoved| the cursor was moved in Normal mode
|CursorMovedI| the cursor was moved in Insert mode
|WinNewPre| before creating a new window
|WinNew| after creating a new window
|TabNew| after creating a new tab page
|WinClosed| after closing a window
@@ -1097,7 +1099,7 @@ SafeState When nothing is pending, going to wait for the
- Command line completion is active
You can use `mode()` to find out what state
Vim is in. That may be:
- VIsual mode
- Visual mode
- Normal mode
- Insert mode
- Command-line mode
@@ -1220,6 +1222,24 @@ TermResponse After the response to |t_RV| is received from
triggered halfway executing another event,
especially if file I/O, a shell command or
anything else that takes time is involved.
*TermResponseAll*
TermResponseAll After the response to |t_RV|, |t_RC|, |t_RS|,
|t_RB|, |t_RF|, or |t_u7| are received from
the terminal. The value of |v:termresponse|,
|v:termblinkresp|, |v:termstyleresp|,
|v:termrbgresp|, |v:termrfgresp|, and
|v:termu7resp|, correspondingly, can be used.
<amatch> will be set to any of:
"version",
"cursorblink",
"cursorshape",
"background",
"foreground",
"ambiguouswidth"
Note that this event may be triggered halfway
executing another event, especially if file I/O,
a shell command or anything else that takes time
is involved.
*TextChanged*
TextChanged After a change was made to the text in the
current buffer in Normal mode. That is after
@@ -1371,6 +1391,18 @@ WinLeave Before leaving a window. If the window to be
WinLeave autocommands (but not for ":new").
Not used for ":qa" or ":q" when exiting Vim.
*WinNewPre*
WinNewPre Before creating a new window. Triggered
before commands that modify window layout by
creating a split or new tab page. Not done for
the first window, when Vim has just started.
It is not allowed to modify window layout
while executing commands for the WinNewPre
event.
Most useful to store current window layout
and compare it with the new layout after the
Window has been created.
*WinNew*
WinNew When a new window was created. Not done for
the first window, when Vim has just started.

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.1. Last change: 2024 Jan 04
*builtin.txt* For Vim version 9.1. Last change: 2024 Mar 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -147,6 +147,8 @@ delete({fname} [, {flags}]) Number delete the file or directory {fname}
deletebufline({buf}, {first} [, {last}])
Number delete lines from buffer {buf}
did_filetype() Number |TRUE| if FileType autocmd event used
diff({fromlist}, {tolist} [, {options}])
List diff two Lists of strings
diff_filler({lnum}) Number diff filler lines about {lnum}
diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col}
digraph_get({chars}) String get the |digraph| of {chars}
@@ -198,6 +200,8 @@ foldclosedend({lnum}) Number last line of fold at {lnum} if closed
foldlevel({lnum}) Number fold level at {lnum}
foldtext() String line displayed for closed fold
foldtextresult({lnum}) String text for closed fold at {lnum}
foreach({expr1}, {expr2}) List/Dict/Blob/String
for each item in {expr1} call {expr2}
foreground() Number bring the Vim window to the foreground
fullcommand({name} [, {vim9}]) String get full command from {name}
funcref({name} [, {arglist}] [, {dict}])
@@ -259,6 +263,8 @@ getqflist({what}) Dict get specific quickfix list properties
getreg([{regname} [, 1 [, {list}]]])
String or List contents of a register
getreginfo([{regname}]) Dict information about a register
getregion({pos1}, {pos2} [, {opts}])
List get the text from {pos1} to {pos2}
getregtype([{regname}]) String type of a register
getscriptinfo([{opts}]) List list of sourced scripts
gettabinfo([{expr}]) List list of tab pages
@@ -2044,6 +2050,72 @@ did_filetype() Returns |TRUE| when autocommands are being executed and the
editing another buffer to set 'filetype' and load a syntax
file.
diff({fromlist}, {tolist} [, {options}]) *diff()*
Returns a String or a List containing the diff between the
strings in {fromlist} and {tolist}. Uses the Vim internal
diff library to compute the diff.
*E106*
The optional "output" item in {options} specifies the returned
diff format. The following values are supported:
indices Return a List of the starting and ending
indices and a count of the strings in each
diff hunk.
unified Return the unified diff output as a String.
This is the default.
If the "output" item in {options} is "indices", then a List is
returned. Each List item contains a Dict with the following
items for each diff hunk:
from_idx start index in {fromlist} for this diff hunk.
from_count number of strings in {fromlist} that are
added/removed/modified in this diff hunk.
to_idx start index in {tolist} for this diff hunk.
to_count number of strings in {tolist} that are
added/removed/modified in this diff hunk.
The {options} Dict argument also specifies diff options
(similar to 'diffopt') and supports the following items:
algorithm Dict specifying the diff algorithm to
use. Supported boolean items are
"myers", "minimal", "patience" and
"histogram".
context diff context length. Default is 0.
iblank ignore changes where lines are all
blank.
icase ignore changes in case of text.
indent-heuristic use the indent heuristic for the
internal diff library.
iwhite ignore changes in amount of white
space.
iwhiteall ignore all white space changes.
iwhiteeol ignore white space changes at end of
line.
For more information about these options, refer to 'diffopt'.
To compute the unified diff, all the items in {fromlist} are
concatenated into a string using a newline separator and the
same for {tolist}. The unified diff output uses line numbers.
Returns an empty List or String if {fromlist} and {tolist} are
identical.
Examples: >
:echo diff(['abc'], ['xxx'])
@@ -1 +1 @@
-abc
+xxx
:echo diff(['abc'], ['xxx'], {'output': 'indices'})
[{'from_idx': 0, 'from_count': 1, 'to_idx': 0, 'to_count': 1}]
:echo diff(readfile('oldfile'), readfile('newfile'))
:echo diff(getbufline(5, 1, '$'), getbufline(6, 1, '$'))
<
For more examples, refer to |diff-func-examples|
Can also be used as a |method|: >
GetFromList->diff(to_list)
<
diff_filler({lnum}) *diff_filler()*
Returns the number of filler lines above line {lnum}.
These are the lines that were inserted at this point in
@@ -2193,6 +2265,8 @@ empty({expr}) *empty()*
- A |Job| is empty when it failed to start.
- A |Channel| is empty when it is closed.
- A |Blob| is empty when its length is zero.
- An |Object| is empty, when the |empty()| builtin method in
the object (if present) returns true.
For a long |List| this is much faster than comparing the
length with zero.
@@ -2333,11 +2407,11 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
varname internal variable (see
dict.key |internal-variables|). Also works
list[i] for |curly-braces-names|, |Dictionary|
import.Func entries, |List| items, imported
items, etc.
Does not work for local variables in a
compiled `:def` function.
Also works for a function in |Vim9|
import.Func entries, |List| items, class and
class.Func object methods, imported items, etc.
object.Func Does not work for local variables in a
class.varname compiled `:def` function.
object.varname Also works for a function in |Vim9|
script, since it can be used as a
function reference.
Beware that evaluating an index may
@@ -2468,6 +2542,9 @@ expand({string} [, {nosuf} [, {list}]]) *expand()*
for a non-existing file is not included, unless {string} does
not start with '%', '#' or '<', see below.
For a |:terminal| window '%' expands to a '!' followed by
the command or shell that is run |terminal-bufname|
When {string} starts with '%', '#' or '<', the expansion is
done like for the |cmdline-special| variables with their
associated modifiers. Here is a short overview:
@@ -2995,6 +3072,45 @@ foldtextresult({lnum}) *foldtextresult()*
Can also be used as a |method|: >
GetLnum()->foldtextresult()
foreach({expr1}, {expr2}) *foreach()*
{expr1} must be a |List|, |String|, |Blob| or |Dictionary|.
For each item in {expr1} execute {expr2}. {expr1} is not
modified; its values may be, as with |:lockvar| 1. |E741|
See |map()| and |filter()| to modify {expr1}.
{expr2} must be a |string| or |Funcref|.
If {expr2} is a |string|, inside {expr2} |v:val| has the value
of the current item. For a |Dictionary| |v:key| has the key
of the current item and for a |List| |v:key| has the index of
the current item. For a |Blob| |v:key| has the index of the
current byte. For a |String| |v:key| has the index of the
current character.
Examples: >
call foreach(mylist, 'used[v:val] = true')
< This records the items that are in the {expr1} list.
Note that {expr2} is the result of expression and is then used
as a command. Often it is good to use a |literal-string| to
avoid having to double backslashes.
If {expr2} is a |Funcref| it must take two arguments:
1. the key or the index of the current item.
2. the value of the current item.
With a legacy script lambda you don't get an error if it only
accepts one argument, but with a Vim9 lambda you get "E1106:
One argument too many", the number of arguments must match.
If the function returns a value, it is ignored.
Returns {expr1} in all cases.
When an error is encountered while executing {expr2} no
further items in {expr1} are processed.
When {expr2} is a Funcref errors inside a function are ignored,
unless it was defined with the "abort" flag.
Can also be used as a |method|: >
mylist->foreach(expr2)
<
*foreground()*
foreground() Move the Vim window to the foreground. Useful when sent from
@@ -3203,6 +3319,8 @@ getbufinfo([{dict}])
bufnr Buffer number.
changed TRUE if the buffer is modified.
changedtick Number of changes made to the buffer.
command TRUE if the buffer belongs to the
command-line window |cmdwin|.
hidden TRUE if the buffer is hidden.
lastused Timestamp in seconds, like
|localtime()|, when the buffer was
@@ -3427,7 +3545,7 @@ getcharmod() *getcharmod()*
32 mouse double click
64 mouse triple click
96 mouse quadruple click (== 32 + 64)
128 command (Macintosh only)
128 command (Mac) or super (GTK)
Only the modifiers that have not been included in the
character itself are obtained. Thus Shift-a results in "A"
without a modifier. Returns 0 if no modifiers are used.
@@ -4155,6 +4273,59 @@ getreginfo([{regname}]) *getreginfo()*
Can also be used as a |method|: >
GetRegname()->getreginfo()
getregion({pos1}, {pos2} [, {opts}]) *getregion()*
Returns the list of strings from {pos1} to {pos2} from a
buffer.
{pos1} and {pos2} must both be |List|s with four numbers.
See |getpos()| for the format of the list. It's possible
to specify positions from a different buffer, but please
note the limitations at |getregion-notes|.
The optional argument {opts} is a Dict and supports the
following items:
type Specify the region's selection type
(default: "v"):
"v" for |characterwise| mode
"V" for |linewise| mode
"<CTRL-V>" for |blockwise-visual| mode
exclusive If |TRUE|, use exclusive selection
for the end position
(default: follow 'selection')
You can get the last selection type by |visualmode()|.
If Visual mode is active, use |mode()| to get the Visual mode
(e.g., in a |:vmap|).
This function is useful to get text starting and ending in
different columns, such as a |characterwise-visual| selection.
*getregion-notes*
Note that:
- Order of {pos1} and {pos2} doesn't matter, it will always
return content from the upper left position to the lower
right position.
- If 'virtualedit' is enabled and the region is past the end
of the lines, resulting lines are padded with spaces.
- If the region is blockwise and it starts or ends in the
middle of a multi-cell character, it is not included but
its selected part is substituted with spaces.
- If {pos1} and {pos2} are not in the same buffer, an empty
list is returned.
- {pos1} and {pos2} must belong to a |bufloaded()| buffer.
- It is evaluated in current window context, which makes a
difference if the buffer is displayed in a window with
different 'virtualedit' or 'list' values.
Examples: >
:xnoremap <CR>
\ <Cmd>echow getregion(
\ getpos('v'), getpos('.'), #{ type: mode() })<CR>
<
Can also be used as a |method|: >
getpos('.')->getregion(getpos("'a"))
<
getregtype([{regname}]) *getregtype()*
The result is a String, which is type of register {regname}.
The value will be one of:
@@ -4381,14 +4552,16 @@ getwinpos([{timeout}]) *getwinpos()*
getwinposx() The result is a Number, which is the X coordinate in pixels of
the left hand side of the GUI Vim window. Also works for an
xterm (uses a timeout of 100 msec).
The result will be -1 if the information is not available.
The result will be -1 if the information is not available
(e.g. on the Wayland backend).
The value can be used with `:winpos`.
*getwinposy()*
getwinposy() The result is a Number, which is the Y coordinate in pixels of
the top of the GUI Vim window. Also works for an xterm (uses
a timeout of 100 msec).
The result will be -1 if the information is not available.
The result will be -1 if the information is not available
(e.g. on the Wayland backend).
The value can be used with `:winpos`.
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
@@ -5312,7 +5485,9 @@ len({expr}) The result is a Number, which is the length of the argument.
When {expr} is a |Blob| the number of bytes is returned.
When {expr} is a |Dictionary| the number of entries in the
|Dictionary| is returned.
Otherwise an error is given and returns zero.
When {expr} is an |Object|, invokes the |len()| method in the
object (if present) to get the length. Otherwise returns
zero.
Can also be used as a |method|: >
mylist->len()
@@ -5933,6 +6108,7 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()*
Note that when {count} is added the way {start} works changes,
see above.
*match-pattern*
See |pattern| for the patterns that are accepted.
The 'ignorecase' option is used to set the ignore-caseness of
the pattern. 'smartcase' is NOT used. The matching is always
@@ -6073,31 +6249,34 @@ matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}])
For each match, a |Dict| with the following items is returned:
byteidx starting byte index of the match
   lnum line number where there is a match
   text matched string
lnum line number where there is a match
text matched string
Note that there can be multiple matches in a single line.
This function works only for loaded buffers. First call
|bufload()| if needed.
See |match-pattern| for information about the effect of some
option settings on the pattern.
When {buf} is not a valid buffer, the buffer is not loaded or
{lnum} or {end} is not valid then an error is given and an
empty |List| is returned.
Examples: >
   " Assuming line 3 in buffer 5 contains "a"
   :echo matchbufline(5, '\<\k\+\>', 3, 3)
   [{'lnum': 3, 'byteidx': 0, 'text': 'a'}]
   " Assuming line 4 in buffer 10 contains "tik tok"
   :echo matchbufline(10, '\<\k\+\>', 1, 4)
   [{'lnum': 4, 'byteidx': 0, 'text': 'tik'}, {'lnum': 4, 'byteidx': 4, 'text': 'tok'}]
" Assuming line 3 in buffer 5 contains "a"
:echo matchbufline(5, '\<\k\+\>', 3, 3)
[{'lnum': 3, 'byteidx': 0, 'text': 'a'}]
" Assuming line 4 in buffer 10 contains "tik tok"
:echo matchbufline(10, '\<\k\+\>', 1, 4)
[{'lnum': 4, 'byteidx': 0, 'text': 'tik'}, {'lnum': 4, 'byteidx': 4, 'text': 'tok'}]
<
If {submatch} is present and is v:true, then submatches like
"\1", "\2", etc. are also returned.  Example: >
   " Assuming line 2 in buffer 2 contains "acd"
   :echo matchbufline(2, '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2, 2
"\1", "\2", etc. are also returned. Example: >
" Assuming line 2 in buffer 2 contains "acd"
:echo matchbufline(2, '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2, 2
\ {'submatches': v:true})
   [{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
[{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
< The "submatches" List always contains 9 items. If a submatch
is not found, then an empty string is returned for that
submatch.
@@ -6254,11 +6433,14 @@ matchstrlist({list}, {pat} [, {dict}])
submatches a List of submatches. Present only if
"submatches" is set to v:true in {dict}.
See |match-pattern| for information about the effect of some
option settings on the pattern.
Example: >
   :echo matchstrlist(['tik tok'], '\<\k\+\>')
   [{'idx': 0, 'byteidx': 0, 'text': 'tik'}, {'idx': 0, 'byteidx': 4, 'text': 'tok'}]
   :echo matchstrlist(['a', 'b'], '\<\k\+\>')
   [{'idx': 0, 'byteidx': 0, 'text': 'a'}, {'idx': 1, 'byteidx': 0, 'text': 'b'}]
:echo matchstrlist(['tik tok'], '\<\k\+\>')
[{'idx': 0, 'byteidx': 0, 'text': 'tik'}, {'idx': 0, 'byteidx': 4, 'text': 'tok'}]
:echo matchstrlist(['a', 'b'], '\<\k\+\>')
[{'idx': 0, 'byteidx': 0, 'text': 'a'}, {'idx': 1, 'byteidx': 0, 'text': 'b'}]
<
If "submatches" is present and is v:true, then submatches like
"\1", "\2", etc. are also returned. Example: >
@@ -6923,6 +7105,9 @@ printf({fmt}, {expr1} ...) *printf()*
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
< 1.41
You will get an overflow error |E1510|, when the field-width
or precision will result in a string longer than 6400 chars.
*E1500*
You cannot mix positional and non-positional arguments: >
echo printf("%s%1$s", "One", "Two")
@@ -7388,9 +7573,9 @@ reltime({start}, {end}) *reltime()*
echo startTime->reltime()->reltimestr()
<
Without an argument reltime() returns the current time (the
representation is system-dependent, it can not be used as the
representation is system-dependent, it cannot be used as the
wall-clock time, see |localtime()| for that).
With one argument is returns the time passed since the time
With one argument it returns the time passed since the time
specified in the argument.
With two arguments it returns the time passed between {start}
and {end}.
@@ -7798,6 +7983,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
When a match has been found its line number is returned.
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
To get the matched string, use |matchbufline()|.
{flags} is a String, which can contain these character flags:
'b' search Backward instead of forward
@@ -9416,6 +9602,10 @@ string({expr}) Return {expr} converted to a String. If {expr} is a Number,
replaced by "[...]" or "{...}". Using eval() on the result
will then fail.
For an object, invokes the |string()| method to get a textual
representation of the object. If the method is not present,
then the default representation is used.
Can also be used as a |method|: >
mylist->string()
@@ -10642,17 +10832,16 @@ win_screenpos({nr}) *win_screenpos()*
[1, 1], unless there is a tabline, then it is [2, 1].
{nr} can be the window number or the |window-ID|. Use zero
for the current window.
Returns [0, 0] if the window cannot be found in the current
tabpage.
Returns [0, 0] if the window cannot be found.
Can also be used as a |method|: >
GetWinid()->win_screenpos()
<
win_splitmove({nr}, {target} [, {options}]) *win_splitmove()*
Move the window {nr} to a new split of the window {target}.
This is similar to moving to {target}, creating a new window
using |:split| but having the same contents as window {nr}, and
then closing {nr}.
Temporarily switch to window {target}, then move window {nr}
to a new split adjacent to {target}.
Unlike commands such as |:split|, no new windows are created
(the |window-ID| of window {nr} is unchanged after the move).
Both {nr} and {target} can be window numbers or |window-ID|s.
Both must be in the current tab page.
@@ -10761,7 +10950,9 @@ winnr([{arg}]) The result is a Number, which is the number of the current
# the number of the last accessed window (where
|CTRL-W_p| goes to). If there is no previous
window or it is in another tab page 0 is
returned.
returned. May refer to the current window in
some cases (e.g. when evaluating 'statusline'
expressions).
{N}j the number of the Nth window below the
current window (where |CTRL-W_j| goes to).
{N}k the number of the Nth window above the current

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 9.1. Last change: 2023 Apr 04
*diff.txt* For Vim version 9.1. Last change: 2024 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -476,4 +476,48 @@ Otherwise, the expression is evaluated in the context of the script where the
option was set, thus script-local items are available.
DIFF FUNCTION EXAMPLES *diff-func-examples*
Some examples for using the |diff()| function to compute the diff indices
between two Lists of strings are below.
>
" some lines are changed
:echo diff(['abc', 'def', 'ghi'], ['abx', 'rrr', 'xhi'], {'output': 'indices'})
[{'from_idx': 0, 'from_count': 3, 'to_idx': 0, 'to_count': 3}]
" few lines added at the beginning
:echo diff(['ghi'], ['abc', 'def', 'ghi'], {'output': 'indices'})
[{'from_idx': 0, 'from_count': 0, 'to_idx': 0, 'to_count': 2}]
" few lines removed from the beginning
:echo diff(['abc', 'def', 'ghi'], ['ghi'], {'output': 'indices'})
[{'from_idx': 0, 'from_count': 2, 'to_idx': 0, 'to_count': 0}]
" few lines added in the middle
:echo diff(['abc', 'jkl'], ['abc', 'def', 'ghi', 'jkl'], {'output': 'indices'})
[{'from_idx': 1, 'from_count': 0, 'to_idx': 1, 'to_count': 2}]
" few lines removed in the middle
:echo diff(['abc', 'def', 'ghi', 'jkl'], ['abc', 'jkl'], {'output': 'indices'})
[{'from_idx': 1, 'from_count': 2, 'to_idx': 1, 'to_count': 0}]
" few lines added at the end
:echo diff(['abc'], ['abc', 'def', 'ghi'], {'output': 'indices'})
[{'from_idx': 1, 'from_count': 0, 'to_idx': 1, 'to_count': 2}]
" few lines removed from the end
:echo diff(['abc', 'def', 'ghi'], ['abc'], {'output': 'indices'})
[{'from_idx': 1, 'from_count': 2, 'to_idx': 1, 'to_count': 0}]
" disjointed changes
:echo diff(['ab', 'def', 'ghi', 'jkl'], ['abc', 'def', 'ghi', 'jk'], {'output': 'indices', 'context': 0})
[{'from_idx': 0, 'from_count': 1, 'to_idx': 0, 'to_count': 1},
{'from_idx': 3, 'from_count': 1, 'to_idx': 3, 'to_count': 1}]
" disjointed changes with context length 1
:echo diff(['ab', 'def', 'ghi', 'jkl'], ['abc', 'def', 'ghi', 'jk'], {'output': 'indices', 'context': 1})
[{'from_idx': 0, 'from_count': 4, 'to_idx': 0, 'to_count': 4}]
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 9.1. Last change: 2023 Sep 27
*editing.txt* For Vim version 9.1. Last change: 2024 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1329,8 +1329,9 @@ b:browsefilter variable. You would most likely set b:browsefilter in a
filetype plugin, so that the browse dialog would contain entries related to
the type of file you are currently editing. Disadvantage: This makes it
difficult to start editing a file of a different type. To overcome this, you
may want to add "All Files\t*.*\n" as the final filter, so that the user can
still access any desired file.
may want to add "All Files (*.*)\t*\n" as the final filter on Windows or "All
Files (*)\t*\n" on other platforms, so that the user can still access any
desired file.
To avoid setting browsefilter when Vim does not actually support it, you can
use has("browsefilter"): >

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.1. Last change: 2023 Dec 09
*eval.txt* For Vim version 9.1. Last change: 2024 Mar 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -303,10 +303,15 @@ List concatenation ~
*list-concatenation*
Two lists can be concatenated with the "+" operator: >
:let longlist = mylist + [5, 6]
:let mylist += [7, 8]
:let longlist = [5, 6] + mylist
To prepend or append an item, turn it into a list by putting [] around it.
To prepend or append an item, turn the item into a list by putting [] around
it. To change a list in-place, refer to |list-modification| below.
A list can be concatenated with another one in-place using |:let+=| or
|extend()|: >
:let mylist += [7, 8]
:call extend(mylist, [7, 8])
<
See |list-modification| below for more about changing a list in-place.
Sublist ~
@@ -425,6 +430,18 @@ To change part of a list you can specify the first and last item to be
modified. The value must at least have the number of items in the range: >
:let list[3:5] = [3, 4, 5]
To add items to a List in-place, you can use |:let+=| (|list-concatenation|): >
:let listA = [1, 2]
:let listA += [3, 4]
<
When two variables refer to the same List, changing one List in-place will
cause the referenced List to be changed in-place: >
:let listA = [1, 2]
:let listB = listA
:let listB += [3, 4]
:echo listA
[1, 2, 3, 4]
<
Adding and removing items from a list is done with functions. Here are a few
examples: >
:call insert(list, 'a') " prepend item 'a'
@@ -745,12 +762,15 @@ This calls Doit() with 0x11, 0x22 and 0x33.
Blob concatenation ~
*blob-concatenation*
Two blobs can be concatenated with the "+" operator: >
:let longblob = myblob + 0z4455
:let longblob = 0z4455 + myblob
<
A blob can be concatenated with another one in-place using |:let+=|: >
:let myblob += 0z6677
To change a blob in-place see |blob-modification| below.
<
See |blob-modification| below for more about changing a blob in-place.
Part of a blob ~
@@ -793,6 +813,18 @@ To change part of a blob you can specify the first and last byte to be
modified. The value must have the same number of bytes in the range: >
:let blob[3:5] = 0z334455
To add items to a Blob in-place, you can use |:let+=| (|blob-concatenation|): >
:let blobA = 0z1122
:let blobA += 0z3344
<
When two variables refer to the same Blob, changing one Blob in-place will
cause the referenced Blob to be changed in-place: >
:let blobA = 0z1122
:let blobB = blobA
:let blobB += 0z3344
:echo blobA
0z11223344
<
You can also use the functions |add()|, |remove()| and |insert()|.
@@ -2005,9 +2037,14 @@ v:collate The current locale setting for collation order of the runtime
*v:colornames*
v:colornames A dictionary that maps color names to hex color strings. These
color names can be used with the |highlight-guifg|,
|highlight-guibg|, and |highlight-guisp| parameters. Updating
an entry in v:colornames has no immediate effect on the syntax
highlighting. The highlight commands (probably in a
|highlight-guibg|, and |highlight-guisp| parameters.
The key values in the dictionary (the color names) should be
lower cased, because Vim looks up a color by its lower case
name.
Updating an entry in v:colornames has no immediate effect on
the syntax highlighting. The highlight commands (probably in a
colorscheme script) need to be re-evaluated in order to use
the updated color values. For example: >
@@ -2039,6 +2076,10 @@ v:colornames A dictionary that maps color names to hex color strings. These
both automatically load all `colors/lists/default.vim` color
scripts.
You can make changes to that file, but make sure to add new
keys instead of updating existing ones, otherwise Vim will skip
loading the file (thinking is hasn't been changed).
*v:completed_item* *completed_item-variable*
v:completed_item
|Dictionary| containing the |complete-items| for the most
@@ -2568,8 +2609,9 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
'c', with only digits and ';' in between.
When this option is set, the TermResponse autocommand event is
fired, so that you can react to the response from the
terminal. You can use |terminalprops()| to see what Vim
figured out about the terminal.
terminal. The TermResponseAll event is also fired, with
<amatch> set to "version". You can use |terminalprops()| to see
what Vim figured out about the terminal.
The response from a new xterm is: "<Esc>[> Pp ; Pv ; Pc c". Pp
is the terminal type: 0 for vt100 and 1 for vt220. Pv is the
patch level (since this was introduced in patch 95, it's
@@ -2581,27 +2623,37 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
*v:termblinkresp*
v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
termcap entry. This is used to find out whether the terminal
cursor is blinking. This is used by |term_getcursor()|.
cursor is blinking. This is used by |term_getcursor()|. When
this option is set, the TermResponseAll autocommand event is
fired, with <amatch> set to "cursorblink".
*v:termstyleresp*
v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
termcap entry. This is used to find out what the shape of the
cursor is. This is used by |term_getcursor()|.
cursor is. This is used by |term_getcursor()|. When this
option is set, the TermResponseAll autocommand event is fired,
with <amatch> set to "cursorshape".
*v:termrbgresp*
v:termrbgresp The escape sequence returned by the terminal for the |t_RB|
termcap entry. This is used to find out what the terminal
background color is, see 'background'.
background color is; see 'background'. When this option is
set, the TermResponseAll autocommand event is fired, with
<amatch> set to "background".
*v:termrfgresp*
v:termrfgresp The escape sequence returned by the terminal for the |t_RF|
termcap entry. This is used to find out what the terminal
foreground color is.
foreground color is. When this option is set, the
TermResponseAll autocommand event is fired, with <amatch> set
to "foreground".
*v:termu7resp*
v:termu7resp The escape sequence returned by the terminal for the |t_u7|
termcap entry. This is used to find out what the terminal
does with ambiguous width characters, see 'ambiwidth'.
does with ambiguous width characters, see 'ambiwidth'. When
this option is set, the TermResponseAll autocommand event is
fired, with <amatch> set to "ambiguouswidth".
*v:testing* *testing-variable*
v:testing Must be set before using `test_garbagecollect_now()`.
@@ -2793,6 +2845,8 @@ declarations and assignments do not use a command. |vim9-declaration|
:let {var} ..= {expr1} Like ":let {var} = {var} .. {expr1}".
These fail if {var} was not set yet and when the type
of {var} and {expr1} don't fit the operator.
`+=` modifies a |List| or a |Blob| in-place instead of
creating a new one.
`.=` is not supported with Vim script version 2 and
later, see |vimscript-version|.

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 9.1. Last change: 2024 Jan 01
*filetype.txt* For Vim version 9.1. Last change: 2024 Feb 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -148,6 +148,7 @@ variables can be used to overrule the filetype used for certain extensions:
*.cls g:filetype_cls
*.csh g:filetype_csh |ft-csh-syntax|
*.dat g:filetype_dat
*.def g:filetype_def
*.f g:filetype_f |ft-forth-syntax|
*.frm g:filetype_frm |ft-form-syntax|
*.fs g:filetype_fs |ft-forth-syntax|
@@ -495,7 +496,7 @@ g:changelog_new_date_format
%% insert a single '%' character
%d insert the date from above
%u insert the user from above
%p insert result of b:changelog_entry_prefix
%p insert result of b:changelog_entry_prefix
%c where to position cursor when done
The default is "%d %u\n\n\t* %p%c\n\n", which produces
something like (| is where cursor will be, unless at
@@ -509,7 +510,7 @@ g:changelog_new_entry_format
The format used when creating a new entry.
The following table describes special tokens in the
string:
%p insert result of b:changelog_entry_prefix
%p insert result of b:changelog_entry_prefix
%c where to position cursor when done
The default is "\t*%c", which produces something
similar to >
@@ -563,6 +564,18 @@ under it. If not found, a new entry and item is prepended to the beginning of
the Changelog.
ASCIIDOC *ft-asciidoc-plugin*
To enable |folding| use this: >
let g:asciidoc_folding = 1
To disable nesting of folded headers use this: >
let g:asciidoc_foldnested = 0
To disable folding everything under the title use this: >
let asciidoc_fold_under_title = 0
FORTRAN *ft-fortran-plugin*
Options:

View File

@@ -172,7 +172,7 @@ GNAT OBJECT ~
*g:gnat.Make()*
g:gnat.Make()
Calls |g:gnat.Make_Command| and displays the result inside a
|quickfix| window.
|quickfix| window.
*g:gnat.Pretty()*
g:gnat.Pretty()

View File

@@ -371,7 +371,7 @@ This command breaks down as: >
'sqlKeyword' - Display the items for the sqlKeyword highlight
group
'sqlKeyword\w*' - A second option available with Vim 7.4 which
uses a regular expression to determine which
uses a regular expression to determine which
syntax groups to use
)<CR> - Execute the :let command
<C-X><C-O> - Trigger the standard omni completion key stroke.

View File

@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 9.1. Last change: 2022 Mar 09
*gui_w32.txt* For Vim version 9.1. Last change: 2024 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -454,4 +454,38 @@ You may need to get the vim16x16.xpm file from github:
https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm
Keycode translation strategy *w32-experimental-keycode-trans-strategy*
In Patch v8.2.4807 W32 GVIM was changed over to experimental keycode
translation method with the aim to be able to use more keyboard shortcuts and
especially supporting non-standard keyboard layouts. In order to implement
this support Win API TranslateMessage() call was dropped, and instead the
recognition of keycode was changed over to ToUnicode() Win API call. This
approach uncovered numerous corner cases, which are apparently covered by
TranslateMessage() implementation, each of it is necessary to be dealt with on
an individual basis. Therefore the decision was taken to declare this
functionality experimental for the time being and to recover "classic" keycode
translation method as default again.
Discussion about use of "experimental" keycode translation method will
probably last some time yet. In the meantime, if you are impacted by this
change over back to "classic" keycode translation method in W32 GVIM, you can
enable "experimental" translation method again in your vimrc using following
snippet:
>
:call test_mswin_event('set_keycode_trans_strategy', {'strategy': 'experimental'})
<
Similarly, in case you need to turn back "classic" keycode translation method
(for example for testing purposes), please use:
>
:call test_mswin_event('set_keycode_trans_strategy', {'strategy': 'classic'})
<
Alternatively (this method is especially useful for the TINY GVIM build, where
test_mswin_event() cannot be called), an environment variable
VIM_KEYCODE_TRANS_STRATEGY can be set to the desired value ("experimental" or
"classic"), to override the default, e.g., type in dos prompt:
>
set VIM_KEYCODE_TRANS_STRATEGY=experimental
gvim.exe
<
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 9.1. Last change: 2022 Apr 03
*gui_x11.txt* For Vim version 9.1. Last change: 2024 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -580,7 +580,8 @@ command line argument).
*gui-x11-kde*
There is no KDE version of Vim. There has been some work on a port using the
Qt toolkit, but it never worked properly and it has been abandoned. Work
continues on Yzis: https://github.com/chrizel/Yzis.
continues on Yzis: https://github.com/chrizel/Yzis but it seems also
abandoned.
==============================================================================
8. Compiling *gui-x11-compiling*
@@ -647,6 +648,15 @@ versions. This will cause problems. For example, using header files for
X11R5 with a library for X11R6 probably doesn't work (although the linking
won't give an error message, Vim will crash later).
*gui-wayland*
Initial support for the Wayland display server protocol has landed in patch
9.1.0064. To enable it, you need to set the environment variable
"$GVIM_ENABLE_WAYLAND" in your shell.
Note: The Wayland protocol is subject to some restrictions, so the following
functions won't work: |getwinpos()|, |getwinposx()|, |getwinposy()| and the
|v:windowid| variable won't be available.
==============================================================================
9. X11 selection mechanism *x11-selection*

View File

@@ -39,9 +39,9 @@ instance), code similar to the following should be used:
$vim = new Win32::OLE 'Vim.Application';
[C#] >
// Add a reference to Vim in your project.
// Choose the COM tab.
// Select "Vim Ole Interface 1.1 Type Library"
// Add a reference to Vim in your project.
// Choose the COM tab.
// Select "Vim Ole Interface 1.1 Type Library"
Vim.Vim vimobj = new Vim.Vim();
Vim does not support acting as a "hidden" OLE server, like some other OLE

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 9.1. Last change: 2023 Dec 27
*indent.txt* For Vim version 9.1. Last change: 2024 Feb 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1255,5 +1255,11 @@ Example of configuration: >
This variable is equivalent to `g:vim_indent.line_continuation`.
It's supported for backward compatibility.
YAML *ft-yaml-indent*
By default, the yaml indent script does not try to detect multiline scalars.
If you want to enable this, set the following variable: >
let g:yaml_indent_multiline_scalar = 1
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1172,6 +1172,8 @@ tag command action ~
|:>| :> shift lines one 'shiftwidth' right
|:@| :@ execute contents of a register
|:@@| :@@ repeat the previous ":@"
|:2match| :2mat[ch] define a second match to highlight
|:3match| :3mat[ch] define a third match to highlight
|:Next| :N[ext] go to previous file in the argument list
|:Print| :P[rint] print lines
|:X| :X ask for encryption key

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 9.1. Last change: 2022 Sep 30
*insert.txt* For Vim version 9.1. Last change: 2024 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -168,22 +168,22 @@ CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
auto-indent. Does the same as pasting with the mouse
|<MiddleMouse>|. When the register is linewise this will
insert the text above the current line, like with `P`.
Does not replace characters!
The '.' register (last inserted text) is still inserted as
typed.
After this command, the '.' register contains the command
typed and not the text. I.e., the literals "^R^O" and not the
text from the register.
Does not replace characters in |Replace-mode|!
CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
Insert the contents of a register literally and fix the
indent, like |[<MiddleMouse>|.
Does not replace characters!
The '.' register (last inserted text) is still inserted as
typed.
After this command, the '.' register contains the command
typed and not the text. I.e., the literals "^R^P" and not the
text from the register.
Does not replace characters in |Replace-mode|!
*i_CTRL-T*
CTRL-T Insert one shiftwidth of indent at the start of the current

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 9.1. Last change: 2023 Nov 18
*intro.txt* For Vim version 9.1. Last change: 2024 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -475,7 +475,7 @@ notation meaning equivalent decimal value(s) ~
<C-...> control-key *control* *ctrl* *<C-*
<M-...> alt-key or meta-key *meta* *alt* *<M-*
<A-...> same as <M-...> *<A-*
<D-...> command-key (Macintosh only) *<D-*
<D-...> command-key (Mac) / super (GTK) *<D-*
<t_xx> key with "xx" entry in termcap
-----------------------------------------------------------------------

View File

@@ -21,6 +21,13 @@ NR == 1 { nf=split(FILENAME,f,".")
gsub(/%/,"\\&#37;");
nf=split($0,tag," ");
if (counttag[tag[1]] > 0)
{
print "==============" > "errors.log"
print "Duplicate Tag " tag[1] > "errors.log"
print "==============" > "errors.log"
}
counttag[tag[1]]++
tagkey[t]=tag[1];tagref[t]=tag[2];tagnum[t]=NR;
print $1 " " $2 " line " NR >"tags.ref"
n=split($2,w,".");

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 9.1. Last change: 2024 Jan 04
*map.txt* For Vim version 9.1. Last change: 2024 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -21,9 +21,10 @@ manual.
1.9 Using mappings |map-typing|
1.10 Mapping alt-keys |:map-alt-keys|
1.11 Mapping meta-keys |:map-meta-keys|
1.12 Mapping in modifyOtherKeys mode |modifyOtherKeys|
1.13 Mapping with Kitty keyboard protocol |kitty-keyboard-protocol|
1.14 Mapping an operator |:map-operator|
1.12 Mapping super-keys or command keys |:map-super-keys|
1.13 Mapping in modifyOtherKeys mode |modifyOtherKeys|
1.14 Mapping with Kitty keyboard protocol |kitty-keyboard-protocol|
1.15 Mapping an operator |:map-operator|
2. Abbreviations |abbreviations|
3. Local mappings and functions |script-local|
4. User-defined commands |user-commands|
@@ -591,7 +592,7 @@ displayed in the first line. Also a key map will also display where it was
last defined. Example: >
:verbose map <C-W>*
Kitty keyboard protocol: Cleared
Kitty keyboard protocol: Cleared
n <C-W>* * <C-W><C-S>*
Last set from /home/abcd/.vimrc
@@ -985,8 +986,17 @@ For the Meta modifier the "T" character is used. For example, to map Meta-b
in Insert mode: >
:imap <T-b> terrible
1.12 MAPPING SUPER-KEYS or COMMAND-KEYS *:map-super-keys* *:map-cmd-key*
1.12 MAPPING IN modifyOtherKeys mode *modifyOtherKeys*
The Super modifier is available in GUI mode (when |gui_running| is 1) for
GVim on Linux and MacVim on Mac OS. If you're on a Mac, this represents the
Command key, on Linux with the GTK GUI it represents the Super key.
The character "D" is used for the Super / Command modifier.
For example, to map Command-b in Insert mode: >
:imap <D-b> barritone
1.13 MAPPING IN modifyOtherKeys mode *modifyOtherKeys*
Xterm and a few other terminals can be put in a mode where keys with modifiers
are sent with a special escape code. Vim recognizes these codes and can then
@@ -1048,7 +1058,7 @@ When the 'esckeys' option is off, then modifyOtherKeys will be disabled in
Insert mode to avoid every key with a modifier causing Insert mode to end.
1.13 MAPPING WITH KITTY KEYBOARD PROTOCOL *kitty-keyboard-protocol*
1.14 MAPPING WITH KITTY KEYBOARD PROTOCOL *kitty-keyboard-protocol*
If the value of 'term' contains "kitty" then Vim will send out an escape
sequence to enable the Kitty keyboard protocol. This can be changed with the
@@ -1075,7 +1085,7 @@ translated). The meaning of {value}:
previous state is unknown
1.14 MAPPING AN OPERATOR *:map-operator*
1.15 MAPPING AN OPERATOR *:map-operator*
An operator is used before a {motion} command. To define your own operator
you must create a mapping that first sets the 'operatorfunc' option and then

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 9.1. Last change: 2023 Dec 20
*message.txt* For Vim version 9.1. Last change: 2024 Mar 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -122,6 +122,13 @@ wiped out a buffer which contains a mark or is referenced in another way.
You cannot have two buffers with exactly the same name. This includes the
path leading to the file.
*E1513*
Cannot switch buffer. 'winfixbuf' is enabled ~
If a window has 'winfixbuf' enabled, you cannot change that window's current
buffer. You need to set 'nowinfixbuf' before continuing. You may use [!] to
force the window to switch buffers, if your command supports it.
*E72*
Close error on swap file ~

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2024 Jan 03
*options.txt* For Vim version 9.1. Last change: 2024 Mar 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -333,6 +333,7 @@ created, thus they behave slightly differently:
Option Reason ~
'previewwindow' there can only be a single one
'scroll' specific to existing window
'winfixbuf' specific to existing window
'winfixheight' specific to existing window
'winfixwidth' specific to existing window
@@ -365,11 +366,24 @@ created, thus they behave slightly differently:
For a global option the global value is
shown (but that might change in the future).
:setl[ocal] {option}< Set the local value of {option} to its global value by
copying the value.
:se[t] {option}< Set the effective value of {option} to its global
value.
For string |global-local| options, the local value is
removed, so that the global value will be used.
For all other options, the global value is copied to
the local value.
:se[t] {option}< For |global-local| options: Remove the local value of
{option}, so that the global value will be used.
:setl[ocal] {option}< Set the effective value of {option} to its global
value.
For number and boolean |global-local| options, the
local value is removed, so that the global value will
be used.
For all other options, including string |global-local|
options, the global value is copied to the local
value.
Note that the behaviour for |global-local| options is slightly different
between string and number-based options.
*:setg* *:setglobal*
:setg[lobal][!] ... Like ":set" but set only the global value for a local
@@ -2919,7 +2933,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Use the indent heuristic for the internal
diff library.
algorithm:{text} Use the specified diff algorithm with the
algorithm:{text} Use the specified diff algorithm with the
internal diff engine. Currently supported
algorithms are:
myers the default algorithm
@@ -3478,12 +3492,10 @@ A jump table for the options with a short description can be found at |Q_op|.
*'fillchars'* *'fcs'*
'fillchars' 'fcs' string (default "vert:|,fold:-,eob:~")
global or local to window |global-local|
{not available when compiled without the |+folding|
feature}
Characters to fill the statuslines, vertical separators and special
lines in the window.
It is a comma-separated list of items. Each item has a name, a colon
and the value of that item:
and the value of that item: |E1511|
item name default Used for ~
stl ' ' statusline of the current window
@@ -3504,7 +3516,7 @@ A jump table for the options with a short description can be found at |Q_op|.
<
For the "stl", "stlnc", "foldopen", "foldclose" and "foldsep" items
single-byte and multibyte characters are supported. But double-width
characters are not supported.
characters are not supported. |E1512|
The highlighting used for these items:
item name highlight group ~
@@ -4002,7 +4014,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'guiligatures'* *'gli'* *E1243*
'guiligatures' 'gli' string (default "")
global
{only for GTK GUI}
{only for GTK and Win32 GUI}
List of ASCII characters that, when combined together, can create more
complex shapes. Each character must be a printable ASCII character
with a value in the 32-127 range.
@@ -5243,7 +5255,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'listchars' 'lcs' string (default "eol:$")
global or local to window |global-local|
Strings to use in 'list' mode and for the |:list| command. It is a
comma-separated list of string settings.
comma-separated list of string settings. *E1511*
*lcs-eol*
eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the
@@ -5319,7 +5331,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The characters ':' and ',' should not be used. UTF-8 characters can
be used when 'encoding' is "utf-8", otherwise only printable
characters are allowed. All characters must be single width.
characters are allowed. All characters must be single width. *E1512*
Each character can be specified as hex: >
set listchars=eol:\\x24
@@ -6456,7 +6468,7 @@ A jump table for the options with a short description can be found at |Q_op|.
this option at the default "on". Only switch it off when working with
old Vi scripts.
*'renderoptions'* *'rop'*
*'renderoptions'* *'rop'*
'renderoptions' 'rop' string (default: empty)
global
{only available when compiled with GUI and DIRECTX on
@@ -7242,7 +7254,7 @@ A jump table for the options with a short description can be found at |Q_op|.
q use "recording" instead of "recording @a" *shm-q*
F don't give the file info when editing a file, like *shm-F*
`:silent` was used for the command; note that this also
affects messages from autocommands
affects messages from autocommands and 'autoread' reloading
S do not show search count message when searching, e.g. *shm-S*
"[1/5]"
@@ -8010,6 +8022,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"split" when both are present.
uselast If included, jump to the previously used window when
jumping to errors with |quickfix| commands.
If a window has 'winfixbuf' enabled, 'switchbuf' is currently not
applied to the split window.
*'synmaxcol'* *'smc'*
'synmaxcol' 'smc' number (default 3000)
@@ -8583,8 +8597,11 @@ A jump table for the options with a short description can be found at |Q_op|.
will not work (except in the GUI).
If the title cannot be restored, it is set to the value of 'titleold'.
You might want to restore the title outside of Vim then.
When using an xterm from a remote machine you can use this command:
When using an xterm from a remote machine you can use this command: >
rsh machine_name xterm -display $DISPLAY &
ssh -X machine_name xterm &
<
then the WINDOWID environment variable should be inherited and the
title of the window should change back to what it should be after
exiting Vim.
@@ -9457,6 +9474,15 @@ A jump table for the options with a short description can be found at |Q_op|.
Note: Do not confuse this with the height of the Vim window, use
'lines' for that.
*'winfixbuf'*
'winfixbuf' 'wfb' boolean (default off)
local to window
If enabled, the window and the buffer it is displaying are paired.
For example, attempting to change the buffer with |:edit| will fail.
Other commands which change a window's buffer such as |:cnext| will
also skip any window with 'winfixbuf' enabled. However if an Ex
command has a "!" modifier, it can force switching buffers.
*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
'winfixheight' 'wfh' boolean (default off)
local to window |local-noglobal|

View File

@@ -753,7 +753,7 @@ Solution 2. Different directories: >
$ say "IA64 platform"
$ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
$ endif
$! VIMRUNTIME must be defined in order to find runtime files
$! VIMRUNTIME must be defined in order to find runtime files
$ define/nolog VIMRUNTIME RF10:[UTIL.VIM73]
A good example for this approach is the [GNU]gnu_tools.com script from

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 9.1. Last change: 2023 May 14
*pi_netrw.txt* For Vim version 9.1. Last change: 2023 Jun 19
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@@ -642,7 +642,7 @@ additional prompting.
work with your ftp client. Otherwise the script will
prompt for user-id and password.
(*3) for ftp, "machine" may be machine#port or machine:port
(*3) for ftp, "machine" may be machine#port or machine:port
if a different port is needed than the standard ftp port
(*4) for http:..., if wget is available it will be used. Otherwise,
@@ -788,7 +788,7 @@ below, a {netfile} is a URL to a remote file.
(related: |netrw-userpass|)
:NetrwSettings This command is described in |netrw-settings| -- used to
display netrw settings and change netrw behavior.
display netrw settings and change netrw behavior.
==============================================================================
@@ -1625,10 +1625,8 @@ A further approach is to delete files which match a pattern.
This will cause the matching files to be marked. Then,
press "D".
If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
is used to remove directories; instead, vim's |delete()| is used with
the "d" option. Please note that only empty directories may be deleted
with the "D" mapping. Regular files are deleted with |delete()|, too.
Please note that only empty directories may be deleted with the "D" mapping.
Regular files are deleted with |delete()|, too.
The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
used to control the attempts to remove remote files and directories. The
@@ -1647,8 +1645,7 @@ to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
|g:netrw_rmf_cmd|: ssh HOSTNAME rm -f
Related topics: |netrw-d|
Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
|g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
Associated setting variable: |g:netrw_rm_cmd| |g:netrw_ssh_cmd|
*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
@@ -1691,7 +1688,11 @@ DIRECTORY EXPLORATION COMMANDS {{{2
to 2; edits will thus preferentially be made in window#2.
The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
window.
window. That means that
if [N] < 0 : use |N| columns for the Lexplore window
if [N] = 0 : a normal split is made
if [N] > 0 : use N% of the current window will be used for the
new window
Those who like this method often also like tree style displays;
see |g:netrw_liststyle|.
@@ -2863,14 +2864,6 @@ your browsing preferences. (see also: |netrw-settings|)
=" /c move" Windows
Options for |g:netrw_localmovecmd|
*g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows
Remove directory command (rmdir)
This variable is only used if your vim is
earlier than 7.4 or if your vim doesn't
have patch#1107. Otherwise, |delete()|
is used with the "d" option.
*g:netrw_maxfilenamelen* =32 by default, selected so as to make long
listings fit on 80 column displays.
If your screen is wider, and you have file
@@ -3781,7 +3774,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
Netrw uses several system level commands to do things (see
|g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
|g:netrw_localrmdir|, |g:netrw_mkdir_cmd|).
|g:netrw_mkdir_cmd|).
You may need to adjust the default commands for one or more of
these commands by setting them properly in your .vimrc. Another
@@ -3907,8 +3900,13 @@ netrw:
==============================================================================
12. History *netrw-history* {{{1
v172: Apr 22, 2023 * removed g:netrw_localrmdiropt
removed g:netrw_localrmdir
v172: Sep 02, 2021 * (Bram Moolenaar) Changed "l:go" to "go"
* (Bram Moolenaar) no need for "b" in
netrw-safe guioptions
Nov 15, 2021 * removed netrw_localrm and netrw_localrmdir
references
Aug 18, 2022 * (Miguel Barro) improving compatability with
powershell
v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe()
to allow |'bh'| to be set to delete when
rather than hide when g:netrw_fastbrowse
@@ -3996,7 +3994,6 @@ netrw:
|g:netrw_localcopydircmdopt|
|g:netrw_localmkdiropt|
|g:netrw_localmovecmdopt|
g:netrw_localrmdiropt
Nov 21, 2016 * (mattn) provided a patch for preview; swapped
winwidth() with winheight()
Nov 22, 2016 * (glacambre) reported that files containing
@@ -4056,7 +4053,7 @@ netrw:
refreshes. However, inside a |:map-<expr>|,
tab and window changes are disallowed. Fixed.
(affects netrw's s:LocalBrowseRefresh())
* |g:netrw_localrmdir| not used any more, but
* g:netrw_localrmdir not used any more, but
the relevant patch that causes |delete()| to
take over was #1107 (not #1109).
* |expand()| is now used on |g:netrw_home|;

View File

@@ -378,14 +378,14 @@ processing a quickfix or location list command, it will be aborted.
List all errors.
:cl[ist]! +{count} List the current and next {count} error lines. This
is useful to see unrecognized lines after the current
is useful to see unrecognized lines after the current
one. For example, if ":clist" shows:
8384 testje.java:252: error: cannot find symbol ~
Then using ":cl! +3" shows the reason:
8384 testje.java:252: error: cannot find symbol ~
8385: ZexitCode = Fmainx(); ~
8386: ^ ~
8387: symbol: method Fmainx() ~
8384 testje.java:252: error: cannot find symbol ~
Then using ":cl! +3" shows the reason:
8384 testje.java:252: error: cannot find symbol ~
8385: ZexitCode = Fmainx(); ~
8386: ^ ~
8387: symbol: method Fmainx() ~
:lli[st] [from] [, [to]] *:lli* *:llist*
Same as ":clist", except the location list for the

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 9.1. Last change: 2023 Dec 05
*quickref.txt* For Vim version 9.1. Last change: 2024 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1005,6 +1005,7 @@ Short explanation of each option: *option-list*
'winaltkeys' 'wak' when the windows system handles ALT keys
'wincolor' 'wcr' window-local highlighting
'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
'winfixbuf' 'wfb' keep window focused on a single buffer
'winfixheight' 'wfh' keep window height when opening/closing windows
'winfixwidth' 'wfw' keep window width when opening/closing windows
'winheight' 'wh' minimum number of lines for the current window

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 9.1. Last change: 2023 Oct 20
*starting.txt* For Vim version 9.1. Last change: 2024 Mar 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -113,10 +113,10 @@ Additional characters may follow, they are ignored. For example, you can have
"gvim-8" to start the GUI. You must have an executable by that name then, of
course.
On Unix, you would normally have one executable called Vim, and links from the
different startup-names to that executable. If your system does not support
links and you do not want to have several copies of the executable, you could
use an alias instead. For example: >
On Unix, you would normally have one executable called "vim", and links from
the different startup-names to that executable. If your system does not
support links and you do not want to have several copies of the executable,
you could use an alias instead. For example, in a C shell descendant: >
alias view vim -R
alias gvim vim -g
<
@@ -194,7 +194,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
--cmd {command} *--cmd*
{command} will be executed before processing any vimrc file.
Otherwise it acts like -c {command}. You can use up to 10 of
Otherwise, it acts like -c {command}. You can use up to 10 of
these commands, independently from "-c" commands.
*-S*
@@ -279,7 +279,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
*-s-ex*
-s Silent or batch mode. Only when Vim was started as "ex" or
when preceded with the "-e" argument. Otherwise see |-s|,
when preceded with the "-e" argument. Otherwise, see |-s|,
which does take an argument while this use of "-s" doesn't.
To be used when Vim is used to execute Ex commands from a file
instead of a terminal. Switches off most prompts and
@@ -289,12 +289,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
:list
:number
:set to display option values.
When 'verbose' is non-zero messages are printed (for
When 'verbose' is non-zero, messages are printed (for
debugging, to stderr).
'term' and $TERM are not used.
If Vim appears to be stuck try typing "qa!<Enter>". You don't
get a prompt thus you can't see Vim is waiting for you to type
something.
If Vim appears to be stuck, try typing "qa!<Enter>". You
don't get a prompt, thus you can't see Vim is waiting for you
to type something.
Initializations are skipped (except the ones given with the
"-u" argument).
Example: >
@@ -317,7 +317,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
*-A*
-A Arabic mode. Sets the 'arabic' option on. {only when
compiled with the |+arabic| features (which include
|+rightleft|), otherwise Vim gives an error message
|+rightleft|), otherwise, Vim gives an error message
and exits}
*-F*
@@ -326,7 +326,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
*-H*
-H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.
{only when compiled with the |+rightleft| feature, otherwise
{only when compiled with the |+rightleft| feature, otherwise,
Vim gives an error message and exits}
*-V* *verbose*
@@ -407,7 +407,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
few windows will be editing an empty file.
*-O*
-O[N] Open N windows, split vertically. Otherwise it's like -o.
-O[N] Open N windows, split vertically. Otherwise, it's like -o.
If both the -o and the -O option are given, the last one on
the command line determines how the windows will be split.
@@ -483,8 +483,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
This can be used to start Vim in a special mode, with special
mappings and settings. A shell alias can be used to make
this easy to use. For example: >
alias vimc vim -u ~/.c_vimrc !*
this easy to use. For example, in a C shell descendant: >
alias vimc 'vim -u ~/.c_vimrc \!*'
< And in a Bash shell: >
alias vimc='vim -u ~/.c_vimrc'
< Also consider using autocommands; see |autocommand|.
When {vimrc} is equal to "NONE" (all uppercase), all
@@ -544,9 +546,9 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
window title and copy/paste using the X clipboard. This
avoids a long startup time when running Vim in a terminal
emulator and the connection to the X server is slow.
See |--startuptime| to find out if affects you.
See |--startuptime| to find out if this affects you.
Only makes a difference on Unix or VMS, when compiled with the
|+X11| feature. Otherwise it's ignored.
|+X11| feature. Otherwise, it's ignored.
To disable the connection only for specific terminals, see the
'clipboard' option.
When the X11 Session Management Protocol (XSMP) handler has
@@ -575,8 +577,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
":source!". When the "scriptout" file already exists, new
characters are appended. See also |complex-repeat|.
{scriptout} cannot start with a digit.
If you want to record what is typed in a human readable for
you can use |ch_logfile()|, It adds "raw key input" lines.
If you want to record what is typed in a human readable form,
you can use |ch_logfile()|. It adds "raw key input" lines.
Also see |--log|.
*-W*
@@ -666,7 +668,7 @@ If the executable is called "ex", Vim will start in "Ex" mode. This means it
will accept only ":" commands. But when the "-v" argument is given, Vim will
start in Normal mode anyway.
Additional arguments are available on unix like systems when compiled with
Additional arguments are available on Unix like systems when compiled with
X11 GUI support. See |gui-resources|.
==============================================================================
@@ -740,7 +742,7 @@ In Evim these options are changed from their default value:
:set incsearch show matches halfway typing a pattern
:set mouse=a use the mouse in all modes
:set hlsearch highlight all matches for a search pattern
:set whichwrap+=<,>,[,] <Left> and <Right> wrap around line breaks
:set whichwrap+=<,>,[,] <Left> and <Right> wrap around line breaks
:set guioptions-=a non-Unix only: don't do auto-select
Key mappings:
@@ -833,7 +835,7 @@ accordingly. Vim proceeds in this order:
initializations until 4. are skipped. Only the "-u" option is
interpreted.
*evim.vim*
a. If vim was started as |evim| or |eview| or with the |-y| argument, the
a. If Vim was started as |evim| or |eview| or with the |-y| argument, the
script $VIMRUNTIME/evim.vim will be loaded.
*system-vimrc*
b. For Unix, MS-Windows, VMS, Macintosh and Amiga the system vimrc file
@@ -929,7 +931,7 @@ accordingly. Vim proceeds in this order:
This means that Vim will figure out the values of 'shellpipe' and
'shellredir' for you, unless you have set them yourself.
6. Set 'updatecount' to zero, if "-n" command argument used
6. Set 'updatecount' to zero, if "-n" command argument used.
7. Set binary options
If the "-b" flag was given to Vim, the options for binary editing will
@@ -973,7 +975,7 @@ Some hints on using initializations ~
Standard setup:
Create a vimrc file to set the default settings and mappings for all your edit
sessions. Put it in a place so that it will be found by 3b:
sessions. Put it in a place so that it will be found by 3b.:
~/.vimrc (Unix)
s:.vimrc (Amiga)
$VIM\_vimrc (Win32)
@@ -1087,11 +1089,11 @@ Avoiding trojan horses ~
*trojan-horse*
While reading the "vimrc" or the "exrc" file in the current directory, some
commands can be disabled for security reasons by setting the 'secure' option.
This is always done when executing the command from a tags file. Otherwise it
would be possible that you accidentally use a vimrc or tags file that somebody
else created and contains nasty commands. The disabled commands are the ones
that start a shell, the ones that write to a file, and ":autocmd". The ":map"
commands are echoed, so you can see which keys are being mapped.
This is always done when executing the command from a tags file. Otherwise,
it would be possible that you accidentally use a vimrc or tags file that
somebody else created and contains nasty commands. The disabled commands are
the ones that start a shell, the ones that write to a file, and ":autocmd".
The ":map" commands are echoed, so you can see which keys are being mapped.
If you want Vim to execute all commands in a local vimrc file, you
can reset the 'secure' option in the EXINIT or VIMINIT environment variable or
in the global "exrc" or "vimrc" file. This is not possible in "vimrc" or
@@ -1248,9 +1250,9 @@ continue if you make it the foreground job again. On other systems, CTRL-Z
will start a new shell. This is the same as the ":sh" command. Vim will
continue if you exit from the shell.
In X-windows the selection is disowned when Vim suspends. this means you
can't paste it in another application (since Vim is going to sleep an attempt
to get the selection would make the program hang).
In the X Window System environment, the selection is disowned when Vim
suspends. This means you can't paste it in another application (since Vim is
going to sleep, an attempt to get the selection would make the program hang).
==============================================================================
7. Exiting *exiting*
@@ -1295,7 +1297,7 @@ will be set to the same values. The options 'columns', 'endofline',
dependent. Note that the options 'binary', 'paste' and 'readonly' are
included, this might not always be what you want.
When special keys are used in mappings, The 'cpoptions' option will be
When special keys are used in mappings, the 'cpoptions' option will be
temporarily set to its Vim default, to avoid the mappings to be
misinterpreted. This makes the file incompatible with Vi, but makes sure it
can be used with different terminals.
@@ -1356,8 +1358,8 @@ All this is {not available when compiled without the |+mksession| feature}.
*:mks* *:mksession*
:mks[ession][!] [file] Write a Vim script that restores the current editing
session.
When [!] is included an existing file is overwritten.
When [file] is omitted "Session.vim" is used.
When [!] is included, an existing file is overwritten.
When [file] is omitted, "Session.vim" is used.
The output of ":mksession" is like ":mkvimrc", but additional commands are
added to the file. Which ones depends on the 'sessionoptions' option. The
@@ -1369,16 +1371,16 @@ resulting file, when executed with a ":source" command:
3. Closes all windows in the current tab page, except the current one; closes
all tab pages except the current one (this results in currently loaded
buffers to be unloaded, some may become hidden if 'hidden' is set or
otherwise specified); wipes out the current buffer, if it is empty
and unnamed.
4. Restores the current directory if 'sessionoptions' contains "curdir", or
sets the current directory to where the Session file is if 'sessionoptions'
contains "sesdir".
otherwise specified); wipes out the current buffer, if it is empty and
unnamed.
4. Restores the current directory, if 'sessionoptions' contains "curdir", or
sets the current directory to where the Session file is, if
'sessionoptions' contains "sesdir".
5. Restores GUI Vim window position, if 'sessionoptions' contains "winpos".
6. Restores screen size, if 'sessionoptions' contains "resize".
7. Reloads the buffer list, with the last cursor positions. If
'sessionoptions' contains "buffers" then all buffers are restored,
including hidden and unloaded buffers. Otherwise only buffers in windows
including hidden and unloaded buffers. Otherwise, only buffers in windows
are restored.
8. Restores all windows with the same layout. If 'sessionoptions' contains
"help", help windows are restored. If 'sessionoptions' contains "blank",
@@ -1405,14 +1407,14 @@ A session includes all tab pages, unless "tabpages" was removed from
The |SessionLoadPost| autocmd event is triggered after a session file is
loaded/sourced.
*SessionLoad-variable*
While the session file is loading the SessionLoad global variable is set to 1.
Plugins can use this to postpone some work until the SessionLoadPost event is
triggered.
While the session file is loading, the SessionLoad global variable is set to
1. Plugins can use this to postpone some work until the SessionLoadPost event
is triggered.
*:mkvie* *:mkview*
:mkvie[w][!] [file] Write a Vim script that restores the contents of the
current window.
When [!] is included an existing file is overwritten.
When [!] is included, an existing file is overwritten.
When [file] is omitted or is a number from 1 to 9, a
name is generated and 'viewdir' prepended. When the
last path part of 'viewdir' does not exist, this
@@ -1427,14 +1429,13 @@ triggered.
The output of ":mkview" contains these items:
1. The argument list used in the window. When the global argument list is
used it is reset to the global list.
used, it is reset to the global list.
The index in the argument list is also restored.
2. The file being edited in the window. If there is no file, the window is
made empty.
3. Restore mappings, abbreviations and options local to the window if
'viewoptions' contains "options" or "localoptions". For the options it
restores only values that are local to the current buffer and values local
to the window.
3. Restore mappings, abbreviations and options local to the window, if
'viewoptions' contains "options" or "localoptions". Only option values
that are local to the current buffer and the current window are restored.
When storing the view as part of a session and "options" is in
'sessionoptions', global values for local options will be stored too.
4. Restore folds when using manual folding and 'viewoptions' contains
@@ -1468,7 +1469,7 @@ Note that Views and Sessions are not perfect:
The combination of ":mkview" and ":loadview" can be used to store up to ten
different views of a file. These are remembered in the directory specified
with the 'viewdir' option. The views are stored using the file name. If a
file is renamed or accessed through a (symbolic) link the view will not be
file is renamed or accessed through a (symbolic) link, the view will not be
found.
You might want to clean up your 'viewdir' directory now and then.
@@ -1541,12 +1542,13 @@ always kept. This is used for:
- The search string history.
- The input-line history.
- Contents of non-empty registers.
- The jump list
- File marks
- The jump list.
- File marks.
The timestamp feature was added before Vim 8.0. Older versions of Vim,
starting with 7.4.1131, will keep the items with timestamp, but not use them.
Thus when using both an older and a newer version of Vim the most recent data
will be kept.
Thus, when using both an older and a newer version of Vim, the most recent
data will be kept.
Notes for Unix:
- The file protection for the viminfo file will be set to prevent other users
@@ -1558,7 +1560,7 @@ Notes for Unix:
allow just anybody to read and write your viminfo file!
- Vim will not overwrite a viminfo file that is not writable by the current
"real" user. This helps for when you did "su" to become root, but your
$HOME is still set to a normal user's home directory. Otherwise Vim would
$HOME is still set to a normal user's home directory. Otherwise, Vim would
create a viminfo file owned by root that nobody else can read.
- The viminfo file cannot be a symbolic link. This is to avoid security
issues.
@@ -1590,11 +1592,11 @@ using this command: >
vim -c "normal '0"
In a csh compatible shell you could make an alias for it: >
In a C shell descendant, you could make an alias for it: >
alias lvim vim -c '"'normal "'"0'"'
For a bash-like shell: >
For a Bash-like shell: >
alias lvim='vim -c "normal '\''0"'
@@ -1639,14 +1641,14 @@ MANUALLY READING AND WRITING *viminfo-read-write*
Two commands can be used to read and write the viminfo file manually. This
can be used to exchange registers between two running Vim programs: First
type ":wv" in one and then ":rv" in the other. Note that if the register
already contained something, then ":rv!" would be required. Also note
however that this means everything will be overwritten with information from
already contained something, then ":rv!" would be required. Also note,
however, that this means everything will be overwritten with information from
the first Vim, including the command line history, etc.
The viminfo file itself can be edited by hand too, although we suggest you
start with an existing one to get the format right. It is reasonably
self-explanatory once you're in there. This can be useful in order to
create a second file, say "~/.my_viminfo" which could contain certain
create a second file, say "~/.my_viminfo", which could contain certain
settings that you always want when you first start Vim. For example, you
can preload registers with particular data, or put certain commands in the
command line history. A line in your .vimrc file like >
@@ -1670,7 +1672,7 @@ most of the information will be restored).
|viminfo-file-name| above).
If [!] is given, then any information that is
already set (registers, marks, |v:oldfiles|, etc.)
will be overwritten
will be overwritten.
*:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929*
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see
@@ -1682,10 +1684,10 @@ most of the information will be restored).
the old information is not read first, only the
internal info is written. If 'viminfo' is empty, marks
for up to 100 files will be written.
When you get error "E929: Too many viminfo temp files"
check that no old temp files were left behind (e.g.
~/.viminf*) and that you can write in the directory of
the .viminfo file.
When you get error "E929: Too many viminfo temp
files", check that no old temp files were left behind
(e.g. ~/.viminf*) and that you can write in the
directory of the .viminfo file.
*:ol* *:oldfiles*
:ol[dfiles] List the files that have marks stored in the viminfo
@@ -1703,7 +1705,7 @@ most of the information will be restored).
the list is edited.
If you get the |press-enter| prompt you can press "q"
and still get the prompt to enter a file number.
Use ! to abandon a modified buffer. |abandon|
Use [!] to abandon a modified buffer. |abandon|
{not when compiled with tiny features}
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 9.1. Last change: 2024 Jan 03
*syntax.txt* For Vim version 9.1. Last change: 2024 Mar 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -271,6 +271,10 @@ you can see the actual color, except for "Ignore"):
*Todo anything that needs extra attention; mostly the
keywords TODO FIXME and XXX
*Added added line in a diff
*Changed changed line in a diff
*Removed removed line in a diff
The names marked with * are the preferred groups; the others are minor groups.
For the preferred groups, the "syntax.vim" file contains default highlighting.
The minor groups are linked to the preferred groups, so they get the same
@@ -1022,6 +1026,8 @@ Variable Highlight ~
*c_no_c99* don't highlight C99 standard items
*c_no_c11* don't highlight C11 standard items
*c_no_bsd* don't highlight BSD specific types
*c_functions* highlight function calls and definitions
*c_function_pointers* highlight function pointers definitions
When 'foldmethod' is set to "syntax" then /* */ comments and { } blocks will
become a fold. If you don't want comments to become a fold use: >
@@ -1261,7 +1267,7 @@ To highlight KDE-reserved features, set >
g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
DIFF *diff.vim* *ft-diff-syntax*
DIFF *diff.vim*
The diff highlighting normally finds translated headers. This can be slow if
there are very long lines in the file. To disable translations: >
@@ -1270,15 +1276,6 @@ there are very long lines in the file. To disable translations: >
Also see |diff-slow|.
Since the Vim 9.1 release |version-9.1| the diff filetype links the diffAdded,
diffRemoved and diffChanged highlighting groups to |hl-DiffAdd|,
|hl-DiffDelete| and |hl-DiffChange| by default. If you do not want this, you
can change it to the previous groups like this in your |.vimrc| >
hi link diffRemoved Special
hi link diffChanged PreProc
hi link diffAdded Identifier
<
DIRCOLORS *dircolors.vim* *ft-dircolors-syntax*
The dircolors utility highlighting definition has one option. It exists to
@@ -1334,12 +1331,15 @@ Stack Overflow -
https://stackoverflow.com/questions/12407800/which-comment-style-should-i-use-in-batch-files
To allow the use of the :: idiom for comments in the Windows Command
Interpreter or working with MS-DOS bat files, set the
dosbatch_colons_comment variable to anything: >
To allow the use of the :: idiom for comments in command blocks with the
Windows Command Interpreter set the dosbatch_colons_comment variable to
anything: >
:let dosbatch_colons_comment = 1
If this variable is set then a :: comment that is the last line in a command
block will be highlighted as an error.
There is an option that covers whether *.btm files should be detected as type
"dosbatch" (MS-DOS batch files) or type "btm" (4DOS batch files). The latter
is used by default. You may select the former with the following line: >
@@ -1597,13 +1597,11 @@ edit F# or Fortran at all, use this in your startup vimrc: >
FORTRAN *fortran.vim* *ft-fortran-syntax*
Default highlighting and dialect ~
Vim highlights according to Fortran 2023 (the most recent standard) by
default. This choice should be appropriate for most users most of the time
because Fortran 2023 is almost a superset of previous versions (Fortran 2018,
2008, 2003, 95, 90, and 77). A small number of features new to Fortran 2018
and Fortran 2023 may have been omitted at present; the transition to Fortran
2023 will be completed in the near future. A few legacy constructs deleted or
declared obsolescent in recent Fortran standards are highlighted as todo
Vim highlights according to Fortran 2023 (the most recent standard). This
choice should be appropriate for most users most of the time because Fortran
2023 is almost a superset of previous versions (Fortran 2018, 2008, 2003, 95,
90, 77, and 66). A few legacy constructs deleted or declared obsolescent,
respectively, in recent Fortran standards are highlighted as errors and todo
items.
The syntax script no longer supports Fortran dialects. The variable
@@ -2238,10 +2236,19 @@ MARKDOWN *ft-markdown-syntax*
If you have long regions there might be wrong highlighting. At the cost of
slowing down displaying, you can have the engine look further back to sync on
the start of a region, for example 500 lines: >
the start of a region, for example 500 lines (default is 50): >
:let g:markdown_minlines = 500
If you want to enable fenced code block syntax highlighting in your markdown
documents you can enable like this: >
:let g:markdown_fenced_languages = ['html', 'python', 'bash=sh']
To disable markdown syntax concealing add the following to your vimrc: >
:let g:markdown_syntax_conceal = 0
MATHEMATICA *mma.vim* *ft-mma-syntax* *ft-mathematica-syntax*
@@ -2251,6 +2258,56 @@ have the following in your .vimrc: >
let filetype_m = "mma"
MODULA2 *modula2.vim* *ft-modula2-syntax*
Vim will recognise comments with dialect tags to automatically select a given
dialect.
The syntax for a dialect tag comment is: >
taggedComment :=
'(*!' dialectTag '*)'
;
dialectTag :=
m2pim | m2iso | m2r10
;
reserved words
m2pim = 'm2pim', m2iso = 'm2iso', m2r10 = 'm2r10'
A dialect tag comment is recognised by Vim if it occurs within the first 200
lines of the source file. Only the very first such comment is recognised, any
additional dialect tag comments are ignored.
Example: >
DEFINITION MODULE FooLib; (*!m2pim*)
...
Variable g:modula2_default_dialect sets the default Modula-2 dialect when the
dialect cannot be determined from the contents of the Modula-2 file: if
defined and set to 'm2pim', the default dialect is PIM.
Example: >
let g:modula2_default_dialect = 'm2pim'
Highlighting is further configurable for each dialect via the following
variables.
Variable Highlight ~
*modula2_iso_allow_lowline* allow low line in identifiers
*modula2_iso_disallow_octals* disallow octal integer literals
*modula2_iso_disallow_synonyms* disallow "@", "&" and "~" synonyms
*modula2_pim_allow_lowline* allow low line in identifiers
*modula2_pim_disallow_octals* disallow octal integer literals
*modula2_pim_disallow_synonyms* disallow "&" and "~" synonyms
*modula2_r10_allow_lowline* allow low line in identifiers
MOO *moo.vim* *ft-moo-syntax*
If you use C-style comments inside expressions and find it mangles your
@@ -5220,7 +5277,8 @@ ctermul={color-nr} *highlight-ctermul*
"cterm=" argument AFTER the "ctermfg=" or "ctermbg=" argument. Or use
a number instead of a color name.
The case of the color names is ignored.
The case of the color names is ignored, however Vim will use lower
case color names when reading from the |v:colornames| dictionary.
Note that for 16 color ansi style terminals (including xterms), the
numbers in the NR-8 column is used. Here '*' means 'add 8' so that
Blue is 12, DarkGray is 8 etc.
@@ -5259,6 +5317,14 @@ ctermul={color-nr} *highlight-ctermul*
command is given. If the Normal group colors are changed later, the
"fg" and "bg" colors will not be adjusted.
ctermfont={font-nr} *highlight-ctermfont*
This gives the alternative font number to use in the terminal. The
available fonts depend on the terminal, and if the terminal is not set
up for alternative fonts this simply won't do anything. The range of
{font-nr} is 0-10 where 0 resets the font to the default font, 1-9
selects one of the 9 alternate fonts, and 10 selects the Fraktur font.
For more information see your terminal's handling of SGR parameters
10-20. |t_CF|
3. highlight arguments for the GUI
@@ -5331,8 +5397,8 @@ guisp={color-name} *highlight-guisp*
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
<
If you are authoring a color scheme and use the same hexadecimal value
repeatedly, you can define a name for it in |v:colornames|. For
example: >
repeatedly, you can define a (lower case) name for it in |v:colornames|.
For example: >
# provide a default value for this color but allow the user to
# override it.

View File

@@ -1024,6 +1024,7 @@ $quote eval.txt /*$quote*
't_AU' term.txt /*'t_AU'*
't_BD' term.txt /*'t_BD'*
't_BE' term.txt /*'t_BE'*
't_CF' term.txt /*'t_CF'*
't_CS' term.txt /*'t_CS'*
't_CV' term.txt /*'t_CV'*
't_Ce' term.txt /*'t_Ce'*
@@ -1293,6 +1294,7 @@ $quote eval.txt /*$quote*
'winaltkeys' options.txt /*'winaltkeys'*
'wincolor' options.txt /*'wincolor'*
'window' options.txt /*'window'*
'winfixbuf' options.txt /*'winfixbuf'*
'winfixheight' options.txt /*'winfixheight'*
'winfixwidth' options.txt /*'winfixwidth'*
'winheight' options.txt /*'winheight'*
@@ -2872,6 +2874,7 @@ $quote eval.txt /*$quote*
:map-arguments map.txt /*:map-arguments*
:map-buffer map.txt /*:map-buffer*
:map-cmd map.txt /*:map-cmd*
:map-cmd-key map.txt /*:map-cmd-key*
:map-commands map.txt /*:map-commands*
:map-expression map.txt /*:map-expression*
:map-local map.txt /*:map-local*
@@ -2884,6 +2887,7 @@ $quote eval.txt /*$quote*
:map-special map.txt /*:map-special*
:map-special-chars map.txt /*:map-special-chars*
:map-special-keys map.txt /*:map-special-keys*
:map-super-keys map.txt /*:map-super-keys*
:map-undo map.txt /*:map-undo*
:map-unique map.txt /*:map-unique*
:map-verbose map.txt /*:map-verbose*
@@ -4134,6 +4138,7 @@ E1056 vim9.txt /*E1056*
E1057 vim9.txt /*E1057*
E1058 vim9.txt /*E1058*
E1059 vim9.txt /*E1059*
E106 builtin.txt /*E106*
E1060 vim9.txt /*E1060*
E1061 vim9.txt /*E1061*
E1062 eval.txt /*E1062*
@@ -4513,6 +4518,8 @@ E1409 vim9class.txt /*E1409*
E141 message.txt /*E141*
E1410 vim9class.txt /*E1410*
E1411 vim9class.txt /*E1411*
E1412 vim9class.txt /*E1412*
E1413 vim9class.txt /*E1413*
E142 message.txt /*E142*
E143 autocmd.txt /*E143*
E144 various.txt /*E144*
@@ -4535,6 +4542,9 @@ E1508 editing.txt /*E1508*
E1509 editing.txt /*E1509*
E151 helphelp.txt /*E151*
E1510 change.txt /*E1510*
E1511 options.txt /*E1511*
E1512 options.txt /*E1512*
E1513 message.txt /*E1513*
E152 helphelp.txt /*E152*
E153 helphelp.txt /*E153*
E154 helphelp.txt /*E154*
@@ -5706,6 +5716,7 @@ TabNew autocmd.txt /*TabNew*
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
TermResponseAll autocmd.txt /*TermResponseAll*
TermdebugStartPost terminal.txt /*TermdebugStartPost*
TermdebugStartPre terminal.txt /*TermdebugStartPre*
TermdebugStopPost terminal.txt /*TermdebugStopPost*
@@ -5779,6 +5790,7 @@ WinClosed autocmd.txt /*WinClosed*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
WinNewPre autocmd.txt /*WinNewPre*
WinResized autocmd.txt /*WinResized*
WinResized-event windows.txt /*WinResized-event*
WinScrolled autocmd.txt /*WinScrolled*
@@ -5964,6 +5976,7 @@ added-7.4 version7.txt /*added-7.4*
added-8.1 version8.txt /*added-8.1*
added-8.2 version8.txt /*added-8.2*
added-9.1 version9.txt /*added-9.1*
added-9.2 version9.txt /*added-9.2*
added-BeOS version5.txt /*added-BeOS*
added-Mac version5.txt /*added-Mac*
added-VMS version5.txt /*added-VMS*
@@ -6116,6 +6129,7 @@ binary-number eval.txt /*binary-number*
bitwise-function usr_41.txt /*bitwise-function*
bitwise-shift eval.txt /*bitwise-shift*
blob eval.txt /*blob*
blob-concatenation eval.txt /*blob-concatenation*
blob-functions usr_41.txt /*blob-functions*
blob-identity eval.txt /*blob-identity*
blob-index eval.txt /*blob-index*
@@ -6164,12 +6178,14 @@ bug-fixes-7 version7.txt /*bug-fixes-7*
bug-fixes-8 version8.txt /*bug-fixes-8*
bug-fixes-9 version9.txt /*bug-fixes-9*
bug-fixes-9.1 version9.txt /*bug-fixes-9.1*
bug-fixes-9.2 version9.txt /*bug-fixes-9.2*
bug-reports intro.txt /*bug-reports*
bugreport.vim intro.txt /*bugreport.vim*
bugs intro.txt /*bugs*
builtin-function-details builtin.txt /*builtin-function-details*
builtin-function-list builtin.txt /*builtin-function-list*
builtin-functions builtin.txt /*builtin-functions*
builtin-object-methods vim9class.txt /*builtin-object-methods*
builtin-terms term.txt /*builtin-terms*
builtin-tools gui.txt /*builtin-tools*
builtin.txt builtin.txt /*builtin.txt*
@@ -6278,6 +6294,8 @@ c_ansi_typedefs syntax.txt /*c_ansi_typedefs*
c_comment_strings syntax.txt /*c_comment_strings*
c_curly_error syntax.txt /*c_curly_error*
c_digraph cmdline.txt /*c_digraph*
c_function_pointers syntax.txt /*c_function_pointers*
c_functions syntax.txt /*c_functions*
c_gnu syntax.txt /*c_gnu*
c_no_ansi syntax.txt /*c_no_ansi*
c_no_bracket_error syntax.txt /*c_no_bracket_error*
@@ -6346,6 +6364,7 @@ changed-7.4 version7.txt /*changed-7.4*
changed-8.1 version8.txt /*changed-8.1*
changed-8.2 version8.txt /*changed-8.2*
changed-9.1 version9.txt /*changed-9.1*
changed-9.2 version9.txt /*changed-9.2*
changelist motion.txt /*changelist*
changelog.vim syntax.txt /*changelog.vim*
changenr() builtin.txt /*changenr()*
@@ -6428,6 +6447,7 @@ cino-{ indent.txt /*cino-{*
cino-} indent.txt /*cino-}*
cinoptions-values indent.txt /*cinoptions-values*
class vim9class.txt /*class*
class-compile vim9class.txt /*class-compile*
class-method vim9class.txt /*class-method*
clear-undo undo.txt /*clear-undo*
clearmatches() builtin.txt /*clearmatches()*
@@ -6483,6 +6503,7 @@ compile-changes-6 version6.txt /*compile-changes-6*
compile-changes-7 version7.txt /*compile-changes-7*
compile-changes-8 version8.txt /*compile-changes-8*
compile-changes-9 version9.txt /*compile-changes-9*
compile-changes-9.2 version9.txt /*compile-changes-9.2*
compiler-compaqada ft_ada.txt /*compiler-compaqada*
compiler-decada ft_ada.txt /*compiler-decada*
compiler-dotnet quickfix.txt /*compiler-dotnet*
@@ -6749,7 +6770,9 @@ dict-identity eval.txt /*dict-identity*
dict-modification eval.txt /*dict-modification*
did_filetype() builtin.txt /*did_filetype()*
diff diff.txt /*diff*
diff() builtin.txt /*diff()*
diff-diffexpr diff.txt /*diff-diffexpr*
diff-func-examples diff.txt /*diff-func-examples*
diff-mode diff.txt /*diff-mode*
diff-options diff.txt /*diff-options*
diff-original-file diff.txt /*diff-original-file*
@@ -7147,6 +7170,7 @@ foldtextresult() builtin.txt /*foldtextresult()*
font-sizes gui_x11.txt /*font-sizes*
fontset mbyte.txt /*fontset*
forced-motion motion.txt /*forced-motion*
foreach() builtin.txt /*foreach()*
foreground() builtin.txt /*foreground()*
fork os_unix.txt /*fork*
form.vim syntax.txt /*form.vim*
@@ -7176,6 +7200,7 @@ ft-ada-syntax ft_ada.txt /*ft-ada-syntax*
ft-ada-variables ft_ada.txt /*ft-ada-variables*
ft-ant-syntax syntax.txt /*ft-ant-syntax*
ft-apache-syntax syntax.txt /*ft-apache-syntax*
ft-asciidoc-plugin filetype.txt /*ft-asciidoc-plugin*
ft-asm-syntax syntax.txt /*ft-asm-syntax*
ft-asm68k-syntax syntax.txt /*ft-asm68k-syntax*
ft-asmh8300-syntax syntax.txt /*ft-asmh8300-syntax*
@@ -7207,7 +7232,6 @@ ft-cynlib-syntax syntax.txt /*ft-cynlib-syntax*
ft-dart-syntax syntax.txt /*ft-dart-syntax*
ft-dash-syntax syntax.txt /*ft-dash-syntax*
ft-desktop-syntax syntax.txt /*ft-desktop-syntax*
ft-diff-syntax syntax.txt /*ft-diff-syntax*
ft-dircolors-syntax syntax.txt /*ft-dircolors-syntax*
ft-docbk-syntax syntax.txt /*ft-docbk-syntax*
ft-docbksgml-syntax syntax.txt /*ft-docbksgml-syntax*
@@ -7270,6 +7294,7 @@ ft-metapost-intro ft_mp.txt /*ft-metapost-intro*
ft-metapost-mappings ft_mp.txt /*ft-metapost-mappings*
ft-metapost-settings ft_mp.txt /*ft-metapost-settings*
ft-mma-syntax syntax.txt /*ft-mma-syntax*
ft-modula2-syntax syntax.txt /*ft-modula2-syntax*
ft-moo-syntax syntax.txt /*ft-moo-syntax*
ft-msql-syntax syntax.txt /*ft-msql-syntax*
ft-n1ql-syntax syntax.txt /*ft-n1ql-syntax*
@@ -7344,6 +7369,7 @@ ft-xhtml-omni insert.txt /*ft-xhtml-omni*
ft-xml-omni insert.txt /*ft-xml-omni*
ft-xml-syntax syntax.txt /*ft-xml-syntax*
ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
ft-yaml-indent indent.txt /*ft-yaml-indent*
ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin*
ft-zsh-syntax syntax.txt /*ft-zsh-syntax*
@@ -7535,7 +7561,6 @@ g:netrw_localmkdir pi_netrw.txt /*g:netrw_localmkdir*
g:netrw_localmkdiropt pi_netrw.txt /*g:netrw_localmkdiropt*
g:netrw_localmovecmd pi_netrw.txt /*g:netrw_localmovecmd*
g:netrw_localmovecmdopt pi_netrw.txt /*g:netrw_localmovecmdopt*
g:netrw_localrmdir pi_netrw.txt /*g:netrw_localrmdir*
g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
@@ -7741,6 +7766,8 @@ getqflist() builtin.txt /*getqflist()*
getqflist-examples quickfix.txt /*getqflist-examples*
getreg() builtin.txt /*getreg()*
getreginfo() builtin.txt /*getreginfo()*
getregion() builtin.txt /*getregion()*
getregion-notes builtin.txt /*getregion-notes*
getregtype() builtin.txt /*getregtype()*
getscript pi_getscript.txt /*getscript*
getscript-autoinstall pi_getscript.txt /*getscript-autoinstall*
@@ -7859,6 +7886,7 @@ gui-w32-start gui_w32.txt /*gui-w32-start*
gui-w32-various gui_w32.txt /*gui-w32-various*
gui-w32-windowid gui_w32.txt /*gui-w32-windowid*
gui-w32s os_win32.txt /*gui-w32s*
gui-wayland gui_x11.txt /*gui-wayland*
gui-win32-maximized gui_w32.txt /*gui-win32-maximized*
gui-x11 gui_x11.txt /*gui-x11*
gui-x11-athena gui_x11.txt /*gui-x11-athena*
@@ -7945,6 +7973,7 @@ highlight-clear syntax.txt /*highlight-clear*
highlight-cterm syntax.txt /*highlight-cterm*
highlight-ctermbg syntax.txt /*highlight-ctermbg*
highlight-ctermfg syntax.txt /*highlight-ctermfg*
highlight-ctermfont syntax.txt /*highlight-ctermfont*
highlight-ctermul syntax.txt /*highlight-ctermul*
highlight-default syntax.txt /*highlight-default*
highlight-font syntax.txt /*highlight-font*
@@ -8228,6 +8257,7 @@ improvements-6 version6.txt /*improvements-6*
improvements-7 version7.txt /*improvements-7*
improvements-8 version8.txt /*improvements-8*
improvements-9 version9.txt /*improvements-9*
improvements-9.2 version9.txt /*improvements-9.2*
in_bot channel.txt /*in_bot*
in_buf channel.txt /*in_buf*
in_io-buffer channel.txt /*in_io-buffer*
@@ -8244,6 +8274,7 @@ incompatible-6 version6.txt /*incompatible-6*
incompatible-7 version7.txt /*incompatible-7*
incompatible-8 version8.txt /*incompatible-8*
incompatible-9 version9.txt /*incompatible-9*
incompatible-9.2 version9.txt /*incompatible-9.2*
indent() builtin.txt /*indent()*
indent-expression indent.txt /*indent-expression*
indent.txt indent.txt /*indent.txt*
@@ -8591,6 +8622,7 @@ masm.vim syntax.txt /*masm.vim*
match() builtin.txt /*match()*
match-highlight pattern.txt /*match-highlight*
match-parens tips.txt /*match-parens*
match-pattern builtin.txt /*match-pattern*
matchadd() builtin.txt /*matchadd()*
matchaddpos() builtin.txt /*matchaddpos()*
matcharg() builtin.txt /*matcharg()*
@@ -8659,6 +8691,14 @@ modeline options.txt /*modeline*
modeline-local options.txt /*modeline-local*
modeline-version options.txt /*modeline-version*
modifyOtherKeys map.txt /*modifyOtherKeys*
modula2.vim syntax.txt /*modula2.vim*
modula2_iso_allow_lowline syntax.txt /*modula2_iso_allow_lowline*
modula2_iso_disallow_octals syntax.txt /*modula2_iso_disallow_octals*
modula2_iso_disallow_synonyms syntax.txt /*modula2_iso_disallow_synonyms*
modula2_pim_allow_lowline syntax.txt /*modula2_pim_allow_lowline*
modula2_pim_disallow_octals syntax.txt /*modula2_pim_disallow_octals*
modula2_pim_disallow_synonyms syntax.txt /*modula2_pim_disallow_synonyms*
modula2_r10_allow_lowline syntax.txt /*modula2_r10_allow_lowline*
moo.vim syntax.txt /*moo.vim*
more-compatible version5.txt /*more-compatible*
more-prompt message.txt /*more-prompt*
@@ -9034,6 +9074,7 @@ new-options-5.2 version5.txt /*new-options-5.2*
new-options-5.4 version5.txt /*new-options-5.4*
new-other-8.2 version8.txt /*new-other-8.2*
new-other-9.1 version9.txt /*new-other-9.1*
new-other-9.2 version9.txt /*new-other-9.2*
new-perl-python version5.txt /*new-perl-python*
new-persistent-undo version7.txt /*new-persistent-undo*
new-plugins version6.txt /*new-plugins*
@@ -9116,9 +9157,12 @@ o_object-select motion.txt /*o_object-select*
o_v motion.txt /*o_v*
object vim9class.txt /*object*
object-const-variable vim9class.txt /*object-const-variable*
object-empty() vim9class.txt /*object-empty()*
object-final-variable vim9class.txt /*object-final-variable*
object-len() vim9class.txt /*object-len()*
object-motions motion.txt /*object-motions*
object-select motion.txt /*object-select*
object-string() vim9class.txt /*object-string()*
objects index.txt /*objects*
obtaining-exted netbeans.txt /*obtaining-exted*
ocaml.vim syntax.txt /*ocaml.vim*
@@ -9203,8 +9247,10 @@ patches-8.1 version8.txt /*patches-8.1*
patches-8.2 version8.txt /*patches-8.2*
patches-9 version9.txt /*patches-9*
patches-9.1 version9.txt /*patches-9.1*
patches-9.2 version9.txt /*patches-9.2*
patches-after-8.2 version9.txt /*patches-after-8.2*
patches-after-9.0 version9.txt /*patches-after-9.0*
patches-after-9.1 version9.txt /*patches-after-9.1*
pathshorten() builtin.txt /*pathshorten()*
pattern pattern.txt /*pattern*
pattern-atoms pattern.txt /*pattern-atoms*
@@ -10137,6 +10183,7 @@ t_AL term.txt /*t_AL*
t_AU term.txt /*t_AU*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
t_CF term.txt /*t_CF*
t_CS term.txt /*t_CS*
t_CTRL-W_. terminal.txt /*t_CTRL-W_.*
t_CTRL-W_: terminal.txt /*t_CTRL-W_:*
@@ -10495,6 +10542,7 @@ termdebug_winbar terminal.txt /*termdebug_winbar*
terminal terminal.txt /*terminal*
terminal-api terminal.txt /*terminal-api*
terminal-autoshelldir terminal.txt /*terminal-autoshelldir*
terminal-bufname terminal.txt /*terminal-bufname*
terminal-client-server terminal.txt /*terminal-client-server*
terminal-close terminal.txt /*terminal-close*
terminal-colors os_unix.txt /*terminal-colors*
@@ -10991,6 +11039,7 @@ version-8.1 version8.txt /*version-8.1*
version-8.2 version8.txt /*version-8.2*
version-9.0 version9.txt /*version-9.0*
version-9.1 version9.txt /*version-9.1*
version-9.2 version9.txt /*version-9.2*
version-variable eval.txt /*version-variable*
version4.txt version4.txt /*version4.txt*
version5.txt version5.txt /*version5.txt*
@@ -11007,6 +11056,7 @@ version8.2 version8.txt /*version8.2*
version8.txt version8.txt /*version8.txt*
version9.0 version9.txt /*version9.0*
version9.1 version9.txt /*version9.1*
version9.2 version9.txt /*version9.2*
version9.txt version9.txt /*version9.txt*
versionlong-variable eval.txt /*versionlong-variable*
vi intro.txt /*vi*
@@ -11026,6 +11076,7 @@ vim-8.2 version8.txt /*vim-8.2*
vim-9 version9.txt /*vim-9*
vim-9.0 version9.txt /*vim-9.0*
vim-9.1 version9.txt /*vim-9.1*
vim-9.2 version9.txt /*vim-9.2*
vim-additions vi_diff.txt /*vim-additions*
vim-announce intro.txt /*vim-announce*
vim-arguments starting.txt /*vim-arguments*
@@ -11172,6 +11223,7 @@ vt100-cursor-keys term.txt /*vt100-cursor-keys*
vt100-function-keys term.txt /*vt100-function-keys*
w motion.txt /*w*
w32-clientserver remote.txt /*w32-clientserver*
w32-experimental-keycode-trans-strategy gui_w32.txt /*w32-experimental-keycode-trans-strategy*
w32-xpm-support gui_w32.txt /*w32-xpm-support*
w: eval.txt /*w:*
w:current_syntax syntax.txt /*w:current_syntax*

View File

@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 9.1. Last change: 2023 Feb 13
*tagsrch.txt* For Vim version 9.1. Last change: 2024 Mar 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -407,19 +407,24 @@ the pattern.
*tag-!*
If the tag is in the current file this will always work. Otherwise the
performed actions depend on whether the current file was changed, whether a !
is added to the command and on the 'autowrite' option:
is added to the command and on the 'autowrite' and 'winfixbuf' options:
tag in file autowrite ~
current file changed ! option action ~
-----------------------------------------------------------------------------
yes x x x goto tag
no no x x read other file, goto tag
no yes yes x abandon current file, read other file, goto
tag
no yes no on write current file, read other file, goto
tag
no yes no off fail
-----------------------------------------------------------------------------
tag in file winfixbuf autowrite ~
current file changed ! option option action ~
-----------------------------------------------------------------------------
yes x x off x goto tag
no no x off x read other file, goto tag
no yes yes off x abandon current file,
read other file, goto tag
no yes no off on write current file,
read other file, goto tag
no yes no off off fail
yes x yes x x goto tag
no no no on x fail
no yes no on x fail
no yes no on on fail
no yes no on off fail
-----------------------------------------------------------------------------
- If the tag is in the current file, the command will always work.
- If the tag is in another file and the current file was not changed, the
@@ -435,6 +440,8 @@ current file changed ! option action ~
the changes, use the ":w" command and then use ":tag" without an argument.
This works because the tag is put on the stack anyway. If you want to lose
the changes you can use the ":tag!" command.
- If the tag is in another file and the window includes 'winfixbuf', the
command will fail. If the tag is in the same file then it may succeed.
*tag-security*
Note that Vim forbids some commands, for security reasons. This works like

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 9.1. Last change: 2023 Dec 09
*term.txt* For Vim version 9.1. Last change: 2024 Feb 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -345,7 +345,7 @@ 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
from most other terminals, but also because, instead of trying the fit in and
from most other terminals, but also because, instead of trying to fit in and
make it behave like other terminals by default, it dictates how applications
need to work when using Kitty. This makes it very difficult for Vim to work
in a Kitty terminal. Some exceptions have been hard coded, but it is not at
@@ -448,6 +448,7 @@ Added by Vim (there are no standard codes for these):
t_AU set underline color (ANSI) *t_AU* *'t_AU'*
t_Ce undercurl and underline end *t_Ce* *'t_Ce'*
t_Cs undercurl (curly underline) mode *t_Cs* *'t_Cs'*
t_CF set alternate font (using index 0 - 10) *t_CF* *'t_CF'*
t_Us double underline mode *t_Us* *'t_Us'*
t_ds dotted underline mode *t_ds* *'t_ds'*
t_Ds dashed underline mode *t_Ds* *'t_Ds'*

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 9.1. Last change: 2023 Nov 08
*terminal.txt* For Vim version 9.1. Last change: 2024 Mar 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -208,6 +208,7 @@ Command syntax ~
[command]. Use `:execute` if you must have a Vim
command following in the same line.
*terminal-bufname*
A new buffer will be created, using [command] or
'shell' as the name, prefixed with a "!". If a buffer
by this name already exists a number is added in
@@ -302,6 +303,12 @@ current window into a terminal window. If there are unsaved changes this
fails, use ! to force, as usual.
*terminal-close*
When the terminal job finishes and no [command] was given (e.g. the 'shell'
command was executed), the terminal window will be closed by default (unless
the buffer in next window receiving the space has the 'nobuflisted' option set,
in which case the terminal window would not be closed automatically, but a new
empty buffer would be opened in that window).
When the terminal window is closed, e.g. when the shell exits and "++close"
argument was used, and this is the last normal Vim window, then Vim will exit.
This is like using |:quit| in a normal window. Help and preview windows are
@@ -1024,17 +1031,17 @@ This can be used to pass the current directory from a shell to Vim.
Put this in your .vimrc: >
def g:Tapi_lcd(_, path: string)
if isdirectory(path)
execute 'silent lcd ' .. fnameescape(path)
endif
execute 'silent lcd ' .. fnameescape(path)
endif
enddef
<
And, in a bash init file: >
if [[ -n "$VIM_TERMINAL" ]]; then
PROMPT_COMMAND='_vim_sync_PWD'
function _vim_sync_PWD() {
printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD"
}
fi
if [[ -n "$VIM_TERMINAL" ]]; then
PROMPT_COMMAND='_vim_sync_PWD'
function _vim_sync_PWD() {
printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD"
}
fi
<
Or, for zsh: >
if [[ -n "$VIM_TERMINAL" ]]; then
@@ -1402,8 +1409,8 @@ Other commands ~
*:Asm* jump to the window with the disassembly, create it if there
isn't one
*:Var* jump to the window with the local and argument variables,
create it if there isn't one. This window updates whenever the
program is stopped
create it if there isn't one. This window updates whenever the
program is stopped
Events ~
*termdebug-events*

View File

@@ -1,4 +1,4 @@
*testing.txt* For Vim version 9.1. Last change: 2023 May 18
*testing.txt* For Vim version 9.1. Last change: 2024 Feb 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -234,6 +234,8 @@ test_mswin_event({event}, {args}) *test_mswin_event()*
{event} is a String and the supported values are:
"mouse" mouse event.
"key" keyboard event.
"set_keycode_trans_strategy"
Change the key translation method.
"mouse":
Inject either a mouse button click, or a mouse move, event.
@@ -290,6 +292,15 @@ test_mswin_event({event}, {args}) *test_mswin_event()*
unprocessed key events. All other {args}
items are optional when this is set and true.
"set_keycode_trans_strategy":
|w32-experimental-keycode-trans-strategy|
Switch the keycode translation method. The supported methods
are:
experimental: The method used after Patch v8.2.4807
using ToUnicode() Win API call.
classic: The method used pre Patch v8.2.4807
using the TranslateMessage() Win API call.
Returns TRUE if the event is successfully added or executed,
FALSE if there is a failure.

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 9.1. Last change: 2023 Dec 14
*todo.txt* For Vim version 9.1. Last change: 2024 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -130,11 +130,8 @@ Further Vim9 improvements:
Issue #11822: any.Func() can be a dict or an object call, need to handle
this at runtime. Also see #12198 for an example.
Possibly issue #11981 can be fixed at the same time (has two examples).
- Make ":defcompile ClassName" compile all functions and methods in the
class.
- Forward declaration of a class? E.g. for Clone() function.
Email lifepillar 2023 Mar 26
- object empty(), len() - can class define a method to be used for them?
- When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should
either work or given an error. Possibly give an error now and implement it
later (using a typedef). #12006
@@ -958,9 +955,6 @@ When 'sidescrolloff' is set, using "zl" to go to the end of the line, suddenly
scrolls back. Should allow for this scrolling, like 'scrolloff' does when
using CTRL-E. (Yee Cheng Chin, #3721)
Add function to make use of internal diff, working on two lists and returning
unified diff (list of lines).
When splitting a window with few text lines, the relative cursor position is
kept, which means part of the text isn't displayed. Better show all the text
when possible. (Dylan Lloyd, #3973)
@@ -1123,9 +1117,6 @@ When t_Co is changed from termresponse, the OptionSet autocommand event isn't
triggered. Use the code from the end of set_num_option() in
set_color_count().
Add another autocommand like TermResponse that is fired for the other terminal
responses, such as bg and fg. Use "bg", "fg", "blink", etc. for the name.
When using command line window, CmdlineLeave is triggered without
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
Add some way to get the nested state. Although CmdwinEnter is obviously
@@ -4672,7 +4663,6 @@ GUI:
Autocommands:
9 Add WinNewPre - before creating a new window. #10635
9 When triggering WinNew provide the window ID somehow. #10633
9 Rework the code from FEAT_OSFILETYPE for autocmd-osfiletypes to use
'filetype'. Only for when the current buffer is known.

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 9.1. Last change: 2023 May 06
*usr_41.txt* For Vim version 9.1. Last change: 2024 Feb 25
VIM USER MANUAL - by Bram Moolenaar
@@ -69,7 +69,7 @@ The output of the example code is:
In the first line the `vim9script` command makes clear this is a new, |Vim9|
script file. That matters for how the rest of the file is used. It is
recommended to put it in the very fist line, before any comments.
recommended to put it in the very first line, before any comments.
*vim9-declarations*
The `var i = 1` command declares the "i" variable and initializes it. The
generic form is: >
@@ -798,6 +798,7 @@ List manipulation: *list-functions*
filter() remove selected items from a List
map() change each List item
mapnew() make a new List with changed items
foreach() apply function to List items
reduce() reduce a List to a value
slice() take a slice of a List
sort() sort a List
@@ -829,6 +830,7 @@ Dictionary manipulation: *dict-functions*
filter() remove selected entries from a Dictionary
map() change each Dictionary entry
mapnew() make a new Dictionary with changed items
foreach() apply function to Dictionary items
keys() get List of Dictionary keys
values() get List of Dictionary values
items() get List of Dictionary key-value pairs
@@ -927,6 +929,7 @@ Cursor and mark position: *cursor-functions* *mark-functions*
Working with text in the current buffer: *text-functions*
getline() get a line or list of lines from the buffer
getregion() get a region of text from the buffer
setline() replace a line in the buffer
append() append line or list of lines in the buffer
indent() indent of a specific line
@@ -1366,6 +1369,7 @@ Various: *various-functions*
changenr() return number of most recent change
cscope_connection() check if a cscope connection exists
did_filetype() check if a FileType autocommand was used
diff() diff two Lists of strings
eventhandler() check if invoked by an event handler
getpid() get process ID of Vim
getscriptinfo() get list of sourced vim scripts

View File

@@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2024 Jan 01
*version9.txt* For Vim version 9.1. Last change: 2024 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12957,7 +12957,7 @@ Files: src/fileio.c
Patch 8.2.2056
Problem: Configure fails when building with the
"implicit-function-declaration" error enabled, specifically on Mac.
Solution: Declear the functions like in the source code. (suggestion by
Solution: Declare the functions like in the source code. (suggestion by
Clemens Lang, closes #7380)
Files: src/configure.ac, src/auto/configure
@@ -18862,7 +18862,7 @@ Solution: Do not handle text properties when deleting a line for splitting a
Files: src/structs.h, src/memline.c, src/testdir/test_textprop.vim
Patch 8.2.3063
Problem: Crash when switching 'cryptmethod' to xchaha20 with an existing
Problem: Crash when switching 'cryptmethod' to xchacha20 with an existing
undo file. (Martin Tournoij)
Solution: Disable reading undo file when decoding can't be done inplace.
(issue #8467)
@@ -19819,7 +19819,7 @@ Solution: Add missing changes.
Files: src/globals.h
Patch 8.2.3218
Problem: When using xchaha20 crypt undo file is not removed.
Problem: When using xchacha20 crypt undo file is not removed.
Solution: Reset 'undofile' and delete the file. (Christian Brabandt,
closes #8630, closes #8467)
Files: src/bufwrite.c, src/crypt.c, src/proto/undo.pro,
@@ -29043,7 +29043,7 @@ Files: src/testdir/test_autocmd.vim
Patch 8.2.4729
Problem: HEEx and Surface templates do not need a separate filetype.
Solution: Use Eelixir for the similar filetypes. (Aaron Tinio, closes #10124)
Solution: Use Elixir for the similar filetypes. (Aaron Tinio, closes #10124)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.4730
@@ -31688,7 +31688,7 @@ Files: runtime/makemenu.vim
VERSION 9.1 *version-9.1* *version9.1* *vim-9.1*
This section is about improvements made between version 9.0 and 9.1.
The release 9.1 is dedicated to Vims Benevolent dictator for life
The release 9.1 is dedicated to Vim's Benevolent dictator for life
|Bram-Moolenaar|.
This release has hundreds of bug fixes, there are a few new features and there
@@ -31774,7 +31774,7 @@ Other improvements *new-other-9.1*
- Support "**" for filename expansion with bash using globstar setting.
- Add quadruple prime digraph using 4'.
- Better high dpi support on Windows.
- Varous fixes for unsafe memory access, memory leaks, buffer overflows
- Various fixes for unsafe memory access, memory leaks, buffer overflows
and potential crashes.
- Termdebug: Support for the variables window (|termdebug_variables_window|),
moving up/down the stack frames (|termdebug-frames|) and setting temporary
@@ -32098,7 +32098,7 @@ Problem: Split else-of is confusing.
Solution: Join the lines. (closes #10696)
Patch 9.0.0051
Problem: Using CTRL-C wih :append may hang Vim.
Problem: Using CTRL-C with :append may hang Vim.
Solution: Reset got_int. (closes #10729, closes #10728)
Patch 9.0.0052
@@ -32487,7 +32487,7 @@ Solution: pass the command modifier in sticky_cmdmod_flags. (Kota Kato,
closes #10845)
Patch 9.0.0141
Problem: "delmenu" does not remove autocmmands. Running menu test function
Problem: "delmenu" does not remove autocommands. Running menu test function
alone fails.
Solution: Delete autocommands Make sure there is at least one menu.
(closes #10848)
@@ -32663,7 +32663,7 @@ Solution: Remove ch_logfile() calls.
Patch 9.0.0181
Problem: Textprop test with line2byte() fails on MS-Windows.
Solution: Fix updating chuncks in ml_delete_int().
Solution: Fix updating chunks in ml_delete_int().
Patch 9.0.0182
Problem: Quarto files are not recognized.
@@ -32901,7 +32901,7 @@ Problem: Cannot make difference between the end of :normal and a character
Solution: Add the "typebuf_was_empty" flag. (closes #10950)
Patch 9.0.0235
Problem: 'autoshelldir' does not work with chunked respose.
Problem: 'autoshelldir' does not work with chunked response.
Solution: Collect chunks before parsing OSC 7. (closes #10949)
Patch 9.0.0236
@@ -32991,7 +32991,7 @@ Solution: Add #ifdef.
Patch 9.0.0256
Problem: Compiler warning for uninitialized variables.
Solution: Initilize the variables.
Solution: Initialize the variables.
Patch 9.0.0257
Problem: "->" in ":scriptnames" output not tested yet.
@@ -33101,7 +33101,7 @@ Problem: Build failure without the +eval feature.
Solution: Add #ifdef.
Patch 9.0.0282
Problem: A nested timout stops the previous timeout.
Problem: A nested timeout stops the previous timeout.
Solution: Ignore any nested timeout.
Patch 9.0.0283
@@ -33542,7 +33542,7 @@ Problem: Coverity complains about unused value.
Solution: Use the value.
Patch 9.0.0384
Problem: Covertity still complains about using return value of getc().
Problem: Coverity still complains about using return value of getc().
Solution: Check for EOF.
Patch 9.0.0385
@@ -34271,7 +34271,7 @@ Problem: Crash when using NUL in buffer that uses :source.
Solution: Don't get a next line when skipping over NL.
Patch 9.0.0553
Problem: No error for "|" after "{" in lamda.
Problem: No error for "|" after "{" in lambda.
Solution: Check for invalid "|". (closes #11199)
Patch 9.0.0554
@@ -34310,7 +34310,7 @@ Solution: Set a timeout of 30 seconds.
Patch 9.0.0562
Problem: HSL playlist files are not recognized.
Solution: Add a pattern to recognize HSL palylist files. (Benoît Ryder,
Solution: Add a pattern to recognize HSL playlist files. (Benoît Ryder,
closes #11204)
Patch 9.0.0563
@@ -34400,7 +34400,7 @@ Solution: Also remove /private from the expected directory.
Patch 9.0.0583
Problem: Only recognizing .m3u8 files is inconsistent.
Solution: Also matc .m3u files. (issue #11204)
Solution: Also match .m3u files. (issue #11204)
Patch 9.0.0584
Problem: Cscope test with wrong executable name fails.
@@ -34678,7 +34678,7 @@ Solution: Stop at line 1 when 'smoothscroll' is not set. (closes #11261)
Patch 9.0.0646
Problem: with 'smoothscroll' set CTRL-E does not work properly when
'foldmethod' is set to "indent". (Yee Cheng Chin)
Solution: Merge the code for scroling with folds and 'smoothscroll'.
Solution: Merge the code for scrolling with folds and 'smoothscroll'.
(closes #11262)
Patch 9.0.0647
@@ -34770,7 +34770,7 @@ Patch 9.0.0666
Problem: Spacing-combining characters handled as composing, causing text to
take more space than expected.
Solution: Handle characters marked with "Mc" not as composing.
(closes #11282
(closes #11282)
Patch 9.0.0667
Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas)
@@ -34858,7 +34858,7 @@ Solution: Use a pointer to the first char. (Yee Cheng Chin, closes #11302)
Patch 9.0.0686
Problem: The right ALT key does not work on some MS-Windows keyboards.
Solution: Adjust the modifiers based on GetKeyState(). (Anoton Sharonov,
Solution: Adjust the modifiers based on GetKeyState(). (Anton Sharonov,
closes #11300)
Patch 9.0.0687
@@ -35139,7 +35139,7 @@ Solution: Adjust expected result to slightly different behavior. Correct
Patch 9.0.0747
Problem: Too many #ifdefs.
Solution: Gradudate the +cmdline_info feature. (Martin Tournoij,
Solution: Graduate the +cmdline_info feature. (Martin Tournoij,
closes #11330)
Patch 9.0.0748
@@ -35305,7 +35305,7 @@ Solution: Free the allocated memory when bailing out.
Patch 9.0.0786
Problem: User command does not get number from :tab modifier.
Solution: Include the number. (closes #11393, closes #6801)
Solution: Include the number. (closes #11393, closes #6901)
Patch 9.0.0787
Problem: MS-Windows: mouse scrolling in terminal misbehaves without dll.
@@ -35372,8 +35372,8 @@ Solution: Remove one typedef.
Patch 9.0.0801
Problem: The modifyOtherKeys flag is set when it should not.
Solution: Do not handle special key codes with a modifer value above 16 as a
modifyOtherKeys value. (issue #11403)
Solution: Do not handle special key codes with a modifier value above 16 as
a modifyOtherKeys value. (issue #11403)
Patch 9.0.0802
Problem: MS-Windows: cannot map console mouse scroll events.
@@ -35385,7 +35385,7 @@ Problem: readblob() cannot read from character device.
Solution: Use S_ISCHR() to not check the size. (Ken Takata, closes #11407)
Patch 9.0.0804
Problem: Crash when trying to divice the largest negative number by -1.
Problem: Crash when trying to divide the largest negative number by -1.
Solution: Handle this case specifically.
Patch 9.0.0805
@@ -35974,7 +35974,7 @@ Solution: Improve code formatting.
Patch 9.0.0935
Problem: When using dash it may not be recognize as filetype "sh".
Solution: Add checks for "dash". (Eisuke Kawashima,closes #11600)
Solution: Add checks for "dash". (Eisuke Kawashima, closes #11600)
Patch 9.0.0936
Problem: Wrong type for "isunnamed" returned by getreginfo().
@@ -36465,7 +36465,7 @@ Solution: When setting "curwin" also set "curbuf". (closes #11687)
Patch 9.0.1045
Problem: In a class object members cannot be initialized.
Solution: Support initializing object members. Make "dissassemble" work on
Solution: Support initializing object members. Make "disassemble" work on
an object method.
Patch 9.0.1046
@@ -36668,7 +36668,7 @@ Problem: Clang warns for unused variable.
Solution: Adjust #ifdef. (John Marriott)
Patch 9.0.1089
Problem: unnessary assignment
Problem: unnecessary assignment
Solution: Remove the assignment. (Luuk van Baal, closes #1136)
Patch 9.0.1090
@@ -36886,11 +36886,11 @@ Solution: Only use the member when the type is a list. (closes #11774)
Patch 9.0.1139
Problem: Cannot create a new object in a compiled function.
Solution: Compile the instructins to create a new object.
Solution: Compile the instructions to create a new object.
Patch 9.0.1140
Problem: Cannot call an object method in a compiled function.
Solution: Compile the instructins to invoke an object method.
Solution: Compile the instructions to invoke an object method.
Patch 9.0.1141
Problem: 'cursorcolumn' and 'colorcolumn' wrong after concealing and
@@ -37031,7 +37031,7 @@ Solution: Redraw the screen when the cell widths have changed. (Yasuhiro
Patch 9.0.1172
Problem: When 'selection' is "exclusive" then "1v" is one char short.
Solution: Add one character when 'selection' is "exclusive. (closes #11791)
Solution: Add one character when 'selection' is "exclusive". (closes #11791)
Patch 9.0.1173
Problem: Compiler warning for unused variable on non-Unix systems.
@@ -37264,7 +37264,7 @@ Problem: Reading past the end of a line when formatting text.
Solution: Check for not going over the end of the line.
Patch 9.0.1226
Problem: Spurious empty line when using text propertie and virtual text.
Problem: Spurious empty line when using text properties and virtual text.
Solution: Do not set "text_prop_follows" when the other text property is not
virtual text. (closes #11846)
@@ -37504,7 +37504,7 @@ Problem: Display shows lines scrolled down erroneously. (Yishai Lerner)
Solution: Do not change "wl_lnum" at index zero. (closes #11938)
Patch 9.0.1280
Problem: Inssufficient testing for what 9.0.1265 fixes.
Problem: Insufficient testing for what 9.0.1265 fixes.
Solution: Add a couple of test cases. (issue #11885)
Patch 9.0.1281
@@ -37533,7 +37533,7 @@ Problem: Coverity warns for using a NULL pointer.
Solution: Bail out whan "varp" is NULL.
Patch 9.0.1287
Problem: With the Kitty key protocl Esc with NumLock cannot be mapped.
Problem: With the Kitty key protocol Esc with NumLock cannot be mapped.
Solution: Also use K_ESC when there is a modifier. (closes #11811)
Patch 9.0.1288
@@ -37706,7 +37706,7 @@ Solution: Use the same code as used for "j"/"k" to go to the next/previous
Patch 9.0.1325
Problem: 'colorcolumn' highlight wrong with virtual text above.
Solution: Adjust column of 'colorcolumn' for text propertly. (closes #12004)
Solution: Adjust column of 'colorcolumn' for text property. (closes #12004)
Patch 9.0.1326
Problem: Relative line number not updated with virtual text above.
@@ -37965,8 +37965,8 @@ Problem: xxd: combination of little endian and cols fails. (Aapo
Solution: Round up the space taken by the hex output. (closes #12097)
Patch 9.0.1384
Problem: Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebew version
4.
Problem: Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebrew
version 4.
Solution: Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008)
Patch 9.0.1385
@@ -38413,7 +38413,7 @@ Solution: Add entry for Xchacha, even though it is not used.
Patch 9.0.1485
Problem: no functions for converting from/to UTF-16 index.
Solution: Add UTF-16 flag to existing funtions and add strutf16len() and
Solution: Add UTF-16 flag to existing functions and add strutf16len() and
utf16idx(). (Yegappan Lakshmanan, closes #12216)
Patch 9.0.1486
@@ -38427,7 +38427,7 @@ Solution: Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan
Patch 9.0.1488
Problem: xchacha20v2 crypt header is platform dependent.
Solution: Avoid using "size_t". (Ozaki Kiichi, closses #12296)
Solution: Avoid using "size_t". (Ozaki Kiichi, closes #12296)
Patch 9.0.1489
Problem: Crypt with libsodium is not tested on CI.
@@ -39720,7 +39720,7 @@ Solution: Add a few more tests for operator pending mode and register
Patch 9.0.1780
Problem: Vim9 type not defined during object creation
Solution: Define type during object creation and not during class
definition, parse mulit-line member initializers, fix lock
definition, parse multi-line member initializers, fix lock
initialization
Patch 9.0.1781
@@ -39786,7 +39786,7 @@ Problem: obsolete macros in configure script
Solution: Remove those and start moving to autoconf 2.71
Patch 9.0.1794
Problem: autoconf: not correctly detecing include dirs
Problem: autoconf: not correctly detecting include dirs
Solution: make use of python3 to generate includedirs
Patch 9.0.1795
@@ -40117,7 +40117,7 @@ Problem: Coverity warns about uninitialized var
Solution: initialize it
Patch 9.0.1870
Problem: Vim9: disassamble does not show static
Problem: Vim9: disassemble does not show static
Solution: Show static flag
Patch 9.0.1871
@@ -40860,7 +40860,7 @@ Solution: Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not
Patch 9.0.2038
Problem: Vim9: object method funcref not cleaned up after use
Solution: Clean up type stack after using object method funcref,
remove now longer used ISN_DEFEROBJ instrunction
remove now longer used ISN_DEFEROBJ instruction
Patch 9.0.2039
Problem: completion shows current word after completion restart
@@ -40883,7 +40883,7 @@ Problem: Vim9: issue with funcref assignment and varargs
Solution: Fix funcref type checking
Patch 9.0.2044
Problem: Vim9: exceptions confuse defered functions
Problem: Vim9: exceptions confuse deferred functions
Solution: save and restore exception state when calling deferred
functions
@@ -41535,4 +41535,88 @@ Patch 9.0.2190
Problem: proto files need update
Solution: re-generate them
==============================================================================
VERSION 9.2 *version-9.2* *version9.2* *vim-9.2*
This section is about improvements made between version 9.1 and 9.2
and is a work in progress.
Support for Wayland UI.
Vim9 script
-----------
Add support for internal builtin functions with vim9 objects, see
|builtin-object-methods|
Other improvements *new-other-9.2*
------------------
Changed *changed-9.2*
-------
Added *added-9.2*
-----
Various syntax, indent and other plugins were added.
Functions: ~
|diff()| diff two Lists of strings
|foreach()| apply function to List items
|matchbufline()| all the matches of a pattern in a buffer
|matchstrlist()| all the matches of a pattern in a List of strings
|getregion()| get a region of text from a buffer
Autocommands: ~
|TermResponseAll| after the terminal response to |t_RV| and others is
received
|WinNewPre| before creating a new window
Commands: ~
Options: ~
'winfixbuf' Keep buffer focused in a window
==============================================================================
INCOMPATIBLE CHANGES *incompatible-9.2*
Improved/Different MS-Windows mapping support
|w32-experimental-keycode-trans-strategy|
==============================================================================
IMPROVEMENTS *improvements-9.2*
Support for command-line completion of 'keymap' option values.
Support for compiling all the methods in a Vim9 class using |:defcompile|.
Support for alternate font highlighting using |t_CF| terminal code.
Support for Super key mappings in GTK using <D-Key>.
Improved visual highlighting.
Python3 support in OpenVMS.
==============================================================================
COMPILE TIME CHANGES *compile-changes-9.2*
Support for building with Ruby 3.3.
Support for building Vim 9 in z/OS (MVS).
==============================================================================
PATCHES *patches-9.2* *bug-fixes-9.2*
*patches-after-9.1*
The list of patches that got included since 9.1.0. This includes all the new
features, but does not include runtime file changes (syntax, indent, ftplugin,
documentation, etc.)
vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual:

View File

@@ -1,4 +1,4 @@
*vim9.txt* For Vim version 9.1. Last change: 2023 Dec 24
*vim9.txt* For Vim version 9.1. Last change: 2024 Jan 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1260,10 +1260,12 @@ Script-local variables in a |Vim9| script must be declared at the script
level. They cannot be created in a function, also not in a legacy function.
*:defc* *:defcompile*
:defc[ompile] Compile functions defined in the current script that
were not compiled yet.
This will report any errors found during compilation.
This excludes functions defined inside a class.
:defc[ompile] Compile functions and classes (|class-compile|)
defined in the current script that were not compiled
yet. This will report any errors found during
compilation.
:defc[ompile] MyClass Compile all methods in a class. |class-compile|
:defc[ompile] {func}
:defc[ompile] debug {func}
@@ -1718,8 +1720,8 @@ an example for each category: >
Vim does not have a familiar null value; it has various null_<type> predefined
values, for example |null_string|, |null_list|, |null_job|. Primitives do not
have a null_<type>. The typical use cases for null_<type> are:
- to `clear a variable` and release its resources;
- as a `default for a parameter` in a function definition, see |null-compare|.
- to clear a variable and release its resources;
- as a default for a parameter in a function definition, see |null-compare|.
For a specialized variable, like `job`, null_<type> is used to clear the
resources. For a container variable, resources can also be cleared by
@@ -1771,7 +1773,7 @@ an empty container, do not use null_<type> in a comparison: >
F(null_list) # output: "null"
F([]) # output: "not null, empty"
F(['']) # output: "not null, not empty"
The above function takes a `list of strings` and reports on it.
The above function takes a list of strings and reports on it.
Change the above function signature to accept different types of arguments: >
def F(arg: list<any> = null_list) # any type of list
def F(arg: any = null) # any type
@@ -1789,18 +1791,18 @@ with vim9 null semantics, the programmer may chose to use null_<type> in
comparisons and/or other situations.
Elsewhere in the documentation it says:
Quite often a null value is handled the same as an
empty value, but not always
Quite often a null value is handled the same as an empty value, but
not always
Here's an example: >
vim9script
var s1: list<string>
var s2: list<string> = null_list
echo s1 # output: "[]"
echo s2 # output: "[]"
echo s1 + ['a'] # output: "['a']"
echo s2 + ['a'] # output: "['a']"
echo s1->add('a') # output: "['a']"
echo s2->add('a') # E1130: Can not add to null list
<
@@ -2022,7 +2024,7 @@ Note that this does not work for variables, only for functions.
*import-legacy* *legacy-import*
`:import` can also be used in legacy Vim script. The imported namespace still
becomes script-local, even when the "s:" prefix is not given. For example: >
import "myfile.vim"
import "myfile.vim"
call s:myfile.MyFunc()
And using the "as name" form: >

View File

@@ -1,4 +1,4 @@
*vim9class.txt* For Vim version 9.1. Last change: 2024 Jan 01
*vim9class.txt* For Vim version 9.1. Last change: 2024 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -106,17 +106,17 @@ The object variables "lnum" and "col" can be accessed directly: >
echo $'The text position is ({pos.lnum}, {pos.col})'
< *E1317* *E1327* *:this*
If you have been using other object-oriented languages you will notice that in
Vim, within a class definition, the object members are consistently referred
to with the "this." prefix. This is different from languages like Java and
TypeScript. The naming convention makes the object members easy to spot.
Also, when a variable does not have the "this." prefix you know it is not an
object variable.
Vim, within a class definition, the declared object members are consistently
referred to with the "this." prefix. This is different from languages like
Java and TypeScript. The naming convention makes the object members easy to
spot. Also, when a variable does not have the "this." prefix you know it is
not an object variable.
*E1411*
From outside the class definition, access an object's methods and variables by
using the object name followed by a dot following by the member: >
pos.lnum
pos.setCol(10)
pos.SetCol(10)
<
*E1405* *E1406*
A class name cannot be used as an expression. A class name cannot be used in
@@ -164,7 +164,7 @@ from outside the class or its sub-classes, you can make them protected. This
is done by prefixing an underscore to the name: >
var _lnum: number
var _col number
var _col: number
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
@@ -174,7 +174,7 @@ These are commonly called getters. We recommend using a name that starts with
return this._lnum
enddef
def GetCol() number
def GetCol(): number
return this._col
enddef
@@ -330,7 +330,8 @@ variables but they have no access to the object variables, they cannot use the
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.
a class method from a parent class in a child class, the class name must be
prefixed.
Just like object methods the access can be made protected by using an
underscore as the first character in the method name: >
@@ -492,17 +493,15 @@ prefix when defining the method: >
abstract class Shape
abstract def Draw()
abstract static def SetColor()
endclass
<
A static method in an abstract class cannot be an abstract method.
*E1373*
A class extending the abstract class must implement all the abstract methods.
The signature (arguments, argument types and return type) must be exactly the
same. If the return type of a method is a class, then that class or one of
its subclasses can be used in the extended method. Class methods in an
abstract class can also be abstract methods.
A non-abstract class extending the abstract class must implement all the
abstract methods. The signature (arguments, argument types and return type)
must be exactly the same. If the return type of a method is a class, then
that class or one of its subclasses can be used in the extended method.
==============================================================================
@@ -610,7 +609,7 @@ 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 protected member variable with the same name. A
possible to use a public and protected member variable with the same name. An
object variable name used in a super class cannot be reused in a child class.
@@ -688,7 +687,7 @@ Inside a class, in between `:class` and `:endclass`, these items can appear:
- A class variable declaration: >
static var _protectedClassVariableName: memberType
static var readonlyClassVariableName: memberType
static var public readwriteClassVariableName: memberType
public static var readwriteClassVariableName: memberType
- A constructor method: >
def new(arguments)
def newName(arguments)
@@ -711,6 +710,32 @@ The initialization isn't needed, the list is empty by default.
*E1330*
Some types cannot be used, such as "void", "null" and "v:none".
Builtin Object Methods ~
*builtin-object-methods*
Some of the builtin functions like |empty()|, |len()| and |string()| can be
used with an object. An object can implement a method with the same name as
these builtin functions to return an object-specific value.
*E1412*
The following builtin methods are supported:
*object-empty()*
empty() Invoked by the |empty()| function to check whether an object is
empty. If this method is missing, then true is returned. This
method should not accept any arguments and must return a boolean.
*object-len()*
len() Invoked by the |len()| function to return the length of an
object. If this method is missing in the class, then an error is
given and zero is returned. This method should not accept any
arguments and must return a number.
*object-string()*
string() Invoked by the |string()| function to get a textual
representation of an object. Also used by the |:echo| command
for an object. If this method is missing in the class, then a
built-in default textual representation is used. This method
should not accept any arguments and must return a string.
*E1413*
A class method cannot be used as a builtin method.
Defining an interface ~
*Interface* *:interface* *:endinterface*
@@ -747,7 +772,7 @@ null object ~
When a variable is declared to have the type of an object, but it is not
initialized, the value is null. When trying to use this null object Vim often
does not know what class was supposed to be used. Vim then cannot check if
a variable name is correct and you will get an "Using a null object" error,
a variable name is correct and you will get a "Using a null object" error,
even when the variable name is invalid. *E1360* *E1362*
@@ -787,7 +812,7 @@ the name, you can define the constructor like this: >
<
When using the default new() method, if the order of the object variables in
the class is changed later, then all the callers of the default new() method
needs to change. To avoid this, the new() method can be explicitly defined
need to change. To avoid this, the new() method can be explicitly defined
without any arguments.
*E1328*
@@ -831,7 +856,14 @@ Note that the method name must start with "new". If there is no method called
"new()" then the default constructor is added, even though there are other
constructor methods.
Compiling methods in a Class ~
*class-compile*
The |:defcompile| command can be used to compile all the class and object
methods defined in a class: >
defcompile MyClass # Compile class "MyClass"
defcompile # Compile the classes in the current script
<
==============================================================================
7. Type definition *typealias* *Vim9-type* *:type*
@@ -993,7 +1025,7 @@ in the body, while for other variables this is not needed and often omitted.
This leads to a mix of variables with and without "this.", which is
inconsistent.
For |Vim9| classes the "this." prefix is always used. Also for declaring the
For |Vim9| classes the "this." prefix is always used for declared methods and
variables. Simple and consistent. When looking at the code inside a class
it's also directly clear which variable references are object variables and
which aren't.
@@ -1029,7 +1061,7 @@ Following that Vim object variables could be declared like this: >
endclass
Some users pointed out that this looks more like an assignment than a
declaration. Adding "var" changes that: >
declaration. Adding "var" and omitting "this." changes that: >
class Point
var x: number
var y = 0

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 9.1. Last change: 2022 Nov 27
*windows.txt* For Vim version 9.1. Last change: 2024 Feb 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -519,35 +519,33 @@ horizontally split windows. CTRL-W H does it the other way around.
*CTRL-W_K*
CTRL-W K Move the current window to be at the very top, using the full
width of the screen. This works like closing the current
window and then creating another one with ":topleft split",
except that the current window contents is used for the new
window.
width of the screen. This works like `:topleft split`, except
it is applied to the current window and no new window is
created.
*CTRL-W_J*
CTRL-W J Move the current window to be at the very bottom, using the
full width of the screen. This works like closing the current
window and then creating another one with ":botright split",
except that the current window contents is used for the new
window.
full width of the screen. This works like `:botright split`,
except it is applied to the current window and no new window
is created.
*CTRL-W_H*
CTRL-W H Move the current window to be at the far left, using the
full height of the screen. This works like closing the
current window and then creating another one with
`:vert topleft split`, except that the current window contents
is used for the new window.
full height of the screen. This works like
`:vert topleft split`, except it is applied to the current
window and no new window is created.
*CTRL-W_L*
CTRL-W L Move the current window to be at the far right, using the full
height of the screen. This works like closing the
current window and then creating another one with
`:vert botright split`, except that the current window
contents is used for the new window.
height of the screen. This works like `:vert botright split`,
except it is applied to the current window and no new window
is created.
*CTRL-W_T*
CTRL-W T Move the current window to a new tab page. This fails if
there is only one window in the current tab page.
This works like `:tab split`, except the previous window is
closed.
When a count is specified the new tab page will be opened
before the tab page with this index. Otherwise it comes after
the current tab page.

View File

@@ -317,6 +317,9 @@ au BufRead,BufNewFile *.chai setf chaiscript
" Chatito
au BufNewFile,BufRead *.chatito setf chatito
" Chuck
au BufNewFile,BufRead *.ck setf chuck
" Comshare Dimension Definition Language
au BufNewFile,BufRead *.cdl setf cdl
@@ -531,6 +534,9 @@ au BufNewFile,BufRead *.csp,*.fdr setf csp
au BufNewFile,BufRead *.pld setf cupl
au BufNewFile,BufRead *.si setf cuplsim
" Dafny
au BufNewFile,BufRead *.dfy setf dafny
" Dart
au BufRead,BufNewfile *.dart,*.drt setf dart
@@ -619,8 +625,12 @@ au BufNewFile,BufRead *.intr setf dylanintr
" Dylan
au BufNewFile,BufRead *.dylan setf dylan
" Microsoft Module Definition
au BufNewFile,BufRead *.def setf def
" Microsoft Module Definition or Modula-2
au BufNewFile,BufRead *.def call dist#ft#FTdef()
if has("fname_case")
au BufNewFile,BufRead *.DEF setf modula2
endif
" Dracula
au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula
@@ -639,8 +649,8 @@ au BufNewFile,BufRead *.dsl
" DTD (Document Type Definition for XML)
au BufNewFile,BufRead *.dtd setf dtd
" DTS/DSTI (device tree files)
au BufNewFile,BufRead *.dts,*.dtsi setf dts
" DTS/DSTI/DTSO (device tree files)
au BufNewFile,BufRead *.dts,*.dtsi,*.dtso,*.its setf dts
" EDIF (*.edf,*.edif,*.edn,*.edo) or edn
au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif
@@ -852,7 +862,7 @@ au BufNewFile,BufRead *.gts setf typescript.glimmer
au BufNewFile,BufRead *.gjs setf javascript.glimmer
" Gnuplot scripts
au BufNewFile,BufRead *.gpi,.gnuplot setf gnuplot
au BufNewFile,BufRead *.gpi,*.gnuplot setf gnuplot
" Go (Google)
au BufNewFile,BufRead *.go setf go
@@ -1134,7 +1144,7 @@ au BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin
au BufNewFile,BufRead *.ks setf kscript
" Kconfig
au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig
au BufNewFile,BufRead Kconfig,Kconfig.debug,Config.in setf kconfig
" Lace (ISE)
au BufNewFile,BufRead *.ace,*.ACE setf lace
@@ -1237,6 +1247,9 @@ au BufNewFile,BufRead *.lua setf lua
" Luau
au BufNewFile,BufRead *.luau setf luau
" Luau config
au BufNewFile,BufRead .luaurc setf jsonc
" Luacheck
au BufNewFile,BufRead .luacheckrc setf lua
@@ -1339,9 +1352,6 @@ au BufNewFile,BufRead *.mmp setf mmp
" ABB Rapid, Modula-2, Modsim III or LambdaProlog
au BufNewFile,BufRead *.mod\c call dist#ft#FTmod()
" Modula-2 (.md removed in favor of Markdown, see dist#ft#FTmod for *.MOD)
au BufNewFile,BufRead *.m2,*.DEF,*.mi setf modula2
" Modula-3 (.m3, .i3, .mg, .ig)
au BufNewFile,BufRead *.[mi][3g] setf modula3
@@ -2001,7 +2011,7 @@ au BufNewFile,BufRead catalog setf catalog
" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually
" bash scripts.
" NOTE: Patterns ending in a star are further down, these have lower priority.
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD,*.bats call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1))
@@ -2390,6 +2400,9 @@ au BufRead,BufNewFile *.vdmpp,*.vpp setf vdmpp
au BufRead,BufNewFile *.vdmrt setf vdmrt
au BufRead,BufNewFile *.vdmsl,*.vdm setf vdmsl
" Vento
au BufNewFile,BufRead *.vto setf vento
" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
@@ -2773,7 +2786,7 @@ au! BufNewFile,BufRead *jarg*
au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties')
" Kconfig
au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig')
au BufNewFile,BufRead Kconfig.*,Config.in.* call s:StarSetf('kconfig')
" Lilo: Linux loader
au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo')

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Aap recipe
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Aug 10
" Last Change: 2024 Jan 14
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Only do this when not done yet for this buffer
@@ -28,6 +28,11 @@ setlocal commentstring=#\ %s
setlocal expandtab
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\nAll Files (*.*)\t*.*\n"
let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -3,7 +3,8 @@
" Author: Steven Oliver <oliver.steven@gmail.com>
" Copyright: Copyright (c) 2013 Steven Oliver
" License: You may redistribute this under the same terms as Vim itself
" Last Change: 2023 Aug 28 by Vim Project (undo_ftplugin)
" Last Change: 2023 Aug 28 by Vim Project (undo_ftplugin)
" 2024 Jan 14 by Vim Project (browsefilter)
" --------------------------------------------------------------------------
" Only do this when not done yet for this buffer
@@ -21,10 +22,14 @@ setlocal suffixesadd=.abap
let b:undo_ftplugin = "setl sts< sua< sw<"
" Windows allows you to filter the open file dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= " | unlet! b:browsefilter"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif
let &cpo = s:cpo_save

View File

@@ -2,6 +2,7 @@
" Language: Abaqus finite element input file (www.abaqus.com)
" Maintainer: Carl Osterwisch <costerwi@gmail.com>
" Last Change: 2022 Oct 08
" 2024 Jan 14 by Vim Project (browsefilter)
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin") | finish | endif
@@ -49,8 +50,12 @@ endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
\ "Abaqus Results (*.dat)\t*.dat\n" .
\ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
\ "All Files (*.*)\t*.*\n"
\ "Abaqus Messages (*.pre, *.msg, *.sta)\t*.pre;*.msg;*.sta\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
let b:undo_ftplugin .= "|unlet! b:browsefilter"
endif

View File

@@ -1,10 +1,11 @@
" Vim filetype plugin file
" Language: ant
" Language: ant
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" Last Change: 2009 Jan 20
" 2024 Jan 14 by Vim Project (browsefilter)
if exists("b:did_ftplugin") | finish | endif
@@ -15,8 +16,12 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
\ "All Files (*.*)\t*.*\n"
let s:browsefilter = "XML Files (*.xml)\t*.xml\n"
if has("win32")
let s:browsefilter .= "All Files (*.*)\t*\n"
else
let s:browsefilter .= "All Files (*)\t*\n"
endif
runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
let b:did_ftplugin = 1
@@ -30,7 +35,7 @@ if exists("b:browsefilter")
endif
" Change the :browse e filter to primarily show Ant-related files.
if has("gui_win32")
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Build Files (build.xml)\tbuild.xml\n" .
\ "Java Files (*.java)\t*.java\n" .
\ "Properties Files (*.prop*)\t*.prop*\n" .

View File

@@ -0,0 +1,67 @@
" Vim filetype plugin file
" Original Author: Maxim Kim <habamax@gmail.com>
" Language: asciidoc
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Last Change: 2024 Jan 16
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
if exists('b:undo_ftplugin')
let b:undo_ftplugin .= "|setl cms< com< fo< flp< inex< efm< cfu< fde< fdm<"
else
let b:undo_ftplugin = "setl cms< com< fo< flp< inex< efm< cfu< fde< fdm<"
endif
" gf to open include::file.ext[] and link:file.ext[] files
setlocal includeexpr=substitute(v:fname,'\\(link:\\\|include::\\)\\(.\\{-}\\)\\[.*','\\2','g')
setlocal comments=
setlocal commentstring=//\ %s
setlocal formatoptions+=cqn
setlocal formatlistpat=^\\s*[\\[({]\\?\\([0-9]\\+
setlocal formatlistpat+=\\\|[a-zA-Z]\\)[\\]:.)}]\\s\\+
setlocal formatlistpat+=\\\|^\\s*-\\s\\+
setlocal formatlistpat+=\\\|^\\s*[*]\\+\\s\\+
setlocal formatlistpat+=\\\|^\\s*[.]\\+\\s\\+
function AsciidocFold()
let line = getline(v:lnum)
if (v:lnum == 1) && (line =~ '^----*$')
return ">1"
endif
let nested = get(g:, "asciidoc_foldnested", 1)
" Regular headers
let depth = match(line, '\(^=\+\)\@<=\( .*$\)\@=')
" Do not fold nested regular headers
if depth > 1 && !nested
let depth = 1
endif
if depth > 0
" fold all sections under title
if depth > 1 && !get(g:, "asciidoc_fold_under_title", 1)
let depth -= 1
endif
" check syntax, it should be asciidocTitle or asciidocH
let syncode = synstack(v:lnum, 1)
if len(syncode) > 0 && synIDattr(syncode[0], 'name') =~ 'asciidoc\%(H[1-6]\)\|Title'
return ">" . depth
endif
endif
return "="
endfunction
if has("folding") && get(g:, 'asciidoc_folding', 0)
setlocal foldexpr=AsciidocFold()
setlocal foldmethod=expr
let b:undo_ftplugin .= "|setl foldexpr< foldmethod< foldtext<"
endif

View File

@@ -1,10 +1,11 @@
" Vim filetype plugin file
" Language: aspvbs
" Language: aspvbs
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" Last Change: 2009 Jan 20
" 2024 Jan 14 by Vim Project (browsefilter)
if exists("b:did_ftplugin") | finish | endif
@@ -15,8 +16,12 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" .
\ "All Files (*.*)\t*.*\n"
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n"
if has("win32")
let s:browsefilter .= "All Files (*.*)\t*\n"
else
let s:browsefilter .= "All Files (*)\t*\n"
endif
let s:match_words = ""
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
@@ -51,7 +56,7 @@ if exists("loaded_matchit")
endif
" Change the :browse e filter to primarily show ASP-related files.
if has("gui_win32")
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter
endif

View File

@@ -2,7 +2,7 @@
" Language: awk, nawk, gawk, mawk
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Antonio Colombo <azc100@gmail.com>
" Last Change: 2020 Sep 28
" Last Change: 2024 Jan 14
" This plugin was prepared by Mark Sikora
" This plugin was updated as proposed by Doug Kearns
@@ -25,8 +25,7 @@ setlocal formatoptions-=t formatoptions+=croql
setlocal define=function
setlocal suffixesadd+=.awk
let b:undo_ftplugin = "setl fo< com< cms< def< sua<" .
\ " | unlet! b:browsefilter"
let b:undo_ftplugin = "setl fo< com< cms< def< sua<"
" TODO: set this in scripts.vim?
if exists("g:awk_is_gawk")
@@ -49,8 +48,13 @@ if exists("g:awk_is_gawk")
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Awk Source Files (*.awk,*.gawk)\t*.awk;*.gawk\n" .
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "Awk Source Files (*.awk, *.gawk)\t*.awk;*.gawk\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
let b:undo_ftplugin .= " | unlet! b:browsefilter"
endif
let &cpo = s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: BASIC (QuickBASIC 4.5)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Jun 22
" Last Change: 2024 Jan 14
if exists("b:did_ftplugin")
finish
@@ -45,8 +45,12 @@ endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "BASIC Source Files (*.bas)\t*.bas\n" ..
\ "BASIC Include Files (*.bi, *.bm)\t*.bi;*.bm\n" ..
\ "All Files (*.*)\t*.*\n"
\ "BASIC Include Files (*.bi, *.bm)\t*.bi;*.bm\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:basic_set_browsefilter = 1
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:basic_set_browsefilter"
endif

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Aug 10
" Last Change: 2023 Aug 22
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Only do this when not done yet for this buffer
@@ -48,24 +48,26 @@ if !exists("b:match_words")
let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words"
endif
" Win32 can filter files in the browse dialog
" Win32 and GTK can filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
if &ft == "cpp"
let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
\ "C Header Files (*.h)\t*.h\n" .
\ "C Source Files (*.c)\t*.c\n" .
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "C++ Source Files (*.cpp, *.c++)\t*.cpp;*.c++\n" ..
\ "C Header Files (*.h)\t*.h\n" ..
\ "C Source Files (*.c)\t*.c\n"
elseif &ft == "ch"
let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
\ "C Header Files (*.h)\t*.h\n" .
\ "C Source Files (*.c)\t*.c\n" .
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "Ch Source Files (*.ch, *.chf)\t*.ch;*.chf\n" ..
\ "C Header Files (*.h)\t*.h\n" ..
\ "C Source Files (*.c)\t*.c\n"
else
let b:browsefilter = "C Source Files (*.c)\t*.c\n" .
\ "C Header Files (*.h)\t*.h\n" .
\ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
\ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "C Source Files (*.c)\t*.c\n" ..
\ "C Header Files (*.h)\t*.h\n" ..
\ "Ch Source Files (*.ch, *.chf)\t*.ch;*.chf\n" ..
\ "C++ Source Files (*.cpp, *.c++)\t*.cpp;*.c++\n"
endif
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -6,6 +6,7 @@
" URL: https://github.com/clojure-vim/clojure.vim
" License: Vim (see :h license)
" Last Change: 2022-03-24
" 2024 Jan 14 by Vim Project (browsefilter)
if exists("b:did_ftplugin")
finish
@@ -66,10 +67,14 @@ endif
" Filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "All Files\t*\n" .
\ "Clojure Files\t*.clj;*.cljc;*.cljs;*.cljx\n" .
let b:browsefilter = "Clojure Files\t*.clj;*.cljc;*.cljs;*.cljx\n" .
\ "EDN Files\t*.edn\n" .
\ "Java Files\t*.java\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif

View File

@@ -3,6 +3,7 @@
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
" Last Update: By Ankit Jain (add gtk support) on 15.08.2020
" 2024 Jan 14 by Vim Project (browsefilter)
" Insert mode mappings: <C-T> <C-D> <Tab>
" Normal mode mappings: < > << >> [[ ]] [] ][
@@ -39,8 +40,12 @@ endif
" add gtk support
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n".
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
endif
let b:undo_ftplugin = "setlocal com< cms< fo< et< tw<" .

View File

@@ -1,10 +1,11 @@
" Vim filetype plugin file
" Language: config
" Language: config
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" Last Change: 2009 Jan 20
" 2024 Jan 14 by Vim Project (browsefilter)
if exists("b:did_ftplugin") | finish | endif
@@ -15,8 +16,12 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" .
\ "All Files (*.*)\t*.*\n"
let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n"
if has("win32")
let s:browsefilter .= "All Files (*.*)\t*\n"
else
let s:browsefilter .= "All Files (*)\t*\n"
endif
let s:match_words = ""
runtime! ftplugin/sh.vim ftplugin/sh_*.vim ftplugin/sh/*.vim
@@ -31,7 +36,7 @@ if exists("b:browsefilter")
endif
" Change the :browse e filter to primarily show configure-related files.
if has("gui_win32")
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" .
\ s:browsefilter
endif

View File

@@ -3,6 +3,7 @@
" Maintainer: Nick Jensen <nickspoon@gmail.com>
" Former Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: 2022-11-16
" 2024 Jan 14 by Vim Project (browsefilter)
" License: Vim (see :h license)
" Repository: https://github.com/nickspoons/vim-cs
@@ -31,10 +32,14 @@ if exists('loaded_matchit') && !exists('b:match_words')
endif
if (has('gui_win32') || has('gui_gtk')) && !exists('b:browsefilter')
let b:browsefilter = "C# Source Files (*.cs *.csx)\t*.cs;*.csx\n" .
let b:browsefilter = "C# Source Files (*.cs, *.csx)\t*.cs;*.csx\n" .
\ "C# Project Files (*.csproj)\t*.csproj\n" .
\ "Visual Studio Solution Files (*.sln)\t*.sln\n" .
\ "All Files (*.*)\t*.*\n"
\ "Visual Studio Solution Files (*.sln)\t*.sln\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif

View File

@@ -3,7 +3,7 @@
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp
" Contributor: Johannes Zellner <johannes@zellner.org>
" Last Change: 2023 Oct 09
" Last Change: 2024 Jan 14
if exists("b:did_ftplugin")
finish
@@ -44,8 +44,12 @@ if exists("loaded_matchit") && !exists("b:match_words")
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n" ..
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:csh_set_browsefilter = 1
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:csh_set_browsefilter"
endif

View File

@@ -0,0 +1,16 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
" Last Change: 2024 Mar 20
" License: Vim License
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/deb822sources.vim
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin=1
setlocal comments=:#
setlocal commentstring=#%s
setlocal formatoptions-=t
let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<'

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Diff
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Aug 10
" Last Change: 2023 Aug 22
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Only do this when not done yet for this buffer
@@ -19,6 +19,11 @@ setlocal nomodeline
let &l:commentstring = "# %s"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\nAll Files (*.*)\t*.*\n"
let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -2,6 +2,7 @@
" Language: MS-DOS/Windows .bat files
" Maintainer: Mike Williams <mrmrdubya@gmail.com>
" Last Change: 12th February 2023
" 2024 Jan 14 by Vim Project (browsefilter)
"
" Options Flags:
" dosbatch_colons_comment - any value to treat :: as comment line
@@ -37,12 +38,17 @@ if executable('help.exe')
endif
" Define patterns for the browse file filter
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
endif
let b:undo_ftplugin = "setlocal comments< formatoptions< keywordprg<"
\ . "| unlet! b:browsefiler"
\ . "| unlet! b:browsefilter"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,10 +1,11 @@
" Vim filetype plugin file
" Language: dtd
" Language: dtd
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" Last Change: 2009 Jan 20
" 2024 Jan 14 by Vim Project (browsefilter)
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -27,10 +28,14 @@ if exists("loaded_matchit")
endif
" Change the :browse e filter to primarily show Java-related files.
if has("gui_win32")
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter="DTD Files (*.dtd)\t*.dtd\n" .
\ "XML Files (*.xml)\t*.xml\n" .
\ "All Files (*.*)\t*.*\n"
\ "XML Files (*.xml)\t*.xml\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
endif
" Undo the stuff we changed.

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Eiffel
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2010 Aug 29
" Last Change: 2024 Jan 14
if (exists("b:did_ftplugin"))
finish
@@ -18,8 +18,12 @@ setlocal formatoptions-=t formatoptions+=croql
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Eiffel Source Files (*.e)\t*.e\n" .
\ "Eiffel Control Files (*.ecf, *.ace, *.xace)\t*.ecf;*.ace;*.xace\n" .
\ "All Files (*.*)\t*.*\n"
\ "Eiffel Control Files (*.ecf, *.ace, *.xace)\t*.ecf;*.ace;*.xace\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
endif
if exists("loaded_matchit") && !exists("b:match_words")

View File

@@ -4,6 +4,7 @@
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 May 15
" 2024 Jan 14 by Vim Project (browsefilter)
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -15,7 +16,11 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "All Files (*.*)\t*.*\n"
if has("win32")
let s:browsefilter = "All Files (*.*)\t*\n"
else
let s:browsefilter = "All Files (*)\t*\n"
endif
let s:match_words = ""
if !exists("g:eruby_default_subtype")
@@ -109,8 +114,8 @@ exe 'cmap <buffer><script><expr> <Plug><cfile> ErubyAtCursor() ? ' . maparg('<Pl
exe 'cmap <buffer><script><expr> <Plug><ctag> ErubyAtCursor() ? ' . maparg('<Plug><ctag>', 'c') . ' : ' . get(s:ctagmap, 'rhs', '"\022\027"')
unlet s:cfilemap s:ctagmap s:include s:path s:suffixesadd
" Change the browse dialog on Win32 to show mainly eRuby-related files
if has("gui_win32")
" Change the browse dialog on Win32 and GTK to show mainly eRuby-related files
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter="eRuby Files (*.erb, *.rhtml)\t*.erb;*.rhtml\n" . s:browsefilter
endif

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Expect
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Jul 16
" Last Change: 2024 Jan 14
if exists("b:did_ftplugin")
finish
@@ -14,8 +14,12 @@ let s:cpo_save = &cpo
set cpo&vim
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Expect Command Files (*.exp)\t*.exp\n" ..
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "Expect Command Files (*.exp)\t*.exp\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
endif
let &cpo = s:cpo_save

View File

@@ -4,6 +4,7 @@
" Copyright: Copyright (c) 2009-2013 Steven Oliver
" License: You may redistribute this under the same terms as Vim itself
" Last Update: 2020 Oct 10
" 2024 Jan 14 by Vim Project (browsefilter)
" --------------------------------------------------------------------------
" Only do this when not done yet for this buffer
@@ -34,14 +35,18 @@ endif
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
" Windows allows you to filter the open file dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Falcon Source Files (*.fal *.ftd)\t*.fal;*.ftd\n" .
\ "All Files (*.*)\t*.*\n"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Falcon Source Files (*.fal, *.ftd)\t*.fal;*.ftd\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
endif
let b:undo_ftplugin = "setlocal tabstop< shiftwidth< expandtab< fileencoding<"
\ . " suffixesadd< comments<"
\ . "| unlet! b:browsefiler"
\ . "| unlet! b:browsefilter"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -2,6 +2,7 @@
" Language: Forth
" Maintainer: Johan Kotlinski <kotlinski@gmail.com>
" Last Change: 2023 Sep 15
" 2024 Jan 14 by Vim Project (browsefilter)
" URL: https://github.com/jkotlinski/forth.vim
if exists("b:did_ftplugin")
@@ -62,8 +63,12 @@ if exists("loaded_matchit") && !exists("b:match_words")
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Forth Source Files (*.f *.fs *.ft *.fth *.4th)\t*.f;*.fs;*.ft;*.fth;*.4th\n" ..
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "Forth Source Files (*.f, *.fs, *.ft, *.fth, *.4th)\t*.f;*.fs;*.ft;*.fth;*.4th\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif

View File

@@ -9,6 +9,8 @@
" Since then, useful suggestions and contributions have been made, in order, by:
" Stefano Zacchiroli, Hendrik Merx, Ben Fritz, David Barnett, Eisuke Kawashima,
" Doug Kearns, and Fritz Reese.
" Last Change: 2023 Dec 22
" 2024 Jan 14 by Vim Project (browsefilter)
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -135,8 +137,12 @@ endif
" File filters for :browse e
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Fortran Files (*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n" .
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "Fortran Files (*.f, *.for, *.f77, *.f90, *.f95, *.f03, *.f08, *.fpp, *.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n"
if has("win32")
let b:browsefilter .= "All Files (*.*)\t*\n"
else
let b:browsefilter .= "All Files (*)\t*\n"
endif
endif
let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc< sua<"

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Free Pascal Makefile Generator
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 Apr 23
" Last Change: 2024 Jan 14
if exists("b:did_ftplugin")
finish
@@ -13,11 +13,15 @@ set cpo&vim
runtime! ftplugin/make.vim
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Free Pascal Makefile Definition Files (*.fpc)\t*.fpc\n" ..
\ "All Files (*.*)\t*.*\n"
let b:browsefilter = "Free Pascal Makefile Definition Files (*.fpc)\t*.fpc\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
endif
let b:undo_ftplugin = b:undo_ftplugin .. " | unlet! b:browsefilter"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: FreeBASIC
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Jun 24
" Last Change: 2023 Aug 22
" Setup {{{1
if exists("b:did_ftplugin")
@@ -70,8 +70,12 @@ endif
if (has("gui_win32") || has("gui_gtk")) && exists("b:basic_set_browsefilter")
let b:browsefilter = "FreeBASIC Source Files (*.bas)\t*.bas\n" ..
\ "FreeBASIC Header Files (*.bi)\t*.bi\n" ..
\ "All Files (*.*)\t*.*\n"
\ "FreeBASIC Header Files (*.bi)\t*.bi\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
endif
" Cleanup {{{1

View File

@@ -2,6 +2,7 @@
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2019 Dec 05
" 2024 Jan 14 by Vim Project (browsefilter)
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -13,7 +14,11 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "All Files (*.*)\t*.*\n"
if has("win32")
let s:browsefilter = "All Files (*.*)\t*\n"
else
let s:browsefilter = "All Files (*)\t*\n"
endif
let s:match_words = ""
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
@@ -44,14 +49,14 @@ if exists("b:undo_ftplugin")
let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
endif
if exists ("b:browsefilter")
let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
let s:browsefilter = substitute(b:browsefilter,'\cAll Files (.*)\t\*\n','','') . s:browsefilter
endif
if exists("b:match_words")
let s:match_words = b:match_words . ',' . s:match_words
endif
" Change the browse dialog on Win32 to show mainly Haml-related files
if has("gui_win32")
" Change the browse dialog on Win32 and GTK to show mainly Haml-related files
if has("gui_win32") || has("gui_gtk")
let b:browsefilter="Haml Files (*.haml)\t*.haml\nSass Files (*.sass)\t*.sass\n" . s:browsefilter
endif
@@ -62,7 +67,7 @@ endif
setlocal comments= commentstring=-#\ %s
let b:undo_ftplugin = "setl def< cms< com< "
let b:undo_ftplugin = "setl def< cms< com< " .
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
let &cpo = s:save_cpo

View File

@@ -2,7 +2,7 @@
" Language: HTML
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp
" Last Changed: 2022 Jul 20
" Last Change: 2024 Jan 14
if exists("b:did_ftplugin")
finish
@@ -43,10 +43,14 @@ endif
" Change the :browse e filter to primarily show HTML-related files.
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "HTML Files (*.html *.htm)\t*.htm;*.html\n" ..
let b:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" ..
\ "JavaScript Files (*.js)\t*.js\n" ..
\ "Cascading StyleSheets (*.css)\t*.css\n" ..
\ "All Files (*.*)\t*.*\n"
\ "Cascading StyleSheets (*.css)\t*.css\n"
if has("win32")
let b:browsefilter ..= "All Files (*.*)\t*\n"
else
let b:browsefilter ..= "All Files (*)\t*\n"
endif
let b:html_set_browsefilter = 1
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:html_set_browsefilter"
endif

11
runtime/ftplugin/hurl.vim Normal file
View File

@@ -0,0 +1,11 @@
" Vim filetype plugin file
" Language: hurl
" Maintainer: Melker Ulander <melker.ulander@pm.me>
" Last Changed: 2024 01 26
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
setlocal commentstring=#\ %s
let b:undo_ftplugin = "setlocal commentstring<"

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