Commit Graph

327 Commits

Author SHA1 Message Date
geekodour
1e71978cf0 events: VimSuspend, VimResume #8280
closes #3648
ref #5959
2018-04-15 15:05:02 +02:00
Justin M. Keyes
7362ca4430 cleanup: remove main_start_gui() 2018-04-11 01:58:42 +02:00
ZyX
201a4ef11c *: Replace did_throw checks with current_exception checks
Removes obsolete did_throw after that.
2018-03-25 15:13:05 +03:00
ZyX
79b4b6fc86 *: Make sure that !did_throw implies !current_exception
Fixes #7876
2018-03-25 14:50:48 +03:00
Justin M. Keyes
6a7c904648 Merge #4419 'implement <Cmd> key' 2018-03-24 17:45:48 +01:00
Justin M. Keyes
7ae4144208 refactor/rename: path_try_shorten_fname() 2018-03-24 14:17:40 +01:00
Justin M. Keyes
998a16c926 refactor/rename: path_is_absolute() 2018-03-24 14:17:40 +01:00
Justin M. Keyes
82cd0be2ea refactor: eliminate autocmd_fname_full global
It's a micro-optimization; check path_is_absolute_path(autocmd_fname)
instead.

The main optimization (which is still in place) afforded by Vim 7.2.021
was to avoid resolving <afile> when it is not needed.
2018-03-24 12:16:39 +01:00
Justin M. Keyes
189c5abeba provider/RPC: apply_autocmds_group(): fix double-free
During provider dispatch, eval_call_provider() saves global
state--including pointers, such as `autocmd_fname`--into
`provider_caller_scope` which is later restored by f_rpcrequest().

But `autocmd_fname` is special-cased in eval_vars(), for performance
(see Vim patch 7.2.021; this is also the singular purpose of the
`autocmd_fname_full` global. Yay!)

If eval_vars() frees `autocmd_fname` then its provider-RPC-scoped alias
becomes a problem.

Solution: Don't free autocmd_fname in eval_vars(), just copy into it.

closes #5245
closes #5617

Reference
------------------------------------------------------------------------

Vim patch 7.2.021
f6dad43c98
Problem:    When executing autocommands getting the full file name may be
            slow. (David Kotchan)
Solution:   Postpone calling FullName_save() until autocmd_fname is used.

vim_dev discussion (2008): "Problem with CursorMoved AutoCommand when
Editing Files on a Remote WIndows Share"
https://groups.google.com/d/msg/vim_dev/kj95weZa_eE/GTgj4aq5sIgJ
2018-03-24 11:01:24 +01:00
Björn Linse
d407a48665 getchar: implement <Cmd> key to invoke command in any mode 2018-03-23 14:01:49 +01:00
Justin M. Keyes
7da4d1561b lint 2018-02-12 01:32:52 +01:00
Justin M. Keyes
04993f220a vim-patch:8.0.1205: it is possible to unload a changed buffer
Problem:    Using "1q" it is possible to unload a changed buffer. (Rick Howe)
Solution:   Check the right window for changes.

ff930cad8a
2018-02-11 22:50:54 +01:00
Justin M. Keyes
2929dbf223 vim-patch:8.0.0858: can exit while a terminal is still running a job
Problem:    Can exit while a terminal is still running a job.
Solution:   Consider a buffer with a running job like a changed file.

eb44a68b42
2018-02-11 22:40:12 +01:00
Justin M. Keyes
16a4168364 vim-patch:8.0.0613: the conf filetype is used before ftdetect from packages
Problem:    The conf filetype detection is done before ftdetect scripts from
            packages that are added later.
