Commit Graph

299 Commits

Author SHA1 Message Date
Jan Edmund Lazo
5dc5db1557 vim-patch:8.0.0755: terminal window does not have colors in the GUI
Problem:    Terminal window does not have colors in the GUI.
Solution:   Lookup the GUI color.
26af85d97b
2019-07-06 08:38:21 -04:00
Björn Linse
399eb49baf highlight: show "hi Group" message correctly when not using the screen
ext_message doesn't set msg_col. Add a space and let client deal with
wrapping. When using silent redirect show the unwrapped message form.

Removed check is already part of msg_advance()
2019-07-05 15:52:59 +02:00
Björn Linse
4c4d964eeb ui: add 'winblend' to support blending of floating windows
Also add `hi blend=` attribute to override transparency of indiviual attributes.
2019-06-25 18:08:21 +02:00
Jan Edmund Lazo
e7901301d3 vim-patch:8.1.0198: there is no hint that syntax is disabled for 'redrawtime'
Problem:    There is no hint that syntax is disabled for 'redrawtime'.
Solution:   Add a message.
0a6efcd27d
2019-06-24 23:40:18 -04:00
Jan Edmund Lazo
dfd050867b vim-patch:8.1.0437: may access freed memory when syntax HL times out
Problem:    May access freed memory when syntax HL times out. (Philipp Gesang)
Solution:   Clear b_sst_first when clearing b_sst_array.
95892c27b2
2019-06-24 23:34:17 -04:00
Andrej Zieger
83025f0028 vim-patch:8.1.0673: functionality for signs is spread out over several files
Problem:    Functionality for signs is spread out over several files.
Solution:   Move most of the sign functionality into sign.c. (Yegappan
            Lakshmanan, closes vim/vim#3751)
bbea47075c
2019-05-26 19:32:32 +02:00
Justin M. Keyes
51a59a0f62 lint 2019-05-25 13:51:30 +02:00
Justin M. Keyes
ae846b41df vim-patch:8.0.1496: VIM_CLEAR()
Problem:    Clearing a pointer takes two lines.
Solution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
            closes #2629)

vim-patch:8.0.1481
2019-05-25 10:07:05 +02:00
Jan Edmund Lazo
6a9a729674 vim-patch:8.1.1209: clever compiler warns for buffer being too small
Problem:    Clever compiler warns for buffer being too small.
Solution:   Make the buffer bigger (even though it's not really needed).
5431589d25
2019-04-27 00:13:46 -04:00
Jan Edmund Lazo
6dacfe7217 vim-patch:8.0.1133: syntax timeout not used correctly
Problem:    Syntax timeout not used correctly.
Solution:   Do not pass the timeout to syntax_start() but set it explicitly.
            (Yasuhiro Matsumoto, closes vim/vim#2139)
f3d769a585
2019-04-23 00:03:48 -04:00
Jan Edmund Lazo
bbc32fc831 lint 2019-04-23 00:03:47 -04:00
Jan Edmund Lazo
07a182c6b5 vim-patch:8.0.0647: syntax highlighting can make cause a freeze
Problem:    Syntax highlighting can make cause a freeze.
Solution:   Apply 'redrawtime' to syntax highlighting, per window.
06f1ed2f78
2019-04-23 00:03:47 -04:00
Björn Linse
81e84f2aae floats: add NormalFloat highlight and 'nonumber' default 2019-03-12 17:17:54 +01:00
Billy Su
241b905b13 vim-patch:8.0.0643: when a pattern search is slow Vim becomes unusable
Problem:    When 'hlsearch' is set and matching with the last search pattern
            is very slow, Vim becomes unusable.  Cannot quit search by
            pressing CTRL-C.
Solution:   When the search times out set a flag and don't try again.  Check
            for timeout and CTRL-C in NFA loop that adds states.
fbd0b0af68
2019-03-07 23:27:19 +08:00
Justin M. Keyes
01b4efe9d9 rename ui_is_external to ui_has (#9576) 2019-02-03 16:42:44 +01:00
Justin M. Keyes
a70fde1b45 build: enable -Wshadow
Note about shada.c:
- shada_read_next_item_start was intentionally shadowing `unpacked` and
  `i` because many of the macros (e.g. ADDITIONAL_KEY) implicitly
  depended on those variable names.
- Macros were changed to parameterize `unpacked` (but not `i`). Macros
  like CLEAR_GA_AND_ERROR_OUT do control-flow (goto), so any other
  approach is messy.
2019-01-02 21:06:37 +01:00
Justin M. Keyes
5a752c97d5 vim-patch:8.1.0098: segfault when pattern with \z() is very slow (#9283)
Problem:    Segfault when pattern with \z() is very slow.
Solution:   Check for NULL regprog.  Add "nfa_fail" to test_override() to be
            able to test this.  Fix that 'searchhl' resets called_emsg.
bcf9442307

closes #8788
2018-11-29 01:51:26 +01:00
Justin M. Keyes
3283db4ecb diff/highlight: do not overlay low-priority CursorLine
ref #6380
2018-11-27 01:14:55 +01:00
Björn Linse
e598811e76 ui: disable clearing almost everywhere
Avoid clearing the screen in most situations. NOT_VALID should be
equivalent to CLEAR unless some external force messed up the terminal,
for these situations <c-l> and :mode will still clear the screen.

Also eliminate some obsolete code in screen.c, that dealt with that in
vim drawing window 1 can mess up window 2, but this never happens in
nvim.

But what about slow terminals? There is two common meanings in which
a terminal is said to be "slow":

Most commonly (and in the sense of vim:s nottyfast) it means low
bandwidth for sending bytes from nvim to the terminal. If the screen is
very similar before and after the update_screen(CLEAR) this change
should reduce bandwidth. If the screen is quite different, but there is
no new regions of contiguous whitespace, clearing doesn't reduce
bandwidth significantly. If the new screen contains a lot of whitespace,
it will depend of if vsplits are used or not: as long as there is no
vsplits, ce is used to cheaply clear the rest of the line, so
full-screen clear is not needed to reduce bandwith. However a left
vsplit currently needs to be padded with whitespace all the way to the
separator. It is possible ec (clear N chars) can be used to reduce
bandwidth here if this is a problem. (All of this assumes that one
doesn't set Normal guibg=... on a non-BCE terminal, if you do you are
doomed regardless of this change).

Slow can also mean that drawing pixels on the screen is slow. E-ink
screens is a recent example. Avoiding clearing and redrawing the
unchanged part of the screen will always improve performance in these
cases.
2018-10-22 11:59:02 +02:00
Jan Edmund Lazo
2bf1aa5628 vim-patch:8.0.1777: cannot cleanup before loading another colorscheme (#9104)
Problem:    Cannot cleanup before loading another colorscheme.
Solution:   Add the ColorSchemePre autocommand event.
60a68362aa
2018-10-11 08:27:37 +02:00
Björn Linse
43823acae2 ui: rename ext_newgrid to ext_linegrid 2018-10-01 21:24:15 +02:00
Björn Linse
5487624730 startup: don't erase screen on :hi Normal during startup
NB: existing `color default` test was actually enough to trigger the bug,
when ext_newgrid=false is used. I created the `:hi Normal` test as
I thought the builtin colors wouldn't set Normal (unless 'bg' is changed)
But as the root cause actually comes from `:hi Normal`, it makes sense
to still add the separate test (if `color default` here gets optimized to
become a no-op, or something).
2018-09-20 12:25:31 +02:00
Björn Linse
bd8d43c6fe startup: wait for embedder before executing startup commands and files
Give embeders a chance to set up nvim, by processing a request before
startup. This allows an external UI to show messages and prompts from
--cmd and buffer loading (e.g. swap files)
2018-09-18 19:22:16 +02:00
ZviRackover
d110c6d790 lint: cleanup after parent commits 2018-08-16 07:39:48 +03:00
ZviRackover
30392b6356 Remove has_mbyte from lines near changes in parent commit 2018-08-16 06:03:49 +03:00
ZviRackover
2bddc4ca54 Remove occurences of mb_head_off 2018-08-15 22:02:33 +03:00
Björn Linse
fa4c260100 cursor_shape: use attribute ids instead of syntax ids
As attribute ids is the convention in the UI protocol
Also remove non-threadsafe calls in tui.c to syntax module.
2018-08-13 13:35:35 +02:00
ZviRackover
071aab5148 Remove some occrrences of enc_utf8 and has_mbyte
Removing uses and related dead code in the locallity of changes of
the two parent commits.
2018-08-06 20:48:07 +03:00
ZviRackover
10b6afd652 Remove all occurences of the mb_ptr2char macro
First step towards implemening issue #7401.

The same can be done for all deprecated mb_ functions in follow-up
patches.
2018-08-06 20:48:07 +03:00
Justin M. Keyes
7a4d167a92 Merge #8742 vim-patch:8.0.0791,0831,1072,1078,1088 2018-08-04 20:12:48 +02:00
Jan Edmund Lazo
c83ecee885 syntax: syn_pattern.sp_syncing is bool 2018-07-30 18:09:34 -04:00
Jan Edmund Lazo
1c5eee3c91 syntax: add const to get_syntax_attr() params 2018-07-30 16:19:38 -04:00
Jan Edmund Lazo
8f647cf03c syntax: add const to syn_finish_line() params,vars 2018-07-30 15:29:22 -04:00
Jan Edmund Lazo
eafcfb2fb5 syntax: did_header is bool
Refactor all affected functions:
- add const
- declare and initialize on same line
- update boolean declarations from int with bool
2018-07-29 20:28:44 -04:00
Jan Edmund Lazo
3feabcacb0 syntax: scl_id is int 2018-07-29 08:20:00 -04:00
Jan Edmund Lazo
3e6d3bf3bd vim-patch:8.0.1088: occasional memory use after free
Problem:    Occasional memory use after free.
Solution:   Use the highlight table directly, don't keep a pointer.
414168d97f
2018-07-29 07:52:45 -04:00
Jan Edmund Lazo
f0ca2283b0 vim-patch:8.0.1078: using freed memory with ":hi Normal"
Problem:    Using freed memory with ":hi Normal".
Solution:   Get "item" again after updating the table.
b4ea1914b8
2018-07-29 07:52:45 -04:00
Jan Edmund Lazo
6b7b56dabe vim-patch:8.0.1072: :highlight command causes a redraw even when nothing changed
Problem:    The :highlight command causes a redraw even when nothing changed.
Solution:   Only set "need_highlight_changed" when an attribute changed.
99433291b1
2018-07-29 07:52:45 -04:00
Jan Edmund Lazo
0c0318f8a7 vim-patch:8.0.0831: with 8 colors the bold attribute is not set properly
Problem:    With 8 colors the bold attribute is not set properly.
Solution:   Move setting HL_TABLE() out of lookup_color. (closes vim/vim#1901)
12d853fae1

Use TriState on lookup_color() to avoid 'NOLINT' comments.
2018-07-29 07:52:45 -04:00
Jan Edmund Lazo
5af90e2ee7 vim-patch:8.0.0791: terminal colors depend on the system
Problem:    Terminal colors depend on the system.
Solution:   Use the highlight color lookup tables.
b41bf8e6b4
2018-07-29 07:52:45 -04:00
Jan Edmund Lazo
51f939e912 syntax: refactor get_id_list()
Add const to parameters and variables.
Declare and init variables on same line.
Use `sizeof(*ptr)` to calculate size for malloc().
2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
c18a1b9034 syntax: refactor syn_combine_list()
Add const on parameters and variables.
Update declarations to avoid typecasts.
Use `sizeof(*ptr)` for malloc() to reduce effect of type changes.
ie. short to int16_t

Update syn_compare_stub() variable declarations for consistency.
2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
6646502bbb syntax: syn_cluster_T.scl_list is int16_t* 2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
8888a6ce80 syntax: refactor syn_current_attr()
Declare and initialize variables on same line if possible.
Add const to parameters and variables.
Use bool for any parameter,variable using TRUE/FALSE macros.
Replace 'short' type with 'int16_t'.
2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
db4bddb770 syntax: use const on check_keyword_id() variables
Declare and initialize variables as close as possible.
Use const pointers without changing semantics if possible.
2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
eb7aa76b13 syntax: current_next_list is int16_t* 2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
095ddcb548 syntax: update types of stateitem_T members
Replace 'short' with 'int16_t' to match lint changes from 8.0.1541.
Update ID_LIST_ALL to match type of stateitem_T.si_cont_list.
2018-07-29 07:51:51 -04:00
Jan Edmund Lazo
6f5eadcdac syntax: use const on syn_list_keywords() variables 2018-07-29 07:51:50 -04:00
Jan Edmund Lazo
e6993f2491 syntax: use const on copy_id_list() params,vars 2018-07-29 07:51:50 -04:00
Jan Edmund Lazo
ef3cbd91cb syntax: use const on add_keyword() params,vars 2018-07-29 07:51:50 -04:00