Commit Graph

9270 Commits

Author SHA1 Message Date
Justin M. Keyes
06f8ad5b2a terminal.c: need maketitle() in terminal-mode
normal_redraw() usually takes care of this, but that doesn't happen
during terminal-mode.

regression by c484323dc6
steps to reproduce:
    nvim -u NORC --cmd 'execute("set titlestring=" . $NVIM_LISTEN_ADDRESS) | set title | startinsert | !sleep 1' term://sh

closes #7248
2017-09-09 14:07:36 +02:00
Justin M. Keyes
618cfe03fc test: ex_terminal_spec.lua: retry flaky test (#7245)
https://api.travis-ci.org/jobs/271833660/log.txt
2017-09-07 09:40:37 +02:00
Justin M. Keyes
cb912a3eda Merge #7241 ':terminal : handle F1-F12, other keys' 2017-09-06 09:22:32 +02:00
Justin M. Keyes
51808a244e Merge #7221 from justinmk/ev-focusgained
tui: schedule event instead of <FocusGained> pseudokey
2017-09-06 07:25:01 +02:00
KunMing Xie
82795c2c3a vim-patch: 8.0.0{181,182,188} (#7152)
vim-patch:8.0.0181
Problem:    When 'cursorbind' and 'cursorcolumn' are both on, the column
            highlignt in non-current windows is wrong.
Solution:   Add validate_cursor(). (Masanori Misono, closes vim/vim#1372)
519d7785f4

vim-patch:8.0.0182
Problem:    When 'cursorbind' and 'cursorline' are set, but 'cursorcolumn' is
            not, then the cursor line highlighting is not updated. (Hirohito
            Higashi)
Solution:   Call redraw_later() with NOT_VALID.
e47683a091

vim-patch:8.0.0188
    Problem:    Using NOT_VALID for redraw_later() to update the cursor
                line/column highlighting is not efficient.
    Solution:   Call validate_cursor() when 'cul' or 'cuc' is set.
9506cad7a1
2017-09-05 19:04:57 +02:00
Justin M. Keyes
b9d6bda531 test: FocusGained: press-enter prompt 2017-09-05 18:44:01 +02:00
Justin M. Keyes
5696991c6d Merge #5014 ':terminal : handle F1-F12, other keys'
closes #3101
closes #4343
closes #5024
closes #5925
2017-09-05 18:11:38 +02:00
Justin M. Keyes
cdd9e868ef doc: channel, eventloop 2017-09-05 15:01:07 +02:00
Justin M. Keyes
c00a33ed19 eventloop: loop_schedule_deferred()
Generalize the "schedule schedule" technique.
2017-09-05 15:01:07 +02:00
Justin M. Keyes
ff32bacb2e test: FocusGained: let UI settle before sending input
This significantly increases the likelihood that the :echo'd text will
be included in the next UI flush, instead of being lost.
2017-09-05 15:01:07 +02:00
Justin M. Keyes
8716994cf0 lint 2017-09-05 15:01:07 +02:00
Justin M. Keyes
63c6470505 log: introduce context 2017-09-05 15:01:07 +02:00
Justin M. Keyes
6c53c3ee55 eventloop: restore redraw in cmdline K_EVENT handler
Restores behavior from commit: 02e86ef04cc1
2017-09-05 15:01:06 +02:00
Justin M. Keyes
d47b538f39 eventloop: do not redraw in cmdline K_EVENT handler
If :echo is done by an timer or event (such as FocusGained/FocusLost),
redrawcmdline() clobbers it.
2017-09-05 15:01:06 +02:00
Justin M. Keyes
4bf953cca4 test: FocusGained/FocusLost 2017-09-05 15:01:06 +02:00
Justin M. Keyes
f9af824832 test: use global_helpers.uname() instead of calling to nvim UUT 2017-09-05 15:01:06 +02:00
Justin M. Keyes
d30abd8857 eventloop: FocusGained: schedule the schedule
main_loop.fast_events does not manifest as K_EVENT, because it is
processed at a different stage than main_loop.events. In order to queue
into main_loop.events, we need to go through the threadsafe
loop_schedule(), which queues into main_loop.thread_events and
eventually main_loop.fast_events. _Then_ it is safe to directly queue
into main_loop.events.

This makes it more likely that the event is treated as K_EVENT.
2017-09-05 15:01:06 +02:00
Justin M. Keyes
46fdacc5b5 doc: eventloop 2017-09-05 15:01:06 +02:00
Justin M. Keyes
b6b6e4a96f eventloop: FocusGained: schedule event instead of pseudokey
closes #4840
closes #6164
2017-09-05 15:01:06 +02:00
Justin M. Keyes
ce852bab04 eventloop: K_EVENT does not finish mapping
The "mapping" tests added in 541dde36e3 were flawed:
- Unlike op-pending mode, RPCs are _blocked_ during map-pending. So
  a synchronous RPC like nvim_get_current_buf() waits until
  'timeoutlen', then the mapping is canceled.
- helpers.expect() also performs a blocking RPC, so again that must not
  intervene the two nvim_input() calls.

closes #6166
2017-09-04 22:51:04 +02:00
Vadim A. Misbakh-Soloviov
f050aaabbb tui: DECSCUSR workaround for Konsole (#7236)
closes #7235
2017-09-04 18:48:05 +02:00
Justin M. Keyes
3922237b14 test: lint 2017-09-04 10:46:10 +02:00
Matthew Malcomson
541dde36e3 eventloop: K_EVENT should not finish operator
normal_finish_command() and normal_prepare() assume that any pending
operator needs to be finished after any subsequent key.

Set `finish_op = false` in nv_event() to indicate that the pending
operator shouldn't be finished in normal_execute().

This is how nv_visual() indicates that 'v' or 'V' in operator-pending
mode should not finish the current pending operator.

fixes #5398
fixes #6166 (partially; mappings are still interrupted)
2017-09-04 08:20:04 +02:00
James McCoy
fec6ca7511 Merge pull request #7233 from yjhan96/vim-8.0.0125
vim-patch:8.0.0125
2017-09-03 12:58:41 -04:00
Albert Han
69a201d6c5 vim-patch:8.0.0125
Problem:    Not enough testing for entering Ex commands.
Solution:   Add test for CTRL-\ e {expr}. (Dominique Pelle)

eaaa9bbda6
2017-09-03 09:26:46 -04:00
KunMing Xie
11429f9429 vim-patch:8.0.0247 (#7232)
Problem:    Under some circumstances, one needs to type Ctrl-N or Ctrl-P twice
            to have a menu entry selected. (Lifepillar)
Solution:   call ins_compl_free(). (Christian Brabandt, closes vim/vim#1411)

aed6d0b81a
2017-09-03 10:58:32 +02:00
James McCoy
7bfa4406c1 Merge pull request #7227 from ckelsel/vim-8.0.0209
vim-patch:8.0.0209
2017-08-30 10:34:42 -04:00
ckelsel
0e13b15fde vim-patch:8.0.0209
Problem:    When using :substitute with the "c" flag and 'cursorbind' is set
            the cursor is not updated in other windows.
Solution:   Call do_check_cursorbind(). (Masanori Misono)

41baa7983a
2017-08-30 19:59:18 +08:00
James McCoy
5566f30006 Merge pull request #7218 from jamessan/stderr_collector-fix
provider: Remove dict attribute from stderr_collector
2017-08-26 15:06:48 -04:00
James McCoy
ffdddcd93d
provider: Remove dict attribute from stderr_collector
If an autoloaded function hasn't been resolved before it is used in
function(), the self dict will not be created which causes E725 when
calling the function.  Since self isn't being used in
provider#stderr_collector, we can remove the dict attribute to
workaround the self dict bug[0].

Closes #7115

[0]: https://groups.google.com/d/msg/vim_dev/I7AXOyv-P4o/DzbyOxDHBgAJ
2017-08-26 13:49:39 -04:00
Matthieu Coudron
f612e99db5 ci: XXX: permissive termclose_spec timer (#7217)
We probably need to revisit the process_stop() logic.
In the meantime this hack avoids CI noise.
2017-08-26 17:18:46 +02:00
Leonardo Brondani Schenkel
e1628fab00 tui: support new iterm2, iTerm2.app terminfo entries
iTerm2 got its own entry in Thomas Dickey's terminfo.src on 2017-08-16.
Make sure that the new entry is handled in the same way as the old entry.

closes #7209
closes #7214
2017-08-26 17:11:56 +02:00
Justin M. Keyes
6e7a8c3fe2 Merge #7081 from justinmk/rpcstop
rpc: close channel if stream was closed
2017-08-26 16:41:35 +02:00
James McCoy
46a4099dfb Merge pull request #7192 from llorens/vim-8.0.0092
vim-patch:8.0.0092
2017-08-25 11:21:36 -04:00
Justin M. Keyes
0f2873ce99 Merge #7205 from justinmk/win-wmain 2017-08-24 09:31:08 +02:00
Fredrik Fornwall
da84f7dcf9 tui: always use unibi_add_ext_str with unibi_get_ext_str #7204
When using an index returned by unibi_add_ext_str() we should
always use unibi_get_ext_str() and not rely on the index being
lower than unibi_string_begin_.

Closes #7206
2017-08-24 09:22:21 +02:00
Justin M. Keyes
02e5eafa86 win: expect utf8-encoded argv when built as a library 2017-08-24 08:42:45 +02:00
Justin M. Keyes
71df5dde6d win: wmain(): use utf16_to_utf8() #7060 2017-08-24 08:42:45 +02:00
Yuto Tokunaga
e5565891af win: wmain(): locale-independent argv (#7180)
fix #7060
2017-08-23 00:55:00 +02:00
Justin M. Keyes
85f3084e21 clipboard: disallow recursion; show hint only once (#7203)
- Show hint only once per session.
- provider#clipboard#Call(): prevent recursion
- provider#clear_stderr(): use has_key(), because :silent! is still
  captured by :redir.

closes #7184
2017-08-22 20:31:54 +02:00
Justin M. Keyes
7f7698649f Merge #6973 from teto/normal_hl 2017-08-22 20:01:50 +02:00
James McCoy
1d175f3448 Merge pull request #7201 from jamessan/vim-8.0.0308
vim-patch:8.0.0308,8.0.0325,8.0.0326,8.0.0437,8.0.0612,8.0.0680
2017-08-22 09:53:02 -04:00
Matthieu Coudron
5f6ad863c6 syntax.c: style
Converts some documentation to doxygen format + minor styling
improvements.
2017-08-22 12:37:59 +02:00
Matthieu Coudron
4d91369fd7 syntax.c: register 'Normal' highlight group
- :hi Normal works with -u NONE
- Makes HL_TABLE and ATTR_ENTYRY a function instead of a macro so that in can be used in gdb.
- Introduces ATTRENTRY_INIT to init attrentry_t
2017-08-22 12:37:59 +02:00
James McCoy
41d180abb4
vim-patch:8.0.0680
Problem:    Plugins in start packages are sourced twice. (mseplowitz)
Solution:   Use the unmodified runtime path when loading plugins (test by Ingo
            Karkat, closes vim/vim#1801)

07ecfa64a1
2017-08-21 20:29:49 -04:00
James McCoy
622c3454df
vim-patch:8.0.0612
Problem:    Package directories are added to 'runtimepath' only after loading
            non-package plugins.
Solution:   Split off the code to add package directories to 'runtimepath'.
            (Ingo Karkat, closes vim/vim#1680)

ce876aaa9a
2017-08-21 20:29:49 -04:00
James McCoy
fc7bf1c71d
vim-patch:8.0.0437
Problem:    The packadd test does not create the symlink correctly and does
            not test the right thing.
Solution:   Create the directory and symlink correctly.

644df41c44
2017-08-21 20:29:49 -04:00
James McCoy
651c6f9b6e
vim-patch:8.0.0326
Problem:    Packadd test uses wrong directory name.
Solution:   Use the variable name value. (Hirohito Higashi)

24f8f543d4
2017-08-21 20:29:49 -04:00
James McCoy
24a5564196
vim-patch:8.0.0325
Problem:    Packadd test does not clean up symlink.
Solution:   Delete the link. (Hirohito Higashi)

913727e567
2017-08-21 20:29:48 -04:00
James McCoy
a66eca78c2
vim-patch:8.0.0308
Problem:    When using a symbolic link, the package path will not be inserted
            at the right position in 'runtimepath'. (Dugan Chen, Norio Takagi)
Solution:   Resolve symbolic links when finding the right position in
            'runtimepath'. (Hirohito Higashi)

2f9e575583
2017-08-21 20:29:48 -04:00