Solution:   Add the FALLBACK argument to :setfiletype. (closes vim/vim#1679,
            closes vim/vim#1693)

3e54569b17
2018-02-11 19:03:26 +01:00
Justin M. Keyes
070f8df4dd vim-patch:8.0.1204: a QuitPre autocommand may get the wrong file name
Problem:    A QuitPre autocommand may get the wrong file name.
Solution:   Pass the buffer being closed to apply_autocmds(). (Rich Howe)

87ffb5c1a3
2018-02-11 15:27:57 +01:00
Justin M. Keyes
b5acf6e0c1 vim-patch:8.0.0700: segfault with QuitPre autocommand closes the window
Problem:    Segfault with QuitPre autocommand closes the window. (Marek)
Solution:   Check that the window pointer is still valid. (Christian Brabandt,
            closes vim/vim#1817)

0ea5070d79
2018-02-11 15:27:57 +01:00
Marco Hinz
6acbd76b00 Add completion for :checkhealth 2018-01-18 22:47:36 +01:00
Justin M. Keyes
7c4bb23ff3 defaults: do :filetype stuff unless explicitly "off"
Until now, the default `:filetype ...` setup was skipped if the user
config touched `:filetype` in any way (including implicitly via `:syntax
on`).  No one needs that, and it's very confusing.

Instead, proceed with `:filetype ... on` unless the user explicitly
called `:filetype ... off`.

closes #7765
2018-01-04 10:32:09 +01:00
Daniel Hahler
e84e1b68c1 Move applying of TabClosed to win_close_othertab 2017-12-29 20:38:17 +01:00
ZyX
7af8601db4 Merge branch 'master' into expression-parser
Hoping that could fix the LSAN issue: no idea what it is talking about.
2017-12-03 16:19:40 +03:00
ckelsel
7ab36403e1 fix lint error 2017-12-02 15:45:19 +08:00
ckelsel
585d664b7b vim-patch:8.0.0298
Problem:    Ex command range with repeated search does not work. (Bruce
            DeVisser)
Solution:   Skip over \/, \? and \&.

cbf20fbcd3
2017-12-02 15:40:57 +08:00
ZyX
03a129aacf Merge branch 'master' into expression-parser 2017-11-19 22:05:22 +03:00
Eric Roberts
a6de144c3e 'viewoptions': add "curdir" flag #7447
The flag enables the current local directory set by ":lcd" to be saved
to views which is the current default behaviour. The option can be
removed to disable this behaviour.

closes #7435

vim-patch:8.0.1289
2017-11-18 12:02:15 +01:00
KunMing Xie
faa15c5b83 vim-patch:8.0.0218 (#7529)
Problem:    No command line completion for :cexpr, :cgetexpr, :caddexpr, etc.
Solution:   Make completion work. (Yegappan Lakshmanan)  Add a test.

2b2207ba69
2017-11-10 23:35:55 +01:00
ZyX
b29a776550 Merge branch 'master' into expression-parser 2017-10-30 00:49:12 +03:00
ZyX
748f3ad5bb syntax,viml/expressions/parser: Create defaults for expr highlighting 2017-10-29 21:30:06 +03:00
James McCoy
f1f7f3b512 inccommand: Ignore leading modifiers in the command 2017-10-24 19:55:29 -04:00
Josh Leeb-du Toit
9db42d4ce9 :cquit : take an error code argument #7336
closes #2699

ex_cmds.lua: use flags consistent with similar commands such as `cnext`.

upstream discussion:
"[patch] :qcuit can take exit code"
https://groups.google.com/d/msg/vim_dev/_PjyNbUKyRc/oPgr5_ZXc6AJ
2017-10-22 13:02:31 +02:00
James McCoy
f66307475d lint 2017-09-26 16:08:15 -04:00
James McCoy
25d4cd7e28 vim-patch:8.0.1024
Problem:    Manual folds are lost when a session file has the same buffer in
            two windows. (Jeansen)
Solution:   Use ":edit" only once. (Christian Brabandt, closes vim/vim#1958)

4bebc9a056
2017-09-26 16:03:43 -04:00
James McCoy
5bb2a19417 vim-patch:8.0.0253
Problem:    When creating a session when winminheight is 2 or larger and
            loading that session gives an error.
Solution:   Also set winminheight before setting winheight to 1. (Rafael
            Bodill, neovim vim/vim#5717)

36ae89c550
2017-09-26 15:50:00 -04:00
Michael Schupikov
f8dcd319d9 vim-patch:8.0.0294 (#7305)
Problem:    Argument list is not stored correctly in a session file.
            (lgpasquale)
Solution:   Use "$argadd" instead of "argadd". (closes vim/vim#1434)

79da563cf9
Signed-off-by: Michael Schupikov <michael@schupikov.de>
2017-09-23 08:32:29 +02:00
KunMing Xie
12efbf897d vim-patch:8.0.0327 (#7281)
Problem:    The E11 error message in the command line window is not
            translated.
Solution:   use _(). (Hirohito Higashi)

75c19464ed
2017-09-17 20:05:22 +02:00
KunMing Xie
cf59d617bc vim-patch:8.0.0324 (#7279)
Problem:    Illegal memory access with "1;y".
Solution:   Call check_cursor() instead of check_cursor_lnum(). (Dominique
            Pelle, closes vim/vim#1455)

f1f6f3f7df
2017-09-17 20:04:17 +02:00
Drew Neil
7d183e89f7 Use Normal mode as default when opening a new terminal 2017-08-21 20:44:03 +01:00
Justin M. Keyes
49b671f8f1 vim-patch:8.0.0290 vim-patch:8.0.0394
vim-patch:8.0.0290: cursor positioning wrong if wide character wraps
Problem:    If a wide character doesn't fit at the end of the screen line, and
            the line doesn't fit on the screen, then the cursor position may
            be wrong. (anliting)
Solution:   Don't skip over wide character. (Christian Brabandt, closes vim/1408)

vim-patch:8.0.0394
Problem:    Tabs are not aligned when scrolling horizontally and a Tab doesn't
            fit. (Axel Bender)
Solution:   Handle a Tab as a not fitting character. (Christian Brabandt)
            Also fix that ":redraw" does not scroll horizontally to show the
            cursor.  And fix the test that depended on the old behavior.

abc39ab642
2017-08-12 17:39:07 +02:00
KunMing Xie
d1f0b5aa5d vim-patch:8.0.0137 (#7119)
Problem:    When 'maxfuncdepth' is set above 200 the nesting is limited to
            200. (Brett Stahlman)
Solution:   Allow for Ex command recursion depending on 'maxfuncdepth'.

777b30f827
2017-08-06 23:03:08 +02:00
lonerover
36ceb9397c vim-patch:8.0.0086 (#7118)
Problem:    Cannot add a comment after ":hide". (Norio Takagi)
Solution:   Make it work, add a test. (Hirohito Higashi)

2256c99471
2017-08-06 23:00:19 +02:00
KunMing Xie
348229b1d3 vim-patch:8.0.0133 (#7107)
Problem:    "2;'(" causes ml_get errors in an empty buffer.  (Dominique Pelle)
Solution:   Check the cursor line earlier.

fe38b494ff
2017-08-04 22:25:39 +02:00
lonerover
99aeb607f4 vim-patch:8.0.0081
Problem:    Inconsistent function names.
Solution:   Rename do_cscope to ex_cscope.  Clean up comments.

d4db7719bd
2017-08-04 20:36:36 +08:00
Justin M. Keyes
8160a0e042 Revert "vim-patch:8.0.0133 (#7107)"
This reverts commit eb40b7ec40.

The change caused this error on QuickBuild:

    INFO  - # test/functional/core/job_spec.lua @ 668: pty process teardown does not prevent/delay exit. #4798 #4900
    INFO  - not ok 321 - pty process teardown does not prevent/delay exit. #4798 #4900
    INFO  - # test/functional/core/job_spec.lua @ 668
    INFO  - # Failure message: ./test/functional/ui/screen.lua:302: Row 1 did not match.
    INFO  - # Expected:
    INFO  - # |* |
    INFO  - # |[Process exited 0] |
    INFO  - # | |
    INFO  - # | |
    INFO  - # | |
    INFO  - # |-- TERMINAL -- |
    INFO  - # Actual:
    INFO  - # |*E575: Error while reading ShaD|
    INFO  - # |a file: mark entry at position|
    INFO  - # | 92 has invalid line number |
    INFO  - # |Press ENTER or type command to|
    INFO  - # | continue |
    INFO  - # |-- TERMINAL -- |
    INFO  - #
    INFO  - # To print the expect() call that would assert the current screen state, use
    INFO  - # screen:snaphot_util(). In case of non-deterministic failures, use
    INFO  - # screen:redraw_debug() to show all intermediate screen states.
    INFO  - # stack traceback:
    INFO  - #     ./test/functional/ui/screen.lua:302: in function 'wait'
    INFO  - #     ./test/functional/ui/screen.lua:216: in function 'expect'
    INFO  - #     test/functional/core/job_spec.lua:677: in function <test/functional/core/job_spec.lua:668>
2017-08-03 09:31:05 +02:00
KunMing Xie
eb40b7ec40 vim-patch:8.0.0133 (#7107)
Problem:    "2;'(" causes ml_get errors in an empty buffer.  (Dominique Pelle)
Solution:   Check the cursor line earlier.

fe38b494ff
2017-08-02 10:22:04 +02:00
James McCoy
a2dc33ba19 Merge pull request #7069 from jbradaric/vim-8.0.0034
vim-patch:8.0.0034
2017-07-26 15:36:07 -04:00
Jurica Bradaric
09470eb673 vim-patch:8.0.0075
Problem:    Using number for exception type lacks type checking.
Solution:   Use an enum.

8a5883b748
2017-07-25 19:06:23 +02:00
Jurica Bradaric
811c45163c vim-patch:8.0.0034
Problem:    No completion for ":messages".
Solution:   Complete "clear" argument. (Hirohito Higashi)

9e507ca8a3
2017-07-25 18:41:14 +02:00
ckelsel
86f2c473dc fix lint 2017-07-24 07:41:01 +08:00
ckelsel
b656159fcf vim-patch:8.0.0073
Problem:    More comparisons between firstwin and lastwin.
Solution:   Use ONE_WINDOW for consistency. (Hirohito Higashi)

459ca56312
2017-07-23 11:25:39 +08:00
ckelsel
ad07e9c7fc vim-patch:8.0.0069
Problem:    Compiler warning for self-comparison.
Solution:   Define ONE_WINDOW and add vim/vim#ifdef.

a1f4cb93ba
2017-07-23 10:34:41 +08:00
Justin M. Keyes
0ea7e45bc1 'cpoptions': remove "<" flag; ignore <special>
Closes #6937 "nvim_get_keymap output is unreliable"
2017-07-08 16:34:35 +02:00