Compare commits

...

678 Commits

Author SHA1 Message Date
f883d9027c patch 8.2.2912: MS-Windows: most users expect using Unicode
Problem:    MS-Windows: most users expect using Unicode.
Solution:   Default 'encoding' to utf-8 on MS-Windows. (Ken Takata,
            closes #3907)
2021-05-30 18:04:19 +02:00
e71c0ebe2c patch 8.2.2911: pattern "\%V" does not match all of block selection
Problem:    Pattern "\%V" does not match all of block selection. (Rick Howe)
Solution:   Use the value of vi_curswant. (closes #8285)
2021-05-30 16:43:11 +02:00
0b49648486 patch 8.2.2910: test for cmdline window and terminal fails on MS-Windows
Problem:    Test for cmdline window and terminal fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
2021-05-30 14:21:57 +02:00
e0a7658bc8 patch 8.2.2909: build error with non-Unix system
Problem:    Build error with non-Unix system.
Solution:   Always include limits.h.
2021-05-30 14:02:05 +02:00
e5b4486c42 patch 8.2.2908: crash when using a terminal popup window from cmdline window
Problem:    Crash when using a terminal popup window from the cmdline window.
Solution:   Instead of checking cmdwin_type call cmdwin_is_active().
            (closes #8286)
2021-05-30 13:54:03 +02:00
28cf44f761 patch 8.2.2907: memory leak when running out of memory
Problem:    Memory leak when running out of memory.
Solution:   Free the allocated memory. (Dominique Pellé, closes #8284)
2021-05-29 22:34:19 +02:00
a5787c3742 patch 8.2.2906: ASAN reports errors for test_startup
Problem:    ASAN reports errors for test_startup for unknown reasons.
Solution:   Temporarily disable the new test.
2021-05-29 22:25:17 +02:00
1d3a14ecf0 patch 8.2.2905: no error when defaults.vim cannot be loaded
Problem:    No error when defaults.vim cannot be loaded.
Solution:   Add an error message. (Christian Brabandt, closes #8248)
2021-05-29 19:53:50 +02:00
74ede80aeb patch 8.2.2904: "g$" causes scroll if half a double width char is visible
Problem:    "g$" causes scroll if half a double width char is visible.
Solution:   Advance to the last fully visible character. (closes #8254)
2021-05-29 19:18:01 +02:00
a06e345af5 patch 8.2.2903: cursor position wrong on wrapped line with 'signcolumn'
Problem:    Cursor position wrong on wrapped line with 'signcolumn'.
Solution:   Don't add space for showbreak twice. (Christian Brabandt,
            closes #8262)
2021-05-29 17:56:37 +02:00
5a6cfb3ff2 patch 8.2.2902: spellfile functionality not fully tested
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé,
            closes #8283)
2021-05-29 17:29:33 +02:00
3e72dcad8b patch 8.2.2901: some operators not fully tested
Problem:    Some operators not fully tested.
Solution:   Add a few test cases. (Yegappan Lakshmanan, closes #8282)
2021-05-29 16:30:12 +02:00
1174b018a6 patch 8.2.2900: QuitPre is triggered before :wq writes the file
Problem:    QuitPre is triggered before :wq writes the file, which is
            different from other commands.
Solution:   Trigger QuitPre after writing the file. (closes #8279)
2021-05-29 14:30:43 +02:00
f89be8de14 patch 8.2.2899: Appveyor script does not detect nmake failure
Problem:    Appveyor script does not detect nmake failure.
Solution:   Explicitly check for executable. (Ken Takata, closes #8281)
2021-05-29 12:42:47 +02:00
3552e74289 patch 8.2.2898: QuitPre and ExitPre not triggered when GUI window is closed
Problem:    QuitPre and ExitPre not triggered when GUI window is closed.
Solution:   Call before_quit_autocmds(). (closes #8242)
2021-05-29 12:21:58 +02:00
d0edaf9dc2 patch 8.2.2897: Vim9: can use reserved words at the script level
Problem:    Vim9: can use reserved words at the script level.
Solution:   Check variable names for reserved words. (closes #8253)
2021-05-28 21:06:08 +02:00
dc3275a1ac patch 8.2.2896: spellfile functionality not fully tested
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for CHECKCOMPOUNDPATTERN and COMMON. (Dominique Pellé,
            closes #8270)
2021-05-28 18:32:12 +02:00
4ac198c61c patch 8.2.2895: Vim9: random characters appear in some error messages
Problem:    Vim9: random characters appear in some error messages.
Solution:   Pass the correct pointer. (closes #8277)
2021-05-28 17:52:40 +02:00
2c4a1d0a61 patch 8.2.2894: MS-Windows: using enc_locale() for strftime() might not work
Problem:    MS-Windows: using enc_locale() for strftime() might not work.
Solution:   Use wcsftime(). (Ken Takata, closes #8271)
2021-05-28 15:49:34 +02:00
bc869874fe patch 8.2.2893: multi-byte text in popup title shows up wrong
Problem:    Multi-byte text in popup title shows up wrong.
Solution:   Use the character width instead of the byte length. (Ralf Schandl,
            closes #8267, closes #8264)
2021-05-28 14:12:14 +02:00
89dcb4dce3 patch 8.2.2892: error message contains random characters
Problem:    Error message contains random characters.
Solution:   Pass the right pointer to error_white_both(). (closes #8272,
            closes #8263)
2021-05-28 13:50:17 +02:00
543467136f patch 8.2.2891: cannot build with Perl 5.34
Problem:    Cannot build with Perl 5.34.
Solution:   Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes #8266,
            closes #8250)
2021-05-27 18:05:14 +02:00
840f91f110 patch 8.2.2890: text property duplicated when data block splits
Problem:    Text property duplicated when data block splits.
Solution:   Do not continue text prop from previous line. (closes #8261)
2021-05-26 22:32:10 +02:00
c512599b22 patch 8.2.2889: typo and verbose comment in Makefiles
Problem:    Typo and verbose comment in Makefiles.
Solution:   Fix typo. Use @#. (Ken Takata, closes #8252)
2021-05-26 21:49:18 +02:00
7d840e9ac7 patch 8.2.2888: Vim9: "k" command recognized in Vim9 script
Problem:    Vim9: "k" command recognized in Vim9 script.
Solution:   Do not recognize "k" or "s" and "d" with flags.
2021-05-26 21:10:11 +02:00
4c8e8c6e19 patch 8.2.2887: crash when passing null string to fullcommand()
Problem:    Crash when passing null string to fullcommand().
Solution:   Check for NULL pointer. (closes #8256)
2021-05-26 19:49:09 +02:00
34fcb69724 patch 8.2.2886: various pieces of code not covered by tests
Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8255)
2021-05-25 20:14:00 +02:00
872bee557e patch 8.2.2885: searching for \%'> does not match linewise end of line
Problem:    searching for \%'> does not match linewise end of line. (Tim Chase)
Solution:   Match end of line if column is MAXCOL. (closes #8238)
2021-05-24 22:56:15 +02:00
1e469c72ee patch 8.2.2884: not enough cscope code is covered by tests
Problem:    Not enough cscope code is covered by tests.
Solution:   Add a few test cases. (Dominique Pellé, closes #8246)
2021-05-24 19:37:26 +02:00
e97c7c962c patch 8.2.2883: MS-Windows manifest file name is misleading
Problem:    MS-Windows manifest file name is misleading.
Solution:   Rename the file. (closes #8241)
2021-05-24 18:48:27 +02:00
15bbb8f4f3 patch 8.2.2882: Vim9: memory leak when lambda has an error
Problem:    Vim9: memory leak when lambda has an error.
Solution:   Free the list of argument types on failure.
2021-05-24 15:45:29 +02:00
611728f806 patch 8.2.2881: various pieces of code not covered by tests
Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8245)
2021-05-24 15:15:47 +02:00
ad5c178a19 patch 8.2.2880: unified diff fails if actually used
Problem:    Unified diff fails if actually used.
Solution:   Invoke :diffupdate in the test.  Fix the check for working external
            diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197)
2021-05-24 14:20:53 +02:00
f5409dbf66 patch 8.2.2879: file extension .hsig not recognized
Problem:    File extension .hsig not recognized.
Solution:   Use Haskell filetype for .hsig files. (Marcin Szamotulski,
            closes #8236)
2021-05-23 11:18:50 +02:00
b777da9be8 patch 8.2.2878: Vim9: for loop list unpack only allows for one "_"
Problem:    Vim9: for loop list unpack only allows for one "_".
Solution:   Drop the value when the variable is "_". (closes #8232)
2021-05-22 21:40:39 +02:00
1e615669c0 patch 8.2.2877: insufficient tests for popup menu rightleft
Problem:    Insufficient tests for popup menu rightleft.
Solution:   Add tests. (Yegappan Lakshmanan, closes #8235)
2021-05-22 17:12:46 +02:00
23c0192166 patch 8.2.2876: configure cannot detect Python 3.10
Problem:    Configure cannot detect Python 3.10.
Solution:   Use sys.version_info. (closes #8233)
2021-05-21 11:43:58 +02:00
5cf94577cf patch 8.2.2875: cancelling inputlist() after a digit does not return zero
Problem:    Cancelling inputlist() after a digit does not return zero.
Solution:   Always return zero when cancelling. (closes #8231)
2021-05-20 21:14:20 +02:00
4eb1914e1b patch 8.2.2874: MS-Windows: screen redraws too often
Problem:    MS-Windows: screen redraws too often.
Solution:   Do not redraw when peeking for a character. (closes #8230,
            closes #8211)
2021-05-20 11:54:10 +02:00
46aa6f93ac patch 8.2.2873: not enough tests for writing buffers
Problem:    Not enough tests for writing buffers.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8229)
2021-05-19 17:15:04 +02:00
56c9fd0107 patch 8.2.2872: Python tests fail without the channel feature
Problem:    Python tests fail without the channel feature.
Solution:   Add a feature check. (Dominique Pellé, closes #8226)
2021-05-19 00:16:14 +02:00
4781d6fd86 patch 8.2.2871: unnessary VIM_ISDIGIT() calls, badly indented code
Problem:    Unnessary VIM_ISDIGIT() calls, badly indented code.
Solution:   Call skipdigits() on the next character.  Improve indenting.
            (Dominique Pellé, closes #8227)
2021-05-18 21:46:31 +02:00
796139ae3a patch 8.2.2870: CmdlineChange event triggered twice for CTRL-R
Problem:    CmdlineChange event triggered twice for CTRL-R.
Solution:   Return CMDLINE_NOT_CHANGED from cmdline_insert_reg().
            (closes #8219)
2021-05-18 21:38:45 +02:00
485b627100 patch 8.2.2869: using unified diff is not tested
Problem:    Using unified diff is not tested.
Solution:   Test all cases also with unified diff. (issue #8197)
2021-05-18 19:19:03 +02:00
cbe178e3dc patch 8.2.2868: Vim9: when executing compiled expression trylevel is changed
Problem:    Vim9: When executing a compiled expression the trylevel at start
            is changed but not restored. (closes #8214)
Solution:   Restore the trylevel at start.
2021-05-18 17:49:59 +02:00
082a3bf961 patch 8.2.2867: build failure
Problem:    Build failure.
Solution:   Add missing part of the change.
2021-05-18 15:32:11 +02:00
ecb664501d patch 8.2.2866: Vim9: memory leak when using inline function
Problem:    Vim9: memory leak when using inline function.
Solution:   Remember what strings to free.
2021-05-18 15:09:18 +02:00
d87c21a918 patch 8.2.2865: skipping over function body fails
Problem:    Skipping over function body fails.
Solution:   Do not define the function when skipping.
2021-05-18 13:40:33 +02:00
074f84c01f patch 8.2.2864: Vim9: crash when using inline function
Problem:    Vim9: crash when using inline function.
Solution:   Check for NULL pointer. Make using inline function work inside
            lambda. (closes #8217)
2021-05-18 11:47:44 +02:00
965c04486c patch 8.2.2863: removing a text property does not redraw optimally
Problem:    Removing a text property does not redraw optimally.
Solution:   Only redraw the lines that mithg actually have been changed.
2021-05-17 00:22:06 +02:00
fc643e6016 patch 8.2.2862: removing a text property causes the whole window to be redawn
Problem:    Removing a text property causes the whole window to be redawn.
Solution:   Use changed_lines_buf() to only redraw the affected lines.
2021-05-17 00:15:18 +02:00
3b1373b193 patch 8.2.2861: Vim9: "legacy return" is not recognized as a return statement
Problem:    Vim9: "legacy return" is not recognized as a return statement.
Solution:   Specifically check for a return command. (closes #8213)
2021-05-17 00:01:42 +02:00
1764faa386 patch 8.2.2860: adding a text property causes the whole window to be redawn
Problem:    Adding a text property causes the whole window to be redawn.
Solution:   Use changed_lines_buf() to only redraw the affected lines.
2021-05-16 20:18:57 +02:00
dcfc311198 patch 8.2.2859: Tcl test fails because of changed error message
Problem:    Tcl test fails because of changed error message.
Solution:   Adjust the expected error message.
2021-05-16 20:06:59 +02:00
6b02b38ed0 patch 8.2.2858: test fails because of changed error message
Problem:    Test fails because of changed error message.
Solution:   Adjust the expected error message.
2021-05-16 16:19:37 +02:00
ff65288aa8 patch 8.2.2857: Vim9: exception in ISN_INSTR caught at wrong level
Problem:    Vim9: exception in ISN_INSTR caught at wrong level.
Solution:   Set the starting trylevel in exec_instructions(). (closes #8214)
2021-05-16 15:24:49 +02:00
3ec3217f04 Update runtime files 2021-05-16 12:39:47 +02:00
50157ef1c2 patch 8.2.2856: get readonly error for device that can't be written to
Problem:    Get readonly error for device that can't be written to.
Solution:   Check for being able to write first. (closes #8205)
2021-05-15 23:21:05 +02:00
0820f4de58 patch 8.2.2855: white space after "->" does not give E274
Problem:    White space after "->" does not give E274.
Solution:   Do not skip white space in legacy script. (closes #8212)
2021-05-15 20:06:58 +02:00
30e3de21fc patch 8.2.2854: custom statusline cannot contain % items
Problem:    Custom statusline cannot contain % items.
Solution:   Add "%{% expr %}". (closes #8190)
2021-05-15 17:23:28 +02:00
d832c3c56e patch 8.2.2853: window is not updated after using <Cmd> mapping
Problem:    Window is not updated after using <Cmd> mapping.
Solution:   So jump to cmdline_changed but skip autocommand.
2021-05-15 15:09:06 +02:00
761ead497f patch 8.2.2852: configure can add --as-needed a second time
Problem:    Configure can add --as-needed a second time.
Solution:   Only add --as-needed if not already there.  (Natanael Copa,
            closes #8189, closes #8181)
2021-05-15 14:25:37 +02:00
847fe7d750 patch 8.2.2851: using <Cmd> mapping on the command line triggers CmdlineChanged
Problem:    Using <Cmd> mapping on the command line triggers CmdlineChanged.
            (Naohiro Ono)
Solution:   Jump to cmdline_not_changed if the command line didn't change.
            (closes #8208)
2021-05-15 13:19:16 +02:00
71c6f7a665 patch 8.2.2850: recalling commands from history is not tested
Problem:    Recalling commands from history is not tested.
Solution:   Add tests. (closes #8194)
2021-05-13 20:23:10 +02:00
36f96a5151 patch 8.2.2849: bufwrite not sufficiently tested
Problem:    Bufwrite not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8192)
2021-05-13 18:33:16 +02:00
fe8ebdbe5c patch 8.2.2848: crash whn calling partial
Problem:    Crash whn calling partial.
Solution:   Check for NULL pointer. (Dominique Pellé, closes #8202)
2021-05-13 14:55:55 +02:00
588cf7547b patch 8.2.2847: Perl not tested sufficiently
Problem:    Perl not tested sufficiently.
Solution:   Add test.  Also test W17. (Dominique Pellé, closes #8193)
2021-05-10 23:49:39 +02:00
68db996b62 patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Problem:    Vim9: "echo Func()" does not give an error for a function without
            a return value.
Solution:   Give an error.  Be more specific about why a value is invalid.
2021-05-09 23:19:22 +02:00
918b08957c patch 8.2.2845: MS-Windows: warning for signed/unsigned comparison
Problem:    MS-Windows: warning for signed/unsigned comparison.
Solution:   Add type cast.
2021-05-08 20:09:24 +02:00
24f720998f patch 8.2.2844: Vim9: memory leak when using searchpair()
Problem:    Vim9: memory leak when using searchpair().
Solution:   Free the v_instr field.
2021-05-07 20:43:54 +02:00
f06ab6ba38 patch 8.2.2843: Vim9: skip argument to searchpairpos() is not compiled
Problem:    Vim9: skip argument to searchpairpos() is not compiled.
Solution:   Handle like searchpair().  Also for search() and searchpos().
2021-05-07 19:44:21 +02:00
f18332fb9e patch 8.2.2842: Vim9: skip argument to searchpair() is not compiled
Problem:    Vim9: skip argument to searchpair() is not compiled.
Solution:   Add VAR_INSTR.
2021-05-07 17:55:55 +02:00
e08795e1ec patch 8.2.2841: MS-Windows: cursor wrong when 'lz' and 'stl' are set
Problem:    MS-Windows: cursor in wrong position when 'lazyredraw' and
            'statusline' are set.
Solution:   Call compute_cmdrow(). (closes #8170, closes #8184)
2021-05-07 15:00:17 +02:00
261417b872 patch 8.2.2840: Vim9: member operation not fully tested
Problem:    Vim9: member operation not fully tested.
Solution:   Add a few tests.
2021-05-06 21:04:55 +02:00
5631836975 patch 8.2.2839: default redirection missing "ash" and "dash"
Problem:    Default redirection missing "ash" and "dash".
Solution:   Recognize "ash" and "dash". (Natanael Copa, closes #8180)
2021-05-06 18:46:35 +02:00
e3e598e82b patch 8.2.2838: file extension .wrap not recognized
Problem:    File extension .wrap not recognized.
Solution:   Use dosini filetype for .wrap files. (Liam Beguin, closes #8177)
2021-05-06 17:45:22 +02:00
6d37e8e3ba patch 8.2.2837: various code lines not covered by tests
Problem:    Various code lines not covered by tests.
Solution:   Add test cases. (Dominique Pellé, closes #8178)
2021-05-06 17:36:55 +02:00
b7c978154e patch 8.2.2836: build failure without the +quickfix feature
Problem:    Build failure without the +quickfix feature. (John Marriott)
Solution:   Add #ifdef.
2021-05-05 22:51:39 +02:00
dc3e2e65c9 patch 8.2.2835: Vim9: leaking memory in :cexpr
Problem:    Vim9: leaking memory in :cexpr.
Solution:   Also free the command line copy.
2021-05-05 22:40:56 +02:00
5f7d4c049e patch 8.2.2834: Vim9: :cexpr does not work with local variables
Problem:    Vim9: :cexpr does not work with local variables.
Solution:   Compile :cexpr.
2021-05-05 21:31:39 +02:00
3a00659db7 patch 8.2.2833: two key command cancelled by moving mouse when using popup
Problem:    Two key command cancelled by moving mouse when using popup.
            (Sergey Vlasov)
Solution:   Ignore K_MOUSEMOVE in plain_vgetc().
2021-05-05 19:58:17 +02:00
1ad72c8eb6 patch 8.2.2832: operator cancelled by moving mouse when using popup
Problem:    Operator cancelled by moving mouse when using popup. (Sergey
            Vlasov)
Solution:   Do not trigger an operator for a mouse move events. (closes #8176)
2021-05-04 21:56:28 +02:00
0279510444 patch 8.2.2831: Vim9: expandcmd() not tested
Problem:    Vim9: expandcmd() not tested.
Solution:   Add a test.
2021-05-03 21:40:26 +02:00
ad43199572 patch 8.2.2830: terminal colors are not updated when 'background' is set
Problem:    Terminal colors are not updated when 'background' is set.
Solution:   Call term_update_colors() for all terminals. (Marcin Szamotulski,
            closes #8171, closes #8150)
2021-05-03 20:40:38 +02:00
df36514a64 patch 8.2.2829: some comments are not correct or clear
Problem:    Some comments are not correct or clear.
Solution:   Adjust the comments.  Add test for cursor position.
2021-05-03 20:01:45 +02:00
97a6c6a1fb patch 8.2.2828: Coverity complains about not checking rename() return value
Problem:    Coverity complains about not checking the rename() return value.
Solution:   Add "(void)", can't do anything in case of a failure.
2021-05-03 19:49:51 +02:00
5f8ed7408a patch 8.2.2827: test file was not deleted
Problem:    Test file was not deleted.
Solution:   Uncomment the delete() call. (Dominique Pellé, closes #8172)
2021-05-03 19:08:37 +02:00
551c1aed65 patch 8.2.2826: compiler warnings for int to size_t conversion
Problem:    Compiler warnings for int to size_t conversion. (Randall W.
            Morris)
Solution:   Add type casts.
2021-05-03 18:57:05 +02:00
2bf6034e5c patch 8.2.2825: code in checkreadonly() not fully tested
Problem:    Code in checkreadonly() not fully tested.
Solution:   Add more tests. (Dominique Pellé, closes #8169)
2021-05-02 20:16:24 +02:00
1bb0da25a6 patch 8.2.2824: MS-Windows: build failure with MSVC
Problem:    MS-Windows: build failure with MSVC.
Solution:   Adjust the list of distributed files.  Add hint about python.
            Adjust path for reading runtime files.
2021-05-02 19:15:05 +02:00
4c295027a4 Update runtime files 2021-05-02 17:19:11 +02:00
5f628a12e5 patch 8.2.2823: MS-Windows: launching Vim from installer doesn't open README
Problem:    MS-Windows: launching Vim from installer doesn't open README.
Solution:   Adjust the quotes.
2021-05-02 13:59:46 +02:00
4a22897591 patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregistering
Problem:    MS-Windows: unnessarily loading libraries when unregistering OLE.
Solution:   Also skip loading libraries when invoked with "-unregister".  Run
            Vim for README.txt with user privileges.
2021-05-01 22:41:39 +02:00
3d0e7a956a patch 8.2.2821: MS-Windows: unnessarily loading libraries when registering OLE
Problem:    MS-Windows: unnessarily loading libraries when registering OLE.
Solution:   Skip loading libraries when invoked with "-register".
2021-05-01 17:46:03 +02:00
b6c2e9a010 patch 8.2.2820: session file may divide by zero
Problem:    Session file may divide by zero.
Solution:   Avoid writing difide by zero. (closes #8162)
2021-04-30 21:37:51 +02:00
4934ed34c3 patch 8.2.2819: finishing an abbreviation with multi-byte char may not work
Problem:    Finishing an abbreviation with a multi-byte char may not work.
Solution:   Escape K_SPECIAL in the typed character. (closes #8160)
2021-04-30 19:43:11 +02:00
aeed2a6359 patch 8.2.2818: no jump added when opening terminal in current window
Problem:    No jump added to jumplist when opening terminal in current window.
Solution:   Call setpcmark(). (closes #8158)
2021-04-29 20:18:45 +02:00
227c58a486 patch 8.2.2817: Vim9: script sourcing continues after an error
Problem:    Vim9: script sourcing continues after an error.
Solution:   Make an error in any command in "vim9script" abort sourcing.
2021-04-28 20:40:44 +02:00
03717bf6a2 patch 8.2.2816: Vim9: comment below expression in lambda causes problems
Problem:    Vim9: comment below expression in lambda causes problems.
Solution:   Use a single space for empty and comment lines. (closes #8156)
2021-04-28 20:00:40 +02:00
b80d2fb0e7 patch 8.2.2815: status line flickers when redrawing popup menu info
Problem:    Status line flickers when redrawing popup menu info.
Solution:   Do not redraw the status line when the focus is in the popup
            window. (issue #8144)
2021-04-27 20:06:57 +02:00
b06b50dfa0 patch 8.2.2814: Vim9: unused variable
Problem:    Vim9: unused variable. (John Marriott)
Solution:   Adjust #ifdef.
2021-04-26 21:39:25 +02:00
bb01a1ef3a patch 8.2.2813: cannot grep using fuzzy matching
Problem:    Cannot grep using fuzzy matching.
Solution:   Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes #8152)
2021-04-26 21:17:52 +02:00
5930ddcd25 patch 8.2.2812: Vim9: still crash when using substitute expression
Problem:    Vim9: still crash when using substitute expression.
Solution:   Put the instruction list in the stack frame. (closes #8154)
2021-04-26 20:32:59 +02:00
b98cec28d9 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Problem:    Vim9: error for missing white space doesn't say where it is
            missing
Solution:   Mention the command. (closes #8149)
2021-04-25 16:35:55 +02:00
d386e923c7 patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Problem:    Vim9: crash when calling a function in a substitute expression.
Solution:   Set the instructions back to the substitute expression
            instrunctions. (closes #8148)
2021-04-25 14:48:49 +02:00
dc4c2309f2 patch 8.2.2809: Vim9: :def function compilation fails when using :legacy
Problem:    Vim9: :def function compilation fails when using :legacy.
Solution:   Reset CMOD_LEGACY when compiling a function. (closes #8137)
2021-04-25 13:54:42 +02:00
730bf30020 patch 8.2.2808: Vim9: increment and decrement not sufficiently tested
Problem:    Vim9: increment and decrement not sufficiently tested.
Solution:   Add assertions.
2021-04-24 20:43:56 +02:00
340c59ec6f patch 8.2.2807: build fails with tiny features
Problem:    Build fails with tiny features.
Solution:   Use a dummy function for ex_incdec().
2021-04-24 20:37:03 +02:00
bdc0f1c698 patch 8.2.2806: Vim9: using "++nr" as a command might not work
Problem:    Vim9: using "++nr" as a command might not work.
Solution:   Do not recognize "++" and "--" in a following line as addition or
            subtraction.
2021-04-24 19:08:24 +02:00
96cf4ba8fb patch 8.2.2805: Vim9: cannot use legacy syntax in Vim9 script
Problem:    Vim9: cannot use legacy syntax in Vim9 script.
Solution:   Add the :legacy command.
2021-04-24 14:15:41 +02:00
7ba1e4d363 patch 8.2.2804: setting buffer local mapping with mapset() changes global
Problem:    Setting buffer local mapping with mapset() changes global mapping.
Solution:   Only set the local mapping. (closes #8143)
2021-04-24 13:12:38 +02:00
e0c03c8e10 patch 8.2.2803: flicker when the popup menu has an info popup
Problem:    Flicker when the popup menu has an info popup.
Solution:   Avoid drawing over the popup when it's going to be redrawn in the
            same position. (closes #8131)  Also avoid redrawing the scrollbar.
2021-04-23 21:01:34 +02:00
a6aa16423f patch 8.2.2802: Vim9: illegal memory access
Problem:    Vim9: illegal memory access.
Solution:   Check for comment before checking for white space. (closes #8142)
2021-04-23 19:32:23 +02:00
f6d9935a13 patch 8.2.2801: free Pascal makefile not recognized
Problem:    Free Pascal makefile not recognized.
Solution:   Add the fpcmake filetype. (Doug Kearns)
2021-04-23 18:06:48 +02:00
9f28416e54 patch 8.2.2800: after a timer displays text a hit-enter prompt is given
Problem:    After a timer displays text a hit-enter prompt is given.
Solution:   Reset msg_didany and need_wait_return. (closes #8136)
2021-04-22 21:39:30 +02:00
11e3c5ba82 Update runtime files 2021-04-21 18:09:37 +02:00
459fbdbf92 patch 8.2.2799: Vim9: type casts don't fully work at the script level
Problem:    Vim9: type casts don't fully work at the script level.
Solution:   Implement the missing piece.
2021-04-21 17:57:26 +02:00
a369c3d9c1 patch 8.2.2798: Vim9: redir to variable with append does not accept an index
Problem:    Vim9: redir to variable with append does not accept an index.
Solution:   Make the appending work.
2021-04-21 16:00:10 +02:00
2d5f385cee patch 8.2.2797: Search highlight disappears in the Visual area
Problem:    Search highlight disappears in the Visual area.
Solution:   Combine the search attributes. (closes #8134)
2021-04-21 15:11:42 +02:00
753bcf8c7d patch 8.2.2796: Vim9: redir to variable does not accept an index
Problem:    Vim9: redir to variable does not accept an index.
Solution:   Make the index work.
2021-04-21 14:24:24 +02:00
169502fb0b patch 8.2.2795: Coverity warns for not using return value
Problem:    Coverity warns for not using return value.
Solution:   Check the return value of compiling the substitute expression.
2021-04-21 12:19:35 +02:00
16678eb50f patch 8.2.2794: Linux users don't know how to get ncurses
Problem:    Linux users don't know how to get ncurses.
Solution:   Add the name of the package. (closes #8132)
2021-04-21 11:57:59 +02:00
d23f8bde5c patch 8.2.2793: MS-Windows: string literals are writable with MSVC
Problem:    MS-Windows: string literals are writable with MSVC.
Solution:   Add the /GF compiler flag.  Make mch_write() safer. (Ken Takata,
            closes #8133)
2021-04-21 11:30:48 +02:00
9ce47ec0b6 patch 8.2.2792: Vim9: :disas shows instructions for default args but no text
Problem:    Vim9: :disas shows instructions for default args but no text.
Solution:   Show the expression test above the default argument instructions.
            (closes #8129)
2021-04-20 22:16:39 +02:00
5c787fb792 patch 8.2.2791: Vim9: memory leak when using \=expr in :substitute
Problem:    Vim9: memory leak when using \=expr in :substitute.
Solution:   Do not allocate a new instruction list.
2021-04-20 21:49:35 +02:00
63276685f9 patch 8.2.2790: filetype test fails
Problem:    filetype test fails
Solution:   Also update the scripts detection
2021-04-20 21:14:09 +02:00
8238f08838 patch 8.2.2789: Vim9: using \=expr in :substitute does not handle jumps
Problem:    Vim9: using \=expr in :substitute does not handle jumps.
Solution:   Start with instruction count zero. (closes #8128)
2021-04-20 21:10:48 +02:00
3f88e71fa2 patch 8.2.2788: Raku is now the only name what once was called perl6
Problem:    Raku is now the only name what once was called perl6.
Solution:   Adjust the filetype detection. (closes #8120)
2021-04-20 20:21:23 +02:00
6d4c1c7ba8 patch 8.2.2787: MS-Windows: crash when using :echoconsole
Problem:    MS-Windows: crash when using :echoconsole.
Solution:   Do not write a NUL when it's already there.
2021-04-20 10:33:28 +02:00
4f2df37a0d patch 8.2.2786: Vim9: memory leak when using :s with expression
Problem:    Vim9: memory leak when using :s with expression.
Solution:   Clean up the instruction list.
2021-04-19 21:06:31 +02:00
2d1c57ed3d patch 8.2.2785: Vim9: cannot redirect to local variable
Problem:    Vim9: cannot redirect to local variable.
Solution:   Compile :redir when redirecting to a variable.
2021-04-19 20:50:03 +02:00
4c13721482 patch 8.2.2784: Vim9: cannot use \=expr in :substitute
Problem:    Vim9: cannot use \=expr in :substitute.
Solution:   Compile the expression into instructions and execute them when
            invoked.
2021-04-19 16:48:48 +02:00
e8209b91b9 patch 8.2.2783: duplicate code for setting byte in blob, blob test may fail
Problem:    Duplicate code for setting byte in blob, blob test may fail.
Solution:   Call blob_set_append().  Test sort failure with "N".
2021-04-18 16:08:52 +02:00
39211cba72 patch 8.2.2782: Vim9: blob operations not fully tested
Problem:    Vim9: blob operations not fully tested.
Solution:   Make more blob tests run in Vim9 script.  Fix filter().  Make
            insert() give an error for a null blob, like add().
2021-04-18 15:48:04 +02:00
b7c21afef1 patch 8.2.2781: add() silently skips when adding to null list or blob
Problem:    Add() silently skips when adding to null list or blob.
Solution:   Give an error in Vim9 script.  Allocate blob when it is NULL like
            with list and dict.
2021-04-18 14:12:31 +02:00
d551d6c268 patch 8.2.2780: Vim9: for loop over blob doesn't work
Problem:    Vim9: for loop over blob doesn't work.
Solution:   Make it work.
2021-04-18 13:15:58 +02:00
f7e92aae15 patch 8.2.2779: memory access error in remove() for blob
Problem:    Memory access error in remove() for blob.
Solution:   Adjust length for memmove().
2021-04-17 21:22:49 +02:00
d23b714d8b patch 8.2.2778: problem restoring 'packpath' in session
Problem:    Problem restoring 'packpath' in session.
Solution:   Let "skiprtp" also apply to 'packpath'.
2021-04-17 21:04:34 +02:00
51e933261b patch 8.2.2777: Vim9: blob operations not tested in all ways
Problem:    Vim9: blob operations not tested in all ways.
Solution:   Run tests with CheckLegacyAndVim9Success().  Make blob assign with
            index work.
2021-04-17 20:44:56 +02:00
0995c81f2f patch 8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright'
Problem:    :mksession uses current value of 'splitbelow' and 'splitright'
            even though "options" is not in 'sessionoptions'. (Maxim Kim)
Solution:   Save and restore the values, instead of setting to the current
            value. (closes #8119)
2021-04-17 18:38:54 +02:00
c70fe460b0 patch 8.2.2775: Vim9: wrong line number used for some commands
Problem:    Vim9: wrong line number used for some commands.
Solution:   For :exe, :echo and the like use the line number of the start of
            the command.  When calling a function set the line number in the
            script context.
2021-04-17 17:59:19 +02:00
6c7cc347af patch 8.2.2774: Vim9: cannot import an existing name even when using "as"
Problem:    Vim9: cannot import an existing name even when using "as".
Solution:   Do not check for an existing name when using "as". (closes #8113)
2021-04-17 16:38:50 +02:00
56994d2158 Update runtime files. 2021-04-17 16:31:09 +02:00
112a006417 patch 8.2.2773: PSL filetype not recognized
Problem:    PSL filetype not recognized.
Solution:   Add a filetype pattern. (Daniel Kho, closes #8117)
2021-04-17 14:06:39 +02:00
635bd60804 patch 8.2.2772: problems when restoring 'runtimepath' from a session file
Problem:    Problems when restoring 'runtimepath' from a session file.
Solution:   Add the "skiprtp" item in 'sessionoptions'.
2021-04-16 19:58:22 +02:00
aa1959bd5e patch 8.2.2771: Vim9: assignment not recognized if declaration was skipped
Problem:    Vim9: assignment not recognized if declaration was skipped.
Solution:   Also recognized an assignment if the variable does not exist.
            (closes #8108)
2021-04-15 22:13:39 +02:00
fe090eb58f patch 8.2.2770: Vim9: type of loop variable is not used
Problem:    Vim9: type of loop variable is not used.
Solution:   Parse and check the variable type. (closes #8107)
2021-04-15 21:48:32 +02:00
6bc00699c5 patch 8.2.2769: Modula-3 config files are not recognized
Problem:    Modula-3 config files are not recognized.
Solution:   Add filetype patterns. (Doug Kearns)
2021-04-15 14:29:17 +02:00
f387f5dfbc patch 8.2.2768: Vim9: memory leak with blob range error
Problem:    Vim9: memory leak with blob range error.
Solution:   Jump to end instead of returning.
2021-04-15 13:42:21 +02:00
bd6406f15d patch 8.2.2767: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Remove the argument.
2021-04-14 21:30:06 +02:00
b141926890 patch 8.2.2766: test failure
Problem:    Test failure.
Solution:   Add change to Vim9 compilation error message.
2021-04-14 20:54:07 +02:00
0e3ff19196 patch 8.2.2765: Vim9: not all blob operations work
Problem:    Vim9: not all blob operations work.
Solution:   Run more tests also with Vim9 script and :def functions.  Fix what
            doesn't work.
2021-04-14 20:35:23 +02:00
b47bed2f7a patch 8.2.2764: memory leak when default function argument is allocated
Problem:    Memory leak when default function argument is allocated.
Solution:   Free the expression result.
2021-04-14 17:06:43 +02:00
a3589a0d6c patch 8.2.2763: Vim9: cannot use type in for loop unpack at script level
Problem:    Vim9: cannot use type in for loop unpack at script level.
Solution:   Advance over the type name.
2021-04-14 13:30:46 +02:00
f62d73933a patch 8.2.2762: Vim9: function line truncated when compiling
Problem:    Vim9: function line truncated when compiling.
Solution:   Copy the line before processing it. (closes #8101)
2021-04-14 12:40:00 +02:00
2e240bd428 patch 8.2.2761: using "syn include" does not work properly
Problem:    Using "syn include" does not work properly.
Solution:   Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung,
            closes #8104)
2021-04-14 11:15:08 +02:00
f6a8d420a8 patch 8.2.2760: Vim9: no error for changing a for loop variable
Problem:    Vim9: no error for changing a for loop variable.
Solution:   Make the loop variable read-only. (issue #8102)
2021-04-13 21:48:03 +02:00
f2253963c2 patch 8.2.2759: Vim9: for loop infers type of loop variable
Problem:    Vim9: for loop infers type of loop variable.
Solution:   Do not get the member type. (closes #8102)
2021-04-13 20:53:13 +02:00
f48b2fa33c patch 8.2.2758: Vim9: wrong line number for autoload function with wrong name
Problem:    Vim9: wrong line number for autoload function with wrong name.
Solution:   Set and restore SOURCING_LNUM. (closes #8100)
2021-04-12 22:02:36 +02:00
68452177ca patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Problem:    Vim9: blob tests for legacy and Vim9 script are separate.
Solution:   Add CheckLegacyAndVim9Success().  Make blob index assign work.
2021-04-12 21:21:02 +02:00
cfc3023cb6 patch 8.2.2756: Vim9: blob index and slice not implemented yet
Problem:    Vim9: blob index and slice not implemented yet.
Solution:   Implement blob index and slice.
2021-04-11 20:26:34 +02:00
af8ea0d066 patch 8.2.2755: Vim9: no error for using a number in a condition
Problem:    Vim9: no error for using a number in a condition.
Solution:   Also use ISN_COND2BOOL if the type is t_number_bool.
            (closes #7644)
2021-04-11 18:24:46 +02:00
09f067fca3 patch 8.2.2754: :sleep! does not always hide the cursor
Problem:    :sleep! does not always hide the cursor.
Solution:   Add the cursor_is_asleep flag. (Jeremy Lerner, closes #8097,
            closes #7998)
2021-04-11 13:29:18 +02:00
f93bbd0262 patch 8.2.2753: Vim9: cannot ignore an item in assignment unpack
Problem:    Vim9: cannot ignore an item in assignment unpack.
Solution:   Allow using an underscore.
2021-04-10 22:35:43 +02:00
e8e3078184 patch 8.2.2752 2021-04-10 21:46:05 +02:00
fed9e830fc patch 8.2.2751: Coverity warns for using NULL pointer
Problem:    Coverity warns for using NULL pointer.
Solution:   Check for NULL in calling function.
2021-04-10 21:38:38 +02:00
da479c7597 patch 8.2.2750: Vim9: error for using underscore in nested function
Problem:    Vim9: error for using underscore in nested function.
Solution:   Do not consider "_" already defined. (closes #8096)
2021-04-10 21:01:38 +02:00
fe95b94ffa patch 8.2.2749: Vim9: test for error can be a bit flaky
Problem:    Vim9: test for error can be a bit flaky.
Solution:   Increase the wait time a bit.
2021-04-10 20:52:43 +02:00
c429769776 patch 8.2.2748: Vim9: memory leak when calling :def function fails
Problem:    Vim9: memory leak when calling :def function fails.
Solution:   Jump to failed_early instead of returning.
2021-04-10 20:46:48 +02:00
bb8a7ce0a1 patch 8.2.2747: Vim9: not always an error for too many function arguments
Problem:    Vim9: not always an error for too many function arguments.
Solution:   Check for getting too many arguments.
2021-04-10 20:10:26 +02:00
87795939d0 patch 8.2.2746: check for duplicate arguments does not work
Problem:    Check for duplicate arguments does not work.
Solution:   Correct condition.
2021-04-10 18:21:30 +02:00
51e7e78de7 patch 8.2.2745: Vim9: missing part of the argument change
Problem:    Vim9: missing part of the argument change.
Solution:   Add missing changes.
2021-04-10 17:46:52 +02:00
962c43bf0d patch 8.2.2744: Vim9: no way to explicitly ignore an argument
Problem:    Vim9: no way to explicitly ignore an argument.
Solution:   Use the underscore as the name for an ignored argument.
2021-04-10 17:18:09 +02:00
599410cb3c patch 8.2.2743: Vim9: function state stuck when compiling with ":silent!"
Problem:    Vim9: function state stuck when compiling with ":silent!".
Solution:   Check for uf_def_status to be UF_COMPILING.
2021-04-10 14:03:43 +02:00
701cc6ca9e patch 8.2.2742: Vim9: when compiling a function fails it is cleared
Problem:    Vim9: when compiling a function fails it is cleared.
Solution:   Keep the function lines, prevent execution with a different
            status. (closes #8093)
2021-04-10 13:33:48 +02:00
1088b69451 patch 8.2.2741: Vim9: Partial call does not check right arguments
Problem:    Vim9: Partial call does not check right arguments.
Solution:   Adjust the offset for whether the partial is before or after the
            arguments. (closes #8091)
2021-04-09 22:12:44 +02:00
2a38908b05 patch 8.2.2740: Vim9: lambda with varargs doesn't work
Problem:    Vim9: lambda with varargs doesn't work.
Solution:   Make "...name" work.  Require type to be a list.
2021-04-09 20:24:31 +02:00
767034c5b8 patch 8.2.2739: Vim9: a lambda accepts too many arguments at the script level
Problem:    Vim9: a lambda accepts too many arguments at the script level.
Solution:   Do not set uf_varargs in Vim9 script.
2021-04-09 17:24:52 +02:00
dcae51facc patch 8.2.2738: extending a list with itself can give wrong result
Problem:    Extending a list with itself can give wrong result.
Solution:   Remember the item before where the insertion happens and skip to
            after the already inserted items. (closes #1112)
2021-04-08 20:10:10 +02:00
d8db838392 patch 8.2.2737: status line not updated when local 'statusline' option set
Problem:    Status line not updated when local 'statusline' option set.
Solution:   Check the 'statusline' option of each window.
2021-04-08 18:27:53 +02:00
175a41c13f patch 8.2.2736: Vim9: for loop over string is a bit slow
Problem:    Vim9: for loop over string is a bit slow.
Solution:   Avoid using strlen().
2021-04-08 18:05:03 +02:00
fa5963880d patch 8.2.2735: Vim9: function reference found with prefix, not without
Problem:    Vim9: function reference found with prefix, not without.
Solution:   Also find function reference without prefix.
2021-04-07 21:58:16 +02:00
15e5e53ef2 patch 8.2.2734: Vim9: cannot use legacy script-local var from :def function
Problem:    Vim9: cannot use legacy script-local var from :def function.
Solution:   Do not insist on using "s:" prefix. (closes #8076)
2021-04-07 21:21:13 +02:00
130cbfc312 Update runtime files 2021-04-07 21:07:20 +02:00
125ed2745c patch 8.2.2733: detecting Lua version is not reliable
Problem:    Detecting Lua version is not reliable.
Solution:   Add "vim.lua_version". (Ozaki Kiichi, closes #8080)
2021-04-07 20:11:12 +02:00
e5b0b98a90 patch 8.2.2732: prompt for s///c in Ex mode can be wrong
Problem:    Prompt for s///c in Ex mode can be wrong.
Solution:   Position the cursor before showing the prompt. (closes #8073)
2021-04-07 19:42:57 +02:00
8dddc1f0e2 patch 8.2.2731: Mac: SF symbols are not displayed properly
Problem:    Mac: SF symbols are not displayed properly.
Solution:   Add custom range to list of double-width characters. (Yee Cheng
            Chin, closes #8077)
2021-04-07 19:00:25 +02:00
c9605f0595 patch 8.2.2730: Coverity complains about not restoring character
Problem:    Coverity complains about not restoring character.
Solution:   Also restore the character in case of an error.
2021-04-06 21:29:32 +02:00
643ce6c0c6 patch 8.2.2729: Vim9: wrong error message for referring to legacy script var
Problem:    Vim9: wrong error message for referring to legacy script variable.
Solution:   Do allow referring to a variable in legacy script without "s:" if
            it exists at compile time. (closes #8076)
2021-04-06 21:17:27 +02:00
e3d1f4c982 patch 8.2.2728: special key names don't work if 'isident' is cleared
Problem:    Special key names don't work if 'isident' is cleared.
Solution:   Add vim_isNormalIDc() and use it for special key names.
            (closes #2389)
2021-04-06 20:21:59 +02:00
e9b8b78e04 patch 8.2.2727: function test fails
Problem:    Function test fails.
Solution:   Adjust expected error number.
2021-04-06 20:18:29 +02:00
86cdb8a4bd patch 8.2.2726: confusing error message with white space before comma
Problem:    Confusing error message with white space before comma in the
            arguments of a function declaration.
Solution:   Give a specific error message. (closes #2235)
2021-04-06 19:01:03 +02:00
e8c4660a55 patch 8.2.2725: Vim9: message about compiling is wrong when using try/catch
Problem:    Vim9: message about compiling is wrong when using try/catch.
Solution:   Store the compiling flag with the message. (closes #8071)
2021-04-05 22:27:37 +02:00
0d351a04e1 patch 8.2.2724: Vim9: concatenating to list in dict not tested
Problem:    Vim9: concatenating to list in dict not tested.
Solution:   Add a test. (issue #8068)
2021-04-05 21:05:26 +02:00
58fb7c39a0 patch 8.2.2723: assignment test fails
Problem:    Assignment test fails.
Solution:   Adjust error number.
2021-04-05 20:59:41 +02:00
b9c0cd897a patch 8.2.2722: Vim9: crash when using LHS with double index
Problem:    Vim9: crash when using LHS with double index.
Solution:   Handle lhs_dest which is "dest_expr". (closes #8068)
            Fix confusing error message for missing dict item.
2021-04-05 20:51:00 +02:00
2927c07b0e patch 8.2.2721: Vim9: cannot have a linebreak inside a lambda
Problem:    Vim9: cannot have a linebreak inside a lambda.
Solution:   Compile the expression before the arguments.
2021-04-05 19:41:21 +02:00
01ac0a1f66 patch 8.2.2720: GTK menu tooltip moves the cursor
Problem:    GTK menu tooltip moves the cursor.
Solution:   Position the cursor after displaying the tooltip.  Do not show the
            tooltip when editing the command line.
2021-04-05 18:20:45 +02:00
e42939af87 patch 8.2.2719: Vim9: appending to dict item doesn't work in a :def function
Problem:    Vim9: appending to dict item doesn't work in a :def function.
Solution:   Implement assignment with operator on indexed item.
2021-04-05 17:11:17 +02:00
0865b15bc6 patch 8.2.2718: Vim9: no explicit test for using a global function without g:
Problem:    Vim9: no explicit test for using a global function without the g:
            prefix.
Solution:   Add a test case.
2021-04-05 15:38:51 +02:00
ce5b06a6a9 patch 8.2.2717: GTK menu items don't show a tooltip
Problem:    GTK menu items don't show a tooltip.
Solution:   Add a callback to show the tooltip. (Leonid V. Fedorenchik,
            closes #8067, closes #7810)
2021-04-05 14:13:20 +02:00
0b94e297af patch 8.2.2716: the equivalent class regexp is missing some characters
Problem:    The equivalent class regexp is missing some characters.
Solution:   Update the list of equivalent characters. (Dominique Pellé,
            closes #8029)
2021-04-05 13:59:53 +02:00
886e5e737d patch 8.2.2715: Vim9: tests fail without the channel feature
Problem:    Vim9: tests fail without the channel feature. (Dominique Pellé)
Solution:   Check for the channel feature. (closes #8063)
2021-04-05 13:36:34 +02:00
409da842db patch 8.2.2714: filetype pattern ending in star is too far up
Problem:    Filetype pattern ending in star is too far up.
Solution:   Move down to where patterns ending in star belong. (closes #8065)
2021-04-05 13:10:43 +02:00
68ffe8cade patch 8.2.2713: folding code not sufficiently tested
Problem:    Folding code not sufficiently tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #8064)
2021-04-05 12:47:25 +02:00
f2dd9cb995 patch 8.2.2712: memory leak when adding to a blob fails
Problem:    Memory leak when adding to a blob fails.
Solution:   Clear the second typval before returning.
2021-04-04 21:55:23 +02:00
3c49e74e18 patch 8.2.2711: "gj" in a closed fold does not move out of the fold
Problem:    "gj" in a closed fold does not move out of the fold. (Marco Hinz)
Solution:   Add a check for being in a closed fold. (closes #8062)
2021-04-04 21:26:04 +02:00
90193e6140 patch 8.2.2710: Vim9: not all tests cover script and :def function
Problem:    Vim9: not all tests cover script and :def function.
Solution:   Run tests in both if possible. Fix differences.
2021-04-04 20:49:50 +02:00
26af8e54ff patch 8.2.2709: the GTK GUI has a gap next to the scrollbar
Problem:    The GTK GUI has a gap next to the scrollbar.
Solution:   Calculate the scrollbar padding for GTK. (closes #8027)
2021-04-04 15:57:12 +02:00
3a6aadb328 patch 8.2.2708: test sometimes fails waiting for shell in terminal
Problem:    Test sometimes fails waiting for shell in terminal.
Solution:   Use WaitForAssert() so we can see the actual job status.  Use
            Run_shell_in_terminal().
2021-04-04 15:28:59 +02:00
ceb0619433 patch 8.2.2707: adding a lot of completions can still be a bit slow
Problem:    Adding a lot of completions can still be a bit slow.
Solution:   Add the check for CP_FAST. (Ben Jackson)
2021-04-04 15:05:22 +02:00
a7511c0f4f patch 8.2.2706: Vim9: wrong line number reported for boolean operator
Problem:    Vim9: wrong line number reported for boolean operator.
Solution:   Use the line number before skipping over line break.
            (closes #8058)
2021-04-03 21:47:07 +02:00
77709b194c patch 8.2.2705: Vim9: misleading reported line number for wrong type
Problem:    Vim9: misleading reported line number for wrong type.
Solution:   Remember and use the line number at the start. (closes #8059)
2021-04-03 21:01:01 +02:00
440cf096fa patch 8.2.2704: adding a lot of completions can be a bit slow
Problem:    Adding a lot of completions can be a bit slow.
Solution:   Use fast_breakcheck() instead of ui_breakcheck() when adding a
            list of completions. (Ben Jackson, closes #8061)
2021-04-03 20:13:30 +02:00
6e50ec2f0a patch 8.2.2703: Vim9: memory leak when failing on locked variable
Problem:    Vim9: memory leak when failing on locked variable.
Solution:   Free the memory.
2021-04-03 19:32:44 +02:00
c17ba791a9 patch 8.2.2702: compiler completion test fails when more scripts are added
Problem:    Compiler completion test fails when more scripts are added.
Solution:   Add a more generic pattern.
2021-04-03 19:07:05 +02:00
26f201345d patch 8.2.2701: order of removing FORTIFY_SOURCE is wrong
Problem:    Order of removing FORTIFY_SOURCE is wrong.
Solution:   Use the more specific pattern first.
2021-04-03 17:33:52 +02:00
6437475ffb patch 8.2.2700: nested autocmd test fails sometimes
Problem:    Nested autocmd test fails sometimes.
Solution:   Wait for the job to finish.
2021-04-03 17:22:29 +02:00
c48f2dc0be patch 8.2.2699: Lua test fails
Problem:    Lua test fails.
Solution:   Fix condition. (Yegappan Lakshmanan, closes #8060)
2021-04-03 17:18:52 +02:00
b9c6b6fb73 patch 8.2.2698: Lua test fails on MS-Windows
Problem:    Lua test fails on MS-Windows.
Solution:   Fall back to old method if "lua -v" doesn't work.
2021-04-03 15:35:50 +02:00
0df6030145 patch 8.2.2697: function list test fails
Problem:    Function list test fails.
Solution:   Add missing function. (Yegappan Lakshmanan)
2021-04-03 15:15:47 +02:00
f65ed86f6f patch 8.2.2696: Lua test fails with Lua 5.4.3 and later
Problem:    Lua test fails with Lua 5.4.3 and later.
Solution:   Check for different error messages. (Yegappan Lakshmanan,
            closes #8050)
2021-04-03 14:13:33 +02:00
1e6bbfb560 patch 8.2.2695: cursor position reset with nested autocommands
Problem:    Cursor position reset with nested autocommands.
Solution:   Only check and reset line numbers for not nested autocommands.
            (closes #5820)
2021-04-03 13:19:26 +02:00
5b8cabfef7 patch 8.2.2694: when 'matchpairs' is empty every character beeps
Problem:    When 'matchpairs' is empty every character beeps. (Marco Hinz)
Solution:   Bail out when no character in 'matchpairs' was found.
            (closes #8053)  Add assert_nobeep().
2021-04-02 18:55:57 +02:00
dcf29ac87f patch 8.2.2693: Vim9: locked script variable can be changed
Problem:    Vim9: locked script variable can be changed.
Solution:   Check legacy script variable for being locked. (issue #8031)
2021-04-02 14:44:02 +02:00
f5906aa780 patch 8.2.2692: Vim9: locked script variable can be changed
Problem:    Vim9: locked script variable can be changed.
Solution:   Check for locked value. (closes #8031)
2021-04-02 14:35:15 +02:00
3fa5e64e0e patch 8.2.2691: autoconf may mess up compiler flags
Problem:    Autoconf may mess up compiler flags.
Solution:   Handle removing FORTIFY_SOURCE a bit better. (Vladimir Lomov,
            closes #8049)
2021-04-02 13:30:59 +02:00
ef38bcf051 patch 8.2.2690: PowerShell files are not recognized
Problem:    PowerShell files are not recognized.
Solution:   Recognize several PowerShell extension. (Heath Stewart,
            closes #8051)
2021-04-02 13:00:15 +02:00
160a2b4dac patch 8.2.2689: tiny build fails
Problem:    Tiny build fails.
Solution:   Add #ifdef around use of p_stl.
2021-04-01 21:57:46 +02:00
ca51cc0a33 patch 8.2.2688: Vim9: crash when using s: for script variable
Problem:    Vim9: crash when using s: for script variable.
Solution:   Pass the end pointer. (closes #8045)
2021-04-01 21:38:53 +02:00
d877a5700f patch 8.2.2687: Vim9: cannot use "const" for global variable in :def function
Problem:    Vim9: cannot use "const" for global variable in :def function.
Solution:   Do allow using :const for a global variable. (closes #8030)
2021-04-01 19:42:48 +02:00
ce0b75711a patch 8.2.2686: status line is not updated when going to cmdline mode
Problem:    Status line is not updated when going to cmdline mode.
Solution:   Redraw status lines if 'statusline' is set and going to status
            line mode. (based on patch from Justin M. Keyes et al.,
            closes #8044)
2021-04-01 18:47:14 +02:00
49c51b825a patch 8.2.2685: custom statusline not drawn correctly with WinBar
Problem:    Custom statusline not drawn correctly with WinBar.
Solution:   Also adjust the column for the custom status line. (Yee Cheng
            Chin, closes #8047)
2021-04-01 16:16:18 +02:00
5c504f680e patch 8.2.2684: not enough folding code is tested
Problem:    Not enough folding code is tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #8046)
2021-04-01 13:39:51 +02:00
b91d3f857f patch 8.2.2683: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
2021-04-01 13:17:50 +02:00
529fb5a5f6 patch 8.2.2682: Vim9: cannot find Name.Func from "import * as Name"
Problem:    Vim9: cannot find Name.Func from "import * as Name". (Alexander
            Goussas)
Solution:   When no variable found try finding a function. (closes #8045)
            Check that the function was exported.
2021-04-01 12:57:57 +02:00
12be734faf patch 8.2.2681: Vim9: test fails for redeclaring script variable
Problem:    Vim9: test fails for redeclaring script variable.
Solution:   It's OK to assign to an existing script variable in legacy.
2021-03-31 21:47:33 +02:00
e535db86e7 patch 8.2.2680: Vim9: problem defining a script variable from legacy function
Problem:    Vim9: problem defining a script variable from legacy function.
Solution:   Check if the script is Vim9, not the current syntax.
            (closes #8032)
2021-03-31 21:07:24 +02:00
dad4473f02 Update runtime files. 2021-03-31 20:07:33 +02:00
ae0f151ddf patch 8.2.2679: status line missing for non-current window with winbar
Problem:    Winbar drawn over status line for non-current window with winbar
            if frame is zero height. (Leonid V. Fedorenchik)
Solution:   Do not draw the window if the frame height is zero. (closes #8037)
2021-03-30 22:12:12 +02:00
82820d9bf1 patch 8.2.2678: test for 'autoshelldir' does not reset the option
Problem:    Test for 'autoshelldir' does not reset the option.
Solution:   Reset the option after testing.
2021-03-30 20:54:28 +02:00
38a3bfa9a2 patch 8.2.2677: Vim9: cannot use only some of the default arguments
Problem:    Vim9: cannot use only some of the default arguments.
Solution:   Use v:none to use default argument value.  Remove
            uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504)
2021-03-29 22:14:55 +02:00
9ea7e55ab9 patch 8.2.2676: missing error message
Problem:    Missing error message.
Solution:   Add new error message.
2021-03-29 21:06:04 +02:00
8b9abfd86c patch 8.2.2675: directory change in a terminal window shell is not followed
Problem:    Directory change in a terminal window shell is not followed.
Solution:   Add the 'autoshelldir' option. (closes #6290)
2021-03-29 20:49:05 +02:00
9dbe701fe1 patch 8.2.2674: Motif: cancelling the font dialog resets the font
Problem:    Motif: cancelling the font dialog resets the font.
Solution:   When no font is selected to not change the font. (closes #7825,
            closes #8035)  Fix compiler warnings.
2021-03-29 20:10:26 +02:00
3215466af9 patch 8.2.2673: Vim9: script-local funcref can have lower case name
Problem:    Vim9: script-local funcref can have lower case name.
Solution:   Require an upper case name.
2021-03-28 21:14:06 +02:00
b2cb6c8bbd patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Problem:    Vim9: cannot use :lockvar and :unlockvar in compiled script.
Solution:   Implement locking support.
2021-03-28 20:38:34 +02:00
f6bdd82c7e patch 8.2.2671: error for line number in legacy script
Problem:    Error for line number in legacy script.
Solution:   Check for number type.
2021-03-28 16:26:41 +02:00
b2ac7d0663 patch 8.2.2670: Vim9: error for append(0, text)
Problem:    Vim9: error for append(0, text).
Solution:   Check for negative number. (closes #8022)
2021-03-28 15:46:16 +02:00
df749a2b9c patch 8.2.2669: command line completion does not work after "vim9"
Problem:    Command line completion does not work after "vim9".
Solution:   Include the "9". (Naohiro Ono, closes #8025)
2021-03-28 15:29:43 +02:00
f49a1fcdb9 patch 8.2.2668: Vim9: omitting "call" for "confirm()" does not give an error
Problem:    Vim9: omitting "call" for "confirm()" does not give an error.
Solution:   Do not recognize a modifier followed by "(".
2021-03-27 22:20:21 +01:00
24f21fdfca patch 8.2.2667: prop_find() cannot find item matching both id and type
Problem:    prop_find() cannot find item matching both id and type.
Solution:   Add the "both" argument. (Naohiro Ono, closes #8019)
2021-03-27 22:07:29 +01:00
c580943965 patch 8.2.2666: Vim9: not enough function arguments checked for string
Problem:    Vim9: not enough function arguments checked for string.
Solution:   Check in ch_logfile(), char2nr() and others.
2021-03-27 21:23:30 +01:00
7b45d46cf7 patch 8.2.2665: test failures
Problem:    Test failures.
Solution:   Check more specific feature.  Add missing change.
2021-03-27 19:09:02 +01:00
32105ae88f patch 8.2.2664: Vim9: not enough function arguments checked for string
Problem:    Vim9: not enough function arguments checked for string.
Solution:   Check in balloon functions.  Refactor function arguments.
2021-03-27 18:59:25 +01:00
79efa2e3b3 patch 8.2.2663: Vim9: leaking memory when inline function has an error
Problem:    Vim9: leaking memory when inline function has an error.
Solution:   Free the partially allocated function.
2021-03-27 15:40:11 +01:00
7007e31bde patch 8.2.2662: there is no way to avoid some escape sequences
Problem:    There is no way to avoid some escape sequences.
Solution:   Suppress escape sequences when the --not-a-term argument is used.
            (Gary Johnson)
2021-03-27 12:11:33 +01:00
bb5d87c850 patch 8.2.2661: leaking memory when looping over a string
Problem:    Leaking memory when looping over a string.
Solution:   Free the memory.
2021-03-26 22:15:26 +01:00
ccc25aa285 patch 8.2.2660: Vim9: no error for declaration with trailing text
Problem:    Vim9: no error for declaration with trailing text.
Solution:   Give an error. (closes #8014)
2021-03-26 21:27:52 +01:00
c61cb8bfe1 patch 8.2.2659: eval test fails because for loop on string works
Problem:    Eval test fails because for loop on string works.
Solution:   Check looping over function reference fails.
2021-03-26 20:56:45 +01:00
74e54fcb44 patch 8.2.2658: :for cannot loop over a string
Problem:    :for cannot loop over a string.
Solution:   Accept a string argument and iterate over its characters.
2021-03-26 20:41:29 +01:00
522eefd9a2 patch 8.2.2657: Vim9: error message for declaring variable in for loop
Problem:    Vim9: error message for declaring variable in for loop.
Solution:   Clear variables when entering block again. (closes #8012)
2021-03-26 18:49:22 +01:00
a2b3e7dc92 patch 8.2.2656: some command line arguments and regexp errors not tested
Problem:    Some command line arguments and regexp errors not tested.
Solution:   Add a few test cases. (Dominique Pellé, closes #8013)
2021-03-26 17:24:34 +01:00
0a1a6a1aa4 patch 8.2.2655: The -w command line argument doesn't work
Problem:    The -w command line argument doesn't work.
Solution:   Don't set 'window' when set with the -w argument. (closes #8011)
2021-03-26 14:14:18 +01:00
ff87140046 patch 8.2.2654: Vim9: getting a character from a string can be slow
Problem:    Vim9: getting a character from a string can be slow.
Solution:   Avoid a function call to get the character byte size. (#8000)
2021-03-26 13:34:05 +01:00
3a0f092ac0 patch 8.2.2653: build failure
Problem:    Build failure.
Solution:   Add missing changes.
2021-03-25 22:22:30 +01:00
fa984418e7 patch 8.2.2652: Vim9: can use command modifier without an effect
Problem:    Vim9: can use command modifier without an effect.
Solution:   Give an error for a misplaced command modifier.  Fix error message
            number.
2021-03-25 22:15:28 +01:00
a91a71322d patch 8.2.2651: Vim9: restoring command modifiers happens after jump
Problem:    Vim9: restoring command modifiers happens after jump.
Solution:   Move the restore instruction to before the jump. (closes #8006)
            Also handle for and while.
2021-03-25 21:12:15 +01:00
2fecb53115 patch 8.2.2650: Vim9: command modifiers not handled in nested function
Problem:    Vim9: command modifiers not handled in nested function.
Solution:   Keep function-local info in a structure and save it on the stack.
2021-03-24 22:00:56 +01:00
1ff89deeaa patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Problem:    Vim9: some wincmd arguments cause a white space error.
Solution:   Insert a space before the count. (closes #8001)
2021-03-24 20:08:12 +01:00
c54f347d63 patch 8.2.2648: terminal resize test sometimes hangs
Problem:    Terminal resize test sometimes hangs.
Solution:   Wait for the shell to display a prompt and other output.
2021-03-23 19:22:12 +01:00
f4a2ed0714 patch 8.2.2647: terminal test sometimes hangs
Problem:    Terminal test sometimes hangs.
Solution:   Wait for the shell to display a prompt.
2021-03-23 16:25:09 +01:00
f28f2ac425 patch 8.2.2646: Vim9: error for not using string doesn't mentionargument
Problem:    Vim9: error for not using string doesn't mention argument.
Solution:   Add argument number.
2021-03-22 22:21:26 +01:00
49f1e9ec3e patch 8.2.2645: using inline function is not properly tested
Problem:    Using inline function is not properly tested.
Solution:   Add test cases, esp. for errors.  Minor code improvements.
2021-03-22 20:49:02 +01:00
da1dbed0df patch 8.2.2644: prop_clear() causes a screen update even when nothing changed
Problem:    prop_clear() causes a screen update even when nothing changed.
Solution:   Only redraw when a property was cleared. (Dominique Pellé)
2021-03-22 19:43:34 +01:00
1f448d906b patch 8.2.2643: various code not covered by tests
Problem:    Various code not covered by tests.
Solution:   Add a few more test. (Yegappan Lakshmanan, closes #7995)
2021-03-22 19:37:06 +01:00
e98f60a591 patch 8.2.2642: Vim9: no clear error for wrong inline function
Problem:    Vim9: no clear error for wrong inline function.
Solution:   Check for something following the "{".
2021-03-22 18:22:30 +01:00
2cec027af4 patch 8.2.2641: display test fails because of lacking redraw
Problem:    Display test fails because of lacking redraw.
Solution:   Add a redraw command.
2021-03-22 17:30:47 +01:00
f1387285e2 patch 8.2.2640: screenstring() returns non-existing composing characters
Problem:    screenstring() returns non-existing composing characters.
Solution:   Only use composing characters if there is a base character.
2021-03-22 17:11:15 +01:00
5ea79a2599 patch 8.2.2639: build failure when fsync() is not available
Problem:    Build failure when fsync() is not available.
Solution:   Add #ifdef.
2021-03-22 16:45:35 +01:00
4c86830fc5 patch 8.2.2638: cannot write a message to the terminal from the GUI
Problem:    Cannot write a message to the terminal from the GUI.
Solution:   Add :echoconsole and use it in the test runner. (issue #7975)
2021-03-22 16:19:45 +01:00
09f8b3a022 patch 8.2.2637: prop_remove() causes a redraw even when nothing changed
Problem:    prop_remove() causes a redraw even when nothing changed.
Solution:   Only redraw if a property was removed.
2021-03-21 22:29:54 +01:00
67da21a147 patch 8.2.2636: memory leak when compiling inline function
Problem:    Memory leak when compiling inline function.
Solution:   Free the prefetched line.
2021-03-21 22:12:34 +01:00
7a6eaa06f9 patch 8.2.2635: Vim9: cannot define an inline function
Problem:    Vim9: cannot define an inline function.
Solution:   Make an inline function mostly work.
2021-03-21 20:53:29 +01:00
f90c855c71 patch 8.2.2634: 'tagfunc' does not indicate using a pattern
Problem:    'tagfunc' does not indicate using a pattern.
Solution:   Add the "r" flag. (Andy Massimino, closes #7982)
2021-03-21 14:49:57 +01:00
196a1f7409 patch 8.2.2633: multi-byte 'fillchars' for folding do not show properly
Problem:    Multi-byte 'fillchars' for folding do not show properly.
Solution:   Handle multi-byte characters correctly. (Yegappan Lakshmanan,
            closes #7983, closes #7955)
2021-03-21 14:39:19 +01:00
c5cf369e95 patch 8.2.2632: not all command line arguments are tested
Problem:    Not all command line arguments are tested.
Solution:   Add tests for -D and -serverlist. (Dominique Pellé, closes #7992)
2021-03-20 22:16:56 +01:00
a0c8aea479 patch 8.2.2631: commands from winrestcmd() do not always work properly
Problem:    Commands from winrestcmd() do not always work properly. (Leonid V.
            Fedorenchik)
Solution:   Repeat the size commands twice. (closes #7988)
2021-03-20 19:55:35 +01:00
592f57f5fe patch 8.2.2630: hard to see where a test gets stuck
Problem:    Hard to see where a test gets stuck.
Solution:   Print the executed test function. (Dominique Pellé, closes #7975)
2021-03-20 16:44:25 +01:00
a0399efa72 patch 8.2.2629: Vim9: error for #{{ is not desired
Problem:    Vim9: error for #{{ is not desired.
Solution:   Adjust the checks. (closes #7990)
2021-03-20 15:00:01 +01:00
5c7a299c16 patch 8.2.2628: Vim9: #{ can still be used at the script level
Problem:    Vim9: #{ can still be used at the script level.
Solution:   Give an error for #{ like in a :def function.
2021-03-20 13:29:38 +01:00
4355894869 patch 8.2.2627: no need to check for BSD after checking for not root
Problem:    No need to check for BSD after checking for not root.
Solution:   Remove CheckNotBSD. (Ozaki Kiichi, closes #7989)
2021-03-20 12:49:15 +01:00
240014321b patch 8.2.2626: GTK3: error when starting up and -geometry is given
Problem:    GTK3: error when starting up and -geometry is given. (Dominique
            Pellé)
Solution:   Use another function to get the monitor if the window has not been
            created yet. (closes #7978)
2021-03-20 12:36:46 +01:00
af125866db patch 8.2.2625: rss files not recognized
Problem:    Rss files not recognized.
Solution:   Recognize .rss as XML. (Kivin Locke, closes #7987)
2021-03-19 20:27:40 +01:00
74b99f6ab6 patch 8.2.2624: atom files not recognized
Problem:    Atom files not recognized.
Solution:   Recognize .atom as XML. (Kivin Locke, closes #7986)
2021-03-19 20:19:12 +01:00
17709e280a patch 8.2.2623: some tests fail when run as root
Problem:    Some tests fail when run as root.
Solution:   Use CheckNotRoot.
2021-03-19 14:38:12 +01:00
a555e6fcb6 patch 8.2.2622: GTK: error when starting up and -geometry is given
Problem:    GTK: error when starting up and -geometry is given. (Dominique
            Pellé)
Solution:   Use another function to get the monitor if the window has not been
            created yet. (closes #7978)
2021-03-18 22:28:57 +01:00
108cf0153c patch 8.2.2621: typval2type() cannot handle recursive structures
Problem:    typval2type() cannot handle recursive structures.
Solution:   Use copyID. (closes #7979)
2021-03-18 22:15:04 +01:00
4b3e1964d8 patch 8.2.2620: Vim9: Using #{ for a dictionary gives strange errors
Problem:    Vim9: Using #{ for a dictionary gives strange errors.
Solution:   Give an error when using #{ for a comment after a command.
2021-03-18 21:37:55 +01:00
5f91e74bf9 patch 8.2.2619: Vim9: no test for return type of lambda
Problem:    Vim9: no test for return type of lambda.
Solution:   Add a test.
2021-03-17 21:29:29 +01:00
3f32788000 patch 8.2.2618: Vim9: cannot use a normal list name to store function refs
Problem:    Vim9: cannot use a normal list name to store function refs.
Solution:   Allow a lower case name if it is indexed.
2021-03-17 20:56:38 +01:00
8863bda25d patch 8.2.2617: Vim9: script variable in block not found by function
Problem:    Vim9: script variable in a block scope not found by a nested
            function.
Solution:   Copy the block scope IDs before compiling the function.
2021-03-17 18:42:08 +01:00
3e1916947d patch 8.2.2616: Vim9: if 'cpo' is change in Vim9 script it may be restored
Problem:    Vim9: if 'cpo' is change in Vim9 script it may be restored.
Solution:   Apply the changes to 'cpo' to the restored value.
2021-03-17 17:46:00 +01:00
a4c81bea38 patch 8.2.2615: test is sourcing the wrong file
Problem:    Test is sourcing the wrong file.
Solution:   Correct the file name.
2021-03-17 15:23:16 +01:00
c970e4225b patch 8.2.2614: Vim9: function is deleted while executing
Problem:    Vim9: function is deleted while executing.
Solution:   increment the call count, when more than zero do not delete the
            function but mark it as dead. (closes #7977)
2021-03-17 15:03:04 +01:00
6ccfd99b92 patch 8.2.2613: new test throws exception
Problem:    New test throws exception.
Solution:   Adjust the function cleanup.
2021-03-17 13:39:33 +01:00
18b7d86d7f patch 8.2.2612: col('.') may get outdated column value
Problem:    col('.') may get outdated column value.
Solution:   Add a note to the help how to make this work and add a test for
            it. (closes #7971)
2021-03-17 13:28:05 +01:00
f8c52e8d08 patch 8.2.2611: conditions for startup tests are not exactly right
Problem:    Conditions for startup tests are not exactly right.
Solution:   Check for type of GUI instead of MS-Windows. (Ozaki Kiichi,
            closes #7976)
2021-03-17 12:27:23 +01:00
1e448465e1 patch 8.2.2610: mouse click test fails when using remote connection
Problem:    Mouse click test fails when using remote connection.
Solution:   Use a larger 'mousetime'. (Dominique Pellé, closes #7968)
2021-03-16 21:17:16 +01:00
3214812997 patch 8.2.2609: test disabled on MS-Windows even though it should work
Problem:    Test disabled on MS-Windows even though it should work.
Solution:   Restore the condition for skipping the test. (Ken Takata,
            closes #7970)
2021-03-16 13:23:30 +01:00
f4fcedc59d patch 8.2.2608: character input not fully tested
Problem:    Character input not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #7963)
2021-03-15 18:36:20 +01:00
02b4d9b18a patch 8.2.2607: strcharpart() cannot include composing characters
Problem:    strcharpart() cannot include composing characters.
Solution:   Add the {skipcc} argument.
2021-03-14 19:46:45 +01:00
70ce8a1561 patch 8.2.2606: strchars() defaults to counting composing characters
Problem:    strchars() defaults to counting composing characters.
Solution:   Add strcharlen() which ignores composing characters.
2021-03-14 19:02:09 +01:00
0289a093a4 patch 8.2.2605: Vim9: string index and slice does not include composing chars
Problem:    Vim9: string index and slice does not include composing chars.
Solution:   Include composing characters. (issue #6563)
2021-03-14 18:40:19 +01:00
240309c9bf patch 8.2.2604: GUI-specific command line arguments not tested
Problem:    GUI-specific command line arguments not tested.
Solution:   Add tests for several arguments. (Dominique Pellé, closes #7962)
2021-03-14 16:20:37 +01:00
77b10ffad4 patch 8.2.2603: Vim9: no effect if user command is also a function
Problem:    Vim9: no effect if user command is also a function.
Solution:   Check for paren following. (closes #7960)
2021-03-14 13:21:35 +01:00
2e34c34be1 patch 8.2.2602: Vim9: continue doesn't work if :while is very first command
Problem:    Vim9: continue doesn't work if :while is very first command.
            (Yegappan Lakshmanan)
Solution:   Add one to the continue instruction index.
2021-03-14 12:13:33 +01:00
6bce5856b5 patch 8.2.2601: memory usage test often fails on FreeBSD
Problem:    Memory usage test often fails on FreeBSD.
Solution:   Increase multiplier for upper limit.
2021-03-13 22:11:51 +01:00
93e1cae739 patch 8.2.2600: Vim9: crash when putting an unknown type in a dictionary
Problem:    Vim9: crash when putting an unknown type in a dictionary.
            (Yegappan Lakshmanan)
Solution:   Handle a NULL type pointer.
2021-03-13 21:24:56 +01:00
edba70703b patch 8.2.2599: build failure
Problem:    Build failure.
Solution:   Add missing change.
2021-03-13 21:14:18 +01:00
6508880d6c patch 8.2.2598: Vim9: :open does not need to be supported
Problem:    Vim9: :open does not need to be supported.
Solution:   Do not support :open in Vim9 script.
2021-03-13 21:07:21 +01:00
cb4e80fab9 patch 8.2.2597: Vim9: "import * as" does not work at script level
Problem:    Vim9: "import * as" does not work at script level.
Solution:   Implement using an imported namespace.
2021-03-13 20:57:19 +01:00
41cd80335c patch 8.2.2596: :doautocmd may confuse scripts listening to WinEnter
Problem:    :doautocmd may confuse scripts listening to WinEnter.
Solution:   Do the current buffer last. (closes #7958)
2021-03-13 15:47:56 +01:00
9e813b3dea patch 8.2.2595: setting 'winminheight' may cause 'lines' to change
Problem:    Setting 'winminheight' may cause 'lines' to change.
Solution:   Also take minimal height of other tabpages into account. (#7899)
2021-03-13 14:29:05 +01:00
0756f757ed patch 8.2.2594: alternate buffer added to session file even when it's hidden
Problem:    Alternate buffer added to session file even when it's hidden.
Solution:   Check the 'buflisted' option. (closes #7951)
2021-03-13 13:52:33 +01:00
0de8e2d6a3 patch 8.2.2593: list of distributed files is incomplete
Problem:    List of distributed files is incomplete.
Solution:   Add a file and rename another.
2021-03-13 13:30:03 +01:00
c8cdf0f80b Update runtime files. 2021-03-13 13:28:13 +01:00
6fd367a97c patch 8.2.2592: code coverage could be improved
Problem:    Code coverage could be improved.
Solution:   Add a few more tests. (Dominique Pellé, closes #7957)
2021-03-13 13:14:04 +01:00
c80f647512 patch 8.2.2591: Poke files are not recognized
Problem:    Poke files are not recognized.
Solution:   Add a filetype entry. (Matt Ihlenfield)
2021-03-12 22:16:41 +01:00
12bce95887 patch 8.2.2590: Vim9: default argument value may cause internal error
Problem:    Vim9: default argument value may cause internal error.
Solution:   Hide later function arguments when compiling the expression.
            (closes #7948)
2021-03-11 20:04:04 +01:00
776b954622 patch 8.2.2589: recover test hangs in the GUI
Problem:    Recover test hangs in the GUI.
Solution:   Add g:skipped_reason to skip a _nocatch_ test.
2021-03-10 22:27:48 +01:00
23b32a8d6b patch 8.2.2588: build failure with tiny features
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.  Run recover test separately.
2021-03-10 21:55:46 +01:00
6635ae1437 patch 8.2.2587: recover test fails on FreeBSD
Problem:    Recover test fails on FreeBSD.
Solution:   Check for Linux.
2021-03-10 21:46:39 +01:00
f52f0606ed patch 8.2.2586: process id may be invalid
Problem:    Process id may be invalid.
Solution:   Use sysinfo.uptime to check for recent reboot. (suggested by Hugo
            van der Sanden, closes #7947)
2021-03-10 21:26:37 +01:00
c23555de34 patch 8.2.2585: Vim9: illegal memory access
Problem:    Vim9: illegal memory access.
Solution:   Check byte right after "null", not one more.
2021-03-10 19:04:07 +01:00
d345fb9216 patch 8.2.2584: Vim9: type error for assigning "any" to a list
Problem:    Vim9: type error for assigning the result of list concatenation to
            a list.
Solution:   Do not consider concatenation result in a constant. (closes #7942)
2021-03-10 18:43:09 +01:00
7ad67d1150 patch 8.2.2583: Vim9: cannot compare result of getenv() with null
Problem:    Vim9: cannot compare result of getenv() with null.
Solution:   Make the return type of getenv() "any". (closes #7943)
2021-03-10 16:08:26 +01:00
ffb7dcdb77 patch 8.2.2582: Vim9: screendump test fails on MS-Windows
Problem:    Vim9: screendump test fails on MS-Windows.
Solution:   Use :function instead of :def.
2021-03-10 14:00:18 +01:00
37294bd6a2 patch 8.2.2581: Vim9: sourcing Vim9 script triggers a redraw
Problem:    Vim9: sourcing Vim9 script triggers a redraw.
Solution:   Do not let setting/restoring 'cpoptions' cause a redraw.
            (closes #7920)
2021-03-10 13:40:08 +01:00
e3ffcd9902 patch 8.2.2580: Vim9: checking vararg type may be wrong
Problem:    Vim9: checking vararg type is wrong when function is auto-loaded.
Solution:   Use the member type. (closes #7933)
2021-03-08 21:47:13 +01:00
d00a7fb81a patch 8.2.2579: Vim9: crash in garbagecollect after for loop
Problem:    Vim9: crash in garbagecollect after for loop.
Solution:   Do not set a reference in script item when the name was cleared.
            (closes #7935)
2021-03-08 20:47:14 +01:00
86c3a2162c patch 8.2.2578: Lua cannot handle a passed in lambda
Problem:    Lua cannot handle a passed in lambda.
Solution:   Handle VAR_PARTIAL. (Prabir Shrestha, closes #7937, closes #7936)
2021-03-08 19:50:24 +01:00
9355ae4149 patch 8.2.2577: compiler warning for type conversion
Problem:    Compiler warning for type conversion.
Solution:   Add a typecast. (Mike Williams)
2021-03-08 19:04:05 +01:00
608d78fb45 patch 8.2.2576: Vim9: defining a :func function checks for white space
Problem:    Vim9: defining a :func function checks for white space after a
            comma in the arguments.
Solution:   Only check for white space in a :def function. (closes #7930)
2021-03-06 22:33:12 +01:00
6914e87d3c patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Problem:    Vim9: a function name with "->" in the next line doesn't work.
Solution:   Recognize a function name by itself. (closes #7770)
2021-03-06 21:01:09 +01:00
04947cc6ed patch 8.2.2574: Vim9: crash when calling partial with wrong function
Problem:    Vim9: crash when calling partial with wrong function.
Solution:   Check argument types of called function. (closes #7912)
2021-03-06 19:26:46 +01:00
a974953443 patch 8.2.2573: Vim9: using inalid pointer for error message
Problem:    Vim9: using inalid pointer for error message.
Solution:   Use the right pointer. (closes #7921)
2021-03-06 18:18:19 +01:00
18062fcad6 patch 8.2.2572: Vim9: crash when getting the types for a legacy function
Problem:    Vim9: crash when getting the types for a legacy function.
Solution:   Initialize the type list growarray. (closes #7929)
2021-03-05 21:35:47 +01:00
8c801b374b patch 8.2.2571: test may leave file behind
Problem:    Test may leave file behind.
Solution:   Delete the temporary file.  Don't profile in the running Vim
            instance.
2021-03-05 20:58:22 +01:00
f9a65505d1 patch 8.2.2570: tests fail when run as root
Problem:    Tests fail when run as root.
Solution:   Add a comment mentioning the expected failure. (issue #7919)
2021-03-05 20:47:44 +01:00
008bff967f patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Problem:    'fillchars' "stl" and "stlnc" items must be single byte.
Solution:   Accept multi-byte characters. (Christian Wellenbrock, Yegappan
            Lakshmanan, closes #7927)
2021-03-04 21:55:58 +01:00
6057748a1a patch 8.2.2568: second time a preview popup is opened highlight is not set
Problem:    Second time a preview popup is opened highlight is not set.
            (Gabriel Dupras)
Solution:   Apply 'previewpopup' after getting the file. (closes #7928)
2021-03-04 21:35:07 +01:00
6c3843ca8a patch 8.2.2567: Vim9: no error if variable is defined for existing function
Problem:    Vim9: no error if variable is defined for existing function.
Solution:   Check if name isn't already in use. (closes #7897)
2021-03-04 12:38:21 +01:00
2e2d758902 patch 8.2.2566: Vim9: Function name is not recognized
Problem:    Vim9: Function name is not recognized.
Solution:   Change lookup_scriptvar() to also find function names.
            (closes #7770)
2021-03-03 21:22:41 +01:00
f76ec1eeb5 patch 8.2.2565: Vim9: "..=" not always recognized
Problem:    Vim9: "..=" not always recognized.
Solution:   Do not consider "..=" to be string concatenation. (closes #7905)
2021-03-03 17:58:16 +01:00
51b477f74f patch 8.2.2564: focus events end Insert mode if 'esckeys' is not set
Problem:    Focus events end Insert mode if 'esckeys' is not set.
Solution:   Do not enable focus events when 'esckeys' is off. (closes #7926)
2021-03-03 15:24:28 +01:00
4fa1175765 patch 8.2.2563: cannot use multibyte characters for folding in 'fillchars'
Problem:    Cannot use multibyte characters for folding in 'fillchars'.
Solution:   Port pull request 11568 to Vim. (Yegappan Lakshmanan,
            closes #7924)
2021-03-03 13:26:02 +01:00
37096afd3f patch 8.2.2562: GUI: star register changed when 'clipboard is "unnamedplus"
Problem:    GUI: star register changed when 'clipboard is "unnamedplus". (Ingo
            Karkat)
Solution:   Do not change the star register when 'clipboard' contains
            "unnamedplus" and not "unnamed". (closes #1516)
2021-03-02 19:04:11 +01:00
3dc3474f00 patch 8.2.2561: not all textprop code is covered by tests
Problem:    Not all textprop code is covered by tests.
Solution:   Add a few more test cases. (Dominique Pellé, closes #7908)
2021-03-02 13:36:47 +01:00
39d4cab494 patch 8.2.2560: setting 'winminheigt' does not take tabline into account
Problem:    Setting 'winminheigt' does not take tabline into account.
Solution:   Subtract the tabline from the available height. (closes #7899)
2021-03-01 21:02:46 +01:00
3650fd7098 patch 8.2.2559: MS-Windows: guifont test fails on Windows XP
Problem:    MS-Windows: guifont test fails on Windows XP.
Solution:   Check windowsversion().
2021-02-28 23:13:40 +01:00
057e84afe5 patch 8.2.2558: no error if a lambda argument shadows a variable
Problem:    No error if a lambda argument shadows a variable.
Solution:   Check that the argument name shadows a local, argument or script
            variable. (closes #7898)
2021-02-28 16:55:11 +01:00
087b5ff35d patch 8.2.2557: compiler warning for shadowd variable
Problem:    Compiler warning for shadowd variable.
Solution:   Declare "p" only once.
2021-02-27 23:39:22 +01:00
0a84284e60 patch 8.2.2556: Vim9: :import with "as" not fully supported
Problem:    Vim9: :import with "as" not fully supported.
Solution:   Implement "as" for more cases.
2021-02-27 22:41:19 +01:00
3f1e9f000f patch 8.2.2555: Vim9: missing test for 8.2.2553
Problem:    Vim9: missing test for 8.2.2553.
Solution:   Add a simple test.
2021-02-27 22:36:43 +01:00
0f2a5cc68b patch 8.2.2554: Vim9: exporting a final is not tested
Problem:    Vim9: exporting a final is not tested.
Solution:   Add a test.
2021-02-27 22:33:21 +01:00
9faec4e3d4 Update runtime files. 2021-02-27 16:38:07 +01:00
0abc6e471a patch 8.2.2553: Vim9: Cannot put "|" after "{"
Problem:    Vim9: Cannot put "|" after "{".
Solution:   Add the EX_TRLBAR flag. (issue #7904)
2021-02-26 22:21:23 +01:00
9f646c2e11 patch 8.2.2552: Vim9: no reason to consider "{{{{{{{{" a command
Problem:    Vim9: no reason to consider "{{{{{{{{" a command.
Solution:   Just use "{". (issue #7904)
2021-02-26 21:56:47 +01:00
d0bce504ec patch 8.2.2551: MS-Windows: colors test file is not installed
Problem:    MS-Windows: colors test file is not installed.
Solution:   Also copy runtime/colors/tools. (Ken Takata, closes #7902)
2021-02-26 20:25:35 +01:00
0e62a6742b patch 8.2.2550: signal stack size is wrong with latest glibc 2.34
Problem:    Signal stack size is wrong with latest glibc 2.34.
Solution:   Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes
            #7895)
2021-02-25 17:17:56 +01:00
1bd3cb2019 patch 8.2.2549: crash after using "g:" in a for loop
Problem:    Crash after using "g:" in a for loop.
Solution:   Increment the reference count. (closes #7892)
2021-02-24 12:27:31 +01:00
7d41410a45 patch 8.2.2548: May get stuck in the cmdline window using :normal
Problem:    May get stuck in the cmdline window using :normal.
Solution:   Have nv_esc() return K_IGNORE.
2021-02-23 19:39:20 +01:00
2c6553498e patch 8.2.2547: "%" command not accurate for big files
Problem:    "%" command not accurate for big files.
Solution:   Make it more accurate for files up to 21M lines. (Dominique Pellé,
            closes #7889)
2021-02-23 19:32:03 +01:00
21a83bd53d patch 8.2.2546: typo in mouse key name
Problem:    Typo in mouse key name.
Solution:   Fix the typo. (issue #4725)
2021-02-23 19:19:58 +01:00
eba13e4ea2 patch 8.2.2545: errors and crash when terminal window is zero height
Problem:    Errors and crash when terminal window is zero height. (Leonid V.
            Fedorenchik)
Solution:   Do not resize when width or height is zero. (closes #7890)
2021-02-23 17:47:23 +01:00
bc327ccc3d patch 8.2.2544: Vim9: error for argument when checking for lambda
Problem:    Vim9: error for argument when checking for lambda.
Solution:   Respect the skip flag. (closes #7887)
2021-02-23 12:05:46 +01:00
9cb577a682 patch 8.2.2543: Vim9: a return inside try/catch does not restore properly
Problem:    Vim9: a return inside try/catch does not restore exception state
            properly.
Solution:   When there is no ":finally" jump to ":endtry". (closes #7882)
2021-02-22 22:45:10 +01:00
41f0895c6e patch 8.2.2542: highlight of char beyond line end is not correct
Problem:    Highlight of char beyond line end is not correct. (Chuan Wei Foo)
Solution:   Fix counting NUL as one cell.  Draw one more character if the EOL
            is part of the match. (closes #7883)
2021-02-22 22:13:49 +01:00
6bfc475f71 patch 8.2.2541: popup_create() does not allow boolean for "cursorline"
Problem:    Popup_create() does not allow boolean for "cursorline".
Solution:   Use dict_get_bool(). (issue #7869)
2021-02-21 23:12:18 +01:00
b4893b8450 patch 8.2.2540: Vim9: no error for using script var name for argument
Problem:    Vim9: no error for using script var name for argument.
Solution:   Check for this error. (closes #7868)
2021-02-21 22:20:24 +01:00
7e82c5f338 patch 8.2.2539: Vim9: return from finally block causes a hang
Problem:    Vim9: return from finally block causes a hang.
Solution:   Store both the finally and endtry indexes. (closes #7885)
2021-02-21 21:32:45 +01:00
21578271bb patch 8.2.2538: crash when using Python list iterator
Problem:    Crash when using Python list iterator.
Solution:   Increment the list reference count. (closes #7886)
2021-02-21 19:12:47 +01:00
027c4ab4d2 patch 8.2.2537: Vim9: crash when map() fails
Problem:    Vim9: crash when map() fails.
Solution:   Clear typval before using it. (closes #7884)
2021-02-21 16:20:18 +01:00
dc167465f8 patch 8.2.2536: Coverity complains about unchecked return value
Problem:    Coverity complains about unchecked return value.
Solution:   Add (void).
2021-02-20 20:26:16 +01:00
723ef5db98 patch 8.2.2535: MS-Windows: cannot run all vim9 tests
Problem:    MS-Windows: cannot run all vim9 tests.
Solution:   Make test_vim9 target work.
2021-02-20 20:13:42 +01:00
a1070eae77 patch 8.2.2534: missing test coverage
Problem:    Missing test coverage.
Solution:   Improve test coverage for completion with different encodings,
            mapset(), and term function failures. (Dominique Pellé,
            closes #7877)
2021-02-20 19:21:36 +01:00
5b5ae29bd3 patch 8.2.2533: Vim9: cannot use a range with :unlet
Problem:    Vim9: cannot use a range with :unlet.
Solution:   Implement ISN_UNLETRANGE.
2021-02-20 17:04:02 +01:00
ada1d870b4 patch 8.2.2532: Vim9: confusing error if :k is used with a range
Problem:    Vim9: confusing error if :k is used with a range.
Solution:   Give an error about the range. (issue #7874)
2021-02-20 08:16:51 +01:00
10b9421f3b patch 8.2.2531: Vim9: the :k command is obscure
Problem:    Vim9: the :k command is obscure.
Solution:   Disallow using :k, can use :mark instead. (closes #7874)
2021-02-19 21:42:57 +01:00
12d265315f patch 8.2.2530: Vim9: not enough testing for profiling
Problem:    Vim9: not enough testing for profiling.
Solution:   Add a test with nested functions and a lambda.  Fix profiling
            for calling a compiled function.
2021-02-19 19:13:21 +01:00
d3f8a9ee65 patch 8.2.2529: Vim9: Not possible to use legacy and Vim9 script in one file
Problem:    Vim9: Not possible to use legacy and Vim9 script in one file.
Solution:   Vim9: allow for "if false" before :vim9script. (closes #7851)
2021-02-17 21:57:03 +01:00
c7dac8534e patch 8.2.2528: Vim9: crash when compiling lambda fails
Problem:    Vim9: crash when compiling lambda fails.
Solution:   Bail out after compilation fails. (closes #7862)
2021-02-17 18:49:11 +01:00
064095012c patch 8.2.2527: Vim9: lambda return type is not determined at script level
Problem:    Vim9: lambda return type is not determined at script level.
Solution:   Compile the lambda to get the return type. (closes #7843)
2021-02-17 17:00:27 +01:00
527ed38cfa patch 8.2.2526: build failure
Problem:    Build failure.
Solution:   Change lookup_scriptvar() arguments.
2021-02-17 15:05:45 +01:00
e0890d678d patch 8.2.2525: Vim9: only local variables checked for a name
Problem:    Vim9: only local variables checked for a name.
Solution:   Also check arguments and script variables. (closes #7838)
2021-02-17 14:52:14 +01:00
3aca5a6fbc patch 8.2.2524: cannot change the characters displayed in the foldcolumn
Problem:    Cannot change the characters displayed in the foldcolumn.
Solution:   Add fields to 'fillchars'. (Yegappan Lakshmanan, Matthieu Coudron,
            closes #7860)
2021-02-17 13:14:07 +01:00
c0fcb6e0b1 patch 8.2.2523: Svelte filetype not recognized
Problem:    Svelte filetype not recognized.
Solution:   Add a detection rule. (Brian Ryall, closes #7858)
2021-02-17 12:29:17 +01:00
9bbd883b35 patch 8.2.2522: Beancount filetype not recognized
Problem:    Beancount filetype not recognized.
Solution:   Add a detection rule. (Brian Ryall, closes #7859)
2021-02-17 12:25:49 +01:00
333bd56422 patch 8.2.2521: some compilers can't handle pointer initialization
Problem:    Some compilers can't handle pointer initialization. (John
            Marriott)
Solution:   Use a local struct and assign it afterwards.
2021-02-16 22:22:13 +01:00
04ea7e9049 patch 8.2.2520: missing tests for 'listchars'
Problem:    Missing tests for 'listchars'.
Solution:   Add a few more checks. (Yegappan Lakshmanan, closes #7854)
2021-02-16 21:14:33 +01:00
b8554304c3 patch 8.2.2519: Vim9: no reason to keep strange Vi behavior
Problem:    Vim9: no reason to keep strange Vi behavior.
Solution:   ":3" and ":3|" both go to line 3. ":|" does not print the line.
            (closes #7840)
2021-02-15 21:30:30 +01:00
eed9d46293 patch 8.2.2518: 'listchars' should be window-local
Problem:    'listchars' should be window-local.
Solution:   Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz,
            closes #5206, closes #7850)
2021-02-15 20:38:25 +01:00
7c5b3c0369 patch 8.2.2517: Vim9: fix for s390 not tested on other systems
Problem:    Vim9: fix for s390 not tested on other systems.
Solution:   Add a test.
2021-02-14 22:40:57 +01:00
4afa77419f patch 8.2.2516: test failure on s390
Problem:    Test failure on s390. (analyses by James McCoy)
Solution:   Only set the try_finally label when not skipping.
2021-02-14 16:34:59 +01:00
6281815ecc patch 8.2.2515: memory access error when truncating an empty message
Problem:    Memory access error when truncating an empty message.
Solution:   Check for an empty string. (Dominique Pellé, closes #7841)
2021-02-14 15:37:30 +01:00
2379f87eb4 patch 8.2.2514: Vim9: build error in tiny version
Problem:    Vim9: build error in tiny version.
Solution:   Add #ifdef.
2021-02-14 14:07:34 +01:00
9979fcd72e patch 8.2.2513: Vim9: missing part of :vim9cmd change
Problem:    Vim9: missing part of :vim9cmd change.
Solution:   Use command modifier in in_vim9script().
2021-02-14 13:30:01 +01:00
03dfde2b5f patch 8.2.2512: Vim9: compiling error test sometimes fails
Problem:    Vim9: compiling error test sometimes fails.
Solution:   use WaitForAssert() instead of sleeping for a bit. (Dominique
            Pellé, closes #7837)
2021-02-14 13:17:22 +01:00
39f3b14110 patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Problem:    Vim9: cannot use Vim9 script syntax in some places.
Solution:   Add the :vim9cmd command modifier. Incompatible: Makes ":vim9"
            mean ":vim9cmd" instead of ":vim9script".
2021-02-14 12:57:36 +01:00
10ccfb2a17 patch 8.2.2510: internal error when popup with mask is zero height or width
Problem:    Internal error when popup with mask is zero height or width.
Solution:   Bail out if width or height is zero. (closes #7831)
2021-02-13 21:31:18 +01:00
8d4be89011 patch 8.2.2509: tests fail on s390 build
Problem:    Tests fail on s390 build.
Solution:   Initialize trycmd_T.
2021-02-13 18:33:02 +01:00
a98f8a2305 patch 8.2.2508: cannot change the character displayed in non existing lines
Problem:    Cannot change the character displayed in non existing lines.
Solution:   Add the "eob" item to 'fillchars'. (closes #7832, closes #3820)
2021-02-13 18:24:23 +01:00
942db23c9c Update runtime files 2021-02-13 18:14:48 +01:00
0fa09676c2 patch 8.2.2507: github build may fail if Ubuntu 20.04 is used
Problem:    Github build may fail if Ubuntu 20.04 is used.  Installing rust is
            not needed.
Solution:   Specify ubuntu-18.04 instead of latest. Update "pip" instead of
            installing rust. (Ozaki Kiichi, closes #7820)
2021-02-13 17:08:33 +01:00
c150c09ec4 patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
Problem:    Vim9: :continue does not work correctly in a :try block
Solution:   Add the TRYCLEANUP instruction. (closes #7827)
2021-02-13 15:02:46 +01:00
31842cd077 patch 8.2.2505: Vim9: crash after defining function with invalid return type
Problem:    Vim9: crash after defining function with invalid return type.
Solution:   Clear function growarrays.  Fix memory leak.
2021-02-12 22:10:21 +01:00
44ec21c467 patch 8.2.2504: Vim9: crash when using an argument from a closure
Problem:    Vim9: crash when using an argument from a closure.
Solution:   Check if gen_load_outer is NULL. (closes #7821)
2021-02-12 21:50:57 +01:00
d9d7789b6f patch 8.2.2503: Vim9: a caught error may leave something on the stack
Problem:    Vim9: a caught error may leave something on the stack.
Solution:   Drop items from the stack if needed. (closes #7826)
2021-02-12 21:32:47 +01:00
ca753ec862 patch 8.2.2502: a few github actions are failing
Problem:    A few github actions are failing.
Solution:   Install setuptools-rust. (closes #7823)
2021-02-12 19:48:51 +01:00
f785aa1354 patch 8.2.2501: not always clear where an error is reported
Problem:    Not always clear where an error is reported.
Solution:   Add the where_T structure and pass it around. (closes #7796)
2021-02-11 21:19:34 +01:00
0bcadf14aa patch 8.2.2500: build fails without the GUI feature
Problem:    Build fails without the GUI feature.
Solution:   Add #ifdef.
2021-02-11 19:18:58 +01:00
3b678047bc patch 8.2.2499: "vim -g --version" does not redirect output
Problem:    "vim -g --version" does not redirect output.
Solution:   Reset gui.starting when showing version info. (closes #7815)
2021-02-11 19:08:05 +01:00
5affc03468 patch 8.2.2498: no test for what 8.2.2494 fixes
Problem:    No test for what 8.2.2494 fixes.
Solution:   Add a simple change to test the fix. (closes #7818)
2021-02-11 18:36:30 +01:00
418a29f0ff patch 8.2.2497: no error when using more than one character for a register
Problem:    No error when using more than one character for a register name.
Solution:   In Vim9 script check for a single character string. (closes #7814)
            Fix that VAR_BOOL and VAR_SPECIAL are not considered equal.
2021-02-10 22:23:41 +01:00
5202929dab patch 8.2.2496: insufficien testing for text jumping fix
Problem:    Insufficien testing for text jumping fix.
Solution:   Add another test case.
2021-02-10 21:20:30 +01:00
8f33ebfade patch 8.2.2495: text jumps up and down when moving the cursor
Problem:    Text jumps up and down when moving the cursor in a small window
            with wrapping text and 'scrolloff' set.
Solution:   Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre,
            closes #7813)
2021-02-10 21:10:12 +01:00
3ff656f6b4 patch 8.2.2494: ":rviminfo!" clears most of oldfiles
Problem:    ":rviminfo!" clears most of oldfiles.
Solution:   Add VIF_ONLY_CURBUF to read_viminfo(). (closes #1781)
2021-02-10 19:22:15 +01:00
f3fa18468c patch 8.2.2493: text property for text left of window shows up
Problem:    Text property for text left of window shows up.
Solution:   Check if the text property ends before the current column.
            (closes #7806)
2021-02-10 17:20:28 +01:00
b17ec4d427 patch 8.2.2492: command line buffer name cannot be translated
Problem:    Command line buffer name cannot be translated.
Solution:   Add _(). (Gabriel Dupras, closes #7812)
2021-02-10 16:45:24 +01:00
82db31c104 patch 8.2.2491: popup window for text property may show in first screen line
Problem:    Popup window for text property may show in first screen line.
Solution:   If the text position is invisible do not show the popup window.
            (closes #7807)
2021-02-10 14:56:11 +01:00
4223d43c0f patch 8.2.2490: 'wrap' option is always reset when starting diff mode
Problem:    'wrap' option is always reset when starting diff mode.
Solution:   Add the "followwrap" item in 'diffopt'. (Rick Howe, closes #7797)
2021-02-10 13:18:17 +01:00
963ffa0a5a patch 8.2.2489: current buffer is wrong after deletebufline() fails
Problem:    current buffer is wrong after deletebufline() fails to delete a
            line in another buffer.
Solution:   Restore the current buffer.
2021-02-09 20:02:55 +01:00
a853089479 patch 8.2.2488: json_encode() gives generic argument error
Problem:    json_encode() gives generic argument error.
Solution:   Mention the type that can't be encoded. (issue #7802)
2021-02-08 21:53:09 +01:00
4549dad874 patch 8.2.2487: terminal shows garbage after double-wide character
Problem:    Terminal shows garbage after double-wide character with a
            combining character. (Kyoichiro Yamada)
Solution:   Libvterm: do not add the width of the combining character to the
            glyph width. (closes #7801)
2021-02-08 21:29:48 +01:00
ba98fb54ae patch 8.2.2486: Vim9: some errors for white space do not show context
Problem:    Vim9: some errors for white space do not show context.
Solution:   Include the text at the error.
2021-02-07 18:06:29 +01:00
0123cc1e14 patch 8.2.2485: when sourcing a script again the script version isn't reset
Problem:    When sourcing a script again the script version isn't reset.
Solution:   Set sn_version to one when sourcing a script again. Clear
            sn_save_cpo properly. (closes #7608)
2021-02-07 17:17:58 +01:00
dee37dc733 patch 8.2.2484: Vim9: Cannot use a comment starting with #{
Problem:    Vim9: Cannot use a comment starting with #{ after an expression.
Solution:   Remove the check for "{" since #{ dictionaries are not supported.
2021-02-07 16:40:05 +01:00
6628b7ebff patch 8.2.2483: Vim9: type error for misformed expression
Problem:    Vim9: type error for misformed expression.
Solution:   Check for end of command before checking type. (closes #7795)
2021-02-07 16:33:35 +01:00
a5a1ec1826 patch 8.2.2482: build error
Problem:    Build error.
Solution:   Add new error message.
2021-02-07 16:05:47 +01:00
4f53b79bf5 patch 8.2.2481: Vim9: confusing error when variable arguments have default
Problem:    Vim9: confusing error when variable arguments have a default
            value.
Solution:   Give a specific error message. (closes #7793)
2021-02-07 15:59:49 +01:00
c3fc75db02 patch 8.2.2480: Vim9: some errors for white space do not show context
Problem:    Vim9: some errors for white space do not show context.
Solution:   Include the text at the error.
2021-02-07 15:28:09 +01:00
00385114db patch 8.2.2479: set/getbufline test fails without the job feature
Problem:    set/getbufline test fails without the job feature.
Solution:   Check whether the job feature is supported. (Dominique Pellé,
            closes #7790)
2021-02-07 14:31:06 +01:00
0dc5f603e9 patch 8.2.2478: MS-Windows: backup files for plugins are loaded
Problem:    MS-Windows: backup files for plugins are loaded.
Solution:   Do not use the alternate file name for files ending in "~".
2021-02-07 14:01:35 +01:00
dd07c02232 patch 8.2.2477: autocommand tests hang on MS-Windows
Problem:    Autocommand tests hang on MS-Windows.
Solution:   Skip a couple of tests.  Fix file name.
2021-02-07 13:32:46 +01:00
983d83ff1c patch 8.2.2476: using freed memory when splitting window while closing buffer
Problem:    Using freed memory when using an autocommand to split a window
            while a buffer is being closed.
Solution:   Disallow splitting when the buffer has b_locked_split set.
2021-02-07 12:12:43 +01:00
dfc3db76b9 patch 8.2.2475: autocommand tests hangs on MS-Windows
Problem:    Autocommand tests hangs on MS-Windows.
Solution:   Skip one test.
2021-02-06 19:28:48 +01:00
2c7080bf1c patch 8.2.2474: using freed memory when window is closed by autocommand
Problem:    Using freed memory when window is closed by autocommand.
            (houyunsong)
Solution:   Check the window pointer is still valid.
2021-02-06 19:19:42 +01:00
8c6951fa28 patch 8.2.2473: crash when leaving command line window triggers autocommand
Problem:    Crash when leaving command line window triggers autocommand.
            (houyunsong)
Solution:   Make sure not to close the current window or buffer.
2021-02-06 18:08:45 +01:00
aad5f9d79a patch 8.2.2472: crash when using command line window in an autocommand
Problem:    Crash when using command line window in an autocommand.
            (houyunsong)
Solution:   Save and restore au_new_curbuf.
2021-02-06 17:30:31 +01:00
efa1923565 patch 8.2.2471: popup_setoptions() does not set textprop in other tab
Problem:    Popup_setoptions() does not set textprop in other tab.
Solution:   use win_valid_any_tab(). (closes #7788)
2021-02-06 14:59:27 +01:00
6502643677 patch 8.2.2470: popup_getoptions() does not get textprop from other tab
Problem:    Popup_getoptions() does not get textprop from other tab.
Solution:   use win_valid_any_tab(). (closes #7786)
2021-02-06 14:22:32 +01:00
f5a5116a96 patch 8.2.2469: confusing error if :winsize has a wrong argument
Problem:    Confusing error if :winsize has a wrong argument.
Solution:   Quote the argument in the error. (closes #2523)
2021-02-06 12:58:18 +01:00
038e09ee76 patch 8.2.2468: not easy to get the full command name from a shortened one
Problem:    Not easy to get the full command name from a shortened one.
Solution:   Add fullcommand(). (Martin Tournoij, closes #7777)
2021-02-06 12:38:51 +01:00
139348f3e8 patch 8.2.2467: script generated by :mkview changes alternate file
Problem:    Script generated by :mkview changes alternate file.
Solution:   Only write :balt in the session file. (Harish Rajagopal,
            closes #7779)
2021-02-05 21:55:53 +01:00
ab65fc77c5 patch 8.2.2466: max() and min() can give many error messages
Problem:    Max() and min() can give many error messages.
Solution:   Bail out at the first error. (closes #1039, closes #7778)
2021-02-04 22:07:16 +01:00
92bb83e41c patch 8.2.2465: using freed memory in :psearch
Problem:    Using freed memory in :psearch. (houyunsong)
Solution:   Check the current window is still valid.  Fix flaky test.
2021-02-03 23:04:46 +01:00
8ab375706e patch 8.2.2464: using freed memory if window closed in autocommand
Problem:    Using freed memory if window closed in autocommand. (houyunsong)
Solution:   Check the window still exists.
2021-02-03 21:56:59 +01:00
6bcb877ec1 patch 8.2.2463: using :arglocal in an autocommand may use freed memory
Problem:    Using :arglocal in an autocommand may use freed memory.
            (houyunsong)
Solution:   Check if the arglist is locked.
2021-02-03 21:23:29 +01:00
2c363a2e95 patch 8.2.2462: Coverity warns for not checking for fseek() error
Problem:    Coverity warns for not checking for fseek() error.
Solution:   Give an error message if fseek() fails.
2021-02-03 20:14:23 +01:00
fef8064b54 patch 8.2.2461: Coverity warns for unchecked return value
Problem:    Coverity warns for unchecked return value.
Solution:   Add "(void)" to avoid the warning.
2021-02-03 20:01:19 +01:00
fc1dafa91c patch 8.2.2460: Coverity warns for unused value
Problem:    Coverity warns for unused value.
Solution:   Do not reset the return value to OK.
2021-02-03 19:57:00 +01:00
8bead9a058 patch 8.2.2459: Coverity reports dead code
Problem:    Coverity reports dead code.
Solution:   Remove the dead code.
2021-02-03 19:51:18 +01:00
0dcd39bad5 patch 8.2.2458: Coverity warns for :retab using freed memory
Problem:    Coverity warns for :retab using freed memory.
Solution:   Use the updated line pointer when moving text properties.
2021-02-03 19:44:25 +01:00
4dba04256b patch 8.2.2457: Coverity warns for memory leak
Problem:    Coverity warns for memory leak.
Solution:   Free memory when out of memory.
2021-02-03 19:35:13 +01:00
7b6903f02c patch 8.2.2456: Coverity warning for strcpy() into fixed size array
Problem:    Coverity warning for strcpy() into fixed size array.
Solution:   Add a type cast to hopefully silence the bogus warning.
2021-02-03 19:31:29 +01:00
2e5910bfbb patch 8.2.2455: Vim9: key type for literal dict and indexing is inconsistent
Problem:    Vim9: key type that can be used for literal dict and indexing is
            inconsistent.
Solution:   Allow using number and bool as key for a literal dict. (#7771)
2021-02-03 17:41:24 +01:00
91478ae49a patch 8.2.2454: leading space can not be made visible
Problem:    Leading space can not be made visible.
Solution:   Add "lead:" to 'listchars'. (closes #7772)
2021-02-03 15:58:13 +01:00
148be9bc1c patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Problem:    Vim9: a variable name with "->" in the next line doesn't work.
Solution:   Recognize a variable name by itself. (closes #7770)
2021-02-02 21:33:52 +01:00
d5e8c92816 patch 8.2.2452: no completion for the 'filetype' option
Problem:    No completion for the 'filetype' option.
Solution:   Add filetype completion. (Martin Tournoij, closes #7747)
2021-02-02 21:10:01 +01:00
e7bebc495d patch 8.2.2451: MS-Windows: Extended Attributes not preserved
Problem:    MS-Windows: Extended Attributes not preserved.
Solution:   Preserve Extended Attributes when writing a file. (Ken Takata,
            closes #7765)
2021-02-01 20:50:37 +01:00
7781ebe50f patch 8.2.2450: MS-Windows: ADS was not preserved if 'backupcopy' is "yes"
Problem:    MS-Windows: ADS was not preserved if 'backupcopy' is "yes".
Solution:   Copy ADS before truncating the file. (Ken Takata, closes #7762)
2021-02-01 20:35:01 +01:00
3b69006973 patch 8.2.2449: Vim9: flatten() always changes the list type
Problem:    Vim9: flatten() always changes the list type.
Solution:   Disallow using flatten() and add flattennew().
2021-02-01 20:14:51 +01:00
9d20daffc2 patch 8.2.2448: compilation error with Ruby 3.0
Problem:    Compilation error with Ruby 3.0.
Solution:   Adjust #ifdefs and declaration. (Ken Takata, closes #7761)
2021-02-01 19:31:47 +01:00
f9547eb6ef patch 8.2.2447: 'foldlevel' not applied to folds restored from session
Problem:    'foldlevel' not applied to folds restored from session.
Solution:   Set 'foldlevel' after creaiting the folds. (closes #7767)
2021-02-01 19:24:55 +01:00
5daa911626 patch 8.2.2446: setting 'term' empty has different error if compiled with GUI
Problem:    Setting 'term' empty has different error if compiled with GUI.
Solution:   Insert "else". (closes #7766)
2021-02-01 18:39:47 +01:00
0346b799fc patch 8.2.2445: Vim9: no proper error for lambda missing return type
Problem:    Vim9: no proper error for lambda missing return type.
Solution:   Check for this error. (closes #7758)
2021-01-31 22:18:29 +01:00
e507ff15d5 patch 8.2.2444: Vim9: compile error with combination of operator and list
Problem:    Vim9: compile error with combination of operator and list.
Solution:   Generate constants before parsing a list or dict. (closes #7757)
2021-01-31 21:47:42 +01:00
80ad3e2569 patch 8.2.2443: Vim9: no compile time error for wrong str2float argument
Problem:    Vim9: no compile time error for wrong str2float argument.
Solution:   Check argument type. (closes #7759)
2021-01-31 20:48:58 +01:00
f272ae12ac patch 8.2.2442: automatic GUI selection does not check for GTK 3
Problem:    Automatic GUI selection does not check for GTK 3.
Solution:   Make SKIP_GTK3 empty for automatic GUI support.  Set SKIP_GTK3 to
            YES when checking for GTK2.
2021-01-31 19:52:50 +01:00
c03f5c677a patch 8.2.2441: Vim9: extend() does not give an error for a type mismatch
Problem:    Vim9: extend() does not give an error for a type mismatch.
Solution:   Check the type of the second argument. (closes #7760)
2021-01-31 17:48:30 +01:00
853886722c patch 8.2.2440: documentation based on patches is outdated
Problem:    Documentation based on patches is outdated.
Solution:   Add changes to documentation in a patch.
2021-01-31 17:03:52 +01:00
3d2bb8b6f1 patch 8.2.2439: not easy to figure out what packages to get
Problem:    Not easy to figure out what packages to get when installing Vim on
            a new Ubuntu system.
Solution:   Mention explicit commands that are easy to follow.
2021-01-31 16:45:53 +01:00
6a12e3342d patch 8.2.2438: out of bounds compiler warning
Problem:    Out of bounds compiler warning.
Solution:   Increase the size of uf_name.
2021-01-31 14:46:00 +01:00
4d8479b335 patch 8.2.2437: deprecation warnings with default configuration
Problem:    Deprecation warnings with default configuration.
Solution:   Add -Wno-deprecated-declarations.
2021-01-31 14:36:06 +01:00
206c2a6e19 patch 8.2.2436: Vim9 script test is a bit flaky
Problem:    Vim9 script test is a bit flaky.
Solution:   Wait longer for exit callback.
2021-01-31 14:04:44 +01:00
3445320839 patch 8.2.2435: setline() gives an error for some types
Problem:    setline() gives an error for some types.
Solution:   Allow any type, convert each item to a string.
2021-01-31 13:08:38 +01:00
f2b26bcf8f patch 8.2.2434: Vim9: no error when compiling str2nr() with a number
Problem:    Vim9: no error when compiling str2nr() with a number.
Solution:   Add argument type checks. (closes #7759)
2021-01-30 23:05:11 +01:00
b63f3ca66d patch 8.2.2433: opening cmdline window gives error in BufLeave autocommand
Problem:    Opening cmdline window gives error in BufLeave autocommand.
Solution:   Reset cmdwin_type when triggering the autocommand.
2021-01-30 21:40:03 +01:00
76ab5446d5 patch 8.2.2432: libvterm tests are executed even when libtool doesn't work
Problem:    Libvterm tests are executed even when libtool doesn't work.
Solution:   Only run libvterm tests if /usr/bin/gcc exists.
2021-01-30 20:35:28 +01:00
ebd211c8a3 patch 8.2.2431: warning for -fno-strength-reduce with Clang 11
Problem:    Warning for -fno-strength-reduce with Clang 11.
Solution:   Adjust check for clang version number.
2021-01-30 19:33:36 +01:00
f8c6a17180 patch 8.2.2430: :vimgrep expands wildcards twice
Problem:    :vimgrep expands wildcards twice.
Solution:   Do not expand wildcards a second time.
2021-01-30 18:09:06 +01:00
59ff64079b patch 8.2.2429: :goto does not work correctly with text properties
Problem:    :goto does not work correctly with text properties. (Sam McCall)
Solution:   Add a test. (Andrew Radev)  Also use the text property size when
            computing the remaining offset. (closes #5930)
2021-01-30 17:16:28 +01:00
92e5df8047 patch 8.2.2428: FocusGained does not work when 'ttymouse' is empty
Problem:    FocusGained does not work when 'ttymouse' is empty.
Solution:   Don't use the short mouse code if there is a longer matching code.
            (closes #7755)  Add a test.
2021-01-30 15:39:47 +01:00
3eb6bd9c2b patch 8.2.2427: can still switch windows for 'completefunc'
Problem:    Can still switch windows for 'completefunc'.
Solution:   Also disallow switching windows for other completions.
2021-01-29 21:47:24 +01:00
28976e2acc patch 8.2.2426: allowing 'completefunc' to switch windows causes trouble
Problem:    Allowing 'completefunc' to switch windows causes trouble.
Solution:   use "textwinlock" instead of "textlock".
2021-01-29 21:07:07 +01:00
df2c2988bb patch 8.2.2425: cursor on invalid line with range and :substitute
Problem:    Cursor on invalid line with range and :substitute.
Solution:   Do not move the cursor when skipping commands. (closes #3434)
2021-01-28 20:18:08 +01:00
97202d9516 patch 8.2.2424: some tests are known to cause an error with ASAN
Problem:    Some tests are known to cause an error with ASAN.
Solution:   Add CheckNotAsan.
2021-01-28 18:34:35 +01:00
61015162ba patch 8.2.2423: missing error message
Problem:    Missing error message.
Solution:   Add the error message.
2021-01-28 17:56:09 +01:00
1d859e2421 patch 8.2.2422: crash when deleting with line number out of range
Problem:    Crash when deleting with line number out of range. (Houyunsong)
Solution:   Avoid using a negative line number.
2021-01-28 17:24:58 +01:00
5ed58c7b70 patch 8.2.2421: double free when using autocommand with "argdel"
Problem:    Double free when using autocommand with "argdel". (Houyunsong)
Solution:   Add the arglist_locked flag.
2021-01-28 14:24:55 +01:00
9a046fd08b patch 8.2.2420: too many problems with using all autocommand events
Problem:    Too many problems with using all autocommand events.
Solution:   Disallow defining an autocommand for all events.
2021-01-28 13:47:59 +01:00
d697ddea14 patch 8.2.2419: autocmd test was failing on MS-Windows with GUI
Problem:    Autocmd test was failing on MS-Windows with GUI.
Solution:   Remove stray feedkeys().
2021-01-28 12:08:35 +01:00
2e6cdb91e8 patch 8.2.2418: color not changed if ModeMsg highlight is set in InsertEnter
Problem:    Color not changed if ModeMsg highlight is set in InsertEnter
            autocmd event. (Paul Swanson)
Solution:   Call highlight_changed() after triggering InsertEnter.
            (closes #7751)
2021-01-28 11:07:44 +01:00
3e492c2d5f patch 8.2.2417: condition stack values may be used when not set
Problem:    Condition stack values may be used when not set.
Solution:   Clear cs_script_var_len and cs_block_id just in case they get used
            later. (issue #7733)
2021-01-27 21:37:13 +01:00
bed72df3e6 patch 8.2.2416: may get stuck in command line window state
Problem:    May get stuck in command line window state.
Solution:   Reset "cmdwin_type" when editing buffer fails.  Make arglist test
            pass on MS-Windows.
2021-01-27 20:34:29 +01:00
21829c5f2c patch 8.2.2415: no way to check for the cmdwin feature
Problem:    No way to check for the cmdwin feature, cmdline_hist is now always
            enabled.
Solution:   Add has('cmdwin') support. Skip arglist test on Windows
            temporarily.
2021-01-26 22:42:21 +01:00
b7e2670b6a patch 8.2.2414: using freed memory when closing the cmdline window
Problem:    Using freed memory when closing the cmdline window.
Solution:   Check the window is still valid.
2021-01-26 22:00:52 +01:00
bb4b93ed85 patch 8.2.2413: crash when using :all while using a cmdline window
Problem:    Crash when using :all while using a cmdline window. (Zdenek Dohnal)
Solution:   Disallow :all from the cmdline window.
2021-01-26 21:35:08 +01:00
ce0370d9e6 patch 8.2.2412: not all fields in "cstack" are initialized
Problem:    Not all fields in "cstack" are initialized which might cause a
            crash.
Solution:   Use CLEAR_FIELD().
2021-01-26 19:32:53 +01:00
98989a0014 patch 8.2.2411: profile test fails on MS-Windows
Problem:    Profile test fails on MS-Windows.
Solution:   Do the profiling in a separate Vim command.
2021-01-26 12:06:30 +01:00
ff0e57fe77 patch 8.2.2410: build failure without the +profiling feature
Problem:    Build failure without the +profiling feature.
Solution:   Add dummy argument to macro.
2021-01-25 23:02:38 +01:00
e0e3917554 Update runtime files. 2021-01-25 21:14:57 +01:00
e5ea346a07 patch 8.2.2409: Vim9: profiling only works for one function
Problem:    Vim9: profiling only works for one function.
Solution:   Select the right instructions when calling and returning.
            (closes #7743)
2021-01-25 21:01:48 +01:00
5c829bf229 patch 8.2.2408: MinGW: "--preprocessor" flag no longer supported
Problem:    MinGW: "--preprocessor" flag no longer supported.
Solution:   Remove the flag, use the defaults. (Christopher Wellons,
            closes #7741)
2021-01-25 19:18:02 +01:00
ab55f11d9b patch 8.2.2407: old jumplist code is never used
Problem:    Old jumplist code is never used.
Solution:   Delete the dead code. (Yegappan Lakshmanan, closes #7740)
2021-01-25 18:44:57 +01:00
c05fe07529 patch 8.2.2406: Vim9: profiled :def function leaks memory
Problem:    Vim9: profiled :def function leaks memory.
Solution:   Delete the profiled instructions.
2021-01-24 21:30:48 +01:00
4efd994829 patch 8.2.2405: Vim9: no need to allow white space before "(" for :def
Problem:    Vim9: no need to allow white space before "(" for :def.
Solution:   Give an error for stray white space. (issue #7734)
2021-01-24 21:14:20 +01:00
107e9cecf7 patch 8.2.2404: Vim9: profiling try/catch not correct
Problem:    Vim9: profiling try/catch not correct.
Solution:   Add profile instructions.  Fix that "entry" did not rethrow an
            excpetion.
2021-01-24 20:52:00 +01:00
ced68a0070 patch 8.2.2403: Vim9: profiling if/elseif/endif not correct
Problem:    Vim9: profiling if/elseif/endif not correct.
Solution:   Add profile instructions.  Fix that "elseif" was wrong.
2021-01-24 17:53:47 +01:00
8323cab31c patch 8.2.2402: some filetypes not detected
Problem:    Some filetypes not detected.
Solution:   Detect Ruby Signature and Puppet related files. (Doug Kearns)
2021-01-24 15:25:56 +01:00
f002a41d12 patch 8.2.2401: build fails without +profiling feature
Problem:    Build fails without +profiling feature.
Solution:   Add #ifdefs.
2021-01-24 13:34:18 +01:00
b204990346 patch 8.2.2400: Vim9: compiled functions are not profiled
Problem:    Vim9: compiled functions are not profiled.
Solution:   Add initial changes to profile compiled functions.  Fix that a
            script-local function was hard to debug.
2021-01-24 12:53:53 +01:00
7cf0c114d6 patch 8.2.2399: fold test fails in wide terminal
Problem:    Fold test fails in wide terminal.
Solution:   Adjust the test. (Dominique Pelle, closes #7731, closes #7739)
2021-01-24 12:00:01 +01:00
40be52ba71 patch 8.2.2398: method test fails
Problem:    Method test fails.
Solution:   Adjust test for allowed white space.
2021-01-23 15:27:09 +01:00
dfbc5fd879 patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Problem:    Vim9: "%%" not seen as alternate file name for commands with a
            buffer name argument.
Solution:   Recognize "%%" like "#". (closes #7732)
2021-01-23 15:15:01 +01:00
7cebe8ba7d patch 8.2.2396: Vim9: no white space allowed before "->"
Problem:    Vim9: no white space allowed before "->".
Solution:   Allow for white space. (closes #7725)
2021-01-23 14:22:16 +01:00
9a562c184d patch 8.2.2395: Vim9: error for wrong type may report wrong line number
Problem:    Vim9: error for wrong type may report wrong line number.
Solution:   Save and restore the line number when evaluating the expression.
            (closes #7727)
2021-01-23 13:39:14 +01:00
9ae3705b6e patch 8.2.2394: Vim9: min() and max() return type is "any"
Problem:    Vim9: min() and max() return type is "any".
Solution:   Use return type "number". (closes #7728)
2021-01-22 22:31:10 +01:00
4bce26bb70 patch 8.2.2393: Vim9: error message when script line starts with "[{"
Problem:    Vim9: error message when script line starts with "[{".
Solution:   Do not give an error for checking for end of list.
2021-01-22 22:06:56 +01:00
402115f1c2 patch 8.2.2392: fennel filetype not recognized
Problem:    Fennel filetype not recognized.
Solution:   Detect with pattern and hashbang. (Chinmay Dalal, closes #7729)
2021-01-22 20:55:04 +01:00
0d3de8cb59 patch 8.2.2391: memory leak when creating a global function with closure
Problem:    Memory leak when creating a global function with closure.
Solution:   Create a separate partial for every instantiated function.
2021-01-22 20:46:27 +01:00
b3005ce191 patch 8.2.2390: Vim9: using positive offset is unexpected
Problem:    Vim9: using positive offset is unexpected.
Solution:   Use int8_T instead of char. (James McCoy)
2021-01-22 17:51:06 +01:00
9b6344613e patch 8.2.2389: test failure on a few systems
Problem:    Test failure on a few systems.
Solution:   Avoid that "char" value is negative.
2021-01-21 22:53:38 +01:00
57d5a01cb4 patch 8.2.2388: no easy way to get the maximum or mininum number value
Problem:    No easy way to get the maximum or mininum number value.
Solution:   Add v:numbermax and v:numbermin.
2021-01-21 21:42:31 +01:00
e32e516dfa patch 8.2.2387: runtime type check does not mention argument index
Problem:    Runtime type check does not mention argument index.
Solution:   Add ct_arg_idx. (closes #7720)
2021-01-21 20:21:29 +01:00
f904133e1a patch 8.2.2386: Vim9: crash when using ":silent! put"
Problem:    Vim9: crash when using ":silent! put".
Solution:   When ignoring an error for ":silent!" rewind the stack and skip
            ahead to restoring the cmdmod. (closes #7717)
2021-01-21 19:41:16 +01:00
e71996bd08 patch 8.2.2385: "gj" and "gk" do not work correctly when inside a fold
Problem:    "gj" and "gk" do not work correctly when inside a fold.
Solution:   Move check for folding. (closes #7724, closes #4095)
2021-01-21 17:03:07 +01:00
5e6a7aa2b2 patch 8.2.2384: turtle filetype not recognized
Problem:    Turtle filetype not recognized.
Solution:   Add a rule to detect turtle files. (closes #7722)
2021-01-21 14:45:13 +01:00
ccb47a2899 patch 8.2.2383: focus escape sequences are not named
Problem:    Focus escape sequences are not named in ":set termcap" output.
Solution:   Add the names to the list. (closes #7718)
2021-01-21 13:36:43 +01:00
b1f2857096 patch 8.2.2382: build failure
Problem:    Build failure.
Solution:   Add missing changes.
2021-01-21 13:03:20 +01:00
c5f59fab23 patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Problem:    Vim9: divide by zero does not abort expression execution.
Solution:   Use a "failed" flag. (issue #7704)
2021-01-21 12:34:14 +01:00
a0f7f73ebb patch 8.2.2380: Vim9: occasional crash when using try/catch and a timer
Problem:    Vim9: occasional crash when using try/catch and a timer.
Solution:   Save and restore "need_rethrow" when invoking a timer callback.
            (closes #7708)
2021-01-20 22:22:49 +01:00
77a849c4b3 patch 8.2.2379: do spell suggestions twice if 'spellsuggest' contains number
Problem:    Finding spell suggestions twice if 'spellsuggest' contains number.
Solution:   Only do internal suggestions once.  (closes #7713)
2021-01-20 21:42:33 +01:00
99880f96cf patch 8.2.2378: Vim9: no error message for dividing by zero
Problem:    Vim9: no error message for dividing by zero.
Solution:   Give an error message. (issue #7704)
2021-01-20 21:23:14 +01:00
a28639e711 patch 8.2.2377: Vim9: crash when using a range after another expression
Problem:    Vim9: crash when using a range after another expression.
Solution:   Set the variable type to number. Fix using :put with a range and
            the "=" register. (closes #7706)
2021-01-19 22:48:09 +01:00
e64f83cc6a patch 8.2.2376: Vim9: crash when dividing by zero in compiled code
Problem:    Vim9: crash when dividing by zero in compiled code using
            constants.
Solution:   Call num_divide() and num_modulus(). (closes #7704)
2021-01-19 22:16:41 +01:00
09fbedc8dc patch 8.2.2375: test for RGB color skipped in the terminal
Problem:    Test for RGB color skipped in the terminal.
Solution:   Run the GUI if possible.
2021-01-19 17:22:58 +01:00
98a29d00a4 Update runtime files. 2021-01-18 19:55:44 +01:00
82aa6e09e0 patch 8.2.2374: accessing uninitialized memory in test_undo
Problem:    Accessing uninitialized memory in test_undo.
Solution:   Do not look in typebuf.tb_buf if it is empty. (Dominique Pellé,
            closes #7697)
2021-01-17 22:04:02 +01:00
f30a14db3b patch 8.2.2373: Vim9: list assignment only accepts a number index
Problem:    Vim9: list assignment only accepts a number index.
Solution:   Accept "any" and do a runtime type check. (closes #7694)
2021-01-17 21:51:24 +01:00
585587dadb patch 8.2.2372: confusing error message for wrong :let command
Problem:    Confusing error message for wrong :let command.
Solution:   Only check for type in Vim9 script.
2021-01-17 20:52:13 +01:00
036d07144e patch 8.2.2371: Vim9: crash when using types in :for with unpack
Problem:    Vim9: crash when using types in :for with unpack.
Solution:   Check for skip_var_list() failing. Pass include_type to
            skip_var_one(). Skip type when compiling. (closes #7694)
2021-01-17 20:23:38 +01:00
1430ceeb2d patch 8.2.2370: Vim9: command fails in catch block
Problem:    Vim9: command fails in catch block.
Solution:   Reset force_abort and need_rethrow. (closes #7692)
2021-01-17 19:20:32 +01:00
3af15ab788 patch 8.2.2369: Vim9: functions return true/false but can't be used as bool
Problem:    Vim9: functions return true/false but can't be used as bool.
Solution:   Add ret_number_bool(). (closes #7693)
2021-01-17 16:16:23 +01:00
85773bf32b patch 8.2.2368: insufficient tests for setting options
Problem:    Insufficient tests for setting options.
Solution:   Add a few tests. (Dominique Pellé, closes #7695)
2021-01-17 13:48:03 +01:00
239f8d9326 patch 8.2.2367: test failures on some less often used systems
Problem:    Test failures on some less often used systems.
Solution:   Adjust printf formats and types. (James McCoy, closes #7691)
2021-01-17 13:21:20 +01:00
e2edc2ed4a patch 8.2.2366: when using ":sleep" the cursor is always displayed
Problem:    When using ":sleep" the cursor is always displayed.
Solution:   Do not display the cursor when using ":sleep!". (Jeremy Lerner,
            closes #7688)
2021-01-16 20:21:23 +01:00
70250fb4d2 patch 8.2.2365: Vim9: no check for map() changing item type at script level
Problem:    Vim9: no check for map() changing item type at script level.
Solution:   Check the new value type.
2021-01-16 19:01:53 +01:00
f898f7c68d patch 8.2.2364: Vim9: line break in lambda accesses freed memory
Problem:    Vim9: line break in lambda accesses freed memory.
Solution:   Make a copy of the return type. (closes #7664)
2021-01-16 18:09:52 +01:00
9ebcf231bd patch 8.2.2363: curpos() does not accept a string argument as before
Problem:    curpos() does not accept a string argument as before.
solution:   Make a string argument work again. (Yegappan Lakshmanan,
            closes #7690
2021-01-16 16:52:49 +01:00
351ead09dd patch 8.2.2362: Vim9: check of builtin function argument type is incomplete
Problem:    Vim9: check of builtin function argument type is incomplete.
Solution:   Use need_type() instead of check_arg_type().
2021-01-16 16:07:01 +01:00
7c886db915 patch 8.2.2361: Vim9: no highlight for "s///gc" when using 'opfunc'
Problem:    Vim9: no highlight for "s///gc" when using 'opfunc'.
Solution:   Reset 'lazyredraw' temporarily. (closes #7687)
2021-01-16 14:34:45 +01:00
a3b494d6af patch 8.2.2360: test leaves file behind
Problem:    Test leaves file behind.
Solution:   Delete the right file. (Dominique Pellé, closes #7689)
2021-01-16 13:43:31 +01:00
e2924328c1 patch 8.2.2359: strange test failure with MS-Windows
Problem:    Strange test failure with MS-Windows.
Solution:   Skip the system() call for now.
2021-01-16 13:11:42 +01:00
bf78974ca4 patch 8.2.2358: wrong #ifdef for use_xterm_like_mouse()
Problem:    Wrong #ifdef for use_xterm_like_mouse().
Solution:   Use FEAT_MOUSE_XTERM.
2021-01-16 11:21:40 +01:00
648ea76e1d patch 8.2.2357: Vim9: crash when parsing function return type fails
Problem:    Vim9: crash when parsing function return type fails.
Solution:   Bail out and set return type to "unknown". (closes #7685)
2021-01-15 19:04:32 +01:00
883cf97f10 patch 8.2.2356: Vim9: ":put =expr" does not handle a list properly
Problem:    Vim9: ":put =expr" does not handle a list properly.
Solution:   Use the same logic as eval_to_string_eap(). (closes #7684)
2021-01-15 18:04:43 +01:00
97c6943e11 patch 8.2.2355: stray test failure on Appveyor
Problem:    Stray test failure on Appveyor.
Solution:   Finish insert command.
2021-01-15 16:45:21 +01:00
797e63b9f2 patch 8.2.2354: crash with a weird combination of autocommands
Problem:    Crash with a weird combination of autocommands.
Solution:   Increment b_nwindows when needed. (closes #7674)
2021-01-15 16:22:52 +01:00
17d015b243 patch 8.2.2353: spartql files are not detected
Problem:    Spartql files are not detected.
Solution:   Add the sparql filetype.  (closes #7679)
2021-01-15 13:35:30 +01:00
d44cc593ce patch 8.2.2352: if focus lost/gained is received twice code is not ignored
Problem:    If the focus lost/gained escape sequence is received twice it is
            not ignored. (Christ van Willigen)
Solution:   Adjust the logic to ignore the escape code.
2021-01-14 21:57:58 +01:00
8f81b22e86 patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"
Problem:    Vim9: error message for "throw" in function that was called with
            "silent!".
Solution:   Do not throw the exception when not caught or displayed.
            (closes #7672)
2021-01-14 21:47:06 +01:00
033135eb8e patch 8.2.2350: using "void" for no reason
Problem:    Using "void" for no reason.
Solution:   Use "char *".
2021-01-14 21:40:22 +01:00
2415669348 patch 8.2.2349: Vim9: cannot handle line break after parenthesis at line end
Problem:    Vim9: cannot handle line break after parenthesis at line end.
Solution:   Skip over line break. (closes #7677)
2021-01-14 20:35:49 +01:00
fadd55bd63 patch 8.2.2348: no check for modified files after focus gained
Problem:    No check for modified files after focus gained. (Mathias Stearn)
Solution:   Call ui_focus_change().
2021-01-14 19:19:18 +01:00
e1ee58ac78 patch 8.2.2347: build failure without GUI
Problem:    Build failure without GUI.
Solution:   Add #ifdef.
2021-01-14 19:04:44 +01:00
845b72854d patch 8.2.2346: Codecov reports every little coverage drop
Problem:    Codecov reports every little coverage drop.
Solution:   Tolerate a 0.05% drop. Hide the appveyor config file. (Ozaki
            Kiichi, closes #7678)
2021-01-14 17:55:59 +01:00
681fc3fa78 patch 8.2.2345: no focus events in a terminal
Problem:    No focus events in a terminal.
Solution:   Add the t_fd and t_fe termcap entries and implement detecting
            focus events. (Hayaki Saito, Magnus Groß, closes #7673,
            closes #609, closes #5526)
2021-01-14 17:35:21 +01:00
6601b62943 patch 8.2.2344: using inclusive index for slice is not always desired
Problem:    Using inclusive index for slice is not always desired.
Solution:   Add the slice() method, which has an exclusive index. (closes
            #7408)
2021-01-13 21:47:15 +01:00
c423ad77ed patch 8.2.2343: Vim9: return type of readfile() is any
Problem:    Vim9: return type of readfile() is any.
Solution:   Add readblob() so that readfile() can be expected to always
            return a list of strings. (closes #7671)
2021-01-13 20:38:03 +01:00
9145846b6a patch 8.2.2342: "char" functions may return wrong column in Insert mode
Problem:    "char" functions return the wront column in Insert mode when the
            cursor is beyond the end of the line.
Solution:   Compute the column correctly. (Yegappan Lakshmanan, closes #7669)
2021-01-13 20:08:38 +01:00
1bb4de5302 patch 8.2.2341: expresison command line completion incomplete after "g:"
Problem:    Expresison command line completion shows variables but not
            functions after "g:". (Gary Johnson)
Solution:   Prefix "g:" when needed to a global function.
2021-01-13 19:48:46 +01:00
37487e16da patch 8.2.2340: win_execute() unexpectedly returns number zero when failing
Problem:    win_execute() unexpectedly returns number zero when failing.
Solution:   Return an empty string. (closes #7665)
2021-01-12 22:08:53 +01:00
a47e05f04a patch 8.2.2339: cannot get the type of a value as a string
Problem:    Cannot get the type of a value as a string.
Solution:   Add typename().
2021-01-12 21:49:00 +01:00
64ed4d4398 patch 8.2.2338: Vim9: no error if using job_info() result wrongly
Problem:    Vim9: no error if using job_info() result wrongly.
Solution:   Adjust return type on number of arguments. (closes #7667)
2021-01-12 21:22:31 +01:00
67876de7bb patch 8.2.2337: configure test for GTK only says "no"
Problem:    Configure test for GTK only says "no". (Harm te Hennepe)
Solution:   Hint that a -def package is needed. (closes #5229)
2021-01-12 20:51:24 +01:00
b0e6b51364 patch 8.2.2336: Vim9: not possible to extend dictionary with different type
Problem:    Vim9: it is not possible to extend a dictionary with different
            item types.
Solution:   Add extendnew(). (closes #7666)
2021-01-12 20:23:40 +01:00
7cd24227c0 patch 8.2.2335: Vim9: "silent return" does not restore command modifiers
Problem:    Vim9: "silent return" does not restore command modifiers.
Solution:   Resture command modifiers before returning. (closes #7649)
2021-01-12 18:58:39 +01:00
a0122dcd1c patch 8.2.2334: Pascal-like filetypes not always detected
Problem:    Pascal-like filetypes not always detected.
Solution:   Improved Puppet, InstantFPC and Pascal detection. (Doug Kearns,
            closes #7662)
2021-01-12 17:42:24 +01:00
cb6cbf29e9 patch 8.2.2333: Vim9: warning for uninitialized variable
Problem:    Vim9: warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize "res".
2021-01-12 17:17:01 +01:00
9567efa1b4 patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Problem:    Vim9: missing :endif not reported when using :windo.
Solution:   Pass a getline function to do_cmdline(). (closes #7650)
2021-01-11 22:16:30 +01:00
082517570d patch 8.2.2331: Vim9: wrong error when modifying dict declared with :final
Problem:    Vim9: wrong error when modifying dict declared with :final.
Solution:   Do not check for writable variable when an index follows.
            (closes #7657)
2021-01-11 21:20:18 +01:00
9e1d9e3473 patch 8.2.2330: Vim9: crash when using :trow in a not executed block
Problem:    Vim9: crash when using :trow in a not executed block.
Solution:   Don't generate the instruction when skipping. (closes #7659)
2021-01-11 20:17:34 +01:00
df4c9af7e7 patch 8.2.2329: not all ways Vim can be started are tested
Problem:    Not all ways Vim can be started are tested.
Solution:   Add a test for different program names. (Dominique Pellé,
            closes #7651)
2021-01-11 19:54:42 +01:00
82be4849ee Update runtime files. 2021-01-11 19:40:15 +01:00
48e11c1054 patch 8.2.2328: some test files may not be deleted
Problem:    Some test files may not be deleted.
Solution:   Add a delete() call, correct name. (Dominique Pellé, closes #7654)
2021-01-11 18:47:00 +01:00
16a6f91ccb patch 8.2.2327: debugging code included
Problem:    Debugging code included.
Solution:   Remove the debugging code.
2021-01-10 23:58:28 +01:00
086ae06862 patch 8.2.2326: build error with +eval feature but without +spell
Problem:    Build error with +eval feature but without +spell.
Solution:   Adjust #ifdef. (John Marriott)
2021-01-10 22:56:36 +01:00
75ab91ff34 patch 8.2.2325: Vim9: crash if map() changes the item type
Problem:    Vim9: crash if map() changes the item type.
Solution:   Check that the item type is still OK. (closes #7652)
            Fix problem with mapnew() on range list.
2021-01-10 22:42:50 +01:00
6f02b00bb0 patch 8.2.2324: not easy to get mark en cursor posotion by character count
Problem:    Not easy to get mark en cursor posotion by character count.
Solution:   Add functions that use character index. (Yegappan Lakshmanan,
            closes #7648)
2021-01-10 20:22:54 +01:00
31a11b942a patch 8.2.2323: Vim9: error when inferring type from empty dict/list
Problem:    Vim9: error when inferring type from empty dict/list.
Solution:   When the member is t_unknown use t_any. (closes #7009)
2021-01-10 19:23:27 +01:00
0186e58639 patch 8.2.2322: Vim9: closure nested limiting to one level
Problem:    Vim9: closure nested limiting to one level.
Solution:   Add outer_T.  Also make STOREOUTER work.
2021-01-10 18:33:11 +01:00
ab360526ef patch 8.2.2321: Vim9: cannot nest closures
Problem:    Vim9: cannot nest closures.
Solution:   Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER.
            (closes #7150, closes #7635)
2021-01-10 14:02:28 +01:00
cff40ff986 patch 8.2.2320: Vim9: no error for comparing bool with string
Problem:    Vim9: no error for comparing bool with string.
Solution:   Check for wrong types when comparing. (closes #7639)
2021-01-09 16:21:37 +01:00
657137ca48 patch 8.2.2319: "exptype_T" can be read as "expected type"
Problem:    "exptype_T" can be read as "expected type".
Solution:   Rename to "exprtype_T", expression type.
2021-01-09 15:45:23 +01:00
e7525c5520 patch 8.2.2318: Vim9: string and list index work differently
Problem:    Vim9: string and list index work differently.
Solution:   Make string index work like list index. (closes #7643)
2021-01-09 13:20:37 +01:00
9e0f883f89 patch 8.2.2317: Vim9: command modifier before list unpack doesn't work
Problem:    Vim9: command modifier before list unpack doesn't work.
Solution:   Only recognize "[" directly after the name. (closes #7641)
2021-01-09 12:09:22 +01:00
b657198cb3 patch 8.2.2316: Vim9: cannot list a lambda function
Problem:    Vim9: cannot list a lambda function.
Solution:   Support the <lambda>9 notation, like :disassemble. (closes #7634)
2021-01-08 22:24:19 +01:00
832ea89ca9 patch 8.2.2315: Vim9: "enddef" as dict key misintepreted as function end
Problem:    Vim9: "enddef" as dict key misintepreted as function end.
Solution:   Check for following colon. (closes #7640)
2021-01-08 21:55:26 +01:00
299f3036ec patch 8.2.2314: Vim9: returning zero takes two instructions
Problem:    Vim9: returning zero takes two instructions.
Solution:   Add ISN_RETURN_ZERO.
2021-01-08 20:53:09 +01:00
ece0b87c0f patch 8.2.2313: Vim9: using uninitialized field when parsing range
Problem:    Vim9: using uninitialized field when parsing range. ":silent!" not
            respected when parsing range fails.
Solution:   Initialize ea.skip.  On pattern failure handle it like an error.
            (closes #7636)
2021-01-08 20:40:45 +01:00
467b59c2eb patch 8.2.2312: build failure with Ruby 3.0 and 32 bits
Problem:    Build failure with Ruby 3.0 and 32 bits.
Solution:   Add #ifdef. (closes #7638)
2021-01-08 19:31:39 +01:00
17126b1396 patch 8.2.2311: Vim9: cannot assign to variable that shadows command modifier
Problem:    Vim9: cannot assign to a variable that shadows a command modifier.
Solution:   Check for assignment after possible command modifier.
            (closes #7632)
2021-01-07 22:03:02 +01:00
43b69b39ac patch 8.2.2310: Vim9: winsaveview() return type is too generic
Problem:    Vim9: winsaveview() return type is too generic.
Solution:   use dict<number> instead of dict<any>. (closes #7626)
2021-01-07 20:23:33 +01:00
c37b655443 patch 8.2.2309: 0o777 not recognized as octal
Problem:    0o777 not recognized as octal.
Solution:   Use vim_isodigit(). (Ken Takata, closes #7633, closes #7631)
2021-01-07 19:36:30 +01:00
328eac2b5d patch 8.2.2308: Vim9: no error when assigning lambda to funcref
Problem:    Vim9: no error when assigning lambda to funcref without return
            value.
Solution:   Default return value to "any". (closes #7629)
2021-01-07 19:23:08 +01:00
ebbf11c119 patch 8.2.2307: a shell command in the vimrc causes terminal output
Problem:    A shell command in the vimrc causes terminal output.
Solution:   Do not call starttermcap() after a shell command if the termcap
            wasn't active before.
2021-01-07 14:45:03 +01:00
32b3f82010 patch 8.2.2306: Vim9: when using function reference type is not checked
Problem:    Vim9: when using function reference type is not checked.
Solution:   When using a function reference lookup the type and check the
            argument types. (issue #7629)
2021-01-06 21:59:39 +01:00
b23279d7a2 patch 8.2.2305: Vim9: "++var" and "--var" are silently accepted
Problem:    Vim9: "++var" and "--var" are silently accepted.
Solution:   Give an error message.
2021-01-05 22:08:20 +01:00
0acbf5ae66 patch 8.2.2304: Vim9: no test for unletting an imported variable
Problem:    Vim9: no test for unletting an imported variable.
Solution:   Add a test.  Fix line number in error.
2021-01-05 20:58:25 +01:00
ecac591cce patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Problem:    Vim9: backtick expansion doesn't work for :foldopen.
Solution:   Do recognize backtick expansion. (closes #7621)
2021-01-05 19:23:28 +01:00
a79925a0a8 patch 8.2.2302: Vim9: using an option value may use uninitialized memory
Problem:    Vim9: using an option value may use uninitialized memory.
Solution:   Clear v_lock. (closes #7620)
2021-01-05 17:50:28 +01:00
752fc692ac patch 8.2.2301: Vim9: cannot unlet a dict or list item
Problem:    Vim9: cannot unlet a dict or list item.
Solution:   Add ISN_UNLETINDEX.  Refactor assignment code to use for unlet.
2021-01-04 21:57:11 +01:00
d62d87d8f3 patch 8.2.2300: Vim9: wrong order on type stack when using dict
Problem:    Vim9: wrong order on type stack when using dict.
Solution:   Generate constants before a dict. (closes #7619)
2021-01-04 17:40:12 +01:00
d1510ee946 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Problem:    Vim9: invalid memory access making error message flaky.
Solution:   Do not check cmd_argt for CMD_USER. (issue #7467)
2021-01-04 16:15:58 +01:00
cef1270dec patch 8.2.2298: Vim9: comment right after "(" of function not recognized
Problem:    Vim9: comment right after "(" of function not recognized.
Solution:   Do not skip over white space before calling get_function_args().
            (closes #7613)
2021-01-04 14:09:43 +01:00
0ea0440865 patch 8.2.2297: Vim9: cannot set 'number' to a boolean value
Problem:    Vim9: cannot set 'number' to a boolean value.
Solution:   Use tv_get_bool(). (closes #7615)
2021-01-04 13:37:54 +01:00
014f698cb6 patch 8.2.2296: cannot use CTRL-N and CTRL-P in a popup menu
Problem:    Cannot use CTRL-N and CTRL-P in a popup menu.
Solution:   Use CTRL-N like <Down> and CTRL-P like <Up>. (closes #7614)
2021-01-04 13:18:30 +01:00
d93a7fc1a9 patch 8.2.2295: incsearch does not detect empty pattern properly
Problem:    Incsearch does not detect empty pattern properly.
Solution:   Return magic state when skipping over a pattern. (Christian
            Brabandt, closes #7612, closes #6420)
2021-01-04 12:42:13 +01:00
82c38fe508 patch 8.2.2294: VMS: a few remaining problems
Problem:    VMS: a few remaining problems.
Solution:   Add VMS specific changes. Add Lua support. (Zoltan Arpadffy)
2021-01-04 10:47:26 +01:00
bb0956fc65 patch 8.2.2293: build failure with Motif
Problem:    Build failure with Motif. (Tony Mechelynck)
Solution:   Use empty_option instead of empty_options.
2021-01-03 22:12:15 +01:00
5f63938447 patch 8.2.2292: Vim: expr test fails
Problem:    Vim: expr test fails.
Solution:   Add missing part of "null" support.
2021-01-03 22:05:19 +01:00
6797782127 patch 8.2.2291: Vim9: cannot use "null" for v:null
Problem:    Vim9: cannot use "null" for v:null.
Solution:   Support "null" like "true" and "false". (closes #7495)
2021-01-03 21:53:53 +01:00
2ef951dd31 patch 8.2.2290: Vim9: unlet of global variable cannot be compiled
Problem:    Vim9: unlet of global variable cannot be compiled.
Solution:   Skip over variables that might be defined later. Give an error if
            a subscript is found. (closes #7585)
2021-01-03 20:55:26 +01:00
e5a2dc87fd patch 8.2.2289: Vim9: 'cpo' can become empty
Problem:    Vim9: 'cpo' can become empty.
Solution:   Use empty_option instead of an empty string.  Update quickfix
            buffer after restoring 'cpo'.  (closes #7608)
2021-01-03 19:52:05 +01:00
5afd081cd3 patch 8.2.2288: Vim9: line break and comment not always skipped
Problem:    Vim9: line break and comment not always skipped.
Solution:   Skip over white space and then line break more consistently.
            (closes #7610)
2021-01-03 18:33:13 +01:00
cec77d4530 patch 8.2.2287: sort test fails when locale is French Canadian
Problem:    Sort test fails when locale is French Canadian.
Solution:   Expect a different sort order. (Dominique Pellé, closes #7609)
2021-01-03 17:39:28 +01:00
fefa6c347e patch 8.2.2286: sort test fails when locale is Canadian English
Problem:    Sort test fails when locale is Canadian English. (Neil H Watson)
Solution:   Expect a different sort order. (closes #7609)
2021-01-03 16:18:04 +01:00
b0d8182fa3 patch 8.2.2285: Vim9: cannot set an option to a false
Problem:    Vim9: cannot set an option to a false.
Solution:   For VAR_BOOL use string "0". (closes #7603)
2021-01-03 15:55:10 +01:00
31a201a04a patch 8.2.2284: Vim9: cannot set an option to a boolean value
Problem:    Vim9: cannot set an option to a boolean value.
Solution:   Check for VAR_BOOL. (closes #7603)
2021-01-03 14:47:25 +01:00
e68b02a1c4 patch 8.2.2283: Vim9: crash when lambda has fewer arguments than expected
Problem:    Vim9: crash when lambda has fewer arguments than expected.
Solution:   Don't check arguments when already failed. (closes #7606)
2021-01-03 13:09:51 +01:00
339c1bdbdf patch 8.2.2282: length check mismatch with argument of strncmp()
Problem:    Length check mismatch with argument of strncmp(). (Christian
            Brabandt)
Solution:   Adjust length check.
2021-01-02 20:14:23 +01:00
a11919fa44 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Problem:    Vim9: compiled "wincmd" cannot be followed by bar.
Solution:   Check for bar after "wincmd". (closes #7599)
2021-01-02 19:44:56 +01:00
9d19e4f4ba patch 8.2.2280: fuzzy matching doesn't give access to the scores
Problem:    Fuzzy matching doesn't give access to the scores.
Solution:   Return the scores with a third list. (Yegappan Lakshmanan,
            closes #7596)
2021-01-02 18:31:32 +01:00
508b5618ec patch 8.2.2279: Vim9: memory leak with catch in skipped block
Problem:    Vim9: memory leak with catch in skipped block.
Solution:   Free the pattern if not used.
2021-01-02 18:17:26 +01:00
66c50c5653 patch 8.2.2278: falling back to old regexp engine can some patterns
Problem:    Falling back to old regexp engine can some patterns.
Solution:   Do not fall back once [[:lower:]] or [[:upper:]] is used.
            (Christian Brabandt, closes #7572)
2021-01-02 17:43:49 +01:00
9281c6cae4 patch 8.2.2277: missing backslash
Problem:    Missing backslash.
Solution:   Add backslash.
2021-01-02 17:06:16 +01:00
a72514945b patch 8.2.2276: list of distributed files is outdated
Problem:    List of distributed files is outdated.
Solution:   Update the file list.  Minor comment updates.
2021-01-02 16:53:13 +01:00
7e6a515ed1 Update runtime files. 2021-01-02 16:39:53 +01:00
02faa944c6 patch 8.2.2275: CTRL-C not recognized in Mintty
Problem:    CTRL-C not recognized in Mintty.
Solution:   Recognize the modifyOtherKeys code ending in "u". (Christian
            Brabandt, closes #7575)
2021-01-02 16:17:18 +01:00
2f91e2f8da patch 8.2.2274: badge for Travis is outdated
Problem:    badge for Travis is outdated.
Solution:   Update badge for move from travis-ci.org to travis-ci.com.
2021-01-02 16:06:44 +01:00
628c102d12 patch 8.2.2273: build failure
Problem:    Build failure.
Solution:   Add missing changes to header file.
2021-01-02 15:49:28 +01:00
aa210a3aec patch 8.2.2272: Vim9: extend() can violate the type of a variable
Problem:    Vim9: extend() can violate the type of a variable.
Solution:   Add the type to the dictionary or list and check items against it.
            (closes #7593)
2021-01-02 15:41:03 +01:00
3e0107ea16 patch 8.2.2271: ml_get error when changing hidden buffer in Python
Problem:    ml_get error when changing hidden buffer in Python.
Solution:   Block updating folds. (closes #7598)
2021-01-02 13:53:59 +01:00
38a434f7ba patch 8.2.2270: warning for size_t to int conversion
Problem:    Warning for size_t to int conversion. (Randall W. Morris)
Solution:   Add a type cast.
2021-01-02 12:45:45 +01:00
edc10b541b patch 8.2.2269: not all :hardcopy code covered by tests
Problem:    Not all :hardcopy code covered by tests.
Solution:   Test more combinations. (Dominique Pellé, closes #7595)
2021-01-01 21:34:37 +01:00
3862ea3f62 patch 8.2.2268: Vim9: list unpack seen as declaration
Problem:    Vim9: list unpack seen as declaration.
Solution:   Check for "var". (closes #7594)
2021-01-01 21:05:55 +01:00
c368957b19 patch 8.2.2267: Vim9: cannot use unlet for a dict member
Problem:    Vim9: cannot use unlet for a dict member.
Solution:   Pass GLV_NO_DECL to get_lval(). (closes #7585)
2021-01-01 19:40:02 +01:00
e7a73e0762 patch 8.2.2266: Vim9: it can be hard to see where white space is missing
Problem:    Vim9: it can be hard to see where white space is missing.
Solution:   Mention the text where the error was seen. (closes #7580)
2021-01-01 19:17:55 +01:00
b8ba9b9197 patch 8.2.2265: error message for missing endfunc/enddef is last line
Problem:    Error message for missing endfunc/enddef is last line.
Solution:   Report the line where the function starts. (closes #7582)
2021-01-01 18:54:34 +01:00
5178b1b02f patch 8.2.2264: Vim9: no error for mismatched :endfunc or :enddef
Problem:    Vim9: no error for mismatched :endfunc or :enddef.
Solution:   Check for the mismatch. (issue #7582)
2021-01-01 18:43:51 +01:00
69f7050ceb patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Problem:    Vim9: compilation error with try-catch in skipped block.
Solution:   Do not bail out when generate_instr() returns NULL. (closes #7584)
2021-01-01 16:10:46 +01:00
a8b8af19e4 patch 8.2.2262: Vim9: converting bool to string prefixes v:
Problem:    Vim9: converting bool to string prefixes v:.
Solution:   Do not use the v: prefix.
2021-01-01 15:11:04 +01:00
d5ea8f08f7 patch 8.2.2261: Vim9: boolean option gets string type
Problem:    Vim9: boolean option gets string type.
Solution:   Check for VAR_BOOL. (closes #7588)
2021-01-01 14:49:15 +01:00
5efe0e5d16 patch 8.2.2260: window resize test fails in very wide terminal
Problem:    Window resize test fails in very wide terminal.
Solution:   Resize using the 'columns' option.  (Vladimir Lomov, closes #7592)
2021-01-01 14:31:34 +01:00
a387083b2f patch 8.2.2259: Test_Executable() fails when using chroot
Problem:    Test_Executable() fails when using chroot.
Solution:   Ignore the difference between "sbin" and "bin".
2021-01-01 14:20:44 +01:00
beef4eeda5 patch 8.2.2258: not all OCaml related files are detected
Problem:    Not all OCaml related files are detected.
Solution:   Update OCaml file type detection.  (Markus Mottl, closes #7590)
2021-01-01 13:54:00 +01:00
2949cfdbe4 patch 8.2.2257: Vim9: using -> for lambda is ambiguous
Problem:    Vim9: using -> for lambda is ambiguous.
Solution:   Stop supporting ->, must use =>.
2020-12-31 21:28:47 +01:00
adc8e44645 patch 8.2.2256: Vim9: cannot use function( after line break in :def function
Problem:    Vim9: cannot use function( after line break in :def function.
Solution:   Check for "(" after "function". (closes #7581)
2020-12-31 18:28:18 +01:00
1779ff4842 patch 8.2.2255: Tcl test fails
Problem:    Tcl test fails.
Solution:   Change option handling.
2020-12-31 18:11:16 +01:00
dd1f426bd6 patch 8.2.2254: Vim9: bool option type is number
Problem:    Vim9: bool option type is number.
Solution:   Have get_option_value() return a different value for bool and
            number options. (closes #7583)
2020-12-31 17:41:01 +01:00
ca2f7e7af3 patch 8.2.2253: Vim9: expr test fails
Problem:    Vim9: expr test fails.
Solution:   Add missing assignment.
2020-12-31 13:39:54 +01:00
6b55377303 patch 8.2.2252: Vim9: crash when using lambda without return type in dict
Problem:    Vim9: crash when using lambda without return type in dict.
Solution:   Without a return type use t_unknown. (closes #7587)
2020-12-31 13:31:23 +01:00
a04d447d3a patch 8.2.2251: test failures in legacy script
Problem:    Test failures in legacy script.
Solution:   Check for Vim9 script.
2020-12-30 21:16:37 +01:00
de4f95b041 patch 8.2.2250: Vim9: sublist is ambiguous
Problem:    Vim9: sublist is ambiguous.
Solution:   Require white space around the colon. (closes #7409)
2020-12-30 20:39:21 +01:00
2a5c61a019 patch 8.2.2249: termcodes test is flaky when used over ssh
Problem:    Termcodes test is flaky when used over ssh with X forwarding.
Solution:   Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576,
            closes #7563)
2020-12-30 14:59:23 +01:00
2808da39f9 patch 8.2.2248: ASAN error on exit with GUI
Problem:    ASAN error on exit with GUI.
Solution:   Check the window still has lines. (Christian Brabandt,
            closes #7573)
2020-12-30 14:08:35 +01:00
501 changed files with 33791 additions and 11729 deletions

6
.codecov.yml Normal file
View File

@ -0,0 +1,6 @@
coverage:
range: "80...100"
status:
project:
default:
threshold: 0.05%

50
.github/CODEOWNERS vendored
View File

@ -9,9 +9,6 @@
# So if a pull request only touches javascript files, only these owners
# will be requested to review.
src/iscygpty.* @k-takata
src/libvterm/ @leonerd
runtime/autoload/getscript.vim @cecamp
runtime/autoload/netrw.vim @cecamp
runtime/autoload/netrwFileHandlers.vim @cecamp
@ -22,6 +19,7 @@ runtime/autoload/vimball.vim @cecamp
runtime/autoload/xmlformat.vim @chrisbra
runtime/autoload/zip.vim @cecamp
runtime/compiler/checkstyle.vim @dkearns
runtime/compiler/cm3.vim @dkearns
runtime/compiler/cucumber.vim @tpope
runtime/compiler/dart.vim @dkearns
runtime/compiler/dart2js.vim @dkearns
@ -31,6 +29,7 @@ runtime/compiler/dartdevc.vim @dkearns
runtime/compiler/dartdoc.vim @dkearns
runtime/compiler/dartfmt.vim @dkearns
runtime/compiler/eruby.vim @dkearns
runtime/compiler/fbc.vim @dkearns
runtime/compiler/gawk.vim @dkearns
runtime/compiler/gjs.vim @dkearns
runtime/compiler/haml.vim @tpope
@ -41,6 +40,7 @@ runtime/compiler/jshint.vim @dkearns
runtime/compiler/jsonlint.vim @dkearns
runtime/compiler/lazbuild.vim @dkearns
runtime/compiler/php.vim @dkearns
runtime/compiler/powershell.vim @heaths
runtime/compiler/rake.vim @tpope @dkearns
runtime/compiler/rhino.vim @dkearns
runtime/compiler/rspec.vim @tpope @dkearns
@ -50,6 +50,7 @@ runtime/compiler/rubyunit.vim @dkearns
runtime/compiler/sass.vim @tpope
runtime/compiler/se.vim @dkearns
runtime/compiler/shellcheck.vim @dkearns
runtime/compiler/sml.vim @dkearns
runtime/compiler/stylelint.vim @dkearns
runtime/compiler/tcl.vim @dkearns
runtime/compiler/tidy.vim @dkearns
@ -65,13 +66,17 @@ 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/awk.vim @dkearns
runtime/ftplugin/basic.vim @dkearns
runtime/ftplugin/bst.vim @tpope
runtime/ftplugin/cfg.vim @chrisbra
runtime/ftplugin/css.vim @dkearns
runtime/ftplugin/cucumber.vim @tpope
runtime/ftplugin/eiffel.vim @dkearns
runtime/ftplugin/eruby.vim @tpope @dkearns
runtime/ftplugin/fpcmake.vim @dkearns
runtime/ftplugin/freebasic.vim @dkearns
runtime/ftplugin/git.vim @tpope
runtime/ftplugin/gitcommit.vim @tpope
runtime/ftplugin/gitconfig.vim @tpope
@ -84,15 +89,25 @@ runtime/ftplugin/javascript.vim @dkearns
runtime/ftplugin/javascriptreact.vim @dkearns
runtime/ftplugin/kconfig.vim @chrisbra
runtime/ftplugin/liquid.vim @tpope
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/modula3.vim @dkearns
runtime/ftplugin/nroff.vim @a-vrma
runtime/ftplugin/nsis.vim @k-takata
runtime/ftplugin/pascal.vim @dkearns
runtime/ftplugin/pbtxt.vim @lakshayg
runtime/ftplugin/pdf.vim @tpope
runtime/ftplugin/ps1.vim @heaths
runtime/ftplugin/ps1xml.vim @heaths
runtime/ftplugin/ruby.vim @tpope @dkearns
runtime/ftplugin/sass.vim @tpope
runtime/ftplugin/scss.vim @tpope
runtime/ftplugin/spec.vim @ignatenkobrain
runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/tidy.vim @dkearns
runtime/ftplugin/tmux.vim @ericpruitt
runtime/ftplugin/typescript.vim @dkearns
runtime/ftplugin/typescriptreact.vim @dkearns
@ -105,11 +120,14 @@ runtime/indent/eruby.vim @tpope @dkearns
runtime/indent/gitconfig.vim @tpope
runtime/indent/haml.vim @tpope
runtime/indent/liquid.vim @tpope
runtime/indent/meson.vim @Liambeguin
runtime/indent/nsis.vim @k-takata
runtime/indent/ps1.vim @heaths
runtime/indent/ruby.vim @AndrewRadev @dkearns
runtime/indent/sass.vim @tpope
runtime/indent/scss.vim @tpope
runtime/indent/sh.vim @chrisbra
runtime/indent/systemverilog.vim @Kocha
runtime/indent/teraterm.vim @k-takata
runtime/indent/xml.vim @chrisbra
runtime/indent/zsh.vim @chrisbra
@ -126,45 +144,62 @@ runtime/syntax/aidl.vim @dpelle
runtime/syntax/amiga.vim @cecamp
runtime/syntax/asm.vim @dkearns
runtime/syntax/asmh8300.vim @dkearns
runtime/syntax/asterisk.vim @jaunis
runtime/syntax/awk.vim @dkearns
runtime/syntax/basic.vim @dkearns
runtime/syntax/bst.vim @tpope
runtime/syntax/cabal.vim @coot
runtime/syntax/cabalconfig.vim @coot
runtime/syntax/cabalproject.vim @coot
runtime/syntax/cs.vim @nickspoons
runtime/syntax/cs.vim @nickspoons
runtime/syntax/csh.vim @cecamp
runtime/syntax/cucumber.vim @tpope
runtime/syntax/datascript.vim @dpelle
runtime/syntax/dcl.vim @cecamp
runtime/syntax/desktop.vim @e-kwsm
runtime/syntax/dot.vim @mmottl
runtime/syntax/doxygen.vim @frogonwheels
runtime/syntax/dtd.vim @chrisbra
runtime/syntax/dts.vim @zonque
runtime/syntax/elmfilt.vim @cecamp
runtime/syntax/eruby.vim @tpope @dkearns
runtime/syntax/exports.vim @cecamp
runtime/syntax/fpcmake.vim @dkearns
runtime/syntax/git.vim @tpope
runtime/syntax/gitcommit.vim @tpope
runtime/syntax/gitconfig.vim @tpope
runtime/syntax/gitrebase.vim @tpope
runtime/syntax/gprof.vim @dpelle
runtime/syntax/groff.vim @jmarshall
runtime/syntax/haml.vim @tpope
runtime/syntax/haskell.vim @coot
runtime/syntax/hgcommit.vim @k-takata
runtime/syntax/kconfig.vim @chrisbra
runtime/syntax/less.vim @genoma
runtime/syntax/lex.vim @cecamp
runtime/syntax/liquid.vim @tpope
runtime/syntax/lisp.vim @cecamp
runtime/syntax/lynx.vim @dkearns
runtime/syntax/m3build.vim @dkearns
runtime/syntax/m3quake.vim @dkearns
runtime/syntax/mailcap.vim @dkearns
runtime/syntax/make.vim @rohieb
runtime/syntax/make.vim @rohieb
runtime/syntax/maple.vim @cecamp
runtime/syntax/markdown.vim @tpope
runtime/syntax/meson.vim @Liambeguin
runtime/syntax/modula3.vim @dkearns
runtime/syntax/netrw.vim @cecamp
runtime/syntax/nroff.vim @jmarshall
runtime/syntax/nsis.vim @k-takata
runtime/syntax/pascal.vim @dkearns
runtime/syntax/pbtxt.vim @lakshayg
runtime/syntax/pdf.vim @tpope
runtime/syntax/php.vim @TysonAndre
runtime/syntax/privoxy.vim @dkearns
runtime/syntax/prolog.vim @XVilka
runtime/syntax/ps1.vim @heaths
runtime/syntax/ps1xml.vim @heaths
runtime/syntax/psl.vim @danielkho
runtime/syntax/rc.vim @chrisbra
runtime/syntax/rpcgen.vim @cecamp
runtime/syntax/ruby.vim @dkearns
@ -174,7 +209,10 @@ runtime/syntax/sh.vim @cecamp
runtime/syntax/sm.vim @cecamp
runtime/syntax/spec.vim @ignatenkobrain
runtime/syntax/sqloracle.vim @chrisbra
runtime/syntax/sshconfig.vim @Jakuje
runtime/syntax/sshdconfig.vim @Jakuje
runtime/syntax/sudoers.vim @e-kwsm
runtime/syntax/systemverilog.vim @Kocha
runtime/syntax/tags.vim @cecamp
runtime/syntax/teraterm.vim @k-takata
runtime/syntax/tex.vim @cecamp
@ -193,6 +231,8 @@ runtime/tutor/tutor.eo @dpelle
runtime/tutor/tutor.eo.utf-8 @dpelle
runtime/tutor/tutor.fr @dpelle
runtime/tutor/tutor.fr.utf-8 @dpelle
src/iscygpty.* @k-takata
src/libvterm/ @leonerd
src/po/de.po @chrisbra
src/po/eo.po @dpelle
src/po/fr.po @dpelle

View File

@ -7,7 +7,7 @@ on:
jobs:
linux:
runs-on: ubuntu-latest
runs-on: ubuntu-18.04
env:
CC: ${{ matrix.compiler }}
@ -208,6 +208,7 @@ jobs:
TRAVIS_JOB_ID: ${{ github.run_id }}
run: |
sudo apt-get install -y python3-setuptools python3-wheel
sudo -H pip3 install pip -U
# needed for https support for coveralls building cffi only works with gcc, not with clang
CC=gcc pip3 install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
@ -227,7 +228,7 @@ jobs:
done
coveralls:
runs-on: ubuntu-latest
runs-on: ubuntu-18.04
needs: linux
if: always() && github.event_name != 'pull_request'

1
.gitignore vendored
View File

@ -25,7 +25,6 @@ src/auto/pathdef.c
# Windows
*.exe
*.idb
*.manifest
*.exp
*.map
*.obj

View File

@ -26,7 +26,6 @@ src/auto/pathdef.c
# Windows
*.exe
*.idb
*.manifest
*.exp
*.map
*.obj

View File

@ -3,20 +3,24 @@
# source files for all source archives
SRC_ALL = \
.gitignore \
.cirrus.yml \
.coveralls.yml \
.gitattributes \
.github/CODEOWNERS \
.github/workflows/ci.yml \
.github/workflows/codeql-analysis.yml \
.gitignore \
.hgignore \
.lgtm.yml \
.travis.yml \
.cirrus.yml \
.github/workflows/ci.yml \
.github/workflows/codeql-analysis.yml \
.github/CODEOWNERS \
appveyor.yml \
.appveyor.yml \
.codecov.yml \
ci/appveyor.bat \
ci/build-snd-dummy.sh \
ci/config.mk*.sed \
ci/if_ver*.vim \
ci/load-snd-dummy.sh \
ci/config.mk*.sed \
ci/setup-xvfb.sh \
src/Make_all.mak \
src/README.md \
src/alloc.h \
@ -433,7 +437,6 @@ SRC_UNIX = \
src/gui_gtk_x11.c \
src/gui_gtk_res.xml \
src/gui_motif.c \
src/gui_xim.c \
src/gui_xmdlg.c \
src/gui_xmebw.c \
src/gui_xmebw.h \
@ -457,7 +460,6 @@ SRC_UNIX = \
src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \
src/proto/gui_motif.pro \
src/proto/gui_xim.pro \
src/proto/gui_xmdlg.pro \
src/proto/gui_x11.pro \
src/proto/if_xcmdsrv.pro \
@ -477,6 +479,7 @@ SRC_UNIX = \
# source files for both DOS and Unix
SRC_DOS_UNIX = \
src/gui_xim.c \
src/if_cscope.c \
src/if_cscope.h \
src/if_lua.c \
@ -489,6 +492,7 @@ SRC_DOS_UNIX = \
src/if_py_both.h \
src/if_ruby.c \
src/if_tcl.c \
src/proto/gui_xim.pro \
src/proto/if_cscope.pro \
src/proto/if_lua.pro \
src/proto/if_mzsch.pro \
@ -563,7 +567,7 @@ SRC_DOS = \
src/uninstall.c \
src/vim.def \
src/vim.rc \
src/gvim.exe.mnf \
src/vim.manifest \
src/vimrun.c \
src/xpm_w32.c \
src/xpm_w32.h \

View File

@ -94,7 +94,7 @@ MINOR = 2
# src/Makefile, README.txt, README.md, src/README.md, READMEdir/README*.txt,
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
# src/gvim.exe.mnf.
# src/vim.manifest.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, Lua, Cscope and
# "huge" features. Add MZscheme if you can make it work.
# Use "make reconfig" after selecting the configure arguments.

View File

@ -1,18 +1,20 @@
[![Vim Logo](https://github.com/vim/vim/raw/master/runtime/vimlogo.gif)](https://www.vim.org)
[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [![Travis Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim) [![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) [![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) [![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp) [![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) [![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) [![Fossies codespell report](https://fossies.org/linux/test/vim-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [![Travis Build Status](https://travis-ci.com/vim/vim.svg?branch=master)](https://travis-ci.com/github/vim/vim) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim) [![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) [![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) [![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp) [![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) [![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) [![Fossies codespell report](https://fossies.org/linux/test/vim-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
<sub>For translations of this README see the end.</sub>
## What is Vim? ##
Vim is a greatly improved version of the good old UNIX editor Vi. Many new
Vim is a greatly improved version of the good old UNIX editor
[Vi](https://en.wikipedia.org/wiki/Vi). Many new
features have been added: multi-level undo, syntax highlighting, command line
history, on-line help, spell checking, filename completion, block operations,
script language, etc. There is also a Graphical User Interface (GUI)
available. Still, Vi compatibility is maintained, those who have Vi "in the
fingers" will feel at home. See `runtime/doc/vi_diff.txt` for differences with
fingers" will feel at home.
See [`runtime/doc/vi_diff.txt`](runtime/doc/vi_diff.txt) for differences with
Vi.
This editor is very useful for editing programs and other plain text files.
@ -42,7 +44,7 @@ want or must compile it yourself. Check http://www.vim.org/download.php for
an overview of currently available distributions.
Some popular places to get the latest Vim:
* Check out the git repository from [github](https://github.com/vim/vim).
* Check out the git repository from [GitHub](https://github.com/vim/vim).
* Get the source code as an [archive](https://github.com/vim/vim/releases).
* Get a Windows executable from the
[vim-win32-installer](https://github.com/vim/vim-win32-installer/releases) repository.
@ -53,14 +55,14 @@ Some popular places to get the latest Vim:
If you obtained a binary distribution you don't need to compile Vim. If you
obtained a source distribution, all the stuff for compiling Vim is in the
`src` directory. See `src/INSTALL` for instructions.
[`src`](/src) directory. See [`src/INSTALL`](src/INSTALL) for instructions.
## Installation ##
See one of these files for system-specific instructions. Either in the
READMEdir directory (in the repository) or the top directory (if you unpack an
archive):
[READMEdir directory](./READMEdir/) (in the repository) or
the top directory (if you unpack an archive):
README_ami.txt Amiga
README_unix.txt Unix
@ -78,8 +80,9 @@ The Vim tutor is a one hour training course for beginners. Often it can be
started as `vimtutor`. See `:help tutor` for more information.
The best is to use `:help` in Vim. If you don't have an executable yet, read
`runtime/doc/help.txt`. It contains pointers to the other documentation
files. The User Manual reads like a book and is recommended to learn to use
[`runtime/doc/help.txt`](/runtime/doc/help.txt).
It contains pointers to the other documentation files.
The User Manual reads like a book and is recommended to learn to use
Vim. See `:help user-manual`.
@ -87,7 +90,8 @@ Vim. See `:help user-manual`.
Vim is Charityware. You can use and copy it as much as you like, but you are
encouraged to make a donation to help orphans in Uganda. Please read the file
`runtime/doc/uganda.txt` for details (do `:help uganda` inside Vim).
[`runtime/doc/uganda.txt`](runtime/doc/uganda.txt)
for details (do `:help uganda` inside Vim).
Summary of the license: There are no restrictions on using or distributing an
unmodified copy of Vim. Parts of Vim may also be distributed, but the license
@ -103,8 +107,8 @@ your appreciation for the work and motivate Bram and others to continue
working on Vim please send a donation.
Since Bram is back to a paid job the money will now be used to help children
in Uganda. See `runtime/doc/uganda.txt`. But at the same time donations
increase Bram's motivation to keep working on Vim!
in Uganda. See [`runtime/doc/uganda.txt`](runtime/doc/uganda.txt). But
at the same time donations increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
http://www.vim.org/sponsor/
@ -112,7 +116,8 @@ For the most recent information about sponsoring look on the Vim web site:
## Contributing ##
If you would like to help making Vim better, see the [CONTRIBUTING.md](https://github.com/vim/vim/blob/master/CONTRIBUTING.md) file.
If you would like to help making Vim better, see the
[CONTRIBUTING.md](/CONTRIBUTING.md) file.
## Information ##

View File

@ -70,6 +70,7 @@ the text. For example, reindent all the lines:
| Vim new | 0.190276 |
The differences are smaller, but Vim 9 script is clearly the fastest.
Using LuaJIT gives 0.25, only a little bit faster than plain Lua.
How does Vim9 script work? The function is first compiled into a sequence of
instructions. Each instruction has one or two parameters and a stack is

View File

@ -1,28 +1,12 @@
README_mac.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Macintosh systems.
This file explains the installation of Vim on MacOS systems.
See "README.txt" for general information about Vim.
To build from source get the files with git from https://github.com/vim/vim.
The find the instructions in src/INSTALLmac.txt.
To build from sources, like on Unix
1. Get the build tools: "clang" and "make". These can be installed with the
"CommandLineTools" package. If you don't have one, do
xcode-select --install
Just like for any software development with OS X.
2. Get the source code. Best is to use git (which you need to install first),
see http://www.vim.org/git.php
Or you can download and unpack the Unix tar archive, see
http://www.vim.org/download.php
3. Go to the top directory of the source tree, do
make
sudo make install
A newly built vim will be installed under "/usr/local".
If you can't manage to make this work, there is a fallback using Homebrew:
Installing Vim using Homebrew:
1. Install Homebrew from http://brew.sh/
2. Install latest Vim with: brew install vim
2. Install the latest Vim with:
brew install vim

View File

@ -11,7 +11,11 @@ sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
echo "Building MSVC 64bit console Version"
nmake -f Make_mvc2.mak CPU=AMD64 ^
OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
FEATURES=%FEATURE% || exit 1
FEATURES=%FEATURE%
if not exist vim.exe (
echo Build failure.
exit 1
)
:: build MSVC huge version with python and channel support
:: GUI needs to be last, so that testing works
@ -21,16 +25,20 @@ if "%FEATURE%" == "HUGE" (
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 ^
FEATURES=%FEATURE% || exit 1
FEATURES=%FEATURE%
) ELSE (
nmake -f Make_mvc2.mak CPU=AMD64 ^
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
FEATURES=%FEATURE% || exit 1
FEATURES=%FEATURE%
)
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt
if not exist gvim.exe (
echo Build failure.
exit 1
)
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt || exit 1
echo "version output MSVC console"
.\vim --version
.\vim --version || exit 1
echo "version output MSVC GUI"
type ver_msvc.txt
type ver_msvc.txt || exit 1
cd ..

View File

@ -6,7 +6,7 @@ if 1
echo "*** Interface versions ***\n"
echo 'Lua:'
PrintVer lua print(_VERSION)
PrintVer lua print(vim.lua_version, jit and "(LuaJIT)" or "")
echo 'MzScheme:'
PrintVer mzscheme (display (version))

View File

@ -66,6 +66,9 @@ To build the installable .exe:
Install NSIS if you didn't do that already.
Also install UPX, if you want a compressed file.
Download and include the ShellExecAsUser.dll Unicode version which can be
sourced from: https://nsis.sourceforge.io/ShellExecAsUser_plug-in
Unpack the images:
cd nsis

View File

@ -119,9 +119,9 @@ RequestExecutionLevel highest
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_LICENSEPAGE_CHECKBOX
!define MUI_FINISHPAGE_RUN "$0\gvim.exe"
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_FUNCTION LaunchApplication
!define MUI_FINISHPAGE_RUN_TEXT $(str_show_readme)
!define MUI_FINISHPAGE_RUN_PARAMETERS "-R $\"$0\README.txt$\""
# This adds '\Vim' to the user choice automagically. The actual value is
# obtained below with CheckOldVim.
@ -300,6 +300,11 @@ Function CheckOldVim
Exch $0 # put $0 on top of stack, restore $0 to original value
FunctionEnd
Function LaunchApplication
SetOutPath $0
ShellExecAsUser::ShellExecAsUser "" "$0\gvim.exe" '-R "$0\README.txt"'
FunctionEnd
##########################################################
Section "$(str_section_old_ver)" id_section_old_ver
SectionIn 1 2 3 RO
@ -359,6 +364,8 @@ Section "$(str_section_exe)" id_section_exe
SetOutPath $0\colors
File ${VIMRT}\colors\*.*
SetOutPath $0\colors\tools
File ${VIMRT}\colors\tools\*.*
SetOutPath $0\compiler
File ${VIMRT}\compiler\*.*

View File

@ -24,7 +24,7 @@ LangString ^UninstallCaption ${LANG_ENGLISH} \
# "Destination Folder (Must end with $\"vim$\")"
LangString str_show_readme ${LANG_ENGLISH} \
"Show README after installation finish"
"Show README after installation finished"
# Install types:
LangString str_type_typical ${LANG_ENGLISH} \

File diff suppressed because one or more lines are too long

View File

@ -362,6 +362,10 @@ func dist#ft#FTinc()
setf aspvbs
elseif lines =~ "<?"
setf php
" Pascal supports // comments but they're vary rarely used for file
" headers so assume POV-Ray
elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? s:ft_pascal_keywords
setf pascal
else
call dist#ft#FTasmsyntax()
if exists("b:asmsyntax")
@ -408,6 +412,9 @@ func dist#ft#FTprogress_asm()
setf progress
endfunc
let s:ft_pascal_comments = '^\s*\%({\|(\*\|//\)'
let s:ft_pascal_keywords = '^\s*\%(program\|unit\|library\|uses\|begin\|procedure\|function\|const\|type\|var\)\>'
func dist#ft#FTprogress_pascal()
if exists("g:filetype_p")
exe "setf " . g:filetype_p
@ -419,8 +426,7 @@ func dist#ft#FTprogress_pascal()
let lnum = 1
while lnum <= 10 && lnum < line('$')
let line = getline(lnum)
if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
\ || line =~ '^\s*{' || line =~ '^\s*(\*'
if line =~ s:ft_pascal_comments || line =~? s:ft_pascal_keywords
setf pascal
return
elseif line !~ '^\s*$' || line =~ '^/\*'
@ -433,6 +439,19 @@ func dist#ft#FTprogress_pascal()
setf progress
endfunc
func dist#ft#FTpp()
if exists("g:filetype_pp")
exe "setf " . g:filetype_pp
else
let line = getline(nextnonblank(1))
if line =~ s:ft_pascal_comments || line =~? s:ft_pascal_keywords
setf pascal
else
setf puppet
endif
endif
endfunc
func dist#ft#FTr()
let max = line("$") > 50 ? 50 : line("$")

View File

@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2018 Oct 10
" Last Change: 2021 Feb 08
"
" OPTIONS:
"
@ -122,7 +122,6 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
endif
endif
" If exists b:php_menu it means completion was already constructed we
" don't need to do anything more
if exists("b:php_menu")
@ -148,8 +147,6 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
try
let eventignore = &eventignore
let &eventignore = 'all'
let winheight = winheight(0)
let winnr = winnr()
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.')))
@ -183,7 +180,6 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
endif
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
let classcontent .= "\n".phpcomplete#GetClassContents(classlocation, classname)
let sccontent = split(classcontent, "\n")
@ -217,7 +213,6 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
return phpcomplete#CompleteGeneral(a:base, current_namespace, imports)
endif
finally
silent! exec winnr.'resize '.winheight
let &eventignore = eventignore
endtry
endfunction
@ -1025,7 +1020,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let c_var = '$'.c_var
endif
let c_variables[c_var] = ''
if g:phpcomplete_parse_docblock_comments && len(get(variables, var_index)) > 0
if g:phpcomplete_parse_docblock_comments && len(get(variables, var_index, '')) > 0
let c_doc[c_var] = phpcomplete#GetDocBlock(a:sccontent, variables[var_index])
endif
let var_index += 1
@ -2082,26 +2077,17 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
" ...
" ]
"
let full_file_path = fnamemodify(a:file_path, ':p')
let class_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
let cfile = join(a:file_lines, "\n")
let full_file_path = fnamemodify(a:file_path, ':p')
let result = []
" We use new buffer and (later) normal! because
" this is the most efficient way. The other way
" is to go through the looong string looking for
" matching {}
let popup_id = popup_create(a:file_lines, {'hidden': v:true})
" remember the window we started at
let phpcomplete_original_window = winnr()
call win_execute(popup_id, 'call search(''\c\(class\|interface\|trait\)\_s\+'.a:class_name.'\(\>\|$\)'')')
call win_execute(popup_id, "let cfline = line('.')")
call win_execute(popup_id, "call search('{')")
call win_execute(popup_id, "let endline = line('.')")
silent! below 1new
silent! 0put =cfile
call search('\c\(class\|interface\|trait\)\_s\+'.a:class_name.'\(\>\|$\)')
let cfline = line('.')
call search('{')
let endline = line('.')
let content = join(getline(cfline, endline), "\n")
call win_execute(popup_id, 'let content = join(getline('.cfline.', '.endline.'), "\n")')
" Catch extends
if content =~? 'extends'
let extends_string = matchstr(content, '\(class\|interface\)\_s\+'.a:class_name.'\_.\+extends\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze\(extends\|{\)')
@ -2117,14 +2103,16 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
else
let implemented_interfaces = []
endif
call searchpair('{', '', '}', 'W')
let class_closing_bracket_line = line('.')
call win_execute(popup_id, 'let [class_closing_bracket_line, class_closing_bracket_col] = searchpairpos("{", "", "}", "W")')
" Include class docblock
let doc_line = cfline - 1
if getline(doc_line) =~? '^\s*\*/'
call win_execute(popup_id, 'let l = getline('.doc_line.')')
if l =~? '^\s*\*/'
while doc_line != 0
if getline(doc_line) =~? '^\s*/\*\*'
call win_execute(popup_id, 'let l = getline('.doc_line.')')
if l =~? '^\s*/\*\*'
let cfline = doc_line
break
endif
@ -2132,22 +2120,22 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
endwhile
endif
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
call win_execute(popup_id, 'let classcontent = join(getline('.cfline.', '.class_closing_bracket_line.'), "\n")')
let used_traits = []
" move back to the line next to the class's definition
call cursor(endline + 1, 1)
call win_execute(popup_id, 'call cursor('.(endline + 1).', 1)')
let keep_searching = 1
while keep_searching != 0
" try to grab "use..." keywords
let [lnum, col] = searchpos('\c^\s\+use\s\+'.class_name_pattern, 'cW', class_closing_bracket_line)
let syn_name = synIDattr(synID(lnum, col, 0), "name")
call win_execute(popup_id, 'let [lnum, col] = searchpos(''\c^\s\+use\s\+'.class_name_pattern.''', "cW", '.class_closing_bracket_line.')')
call win_execute(popup_id, 'let syn_name = synIDattr(synID('.lnum.', '.col.', 0), "name")')
if syn_name =~? 'string\|comment'
call cursor(lnum + 1, 1)
call win_execute(popup_id, 'call cursor('.(lnum + 1).', 1)')
continue
endif
let trait_line = getline(lnum)
call win_execute(popup_id, 'let trait_line = getline('.lnum.')')
if trait_line !~? ';'
" try to find the next line containing ';'
let l = lnum
@ -2157,25 +2145,23 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
while search_line !~? ';' && l > 0
" file lines are reversed so we need to go backwards
let l += 1
let search_line = getline(l)
call win_execute(popup_id, 'let search_line = getline('.l.')')
let trait_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
endwhile
endif
let use_expression = matchstr(trait_line, '^\s*use\s\+\zs.\{-}\ze;')
let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
let used_traits += map(use_parts, 'substitute(v:val, "\\s", "", "g")')
call cursor(lnum + 1, 1)
call win_execute(popup_id, 'call cursor('.(lnum + 1).', 1)')
if [lnum, col] == [0, 0]
let keep_searching = 0
endif
endwhile
silent! bw! %
call popup_close(popup_id)
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(a:file_lines[0:cfline])
" go back to original window
exe phpcomplete_original_window.'wincmd w'
call add(result, {
\ 'class': a:class_name,
\ 'content': classcontent,
@ -2532,40 +2518,37 @@ function! phpcomplete#FormatDocBlock(info) " {{{
endif
return res
endfunction!
endfunction
" }}}
function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let original_window = winnr()
silent! below 1new
silent! 0put =a:file_lines
normal! G
let popup_id = popup_create(a:file_lines, {'hidden': v:true})
call win_execute(popup_id, 'normal! G')
" clear out classes, functions and other blocks
while 1
let block_start_pos = searchpos('\c\(class\|trait\|function\|interface\)\s\+\_.\{-}\zs{', 'Web')
call win_execute(popup_id, 'let block_start_pos = searchpos(''\c\(class\|trait\|function\|interface\)\s\+\_.\{-}\zs{'', "Web")')
if block_start_pos == [0, 0]
break
endif
let block_end_pos = searchpairpos('{', '', '}\|\%$', 'W', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')
call win_execute(popup_id, 'let block_end_pos = searchpairpos("{", "", ''}\|\%$'', "W", ''synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'')')
let popup_lines = winbufnr(popup_id)->getbufline(1, '$')
if block_end_pos != [0, 0]
" end of the block found, just delete it
silent! exec block_start_pos[0].','.block_end_pos[0].'d _'
call remove(popup_lines, block_start_pos[0] - 1, block_end_pos[0] - 1)
else
" block pair not found, use block start as beginning and the end
" of the buffer instead
silent! exec block_start_pos[0].',$d _'
call remove(popup_lines, block_start_pos[0] - 1, -1)
endif
call popup_settext(popup_id, popup_lines)
endwhile
normal! G
call win_execute(popup_id, 'normal! G', 'silent!')
" grab the remains
let file_lines = reverse(getline(1, line('.') - 1))
silent! bw! %
exe original_window.'wincmd w'
call win_execute(popup_id, "let file_lines = reverse(getline(1, line('.')-1))")
call popup_close(popup_id)
let namespace_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
let i = 0

View File

@ -1,12 +1,20 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 13.0
" Last Change: 2019 Aug 08
" Version: 15.0
" Last Change: 2021 Apr 27
" Usage: For detailed help, ":help ft-syntax-omni"
" History
"
" Version 15.0
" - SyntaxComplete ignored all buffer specific overrides, always used global
" https://github.com/vim/vim/issues/8153
"
" Version 14.0
" - Fixed issue with single quotes and is_keyword
" https://github.com/vim/vim/issues/7463
"
" Version 13.0
" - Extended the option omni_syntax_group_include_{filetype}
" to accept a comma separated list of regex's rather than
@ -38,7 +46,7 @@
" let g:omni_syntax_use_single_byte = 1
" - This by default will only allow single byte ASCII
" characters to be added and an additional check to ensure
" the charater is printable (see documentation for isprint).
" the character is printable (see documentation for isprint).
"
" Version 9.0
" - Add the check for cpo.
@ -86,7 +94,7 @@ endif
if exists('g:loaded_syntax_completion')
finish
endif
let g:loaded_syntax_completion = 130
let g:loaded_syntax_completion = 150
" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
@ -141,14 +149,10 @@ let s:prepended = ''
" This function is used for the 'omnifunc' option.
function! syntaxcomplete#Complete(findstart, base)
" Only display items in the completion window that are at least
" this many characters in length
if !exists('b:omni_syntax_ignorecase')
if exists('g:omni_syntax_ignorecase')
let b:omni_syntax_ignorecase = g:omni_syntax_ignorecase
else
let b:omni_syntax_ignorecase = &ignorecase
endif
" Allow user to override ignorecase per buffer
let l:omni_syntax_ignorecase = g:omni_syntax_ignorecase
if exists('b:omni_syntax_ignorecase')
let l:omni_syntax_ignorecase = b:omni_syntax_ignorecase
endif
if a:findstart
@ -179,7 +183,7 @@ function! syntaxcomplete#Complete(findstart, base)
endif
" let base = s:prepended . a:base
let base = s:prepended
let base = substitute(s:prepended, "'", "''", 'g')
let filetype = substitute(&filetype, '\.', '_', 'g')
let list_idx = index(s:cache_name, filetype, 0, &ignorecase)
@ -195,13 +199,13 @@ function! syntaxcomplete#Complete(findstart, base)
if base != ''
" let compstr = join(compl_list, ' ')
" let expr = (b:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
" let expr = (l:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
" let compstr = substitute(compstr, expr, '', 'g')
" let compl_list = split(compstr, '\s\+')
" Filter the list based on the first few characters the user
" entered
let expr = 'v:val '.(g:omni_syntax_ignorecase==1?'=~?':'=~#')." '^".escape(base, '\\/.*$^~[]').".*'"
let expr = 'v:val '.(l:omni_syntax_ignorecase==1?'=~?':'=~#')." '^".escape(base, '\\/.*$^~[]').".*'"
let compl_list = filter(deepcopy(compl_list), expr)
endif
@ -222,6 +226,26 @@ function! syntaxcomplete#OmniSyntaxList(...)
endif
endfunc
function! syntaxcomplete#OmniSyntaxClearCache()
let s:cache_name = []
let s:cache_list = []
endfunction
" To retrieve all syntax items regardless of syntax group:
" echo OmniSyntaxList( [] )
"
" To retrieve only the syntax items for the sqlOperator syntax group:
" echo OmniSyntaxList( ['sqlOperator'] )
"
" To retrieve all syntax items for both the sqlOperator and sqlType groups:
" echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )
"
" A regular expression can also be used:
" echo OmniSyntaxList( ['sql\w\+'] )
"
" From within a plugin, you would typically assign the output to a List: >
" let myKeywords = []
" let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
function! OmniSyntaxList(...)
let list_parms = []
if a:0 > 0
@ -239,37 +263,25 @@ function! OmniSyntaxList(...)
" let use_dictionary = a:1
" endif
" Only display items in the completion window that are at least
" this many characters in length
if !exists('b:omni_syntax_use_iskeyword')
if exists('g:omni_syntax_use_iskeyword')
let b:omni_syntax_use_iskeyword = g:omni_syntax_use_iskeyword
else
let b:omni_syntax_use_iskeyword = 1
endif
endif
" Only display items in the completion window that are at least
" this many characters in length
if !exists('b:omni_syntax_minimum_length')
if exists('g:omni_syntax_minimum_length')
let b:omni_syntax_minimum_length = g:omni_syntax_minimum_length
else
let b:omni_syntax_minimum_length = 0
endif
endif
let saveL = @l
let filetype = substitute(&filetype, '\.', '_', 'g')
if empty(list_parms)
" Allow user to override per buffer
if exists('g:omni_syntax_group_include_'.filetype)
let l:omni_syntax_group_include_{filetype} = g:omni_syntax_group_include_{filetype}
endif
if exists('b:omni_syntax_group_include_'.filetype)
let l:omni_syntax_group_include_{filetype} = b:omni_syntax_group_include_{filetype}
endif
" Default the include group to include the requested syntax group
let syntax_group_include_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_include_'.filetype)
if exists('l:omni_syntax_group_include_'.filetype)
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
\ substitute( l:omni_syntax_group_include_{filetype},'\s\+','','g')
let list_parms = split(l:omni_syntax_group_include_{filetype}, ',')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
@ -324,11 +336,20 @@ function! OmniSyntaxList(...)
else
" Default the exclude group to nothing
let syntax_group_exclude_{filetype} = ''
" Check if there are any overrides specified for this filetype
" Allow user to override per buffer
if exists('g:omni_syntax_group_exclude_'.filetype)
let l:omni_syntax_group_exclude_{filetype} = g:omni_syntax_group_exclude_{filetype}
endif
if exists('b:omni_syntax_group_exclude_'.filetype)
let l:omni_syntax_group_exclude_{filetype} = b:omni_syntax_group_exclude_{filetype}
endif
" Check if there are any overrides specified for this filetype
if exists('l:omni_syntax_group_exclude_'.filetype)
let syntax_group_exclude_{filetype} =
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
\ substitute( l:omni_syntax_group_exclude_{filetype},'\s\+','','g')
let list_exclude_groups = split(l:omni_syntax_group_exclude_{filetype}, ',')
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
@ -524,6 +545,30 @@ endfunction
function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" Allow user to override iskeyword per buffer
let l:omni_syntax_use_iskeyword = g:omni_syntax_use_iskeyword
if exists('b:omni_syntax_use_iskeyword')
let l:omni_syntax_use_iskeyword = b:omni_syntax_use_iskeyword
endif
" Allow user to override iskeyword_numeric per buffer
let l:omni_syntax_use_iskeyword_numeric = g:omni_syntax_use_iskeyword_numeric
if exists('b:omni_syntax_use_iskeyword_numeric')
let l:omni_syntax_use_iskeyword_numeric = b:omni_syntax_use_iskeyword_numeric
endif
" Allow user to override iskeyword_numeric per buffer
let l:omni_syntax_use_single_byte = g:omni_syntax_use_single_byte
if exists('b:omni_syntax_use_single_byte')
let l:omni_syntax_use_single_byte = b:omni_syntax_use_single_byte
endif
" Allow user to override minimum_length per buffer
let l:omni_syntax_minimum_length = g:omni_syntax_minimum_length
if exists('b:omni_syntax_minimum_length')
let l:omni_syntax_minimum_length = b:omni_syntax_minimum_length
endif
let syn_list = ""
" From the full syntax listing, strip out the portion for the
@ -548,7 +593,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" let syn_list = substitute( @l, '^.*xxx\s*\%(contained\s*\)\?', "", '' )
" let syn_list = substitute( @l, '^.*xxx\s*', "", '' )
" We only want the words for the lines begining with
" We only want the words for the lines beginning with
" containedin, but there could be other items.
" Tried to remove all lines that do not begin with contained
@ -642,14 +687,23 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
\ syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
\ , "", 'g'
\ )
if b:omni_syntax_use_iskeyword == 0
if l:omni_syntax_use_iskeyword == 0
" There are a number of items which have non-word characters in
" them, *'T_F1'*. vim.vim is one such file.
" This will replace non-word characters with spaces.
" setlocal filetype=forth
" let g:omni_syntax_use_iskeyword = 1
" let g:omni_syntax_use_iskeyword_numeric = 1
" You will see entries like
" #>>
" (.local)
" These were found doing a grep in vim82\syntax
" grep iskeyword *
" forth.vim:setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
else
if g:omni_syntax_use_iskeyword_numeric == 1
if l:omni_syntax_use_iskeyword_numeric == 1
" iskeyword can contain value like this
" 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
" Numeric values convert to their ASCII equivalent using the
@ -669,7 +723,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" cycle through each character within the range
let [b:start, b:end] = split(item, '-')
for range_item in range( b:start, b:end )
if range_item <= 127 || g:omni_syntax_use_single_byte == 0
if range_item <= 127 || l:omni_syntax_use_single_byte == 0
if nr2char(range_item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(range_item)
endif
@ -677,13 +731,13 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
endfor
elseif item =~ '^\d\+$'
" Only numeric, translate to a character
if item < 127 || g:omni_syntax_use_single_byte == 0
if item < 127 || l:omni_syntax_use_single_byte == 0
if nr2char(item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(item)
endif
endif
else
if char2nr(item) < 127 || g:omni_syntax_use_single_byte == 0
if char2nr(item) < 127 || l:omni_syntax_use_single_byte == 0
if item =~ '\p'
let accepted_chars = accepted_chars . item
endif
@ -719,9 +773,9 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
endif
endif
if b:omni_syntax_minimum_length > 0
if l:omni_syntax_minimum_length > 0
" If the user specified a minimum length, enforce it
let syn_list = substitute(' '.syn_list.' ', ' \S\{,'.b:omni_syntax_minimum_length.'}\ze ', ' ', 'g')
let syn_list = substitute(' '.syn_list.' ', ' \S\{,'.l:omni_syntax_minimum_length.'}\ze ', ' ', 'g')
endif
else
let syn_list = ''
@ -751,5 +805,6 @@ function! OmniSyntaxShowChars(spec)
endfor
return join(map(result, 'nr2char(v:val)'), ', ')
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

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

@ -0,0 +1,26 @@
" Vim compiler file
" Compiler: Critical Mass Modula-3 Compiler
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 Apr 08
if exists("current_compiler")
finish
endif
let current_compiler = "cm3"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo&vim
" TODO: better handling of Quake errors
CompilerSet makeprg=cm3
CompilerSet errorformat=%D---\ building\ in\ %f\ ---,
\%W\"%f\"\\,\ line\ %l:\ warning:\ %m,
\%E\"%f\"\\,\ line\ %l:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

27
runtime/compiler/fbc.vim Normal file
View File

@ -0,0 +1,27 @@
" Vim compiler file
" Compiler: FreeBASIC Compiler
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2015 Jan 10
if exists("current_compiler")
finish
endif
let current_compiler = "fbc"
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=fbc
CompilerSet errorformat=%-G%.%#Too\ many\ errors\\,\ exiting,
\%f(%l)\ %tarning\ %n(%\\d%\\+):\ %m,
\%E%f(%l)\ error\ %n:\ %m,
\%-Z%p^,
\%-C%.%#,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,11 +1,11 @@
" Vim Compiler File
" Compiler: ocaml
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2020 Mar 28 - Improved error format (Thomas Leonard)
" 2017 Nov 26 - Improved error format (Markus Mottl)
" 2013 Aug 27 - Added a new OCaml error format (Markus Mottl)
" 2013 Jun 30 - Initial version (Marc Weber)
"
" Marc Weber's comments:
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
@ -21,6 +21,7 @@
"
" So having it here makes people opt-in
if exists("current_compiler")
finish
endif
@ -30,6 +31,7 @@ let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat =
\%EFile\ \"%f\"\\,\ lines\ %*\\d-%l\\,\ characters\ %c-%*\\d:,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,

View File

@ -0,0 +1,84 @@
" Vim compiler file
" Compiler: powershell
" URL: https://github.com/PProvost/vim-ps1
" Last Change: 2020 Mar 30
if exists("current_compiler")
finish
endif
let current_compiler = "powershell"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
if !exists("g:ps1_makeprg_cmd")
if executable('pwsh')
" pwsh is the future
let g:ps1_makeprg_cmd = 'pwsh'
elseif executable('pwsh.exe')
let g:ps1_makeprg_cmd = 'pwsh.exe'
elseif executable('powershell.exe')
let g:ps1_makeprg_cmd = 'powershell.exe'
else
let g:ps1_makeprg_cmd = ''
endif
endif
if !executable(g:ps1_makeprg_cmd)
echoerr "To use the powershell compiler, please set g:ps1_makeprg_cmd to the powershell executable!"
endif
" Show CategoryInfo, FullyQualifiedErrorId, etc?
let g:ps1_efm_show_error_categories = get(g:, 'ps1_efm_show_error_categories', 0)
" Use absolute path because powershell requires explicit relative paths
" (./file.ps1 is okay, but # expands to file.ps1)
let &l:makeprg = g:ps1_makeprg_cmd .' %:p:S'
" Parse file, line, char from callstacks:
" Write-Ouput : The term 'Write-Ouput' is not recognized as the name of a
" cmdlet, function, script file, or operable program. Check the spelling
" of the name, or if a path was included, verify that the path is correct
" and try again.
" At C:\script.ps1:11 char:5
" + Write-Ouput $content
" + ~~~~~~~~~~~
" + CategoryInfo : ObjectNotFound: (Write-Ouput:String) [], CommandNotFoundException
" + FullyQualifiedErrorId : CommandNotFoundException
" Showing error in context with underlining.
CompilerSet errorformat=%+G+%m
" Error summary.
CompilerSet errorformat+=%E%*\\S\ :\ %m
" Error location.
CompilerSet errorformat+=%CAt\ %f:%l\ char:%c
" Errors that span multiple lines (may be wrapped to width of terminal).
CompilerSet errorformat+=%C%m
" Ignore blank/whitespace-only lines.
CompilerSet errorformat+=%Z\\s%#
if g:ps1_efm_show_error_categories
CompilerSet errorformat^=%+G\ \ \ \ +\ %.%#\\s%#:\ %m
else
CompilerSet errorformat^=%-G\ \ \ \ +\ %.%#\\s%#:\ %m
endif
" Parse file, line, char from of parse errors:
" At C:\script.ps1:22 char:16
" + Stop-Process -Name "invalidprocess
" + ~~~~~~~~~~~~~~~
" The string is missing the terminator: ".
" + CategoryInfo : ParserError: (:) [], ParseException
" + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
CompilerSet errorformat+=At\ %f:%l\ char:%c
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

28
runtime/compiler/sml.vim Normal file
View File

@ -0,0 +1,28 @@
" Vim compiler file
" Compiler: SML/NJ Compiler
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2020 Feb 10
if exists("current_compiler")
finish
endif
let current_compiler = "sml"
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=sml
CompilerSet errorformat=%f:%l.%c-%\\d%\\+.%\\d%\\+\ %trror:\ %m,
\%f:%l.%c\ %trror:\ %m,
\%trror:\ %m
\%f:%l.%c-%\\d%\\+.%\\d%\\+\ %tarning:\ %m,
\%f:%l.%c\ %tarning:\ %m,
\%tarning:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: HTML Tidy
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2016 Apr 21
" Last Change: 2020 Sep 4
if exists("current_compiler")
finish
@ -12,8 +12,15 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %:S
let s:cpo_save = &cpo
set cpo&vim
" foo.html:8:1: Warning: inserting missing 'foobar' element
" foo.html:9:2: Error: <foobar> is not recognized!
CompilerSet errorformat=%f:%l:%c:\ %trror:%m,%f:%l:%c:\ %tarning:%m,%-G%.%#
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes
CompilerSet errorformat=%f:%l:%c:\ %trror:\ %m,
\%f:%l:%c:\ %tarning:\ %m,
\%f:%l:%c:\ %tnfo:\ %m,
\%f:%l:%c:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -30,6 +30,8 @@ DOCS = \
filetype.txt \
fold.txt \
ft_ada.txt \
ft_ps1.txt \
ft_raku.txt \
ft_rust.txt \
ft_sql.txt \
gui.txt \
@ -173,6 +175,8 @@ HTMLS = \
filetype.html \
fold.html \
ft_ada.html \
ft_ps1.html \
ft_raku.html \
ft_rust.html \
ft_sql.html \
gui.html \

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2020 Dec 19
*autocmd.txt* For Vim version 8.2. Last change: 2021 Apr 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -54,7 +54,8 @@ effects. Be careful not to destroy your text.
:au[tocmd] [group] {event} {pat} [++once] [++nested] {cmd}
Add {cmd} to the list of commands that Vim will
execute automatically on {event} for a file matching
{pat} |autocmd-patterns|.
{pat} |autocmd-patterns|.
Here {event} cannot be "*". *E1155*
Note: A quote character is seen as argument to the
:autocmd and won't start a comment.
Vim always adds the {cmd} after existing autocommands,
@ -1518,9 +1519,18 @@ option will not cause any commands to be executed.
*:doautoa* *:doautoall*
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each
loaded buffer. Note that [fname] is used to select
the autocommands, not the buffers to which they are
applied.
loaded buffer. The current buffer is done last.
Note that [fname] is used to select the autocommands,
not the buffers to which they are applied. Example: >
augroup mine
autocmd!
autocmd FileType * echo expand('<amatch>')
augroup END
doautoall mine FileType Loaded-Buffer
< Sourcing this script, you'll see as many
"Loaded-Buffer" echoed as there are loaded buffers.
Careful: Don't use this for autocommands that delete a
buffer, change to another buffer or change the
contents of a buffer; the result is unpredictable.

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2020 Nov 21
*change.txt* For Vim version 8.2. Last change: 2021 Mar 01
VIM REFERENCE MANUAL by Bram Moolenaar
@ -649,6 +649,8 @@ For other systems the tmpnam() library function is used.
The space between `:substitute` and the 'c', 'g',
'i', 'I' and 'r' flags isn't required, but in scripts
it's a good idea to keep it to avoid confusion.
Also see the two and three letter commands to repeat
:substitute below |:substitute-repeat|.
:[range]~[&][flags] [count] *:~*
Repeat last substitute with same substitute string
@ -877,20 +879,26 @@ either the first or second pattern in parentheses did not match, so either
*:sge* *:sgi* *:sgI* *:sgl* *:sgn* *:sgp* *:sgr* *:sI* *:si*
*:sic* *:sIc* *:sie* *:sIe* *:sIg* *:sIl* *:sin* *:sIn* *:sIp*
*:sip* *:sIr* *:sir* *:sr* *:src* *:srg* *:sri* *:srI* *:srl*
*:srn* *:srp*
*:srn* *:srp* *:substitute-repeat*
2-letter and 3-letter :substitute commands ~
These commands repeat the previous `:substitute` command with the given flags.
The first letter is always "s", followed by one or two of the possible flag
characters. For example `:sce` works like `:s///ce`. The table lists the
possible combinations, not all flags are possible, because the command is
short for another command.
List of :substitute commands
| c e g i I n p l r
| c :sc :sce :scg :sci :scI :scn :scp :scl ---
| c :sc :sce :scg :sci :scI :scn :scp :scl
| e
| g :sgc :sge :sg :sgi :sgI :sgn :sgp :sgl :sgr
| i :sic :sie --- :si :siI :sin :sip --- :sir
| i :sic :sie :si :siI :sin :sip :sir
| I :sIc :sIe :sIg :sIi :sI :sIn :sIp :sIl :sIr
| n
| p
| l
| r :src --- :srg :sri :srI :srn :srp :srl :sr
| r :src :srg :sri :srI :srn :srp :srl :sr
Exceptions:
:scr is `:scriptnames`
@ -1631,24 +1639,31 @@ default setting is "tcq". You can separate the option letters with commas for
readability.
letter meaning when present in 'formatoptions' ~
*fo-t*
t Auto-wrap text using textwidth
*fo-c*
c Auto-wrap comments using textwidth, inserting the current comment
leader automatically.
*fo-r*
r Automatically insert the current comment leader after hitting
<Enter> in Insert mode.
*fo-o*
o Automatically insert the current comment leader after hitting 'o' or
'O' in Normal mode.
*fo-q*
q Allow formatting of comments with "gq".
Note that formatting will not change blank lines or lines containing
only the comment leader. A new paragraph starts after such a line,
or when the comment leader changes.
*fo-w*
w Trailing white space indicates a paragraph continues in the next line.
A line that ends in a non-white character ends a paragraph.
*fo-a*
a Automatic formatting of paragraphs. Every time text is inserted or
deleted the paragraph will be reformatted. See |auto-format|.
When the 'c' flag is present this only happens for recognized
comments.
*fo-n*
n When formatting text, recognize numbered lists. This actually uses
the 'formatlistpat' option, thus any kind of list can be used. The
indent of the text after the number is used for the next line. The
@ -1659,6 +1674,7 @@ n When formatting text, recognize numbered lists. This actually uses
1. the first item
wraps
2. the second item
< *fo-2*
2 When formatting text, use the indent of the second line of a paragraph
for the rest of the paragraph, instead of the indent of the first
line. This supports paragraphs in which the first line has a
@ -1668,36 +1684,46 @@ n When formatting text, recognize numbered lists. This actually uses
second line of the same paragraph
third line.
< This also works inside comments, ignoring the comment leader.
*fo-v*
v Vi-compatible auto-wrapping in insert mode: Only break a line at a
blank that you have entered during the current insert command. (Note:
this is not 100% Vi compatible. Vi has some "unexpected features" or
bugs in this area. It uses the screen column instead of the line
column.)
*fo-b*
b Like 'v', but only auto-wrap if you enter a blank at or before
the wrap margin. If the line was longer than 'textwidth' when you
started the insert, or you do not enter a blank in the insert before
reaching 'textwidth', Vim does not perform auto-wrapping.
*fo-l*
l Long lines are not broken in insert mode: When a line was longer than
'textwidth' when the insert command started, Vim does not
automatically format it.
*fo-m*
m Also break at a multibyte character above 255. This is useful for
Asian text where every character is a word on its own.
*fo-M*
M When joining lines, don't insert a space before or after a multibyte
character. Overrules the 'B' flag.
*fo-B*
B When joining lines, don't insert a space between two multibyte
characters. Overruled by the 'M' flag.
*fo-1*
1 Don't break a line after a one-letter word. It's broken before it
instead (if possible).
*fo-]*
] Respect textwidth rigorously. With this flag set, no line can be
longer than textwidth, unless line-break-prohibition rules make this
impossible. Mainly for CJK scripts and works only if 'encoding' is
"utf-8".
*fo-j*
j Where it makes sense, remove a comment leader when joining lines. For
example, joining:
int i; // the index ~
// in the list ~
Becomes:
int i; // the index in the list ~
*fo-p*
p Don't break lines at single spaces that follow periods. This is
intended to complement 'joinspaces' and |cpo-J|, for prose with
sentences separated by two spaces. For example, with 'textwidth' set

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.2. Last change: 2020 Sep 14
*cmdline.txt* For Vim version 8.2. Last change: 2021 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -597,9 +597,11 @@ followed by another Vim command:
:global
:help
:helpfind
:helpgrep
:lcscope
:ldo
:lfdo
:lhelpgrep
:make
:normal
:perl
@ -796,18 +798,20 @@ three lines: >
3:d<CR> is translated into: .,.+2d<CR>
<
Visual Mode and Range *v_:*
*:star-visual-range*
Visual Mode and Range
*v_:*
{Visual}: Starts a command-line with the Visual selected lines as a
range. The code `:'<,'>` is used for this range, which makes
it possible to select a similar line from the command-line
history for repeating a command on different Visually selected
lines.
:* *:star* *:star-visual-range*
When Visual mode was already ended, a short way to use the
Visual area for a range is `:*`. This requires that "*" does
not appear in 'cpo', see |cpo-star|. Otherwise you will have
to type `:'<,'>`
For when "*" is in 'cpo' see |:star-compatible|.
==============================================================================
5. Ex command-line flags *ex-flags*
@ -849,6 +853,16 @@ function |expand()|.
file name n. See |:oldfiles| or |v:oldfiles| to get the
number. *E809*
{only when compiled with the |+eval| and |+viminfo| features}
In |Vim9-script| # is used to start a comment, use %% for the alternate file
name:
% Is replaced with the current file name.
%% Is replaced with the alternate file name. *:_%%* *c_%%*
%%n (where n is a number) is replaced with *:_%%0* *:_%%n*
the file name of buffer n. "%%0" is the same as "%%". *c_%%n*
%%% Is replaced with all names in the argument *:_%%%* *c_%%%#*
list concatenated, separated by spaces.
%%<n (where n is a number > 0) is replaced with old *:_%%<* *c_%%<*
file name n.
Note that these, except "#<n", give the file name as it was typed. If an
absolute path is needed (when using the file name from a different directory),
@ -1086,7 +1100,7 @@ Also see |`=|.
In the command-line window the command line can be edited just like editing
text in any window. It is a special kind of window, because you cannot leave
it in a normal way.
{not available when compiled without the |+cmdline_hist| feature}
{not available when compiled without the |+cmdwin| feature}
OPEN *c_CTRL-F* *q:* *q/* *q?*

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 8.2. Last change: 2019 Nov 10
*diff.txt* For Vim version 8.2. Last change: 2021 Feb 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -59,7 +59,7 @@ In each of the edited files these options are set:
'scrollbind' on
'cursorbind' on
'scrollopt' includes "hor"
'wrap' off
'wrap' off, or leave as-is if 'diffopt' includes "followwrap"
'foldmethod' "diff"
'foldcolumn' value from 'diffopt', default is 2
@ -144,7 +144,7 @@ Otherwise they are set to their default value:
'scrollbind' off
'cursorbind' off
'scrollopt' without "hor"
'wrap' on
'wrap' on, or leave as-is if 'diffopt' includes "followwrap"
'foldmethod' "manual"
'foldcolumn' 0

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.2. Last change: 2020 Dec 19
*editing.txt* For Vim version 8.2. Last change: 2021 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1014,7 +1014,7 @@ to write anyway add a '!' to the command.
*write-permissions*
When writing a new file the permissions are read-write. For unix the mask is
0666 with additionally umask applied. When writing a file that was read Vim
0o666 with additionally umask applied. When writing a file that was read Vim
will preserve the permissions, but clear the s-bit.
*write-readonly*
@ -1253,7 +1253,7 @@ For versions of Vim where browsing is not supported, the command is executed
unmodified.
*browsefilter*
For MS Windows and GTK, you can modify the filters that are used in the browse
For MS-Windows and GTK, you can modify the filters that are used in the browse
dialog. By setting the g:browsefilter or b:browsefilter variables, you can
change the filters globally or locally to the buffer. The variable is set to
a string in the format "{filter label}\t{pattern};{pattern}\n" where {filter

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.2. Last change: 2020 Sep 28
*filetype.txt* For Vim version 8.2. Last change: 2021 Mar 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -147,6 +147,7 @@ can be used to overrule the filetype used for certain extensions:
*.w g:filetype_w |ft-cweb-syntax|
*.i g:filetype_i |ft-progress-syntax|
*.p g:filetype_p |ft-pascal-syntax|
*.pp g:filetype_pp |ft-pascal-syntax|
*.sh g:bash_is_sh |ft-sh-syntax|
*.tex g:tex_flavor |ft-tex-plugin|
@ -627,6 +628,13 @@ For fish, add to the config file
set -x MANPAGER "vim -M +MANPAGER -"
MARKDOWN *ft-markdown-plugin*
To enable folding use this: >
let g:markdown_folding = 1
<
PDF *ft-pdf-plugin*
Two maps, <C-]> and <C-T>, are provided to simulate a tag stack for navigating

64
runtime/doc/ft_ps1.txt Normal file
View File

@ -0,0 +1,64 @@
*ps1.txt* A Windows PowerShell syntax plugin for Vim
Author: Peter Provost <https://www.github.com/PProvost>
License: Apache 2.0
URL: https://github.com/PProvost/vim-ps1
INTRODUCTION *ps1-syntax*
This plugin provides Vim syntax, indent and filetype detection for Windows
PowerShell scripts, modules, and XML configuration files.
ABOUT *ps1-about*
Grab the latest version or report a bug on GitHub:
https://github.com/PProvost/vim-ps1
FOLDING *ps1-folding*
The ps1 syntax file provides syntax folding (see |:syn-fold|) for script blocks
and digital signatures in scripts.
When 'foldmethod' is set to "syntax" then function script blocks will be
folded unless you use the following in your .vimrc or before opening a script: >
:let g:ps1_nofold_blocks = 1
<
Digital signatures in scripts will also be folded unless you use: >
:let g:ps1_nofold_sig = 1
<
Note: syntax folding might slow down syntax highlighting significantly,
especially for large files.
COMPILER *ps1-compiler*
The powershell `:compiler` script configures |:make| to execute the script in
PowerShell.
It tries to pick a smart default PowerShell command: `pwsh` if available and
`powershell` otherwise, but you can customize the command: >
:let g:ps1_makeprg_cmd = '/path/to/pwsh'
<
To configure whether to show the exception type information: >
:let g:ps1_efm_show_error_categories = 1
<
KEYWORD LOOKUP *ps1-keyword*
To look up keywords using PowerShell's Get-Help, press the |K| key. For more
convenient paging, the pager `less` should be installed, which is included in
many Linux distributions and in macOS.
Many other distributions are available for Windows like
https://chocolatey.org/packages/less/. Make sure `less` is in a directory
listed in the `PATH` environment variable, which chocolatey above does.
------------------------------------------------------------------------------
vim:ft=help:

126
runtime/doc/ft_raku.txt Normal file
View File

@ -0,0 +1,126 @@
*vim-raku.txt* The Raku programming language filetype
*vim-raku*
Vim-raku provides syntax highlighting, indentation, and other support for
editing Raku programs.
1. Using Unicode in your Raku files |raku-unicode|
==============================================================================
1. Using Unicode in your Raku files *raku-unicode*
Defining new operators using Unicode symbols is a good way to make your
Raku program easy to read. See:
https://perl6advent.wordpress.com/2012/12/18/day-18-formulas-resistance-is-futile/
While Raku does define ASCII alternatives for some common operators (see
https://docs.raku.org/language/unicode_ascii), using the full range of
Unicode operators is highly desirable. Your operating system provides input
facilities, but using the features built in to Vim may be preferable.
The natural way to produce these symbols in Vim is to use digraph shortcuts
(:help |digraphs-use|). Many of them are defined; type `:digraphs` to get
the list. A convenient way to read the list of digraphs is to save them in a
file. From the shell: >
vim +'redir >/tmp/vim-digraphs-listing.txt' +digraphs +'redir END' +q
Some of them are available with standard Vim digraphs:
<< « /0 ∅ !< ≮ ~
>> » Ob ∘ !> ≯ ~
., … 00 ∞ (C ⊂ ~
(U ∩ -: ÷ )C ⊃ ~
)U (_ ⊆ >= ≥ ~
?= ≅ )_ ⊇ =< ≤ ~
(- ∈ ?= ≅ != ≠ ~
-) ∋ ?- ≃ ~
The Greek alphabet is available with '*' followed by a similar Latin symbol:
*p π ~
*t τ ~
*X × ~
Numbers, subscripts and superscripts are available with 's' and 'S':
0s ₀ 0S ⁰ ~
1s ₁ 1S ¹ ~
2s ₂ 9S ⁹ ~
But some don´t come defined by default. Those are digraph definitions you can
add in your ~/.vimrc file. >
exec 'digraph \\ '.char2nr('')
exec 'digraph \< '.char2nr('≼')
exec 'digraph \> '.char2nr('≽')
exec 'digraph (L '.char2nr('⊈')
exec 'digraph )L '.char2nr('⊉')
exec 'digraph (/ '.char2nr('⊄')
exec 'digraph )/ '.char2nr('⊅')
exec 'digraph )/ '.char2nr('⊅')
exec 'digraph U+ '.char2nr('⊎')
exec 'digraph 0- '.char2nr('⊖')
" Euler's constant
exec 'digraph ne '.char2nr('𝑒')
" Raku's atomic operations marker
exec 'digraph @@ '.char2nr('⚛')
Alternatively, you can write Insert mode abbreviations that convert ASCII-
based operators into their single-character Unicode equivalent. >
iabbrev <buffer> !(<) ⊄
iabbrev <buffer> !(<=) ⊈
iabbrev <buffer> !(>) ⊅
iabbrev <buffer> !(>=) ⊉
iabbrev <buffer> !(cont) ∌
iabbrev <buffer> !(elem) ∉
iabbrev <buffer> != ≠
iabbrev <buffer> (&) ∩
iabbrev <buffer> (+) ⊎
iabbrev <buffer> (-)
iabbrev <buffer> (.) ⊍
iabbrev <buffer> (<) ⊂
iabbrev <buffer> (<+) ≼
iabbrev <buffer> (<=) ⊆
iabbrev <buffer> (>) ⊃
iabbrev <buffer> (>+) ≽
iabbrev <buffer> (>=) ⊇
iabbrev <buffer> (\|)
iabbrev <buffer> (^) ⊖
iabbrev <buffer> (atomic) ⚛
iabbrev <buffer> (cont) ∋
iabbrev <buffer> (elem) ∈
iabbrev <buffer> * ×
iabbrev <buffer> **0 ⁰
iabbrev <buffer> **1 ¹
iabbrev <buffer> **2 ²
iabbrev <buffer> **3 ³
iabbrev <buffer> **4 ⁴
iabbrev <buffer> **5 ⁵
iabbrev <buffer> **6 ⁶
iabbrev <buffer> **7 ⁷
iabbrev <buffer> **8 ⁸
iabbrev <buffer> **9 ⁹
iabbrev <buffer> ... …
iabbrev <buffer> / ÷
iabbrev <buffer> << «
iabbrev <buffer> <<[=]<< «=«
iabbrev <buffer> <<[=]>> «=»
iabbrev <buffer> <= ≤
iabbrev <buffer> =~= ≅
iabbrev <buffer> >= ≥
iabbrev <buffer> >> »
iabbrev <buffer> >>[=]<< »=«
iabbrev <buffer> >>[=]>> »=»
iabbrev <buffer> Inf ∞
iabbrev <buffer> atomic-add-fetch ⚛+=
iabbrev <buffer> atomic-assign ⚛=
iabbrev <buffer> atomic-fetch ⚛
iabbrev <buffer> atomic-dec-fetch --⚛
iabbrev <buffer> atomic-fetch-dec ⚛--
iabbrev <buffer> atomic-fetch-inc ⚛++
iabbrev <buffer> atomic-inc-fetch ++⚛
iabbrev <buffer> atomic-sub-fetch ⚛−=
iabbrev <buffer> e 𝑒
iabbrev <buffer> o ∘
iabbrev <buffer> pi π
iabbrev <buffer> set() ∅
iabbrev <buffer> tau τ
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.2. Last change: 2020 Sep 28
*gui.txt* For Vim version 8.2. Last change: 2021 May 01
VIM REFERENCE MANUAL by Bram Moolenaar
@ -620,6 +620,11 @@ expression register: >
:amenu Insert.foobar "='foobar'<CR>P
The special text <Cmd> begins a "command menu", it executes the command
directly without changing modes. Where you might use ":...<CR>" you can
instead use "<Cmd>...<CR>". See |<Cmd>| for more info. Example: >
anoremenu File.Next <Cmd>next<CR>
Note that the '<' and 'k' flags in 'cpoptions' also apply here (when
included they make the <> form and raw key codes not being recognized).

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.2. Last change: 2020 Mar 25
*gui_w32.txt* For Vim version 8.2. Last change: 2021 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -403,7 +403,7 @@ The "File/Print" menu prints the text with syntax highlighting, see
printer installed this should also work: >
:w >>prn
Vim supports a number of standard MS Windows features. Some of these are
Vim supports a number of standard MS-Windows features. Some of these are
detailed elsewhere: see |'mouse'|, |win32-hidden-menus|.
*drag-n-drop-win32*

View File

@ -8,7 +8,7 @@ Vim had built-in support for hangul, the Korean language, for users without
XIM (X Input Method). Since it didn't work well and was not maintained it was
removed in Vim 8.1.2327.
If you want this hangul input mehod you can go back to Vim 8.1.2326 or
If you want this hangul input method you can go back to Vim 8.1.2326 or
earlier. If you think this code is still useful and want to maintain it, make
a patch to add it back. However, making it work with UTF-8 encoding would be
best.

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 8.2. Last change: 2020 Dec 19
*helphelp.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -158,6 +158,9 @@ When no argument is given to |:help| the file given with the 'helpfile' option
will be opened. Otherwise the specified tag is searched for in all "doc/tags"
files in the directories specified in the 'runtimepath' option.
If you would like to open the help in the current window, see this tip:
|help-curwin|.
The initial height of the help window can be set with the 'helpheight' option
(default 20).

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.2. Last change: 2020 Jun 28
*if_lua.txt* For Vim version 8.2. Last change: 2021 Apr 07
VIM REFERENCE MANUAL by Luis Carvalho
@ -208,6 +208,8 @@ Vim evaluation and command execution, and others.
created on demand. Example: >
:lua print(vim.fn.has('timers'))
<
vim.lua_version The Lua version Vim was compiled with, in the
form {major}.{minor}.{patch}, e.g. "5.1.4".
==============================================================================
3. List userdata *lua-list*

View File

@ -610,14 +610,14 @@ the use of square and curly brackets, and otherwise by community convention.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
If the current vim does not include |searchpairpos()|, the indent script falls
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
*g:clojure_maxlines*
Set maximum scan distance of |searchpairpos()|. Larger values trade
performance for correctness when dealing with very long forms. A value of 0
will scan without limits.
Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
>
" Default
let g:clojure_maxlines = 100

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2020 Oct 05
*index.txt* For Vim version 8.2. Last change: 2021 Apr 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1176,6 +1176,7 @@ tag command action ~
|:bNext| :bN[ext] go to previous buffer in the buffer list
|:ball| :ba[ll] open a window for each buffer in the buffer list
|:badd| :bad[d] add buffer to the buffer list
|:balt| :balt like ":badd" but also set the alternate file
|:bdelete| :bd[elete] remove a buffer from the buffer list
|:behave| :be[have] set mouse and selection behavior
|:belowright| :bel[owright] make split window appear right or below
@ -1293,6 +1294,7 @@ tag command action ~
|:edit| :e[dit] edit a file
|:earlier| :ea[rlier] go to older change, undo
|:echo| :ec[ho] echoes the result of expressions
|:echoconsole| :echoc[onsole] like :echomsg but write to stdout
|:echoerr| :echoe[rr] like :echo, show like an error and use history
|:echohl| :echoh[l] set highlighting for echo commands
|:echomsg| :echom[sg] same as :echo, put message in history
@ -1394,6 +1396,7 @@ tag command action ~
|:lfdo| :lfd[o] execute command in each file in location list
|:left| :le[ft] left align lines
|:leftabove| :lefta[bove] make split window appear left or above
|:legacy| :leg[acy] make following command use legacy script syntax
|:let| :let assign a value to a variable or option
|:lexpr| :lex[pr] read locations from expr and jump to first
|:lfile| :lf[ile] read file with locations and jump to first
@ -1590,6 +1593,8 @@ tag command action ~
|:sign| :sig[n] manipulate signs
|:silent| :sil[ent] run a command silently
|:sleep| :sl[eep] do nothing for a few seconds
|:sleep!| :sl[eep]! do nothing for a few seconds, without the
cursor visible
|:slast| :sla[st] split window and go to last file in the
argument list
|:smagic| :sm[agic] :substitute with 'magic'
@ -1696,7 +1701,8 @@ tag command action ~
|:version| :ve[rsion] print version number and other info
|:verbose| :verb[ose] execute command with 'verbose' set
|:vertical| :vert[ical] make following command split vertically
|:vim9script| :vim9[script] indicates Vim9 script file
|:vim9cmd| :vim9[cmd] make following command use Vim9 script syntax
|:vim9script| :vim9s[cript] indicates Vim9 script file
|:vimgrep| :vim[grep] search for pattern in files
|:vimgrepadd| :vimgrepa[dd] like :vimgrep, but append to current list
|:visual| :vi[sual] same as ":edit", but turns off "Ex" mode

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.2. Last change: 2020 Dec 19
*intro.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -678,8 +678,8 @@ Normal mode from any other mode. This can be used to make sure Vim is in
Normal mode, without causing a beep like <Esc> would. However, this does not
work in Ex mode. When used after a command that takes an argument, such as
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode for only
one command, see |t_CTRL-\_CTRL-N|.
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode until an
edit command is entered, see |t_CTRL-\_CTRL-N|.
*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2020 Dec 10
*map.txt* For Vim version 8.2. Last change: 2021 May 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -244,9 +244,12 @@ have a look at |maparg()|.
If the first argument to one of these commands is "<expr>" and it is used to
define a new mapping or abbreviation, the argument is an expression. The
expression is evaluated to obtain the {rhs} that is used. Example: >
:inoremap <expr> . InsertDot()
The result of the InsertDot() function will be inserted. It could check the
:inoremap <expr> . <SID>InsertDot()
The result of the s:InsertDot() function will be inserted. It could check the
text before the cursor and start omni completion when some condition is met.
Using a script-local function is preferred, to avoid polluting the global
namespace. Use <SID> in the RHS so that the script that the mapping was
defined in can be found.
For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation. You can use this to decide how to expand the {lhs}. You
@ -261,7 +264,21 @@ input. Example: >
call popup_create(... arguments ...)
return "\<Ignore>"
endfunc
nnoremap <expr> <F3> <Sid>OpenPopup()
nnoremap <expr> <F3> <SID>OpenPopup()
Also, keep in mind that the expression may be evaluated when looking for
typeahead, before the previous command has been executed. For example: >
func StoreColumn()
let g:column = col('.')
return 'x'
endfunc
nnoremap <expr> x StoreColumn()
nmap ! f!x
You will notice that g:column has the value from before executing "f!",
because "x" is evaluated before "f!" is executed.
This can be solved by inserting <Ignore> before the character that is
expression-mapped: >
nmap ! f!<Ignore>x
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
@ -372,6 +389,22 @@ Overview of which map command works in which mode. More details below.
:cmap :cnoremap :cunmap Command-line
:tmap :tnoremap :tunmap Terminal-Job
Same information in a table:
*map-table*
Mode | Norm | Ins | Cmd | Vis | Sel | Opr | Term | Lang | ~
Command +------+-----+-----+-----+-----+-----+------+------+ ~
[nore]map | yes | - | - | yes | yes | yes | - | - |
n[nore]map | yes | - | - | - | - | - | - | - |
[nore]map! | - | yes | yes | - | - | - | - | - |
i[nore]map | - | yes | - | - | - | - | - | - |
c[nore]map | - | - | yes | - | - | - | - | - |
v[nore]map | - | - | - | yes | yes | - | - | - |
x[nore]map | - | - | - | yes | - | - | - | - |
s[nore]map | - | - | - | - | yes | - | - | - |
o[nore]map | - | - | - | - | - | yes | - | - |
t[nore]map | - | - | - | - | - | - | yes | - |
l[nore]map | - | yes | yes | - | - | - | - | yes |
COMMANDS MODES ~
Normal Visual+Select Operator-pending ~

View File

@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 8.2. Last change: 2020 Aug 15
*mbyte.txt* For Vim version 8.2. Last change: 2021 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -770,7 +770,7 @@ is suitable for complex input, such as CJK.
of the two ways: FrontEnd system and BackEnd system. In the FrontEnd
system, input events are snatched by the |IM-server| first, then |IM-server|
give the application the result of input. On the other hand, the BackEnd
system works reverse order. MS Windows adopt BackEnd system. In X, most of
system works reverse order. MS-Windows adopt BackEnd system. In X, most of
|IM-server|s adopt FrontEnd system. The demerit of BackEnd system is the
large overhead in communication, but it provides safe synchronization with
no restrictions on applications.

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 8.2. Last change: 2020 Sep 07
*message.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -794,6 +794,9 @@ and the screen is about to be redrawn:
-> Press <Enter> or <Space> to redraw the screen and continue, without that
key being used otherwise.
-> Press ':' or any other Normal mode command character to start that command.
Note that after an external command some special keys, such as the cursor
keys, may not work normally, because the terminal is still set to a state
for executing the external command.
-> Press 'k', <Up>, 'u', 'b' or 'g' to scroll back in the messages. This
works the same way as at the |more-prompt|. Only works when 'compatible'
is off and 'more' is on.

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.2. Last change: 2020 Oct 18
*motion.txt* For Vim version 8.2. Last change: 2021 Mar 28
VIM REFERENCE MANUAL by Bram Moolenaar
@ -942,8 +942,7 @@ These commands are not marks themselves, but jump to a mark:
line.
*]`*
]` [count] times to lowercase mark after the cursor. {not
in Vi}
]` [count] times to lowercase mark after the cursor.
*['*
[' [count] times to previous line with a lowercase mark
@ -1037,6 +1036,12 @@ CTRL-I Go to [count] newer cursor position in jump list
(not a motion command).
{not available without the |+jumplist| feature}
NOTE: In the GUI and in a terminal supporting
|modifyOtherKeys|, CTRL-I can be mapped separately
from <Tab>, on the condition that CTRL-I is
mapped before <Tab>, otherwise the mapping applies to
both.
*:ju* *:jumps*
:ju[mps] Print the jump list (not a motion command).
{not available without the |+jumplist| feature}
@ -1054,11 +1059,11 @@ The maximum number of entries is fixed at 100.
For example, after three jump commands you have this jump list:
jump line col file/text ~
3 1 0 some text ~
2 70 0 another line ~
1 1154 23 end. ~
> ~
jump line col file/text ~
3 1 0 some text ~
2 70 0 another line ~
1 1154 23 end. ~
> ~
The "file/text" column shows the file name, or the text at the jump if it is
in the current file (an indent is removed and a long line is truncated to fit
@ -1067,11 +1072,11 @@ in the window).
You are currently in line 1167. If you then use the CTRL-O command, the
cursor is put in line 1154. This results in:
jump line col file/text ~
2 1 0 some text ~
1 70 0 another line ~
> 0 1154 23 end. ~
1 1167 0 foo bar ~
jump line col file/text ~
2 1 0 some text ~
1 70 0 another line ~
> 0 1154 23 end. ~
1 1167 0 foo bar ~
The pointer will be set at the last used jump position. The next CTRL-O
command will use the entry above it, the next CTRL-I command will use the
@ -1098,12 +1103,12 @@ that calling setpos() does not do this.
After the CTRL-O command that got you into line 1154 you could give another
jump command (e.g., "G"). The jump list would then become:
jump line col file/text ~
4 1 0 some text ~
3 70 0 another line ~
2 1167 0 foo bar ~
1 1154 23 end. ~
> ~
jump line col file/text ~
4 1 0 some text ~
3 70 0 another line ~
2 1167 0 foo bar ~
1 1154 23 end. ~
> ~
The line numbers will be adjusted for deleted and inserted lines. This fails
if you stop editing a file without writing, like with ":n!".
@ -1152,7 +1157,7 @@ Note that when text has been inserted or deleted the cursor position might be
a bit different from the position of the change. Especially when lines have
been deleted.
When the |:keepjumps| command modifier is used the position of a change is not
When the `:keepjumps` command modifier is used the position of a change is not
remembered.
*:changes*
@ -1193,7 +1198,7 @@ remembered.
#if, #ifdef, #else, #elif, #endif
C preprocessor conditionals (when the
cursor is on the # or no ([{
following)
is following)
For other items the matchit plugin can be used, see
|matchit-install|. This plugin also helps to skip
matches in comments.
@ -1222,19 +1227,16 @@ remembered.
#if/#else/#endif makes the movement linewise.
*[(*
[( go to [count] previous unmatched '('.
[( Go to [count] previous unmatched '('.
|exclusive| motion.
*[{*
[{ go to [count] previous unmatched '{'.
[{ Go to [count] previous unmatched '{'.
|exclusive| motion.
*])*
]) go to [count] next unmatched ')'.
]) Go to [count] next unmatched ')'.
|exclusive| motion.
*]}*
]} go to [count] next unmatched '}'.
]} Go to [count] next unmatched '}'.
|exclusive| motion.
The above four commands can be used to go to the start or end of the current
@ -1268,7 +1270,7 @@ bring you back to the switch statement.
class. When no '}' is found before the cursor this is
an error. |exclusive| motion.
The above two commands assume that the file contains a class with methods.
The above four commands assume that the file contains a class with methods.
The class definition is surrounded in '{' and '}'. Each method in the class
is also surrounded with '{' and '}'. This applies to the Java language. The
file looks like this: >
@ -1282,17 +1284,21 @@ file looks like this: >
body_two();
}
}
[To try this out copy the text and put it in a new buffer, the help text above
confuses the jump commands]
Starting with the cursor on "body_two()", using "[m" will jump to the '{' at
the start of "method_two()" (obviously this is much more useful when the
method is long!). Using "2[m" will jump to the start of "method_one()".
Using "3[m" will jump to the start of the class.
*[#*
[# go to [count] previous unmatched "#if" or "#else".
[# Go to [count] previous unmatched "#if" or "#else".
|exclusive| motion.
*]#*
]# go to [count] next unmatched "#else" or "#endif".
]# Go to [count] next unmatched "#else" or "#endif".
|exclusive| motion.
These two commands work in C programs that contain #if/#else/#endif
@ -1300,11 +1306,11 @@ constructs. It brings you to the start or end of the #if/#else/#endif where
the current line is included. You can then use "%" to go to the matching line.
*[star* *[/*
[* or [/ go to [count] previous start of a C comment "/*".
[* or [/ Go to [count] previous start of a C comment "/*".
|exclusive| motion.
*]star* *]/*
]* or ]/ go to [count] next end of a C comment "*/".
]* or ]/ Go to [count] next end of a C comment "*/".
|exclusive| motion.

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.2. Last change: 2020 Dec 21
*options.txt* For Vim version 8.2. Last change: 2021 May 15
VIM REFERENCE MANUAL by Bram Moolenaar
@ -438,7 +438,7 @@ the system, mostly it is something like 256 or 1024 characters.
CTRL-? CTRL-H
not CTRL-? CTRL-?
(CTRL-? is 0177 octal, 0x7f hex)
(CTRL-? is 0o177 octal, 0x7f hex)
If your delete key terminal code is wrong, but the
code for backspace is alright, you can put this in
@ -749,6 +749,15 @@ A jump table for the options with a short description can be found at |Q_op|.
or selected.
Note: When this option is on some plugins may not work.
*'autoshelldir'* *'asd'* *'noautoshelldir'* *'noasd'*
'autoshelldir' 'asd' boolean (default off)
global
When on, Vim will change the current working directory whenever you
change the directory of the shell running in a terminal window. You
need proper setting-up, so whenever the shell's pwd changes an OSC 7
escape sequence will be emitted. For example, on Linux, you can source
/etc/profile.d/vte.sh in your shell profile if you use bash or zsh.
*'arabic'* *'arab'* *'noarabic'* *'noarab'*
'arabic' 'arab' boolean (default off)
local to window
@ -1568,7 +1577,11 @@ A jump table for the options with a short description can be found at |Q_op|.
{only in GUI versions or when the |+xterm_clipboard|
feature is included}
This option is a list of comma separated names.
These names are recognized:
Note: if one of the items is "exclude:", then you can't add an item
after that. Therefore do append an item with += but use ^= to
prepend, e.g.: >
set clipboard^=unnamed
< These names are recognized:
*clipboard-unnamed*
unnamed When included, Vim will use the clipboard register '*'
@ -2677,6 +2690,8 @@ A jump table for the options with a short description can be found at |Q_op|.
foldcolumn:{n} Set the 'foldcolumn' option to {n} when
starting diff mode. Without this 2 is used.
followwrap Follow the 'wrap' option and leave as it is.
internal Use the internal diff library. This is
ignored when 'diffexpr' is set. *E960*
When running out of memory when writing a
@ -2813,7 +2828,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|setcellwidths()| function to change the behavior.
*'encoding'* *'enc'* *E543*
'encoding' 'enc' string (default: "latin1" or value from $LANG)
'encoding' 'enc' string (default for MS-Windows: "utf-8",
otherwise: value from $LANG or "latin1")
global
Sets the character encoding used inside Vim. It applies to text in
the buffers, registers, Strings in expressions, text stored in the
@ -3229,7 +3245,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Only normal file name characters can be used, "/\*?[|<>" are illegal.
*'fillchars'* *'fcs'*
'fillchars' 'fcs' string (default "vert:|,fold:-")
'fillchars' 'fcs' string (default "vert:|,fold:-,eob:~")
global
{not available when compiled without the |+folding|
feature}
@ -3241,7 +3257,11 @@ A jump table for the options with a short description can be found at |Q_op|.
stlnc:c ' ' or '=' statusline of the non-current windows
vert:c '|' vertical separators |:vsplit|
fold:c '-' filling 'foldtext'
foldopen:c '-' mark the beginning of a fold
foldclose:c '+' show a closed fold
foldsep:c '|' open fold middle character
diff:c '-' deleted lines of the 'diff' option
eob:c '~' empty lines below the end of a buffer
Any one that is omitted will fall back to the default. For "stl" and
"stlnc" the space will be used when there is highlighting, '^' or '='
@ -3252,7 +3272,8 @@ A jump table for the options with a short description can be found at |Q_op|.
< This is similar to the default, except that these characters will also
be used when there is highlighting.
for "stl" and "stlnc" only single-byte values are supported.
For "stl" and "stlnc" single-byte and multibyte characters are
supported. But double-width characters are not supported.
The highlighting used for these items:
item highlight group ~
@ -3261,6 +3282,7 @@ A jump table for the options with a short description can be found at |Q_op|.
vert:c VertSplit |hl-VertSplit|
fold:c Folded |hl-Folded|
diff:c DiffDelete |hl-DiffDelete|
eob:c EndOfBuffer |hl-EndOfBuffer|
*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
'fixendofline' 'fixeol' boolean (default on)
@ -3273,7 +3295,7 @@ A jump table for the options with a short description can be found at |Q_op|.
See the 'endofline' option.
*'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
'fkmap' 'fk' boolean (default off) *E198*
'fkmap' 'fk' boolean (default off)
global
{only available when compiled with the |+rightleft|
feature}
@ -3844,7 +3866,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'go-v'*
'v' Use a vertical button layout for dialogs. When not included,
a horizontal layout is preferred, but when it doesn't fit a
vertical layout is used anyway.
vertical layout is used anyway. Not supported in GTK 3.
*'go-p'*
'p' Use Pointer callbacks for X11 GUI. This is required for some
window managers. If the cursor is not blinking or hollow at
@ -4127,7 +4149,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the window. This happens only when the 'icon' option is on.
Only works if the terminal supports setting window icon text
(currently only X11 GUI and terminals with a non-empty 't_IS' option).
Does not work for MS Windows.
Does not work for MS-Windows.
When Vim was compiled with HAVE_X11 defined, the original icon will be
restored if possible |X11|.
When this option contains printf-style '%' items, they will be
@ -4543,7 +4565,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Keywords are used in searching and recognizing with many commands:
"w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See
'isfname' for a description of the format of this option. For '@'
characters above 255 check the "word" character class.
characters above 255 check the "word" character class (any character
that is not white space or punctuation).
For C programs you could use "a-z,A-Z,48-57,_,.,-,>".
For a help file it is set to all non-blank printable characters except
'*', '"' and '|' (so that CTRL-] on a command finds the help for that
@ -4846,7 +4869,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'listchars'* *'lcs'*
'listchars' 'lcs' string (default "eol:$")
global
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.
*lcs-eol*
@ -4877,7 +4900,13 @@ A jump table for the options with a short description can be found at |Q_op|.
*lcs-space*
space:c Character to show for a space. When omitted, spaces
are left blank.
*lcs-trail*
*lcs-lead*
lead:c Character to show for leading spaces. When omitted,
leading spaces are blank. Overrides the "space"
setting for leading spaces. You can combine it with
"tab:", for example: >
:set listchars+=tab:>-,lead:.
< *lcs-trail*
trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank. Overrides the "space"
setting for trailing spaces.
@ -5009,7 +5038,7 @@ A jump table for the options with a short description can be found at |Q_op|.
jump between two double quotes.
The characters must be separated by a colon.
The pairs must be separated by a comma. Example for including '<' and
'>' (HTML): >
'>' (for HTML): >
:set mps+=<:>
< A more exotic example, to jump between the '=' and ';' in an
@ -5221,7 +5250,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
*'mouse'* *E538*
*'mouse'*
'mouse' string (default "", "a" for GUI and Win32,
set to "a" or "nvi" in |defaults.vim|)
global
@ -6226,7 +6255,7 @@ A jump table for the options with a short description can be found at |Q_op|.
<
*'runtimepath'* *'rtp'* *vimfiles*
'runtimepath' 'rtp' string (default:
Unix: "$HOME/.vim,
Unix: "$HOME/.vim,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
@ -6236,7 +6265,7 @@ A jump table for the options with a short description can be found at |Q_op|.
$VIMRUNTIME,
$VIM/vimfiles/after,
home:vimfiles/after"
PC: "$HOME/vimfiles,
MS-Windows: "$HOME/vimfiles,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
@ -6248,8 +6277,8 @@ A jump table for the options with a short description can be found at |Q_op|.
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
$BE_USER_SETTINGS/vim/after")
VMS: "sys$login:vimfiles,
$BE_USER_SETTINGS/vim/after"
VMS: "sys$login:vimfiles,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
@ -6484,6 +6513,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global values for local options)
options all options and mappings (also global values for local
options)
skiprtp exclude 'runtimepath' and 'packpath' from the options
resize size of the Vim window: 'lines' and 'columns'
sesdir the directory in which the session file is located
will become the current directory (useful with
@ -6577,9 +6607,9 @@ A jump table for the options with a short description can be found at |Q_op|.
in a file and echoed to the screen. If the 'shell' option is "csh" or
"tcsh" after initializations, the default becomes "|& tee". If the
'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta",
"bash" or "fish" the default becomes "2>&1| tee". This means that
stderr is also included. Before using the 'shell' option a path is
removed, thus "/bin/sh" uses "sh".
"bash", "fish", "ash" or "dash" the default becomes "2>&1| tee". This
means that stderr is also included. Before using the 'shell' option a
path is removed, thus "/bin/sh" uses "sh".
The initialization of this option is done after reading the ".vimrc"
and the other initializations, so that when the 'shell' option is set
there, the 'shellpipe' option changes automatically, unless it was
@ -7310,6 +7340,18 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that there is no '%' before the closing '}'. The
expression cannot contain a '}' character, call a function to
work around that. See |stl-%{| below.
{% - This is almost same as { except the result of the expression is
re-evaluated as a statusline format string. Thus if the
return value of expr contains % items they will get expanded.
The expression can contain the } character, the end of
expression is denoted by %}.
The For example: >
func! Stl_filename() abort
return "%t"
endfunc
< `stl=%{Stl_filename()}` results in `"%t"`
`stl=%{%Stl_filename()%}` results in `"Name of current file"`
} - End of `{%` expression
( - Start of item group. Can be used for setting the width and
alignment of a section. Must be followed by %) somewhere.
) - End of item group. No width fields allowed.
@ -8763,23 +8805,31 @@ A jump table for the options with a short description can be found at |Q_op|.
part specifies what to do for each consecutive use of 'wildchar'. The
first part specifies the behavior for the first use of 'wildchar',
The second part for the second use, etc.
These are the possible values for each part:
Each part consists of a colon separated list consisting of the
following possible values:
"" Complete only the first match.
"full" Complete the next full match. After the last match,
the original string is used and then the first match
again.
again. Will also start 'wildmenu' if it is enabled.
"longest" Complete till longest common string. If this doesn't
result in a longer string, use the next part.
"longest:full" Like "longest", but also start 'wildmenu' if it is
enabled.
"list" When more than one match, list all matches.
"lastused" When completing buffer names and more than one buffer
matches, sort buffers by time last used (other than
the current buffer).
When there is only a single match, it is fully completed in all cases.
Examples of useful colon-separated values:
"longest:full" Like "longest", but also start 'wildmenu' if it is
enabled. Will not complete to the next full match.
"list:full" When more than one match, list all matches and
complete first match.
"list:longest" When more than one match, list all matches and
complete till longest common string.
"list:lastused" When more than one buffer matches, sort buffers
by time last used (other than the current buffer).
When there is only a single match, it is fully completed in all cases.
"list:lastused" When more than one buffer matches, list all matches
and sort buffers by time last used (other than the
current buffer).
Examples: >
:set wildmode=full
@ -8838,15 +8888,15 @@ A jump table for the options with a short description can be found at |Q_op|.
*'window'* *'wi'*
'window' 'wi' number (default screen height - 1)
global
Window height. Do not confuse this with the height of the Vim window,
use 'lines' for that.
Used for |CTRL-F| and |CTRL-B| when there is only one window and the
value is smaller than 'lines' minus one. The screen will scroll
'window' minus two lines, with a minimum of one.
Window height used for |CTRL-F| and |CTRL-B| when there is only one
window and the value is smaller than 'lines' minus one. The screen
will scroll 'window' minus two lines, with a minimum of one.
When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll
in a much smarter way, taking care of wrapping lines.
When resizing the Vim window, the value is smaller than 1 or more than
or equal to 'lines' it will be set to 'lines' minus 1.
Note: Do not confuse this with the height of the Vim window, use
'lines' for that.
*'winheight'* *'wh'* *E591*
'winheight' 'wh' number (default 1)

View File

@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 8.2. Last change: 2020 Jun 07
*os_vms.txt* For Vim version 8.2. Last change: 2021 Jan 04
VIM REFERENCE MANUAL
@ -72,7 +72,7 @@ See the file [.SRC]INSTALLVMS.TXT.
4. Problems *vms-problems*
The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
platforms with the DEC C compiler. It should work without big problems.
platforms with the DEC C compiler. It should work without major problems.
If your system does not have some include libraries you can tune up in
OS_VMS_CONF.H file.
@ -765,6 +765,15 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
9. VMS related changes *vms-changes*
Version 8.2
- make all changes needed for clean compile build of v8.2 on VMS on all platforms
- fix the call mkdir bug (vicente_polo@yahoo.es)
- test on VSI OpenVMS Alpha and Itanium platforms
- added LUA support
- added XPM support - Motif GUI with toolbar on all platforms
- XPM v3.4.11 libraries for IA64, AXP and VAX are added
- start integrating the new test scripts
Version 8.1
- make necessary changes to build v8.1 on VMS

View File

@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 8.2. Last change: 2017 Mar 21
*os_win32.txt* For Vim version 8.2. Last change: 2021 Apr 05
VIM REFERENCE MANUAL by George Reilly
@ -83,7 +83,7 @@ executable() returns 1 the executable can actually be executed.
Command line arguments *win32-cmdargs*
Analysis of a command line into parameters is not standardised in MS Windows.
Analysis of a command line into parameters is not standardised in MS-Windows.
Vim and gvim used to use different logic to parse it (before 7.4.432), and the
logic was also depended on what it was compiled with. Now Vim and gvim both
use the CommandLineToArgvW() Win32 API, so they behave in the same way.

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.2. Last change: 2020 Dec 06
*pattern.txt* For Vim version 8.2. Last change: 2021 May 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -19,6 +19,7 @@ explanations are in chapter 27 |usr_27.txt|.
8. Composing characters |patterns-composing|
9. Compare with Perl patterns |perl-patterns|
10. Highlighting matches |match-highlight|
11. Fuzzy matching |fuzzy-match|
==============================================================================
1. Search commands *search-commands*
@ -229,7 +230,7 @@ This is like executing two search commands after each other, except that:
*last-pattern*
The last used pattern and offset are remembered. They can be used to repeat
the search, possibly in another direction or with another count. Note that
two patterns are remembered: One for 'normal' search commands and one for the
two patterns are remembered: One for "normal" search commands and one for the
substitute command ":s". Each time an empty pattern is given, the previously
used pattern is used. However, if there is no previous search command, a
previous substitute pattern is used, if possible.
@ -394,15 +395,19 @@ the pattern will not match. This is only useful when debugging Vim.
==============================================================================
3. Magic */magic*
Some characters in the pattern are taken literally. They match with the same
character in the text. When preceded with a backslash however, these
characters get a special meaning.
Some characters in the pattern, such as letters, are taken literally. They
match exactly the same character in the text. When preceded with a backslash
however, these characters may get a special meaning. For example, "a" matches
the letter "a", while "\a" matches any alphabetic character.
Other characters have a special meaning without a backslash. They need to be
preceded with a backslash to match literally.
preceded with a backslash to match literally. For example "." matches any
character while "\." matches a dot.
If a character is taken literally or not depends on the 'magic' option and the
items mentioned next.
items in the pattern mentioned next. The 'magic' option should always be set,
but it can be switched off for Vi compatibility. We mention the effect of
'nomagic' here for completeness, but we recommend against using that.
*/\m* */\M*
Use of "\m" makes the pattern after it be interpreted as if 'magic' is set,
ignoring the actual value of the 'magic' option.
@ -411,30 +416,28 @@ Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used.
Use of "\v" means that after it, all ASCII characters except '0'-'9', 'a'-'z',
'A'-'Z' and '_' have special meaning: "very magic"
Use of "\V" means that after it, only a backslash and terminating character
(usually / or ?) have special meaning: "very nomagic"
Use of "\V" means that after it, only a backslash and the terminating
character (usually / or ?) have special meaning: "very nomagic"
Examples:
after: \v \m \M \V matches ~
'magic' 'nomagic'
$ $ $ \$ matches end-of-line
. . \. \. matches any character
a a a a literal 'a'
\a \a \a \a any alphabetic character
. . \. \. any character
\. \. . . literal dot
$ $ $ \$ end-of-line
* * \* \* any number of the previous atom
~ ~ \~ \~ latest substitute string
() \(\) \(\) \(\) grouping into an atom
| \| \| \| separating alternatives
\a \a \a \a alphabetic character
() \(\) \(\) \(\) group as an atom
| \| \| \| nothing: separates alternatives
\\ \\ \\ \\ literal backslash
\. \. . . literal dot
\{ { { { literal '{'
a a a a literal 'a'
\{ { { { literal curly brace
{only Vim supports \m, \M, \v and \V}
It is recommended to always keep the 'magic' option at the default setting,
which is 'magic'. This avoids portability problems. To make a pattern immune
to the 'magic' option being set or not, put "\m" or "\M" at the start of the
pattern.
If you want to you can make a pattern immune to the 'magic' option being set
or not by putting "\m" or "\M" at the start of the pattern.
==============================================================================
4. Overview of pattern items *pattern-overview*
@ -1177,7 +1180,7 @@ x A single character, with no special meaning, matches itself
\b <BS>
\n line break, see above |/[\n]|
\d123 decimal number of character
\o40 octal number of character up to 0377
\o40 octal number of character up to 0o377
\x20 hexadecimal number of character up to 0xff
\u20AC hex. number of multibyte character up to 0xffff
\U1234 hex. number of multibyte character up to 0xffffffff
@ -1215,7 +1218,8 @@ x A single character, with no special meaning, matches itself
\%d123 Matches the character specified with a decimal number. Must be
followed by a non-digit.
\%o40 Matches the character specified with an octal number up to 0377.
Numbers below 040 must be followed by a non-octal digit or a non-digit.
Numbers below 0o40 must be followed by a non-octal digit or a
non-digit.
\%x2a Matches the character specified with up to two hexadecimal characters.
\%u20AC Matches the character specified with up to four hexadecimal
characters.
@ -1428,5 +1432,38 @@ Finally, these constructs are unique to Perl:
are suggested to use ":match" for manual matching and
":2match" for another plugin.
==============================================================================
11. Fuzzy matching *fuzzy-match*
Fuzzy matching refers to matching strings using a non-exact search string.
Fuzzy matching will match a string, if all the characters in the search string
are present anywhere in the string in the same order. Case is ignored. In a
matched string, other characters can be present between two consecutive
characters in the search string. If the search string has multiple words, then
each word is matched separately. So the words in the search string can be
present in any order in a string.
Fuzzy matching assigns a score for each matched string based on the following
criteria:
- The number of sequentially matching characters.
- The number of characters (distance) between two consecutive matching
characters.
- Matches at the beginning of a word
- Matches after a camel case character or a path separator or a hyphen.
- The number of unmatched characters in a string.
The matching string with the highest score is returned first.
For example, when you search for the "get pat" string using fuzzy matching, it
will match the strings "GetPattern", "PatternGet", "getPattern", "patGetter",
"getSomePattern", "MatchpatternGet" etc.
The functions |matchfuzzy()| and |matchfuzzypos()| can be used to fuzzy search
a string in a List of strings. The matchfuzzy() function returns a List of
matching strings. The matchfuzzypos() functions returns the List of matches,
the matching positions and the fuzzy match scores.
The "f" flag of `:vimgrep` enables fuzzy matching.
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2020 Nov 07
*popup.txt* For Vim version 8.2. Last change: 2021 Feb 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -309,8 +309,8 @@ popup_dialog({what}, {options}) *popup_dialog()*
popup_filter_menu({id}, {key}) *popup_filter_menu()*
Filter that can be used for a popup. These keys can be used:
j <Down> select item below
k <Up> select item above
j <Down> <C-N> select item below
k <Up> <C-P> select item above
<Space> <Enter> accept current selection
x Esc CTRL-C cancel the menu
Other keys are ignored.
@ -588,8 +588,6 @@ properties. It is in one of four forms:
If you want to create a new buffer yourself use |bufadd()| and pass the buffer
number to popup_create().
It is not possible to use the buffer of a terminal window. *E278* You CAN
create a hidden terminal buffer and use that one in a popup window.
The second argument of |popup_create()| is a dictionary with options:
line Screen line where to position the popup. Can use a
@ -622,7 +620,8 @@ The second argument of |popup_create()| is a dictionary with options:
property moves. Use an empty string to remove. See
|popup-textprop-pos|.
textpropwin What window to search for the text property. When
omitted or invalid the current window is used.
omitted or invalid the current window is used. Used
when "textprop" is present.
textpropid Used to identify the text property when "textprop" is
present. Use zero to reset.
fixed When FALSE (the default), and:
@ -694,8 +693,8 @@ The second argument of |popup_create()| is a dictionary with options:
the left.
border List with numbers, defining the border thickness
above/right/below/left of the popup (similar to CSS).
Only values of zero and non-zero are recognized.
An empty list uses a border all around.
Only values of zero and non-zero are currently
recognized. An empty list uses a border all around.
borderhighlight List of highlight group names to use for the border.
When one entry it is used for all borders, otherwise
the highlight for the top/right/bottom/left border.
@ -743,10 +742,10 @@ The second argument of |popup_create()| is a dictionary with options:
line or to another window.
mousemoved Like "moved" but referring to the mouse pointer
position
cursorline non-zero: Highlight the cursor line. Also scrolls the
text to show this line (only works properly
when 'wrap' is off).
zero: Do not highlight the cursor line.
cursorline TRUE: Highlight the cursor line. Also scrolls the
text to show this line (only works properly
when 'wrap' is off).
zero: Do not highlight the cursor line.
Default is zero, except for |popup_menu()|.
filter A callback that can filter typed characters, see
|popup-filter|.

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.2. Last change: 2020 May 31
*quickfix.txt* For Vim version 8.2. Last change: 2021 May 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1008,13 +1008,11 @@ commands can be combined to create a NewGrep command: >
5.1 using Vim's internal grep
*:vim* *:vimgrep* *E682* *E683*
:vim[grep][!] /{pattern}/[g][j] {file} ...
:vim[grep][!] /{pattern}/[g][j][f] {file} ...
Search for {pattern} in the files {file} ... and set
the error list to the matches. Files matching
'wildignore' are ignored; files in 'suffixes' are
searched last.
Without the 'g' flag each line is added only once.
With 'g' every match is added.
{pattern} is a Vim search pattern. Instead of
enclosing it in / any non-ID character (see
@ -1025,6 +1023,28 @@ commands can be combined to create a NewGrep command: >
'smartcase' is not used.
If {pattern} is empty (e.g. // is specified), the last
used search pattern is used. |last-pattern|
Flags:
'g' Without the 'g' flag each line is added only
once. With 'g' every match is added.
'j' Without the 'j' flag Vim jumps to the first
match. With 'j' only the quickfix list is
updated. With the [!] any changes in the current
buffer are abandoned.
'f' When the 'f' flag is specified, fuzzy string
matching is used to find matching lines. In this
case, {pattern} is treated as a literal string
instead of a regular expression. See
|fuzzy-match| for more information about fuzzy
matching strings.
|QuickFixCmdPre| and |QuickFixCmdPost| are triggered.
A file that is opened for matching may use a buffer
number, but it is reused if possible to avoid
consuming buffer numbers.
:{count}vim[grep] ...
When a number is put before the command this is used
as the maximum number of matches to find. Use
@ -1032,11 +1052,6 @@ commands can be combined to create a NewGrep command: >
Useful if you only want to check if there is a match
and quit quickly when it's found.
Without the 'j' flag Vim jumps to the first match.
With 'j' only the quickfix list is updated.
With the [!] any changes in the current buffer are
abandoned.
Every second or so the searched file name is displayed
to give you an idea of the progress made.
Examples: >
@ -1053,20 +1068,20 @@ commands can be combined to create a NewGrep command: >
:vimgrep Error *.c
<
*:lv* *:lvimgrep*
:lv[imgrep][!] /{pattern}/[g][j] {file} ...
:lv[imgrep][!] /{pattern}/[g][j][f] {file} ...
:lv[imgrep][!] {pattern} {file} ...
Same as ":vimgrep", except the location list for the
current window is used instead of the quickfix list.
*:vimgrepa* *:vimgrepadd*
:vimgrepa[dd][!] /{pattern}/[g][j] {file} ...
:vimgrepa[dd][!] /{pattern}/[g][j][f] {file} ...
:vimgrepa[dd][!] {pattern} {file} ...
Just like ":vimgrep", but instead of making a new list
of errors the matches are appended to the current
list.
*:lvimgrepa* *:lvimgrepadd*
:lvimgrepa[dd][!] /{pattern}/[g][j] {file} ...
:lvimgrepa[dd][!] /{pattern}/[g][j][f] {file} ...
:lvimgrepa[dd][!] {pattern} {file} ...
Same as ":vimgrepadd", except the location list for
the current window is used instead of the quickfix

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.2. Last change: 2020 Aug 15
*quickref.txt* For Vim version 8.2. Last change: 2021 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -605,6 +605,7 @@ Short explanation of each option: *option-list*
'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width
'antialias' 'anti' Mac OS X: use smooth, antialiased fonts
'autochdir' 'acd' change directory to the file in the current window
'autoshelldir' 'asd' change directory to the shell's current directory
'arabic' 'arab' for Arabic as a default second language
'arabicshape' 'arshape' do shaping for Arabic characters
'autoindent' 'ai' take indent for new line from previous line

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.2. Last change: 2020 Oct 09
*repeat.txt* For Vim version 8.2. Last change: 2021 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -59,6 +59,11 @@ of area is used, see |visual-repeat|.
:[range]v[global]/{pattern}/[cmd]
Same as :g!.
Example: >
:g/^Obsolete/d _
Using the underscore after `:d` avoids clobbering registers or the clipboard.
This also makes it faster.
Instead of the '/' which surrounds the {pattern}, you can use any other
single byte character, but not an alphabetic character, '\', '"' or '|'.
This is useful if you want to include a '/' in the search pattern or
@ -150,15 +155,12 @@ q Stops recording. (Implementation note: The 'q' that
*@@* *E748*
@@ Repeat the previous @{0-9a-z":*} [count] times.
:[addr]*{0-9a-z".=+} *:@* *:star*
*:@*
:[addr]@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} as an Ex
command. First set cursor at line [addr] (default is
current line). When the last line in the register does
not have a <CR> it will be added automatically when
the 'e' flag is present in 'cpoptions'.
Note that the ":*" command is only recognized when the
'*' flag is present in 'cpoptions'. This is NOT the
default when 'nocompatible' is used.
For ":@=" the last used expression is used. The
result of evaluating the expression is executed as an
Ex command.
@ -171,6 +173,13 @@ q Stops recording. (Implementation note: The 'q' that
Future: Will execute the register for each line in the
address range.
:[addr]*{0-9a-z".=+} *:star-compatible*
When '*' is present in 'cpoptions' |cpo-star|, use
":*" in the same way as ":@". This is NOT the default
when 'nocompatible' is used. When the '*' flag is not
present in 'cpoptions', ":*" is an alias for ":'<,'>",
select the Visual area |:star|.
*:@:*
:[addr]@: Repeat last command-line. First set cursor at line
[addr] (default is current line).
@ -354,6 +363,16 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
Vim version, or update Vim to a newer version. See
|vimscript-version| for what changed between versions.
:vim9s[cript] [noclear] *:vim9s* *:vim9script*
Marks a script file as containing |Vim9-script|
commands. Also see |vim9-namespace|.
Must be the first command in the file.
For [noclear] see |vim9-reload|.
Without the |+eval| feature this changes the syntax
for some commands.
See |:vim9cmd| for executing one command with Vim9
syntax and semantics.
*:scr* *:scriptnames*
:scr[iptnames] List all sourced script names, in the order they were
first sourced. The number is used for the script ID
@ -667,9 +686,9 @@ Your directory layout would be like this:
opt/fooextra/doc/tags " help tags
This allows for the user to do: >
mkdir ~/.vim/pack/myfoobar
cd ~/.vim/pack/myfoobar
git clone https://github.com/you/foobar.git
mkdir ~/.vim/pack
cd ~/.vim/pack
git clone https://github.com/you/foobar.git myfoobar
Here "myfoobar" is a name that the user can choose, the only condition is that
it differs from other packages.
@ -869,7 +888,7 @@ DEFINING BREAKPOINTS
valid in the script where it has been defined and if that
script is called from several other scripts, this will stop
whenever that particular variable will become visible or
unaccessible again.
inaccessible again.
The [lnum] is the line number of the breakpoint. Vim will stop at or after
this line. When omitted line 1 is used.
@ -891,8 +910,9 @@ matches ".../plugin/explorer.vim", ".../plugin/iexplorer.vim", etc. >
matches ".../plugin/explorer.vim" and "explorer.vim" in any other directory.
The match for functions is done against the name as it's shown in the output
of ":function". For local functions this means that something like "<SNR>99_"
is prepended.
of ":function". However, for local functions the script-specific prefix such
as "<SNR>99_" is ignored to make it easier to match script-local functions
without knowing the ID of the script.
Note that functions are first loaded and later executed. When they are loaded
the "file" breakpoints are checked, when they are executed the "func"
@ -947,10 +967,10 @@ OBSCURE
Profiling means that Vim measures the time that is spent on executing
functions and/or scripts. The |+profile| feature is required for this.
It is only included when Vim was compiled with "huge" features.
It is included when Vim was compiled with "huge" features.
You can also use the |reltime()| function to measure time. This only requires
the |+reltime| feature, which is present more often.
the |+reltime| feature, which is present in more builds.
For profiling syntax highlighting see |:syntime|.
@ -997,7 +1017,12 @@ For example, to profile the one_script.vim script file: >
You must always start with a ":profile start fname" command. The resulting
file is written when Vim exits. Here is an example of the output, with line
file is written when Vim exits. For example, to profile one specific
function: >
profile start /tmp/vimprofile
profile func MyFunc
Here is an example of the output, with line
numbers prepended for the explanation:
1 FUNCTION Test2() ~

View File

@ -1,4 +1,4 @@
*sign.txt* For Vim version 8.2. Last change: 2020 Oct 28
*sign.txt* For Vim version 8.2. Last change: 2021 Mar 07
VIM REFERENCE MANUAL by Gordon Prieur
@ -146,6 +146,9 @@ See |sign_define()| for the equivalent Vim script function.
texthl={group}
Highlighting group used for the text item.
Example: >
:sign define MySign text=>> texthl=Search linehl=DiffText
<
DELETING A SIGN *:sign-undefine* *E155*
@ -155,7 +158,9 @@ See |sign_undefine()| for the equivalent Vim script function.
Deletes a previously defined sign. If signs with this {name}
are still placed this will cause trouble.
Example: >
:sign undefine MySign
<
LISTING SIGNS *:sign-list* *E156*
@ -209,6 +214,10 @@ See |sign_place()| for the equivalent Vim script function.
Same, but use buffer {nr}. If the buffer argument is not
given, place the sign in the current buffer.
Example: >
:sign place 10 line=99 name=sign3
:sign place 10 line=99 name=sign3 buffer=3
<
*E885*
:sign place {id} name={name} file={fname}
Change the placed sign {id} in file {fname} to use the defined
@ -221,10 +230,17 @@ See |sign_place()| for the equivalent Vim script function.
"priority={prio}" attribute can be used to change the priority
of an existing sign.
Example: >
:sign place 23 name=sign1 file=/path/to/edit.py
<
:sign place {id} name={name} [buffer={nr}]
Same, but use buffer {nr}. If the buffer argument is not
given, use the current buffer.
Example: >
:sign place 23 name=sign1
:sign place 23 name=sign1 buffer=7
<
REMOVING SIGNS *:sign-unplace* *E159*

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.2. Last change: 2020 Dec 19
*starting.txt* For Vim version 8.2. Last change: 2021 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1036,7 +1036,7 @@ giving the mapping.
Defaults without a .vimrc file ~
*defaults.vim*
*defaults.vim* *E1187*
If Vim is started normally and no user vimrc file is found, the
$VIMRUNTIME/defaults.vim script is loaded. This will set 'compatible' off,
switch on syntax highlighting and a few more things. See the script for
@ -1344,7 +1344,11 @@ resulting file, when executed with a ":source" command:
"options". Script-local mappings will not be written.
2. Restores global variables that start with an uppercase letter and contain
at least one lowercase letter, if 'sessionoptions' contains "globals".
3. Unloads all currently loaded buffers.
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".
@ -1588,7 +1592,7 @@ VIMINFO FILE NAME *viminfo-file-name*
file name given is "NONE" (all uppercase), no viminfo file is ever read or
written. Also not for the commands below!
- The 'viminfofile' option can be used like the "-i" argument. In fact, the
value form the "-i" argument is stored in the 'viminfofile' option.
value from the "-i" argument is stored in the 'viminfofile' option.
- For the commands below, another file name can be given, overriding the
default and the name given with 'viminfo' or "-i" (unless it's NONE).
@ -1640,13 +1644,17 @@ either have to fix the error, or delete the file (while Vim is running, so
most of the information will be restored).
*:rv* *:rviminfo* *E195*
:rv[iminfo][!] [file] Read from viminfo file [file] (default: see above).
:rv[iminfo][!] [file] Read from viminfo file [file] (default: see
|viminfo-file-name| above).
If [!] is given, then any information that is
already set (registers, marks, |v:oldfiles|, etc.)
will be overwritten
*:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929*
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see
|viminfo-file-name| above).
This command has no effect when 'viminfofile' has been
set to "NONE".
The information in the file is first read in to make
a merge between old and new info. When [!] is used,
the old information is not read first, only the

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2020 Dec 17
*syntax.txt* For Vim version 8.2. Last change: 2021 Apr 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1741,8 +1741,8 @@ The coloring scheme for tags in the HTML file works as follows.
The <> of opening tags are colored differently than the </> of a closing tag.
This is on purpose! For opening tags the 'Function' color is used, while for
closing tags the 'Type' color is used (See syntax.vim to check how those are
defined for you)
closing tags the 'Identifier' color is used (See syntax.vim to check how those
are defined for you)
Known tag names are colored the same way as statements in C. Unknown tag
names are colored with the same color as the <> or </> respectively which
@ -2236,9 +2236,10 @@ can use them.
For example, Linux and BSD distributions use groff as their default text
processing package. In order to activate the extra syntax highlighting
features for groff, add the following option to your start-up files: >
features for groff, arrange for files to be recognized as groff (see
|ft-groff-syntax|) or add the following option to your start-up files: >
:let b:nroff_is_groff = 1
:let nroff_is_groff = 1
Groff is different from the old AT&T n/troff that you may still find in
Solaris. Groff macro and request names can be longer than 2 characters and
@ -2335,11 +2336,12 @@ http://papp.plan9.de.
PASCAL *pascal.vim* *ft-pascal-syntax*
Files matching "*.p" could be Progress or Pascal. If the automatic detection
doesn't work for you, or you don't edit Progress at all, use this in your
startup vimrc: >
Files matching "*.p" could be Progress or Pascal and those matching "*.pp"
could be Puppet or Pascal. If the automatic detection doesn't work for you,
or you only edit Pascal files, use this in your startup vimrc: >
:let filetype_p = "pascal"
:let filetype_p = "pascal"
:let filetype_pp = "pascal"
The Pascal syntax file has been extended to take into account some extensions
provided by Turbo Pascal, Free Pascal Compiler and GNU Pascal Compiler.
@ -4675,7 +4677,7 @@ matches, nextgroup, etc. But there are a few differences:
- A line continuation pattern can be given. It is used to decide which group
of lines need to be searched like they were one line. This means that the
search for a match with the specified items starts in the first of the
consecutive that contain the continuation pattern.
consecutive lines that contain the continuation pattern.
- When using "nextgroup" or "contains", this only works within one line (or
group of continued lines).
- When using a region, it must start and end in the same line (or group of

View File

@ -57,11 +57,13 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'ari' options.txt /*'ari'*
'arshape' options.txt /*'arshape'*
'as' todo.txt /*'as'*
'asd' options.txt /*'asd'*
'autochdir' options.txt /*'autochdir'*
'autoindent' options.txt /*'autoindent'*
'autoprint' vi_diff.txt /*'autoprint'*
'autoread' options.txt /*'autoread'*
'autosave' todo.txt /*'autosave'*
'autoshelldir' options.txt /*'autoshelldir'*
'autowrite' options.txt /*'autowrite'*
'autowriteall' options.txt /*'autowriteall'*
'aw' options.txt /*'aw'*
@ -508,10 +510,12 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'noari' options.txt /*'noari'*
'noarshape' options.txt /*'noarshape'*
'noas' todo.txt /*'noas'*
'noasd' options.txt /*'noasd'*
'noautochdir' options.txt /*'noautochdir'*
'noautoindent' options.txt /*'noautoindent'*
'noautoread' options.txt /*'noautoread'*
'noautosave' todo.txt /*'noautosave'*
'noautoshelldir' options.txt /*'noautoshelldir'*
'noautowrite' options.txt /*'noautowrite'*
'noautowriteall' options.txt /*'noautowriteall'*
'noaw' options.txt /*'noaw'*
@ -1045,6 +1049,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_da' term.txt /*'t_da'*
't_db' term.txt /*'t_db'*
't_dl' term.txt /*'t_dl'*
't_fd' term.txt /*'t_fd'*
't_fe' term.txt /*'t_fe'*
't_fs' term.txt /*'t_fs'*
't_k1' term.txt /*'t_k1'*
't_k2' term.txt /*'t_k2'*
@ -1290,6 +1296,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+cmdline_compl various.txt /*+cmdline_compl*
+cmdline_hist various.txt /*+cmdline_hist*
+cmdline_info various.txt /*+cmdline_info*
+cmdwin various.txt /*+cmdwin*
+comments various.txt /*+comments*
+conceal various.txt /*+conceal*
+cryptv various.txt /*+cryptv*
@ -1783,6 +1790,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
09.2 usr_09.txt /*09.2*
09.3 usr_09.txt /*09.3*
09.4 usr_09.txt /*09.4*
0o eval.txt /*0o*
0x eval.txt /*0x*
10.1 usr_10.txt /*10.1*
10.2 usr_10.txt /*10.2*
10.3 usr_10.txt /*10.3*
@ -1994,6 +2003,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:AdaTagFile ft_ada.txt /*:AdaTagFile*
:AdaTypes ft_ada.txt /*:AdaTypes*
:Arguments terminal.txt /*:Arguments*
:Asm terminal.txt /*:Asm*
:Break terminal.txt /*:Break*
:Cfilter quickfix.txt /*:Cfilter*
:Clear terminal.txt /*:Clear*
@ -2072,6 +2082,11 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:_#< cmdline.txt /*:_#<*
:_#n cmdline.txt /*:_#n*
:_% cmdline.txt /*:_%*
:_%% cmdline.txt /*:_%%*
:_%%% cmdline.txt /*:_%%%*
:_%%0 cmdline.txt /*:_%%0*
:_%%< cmdline.txt /*:_%%<*
:_%%n cmdline.txt /*:_%%n*
:_%: cmdline.txt /*:_%:*
:_%< cmdline.txt /*:_%<*
:a insert.txt /*:a*
@ -2386,6 +2401,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ec eval.txt /*:ec*
:echo eval.txt /*:echo*
:echo-redraw eval.txt /*:echo-redraw*
:echoc eval.txt /*:echoc*
:echoconsole eval.txt /*:echoconsole*
:echoe eval.txt /*:echoe*
:echoerr eval.txt /*:echoerr*
:echoh eval.txt /*:echoh*
@ -2613,6 +2630,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:left change.txt /*:left*
:lefta windows.txt /*:lefta*
:leftabove windows.txt /*:leftabove*
:leg vim9.txt /*:leg*
:legacy vim9.txt /*:legacy*
:let eval.txt /*:let*
:let%= eval.txt /*:let%=*
:let+= eval.txt /*:let+=*
@ -3104,9 +3123,11 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:sip change.txt /*:sip*
:sir change.txt /*:sir*
:sl various.txt /*:sl*
:sl! various.txt /*:sl!*
:sla windows.txt /*:sla*
:slast windows.txt /*:slast*
:sleep various.txt /*:sleep*
:sleep! various.txt /*:sleep!*
:sm change.txt /*:sm*
:smagic change.txt /*:smagic*
:smap map.txt /*:smap*
@ -3163,7 +3184,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:st starting.txt /*:st*
:sta windows.txt /*:sta*
:stag windows.txt /*:stag*
:star repeat.txt /*:star*
:star cmdline.txt /*:star*
:star-compatible repeat.txt /*:star-compatible*
:star-visual-range cmdline.txt /*:star-visual-range*
:start insert.txt /*:start*
:startgreplace insert.txt /*:startgreplace*
@ -3178,6 +3200,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:stselect tagsrch.txt /*:stselect*
:su change.txt /*:su*
:substitute change.txt /*:substitute*
:substitute-repeat change.txt /*:substitute-repeat*
:sun windows.txt /*:sun*
:sunhide windows.txt /*:sunhide*
:sunm map.txt /*:sunm*
@ -3390,7 +3413,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:view editing.txt /*:view*
:vim quickfix.txt /*:vim*
:vim9 vim9.txt /*:vim9*
:vim9script vim9.txt /*:vim9script*
:vim9cmd vim9.txt /*:vim9cmd*
:vim9s repeat.txt /*:vim9s*
:vim9script repeat.txt /*:vim9script*
:vimgrep quickfix.txt /*:vimgrep*
:vimgrepa quickfix.txt /*:vimgrepa*
:vimgrepadd quickfix.txt /*:vimgrepadd*
@ -3914,6 +3939,7 @@ E1050 vim9.txt /*E1050*
E107 eval.txt /*E107*
E108 eval.txt /*E108*
E109 eval.txt /*E109*
E1091 vim9.txt /*E1091*
E1092 vim9.txt /*E1092*
E1094 vim9.txt /*E1094*
E11 cmdline.txt /*E11*
@ -3931,6 +3957,7 @@ E1136 map.txt /*E1136*
E1137 map.txt /*E1137*
E114 eval.txt /*E114*
E115 eval.txt /*E115*
E1155 autocmd.txt /*E1155*
E116 eval.txt /*E116*
E117 eval.txt /*E117*
E118 eval.txt /*E118*
@ -4020,7 +4047,6 @@ E194 message.txt /*E194*
E195 starting.txt /*E195*
E196 various.txt /*E196*
E197 mlang.txt /*E197*
E198 options.txt /*E198*
E199 cmdline.txt /*E199*
E20 motion.txt /*E20*
E200 autocmd.txt /*E200*
@ -4106,7 +4132,6 @@ E274 eval.txt /*E274*
E275 textprop.txt /*E275*
E276 eval.txt /*E276*
E277 remote.txt /*E277*
E278 popup.txt /*E278*
E279 terminal.txt /*E279*
E28 syntax.txt /*E28*
E280 if_tcl.txt /*E280*
@ -4172,7 +4197,6 @@ E337 gui.txt /*E337*
E338 editing.txt /*E338*
E339 message.txt /*E339*
E34 various.txt /*E34*
E340 vi_diff.txt /*E340*
E341 message.txt /*E341*
E342 message.txt /*E342*
E343 options.txt /*E343*
@ -4380,7 +4404,6 @@ E534 options.txt /*E534*
E535 options.txt /*E535*
E536 options.txt /*E536*
E537 options.txt /*E537*
E538 options.txt /*E538*
E539 options.txt /*E539*
E54 pattern.txt /*E54*
E540 options.txt /*E540*
@ -5152,6 +5175,7 @@ VMS os_vms.txt /*VMS*
Vi intro.txt /*Vi*
View starting.txt /*View*
Vim9 vim9.txt /*Vim9*
Vim9-script vim9.txt /*Vim9-script*
VimEnter autocmd.txt /*VimEnter*
VimLeave autocmd.txt /*VimLeave*
VimLeavePre autocmd.txt /*VimLeavePre*
@ -5414,6 +5438,7 @@ assert_fails() testing.txt /*assert_fails()*
assert_false() testing.txt /*assert_false()*
assert_inrange() testing.txt /*assert_inrange()*
assert_match() testing.txt /*assert_match()*
assert_nobeep() testing.txt /*assert_nobeep()*
assert_notequal() testing.txt /*assert_notequal()*
assert_notmatch() testing.txt /*assert_notmatch()*
assert_report() testing.txt /*assert_report()*
@ -5563,6 +5588,10 @@ c_## cmdline.txt /*c_##*
c_#< cmdline.txt /*c_#<*
c_#n cmdline.txt /*c_#n*
c_% cmdline.txt /*c_%*
c_%% cmdline.txt /*c_%%*
c_%%%# cmdline.txt /*c_%%%#*
c_%%< cmdline.txt /*c_%%<*
c_%%n cmdline.txt /*c_%%n*
c_<BS> cmdline.txt /*c_<BS>*
c_<C-Left> cmdline.txt /*c_<C-Left>*
c_<C-R> cmdline.txt /*c_<C-R>*
@ -5746,8 +5775,10 @@ characterwise motion.txt /*characterwise*
characterwise-register change.txt /*characterwise-register*
characterwise-visual visual.txt /*characterwise-visual*
charclass() eval.txt /*charclass()*
charcol() eval.txt /*charcol()*
charconvert_from-variable eval.txt /*charconvert_from-variable*
charconvert_to-variable eval.txt /*charconvert_to-variable*
charidx() eval.txt /*charidx()*
charity uganda.txt /*charity*
charset mbyte.txt /*charset*
charset-conversion mbyte.txt /*charset-conversion*
@ -6336,6 +6367,7 @@ expression-commands eval.txt /*expression-commands*
expression-syntax eval.txt /*expression-syntax*
exrc starting.txt /*exrc*
extend() eval.txt /*extend()*
extendnew() eval.txt /*extendnew()*
extension-removal cmdline.txt /*extension-removal*
extensions-improvements todo.txt /*extensions-improvements*
f motion.txt /*f*
@ -6400,6 +6432,7 @@ fixed-7.2 version7.txt /*fixed-7.2*
fixed-7.3 version7.txt /*fixed-7.3*
fixed-7.4 version7.txt /*fixed-7.4*
flatten() eval.txt /*flatten()*
flattennew() eval.txt /*flattennew()*
flexwiki.vim syntax.txt /*flexwiki.vim*
float-e eval.txt /*float-e*
float-functions usr_41.txt /*float-functions*
@ -6409,13 +6442,33 @@ floating-point-format eval.txt /*floating-point-format*
floating-point-precision eval.txt /*floating-point-precision*
floor() eval.txt /*floor()*
fmod() eval.txt /*fmod()*
fname-variable eval.txt /*fname-variable*
fname_diff-variable eval.txt /*fname_diff-variable*
fname_in-variable eval.txt /*fname_in-variable*
fname_new-variable eval.txt /*fname_new-variable*
fname_out-variable eval.txt /*fname_out-variable*
fnameescape() eval.txt /*fnameescape()*
fnamemodify() eval.txt /*fnamemodify()*
fo-1 change.txt /*fo-1*
fo-2 change.txt /*fo-2*
fo-B change.txt /*fo-B*
fo-M change.txt /*fo-M*
fo-] change.txt /*fo-]*
fo-a change.txt /*fo-a*
fo-b change.txt /*fo-b*
fo-c change.txt /*fo-c*
fo-j change.txt /*fo-j*
fo-l change.txt /*fo-l*
fo-m change.txt /*fo-m*
fo-n change.txt /*fo-n*
fo-o change.txt /*fo-o*
fo-p change.txt /*fo-p*
fo-q change.txt /*fo-q*
fo-r change.txt /*fo-r*
fo-t change.txt /*fo-t*
fo-table change.txt /*fo-table*
fo-v change.txt /*fo-v*
fo-w change.txt /*fo-w*
fold-behavior fold.txt /*fold-behavior*
fold-colors fold.txt /*fold-colors*
fold-commands fold.txt /*fold-commands*
@ -6538,6 +6591,7 @@ ft-mail.vim syntax.txt /*ft-mail.vim*
ft-make-syntax syntax.txt /*ft-make-syntax*
ft-man-plugin filetype.txt /*ft-man-plugin*
ft-maple-syntax syntax.txt /*ft-maple-syntax*
ft-markdown-plugin filetype.txt /*ft-markdown-plugin*
ft-masm-syntax syntax.txt /*ft-masm-syntax*
ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
ft-matlab-indent indent.txt /*ft-matlab-indent*
@ -6628,6 +6682,7 @@ ftplugin-name usr_05.txt /*ftplugin-name*
ftplugin-overrule filetype.txt /*ftplugin-overrule*
ftplugin-special usr_41.txt /*ftplugin-special*
ftplugins usr_05.txt /*ftplugins*
fullcommand() eval.txt /*fullcommand()*
funcref() eval.txt /*funcref()*
function() eval.txt /*function()*
function-argument eval.txt /*function-argument*
@ -6637,6 +6692,7 @@ function-range-example eval.txt /*function-range-example*
function-search-undo eval.txt /*function-search-undo*
function_key intro.txt /*function_key*
functions eval.txt /*functions*
fuzzy-match pattern.txt /*fuzzy-match*
fvwm.vim syntax.txt /*fvwm.vim*
fvwm2rc syntax.txt /*fvwm2rc*
fvwmrc syntax.txt /*fvwmrc*
@ -6940,6 +6996,7 @@ getbufvar() eval.txt /*getbufvar()*
getchangelist() eval.txt /*getchangelist()*
getchar() eval.txt /*getchar()*
getcharmod() eval.txt /*getcharmod()*
getcharpos() eval.txt /*getcharpos()*
getcharsearch() eval.txt /*getcharsearch()*
getcmdline() eval.txt /*getcmdline()*
getcmdpos() eval.txt /*getcmdpos()*
@ -6947,6 +7004,7 @@ getcmdtype() eval.txt /*getcmdtype()*
getcmdwintype() eval.txt /*getcmdwintype()*
getcompletion() eval.txt /*getcompletion()*
getcurpos() eval.txt /*getcurpos()*
getcursorcharpos() eval.txt /*getcursorcharpos()*
getcwd() eval.txt /*getcwd()*
getenv() eval.txt /*getenv()*
getfontname() eval.txt /*getfontname()*
@ -7147,6 +7205,7 @@ hebrew hebrew.txt /*hebrew*
hebrew.txt hebrew.txt /*hebrew.txt*
help helphelp.txt /*help*
help-context help.txt /*help-context*
help-curwin tips.txt /*help-curwin*
help-summary usr_02.txt /*help-summary*
help-tags tags 1
help-translated helphelp.txt /*help-translated*
@ -7455,6 +7514,7 @@ info-message starting.txt /*info-message*
inform.vim syntax.txt /*inform.vim*
informix ft_sql.txt /*informix*
initialization starting.txt /*initialization*
inline-function vim9.txt /*inline-function*
input() eval.txt /*input()*
inputdialog() eval.txt /*inputdialog()*
inputlist() eval.txt /*inputlist()*
@ -7595,6 +7655,7 @@ lc_time-variable eval.txt /*lc_time-variable*
lcs-conceal options.txt /*lcs-conceal*
lcs-eol options.txt /*lcs-eol*
lcs-extends options.txt /*lcs-extends*
lcs-lead options.txt /*lcs-lead*
lcs-nbsp options.txt /*lcs-nbsp*
lcs-precedes options.txt /*lcs-precedes*
lcs-space options.txt /*lcs-space*
@ -7623,6 +7684,7 @@ linewise-visual visual.txt /*linewise-visual*
lisp.vim syntax.txt /*lisp.vim*
lispindent() eval.txt /*lispindent()*
list eval.txt /*list*
list-concatenation eval.txt /*list-concatenation*
list-functions usr_41.txt /*list-functions*
list-identity eval.txt /*list-identity*
list-index eval.txt /*list-index*
@ -7730,6 +7792,7 @@ map-return map.txt /*map-return*
map-self-destroy tips.txt /*map-self-destroy*
map-space_in_lhs map.txt /*map-space_in_lhs*
map-space_in_rhs map.txt /*map-space_in_rhs*
map-table map.txt /*map-table*
map-typing map.txt /*map-typing*
map-which-keys map.txt /*map-which-keys*
map.txt map.txt /*map.txt*
@ -8248,9 +8311,12 @@ notation intro.txt /*notation*
notepad gui_w32.txt /*notepad*
nr2char() eval.txt /*nr2char()*
nroff.vim syntax.txt /*nroff.vim*
null vim9.txt /*null*
null-variable eval.txt /*null-variable*
number_relativenumber options.txt /*number_relativenumber*
numbered-function eval.txt /*numbered-function*
numbermax-variable eval.txt /*numbermax-variable*
numbermin-variable eval.txt /*numbermin-variable*
numbersize-variable eval.txt /*numbersize-variable*
o insert.txt /*o*
o_CTRL-V motion.txt /*o_CTRL-V*
@ -8525,6 +8591,12 @@ prop_type_change() textprop.txt /*prop_type_change()*
prop_type_delete() textprop.txt /*prop_type_delete()*
prop_type_get() textprop.txt /*prop_type_get()*
prop_type_list() textprop.txt /*prop_type_list()*
ps1-about ft_ps1.txt /*ps1-about*
ps1-compiler ft_ps1.txt /*ps1-compiler*
ps1-folding ft_ps1.txt /*ps1-folding*
ps1-keyword ft_ps1.txt /*ps1-keyword*
ps1-syntax ft_ps1.txt /*ps1-syntax*
ps1.txt ft_ps1.txt /*ps1.txt*
psql ft_sql.txt /*psql*
ptcap.vim syntax.txt /*ptcap.vim*
pterm-mouse options.txt /*pterm-mouse*
@ -8652,6 +8724,7 @@ quotestar gui.txt /*quotestar*
quote~ change.txt /*quote~*
r change.txt /*r*
r.vim syntax.txt /*r.vim*
raku-unicode ft_raku.txt /*raku-unicode*
rand() eval.txt /*rand()*
random eval.txt /*random*
range() eval.txt /*range()*
@ -8661,6 +8734,7 @@ read-in-close-cb channel.txt /*read-in-close-cb*
read-messages insert.txt /*read-messages*
read-only-share editing.txt /*read-only-share*
read-stdin version5.txt /*read-stdin*
readblob() eval.txt /*readblob()*
readdir() eval.txt /*readdir()*
readdirex() eval.txt /*readdirex()*
readfile() eval.txt /*readfile()*
@ -8859,8 +8933,10 @@ set-spc-auto spell.txt /*set-spc-auto*
setbufline() eval.txt /*setbufline()*
setbufvar() eval.txt /*setbufvar()*
setcellwidths() eval.txt /*setcellwidths()*
setcharpos() eval.txt /*setcharpos()*
setcharsearch() eval.txt /*setcharsearch()*
setcmdpos() eval.txt /*setcmdpos()*
setcursorcharpos() eval.txt /*setcursorcharpos()*
setenv() eval.txt /*setenv()*
setfperm() eval.txt /*setfperm()*
setline() eval.txt /*setline()*
@ -8924,6 +9000,7 @@ sinh() eval.txt /*sinh()*
skeleton autocmd.txt /*skeleton*
skip_defaults_vim starting.txt /*skip_defaults_vim*
slice eval.txt /*slice*
slice() eval.txt /*slice()*
slow-fast-terminal term.txt /*slow-fast-terminal*
slow-start starting.txt /*slow-start*
slow-terminal term.txt /*slow-terminal*
@ -9109,6 +9186,7 @@ str2float() eval.txt /*str2float()*
str2list() eval.txt /*str2list()*
str2nr() eval.txt /*str2nr()*
strcasestr() eval.txt /*strcasestr()*
strcharlen() eval.txt /*strcharlen()*
strcharpart() eval.txt /*strcharpart()*
strchars() eval.txt /*strchars()*
strchr() eval.txt /*strchr()*
@ -9319,6 +9397,8 @@ t_f6 version4.txt /*t_f6*
t_f7 version4.txt /*t_f7*
t_f8 version4.txt /*t_f8*
t_f9 version4.txt /*t_f9*
t_fd term.txt /*t_fd*
t_fe term.txt /*t_fe*
t_float-variable eval.txt /*t_float-variable*
t_fs term.txt /*t_fs*
t_func-variable eval.txt /*t_func-variable*
@ -9541,6 +9621,7 @@ termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-variables terminal.txt /*termdebug-variables*
termdebug_disasm_window terminal.txt /*termdebug_disasm_window*
termdebug_map_K terminal.txt /*termdebug_map_K*
termdebug_popup terminal.txt /*termdebug_popup*
termdebug_shortcuts terminal.txt /*termdebug_shortcuts*
@ -9692,6 +9773,7 @@ type-inference vim9.txt /*type-inference*
type-mistakes tips.txt /*type-mistakes*
typecorr-settings usr_41.txt /*typecorr-settings*
typecorr.txt usr_41.txt /*typecorr.txt*
typename() eval.txt /*typename()*
u undo.txt /*u*
uganda uganda.txt /*uganda*
uganda.txt uganda.txt /*uganda.txt*
@ -9799,6 +9881,7 @@ v:exiting eval.txt /*v:exiting*
v:false eval.txt /*v:false*
v:fcs_choice eval.txt /*v:fcs_choice*
v:fcs_reason eval.txt /*v:fcs_reason*
v:fname eval.txt /*v:fname*
v:fname_diff eval.txt /*v:fname_diff*
v:fname_in eval.txt /*v:fname_in*
v:fname_new eval.txt /*v:fname_new*
@ -9819,6 +9902,8 @@ v:mouse_win eval.txt /*v:mouse_win*
v:mouse_winid eval.txt /*v:mouse_winid*
v:none eval.txt /*v:none*
v:null eval.txt /*v:null*
v:numbermax eval.txt /*v:numbermax*
v:numbermin eval.txt /*v:numbermin*
v:numbersize eval.txt /*v:numbersize*
v:oldfiles eval.txt /*v:oldfiles*
v:operator eval.txt /*v:operator*
@ -10052,26 +10137,38 @@ vim-dev intro.txt /*vim-dev*
vim-mac intro.txt /*vim-mac*
vim-modes intro.txt /*vim-modes*
vim-modes-intro intro.txt /*vim-modes-intro*
vim-raku ft_raku.txt /*vim-raku*
vim-raku.txt ft_raku.txt /*vim-raku.txt*
vim-script-intro usr_41.txt /*vim-script-intro*
vim-use intro.txt /*vim-use*
vim-variable eval.txt /*vim-variable*
vim.vim syntax.txt /*vim.vim*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim9 vim9.txt /*vim9*
vim9-classes vim9.txt /*vim9-classes*
vim9-const vim9.txt /*vim9-const*
vim9-curly vim9.txt /*vim9-curly*
vim9-declaration vim9.txt /*vim9-declaration*
vim9-declarations usr_46.txt /*vim9-declarations*
vim9-differences vim9.txt /*vim9-differences*
vim9-export vim9.txt /*vim9-export*
vim9-final vim9.txt /*vim9-final*
vim9-gotchas vim9.txt /*vim9-gotchas*
vim9-ignored-argument vim9.txt /*vim9-ignored-argument*
vim9-import vim9.txt /*vim9-import*
vim9-lambda vim9.txt /*vim9-lambda*
vim9-lambda-arguments vim9.txt /*vim9-lambda-arguments*
vim9-mix vim9.txt /*vim9-mix*
vim9-namespace vim9.txt /*vim9-namespace*
vim9-rationale vim9.txt /*vim9-rationale*
vim9-reload vim9.txt /*vim9-reload*
vim9-scopes vim9.txt /*vim9-scopes*
vim9-script vim9.txt /*vim9-script*
vim9-script-intro usr_46.txt /*vim9-script-intro*
vim9-types vim9.txt /*vim9-types*
vim9-unpack-ignore vim9.txt /*vim9-unpack-ignore*
vim9-user-command vim9.txt /*vim9-user-command*
vim9-variable-arguments vim9.txt /*vim9-variable-arguments*
vim9.txt vim9.txt /*vim9.txt*
vim9script vim9.txt /*vim9script*
vim: options.txt /*vim:*
@ -10289,6 +10386,7 @@ xterm-command-server term.txt /*xterm-command-server*
xterm-copy-paste term.txt /*xterm-copy-paste*
xterm-cursor-keys term.txt /*xterm-cursor-keys*
xterm-end-home-keys term.txt /*xterm-end-home-keys*
xterm-focus-event term.txt /*xterm-focus-event*
xterm-function-keys term.txt /*xterm-function-keys*
xterm-modifier-keys term.txt /*xterm-modifier-keys*
xterm-mouse options.txt /*xterm-mouse*

View File

@ -888,19 +888,25 @@ like |CTRL-]|.
The function used for generating the taglist is specified by setting the
'tagfunc' option. The function will be called with three arguments:
a:pattern The tag identifier used during the tag search.
a:flags List of flags to control the function behavior.
a:pattern The tag identifier or pattern used during the tag search.
a:flags String containing flags to control the function behavior.
a:info Dict containing the following entries:
buf_ffname Full filename which can be used for priority.
user_data Custom data String, if stored in the tag
stack previously by tagfunc.
Currently two flags may be passed to the tag function:
Currently up to three flags may be passed to the tag function:
'c' The function was invoked by a normal command being processed
(mnemonic: the tag function may use the context around the
cursor to perform a better job of generating the tag list.)
'i' In Insert mode, the user was completing a tag (with
|i_CTRL-X_CTRL-]|).
|i_CTRL-X_CTRL-]| or 'completeopt' contains `t`).
'r' The first argument to tagfunc should be interpreted as a
|pattern| (see |tag-regexp|), such as when using: >
:tag /pat
< It is also given when completing in insert mode.
If this flag is not present, the argument is usually taken
literally as the full tag name.
Note that when 'tagfunc' is set, the priority of the tags described in
|tag-priority| does not apply. Instead, the priority is exactly as the

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2020 Apr 12
*term.txt* For Vim version 8.2. Last change: 2021 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -373,6 +373,10 @@ Added by Vim (there are no standard codes for these):
t_Ri restore icon text from stack *t_Ri* *'t_Ri'*
t_TE end of "raw" mode *t_TE* *'t_TE'*
t_TI put terminal into "raw" mode *t_TI* *'t_TI'*
t_fd disable focus-event tracking *t_fd* *'t_fd'*
|xterm-focus-event|
t_fe enable focus-event tracking *t_fe* *'t_fe'*
|xterm-focus-event|
Some codes have a start, middle and end part. The start and end are defined
by the termcap option, the middle part is text.
@ -546,6 +550,16 @@ And run "xrdb -merge .Xresources" to make it effective. You can check the
value with the context menu (right mouse button while CTRL key is pressed),
there should be a tick at allow-window-ops.
*xterm-focus-event*
Some terminals including xterm support the focus event tracking feature.
If this feature is enabled by the 't_fe' sequence, special key sequences are
sent from the terminal to Vim every time the terminal gains or loses focus.
Vim fires focus events (|FocusGained|/|FocusLost|) by handling them accordingly.
Focus event tracking is disabled by a 't_fd' sequence when exiting "raw" mode.
If you would like to disable this feature, add the following to your .vimrc:
`set t_fd=`
`set t_fe=`
*termcap-colors*
Note about colors: The 't_Co' option tells Vim the number of colors available.
When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2020 Nov 25
*terminal.txt* For Vim version 8.2. Last change: 2021 Feb 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -126,11 +126,28 @@ After opening the terminal window and setting 'buftype' to "terminal" the
|TerminalWinOpen| autocommand event is triggered. This makes it possible to set
options specifically for the terminal window and buffer. Example: >
au TerminalWinOpen * setlocal bufhidden=hide
This only works properly if the terminal is not hidden.
There is also the |TerminalOpen| event, but this may be triggered for a hidden
terminal, and the current window and buffer may not be for the new terminal.
For both hidden and non-hidden terminals this works, both for buffer-local and
window-local options: >
au TerminalWinOpen,BufWinEnter * if &buftype == 'terminal'
\ | setlocal bufhidden=hide colorcolumn=123
\ | endif
Note that for a hidden terminal the options are not set until the terminal is
no longer hidden.
There is also the |TerminalOpen| event. Keep in mind this may be triggered
for a hidden terminal, then the current window and buffer are not that of the
new terminal.
You need to use <abuf>, which is set to the terminal buffer. Example: >
au TerminalOpen * call setbufvar(+expand('<abuf>'), '&colorcolumn', 123)
au TerminalOpen * call setbufvar(expand('<abuf>')->str2nr(),
\ '&termwinscroll', 1000)
For a window-local option, you need to delay setting the option until the
terminal window has been created (this only works for a hidden terminal): >
au TerminalOpen * exe printf(
\ 'au BufWinEnter <buffer=%d> ++once setlocal colorcolumn=%d',
\ expand('<abuf>')->str2nr(), 123)
For a non-hidden terminal use |TerminalWinOpen|.
Mouse events (click and drag) are passed to the terminal. Mouse move events
are only passed when Vim itself is receiving them. For a terminal that is
@ -717,6 +734,8 @@ term_scrape({buf}, {row}) *term_scrape()*
"attr" attributes of the cell, use |term_getattr()|
to get the individual flags
"width" cell width: 1 or 2
For a double-width cell there is one item, thus the list can
be shorter than the width of the terminal.
Can also be used as a |method|: >
GetBufnr()->term_scrape(row)
@ -742,6 +761,9 @@ term_setapi({buf}, {expr}) *term_setapi()*
The default is "Tapi_". When {expr} is an empty string then
no |terminal-api| function can be used for {buf}.
When used as a method the base is used for {buf}: >
GetBufnr()->term_setapi({expr})
term_setansicolors({buf}, {colors}) *term_setansicolors()*
Set the ANSI color palette used by terminal {buf}.
{colors} must be a List of 16 valid color names or hexadecimal
@ -1327,6 +1349,8 @@ Other commands ~
*:Program* jump to the window with the running program
*:Source* jump to the window with the source code, create it if there
isn't one
*:Asm* jump to the window with the disassembly, create it if there
isn't one
Prompt mode ~
@ -1349,6 +1373,12 @@ Prompt mode can be used even when the |+terminal| feature is present with: >
The K key is normally mapped to :Evaluate. If you do not want this use: >
let g:termdebug_map_K = 0
<
*termdebug_disasm_window*
If you want the Asm window shown by default, set this to 1. Setting to
any value greater than 1 will set the Asm window height to that value: >
let g:termdebug_disasm_window = 15
<
Communication ~
*termdebug-communication*

View File

@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2020 Dec 12
*testing.txt* For Vim version 8.2. Last change: 2021 Apr 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -168,6 +168,7 @@ test_override({name}, {val}) *test_override()*
wait time of up to 3 seconds for messages
term_props reset all terminal properties when the version
string is detected
uptime overrules sysinfo.uptime
ALL clear all overrides ({val} is not used)
"starting" is to be used when a test should behave like
@ -242,7 +243,8 @@ test_srand_seed([seed]) *test_srand_seed()*
assert_beeps({cmd}) *assert_beeps()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce a beep or visual bell.
Also see |assert_fails()| and |assert-return|.
Also see |assert_fails()|, |assert_nobeep()| and
|assert-return|.
Can also be used as a |method|: >
GetCmd()->assert_beeps()
@ -375,6 +377,14 @@ assert_match({pattern}, {actual} [, {msg}])
Can also be used as a |method|: >
getFile()->assert_match('foo.*')
<
assert_nobeep({cmd}) *assert_nobeep()*
Run {cmd} and add an error message to |v:errors| if it
produces a beep or visual bell.
Also see |assert_beeps()|.
Can also be used as a |method|: >
GetCmd()->assert_nobeep()
<
*assert_notequal()*
assert_notequal({expected}, {actual} [, {msg}])

View File

@ -1,4 +1,4 @@
*textprop.txt* For Vim version 8.2. Last change: 2020 Oct 14
*textprop.txt* For Vim version 8.2. Last change: 2021 Mar 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -175,6 +175,7 @@ prop_find({props} [, {direction}])
Search for a text property as specified with {props}:
id property with this ID
type property with this type name
both "id" and "type" must both match
bufnr buffer to search in; when present a
start position with "lnum" and "col"
must be given; when omitted the
@ -187,6 +188,7 @@ prop_find({props} [, {direction}])
skipstart do not look for a match at the start
position
A property matches when either "id" or "type" matches.
{direction} can be "f" for forward and "b" for backward. When
omitted forward search is performed.
@ -258,8 +260,8 @@ prop_type_add({name}, {props}) *prop_type_add()* *E969* *E970*
properties the one with the highest priority
will be used; negative values can be used, the
default priority is zero
combine when TRUE combine the highlight with any
syntax highlight; when omitted or FALSE syntax
combine when omitted or TRUE combine the highlight
with any syntax highlight; when FALSE syntax
highlight will not be used
start_incl when TRUE inserts at the start position will
be included in the text property

View File

@ -1,4 +1,4 @@
*tips.txt* For Vim version 8.2. Last change: 2009 Nov 07
*tips.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,6 +30,7 @@ Executing shell commands in a window |shell-window|
Hex editing |hex-editing|
Using <> notation in autocommands |autocmd-<>|
Highlighting matching parens |match-parens|
Opening help in the current window |help-curwin|
==============================================================================
Editing C programs *C-editing*
@ -530,4 +531,28 @@ A slightly more advanced version is used in the |matchparen| plugin.
autocmd InsertEnter * match none
<
==============================================================================
Opening help in the current window *help-curwin*
By default, help is displayed in a split window. If you prefer it opens in
the current window, try this custom `:HelpCurwin` command:
>
command -bar -nargs=? -complete=help HelpCurwin execute s:HelpCurwin(<q-args>)
let s:did_open_help = v:false
function s:HelpCurwin(subject) abort
let mods = 'silent noautocmd keepalt'
if !s:did_open_help
execute mods .. ' help'
execute mods .. ' helpclose'
let s:did_open_help = v:true
endif
if !getcompletion(a:subject, 'help')->empty()
execute mods .. ' edit ' .. &helpfile
endif
return 'help ' .. a:subject
endfunction
<
vim:tw=78:ts=8:noet:ft=help:norl:

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*usr_02.txt* For Vim version 8.2. Last change: 2019 Nov 21
*usr_02.txt* For Vim version 8.2. Last change: 2021 Apr 24
VIM USER MANUAL - by Bram Moolenaar
@ -43,7 +43,7 @@ like:
|~ |
|"file.txt" [New file] |
+---------------------------------------+
('#" is the cursor position.)
('#' is the cursor position.)
The tilde (~) lines indicate lines not in the file. In other words, when Vim
runs out of file to display, it displays tilde lines. At the bottom of the
@ -532,7 +532,7 @@ Summary: *help-summary* >
< for the corresponding flag of the 'cpoptions' settings, substitute <letter>
by a specific flag, e.g.: >
:help cpo-;
< And for the guioption flags: >
< And for the 'guioptions' flags: >
:help go-<letter>
4) Normal mode commands do not have a prefix. To go to the help page for the

View File

@ -50,7 +50,7 @@ which moves to the previous end of a word:
This is a line with example text ~
<----<----x---->------------>
2ge ge e we
2ge ge e 2e
If you are at the last word of a line, the "w" command will take you to the
first word in the next line. Thus you can use this to move through a

View File

@ -1,4 +1,4 @@
*usr_04.txt* For Vim version 8.2. Last change: 2019 Nov 21
*usr_04.txt* For Vim version 8.2. Last change: 2021 Feb 22
VIM USER MANUAL - by Bram Moolenaar
@ -464,9 +464,9 @@ of characters to replace. It will not continue on the next line.
You can switch between Insert mode and Replace mode with the <Insert> key.
When you use <BS> (backspace) to make correction, you will notice that the
old text is put back. Thus it works like an undo command for the last typed
character.
When you use <BS> (backspace) to make a correction, you will notice that the
old text is put back. Thus it works like an undo command for the previously
typed character.
==============================================================================
*04.10* Conclusion

View File

@ -1,4 +1,4 @@
*usr_12.txt* For Vim version 8.2. Last change: 2017 Aug 11
*usr_12.txt* For Vim version 8.2. Last change: 2021 Apr 19
VIM USER MANUAL - by Bram Moolenaar
@ -180,14 +180,14 @@ after it. That way you don't have this problem again.
The |:global| command can be combined with the |:move| command to move all the
lines before the first line, resulting in a reversed file. The command is: >
:global/^/m 0
:global/^/move 0
Abbreviated: >
:g/^/m 0
The "^" regular expression matches the beginning of the line (even if the line
is blank). The |:move| command moves the matching line to after the mythical
is blank). The |:move| command moves the matching line to after the imaginary
zeroth line, so the current matching line becomes the first line of the file.
As the |:global| command is not confused by the changing line numbering,
|:global| proceeds to match all remaining lines of the file and puts each as

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2020 Dec 19
*usr_41.txt* For Vim version 8.2. Last change: 2021 Apr 19
VIM USER MANUAL - by Bram Moolenaar
@ -115,21 +115,29 @@ if you are impatient.
FOUR KINDS OF NUMBERS
Numbers can be decimal, hexadecimal, octal or binary. A hexadecimal number
starts with "0x" or "0X". For example "0x1f" is decimal 31. An octal number
starts with a zero. "017" is decimal 15. A binary number starts with "0b" or
"0B". For example "0b101" is decimal 5. Careful: don't put a zero before a
decimal number, it will be interpreted as an octal number!
The ":echo" command always prints decimal numbers. Example: >
Numbers can be decimal, hexadecimal, octal or binary.
:echo 0x7f 036
A hexadecimal number starts with "0x" or "0X". For example "0x1f" is decimal
31.
An octal number starts with "0o", "0O" or a zero and another digit. "0o17" is
decimal 15. Using just a zero prefix is not supported in Vim9 script.
A binary number starts with "0b" or "0B". For example "0b101" is decimal 5.
A decimal number is just digits. Careful: don't put a zero before a decimal
number, it will be interpreted as an octal number in legacy script!
The ":echo" command always prints decimal numbers. Example: >
:echo 0x7f 0o36
< 127 30 ~
A number is made negative with a minus sign. This also works for hexadecimal,
octal and binary numbers. A minus sign is also used for subtraction. Compare
this with the previous example: >
:echo 0x7f -036
:echo 0x7f -0o36
< 97 ~
White space in an expression is ignored. However, it's recommended to use it
@ -137,7 +145,7 @@ for separating items, to make the expression easier to read. For example, to
avoid the confusion with a negative number above, put a space between the
minus sign and the following number: >
:echo 0x7f - 036
:echo 0x7f - 0o36
==============================================================================
*41.2* Variables
@ -611,7 +619,8 @@ String manipulation: *string-functions*
stridx() first index of a short string in a long string
strridx() last index of a short string in a long string
strlen() length of a string in bytes
strchars() length of a string in characters
strcharlen() length of a string in characters
strchars() number of characters in a string
strwidth() size of string when displayed
strdisplaywidth() size of string when displayed, deals with tabs
setcellwidths() set character cell width overrides
@ -619,6 +628,8 @@ String manipulation: *string-functions*
submatch() get a specific match in ":s" and substitute()
strpart() get part of a string using byte index
strcharpart() get part of a string using char index
slice() take a slice of a string, using char index in
Vim9 script
strgetchar() get character from a string using char index
expand() expand special keywords
expandcmd() expand a command like done for `:edit`
@ -640,6 +651,7 @@ List manipulation: *list-functions*
insert() insert an item somewhere in a List
add() append an item to a List
extend() append a List to a List
extendnew() make a new List and append items
remove() remove one or more items from a List
copy() make a shallow copy of a List
deepcopy() make a full copy of a List
@ -647,6 +659,7 @@ List manipulation: *list-functions*
map() change each List item
mapnew() make a new List with changed items
reduce() reduce a List to a value
slice() take a slice of a List
sort() sort a List
reverse() reverse the order of a List
uniq() remove copies of repeated adjacent items
@ -661,6 +674,7 @@ List manipulation: *list-functions*
count() count number of times a value appears in a List
repeat() repeat a List multiple times
flatten() flatten a List
flattennew() flatten a copy of a List
Dictionary manipulation: *dict-functions*
get() get an entry without an error for a wrong key
@ -669,6 +683,7 @@ Dictionary manipulation: *dict-functions*
empty() check if Dictionary is empty
remove() remove an entry from a Dictionary
extend() add entries from one Dictionary to another
extendnew() make a new Dictionary and append items
filter() remove selected entries from a Dictionary
map() change each Dictionary entry
mapnew() make a new Dictionary with changed items
@ -718,7 +733,8 @@ Other computation: *bitwise-function*
srand() initialize seed used by rand()
Variables: *var-functions*
type() type of a variable
type() type of a variable as a number
typename() type of a variable as text
islocked() check if a variable is locked
funcref() get a Funcref for a function reference
function() get a Funcref for a function name
@ -753,6 +769,11 @@ Cursor and mark position: *cursor-functions* *mark-functions*
screenchar() get character code at a screen line/row
screenchars() get character codes at a screen line/row
screenstring() get string of characters at a screen line/row
charcol() character number of the cursor or a mark
getcharpos() get character position of cursor, mark, etc.
setcharpos() set character position of cursor, mark, etc.
getcursorcharpos() get character position of the cursor
setcursorcharpos() set character position of the cursor
Working with text in the current buffer: *text-functions*
getline() get a line or list of lines from the buffer
@ -812,6 +833,7 @@ System functions and manipulation of files:
setenv() set an environment variable
hostname() name of the system
readfile() read a file into a List of lines
readblob() read a file into a Blob
readdir() get a List of file names in a directory
readdirex() get a List of file information in a directory
writefile() write a List of lines or Blob into a file
@ -870,6 +892,7 @@ Command line: *command-line-functions*
getcmdtype() return the current command-line type
getcmdwintype() return the current command-line window type
getcompletion() list of command-line completion matches
fullcommand() get full command name
Quickfix and location lists: *quickfix-functions*
getqflist() list of quickfix errors
@ -988,6 +1011,7 @@ Testing: *test-functions*
assert_true() assert that an expression is true
assert_exception() assert that a command throws an exception
assert_beeps() assert that a command beeps
assert_nobeep() assert that a command does not cause a beep
assert_fails() assert that a command fails
assert_report() report a test failure
test_alloc_fail() make memory allocation fail

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2020 Nov 16
*various.txt* For Vim version 8.2. Last change: 2021 Mar 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -345,8 +345,9 @@ N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support compiled-in
*+clipboard_working* |clipboard| support compiled-in and working
T *+cmdline_compl* command line completion |cmdline-completion|
S *+cmdline_hist* command line history |cmdline-history|
T *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
S *+cmdwin* |cmdline-window| support
T *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
N *+cryptv* encryption support |encryption|
@ -411,7 +412,7 @@ N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse|
B *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse|
B *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse|
N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse|
N *+multi_byte* 16 and 32 bit characters |multibyte|
T *+multi_byte* Unicode support, 16 and 32 bit characters |multibyte|
*+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime|
N *+multi_lang* non-English language support |multi-lang|
m *+mzscheme* Mzscheme interface |mzscheme|
@ -571,7 +572,7 @@ N *+X11* Unix only: can restore window title |X11|
it in / any non-ID character (see |'isident'|) can be
used, so long as it does not appear in {pat}. Without
the enclosing character the pattern cannot include the
bar character.
bar character. 'ignorecase' is not used.
The pattern is matched against the relevant part of
the output, not necessarily the whole line. Only some
@ -707,12 +708,12 @@ K Run a program to lookup the keyword under the
not more than one line.
[N]gs *gs* *:sl* *:sleep*
:[N]sl[eep] [N] [m] Do nothing for [N] seconds. When [m] is included,
:[N]sl[eep] [N][m] Do nothing for [N] seconds. When [m] is included,
sleep for [N] milliseconds. The count for "gs" always
uses seconds. The default is one second. >
:sleep "sleep for one second
:5sleep "sleep for five seconds
:sleep 100m "sleep for a hundred milliseconds
:sleep 100m "sleep for 100 milliseconds
10gs "sleep for ten seconds
< Can be interrupted with CTRL-C (CTRL-Break on
MS-Windows). "gs" stands for "goto sleep".
@ -722,6 +723,9 @@ K Run a program to lookup the keyword under the
available when compiled with the |+netbeans_intg|
feature}
*:sl!* *:sleep!*
:[N]sl[eep]! [N] [m] Same as above, but hide the cursor.
*:xrestore* *:xr*
:xr[estore] [display] Reinitializes the connection to the X11 server. Useful
after the X server restarts, e.g. when running Vim for

View File

@ -1,4 +1,4 @@
*version5.txt* For Vim version 8.2. Last change: 2020 Dec 19
*version5.txt* For Vim version 8.2. Last change: 2021 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -405,7 +405,7 @@ Both of these are only available when enabled at compile time.
Win32 GUI version *added-win32-GUI*
-----------------
The GUI has been ported to MS Windows 95 and NT. All the features of the X11
The GUI has been ported to MS-Windows 95 and NT. All the features of the X11
GUI are available to Windows users now. |gui-w32|
This also fixes problems with running the Win32 console version under Windows
95, where console support has always been bad.
@ -4403,7 +4403,7 @@ the last char of the line, "<<" moved an extra line. Also for other operators
that always work on lines.
link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed.
Now it only remove whole words.
Now it only removes whole words.
When jumped to a mark or using "fz", and there is an error, the current column
was lost. E.g. when using "$fzj".

View File

@ -1,4 +1,4 @@
*version6.txt* For Vim version 8.2. Last change: 2020 Aug 17
*version6.txt* For Vim version 8.2. Last change: 2021 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1025,7 +1025,7 @@ Port to OS/390 Unix (Ralf Schandl)
Included jsbmouse support. (Darren Garth)
Support for dec mouse in Unix. (Steve Wall)
Port to 16-bit MS Windows (Windows 3.1x) (Vince Negri)
Port to 16-bit MS-Windows (Windows 3.1x) (Vince Negri)
Port to QNX. Supports the Photon GUI, mouse, etc. (Julian Kinraid)
@ -9661,7 +9661,7 @@ Solution: Check for tcsetattr() to return an error, retry when it does.
Files: src/os_unix.c
Patch 6.2f.018
Problem: Mac OS X 10.2: OK is defined to zero in cursus.h while Vim uses
Problem: Mac OS X 10.2: OK is defined to zero in curses.h while Vim uses
one. Redefining it causes a warning message.
Solution: Undefine OK before defining it to one. (Taro Muraoka)
Files: src/vim.h

View File

@ -1,4 +1,4 @@
*version7.txt* For Vim version 8.2. Last change: 2020 Oct 25
*version7.txt* For Vim version 8.2. Last change: 2021 May 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -2300,7 +2300,7 @@ value didn't fill the whole screen. (SungHyun Nam)
Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
After upgrading it becomes invalid. Now use $VIMRUNTIME instead.
The command line was cleared to often when 'showmode' was set and ":silent
The command line was cleared too often when 'showmode' was set and ":silent
normal vy" was used. Don't clear the command line unless the mode was
actually displayed. Added the "mode_displayed" variable.
@ -9826,7 +9826,7 @@ Solution: Add AC_SYS_LARGEFILE to configure. (James Vega)
Files: src/configure.in, src/config.h.in, src/auto/configure
Patch 7.2.414
Problem: CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
Problem: CTRL-K <space> <space> does not produce 0xa0 as expected. (Tony
Mechelynck)
Solution: Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
not valid characters.

View File

@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.2. Last change: 2020 Oct 25
*version8.txt* For Vim version 8.2. Last change: 2021 May 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1776,7 +1776,7 @@ Files: runtime/doc/change.txt, runtime/doc/eval.txt,
Patch 7.4.219
Problem: When 'relativenumber' or 'cursorline' are set the window is
redrawn much to often. (Patrick Hemmer, Dominique Pelle)
redrawn much too often. (Patrick Hemmer, Dominique Pelle)
Solution: Check the VALID_CROW flag instead of VALID_WROW.
Files: src/move.c
@ -3282,7 +3282,7 @@ Solution: Convert the printer name from the active codepage to 'encoding'.
Files: src/os_mswin.c
Patch 7.4.472
Problem: The "precedes" entry in 'listchar' will be drawn when 'showbreak'
Problem: The "precedes" entry in 'listchars' will be drawn when 'showbreak'
is set and 'list' is not.
Solution: Only draw this character when 'list' is on. (Christian Brabandt)
Files: src/screen.c
@ -15341,7 +15341,7 @@ Solution: Link winpthread statically. (jmmerz, closes #1255, closes #1256)
Files: src/Make_cyg_ming.mak
Patch 8.0.0116
Problem: When reading English help and using CTRl-] the language from
Problem: When reading English help and using CTRL-] the language from
'helplang' is used.
Solution: Make help tag jumps keep the language. (Tatsuki, test by Hirohito
Higashi, closes #1249)
@ -16933,7 +16933,7 @@ Solution: Add #ifdefs.
Files: src/screen.c
Patch 8.0.0383 (after 8.0.0382)
Problem: Misplaced #ifdef. (Christ van Willigen)
Problem: Misplaced #ifdef. (Christ van Willegen)
Solution: Split assignment.
Files: src/screen.c
@ -19612,7 +19612,7 @@ Files: Filelist
Patch 8.0.0815
Problem: Terminal window not correctly updated when 'statusline' invokes
":sleep". (NIkolay Pavlov)
":sleep". (Nikolay Pavlov)
Solution: Clear got_int. Repeat redrawing when needed.
Files: src/terminal.c
@ -35835,7 +35835,7 @@ Files: src/ex_cmds2.c, src/getchar.c, src/testdir/test_mapping.vim,
Patch 8.1.1592
Problem: May start file dialog while exiting.
Solution: Ignore the "browse" modifier when exiting. (Ozaki Kiichi,
closes #4582
closes #4582)
Files: src/ex_cmds.c, src/terminal.c
Patch 8.1.1593
@ -46431,7 +46431,7 @@ Files: src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c,
Patch 8.2.0854
Problem: Xxd cannot show offset as a decimal number.
Solution: Add the "-d" flag. (Aapo Rantalainen, closes #5616
Solution: Add the "-d" flag. (Aapo Rantalainen, closes #5616)
Files: src/testdir/test_xxd.vim, src/xxd/xxd.c
Patch 8.2.0855
@ -46661,7 +46661,7 @@ Solution: Use // comments. (Yegappan Lakshmanan, closes #6190)
Files: src/gui_xim.c
Patch 8.2.0890
Problem: No color in terminal window when 'termguicolor' is set.
Problem: No color in terminal window when 'termguicolors' is set.
Solution: Clear the underline color. (closes #6186)
Files: src/highlight.c
@ -46728,7 +46728,7 @@ Files: runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h,
Patch 8.2.0902
Problem: Using searchcount() in 'statusline' causes an error.
Solution: Avoid saving/restoring the search patten recursively.
Solution: Avoid saving/restoring the search pattern recursively.
(closes #6194)
Files: src/search.c, src/testdir/test_search_stat.vim,
src/testdir/dumps/Test_searchstat_4.dump
@ -48832,7 +48832,7 @@ Files: src/buffer.c, src/testdir/test_tabline.vim
Patch 8.2.1260
Problem: There is no good test for CursorHold.
Solution: Add a test. Remove duplicated test. (Yegappan Lakshmanan,
closes #6503
closes #6503)
Files: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
src/testdir/test_normal.vim

View File

@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 8.2. Last change: 2020 Aug 15
*vi_diff.txt* For Vim version 8.2. Last change: 2021 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -73,7 +73,7 @@ edit the termcap entry and try again. Vim has the |terminal-options|.
Vim has only a few limits for the files that can be edited {Vi: can not handle
<Nul> characters and characters above 128, has limited line length, many other
limits}.
*E340*
Maximum line length 2147483647 characters. Longer lines are split.
Maximum number of lines 2147483647 lines.
Maximum file size 2147483647 bytes (2 Gbyte) when a long integer is

View File

@ -416,6 +416,10 @@ Denotes the end of the options.
Arguments after this will be handled as a file name.
This can be used to edit a filename that starts with a '\-'.
.TP
\-\-clean
Do not use any personal configuration (vimrc, plugins, etc.). Useful to see if
a problem reproduces with a clean Vim setup.
.TP
\-\-echo\-wid
GTK GUI only: Echo the Window ID on stdout.
.TP

View File

@ -300,6 +300,10 @@ OPTIONS
be handled as a file name. This can be used to edit a
filename that starts with a '-'.
--clean Do not use any personal configuration (vimrc, plugins,
etc.). Useful to see if a problem reproduces with a clean
Vim setup.
--echo-wid GTK GUI only: Echo the Window ID on stdout.
--help Give a help message and exit, just like "-h".

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2020 Dec 24
*vim9.txt* For Vim version 8.2. Last change: 2021 Apr 28
VIM REFERENCE MANUAL by Bram Moolenaar
@ -14,7 +14,7 @@ features in Vim9 script.
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
1. What is Vim9 script? |vim9-script|
1. What is Vim9 script? |Vim9-script|
2. Differences |vim9-differences|
3. New style functions |fast-functions|
4. Types |vim9-types|
@ -51,14 +51,27 @@ The Vim9 script syntax and semantics are used in:
- a function defined with the `:def` command
- a script file where the first command is `vim9script`
- an autocommand defined in the context of the above
- a command prefixed with the `vim9cmd` command modifier
When using `:function` in a Vim9 script file the legacy syntax is used.
However, this can be confusing and is therefore discouraged.
When using `:function` in a Vim9 script file the legacy syntax is used, with
the highest |scriptversion|. However, this can be confusing and is therefore
discouraged.
Vim9 script and legacy Vim script can be mixed. There is no requirement to
rewrite old scripts, they keep working as before. You may want to use a few
`:def` functions for code that needs to be fast.
:vim9[cmd] {cmd} *:vim9* *:vim9cmd*
Execute {cmd} using Vim9 script syntax and semantics.
Useful when typing a command and in a legacy script or
function.
:leg[acy] {cmd} *:leg* *:legacy*
Execute {cmd} using legacy script syntax and semantics. Only
useful in a Vim9 script or a :def function.
Note that {cmd} cannot use local variables, since it is parsed
with legacy expression syntax.
==============================================================================
2. Differences from legacy Vim script *vim9-differences*
@ -70,28 +83,29 @@ Overview ~
Brief summary of the differences you will most often encounter when using Vim9
script and `:def` functions; details are below:
- Comments start with #, not ": >
echo "hello" # comment
echo "hello" # comment
- Using a backslash for line continuation is hardly ever needed: >
echo "hello "
echo "hello "
.. yourName
.. ", how are you?"
- White space is required in many places.
- Assign values without `:let`, declare variables with `:var`: >
var count = 0
var count = 0
count += 3
- Constants can be declared with `:final` and `:const`: >
final matches = [] # add matches
final matches = [] # add matches
const names = ['Betty', 'Peter'] # cannot be changed
- `:final` cannot be used as an abbreviation of `:finally`.
- Variables and functions are script-local by default.
- Functions are declared with argument types and return type: >
def CallMe(count: number, message: string): bool
- Call functions without `:call`: >
writefile(['done'], 'file.txt')
- You cannot use `:xit`, `:t`, `:append`, `:change`, `:insert` or curly-braces
names.
writefile(['done'], 'file.txt')
- You cannot use `:xit`, `:t`, `:k`, `:append`, `:change`, `:insert`, `:open`
or curly-braces names.
- A range before a command must be prefixed with a colon: >
:%s/this/that
:%s/this/that
- Unless mentioned specifically, the highest |scriptversion| is used.
Comments starting with # ~
@ -116,6 +130,10 @@ that starts a comment: >
var name = value # comment
var name = value# error!
Do not start a comment with #{, it looks like the legacy dictionary literal
and produces an error where this might be confusing. #{{ or #{{{ are OK,
these can be used to start a fold.
In legacy Vim script # is also used for the alternate file name. In Vim9
script you need to use %% instead. Instead of ## use %%% (stands for all
arguments).
@ -124,18 +142,26 @@ arguments).
Vim9 functions ~
A function defined with `:def` is compiled. Execution is many times faster,
often 10x to 100x times.
often 10 to 100 times.
Many errors are already found when compiling, before the function is executed.
The syntax is strict, to enforce code that is easy to read and understand.
Compilation is done when either of these is encountered:
Compilation is done when any of these is encountered:
- the first time the function is called
- when the `:defcompile` command is encountered in the script where the
- when the `:defcompile` command is encountered in the script after the
function was defined
- `:disassemble` is used for the function.
- a function that is compiled calls the function or uses it as a function
reference
*E1091*
If compilation fails it is not tried again on the next call, instead this
error is given: "E1091: Function is not compiled: {name}".
Compilation will fail when encountering a user command that has not been
created yet. In this case you can call `execute()` to invoke it at runtime. >
def MyFunc()
execute('DefinedLater')
enddef
`:def` has no options like `:function` does: "range", "abort", "dict" or
"closure". A `:def` function always aborts on an error (unless `:silent!` was
@ -148,13 +174,31 @@ functions.
Arguments are accessed by name, without "a:", just like any other language.
There is no "a:" dictionary or "a:000" list.
*vim9-variable-arguments*
Variable arguments are defined as the last argument, with a name and have a
list type, similar to TypeScript. For example, a list of numbers: >
def MyFunc(...itemlist: list<number>)
for item in itemlist
...
When a function argument is optional (it has a default value) passing `v:none`
as the argument results in using the default value. This is useful when you
want to specify a value for an argument that comes after an argument that
should use its default value. Example: >
def MyFunc(one = 'one', last = 'last)
...
enddef
MyFunc(v:none, 'LAST') # first argument uses default value 'one'
<
*vim9-ignored-argument*
The argument "_" (an underscore) can be used to ignore the argument. This is
most useful in callbacks where you don't need it, but do need to give an
argument to match the call. E.g. when using map() two arguments are passed,
the key and the value, to ignore the key: >
map(myList, (_, v) => v * 2)
There is no error for using the "_" argument multiple times. No type needs to
be given.
Functions and variables are script-local by default ~
*vim9-scopes*
@ -181,6 +225,12 @@ search for the function:
However, it is recommended to always use "g:" to refer to a global function
for clarity.
Since a script-local function reference can be used without "s:" the name must
start with an upper case letter even when using the "s:" prefix. In legacy
script "s:funcref" could be used, because it could not be referred to with
"funcref". In Vim9 script it can, therefore "s:Funcref" must be used to avoid
that the name interferes with builtin functions.
In all cases the function must be defined before used. That is when it is
called, when `:defcompile` causes it to be compiled, or when code that calls
it is being compiled (to figure out the return type).
@ -270,19 +320,43 @@ without any command. The same for global, window, tab, buffer and Vim
variables, because they are not really declared. They can also be deleted
with `:unlet`.
Variables and functions cannot shadow previously defined or imported variables
and functions.
`:lockvar` does not work on local variables. Use `:const` and `:final`
instead.
Variables, functions and function arguments cannot shadow previously defined
or imported variables and functions in the same script file.
Variables may shadow Ex commands, rename the variable if needed.
Global variables and user defined functions must be prefixed with "g:", also
at the script level. >
Global variables must be prefixed with "g:", also at the script level. >
vim9script
var script_local = 'text'
g:global = 'value'
var Funcref = g:ThatFunction
Global functions must be prefixed with "g:" when defining them, but can be
called without "g:". >
vim9script
def g:GlobalFunc(): string
return 'text'
enddef
echo GlobalFunc()
The "g:" prefix is not needed for auto-load functions.
Since `&opt = value` is now assigning a value to option "opt", ":&" cannot be
used to repeat a `:substitute` command.
*vim9-unpack-ignore*
For an unpack assignment the underscore can be used to ignore a list item,
similar to how a function argument can be ignored: >
[a, _, c] = theList
To ignore any remaining items: >
[a, b; _] = longList
< *E1092*
Declaring more than one variable at a time, using the unpack notation, is
currently not supported: >
var [v1, v2] = GetValues() # Error!
That is because the type needs to be inferred from the list item type, which
isn't that easy.
Constants ~
@ -298,14 +372,14 @@ Example: >
const myList = [1, 2]
myList = [3, 4] # Error!
myList[0] = 9 # Error!
muList->add(3) # Error!
myList->add(3) # Error!
< *:final*
`:final` is used for making only the variable a constant, the value can be
changed. This is well known from Java. Example: >
final myList = [1, 2]
myList = [3, 4] # Error!
myList[0] = 9 # OK
muList->add(3) # OK
myList->add(3) # OK
It is common to write constants as ALL_CAPS, but you don't have to.
@ -315,14 +389,7 @@ The constant only applies to the value itself, not what it refers to. >
NAMES[0] = ["Jack"] # Error!
NAMES[0][0] = "Jack" # Error!
NAMES[1] = ["Emma"] # Error!
Names[1][0] = "Emma" # OK, now females[0] == "Emma"
< *E1092*
Declaring more than one variable at a time, using the unpack notation, is
currently not supported: >
var [v1, v2] = GetValues() # Error!
That is because the type needs to be inferred from the list item type, which
isn't that easy.
NAMES[1][0] = "Emma" # OK, now females[0] == "Emma"
Omitting :call and :eval ~
@ -332,7 +399,8 @@ Functions can be called without `:call`: >
Using `:call` is still possible, but this is discouraged.
A method call without `eval` is possible, so long as the start is an
identifier or can't be an Ex command. Examples: >
identifier or can't be an Ex command. For a function either "(" or "->" must
be following, without a line break. Examples: >
myList->add(123)
g:myList->add(123)
[1, 2, 3]->Process()
@ -369,7 +437,7 @@ number of arguments and any return type. The function can be defined later.
Lambda using => instead of -> ~
*vim9-lambda*
In legacy script there can be confusion between using "->" for a method call
and for a lambda. Also, when a "{" is found the parser needs to figure out if
it is the start of a lambda or a dictionary, which is now more complicated
@ -393,18 +461,51 @@ But you can use a backslash to concatenate the lines before parsing: >
filter(list, (k,
\ v)
\ => v > 0)
< *vim9-lambda-arguments*
In legacy script a lambda could be called with any number of extra arguments,
there was no way to warn for not using them. In Vim9 script the number of
arguments must match. If you do want to accept any arguments, or any further
arguments, use "..._", which makes the function accept
|vim9-variable-arguments|. Example: >
var Callback = (..._) => 'anything'
echo Callback(1, 2, 3) # displays "anything"
< *inline-function*
Additionally, a lambda can contain statements in {}: >
var Lambda = (arg) => {
g:was_called = 'yes'
return expression
}
NOT IMPLEMENTED YET
This can be useful for a timer, for example: >
var count = 0
var timer = timer_start(500, (_) => {
count += 1
echom 'Handler called ' .. count
}, {repeat: 3})
The ending "}" must be at the start of a line. It can be followed by other
characters, e.g.: >
var d = mapnew(dict, (k, v): string => {
return 'value'
})
No command can follow the "{", only a comment can be used there.
Rationale: The "}" cannot be after a command because it would require parsing
the commands to find it. For consistency with that no command can follow the
"{". Unfortunately this means using "() => { command }" does not work, line
breaks are always required.
*vim9-curly*
To avoid the "{" of a dictionary literal to be recognized as a statement block
wrap it in parenthesis: >
wrap it in parentheses: >
var Lambda = (arg) => ({key: 42})
Also when confused with the start of a command block: >
({
key: value
})->method()
Automatic line continuation ~
@ -432,7 +533,7 @@ possible just before or after the operator. For example: >
.. middle
.. end
var total = start +
end -
end -
correction
var result = positive
? PosFunc(arg)
@ -485,6 +586,9 @@ Now "exit_cb: Func})" is actually a valid command: save any changes to the
file "_cb: Func})" and exit. To avoid this kind of mistake in Vim9 script
there must be white space between most command names and the argument.
However, the argument of a command that is a command won't be recognized. For
example, after "windo echo expr" a line break inside "expr" will not be seen.
Notes:
- "enddef" cannot be used at the start of a continuation line, it ends the
@ -506,6 +610,44 @@ Notes:
echo [1, 2]
[3, 4]
White space ~
Vim9 script enforces proper use of white space. This is no longer allowed: >
var name=234 # Error!
var name= 234 # Error!
var name =234 # Error!
There must be white space before and after the "=": >
var name = 234 # OK
White space must also be put before the # that starts a comment after a
command: >
var name = 234# Error!
var name = 234 # OK
White space is required around most operators.
White space is required in a sublist (list slice) around the ":", except at
the start and end: >
otherlist = mylist[v : count] # v:count has a different meaning
otherlist = mylist[:] # make a copy of the List
otherlist = mylist[v :]
otherlist = mylist[: v]
White space is not allowed:
- Between a function name and the "(": >
Func (arg) # Error!
Func
\ (arg) # Error!
Func
(arg) # Error!
Func(arg) # OK
Func(
arg) # OK
Func(
arg # OK
)
No curly braces expansion ~
|curly-braces-names| cannot be used.
@ -525,24 +667,31 @@ that using a literal key is much more common than using an expression, and
considering that JavaScript uses this syntax, using the {} form for dictionary
literals is considered a much more useful syntax. In Vim9 script the {} form
uses literal keys: >
let dict = {key: value}
var dict = {key: value}
This works for alphanumeric characters, underscore and dash. If you want to
use another character, use a single or double quoted string: >
let dict = {'key with space': value}
let dict = {"key\twith\ttabs": value}
let dict = {'': value} # empty key
var dict = {'key with space': value}
var dict = {"key\twith\ttabs": value}
var dict = {'': value} # empty key
In case the key needs to be an expression, square brackets can be used, just
like in JavaScript: >
let dict = {["key" .. nr]: value}
var dict = {["key" .. nr]: value}
The key type can be string, number, bool or float. Other types result in an
error. A number can be given with and without the []: >
var dict = {123: 'without', [456]: 'with'}
echo dict
{'456': 'with', '123': 'without'}
No :xit, :t, :append, :change or :insert ~
No :xit, :t, :k, :append, :change or :insert ~
These commands are too easily confused with local variable names.
Instead of `:x` or `:xit` you can use `:exit`.
Instead of `:t` you can use `:copy`.
Instead of `:k` you can use `:mark`.
Comparators ~
@ -550,32 +699,38 @@ Comparators ~
The 'ignorecase' option is not used for comparators that use strings.
White space ~
Abort after error ~
Vim9 script enforces proper use of white space. This is no longer allowed: >
var name=234 # Error!
var name= 234 # Error!
var name =234 # Error!
There must be white space before and after the "=": >
var name = 234 # OK
White space must also be put before the # that starts a comment after a
command: >
var name = 234# Error!
var name = 234 # OK
In legacy script, when an error is encountered, Vim continues to execute
following lines. This can lead to a long sequence of errors and need to type
CTRL-C to stop it. In Vim9 script execution of commands stops at the first
error. Example: >
vim9script
var x = does-not-exist
echo 'not executed'
White space is required around most operators.
White space is not allowed:
- Between a function name and the "(": >
call Func (arg) # Error!
call Func
\ (arg) # Error!
call Func(arg) # OK
call Func(
\ arg) # OK
call Func(
\ arg # OK
\ )
For loop ~
Legacy Vim script has some tricks to make a for loop over a list handle
deleting items at the current or previous item. In Vim9 script it just uses
the index, if items are deleted then items in the list will be skipped.
Example legacy script: >
let l = [1, 2, 3, 4]
for i in l
echo i
call remove(l, index(l, i))
endfor
Would echo:
1
2
3
4
In compiled Vim9 script you get:
1
3
Generally, you should not change the list that is iterated over. Make a copy
first if needed.
Conditions and expressions ~
@ -595,7 +750,7 @@ is either falsy or truthy. This is mostly like JavaScript, except that an
empty list and dict is falsy:
type truthy when ~
bool v:true or 1
bool true, v:true or 1
number non-zero
float non-zero
string non-empty
@ -603,11 +758,11 @@ empty list and dict is falsy:
list non-empty (different from JavaScript)
dictionary non-empty (different from JavaScript)
func when there is a function name
special v:true
special true or v:true
job when not NULL
channel when not NULL
class when not NULL
object when not NULL (TODO: when isTrue() returns v:true)
object when not NULL (TODO: when isTrue() returns true)
The boolean operators "||" and "&&" expect the values to be boolean, zero or
one: >
@ -622,25 +777,39 @@ one: >
When using "!" for inverting, there is no error for using any type and the
result is a boolean. "!!" can be used to turn any value into boolean: >
!'yes' == false
!'yes' == false
!![] == false
!![1, 2, 3] == true
!![1, 2, 3] == true
When using "`.."` for string concatenation arguments of simple types are
always converted to string: >
'hello ' .. 123 == 'hello 123'
'hello ' .. v:true == 'hello v:true'
'hello ' .. v:true == 'hello true'
Simple types are string, float, special and bool. For other types |string()|
can be used.
*false* *true*
In Vim9 script one can use "true" for v:true and "false" for v:false.
*false* *true* *null*
In Vim9 script one can use "true" for v:true, "false" for v:false and "null"
for v:null. When converting a boolean to a string "false" and "true" are
used, not "v:false" and "v:true" like in legacy script. "v:none" is not
changed, it is only used in JSON and has no equivalent in other languages.
Indexing a string with [idx] or [idx, idx] uses character indexes instead of
byte indexes. Example: >
Indexing a string with [idx] or taking a slice with [idx : idx] uses character
indexes instead of byte indexes. Composing characters are included.
Example: >
echo 'bár'[1]
In legacy script this results in the character 0xc3 (an illegal byte), in Vim9
script this results in the string 'á'.
A negative index is counting from the end, "[-1]" is the last character.
To exclude the last character use |slice()|.
To count composing characters separately use |strcharpart()|.
If the index is out of range then an empty string results.
In legacy script "++var" and "--var" would be silently accepted and have no
effect. This is an error in Vim9 script.
Numbers starting with zero are not considered to be octal, only numbers
starting with "0o" are octal: "0o744". |scriptversion-4|
What to watch out for ~
@ -650,21 +819,22 @@ same time tries to support the legacy Vim commands. Some compromises had to
be made. Here is a summary of what might be unexpected.
Ex command ranges need to be prefixed with a colon. >
-> # legacy Vim: shifts the previous line to the right
->func() # Vim9: method call in continuation line
:-> # Vim9: shifts the previous line to the right
-> legacy Vim: shifts the previous line to the right
->func() Vim9: method call in a continuation line
:-> Vim9: shifts the previous line to the right
%s/a/b # legacy Vim: substitute on all lines
%s/a/b legacy Vim: substitute on all lines
x = alongname
% another # Vim9: line continuation without a backslash
:%s/a/b # Vim9: substitute on all lines
'text'->func() # Vim9: method call
:'t # legacy Vim: jump to mark m
% another Vim9: modulo operator in a continuation line
:%s/a/b Vim9: substitute on all lines
't legacy Vim: jump to mark t
'text'->func() Vim9: method call
:'t Vim9: jump to mark t
Some Ex commands can be confused with assignments in Vim9 script: >
g:name = value # assignment
g:pattern:cmd # invalid command - ERROR
:g:pattern:cmd # :global command
g:name = value # assignment
g:pattern:cmd # invalid command - ERROR
:g:pattern:cmd # :global command
Functions defined with `:def` compile the whole function. Legacy functions
can bail out, and the following lines are not parsed: >
@ -679,12 +849,12 @@ Vim9 functions are compiled as a whole: >
if !has('feature')
return
endif
use-feature # May give compilation error
use-feature # May give a compilation error
enddef
For a workaround, split it in two functions: >
func Maybe()
if has('feature')
call MaybyInner()
call MaybeInner()
endif
endfunc
if has('feature')
@ -699,6 +869,25 @@ evaluates to false: >
use-feature
endif
enddef
< *vim9-user-command*
Another side effect of compiling a function is that the presence of a user
command is checked at compile time. If the user command is defined later an
error will result. This works: >
command -nargs=1 MyCommand echom <q-args>
def Works()
MyCommand 123
enddef
This will give an error for "MyCommand" not being defined: >
def Works()
command -nargs=1 MyCommand echom <q-args>
MyCommand 123
enddef
A workaround is to invoke the command indirectly with `:execute`: >
def Works()
command -nargs=1 MyCommand echom <q-args>
execute 'MyCommand 123'
enddef
Note that for unrecognized commands there is no check for "|" and a following
command. This will give an error for missing `endif`: >
def Maybe()
@ -711,6 +900,8 @@ Patterns are used like 'magic' is set, unless explicitly overruled.
The 'edcompatible' option value is not used.
The 'gdefault' option value is not used.
You may also find this wiki useful. It was written by an early adopter of
Vim9 script: https://github.com/lacygoill/wiki/blob/master/vim/vim9.md
==============================================================================
@ -754,12 +945,14 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
:enddef End of a function defined with `:def`. It should be on
a line by its own.
You may also find this wiki useful. It was written by an early adopter of
Vim9 script: https://github.com/lacygoill/wiki/blob/master/vim/vim9.md
If the script the function is defined in is Vim9 script, then script-local
variables can be accessed without the "s:" prefix. They must be defined
before the function is compiled. If the script the function is defined in is
legacy script, then script-local variables must be accessed with the "s:"
prefix and they do not need to exist (they can be deleted any time).
prefix if they do not exist at the time of compiling.
*:defc* *:defcompile*
:defc[ompile] Compile functions defined in the current script that
@ -772,6 +965,9 @@ prefix and they do not need to exist (they can be deleted any time).
Note that for command line completion of {func} you
can prepend "s:" to find script-local functions.
:disa[ssemble]! {func} Like `:disassemble` but with the instructions used for
profiling.
Limitations ~
Local variables will not be visible to string evaluation. For example: >
@ -794,6 +990,27 @@ For these the backtick expansion can be used. Example: >
g/pattern/s/^/`=newText`/
enddef
Closures defined in a loop will share the same context. For example: >
var flist: list<func>
for i in range(10)
var inloop = i
flist[i] = () => inloop
endfor
The "inloop" variable will exist only once, all closures put in the list refer
to the same instance, which in the end will have the value 9. This is
efficient. If you do want a separate context for each closure call a function
to define it: >
def GetFunc(i: number): func
var inloop = i
return () => inloop
enddef
var flist: list<func>
for i in range(10)
flist[i] = GetFunc(i)
endfor
==============================================================================
4. Types *vim9-types*
@ -920,12 +1137,15 @@ dictionary. If there is a mix of types, the "any" type is used. >
['a', 'b', 'c'] list<string>
[1, 'x', 3] list<any>
For script-local variables in Vim9 script the type is checked, also when the
variable was declared in a legacy function.
Stricter type checking ~
*type-checking*
In legacy Vim script, where a number was expected, a string would be
automatically converted to a number. This was convenient for an actual number
such as "123", but leads to unexpected problems (but no error message) if the
such as "123", but leads to unexpected problems (and no error message) if the
string doesn't start with a number. Quite often this leads to hard-to-find
bugs.
@ -936,6 +1156,16 @@ an error, thus breaking backwards compatibility. For example:
- Using a string value when setting a number options.
- Using a number where a string is expected. *E1024*
One consequence is that the item type of a list or dict given to map() must
not change. This will give an error in Vim9 script: >
map([1, 2, 3], (i, v) => 'item ' .. i)
E1012: Type mismatch; expected number but got string
Instead use |mapnew()|. If the item type was determined to be "any" it can
change to a more specific type. E.g. when a list of mixed types gets changed
to a list of numbers.
Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
|flattennew()| instead.
==============================================================================
5. Namespace, Import and Export
@ -954,9 +1184,9 @@ that you don't do that.
Namespace ~
*vim9-namespace*
To recognize a file that can be imported the `vim9script` statement must
appear as the first statement in the file. It tells Vim to interpret the
script in its own namespace, instead of the global namespace. If a file
starts with: >
appear as the first statement in the file (see |vim9-mix| for an exception).
It tells Vim to interpret the script in its own namespace, instead of the
global namespace. If a file starts with: >
vim9script
var myvar = 'yes'
Then "myvar" will only exist in this file. While without `vim9script` it would
@ -974,7 +1204,30 @@ A side effect of `:vim9script` is that the 'cpoptions' option is set to the
Vim default value, like with: >
:set cpo&vim
One of the effects is that |line-continuation| is always enabled.
The original value of 'cpoptions' is restored at the end of the script.
The original value of 'cpoptions' is restored at the end of the script, while
flags added or removed in the script are also added to or removed from the
original value to get the same effect. The order of flags may change.
*vim9-mix*
There is one way to use both legacy and Vim9 syntax in one script file: >
" comments may go here
if !has('vim9script')
" legacy script commands go here
finish
endif
vim9script
# Vim9 script commands go here
This allows for writing a script that takes advantage of the Vim9 script
syntax if possible, but will also work on a Vim version without it.
This can only work in two ways:
1. The "if" statement evaluates to false, the commands up to `endif` are
skipped and `vim9script` is then the first command actually executed.
2. The "if" statement evaluates to true, the commands up to `endif` are
executed and `finish` bails out before reaching `vim9script`.
TODO: The "vim9script" feature does not exist yet, it will only be added once
the Vim9 script syntax has been fully implemented.
Export ~
@ -988,7 +1241,7 @@ Exporting an item can be written as: >
export class MyClass ...
As this suggests, only constants, variables, `:def` functions and classes can
be exported. {classes are not implemented yet}
be exported. {not implemented yet: export class}
*E1042*
`:export` can only be used in Vim9 script, at the script level.
@ -1045,14 +1298,14 @@ actually needed. A recommended mechanism:
1. In the plugin define user commands, functions and/or mappings that refer to
an autoload script. >
command -nargs=1 SearchForStuff call searchfor#Stuff(<f-args>)
command -nargs=1 SearchForStuff searchfor#Stuff(<f-args>)
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen.
2. In the autoload script do the actual work. You can import items from
other files to split up functionality in appropriate pieces. >
vim9script
import FilterFunc from "../import/someother.vim"
import FilterFunc from "../import/someother.vim"
def searchfor#Stuff(arg: string)
var filtered = FilterFunc(arg)
...
@ -1138,12 +1391,12 @@ When compiling lines of Vim commands into instructions as much as possible
should be done at compile time. Postponing it to runtime makes the execution
slower and means mistakes are found only later. For example, when
encountering the "+" character and compiling this into a generic add
instruction, at execution time the instruction would have to inspect the type
of the arguments and decide what kind of addition to do. And when the
type is dictionary throw an error. If the types are known to be numbers then
an "add number" instruction can be used, which is faster. The error can be
given at compile time, no error handling is needed at runtime, since adding
two numbers cannot fail.
instruction, at runtime the instruction would have to inspect the type of the
arguments and decide what kind of addition to do. And when the type is
dictionary throw an error. If the types are known to be numbers then an "add
number" instruction can be used, which is faster. The error can be given at
compile time, no error handling is needed at runtime, since adding two numbers
cannot fail.
The syntax for types, using <type> for compound types, is similar to Java. It
is easy to understand and widely used. The type names are what were used in

View File

@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.2. Last change: 2020 Dec 18
*windows.txt* For Vim version 8.2. Last change: 2021 Apr 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -138,10 +138,12 @@ status line is inverted anyway; you will only see this problem on terminals
that have termcap codes for italics.
*filler-lines*
The lines after the last buffer line in a window are called filler lines.
These lines start with a tilde (~) character. By default, these are
highlighted as NonText (|hl-NonText|). The EndOfBuffer highlight group
(|hl-EndOfBuffer|) can be used to change the highlighting of filler lines.
The lines after the last buffer line in a window are called filler lines. By
default, these lines start with a tilde (~) character. The 'eob' item in the
'fillchars' option can be used to change this character. By default, these
characters are highlighted as NonText (|hl-NonText|). The EndOfBuffer
highlight group (|hl-EndOfBuffer|) can be used to change the highlighting of
the filler characters.
==============================================================================
3. Opening and closing a window *opening-window* *E36*
@ -208,7 +210,9 @@ CTRL-W CTRL_N *CTRL-W_CTRL-N*
:[N]new [++opt] [+cmd] {file}
:[N]sp[lit] [++opt] [+cmd] {file} *:split_f*
Create a new window and start editing file {file} in it. This
behaves like a ":split" first, and then an ":e" command.
behaves almost like a ":split" first, and then an ":edit"
command, but the alternate file name in the original window is
set to {file}.
If [+cmd] is given, execute the command when the file has been
loaded |+cmd|.
Also see |++opt|.
@ -517,14 +521,14 @@ CTRL-W J Move the current window to be at the very bottom, using the
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
`:vert topleft split`, except that the current window contents
is used for the new window.
*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
`:vert botright split`, except that the current window
contents is used for the new window.
*CTRL-W_T*
@ -567,7 +571,7 @@ CTRL-W < Decrease current window width by N (default 1).
*CTRL-W_>*
CTRL-W > Increase current window width by N (default 1).
:vertical res[ize] [N] *:vertical-resize* *CTRL-W_bar*
:vert[ical] res[ize] [N] *:vertical-resize* *CTRL-W_bar*
CTRL-W | Set current window width to N (default: widest possible).
You can also resize a window by dragging a status line up or down with the
@ -786,7 +790,7 @@ can also get to them with the buffer list commands, like ":bnext".
Examples: >
:windo set nolist nofoldcolumn | normal zn
:windo set nolist foldcolumn=0 | normal! zn
This resets the 'list' option and disables folding in all windows. >
@ -794,7 +798,7 @@ This resets the 'list' option and disables folding in all windows. >
This resets the 'fileencoding' in each buffer and writes it if this changed
the buffer. The result is that all buffers will use the 'encoding' encoding
(if conversion works properly).
(if conversion succeeds).
==============================================================================
9. Tag or file name under the cursor *window-tag*

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2020 Dec 07
" Last Change: 2021 Apr 17
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@ -168,6 +168,9 @@ au BufNewFile,BufRead *.mar setf vmasm
" Atlas
au BufNewFile,BufRead *.atl,*.as setf atlas
" Atom is based on XML
au BufNewFile,BufRead *.atom setf xml
" Autoit v3
au BufNewFile,BufRead *.au3 setf autoit
@ -216,6 +219,9 @@ au BufNewFile,BufRead *.bc setf bc
" BDF font
au BufNewFile,BufRead *.bdf setf bdf
" Beancount
au BufNewFile,BufRead *.beancount setf beancount
" BibTeX bibliography database file
au BufNewFile,BufRead *.bib setf bib
@ -411,6 +417,10 @@ endif
" Lynx config files
au BufNewFile,BufRead lynx.cfg setf lynx
" Modula-3 configuration language (must be before *.cfg and *makefile)
au BufNewFile,BufRead *.quake,cm3.cfg setf m3quake
au BufNewFile,BufRead m3makefile,m3overrides setf m3build
" Quake
au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake
au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake
@ -499,6 +509,9 @@ au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl')
" DOT
au BufNewFile,BufRead *.dot,*.gv setf dot
" Dune
au BufNewFile,BufRead jbuild,dune,dune-project,dune-workspace setf dune
" Dylan - lid files
au BufNewFile,BufRead *.lid setf dylanlid
@ -586,6 +599,9 @@ au BufNewFile,BufRead *.fan,*.fwt setf fan
" Factor
au BufNewFile,BufRead *.factor setf factor
" Fennel
autocmd BufRead,BufNewFile *.fnl setf fennel
" Fetchmail RC file
au BufNewFile,BufRead .fetchmailrc setf fetchmail
@ -628,7 +644,7 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
" Gift (Moodle)
autocmd BufRead,BufNewFile *.gift setf gift
autocmd BufRead,BufNewFile *.gift setf gift
" Git
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
@ -699,10 +715,10 @@ au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc
au BufNewFile,BufRead *.haml setf haml
" Hamster Classic | Playground files
au BufNewFile,BufRead *.hsm setf hamster
au BufNewFile,BufRead *.hsm setf hamster
" Haskell
au BufNewFile,BufRead *.hs,*.hsc,*.hs-boot setf haskell
au BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell
au BufNewFile,BufRead *.lhs setf lhaskell
au BufNewFile,BufRead *.chs setf chaskell
au BufNewFile,BufRead cabal.project setf cabalproject
@ -1003,6 +1019,7 @@ au BufNewFile,BufRead *.hgrc,*hgrc setf cfg
" Meson Build system config
au BufNewFile,BufRead meson.build,meson_options.txt setf meson
au BufNewFile,BufRead *.wrap setf dosini
" Messages (logs mostly)
au BufNewFile,BufRead */log/{auth,cron,daemon,debug,kern,lpr,mail,messages,news/news,syslog,user}{,.log,.err,.info,.warn,.crit,.notice}{,.[0-9]*,-[0-9]*} setf messages
@ -1033,10 +1050,10 @@ au BufNewFile,BufRead *.mod
\ setf modsim3 |
\ endif
" Modula 2 (.md removed in favor of Markdown)
" Modula-2 (.md removed in favor of Markdown)
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2
" Modula 3 (.m3, .i3, .mg, .ig)
" Modula-3 (.m3, .i3, .mg, .ig)
au BufNewFile,BufRead *.[mi][3g] setf modula3
" Monk
@ -1125,8 +1142,8 @@ au BufNewFile,BufRead *.nse setf lua
" NSIS
au BufNewFile,BufRead *.nsi,*.nsh setf nsis
" OCAML
au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit setf ocaml
" OCaml
au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml
" Occam
au BufNewFile,BufRead *.occ setf occam
@ -1134,6 +1151,9 @@ au BufNewFile,BufRead *.occ setf occam
" Omnimark
au BufNewFile,BufRead *.xom,*.xin setf omnimark
" OPAM
au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam
" OpenROAD
au BufNewFile,BufRead *.or setf openroad
@ -1167,12 +1187,18 @@ au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp
" Password file
au BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd
" Pascal (also *.p)
au BufNewFile,BufRead *.pas,*.pp setf pascal
" Pascal (also *.p, *.pp, *.inc)
au BufNewFile,BufRead *.pas setf pascal
" Pascal or Puppet manifest
au BufNewFile,BufRead *.pp call dist#ft#FTpp()
" Delphi or Lazarus program file
au BufNewFile,BufRead *.dpr,*.lpr setf pascal
" Free Pascal makefile definition file
au BufNewFile,BufRead *.fpc setf fpcmake
" PDF
au BufNewFile,BufRead *.pdf setf pdf
@ -1186,8 +1212,6 @@ else
au BufNewFile,BufRead *.pl call dist#ft#FTpl()
endif
au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
au BufNewFile,BufRead *.p6,*.pm6,*.pl6 setf perl6
au BufNewFile,BufRead *.raku,*.rakumod setf perl6
" Perl, XPM or XPM2
au BufNewFile,BufRead *.pm
@ -1201,7 +1225,6 @@ au BufNewFile,BufRead *.pm
" Perl POD
au BufNewFile,BufRead *.pod setf pod
au BufNewFile,BufRead *.pod6 setf pod6
" Php, php3, php4, etc.
" Also Phtml (was used for PHP 2 in the past)
@ -1258,22 +1281,33 @@ au BufNewFile,BufRead *.pov setf pov
" Povray configuration
au BufNewFile,BufRead .povrayrc setf povini
" Povray, PHP or assembly
" Povray, Pascal, PHP or assembly
au BufNewFile,BufRead *.inc call dist#ft#FTinc()
" PowerShell
au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1
au BufNewFile,BufRead *.ps1xml setf ps1xml
au BufNewFile,BufRead *.cdxml,*.psc1 setf xml
" Printcap and Termcap
au BufNewFile,BufRead *printcap
\ let b:ptcap_type = "print" | setf ptcap
au BufNewFile,BufRead *termcap
\ let b:ptcap_type = "term" | setf ptcap
" PCCTS / ANTRL
"au BufNewFile,BufRead *.g setf antrl
" PCCTS / ANTLR
"au BufNewFile,BufRead *.g setf antlr
au BufNewFile,BufRead *.g setf pccts
" PPWizard
au BufNewFile,BufRead *.it,*.ih setf ppwiz
" Puppet
au BufNewFile,BufRead Puppetfile setf ruby
" Embedded Puppet
au BufNewFile,BufRead *.epp setf epuppet
" Obj 3D file format
" TODO: is there a way to avoid MS-Windows Object files?
au BufNewFile,BufRead *.obj setf obj
@ -1309,10 +1343,16 @@ au BufNewFile,BufRead *.pdb setf prolog
" Promela
au BufNewFile,BufRead *.pml setf promela
" Property Specification Language (PSL)
au BufNewFile,BufRead *.psl setf psl
" Google protocol buffers
au BufNewFile,BufRead *.proto setf proto
au BufNewFile,BufRead *.pbtxt setf pbtxt
" Poke
au BufNewFile,BufRead *.pk setf poke
" Protocols
au BufNewFile,BufRead */etc/protocols setf protocols
@ -1327,6 +1367,9 @@ au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
" Radiance
au BufNewFile,BufRead *.rad,*.mat setf radiance
" Raku (formelly Perl6)
au BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku
" Ratpoison config/command files
au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison
@ -1370,6 +1413,9 @@ else
au BufNewFile,BufRead *.rmd,*.smd setf rmd
endif
" RSS looks like XML
au BufNewFile,BufRead *.rss setf xml
" R reStructuredText file
if has("fname_case")
au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst
@ -1416,8 +1462,8 @@ au BufNewFile,BufRead *.rb,*.rbw setf ruby
" RubyGems
au BufNewFile,BufRead *.gemspec setf ruby
" Rust
au BufNewFile,BufRead *.rs setf rust
" RBS (Ruby Signature)
au BufNewFile,BufRead *.rbs setf rbs
" Rackup
au BufNewFile,BufRead *.ru setf ruby
@ -1431,6 +1477,9 @@ au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby
" Rantfile and Rakefile is like Ruby
au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby
" Rust
au BufNewFile,BufRead *.rs setf rust
" S-lang (or shader language, or SmallLisp)
au BufNewFile,BufRead *.sl setf slang
@ -1467,6 +1516,9 @@ au BufNewFile,BufRead *.sdl,*.pr setf sdl
" sed
au BufNewFile,BufRead *.sed setf sed
" svelte
au BufNewFile,BufRead *.svelte setf svelte
" Sieve (RFC 3028, 5228)
au BufNewFile,BufRead *.siv,*.sieve setf sieve
@ -1516,11 +1568,10 @@ 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[-.],*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.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 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))
" Shell script (Arch Linux) or PHP file (Drupal)
au BufNewFile,BufRead *.install
\ if getline(1) =~ '<?php' |
@ -1547,6 +1598,9 @@ au BufNewFile,BufRead *.scm,*.ss,*.rkt setf scheme
" Screen RC
au BufNewFile,BufRead .screenrc,screenrc setf screen
" Sexplib
au BufNewFile,BufRead *.sexp setf sexplib
" Simula
au BufNewFile,BufRead *.sim setf simula
@ -1607,6 +1661,9 @@ au BufNewFile,BufRead *.mib,*.my setf mib
au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog
au BufNewFile,BufRead *.rules call dist#ft#FTRules()
" SPARQL queries
au BufNewFile,BufRead *.rq,*.sparql setf sparql
" Spec (Linux RPM)
au BufNewFile,BufRead *.spec setf spec
@ -1717,8 +1774,13 @@ au BufNewFile,BufRead *.tli setf tli
" Telix Salt
au BufNewFile,BufRead *.slt setf tsalt
" Tera Term Language
au BufRead,BufNewFile *.ttl setf teraterm
" Tera Term Language or Turtle
au BufRead,BufNewFile *.ttl
\ if getline(1) =~ '^@\?\(prefix\|base\)' |
\ setf turtle |
\ else |
\ setf teraterm |
\ endif
" Terminfo
au BufNewFile,BufRead *.ti setf terminfo
@ -2180,8 +2242,11 @@ au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
" SGML catalog file
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" avoid doc files being recognized a shell files
au BufNewFile,BufRead */doc/{,.}bash[_-]completion{,.d,.sh}{,/*} setf text
" Shell scripts ending in a star
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD* call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD*,*/{,.}bash[_-]completion{,.d,.sh}{,/*} call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))

View File

@ -159,40 +159,41 @@ if exists("g:ada_abbrev")
endif
" Section: Commands, Mapping, Menus {{{1
"
call ada#Map_Popup (
\ 'Tag.List',
\ 'l',
\ 'call ada#List_Tag ()')
call ada#Map_Popup (
\'Tag.Jump',
\'j',
\'call ada#Jump_Tag ()')
call ada#Map_Menu (
\'Tag.Create File',
\':AdaTagFile',
\'call ada#Create_Tags (''file'')')
call ada#Map_Menu (
\'Tag.Create Dir',
\':AdaTagDir',
\'call ada#Create_Tags (''dir'')')
if !exists(':AdaTagFile')
call ada#Map_Popup (
\ 'Tag.List',
\ 'l',
\ 'call ada#List_Tag ()')
call ada#Map_Popup (
\'Tag.Jump',
\'j',
\'call ada#Jump_Tag ()')
call ada#Map_Menu (
\'Tag.Create File',
\':AdaTagFile',
\'call ada#Create_Tags (''file'')')
call ada#Map_Menu (
\'Tag.Create Dir',
\':AdaTagDir',
\'call ada#Create_Tags (''dir'')')
call ada#Map_Menu (
\'Highlight.Toggle Space Errors',
\ ':AdaSpaces',
\'call ada#Switch_Syntax_Option (''space_errors'')')
call ada#Map_Menu (
\'Highlight.Toggle Lines Errors',
\ ':AdaLines',
\'call ada#Switch_Syntax_Option (''line_errors'')')
call ada#Map_Menu (
\'Highlight.Toggle Rainbow Color',
\ ':AdaRainbow',
\'call ada#Switch_Syntax_Option (''rainbow_color'')')
call ada#Map_Menu (
\'Highlight.Toggle Standard Types',
\ ':AdaTypes',
\'call ada#Switch_Syntax_Option (''standard_types'')')
call ada#Map_Menu (
\'Highlight.Toggle Space Errors',
\ ':AdaSpaces',
\'call ada#Switch_Syntax_Option (''space_errors'')')
call ada#Map_Menu (
\'Highlight.Toggle Lines Errors',
\ ':AdaLines',
\'call ada#Switch_Syntax_Option (''line_errors'')')
call ada#Map_Menu (
\'Highlight.Toggle Rainbow Color',
\ ':AdaRainbow',
\'call ada#Switch_Syntax_Option (''rainbow_color'')')
call ada#Map_Menu (
\'Highlight.Toggle Standard Types',
\ ':AdaTypes',
\'call ada#Switch_Syntax_Option (''standard_types'')')
endif
" 1}}}
" Reset cpoptions

View File

@ -0,0 +1,27 @@
" Vim filetype plugin file
" Language: BASIC
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2015 Jan 10
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal comments=:REM,:'
setlocal commentstring='\ %s
setlocal formatoptions-=t formatoptions+=croql
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "BASIC Source Files (*.bas)\t*.bas\n" .
\ "All Files (*.*)\t*.*\n"
endif
let b:undo_ftplugin = "setl fo< com< cms< sua<" .
\ " | unlet! b:browsefilter"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Bazel (http://bazel.io)
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
" Last Change: 2015 Aug 11
" Last Change: 2021 Jan 19
""
" @section Introduction, intro
@ -51,6 +51,8 @@ if get(g:, 'ft_bzl_fold', 0)
endif
if exists('*BzlFoldText')
let &cpo = s:save_cpo
unlet s:save_cpo
finish
endif

View File

@ -1,11 +1,11 @@
" Vim filetype plugin file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 18 July 2016
" Language: Clojure
" Maintainer: Alex Vear <av@axvr.io>
" Former Maintainers: Sung Pae <self@sungpae.com>
" Meikel Brandmeyer <mb@kotka.de>
" URL: https://github.com/clojure-vim/clojure.vim
" License: Vim (see :h license)
" Last Change: 2021-02-13
if exists("b:did_ftplugin")
finish
@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
" specially and hence are not indented specially.
"
" -*- LISPWORDS -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
" Generated from https://github.com/clojure-vim/clojure.vim/blob/f8594e7030cdfb0b7990ac92953c77a08a7220f0/clj/src/vim_clojure_static/generate.clj
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
" Provide insert mode completions for special forms and clojure.core. As
@ -57,21 +57,6 @@ for s:setting in ['omnifunc', 'completefunc']
endif
endfor
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
" and add them to the path option.
"
" This is a legacy option for VimClojure users.
if exists('$CLOJURE_SOURCE_DIRS')
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
let s:dir = fnameescape(s:dir)
" Whitespace escaping for Windows
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
execute "setlocal path+=" . s:dir . "/**"
endfor
let b:undo_ftplugin .= ' | setlocal path<'
endif
" Skip brackets in ignored syntax regions when using the % command
if exists('loaded_matchit')
let b:match_words = &matchpairs

View File

@ -1,7 +1,7 @@
" Language: Dune buildsystem
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" Anton Kochkov <anton.kochkov@gmail.com>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2018 Nov 3 - Added commentstring (Markus Mottl)
" 2017 Sep 6 - Initial version (Etienne Millon)

View File

@ -1,87 +1,83 @@
" Vim ftplugin file
" Language: Erlang
" Language: Erlang (http://www.erlang.org)
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
" Author: Oscar Hellström <oscar@oscarh.net>
" Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
" Eduardo Lopez (http://github.com/tapichu)
" Arvid Bjurklint (http://github.com/slarwise)
" Last Update: 2021-Jan-08
" License: Vim license
" Version: 2012/01/25
" URL: https://github.com/vim-erlang/vim-erlang-runtime
if exists('b:did_ftplugin')
finish
else
let b:did_ftplugin = 1
endif
if exists('s:did_function_definitions')
call s:SetErlangOptions()
finish
else
let s:did_function_definitions = 1
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
if !exists('g:erlang_keywordprg')
let g:erlang_keywordprg = 'erl -man'
let &l:keywordprg = get(g:, 'erlang_keywordprg', 'erl -man')
if get(g:, 'erlang_folding', 0)
setlocal foldmethod=expr
setlocal foldexpr=GetErlangFold(v:lnum)
setlocal foldtext=ErlangFoldText()
endif
if !exists('g:erlang_folding')
let g:erlang_folding = 0
endif
setlocal comments=:%%%,:%%,:%
setlocal commentstring=%%s
setlocal formatoptions+=ro
setlocal suffixesadd=.erl,.hrl
let &l:include = '^\s*-\%(include\|include_lib\)\s*("\zs\f*\ze")'
let &l:define = '^\s*-\%(define\|record\|type\|opaque\)'
let s:erlang_fun_begin = '^\a\w*(.*$'
let s:erlang_fun_end = '^[^%]*\.\s*\(%.*\)\?$'
function s:SetErlangOptions()
if g:erlang_folding
setlocal foldmethod=expr
setlocal foldexpr=GetErlangFold(v:lnum)
setlocal foldtext=ErlangFoldText()
endif
if !exists('*GetErlangFold')
function GetErlangFold(lnum)
let lnum = a:lnum
let line = getline(lnum)
setlocal comments=:%%%,:%%,:%
setlocal commentstring=%%s
if line =~ s:erlang_fun_end
return '<1'
endif
setlocal formatoptions+=ro
let &l:keywordprg = g:erlang_keywordprg
endfunction
if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1
return '1'
endif
function GetErlangFold(lnum)
let lnum = a:lnum
let line = getline(lnum)
if line =~ s:erlang_fun_begin
return '>1'
endif
if line =~ s:erlang_fun_end
return '<1'
endif
return '='
endfunction
endif
if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1
return '1'
endif
if !exists('*ErlangFoldText')
function ErlangFoldText()
let line = getline(v:foldstart)
let foldlen = v:foldend - v:foldstart + 1
let lines = ' ' . foldlen . ' lines: ' . substitute(line, "[\ \t]*", '', '')
if foldlen < 10
let lines = ' ' . lines
endif
let retval = '+' . v:folddashes . lines
if line =~ s:erlang_fun_begin
return '>1'
endif
return retval
endfunction
endif
return '='
endfunction
function ErlangFoldText()
let line = getline(v:foldstart)
let foldlen = v:foldend - v:foldstart + 1
let lines = ' ' . foldlen . ' lines: ' . substitute(line, "[\ \t]*", '', '')
if foldlen < 10
let lines = ' ' . lines
endif
let retval = '+' . v:folddashes . lines
return retval
endfunction
call s:SetErlangOptions()
let b:undo_ftplugin = "setlocal foldmethod< foldexpr< foldtext<"
\ . " comments< commentstring< formatoptions<"
let b:undo_ftplugin = "setlocal keywordprg< foldmethod< foldexpr< foldtext<"
\ . " comments< commentstring< formatoptions< suffixesadd< include<"
\ . " define<"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: sw=2 et

View File

@ -1,13 +1,13 @@
" Vim settings file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
" Version: (v52) 2020 October 07
" Version: (v53) 2021 April 06
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-plugin from Vim
" Credits:
" Version 0.1 was created in September 2000 by Ajit Thakkar.
" Since then, useful suggestions and contributions have been made, in order, by:
" Stefano Zacchiroli, Hendrik Merx, Ben Fritz, David Barnett, Eisuke Kawashima,
" and Doug Kearns.
" Doug Kearns, and Fritz Reese.
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@ -66,12 +66,19 @@ endif
" Set comments and textwidth according to source type
if (b:fortran_fixed_source == 1)
setlocal comments=:!,:*,:C
" Fixed format requires a textwidth of 72 for code
setlocal tw=72
" Fixed format requires a textwidth of 72 for code,
" but some vendor extensions allow longer lines
if exists("fortran_extended_line_length")
setlocal tw=132
elseif exists("fortran_cardimage_line_length")
setlocal tw=80
else
setlocal tw=72
" If you need to add "&" on continued lines so that the code is
" compatible with both free and fixed format, then you should do so
" in column 73 and uncomment the next line
" setlocal tw=73
endif
else
setlocal comments=:!
" Free format allows a textwidth of 132

View File

@ -0,0 +1,25 @@
" Vim filetype plugin file
" Language: Free Pascal Makefile Generator
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 Apr 23
if exists("b:did_ftplugin")
finish
endif
let s:cpo_save = &cpo
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"
endif
let b:undo_ftplugin = b:undo_ftplugin .. " | unlet! b:browsefilter"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8 noet:

View File

@ -3,14 +3,14 @@
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-19
let s:cpo_save = &cpo
set cpo&vim
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< fo< inc< | unlet! b:matchwords"
setlocal comments=s1:/*,mb:*,ex:*/,:// commentstring=/*\ %s\ */

View File

@ -0,0 +1,13 @@
" Vim filetype plugin file
" Language: FreeBasic
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2015 Jan 10
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
runtime! ftplugin/basic.vim
" vim: ts=8

View File

@ -0,0 +1,19 @@
" Vim ftplugin file
" Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/ftplugin/fstab.vim
" Last Change: 2021 Jan 02
" Version: 1.0
"
" Credits:
" Subhaditya Nath <sn03.general@gmail.com>
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal commentstring=#%s
let b:undo_ftplugin = "setlocal commentstring<"
" vim: ts=8 ft=vim

View File

@ -1,6 +1,6 @@
" Language: gprof
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2013 Jun 09
" Last Change: 2021 Apr 08
" When cursor is on one line of the gprof call graph,
" calling this function jumps to this function in the call graph.
@ -16,7 +16,7 @@ fun! <SID>GprofJumpToFunctionIndex()
norm! $y%
call search('^' . escape(@", '[]'), 'sw')
norm! zz
elseif l:line =~ '^\(\s\+[0-9\.]\+\)\{3}\s\+'
elseif l:line =~ '^\(\s*[0-9\.]\+\)\{3}\s\+'
" We're in line in the flat profile.
norm! 55|eby$
call search('^\[\d\+\].*\d\s\+' . escape(@", '[]*.') . '\>', 'sW')

View File

@ -2,7 +2,7 @@
" Language: Hamster Script
" Version: 2.0.6.0
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2017 Mar 18
" Last Change: 2021 Jan 19
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -57,6 +57,9 @@ if exists("loaded_matchit")
endif
setlocal ignorecase
let &cpo = s:cpo_save
unlet s:cpo_save
setlocal cpo+=M " makes \%( match \)
" Disabled, 'cpo' is a global option.
" setlocal cpo+=M " makes \%( match \)

View File

@ -4,7 +4,7 @@
" URL: http://sites.google.com/site/khorser/opensource/vim
" Original author: Dorai Sitaram <ds26@gte.com>
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
" Last Change: Oct 23, 2013
" Last Change: Mar 10, 2021
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@ -14,13 +14,11 @@ endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
setl comments=:;
setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
setl define=^\\s*(def\\k*
setl formatoptions-=t
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
setl lisp
setl commentstring=;%s
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp< commentstring<"

View File

@ -0,0 +1,24 @@
" Vim filetype plugin file
" Language: Modula-3 Makefile
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 April 15
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
runtime! ftplugin/m3quake.vim
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Modula-3 Makefile (m3makefile m3overrides)\tm3makefile;m3overrides\n" ..
\ "All Files (*.*)\t*.*\n"
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8 noet:

View File

@ -0,0 +1,33 @@
" Vim filetype plugin file
" Language: Modula-3 Quake
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2021 April 15
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal comments=s1:/*,mb:*,ex:*/,:%
setlocal commentstring=%\ %s
setlocal formatoptions-=t formatoptions+=croql
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_words = '\<\%(proc\|if\|foreach\)\>:\<else\>:\<end\>'
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Modula-3 Quake Source Files (*.quake)\t*.quake\n" ..
\ "All Files (*.*)\t*.*\n"
endif
let b:undo_ftplugin = "setl fo< com< cms< " ..
\ "| unlet! b:browsefilter b:match_words"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8 noet:

View File

@ -1,6 +1,7 @@
" Vim filetype plugin file
" Language: meson
" License: VIM License
" Maintainer: Liam Beguin <liambeguin@gmail.com>
" Original Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
" Last Change: 2018 Nov 27

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