Compare commits

...

8401 Commits

Author SHA1 Message Date
5b839ced69 NVIM 0.6.1 (2021-12-31)
Bug Fixes

  * api: allow nvim_buf_set_extmark to accept end_row key #16686 1b54344
  * diagnostic: assert that diagnostics have line number and column #16687 9dae939
  * diagnostic: clamp diagnostics on negative line numbers #16497 096f841
  * diagnostic: escape special chars in file names #16588 beac24d
  * diagnostic: respect "if_many" source option for virtual text #16697 060eeaa
  * diagnostic: set effective buffer number for DiagnosticChanged autocmd #16485 84784a8
  * diagnostic: set effective buffer number in autocmd (again) #16590 08ddfa9, closes #16474
  * lua: do not cast offset to char_u 93f1ec0
  * lsp: avoid attaching to unloaded buffers #16726 0088994
  * lsp: call config on_exit handler before context is cleared #16781 571609f
  * lsp: fix `nil`-index behavior for UTF-8 in `_str_*index_enc` methods #16785 03bd914
  * lsp: handle offset encoding #16783 7b60ec7
  * lsp: progress handlers should return vim.NIL on error #16476 fb11ef0
  * options: disallow empty 'fdc' and 'scl' #16776 37a00be
  * quickfix: avoid O(N^2) when filling from string typval #16663 aa0ddc6
  * screenpos, float: add top and left border adjustment 8f68548
  * terminal: fix resize crash with pending scrollback #16665 ae249d8
  * ui: close floating window on BufLeave event #16664 785bace
  * uri: change scheme pattern to not include the comma character #16798 0e96f7d

Features

  * lsp,diagnostic: open folds in jump-related functions #16784 ee9e342
  * lsp: add buf_detach_client #16741 ec101b9
  * lsp: use `vim.ui.select` for selecting lsp client #16782 14357c8
  * runtime: new checkhealth filetype #16708 09306f0
2021-12-31 18:02:21 +01:00
844872cc0a chore: fix typos in doc and Lua files
Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com>
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: Christoph Hasse <hassec@users.noreply.github.com>
Co-authored-by: Alef Pereira <ealefpereira@gmail.com>
Co-authored-by: AusCyber <willp@outlook.com.au>
Co-authored-by: kylo252 <59826753+kylo252@users.noreply.github.com>
2021-12-29 17:02:46 +01:00
0e96f7d04c fix(uri): change scheme pattern to not include the comma character (#16798)
(cherry picked from commit efbe306d2d)

Co-authored-by: Dmytro Meleshko <dmytro.meleshko@gmail.com>
2021-12-26 16:39:03 -05:00
1cc63abf4a Merge pull request #16667 from neovim/backport-16420-to-release-0.6
[Backport release-0.6] vim-patch:8.1.2136,8.2.2465
2021-12-26 18:36:04 +01:00
9f51da3442 Merge pull request #16679 from neovim/backport-16134-to-release-0.6
[Backport release-0.6] fix(screenpos, float): add top and left border adjustment
2021-12-26 18:35:25 +01:00
857678c2ec refactor(lsp): remove usage of deprecated function (#16787)
(cherry picked from commit bb31d3f21a)

Co-authored-by: Gregory Anders <greg@gpanders.com>
2021-12-25 11:42:29 -05:00
03bd9147f0 fix(lsp): fix nil-index behavior for UTF-8 in _str_*index_enc methods (#16785)
Previously, the `_str_utfindex_enc` and `_str_byteindex_enc` helper functions would return `nil` when `offset_encoding == "utf-8"` and `index == nil`. Clearly, this doesn't reflect the expected behavior of the functions they're wrapping which would return the length of the line in this case. This should fix behavior with servers that use UTF-8 `offset_encoding` when applying text edits, formatting a range, and doing range code actions (though this isn't tested currently).

(cherry picked from commit 5f4c501cf1)

Co-authored-by: Rishikesh Vaishnav <rishhvaishnav@gmail.com>
2021-12-25 10:52:45 -05:00
ee9e3420fd feat(lsp,diagnostic): open folds in jump-related functions (#16784)
(cherry picked from commit ddf545c152)

Co-authored-by: Dmytro Meleshko <dmytro.meleshko@gmail.com>
2021-12-25 10:43:28 -05:00
7b60ec79ea fix(lsp): handle offset encoding (#16783)
Co-authored-by: black-desk <clx814727823@gmail.com>
Co-authored-by: Mathias Fußenegger <mfussenegger@users.noreply.github.com>
(cherry picked from commit 4687d853a5)

Co-authored-by: Rishikesh Vaishnav <rishhvaishnav@gmail.com>
2021-12-25 10:27:55 -05:00
14357c83c5 feat(lsp): use vim.ui.select for selecting lsp client (#16782)
(cherry picked from commit 43cdcba476)

Co-authored-by: Anshuman <amedhi@connect.ust.hk>
2021-12-25 10:17:57 -05:00
571609fb89 fix(lsp): call config on_exit handler before context is cleared (#16781)
The on_exit handler provided to the client configuration is called after
the client's context is cleared (e.g. which buffers the client was
attached to). Calling the handler sooner allows these handlers to access
the client object and do their own cleanup with the full context.

(cherry picked from commit 5ab49430ee)

Co-authored-by: Gregory Anders <greg@gpanders.com>
2021-12-25 10:10:18 -05:00
37a00be7c0 fix(options): disallow empty 'fdc' and 'scl' (#16776)
Empty string values for these options aren't actually allowed, but
check_opt_strings allows empty string options.

It so happens that 'scl' handles empty string like "auto", but empty 'fdc'
causes glitchiness (win_fdccol_count returns an incorrect value).

Just disallow empty string values for these options completely.
2021-12-24 22:38:15 -07:00
09306f07c4 feat(runtime): new checkhealth filetype (#16708) 2021-12-23 08:38:56 -07:00
ec101b9fd9 feat(lsp): add buf_detach_client (#16741)
This allows the user to detach an active buffer from the language
client. If no clients remain attached to a buffer, the on_lines callback
is used to cancel nvim_buf_attach.

(cherry picked from commit 6db2155032)

Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
2021-12-21 11:12:58 -08:00
222d1414dc fix(lsp): correctly align start and end range to codepoints during incremental sync (#16670)
Closes #16624

Fixes two issues with aligning the start position and end position to
codepoints when calculating the start and end range.

When aligning the start position:
* use aligned byte index to calculate character index rather than 
  the unadjusted byte

When aligning the end position:
* do not adjust the end byte if it falls on a UTF-8 codepoint
* align byte to the first byte of the next codepoint rather than the
  last byte of the current codepoint
* compute character character end range on the aligned byte index

This commit also adds additional test coverage, including multibyte operations
that previously failed before this commit.
2021-12-21 09:24:50 -08:00
7f4fa077cd fix: do not cast offset to char_u (#16672)
[Backport release-0.6] fix: do not cast offset to char_u
2021-12-19 13:26:59 -08:00
00889948dd fix(lsp): avoid attaching to unloaded buffers (#16726)
Closes https://github.com/neovim/neovim/issues/16562 https://github.com/neovim/neovim/issues/16249 https://github.com/neovim/neovim/issues/16297

* buf_attach_client can be called on an unloaded buffer
* on_attach will prematurely fail, while the language server client
  tracks this buffer as attached
* The language server client will track this buffer as attached despite
  textDocument/didChange notifications not being sent to the server
* Instead, check if the buffer is loaded and return early, warning via
  the lsp logger that buf_attach_client was called on an invalid buffer

(cherry picked from commit 6d63cb8f6a)

Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
2021-12-19 13:24:08 -08:00
1bb861c7a1 Merge pull request #16713 from neovim/backport-16707-to-release-0.6
[Backport release-0.6] test: allow excluding functional/unti tests using TEST_FILTER_OUT
2021-12-18 13:39:00 -05:00
d547d874af test: allow excluding functional/unit tests using TEST_FILTER_OUT
Although this can already be done using `BUSTED_ARGS`, it complements
our existing shortcut of `TEST_FILTER.`

[skip ci]

(cherry picked from commit 267ec67fab)
2021-12-18 18:16:03 +00:00
060eeaa14c fix(diagnostic): respect "if_many" source option for virtual text (#16697)
The `prefix_source` function only evaluates the sources from the
diagnostics passed to it; however, because each namespace draws its own
virtual text, its diagnostics will never contain more than a single
source (by definition). This requires changing the semantics of what
"if_many" means from "multiple sources in a single 'batch' of
diagnostics" to "multiple sources of all diagnostics within a buffer".
2021-12-17 19:44:16 -07:00
9dae939b1f fix(diagnostic): assert that diagnostics have line number and column (#16687)
Line number and column are required and much of the diagnostic API
assumes that these are both present. When one of the two is missing,
cryptic errors pop up in other parts of the diagnostic subsystem.
Instead, assert that diagnostics are well formed when they are entered
into the cache, which provides a clearer error.
2021-12-17 12:55:39 -07:00
8c6a4fab66 refactor(diagnostic): remove hack (#16689)
No longer required since #16548.
2021-12-16 12:18:45 -07:00
1b54344c11 fix(api): allow nvim_buf_set_extmark to accept end_row key (#16686)
nvim_buf_get_extmark uses "end_row" rather than "end_line" in its
'details' dict, which means callers must modify the key names if they
want to re-use the information. Allow nvim_buf_set_extmark to take
"end_row" as an alias to "end_line" to make this more compatible.

See [1].

[1]: https://github.com/neovim/neovim/pull/15011#discussion_r665336968
2021-12-16 11:05:58 -07:00
8f68548384 fix(screenpos, float): add top and left border adjustment
(cherry picked from commit ffe3003e02)
2021-12-16 11:42:14 +00:00
25da2430f9 chore: improve naming consistency in str_utf_start
(cherry picked from commit fcbffcd92a)
2021-12-15 21:57:11 +00:00
93f1ec0a59 fix: do not cast offset to char_u
* str_utf_start/end both cast the offset into the utf string
to a char_u, a pointer + long is well-defined and the cast is
unnecessary. This previously resulted in issues for offsets greater than
256.

(cherry picked from commit 1a887293ef)
2021-12-15 21:57:10 +00:00
5c8e5432c0 docs(options): mention how to disable inccommand preview (#16671)
Co-authored-by: Hitarth Thummar <47787284+gtlsgamr@users.noreply.github.com>
2021-12-15 22:43:45 +01:00
e86997a812 vim-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.
92bb83e41c

Test_cursorhold_insert timer's 100ms delay was already LoadAdjusted, but change
to 200ms (still LoadAdjust) to match Vim anyway.

(cherry picked from commit dac52e6d04)
2021-12-15 17:27:32 +00:00
a0ebba7052 vim-patch:8.1.2136: using freed memory with autocmd from fuzzer
Problem:    using freed memory with autocmd from fuzzer. (Dhiraj Mishra,
            Dominique Pelle)
Solution:   Avoid using "wp" after autocommands. (closes vim/vim#5041)
ec66c41d84

Nvim doesn't use Vim's terminal implementation.
Despite this, Nvim has its own *exclusive* way of crashing here.

Requires 'winwidth' > winwidth() and 'nowinfixwidth' to crash; adjust
the test ('nowfw' is the default, but ensure its disabled anyway).

(cherry picked from commit c366c944c2)
2021-12-15 17:27:32 +00:00
ae249d81fb fix(terminal): fix resize crash with pending scrollback (#16665)
refresh_scrollback assumes pending scrollback rows exist only if the
terminal window height decreased (or the screen was full).

However, after accumulating scrollback, it's possible in some cases for
the terminal height to increase before refresh_scrollback is called via
invalidation (especially when the terminal buffer isn't initially
displayed in a window before nvim_open_term), which may crash.

As we'll have enough room for some scrollback rows, just append them to
the top of the buffer until it fills the window, then continue with the
previous logic for any remaining scrollback rows if necessary.
2021-12-15 08:29:26 -07:00
785baceaee fix(ui): close floating window on BufLeave event (#16664)
When buffer is visible in two splits simultaneously, BufHidden event is
not triggered, causing the floating window to remain on screen after
switching to another buffer.

Remove BufHidden event from close_events defaults, and close the window
if we changed the buffer to something other than the buffer that spawned
the floating window or the floating window buffer itself.
2021-12-15 08:12:35 -07:00
aa0ddc6690 fix(quickfix): avoid O(N^2) when filling from string typval (#16663)
When filling a quickfix/loclist from a string-typed VimL variable, the
complexity is O(N^2) in the number of lines in the variable.

The problem is caused by using `xstrlcpy(3)` to copy the characters from
the current position up to the next newline into the quickfix/loclist
buffer in a loop.

strlcpy(3) returns the length of `src`, so by necessity it has to
compute `strlen(src)`. This means scanning the full rest of the typval
on every iteration while only copying a small fraction (up to the next
'\n').

This is not a problem whenever the srclen-to-copylen ratio is close to
1, which it usually is. But not in this case. Since we already
calculated exactly how many bytes we want to copy, we should be using
memcpy(3).

This problem is not present in Vim, as it uses `vim_strncpy`, a
`strncpy(3)`-alike, which stops at either `\0` or `n`, whichever comes
first.

The quickfix/loclist window can be filled using a:

  1. File (used by commands like :grep/:make/... to source directly
     from their errorfile)
  2. Buffer (used by :cbuffer and its variants)
  3. Typval
   a. String (used by :cexpr and its variants)
   b. List of strings (used by setqflist(), setloclist(), :cepxr and its
   variants)

This commit optimizes case (3a), especially when the typval is a long
string.

The pathological path is triggered by (e.g.) :grep enhancements as found
in https://gist.github.com/romainl/56f0c28ef953ffc157f36cc495947ab3:

    function! Grep(...)
        return system(join([&grepprg] + a:000), ' '))
    endfunction
    :cgetexpr Grep('foo')

It would've been better for Neovim to use `systemlist` here, before this
commit.
2021-12-15 08:08:53 -07:00
2cd272decb refactor: replace deprecated lua functions with their new versions (#16609)
Calling vim.lsp.buf.definition() sometimes gives a deprecation warning.
This will likely solve that.

Co-authored-by: Christian Clason <christian.clason@uni-due.de>
2021-12-10 13:24:49 -07:00
08ddfa9851 fix(diagnostic): set effective buffer number in autocmd (again) (#16590)
Follow up to #16474.
2021-12-08 21:15:04 -07:00
beac24d6f3 fix(diagnostic): escape special chars in file names (#16588) 2021-12-08 19:20:55 -07:00
5dcf2c77a9 refactor(diagnostic): remove bufnr parameter from open_float (#16587)
The overwhelming majority of use cases for `open_float` are to view
diagnostics from the current buffer in a floating window. Thus, most use
cases will just `0` or `nil` as the first argument, which makes the
argument effectively useless and wasteful.

In the cause of optimizing for the primary use case, make the `bufnr`
parameter an optional parameter in the options table. This still allows
using an alternative buffer for those that wish to do so, but makes the
"primary" use case much easier.

The old signature is preserved for backward compatibility, though it can
likely be fully deprecated at some point.
2021-12-08 18:46:30 -07:00
ce4c8010cc docs(lsp): fix resolve_capabilities docstring (#16580) 2021-12-08 11:02:14 -07:00
270f71b571 docs: update missing help sections from main help page (#16578)
Also replace non-existent help section remote.txt to remote_plugins.txt
2021-12-08 10:00:25 -07:00
3c0f239c3e ci: install doxygen with conda instead of apt (#16576)
This provides a newer version of Doxygen (1.9.0 or later)
that fixes a bug in the documentation generator.

Closes #16498
2021-12-08 09:30:16 -07:00
1d32521135 refactor(diagnostic): add warning to deprecated functions (#16575) 2021-12-08 09:15:24 -07:00
bd057d4b40 docs(lsp): re-add client.requests documentation (#16533)
Added in this PR: d1c470957b (diff-6b5f3071d65558aab177912061ac6a2f5312660655a449276c83697686f28e72R627)

Removed by regeneration in this PR: 2d340a3746 (diff-6b5f3071d65558aab177912061ac6a2f5312660655a449276c83697686f28e72L631)

(cherry picked from commit ae9c9b817d)

Co-authored-by: Anshuman <amedhi@connect.ust.hk>
2021-12-05 14:37:08 +01:00
096f8418c5 fix(diagnostic): clamp diagnostics on negative line numbers (#16497)
Closes https://github.com/neovim/neovim/issues/16492

Despite having logic for setting the maximum diagnostic line
number to at minimum 0, previously the conditional statement only
checked if lnum and end_lnum were greater than the line count.

Fix: also check if lnum and end_lnum are less than 0.

(cherry picked from commit 2799463ba2)

Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
2021-12-02 07:02:30 -08:00
84784a8391 fix(diagnostic): set effective buffer number for DiagnosticChanged autocmd (#16485)
This enables use of <abuf> in autocommand handlers for
DiagnosticChanged.
2021-12-01 07:35:46 -07:00
fb11ef0aad fix(lsp): progress handlers should return vim.NIL on error (#16476) 2021-12-01 07:17:15 -05:00
faf3159ab0 Merge pull request #16479 from jamessan/fragile-server-notifications-test
[Backport release-0.6] test(api): mark "notify cancels stale events on channel close" fragile
2021-11-30 22:41:15 -05:00
4342b81e8d test(api): mark "notify cancels stale events on channel close" fragile
This is already skipped in all CI environments, so it should also be
skipped in environments that don't like fragile tests.  Since there's no
convenient way to express these concisely, add the explicit fragile
skip.
2021-11-30 22:27:34 -05:00
a4699892af version bump 2021-11-30 18:40:33 +01:00
e65b724451 NVIM 0.6.0
BREAKING CHANGES

* 32-bit windows builds are no longer provided.

* **build deps**: use libuv 1.42.0 upstream for WIN32 (#15889) (f6c0a37), closes #15889
  * removes Windows 7 support
  * removes support for mouse and alternate buffers in TUI for Windows 8 and 8.1

* **lsp/diagnostic:** highlight groups and signs for LSP diagnostics renamed (e.g. `LspDiagnosticsDefaultWarning` to `DiagnosticWarn`) (a5bbb93)

* **diagnostic:** make DiagnosticChanged a first class autocmd (#16098) (150a592), closes #16098
  * `au User LspDiagnosticsChanged` autocommands are not supported. Use the new first-class DiagnosticChanged event instead.

* **lua**: `register_keystroke_callback` => `on_key` (#15460) (69fe427)
  * **note**: this breaking change was included in 0.5.1

FEATURES

* **:source, nvim_exec:** defer script item creation until s:var access (da9b0ab)
* **:source, nvim_exec:** support script-local variables (d4ed51e), closes #13143 #11507
* **lua:** add trimempty optional parameter to vim.split (5fa26e2)
* **lua:** add vim.str_utf_{start,end} (#16129) (2230b57)
* **lua:** add vim.str_utf_pos function (d752cbc)
* **lsp:** aggregate code actions from all clients (#15121) (c36df20)
* **api:** add lua C bindings for xdiff (#14536) (3d3c0c6)
* **api:** evaluate statusline string #16020 (9086938)
* **api:** named marks set, get, delete #15346 (49fdc62)
* **api:** nvim_get_chan_info: include "argv" for jobs #15537 (0603eba), closes #15440
* **api:** win_viewport also sends line_count #15613 (086631c)
* **api:** support :terminal input callback in lua (9e41e82)
* **ci:** add backport PR action (#14766) (6cc456d)
* **decorations:** allow more than one stacked highlight in a virt_text (1495d36)
* **decorations:** support virtual lines (392c658) (8d7816c)
* **diagnostic:** move vim.lsp.diagnostic to vim.diagostic and support other sources (a5bbb93)
* **diagnostic:** add 'prefix' option to open_float (#16321) (3c74ba4)
* **diagnostic:** add option to include diagnostic source (d43151e)
* **diagnostic:** allow 'prefix' option to return highlight (cc48837)
* **diagnostic:** allow customized diagnostic messages (#15742) (d999c96)
* **diagnostic:** match(), tolist(), fromlist() #15704 (e61ea77)
* **diagnostic:** update jumplist on goto_next/prev (#15942) (b55944e)
* **diagnostic:** use `scope = 'line'` by default for `open_float()` (#16456) (217f9f8), closes #16453
* **diagnostic:** support severity_sort (32c0631)
* **checkhealth:** provide function for command line completion (8b43b07)
* **f_chansend:** support Blob data argument (7e9ea08)
* **job:** add parameter to close stdin (eb7f24b)
* **keywordprg:** use :terminal for external commands #15398 (a90513c), closes #2995 #2761
* **lsp:** add 'focus' option to open_floating_preview (#16465) (fff8827)
* **lsp:** add a registry for client side code action commands (6c03601)
* **lsp:** add client command support to codelens (#15820) (19a77cd)
* **lsp:** add codeAction/resolve support (#15818) (ec4731d)
* **lsp:** add exit_timeout flag (#16070) (80456cf)
* **lsp:** add formatexpr (#16186) (52fa1d2)
* **lsp:** add lsp healthcheck (e268026)
* **lsp:** add per-client commands (#16101) (519d8de)
* **lsp:** add tagfunc (#16103) (f940e7a)
* **lsp:** add warning message for large log size (e6777a7)
* **lsp:** allow configuring zindex for floating windows (#15086) (c487a73)
* **lsp:** allow diagnostics to be disabled for a buffer (#15134) (1aeb945)
* **lsp:** allow root_dir to be nil (#15430) (ff0833c)
* **lsp:** highlight active parameter in signature help (#15018) (af26371)
* **lsp:** improve vim.lsp.util.apply_text_edits (#15561) (41cfba6)
* **lsp:** include original request params in handler ctx (187579f)
* **lsp:** jump to diagnostics by position (#14795) (ea39ff5)
* **lsp:** Make line diagnostics display prettier (e43dbfd)
* **lsp:** make list handlers configurable (#15199) (3e00d4f)
* **lsp:** support textDocument/prepareRename (#15514) (c1f573f)
* **lsp:** use uv_spawn to check if server executable (#16430) (1a60580)
* **lsp:** use vim.ui.select() in codelenses (#16004) (e7ea54a)
* **lsp:** utilize textEdit.range for startbyte in omnifunc (#15957) (e9d6f7c)
* **lua:** add lua-cjson as vendored dependency (8decc9f)
* **lua:** add vim.mpack for msgpack support in lua (eaf661d)
* **lua:** allow passing handles to vim.b/w/t (6c5e7bd)
* **lua:** convert binary string with NULs to Blob (de9df82)
* **lua:** document support of packages with v:lua syntax (9dd371b)
* **lua:** enable stack traces in error output (#16228) (03b805a)
* **lua:** expose lua-cjson as vim.json (30fed27)
* **lua:** make vim.mpack support vim.NIL and vim.empty_dict() (0f59666)
* **match:** allow hl group to be defined after :match command (fca52f5)
* **msgpack:** convert Blobs to BIN strings (af6f454)
* **health:** support lua healthchecks (9249dcd), closes #15632
* **shada:** restore Blob globals properly (ef729fb)
* **terminal:** TermClose: set exit code in v:event.status #15406 (50b30de), closes #4713
* **treesitter:** add next, prev sibling method (1400841)
* **treesitter:** allow to set highlight priority for queries (242608e)
* **ui:** add `opt.kind` to `vim.ui.select` (#15838) (7ae86c1)
* **ui:** add vim.ui.input and use in lsp rename (#15959) (16d4af6)
* **ui:** add vim.ui.select and use in code actions (#15771) (63fde08)
* **vim script:** support calling v:lua as a method (b2994e3)

CHANGES

* **defaults:** auto-create backup dir (4600193)
* **defaults:** inccommand=nosplit #15395 (7215d35)
* **defaults:** set undo points in <C-U> and <C-W> (#15400) (2cb8db3)
* **defaults:** limit syntax cost on CmdwinEnter #15401 (622a36b), closes #6289 #6399
* **defaults:** map CTRL-L to search highlights, update diffs #15385 (0aa8128)
* **defaults:** map Y to y$ #13268 (5a111c1), closes #416 #6289
* **defaults:** remove 'options' from viewoptions #15397 (3954537), closes #6289
* **defaults:** set hidden (f6c72b7)
* **defaults:** set nojoinspaces (d417e67)
* **defaults:** switchbuf=uselast #15394 (4ba7495)
* **runtime:** add packages as `"/pack/*/start/*"` patterns to &rtp (9df7e02)
* **startup:** load builtin plugins with --clean #15893 (c7a63f3), closes #15605
* **terminal:** set cursorlineopt=number in terminal mode (#15493) (c61a386)
* **window:** skip non-focusable floats for :windo (#15378) (e8631cb)

PERFORMANCE IMPROVEMENTS

* **api:** avoid spurious allocations when converting small objects (705e8f1)
* **highlight:** use a hashtable for highlight group names (bb4b4d7)
* **lua:** optimize vim.deep_equal #15236 (4b452d4)
* **lua:** don't use regexes inside lua require'mod' (ea2023f), closes #15147 #15497
* **lsp:** improve json deserialization performance (#15854) (912a6e5)
* **map:** reduce double pointer indirection to single pointer indirection (9e651a9)
* **treesitter:** avoid string lookup of highlight name in hot loop (2460f0a)

FIXES

* **:source, nvim_exec:** handle Vimscript line continuations #14809 (6188926), closes #14807
* **:source:** copy curbuf lines to memory before sourcing #15111 (afdc9e6)
* allow str_utfindex second argument to be an explicit nil  (#16448) (512ec46)
* **api:** fix crash after set_option_value_for() #15390 (8b0e6cc), closes #14097 #13577
* **api:** fix nvim_buf_set_extmark (2338345)
* **autocmd:** fix conditions in block_autocmds, unblock_autocmds #15372 (29712ae), closes #6279
* **buffer_updates:** cleanup test behavior (54b2c68)
* **buffer_updates:** handle :delete of the very last line in buffer (8335e26)
* **buffer_updates:** handle :sort of already sorted buffer (ef687d3)
* **buffer_updates:** make `lockmarks` not affect extmarks and buffer updates. fixes #12861 (7d171b1)
* **bufupdates:** send correct updates for visual paste (1423146)
* **build:** add an env var to re-enable the colors (5087347)
* **build:** call find_package(Threads) before using its variables (f446ab3)
* **build:** export symbols on Windows (aa644b7)
* **build:** fix build failure in MinGW (0503e17)
* **build:** make vendored libmpack and libmpack-lua build properly (2a08aef)
* **channel:** throw error if sending to internal channel w/o terminal (3b89fee)
* **checkhealth:** duplicate checks if module name has "-" #15935 (a36c6e5)
* **checkhealth:** mitigate issues with duplicate healthchecks #15919 (acd5e83), closes #15259
* **ci:** disable broken test on openbsd on all CI due to resource constraints (a3e2636)
* **ci:** re-run GHA for ready_for_review events (#15377) (c6ef956)
* **decorations:** crash when :bdelete (extmark_free_all) after clear_namespace (cd353aa), closes #15212
* **defaults:** "syntax sync maxlines=1" on CmdwinEnter #15552 (5f8518b), closes #15401
* **defaults:** do not map Y in visual-mode #15387 (54726e8), closes #13268
* **diagnostic:** allow floats to be focusable (#16093) (427bac6)
* **diagnostic:** change default severity_sort order (938ed45)
* **diagnostic:** clamp line numbers in setqflist and setloclist (5b0d8f8)
* **diagnostic:** correctly handle folder level diagnostics (f87779a)
* **diagnostic:** deepcopy diagnostics before clamping line numbers (2abc799)
* **diagnostic:** do not focus floats in goto functions (#16433) (b5b025f)
* **diagnostic:** don't clamp line numbers in setqflist (0341c68)
* **diagnostic:** don't return nil when callers expect a table (#15765) (057606e)
* **diagnostic:** don't use nil col if missing from qflist (#16357) (5e46f64)
* **diagnostic:** error on invalid severity value (#15965) (d5dd0aa)
* **diagnostic:** fix navigation with diagnostics placed past end of line (34bb5fa)
* **diagnostic:** fix option resolution in open_float (#16229) (fd34784)
* **diagnostic:** fix wrong data type in setqflist() (3fd1450)
* **diagnostic:** get line count per buffer when clamping (c59f200)
* **diagnostic:** handle an unknown or missing client (#16242) (1fdbd29)
* **diagnostic:** handle diagnostics placed past the end of line (#16095) (a2994c8)
* **diagnostic:** make set() go through cache when calling show() (d93f47d)
* **diagnostic:** only update decorations for loaded buffers (#15715) (924e8e4)
* **diagnostic:** preserve fields from LSP diagnostics via user_data (#15735) (17b7968)
* **diagnostic:** remove useless highlight links (#15683) (c13242c), closes #15585
* disable clipboard when test registers (dd63d93)
* **docgen:** add tagfunc.lua (0746f00)
* **doc:** various fixes #15604 (4eb1ebb)
* **eval:** add the vimscript-1 feature to has() (18b32fc)
* **eval:** checking for a non-empty string is too strict (#15987) (1dbbaf8)
* **eval:** fix has('wsl') #16153 (16d06fa), closes #12642 #16143
* **eval:** fixup for empty modifier in fnamemodify (#16368) (a7ad509), closes #16367
* **extmark:** fix missing virt_lines when using id param of set_extmark (995dbd2)
* **extmarks:** splice extmarks on nv_Undo #15920 (e069361)
* **fileio:** replace characters over INT_MAX with U+FFFD (#16354) (a2e5c2f), closes #11877
* **float:** fix potential heap corruption in win_redr_border (de670f3)
* **float:** redraw if w_border_adj changed (7ff1bc1)
* **heath/provider.vim:** using list as string #16007 (5365f24), closes #15988
* **highlight:** remove syncolor.vim, always include syntax colors (9afa0d2), closes #15176 #12573 #15205
* **inccommand:** ignore trailing commands only for *previewed* command #15638 (1f8c91b), closes #8796 #7494
* include ci/ in exported tarball (d6f03aa), closes #15856
* **input:** never reinterpret unmapped ALT- chrods in Terminal mode (#16222) (5ce35ab)
* **input:** resolve isolated (non-ALT/META) mappings #13109 (c4857b6), closes #13042 #13086 #15869
* **jobwait:** always drain process event queues #15402 (3c081d0), closes #15349
* **lsp_spec:** tests depended on previous session (069d1de)
* **lsp:** accept file URIs without a hostname (a2c2a08)
* **lsp:** add done flag to messages returned in util.get_progress_messages() (#15985) (45fa70a)
* **lsp:** add placeholder cancel function (#16189) (4da0351)
* **lsp:** add textDocument/prepareRename to capability map (#15961) (fcc11d5), closes #15899
* **lsp:** adjust legacy show diagnostic functions to use correct scope (#16106) (dc6c9fe)
* **lsp:** allow diagnostic.clear to accept nil bufnr (#15137) (4ed2d4f)
* **lsp:** avoid duplicates in client attached buffers (#16099) (c5525f2)
* **lsp:** avoid serializing boolean as key (#15810) (96614f8)
* **lsp:** change rpc start notify level to warn (#16467) (04c7b55)
* **lsp:** change signature of buf_highlight_references (#16345) (eb3d591)
* **lsp:** correctly parse LSP snippets #15579 (516775e), closes #15522
* **lsp:** default to UTF-16 in make_position_params (2e3a474)
* **lsp:** do not index nil client in progress (#16262) (8f31b21)
* **lsp:** do not invoke handlers for unsupported methods (#15926) (d288daa)
* **lsp:** don't update active_clients on exit_timeout (#16192) (98f5782)
* **lsp:** enable additional capabilities (#15470) (5d63354)
* **lsp:** ensure buffers are re-attached on rename (#16266) (ee3a58d)
* **lsp:** Ensure users get feedback on references/symbols errors or empty results (256570a)
* **lsp:** expose ContentModified error code to callbacks (#15262) (3f09732)
* **lsp:** fix cursor row after textEdits (#16038) (bd2f61c)
* **lsp:** gracefully handle nil workspaceFolders (#16284) (0ecc58c)
* **lsp:** guard textDocument/codeAction command logic #15769 (433bda4)
* **lsp:** improve symbols_to_items performance (#16197) (5ad15c9)
* **lsp:** Include client name in handler error messages (#15227) (24f2b9e)
* **lsp:** pass bufnr for async formatting (#15084) (c31bc6e)
* **lsp:** persist diagnostic config for clients (bcc9ba5)
* **lsp:** prevent double <text> for cached plaintext markup (910967e)
* **lsp:** restore diagnostics extmarks on buffer changes (#15011) (77b33e4)
* **lsp:** rewrite incremental sync (#16252) (2ecf0a4)
* **lsp:** send buffer contents joined on fileformat-specific linebreak (#16334) (134a638)
* **lsp:** send textDocument/didChange for each buffer (#16431) (3451121)
* **lsp:** support duplicate params in signature help (#15032) (9132b76)
* **lsp:** update lsp-handler signature in call_hierarchy (#15738) (8164adc)
* **lsp:** update workspace/applyEdit handler signature (#15573) (3f526fe)
* **lua:** fix vim.deepcopy for metatables & cycled tables (#16435) (eb876a0)
* **lua:** preserve argument lists which are not lists (6896d22)
* **man.vim:** ensure buftype=nofile after :tag or :stag #15675 (29bc648), closes #15650
* **man.vim:** filetype=man is too eager #15488 (2548a9e), closes #15487 #15487
* **mouse:** fix mouse drag positions on multigrid #12667 (0dcfd0e), closes #15091
* **mouse:** correct dragged position in composed layout (810da1a)
* **multigrid:** mouse events crash neovim (28ac6c0)
* **nvim_open_win:** crash if autocmds delete buffer/window #15549 (0c06da1), closes #15548
* **options:** using :set fillchars should clear local value (7528bce)
* prevent K_EVENT from stopping Select mode CTRL-O #15688 (5f144ef)
* **provider:** compare versions as number, not string (python 3.10 support) #15937 (e16adbf), closes #14586
* **screen:** make display_tick monotonic up to 2^64. fixes #16152 (9e88c9c)
* **screen:** missing search highlights when redrawing from timer #15380 (db695cc), closes #13074 #14064
* **shared:** do not treat empty tables as list in deep extend (#15094) (526fc60)
* **sign:** reset auto sign column with minimum in float win minimal style (c8f57f6)
* **startup:** init.lua: set $MYVIMRC to absolute path #15748 (c76cddf)
* **termdebug:** replace mapset with nvim_set_keymap (#15699) (4d7dcbe)
* **termdebug:** replace term_getline with getbufline #15598 (11289ad)
* **terminal:** close without ! if the job is stopped (55defa1), closes #4683
* **terminal:** free terminal if close_buffer() closes a closed terminal (#16264) (14def4d)
* **test/dumplog:** tostring(rv) before formatting as string (ddaa0cc)
* **tests:** use isolated XDG_DATA_HOME in startup tests (8e663e2)
* **treesitter:** do not map hl_group when no mapping is set (f489d98)
* **treesitter:** run predicates more often in iter_matches (458f2aa)
* **tui:** extend smglr ignores to smglp and smgrp (#16239) (3ba800f)
* **tui:** remove obsolete $NVIM detection #15791 (4414584), closes #12937 #11390
* **tutor:** formatting, layout #15098 (c52ec8f), closes #15088
* **ui:** use nowait for q mapping in floating window (#16427) (c132144)
* **v:lua:** fix emsg when calling v:lua directly (da9005a)
* **vim-patch.sh:** run nvim with -u NONE -n #16179 (97ae0ab)
* **vim.opt:** vimL map string values not trimmed (#14982) (4906156)
* **window:** win_close from other tabpage #15454 (90b2da1), closes #15313
* **windowing:** positioning of relative floats (9065730)
2021-11-30 18:20:42 +01:00
caf41a7ac9 vim-patch:8.2.3703: most people call F# "fsharp" and not "fs" (#16469)
Problem:    Most people call F# "fsharp" and not "fs".
Solution:   Rename filetype "fs" to "fsharp".
53ba95e4f0
2021-11-30 14:51:17 +01:00
04c7b55038 fix(lsp): change rpc start notify level to warn (#16467)
This is less obtrusive, and does not require a confirmation to dismiss
2021-11-30 09:55:42 +01:00
f5fb79733e Merge pull request #16460 from dundargoc/chore/typos
chore: fix typos
2021-11-30 09:28:50 +01:00
d0fbbea62a docs(lsp): do not use nvim_command for Vimscript examples
The examples are relevant and applicable for both Lua and Vimscript
configurations and the `vim.api.nvim_command` prefixes just add noise
that doesn't contribute to the example.
2021-11-30 09:03:41 +01:00
5a24c2c83d docs(lsp): do not use | as argument separator
This translates into a tag in the help doc.
2021-11-30 09:03:41 +01:00
b6e531c1d9 docs(lsp): add annotations for private functions 2021-11-30 09:03:41 +01:00
bc1d13bb36 chore: fix typos
Co-authored-by: ii14 <ii14@users.noreply.github.com>
2021-11-30 09:03:41 +01:00
fff8827908 feat(lsp): add 'focus' option to open_floating_preview (#16465)
When the 'focusable' and 'focus_id' parameters are set,
`open_floating_preview` assumes that it should always move focus to an
existing floating window with the same 'focus_id'. However, there are
cases where we want to make a floating window focusable, but do not want
to focus it upon calling `open_floating_preview`. To distinguish these
cases, add a boolean parameter 'focus' that, when false, prevents
moving focus.
2021-11-29 15:37:55 -07:00
b16b7021ef fix(lsp): do not attempt to index nil client in progress handler (#16463) 2021-11-29 10:03:57 +01:00
6e70b7b31d docs: regenerate (#16461) 2021-11-28 10:47:37 -07:00
217f9f8d1e feat(diagnostic): use scope = 'line' by default for open_float() (#16456)
Closes #16453

Co-authored-by: Cédric Barreteau <cbarrete@users.noreply.github.com>
2021-11-28 09:42:29 -07:00
e4976cbd26 Merge pull request #16452 from clason/vim-8.2.3685
vim-patch:8.2.{3451,3458,3452,3685,3686}: some filetypes are not recognized correctly
2021-11-28 11:57:07 +01:00
1840c82b42 Merge pull request #16451 from clason/vim-8.2.3684
vim-patch:8.2.{3684,3687}: blockwise insert does not handle autoindent properly
2021-11-28 11:47:07 +01:00
2f8ed7b822 vim-patch:8.2.3687: blockwise insert does not handle autoindent properly
Problem:    Blockwise insert does not handle autoindent properly when tab is
            inserted.
Solution:   Adjust text column for indent before computing column.
            (closes vim/vim#9229)
59f4f9505a
2021-11-28 00:47:14 +01:00
07223fae54 Merge pull request #16455 from gpanders/diag-set 2021-11-27 13:11:41 -07:00
6e30461cea test(diagnostic): diagnostics passed to set() should be an array 2021-11-27 12:47:03 -07:00
d93f47dc83 fix(diagnostic): make set() go through cache when calling show()
When `vim.diagnostic.set()` is called, the diagnostics passed to it are
added to the diagnostic cache. `set()` then calls `show()` and passes
those diagnostics along exactly as they were given to `set()`. However,
we sometimes want to do some kind of post-processing on diagnostics when
they come out of the cache, e.g. clamping line numbers. By forwarding
the diagnostics to `show()` verbatim, `set()` skips this post-processing
which can cause other bugs downstream.

Instead of passing the diagnostics directly, make the `show()` call from
within `set()` retrieve diagnostics from the cache. In general, all
diagnostics operations should follow the pattern of "producers put
things in the cache" and "consumers get things out of the cache" and
this change better adheres to that pattern.
2021-11-27 12:32:40 -07:00
03d250eb45 vim-patch:6304be625ce4 (#16450)
Update runtime files.
6304be625c

skip doc/sign.txt (needs 8.2.3664)
2021-11-27 19:39:42 +01:00
ea5699399e vim-patch:8.2.3686: filetype detection often mixes up Forth and F#
Problem:    Filetype detection often mixes up Forth and F#.
Solution:   Add a function to inspect the file contents. (Doug Kearns)
3d14c0f2b9
2021-11-27 19:21:57 +01:00
b51b0aecc9 docs: regenerate (#16390)
Co-authored-by: marvim <marvim@users.noreply.github.com>
2021-11-27 11:26:49 -05:00
caa6992a10 chore: fix typos (#16361)
Co-authored-by: Brede Yabo Sherling Kristensen <bredeyabo@hotmail.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: István Donkó <istvan.donko@gmail.com>
Co-authored-by: Julian Berman <Julian@GrayVines.com>
Co-authored-by: bryant <bryant@users.noreply.github.com>
Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
Co-authored-by: nlueb <9465658+nlueb@users.noreply.github.com>
Co-authored-by: Leonhard Saam <leonhard.saam@yahoo.com>
Co-authored-by: Jesse Wertheim <jaawerth@gmail.com>
Co-authored-by: dm1try <me@dmitry.it>
Co-authored-by: Jakub Łuczyński <doubleloop@o2.pl>
Co-authored-by: Louis Lebrault <louis.lebrault@gmail.com>
Co-authored-by: Brede Yabo Sherling Kristensen <bredeyabo@hotmail.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: István Donkó <istvan.donko@gmail.com>
Co-authored-by: Julian Berman <Julian@GrayVines.com>
Co-authored-by: bryant <bryant@users.noreply.github.com>
Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
Co-authored-by: nlueb <9465658+nlueb@users.noreply.github.com>
Co-authored-by: Leonhard Saam <leonhard.saam@yahoo.com>
Co-authored-by: Jesse Wertheim <jaawerth@gmail.com>
Co-authored-by: dm1try <me@dmitry.it>
Co-authored-by: Jakub Łuczyński <doubleloop@o2.pl>
Co-authored-by: Louis Lebrault <louis.lebrault@gmail.com>
2021-11-27 11:10:48 -05:00
b339cb5aca vim-patch:8.2.3451: not all apache files are recognized
Problem:    Not all apache files are recognized.
Solution:   Adjust the filetype pattern. (Zdenek Dohnal, closes vim/vim#8882)
770ddbe159
2021-11-27 16:26:33 +01:00
47ad1a3584 vim-patch:8.2.3458: not all dictdconf files are recognized
Problem:    Not all dictdconf files are recognized.
Solution:   Adjust the pattern. (Doug Kearns)
be01090efa
2021-11-27 16:26:20 +01:00
c1c5676021 vim-patch:8.2.3452: MPD files are not recognized
Problem:    MPD files are not recognized.
Solution:   Recognize MPD files as XML. (Steven Penny, closes vim/vim#8893)
690c524ce6
2021-11-27 16:24:05 +01:00
b156ffedb6 vim-patch:8.2.3685: Visual studio project files are not recognized
Problem:    Visual studio project files are not recognized.
Solution:   Use the xml file type. (Doug Kearns)
c07f11e42f
2021-11-27 16:23:19 +01:00
512ec4632f fix: allow str_utfindex second argument to be an explicit nil (#16448)
* str_utfindex checks number of arguments only, but ignores the case in
  which the second argument is an explicit nil. Previously this required
  dropping the second argument entirely.
* Modify the C binding to explicitly check if the second argument is nil
2021-11-27 10:07:58 -05:00
a8dd1ea011 vim-patch:8.2.3684: blockwise insert does not handle autoindent properly
Problem:    Blockwise insert does not handle autoindent properly.
Solution:   Adjust text column for indent. (closes vim/vim#9229)
e9b0b40b79
2021-11-27 14:55:40 +01:00
afbf89dc01 vim-patch:8.2.3679: objc file detected as Octave (#16446)
Problem:    objc file detected as Octave. (Antony Lee)
Solution:   Detect objc by preprocessor lines. (Doug Kearns, closes vim/vim#9223,
            closes vim/vim#9220)
7329cfab36
2021-11-26 17:34:45 +01:00
7ded880227 vim-patch:8.2.3676: unused runtime file (#16441)
Problem:    Unused runtime file.
Solution:   Remove rgb.txt.
309ce25189
2021-11-26 17:16:11 +01:00
a31e7523f4 vim-patch:8.2.3677: after a put the '] mark is on the last byte (#16442)
Problem:    After a put the '] mark is on the last byte of a multi-byte
            character.
Solution:   Move it to the first byte. (closes vim/vim#9047)
4d07253a48
2021-11-26 12:16:04 +01:00
eb876a0a6f fix(lua): fix vim.deepcopy for metatables & cycled tables (#16435)
vim.deepcopy previously didn't retain metatables in copies
and caused stackoverflow on recursive tables/cycled tables this
fixes these issues
2021-11-26 11:06:43 +01:00
3451121a4e fix(lsp): send textDocument/didChange for each buffer (#16431)
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
2021-11-26 10:54:58 +01:00
102e7e7929 fix(lsp): require bufnr for apply_text_edits (#16444) 2021-11-26 10:36:37 +01:00
72d62aa6aa chore(docs): clarify vim.notify log_level parameter (#16436) 2021-11-25 20:06:42 +01:00
150a5922aa feat(diagnostic)!: make DiagnosticChanged a first class autocmd (#16098)
This allows users to hook into diagnostic events with finer granularity
(e.g. per-buffer or file).

BREAKING CHANGE: DiagnosticsChanged and LspDiagnosticsChanged user
autocommands are removed.
2021-11-25 11:55:11 -07:00
1a60580925 feat(lsp): use uv_spawn to check if server executable (#16430)
Previously, the built-in language server client checked if the first
argument of cmd was executable via vim.fn.executable. This ignores PATH
injected via cmd_env. Instead, we now start the client via uv.spawn, and
handle the failure mode, reporting the error back to the user.

Co-authored-by: Mathias Fußenegger <mfussenegger@users.noreply.github.com>
2021-11-25 07:54:45 -05:00
6ea5e80393 Merge pull request #16434 from gpanders/diagnostic-clampage
fix(diagnostic): line clamping fixes
2021-11-25 07:28:46 -05:00
b5b025f6a3 fix(diagnostic): do not focus floats in goto functions (#16433)
Floating windows opened by `goto_next` and `goto_prev` should not be
focused when repeating the `goto_` function. The float can still be
focused by calling `open_float` with `scope = "cursor"`.
2021-11-24 21:45:42 -07:00
0341c687a3 fix(diagnostic): don't clamp line numbers in setqflist
Reverts 5b0d8f85fd.

Diagnostic producers can send diagnostics for buffers that are not
loaded, for which we cannot retrieve the line count to clamp line
numbers. This means that some diagnostics in the quickfix list could be
line-clamped and others not. The quickfix list can already handle line
numbers past the end of the buffer (i.e. it *already* clamps line
numbers) so just use the "raw" diagnostic positions sent from the
producer.
2021-11-24 20:03:48 -07:00
25ab7c6c0a test(diagnostic): uncomment equality check 2021-11-24 20:03:38 -07:00
c59f2008e0 fix(diagnostic): get line count per buffer when clamping
Fixes a bug when `get_diagnostics` is called with a nil `bufnr`.
Diagnostics should be clamped for the buffer they reside in, not the
current buffer.
2021-11-24 20:03:36 -07:00
f2722884a8 perf(lsp)!: use faster line retrieval for utf-16 to byte idx conversion (#16360) 2021-11-24 20:49:34 -05:00
c132144d24 fix(ui): use nowait for q mapping in floating window (#16427) 2021-11-24 15:57:33 -07:00
a2e5c2f7c8 fix(fileio): replace characters over INT_MAX with U+FFFD (#16354)
fixes #11877
credit: @zubairabid https://github.com/neovim/neovim/pull/12010
2021-11-23 21:07:47 -07:00
dd8a4e2c22 Merge pull request #16402 from clason/treesitter-bump
build(deps): bump tree-sitter,treesitter-c to v0.20.1 and adapt tests
2021-11-23 20:13:51 +01:00
5676edb86d fix(tests): adapt parser_spec test to tree-sitter bump
Change query to include anonymous nodes (`(_)` -> `[_]`) and
use new syntax (`{vim,lua}.match?`->`#{vim,lua}.match?`)
2021-11-23 18:38:22 +01:00
fd6df7481a fix(diagnostic): resolve buffer number in get() (#16407) 2021-11-22 09:22:08 -07:00
e02d4732f2 fix(diagnostics): don't allow 0 bufnr for metatable index (#16405)
04bfd20bb introduced a subtle bug where using 0 as the buffer number in
the diagnostic cache resets the cache for the current buffer. This
happens because we were not checking to see if the _resolved_ buffer
number already existed in the cache; rather, when the __index metamethod
was called we assumed the index did not exist so we set its value to an
empty table. The fix for this is to check `rawget()` for the resolved
buffer number to see if the index already exists.

However, the reason this bug was introduced in the first place was
because we are simply being too clever by allowing a 0 buffer number as
the index which is automatically resolved to a real buffer number.
In the interest of minimizing metatable magic, remove this "feature" by
requiring the buffer number index to always be a valid buffer. This
ensures that the __index metamethod is only ever called for non-existing
buffers (which is what we wanted originally) as well as reduces some of
the cognitive overhead for understanding how the diagnostic cache works.
The tradeoff is that all public API functions must now resolve 0 buffer
numbers to the current buffer number.
2021-11-22 08:47:30 -07:00
33ce02ee4d fix(lsp): avoid indexing vim.NIL for null workspaceFolders (#16404)
* internally represent no workspaceFolders as nil instead of vim.NIL
* rename workspaceFolders -> workspace_folders for consistency
2021-11-22 09:52:24 -05:00
cfa5d06801 docs(man): omit misleading mention of environment for -u NORC (#16379)
The phrase referred specifically to `$VIMINIT` and `$EXRC`, which
are parsed (and available with, e.g., `echo $VIMINIT` if set) but
of course not loaded since _any_ initialization is skipped. Hence
this is redundant and can be misleading.
2021-11-22 12:00:04 +01:00
faae47eddb build(deps): also bump treesitter-c to v0.20.1 2021-11-22 11:05:24 +01:00
e6c46bac3f vim-patch:88a4205f1cfb (#16399)
Update runtime files
88a4205f1c
2021-11-22 10:53:57 +01:00
e1cea4b38d build(deps): bump tree-sitter to 0.20.1 2021-11-22 10:26:17 +01:00
64abd7be79 Merge pull request #16341 from zeertzjq/vim-8.2.2518
vim-patch:8.2.{2518,2520,3572,3588}: 'listchars' (and 'fillchars'?) fixes
2021-11-21 22:21:32 -05:00
e05db65d2a vim-patch:8.2.3627: difficult to know where the text starts in a window (#16377)
vim-patch:8.2.3627: difficult to know where the text starts in a window

Problem:    difficult to know where the text starts in a window. (Sergey
            Vlasov)
Solution:   Add the "textoff" entry in the result of getwininfo().
            (closes vim/vim#9163)
cdf5fdb294

Fix indent in Test_getbufwintabinfo().
2021-11-21 21:10:03 -05:00
f45b2f313e Merge pull request #16386 from VVKot/vim-8.2.2922
vim-patch:8.2.2922,8.2.3639
2021-11-21 20:41:56 -05:00
04bfd20bb8 fix(diagnostic): remove invalid buffers from cache (#16397)
Errors were being caused by invalid buffers being kept around in
diagnostic_cache, so add a metatable to diagnostic_cache which attaches
to new buffers in the cache, removing them after they are invalidated.

Closes #16391.

Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com>
2021-11-21 18:40:06 -07:00
0d967f0298 Merge pull request #16362 from zeertzjq/vim-8.2.3617
vim-patch:8.2.{3468,3617,3618,3622}: some other CWD related patches
2021-11-21 17:47:09 -05:00
d99d4af7b1 Merge pull request #16370 from gpanders/diagnostic-column-clamp 2021-11-21 12:06:44 -07:00
85707a3395 vim-patch:8.2.3255: ci" finds following string but ci< and others don't (#16324)
Problem:    ci" finds following string but ci< and others don't.
Solution:   When not inside an object find the start. (Connor Lane Smit,
            closes vim/vim#8670)
b9115da4be
2021-11-21 14:00:50 -05:00
9d0726f6d8 vim-patch:8.1.1606: on a narrow screen ":hi" output is confusing (#16388)
Problem:    On a narrow screen ":hi" output is confusing.
Solution:   Insert a space between highlight group name and "xxx". (Masato
            Nishihaga, closes vim/vim#4599)
548be7f126
2021-11-21 13:10:24 -05:00
9d868317f9 vim-patch:8.2.3638: getcompletion() always passes zero as position (#16387)
Problem:    getcompletion() always passes zero as position to custom
            completion function.
Solution:   Pass the pattern length. (closes vim/vim#9173)
4785fe02bb

Co-authored-by: ii14 <ii14@users.noreply.github.com>
2021-11-21 13:00:51 -05:00
134a6385e2 fix(lsp): send buffer contents joined on fileformat-specific linebreak (#16334) 2021-11-21 12:03:45 -05:00
a2749482d9 chore(lsp): clean up initialization process (#16369)
* send vim.NIL instead of not sending workspaceFolders
* read fallback rootPath and rootUri from workspaceFolders
* update documentation
2021-11-21 11:39:30 -05:00
ad71ecb49b vim-patch:8.2.3639: line commented out accidentally
Problem:    Line commented out accidentally.
Solution:   Uncomment. (Volodymyr Kot, closes vim/vim#9172)
7f0c4b418e
2021-11-21 13:53:50 +00:00
ddc401a91c vim-patch:8.2.2922: computing array length is done in various ways
Problem:    Computing array length is done in various ways.
Solution:   Use ARRAY_LENGTH everywhere. (Ken Takata, closes vim/vim#8305)
eeec254878
2021-11-21 08:20:38 +00:00
120a881630 Merge pull request #14540 from Shougo/fix_vim8.1.1378
[RFC] Improve tests
2021-11-20 22:46:34 -05:00
2bd8f2fb5e vim-patch:8.1.0753: printf format not checked for semsg() (#16378)
Problem:    printf format not checked for semsg().
Solution:   Add GNUC attribute and fix reported problems. (Dominique Pelle,
            closes vim/vim#3805)
b5443cc46d

(Most of the changes do not apply because Neovim already uses PRId64 and other spelling mistakes were already fixed.)
2021-11-20 13:26:16 +01:00
725cbe7d41 refactor: saner options for uncrustify (#16204)
* sp_enum_after_assign = force
* sp_brace_typedef = force
* nl_do_brace = remove
* sp_do_brace_open = force
* sp_brace_close_while = force
* sp_before_semi = remove
* sp_before_semi_for = remove
* sp_before_semi_for_empty = remove
* sp_between_semi_for_empty = remove
* sp_after_semi_for_empty = remove
* sp_before_square = remove
* sp_before_squares = remove
* sp_inside_square = remove
* sp_inside_fparens = remove
* sp_inside_fparen = remove
* sp_inside_tparen = remove
* sp_after_tparen_close = remove
* sp_return_paren = force
* pos_bool = lead
* sp_pp_concat = remove
* sp_pp_stringify = remove
* fixup: disable formatting for the INIT section
2021-11-19 14:21:53 -05:00
5b0d8f85fd fix(diagnostic): clamp line numbers in setqflist and setloclist 2021-11-19 11:49:44 -07:00
34bb5fa5a9 fix(diagnostic): fix navigation with diagnostics placed past end of line 2021-11-19 11:37:45 -07:00
2abc799ffd fix(diagnostic): deepcopy diagnostics before clamping line numbers
The current 'clamp_line_numbers' implementation modifies diagnostics in
place, which can have adverse downstream side effects. Before clamping
line numbers, make a copy of the diagnostic. This commit also merges the
'clamp_line_numbers' method into a new 'get_diagnostics' local function
which also implements the more general "get" method. The public
'vim.diagnostic.get()' API now just uses this function (without
clamping). This has the added benefit that other internal API functions
that need to use get() no longer have to go through vim.validate.

Finally, reorganize the source code a bit by grouping all of the data
structures together near the top of the file.
2021-11-19 11:37:45 -07:00
9ec4417afc Merge pull request #16066 from neovim/marvim/ci-version-update
version.c: update [skip ci]
2021-11-19 11:54:24 -05:00
7942fb7074 Merge pull request #16091 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-11-19 11:53:53 -05:00
a7ad509902 fix(eval): fixup for empty modifier in fnamemodify (#16368)
* fix(eval): fixup for empty modifier in fnamemodify

1dbbaf89bf
erroneously removed a check for empty modifier and a PVS fix. 
Restore that check and fix.

Fixes #16367

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2021-11-19 16:13:49 +01:00
349b9ce9df vim-patch:8.2.3622: "verbose pwd" shows confusing info
Problem:    "verbose pwd" shows confusing info when :lcd does not change
            directory.
Solution:   Clear last_chdir_reason also when the directory does not change.
            (closes vim/vim#9160)
64be6aa3a5

This only ports the tests, as this is already Nvim's behavior.
2021-11-19 20:07:04 +08:00
3d504f27a0 vim-patch:8.2.3618: getcwd() is unclear about how 'autochdir' is used
Problem:    getcwd() is unclear about how 'autochdir' is used.
Solution:   Update the help for getcwd().  Without any arguments always return
            the actual current directory. (closes vim/vim#9142)
851c7a699a
2021-11-19 20:07:04 +08:00
54e9cce612 revert: partially revert #9894
Vim has a solution to #9892 with fewer side-effects in patch 8.2.3618
2021-11-19 20:07:04 +08:00
4785cad8ee vim-patch:8.2.3617: ":verbose pwd" does not mention 'autochdir' was applied
Problem:    ":verbose pwd" does not mention 'autochdir' was applied.
Solution:   Remember the last chdir was done by 'autochdir'.  (issue vim/vim#9142)
0526815c15
2021-11-19 20:07:04 +08:00
0f58ba10e2 vim-patch:8.2.3468: problem with :cd when editing file in non-existent directory
Problem:    Problem with :cd when editing file in non-existent directory. (Yee
            Cheng Chin)
Solution:   Prepend the current directory to get the full path. (closes vim/vim#8903)
c6376c7984
2021-11-19 20:07:04 +08:00
2c431943d6 fix: remove unneeded gzip check 2021-11-19 13:45:41 +09:00
e9819ca709 fix: error 2021-11-19 13:45:41 +09:00
c11cf6b415 test: save clipboard 2021-11-19 13:45:41 +09:00
9bcbb7f9d2 fix: shell problem 2021-11-19 13:45:41 +09:00
cf4af351a6 fix: fix GZIP error 2021-11-19 13:45:41 +09:00
18d7ec36f3 fix: remove unnecessary changes 2021-11-19 13:45:41 +09:00
a11cec08e5 fix: for reviews 2021-11-19 13:45:41 +09:00
dd63d93931 fix: disable clipboard when test registers 2021-11-19 13:45:40 +09:00
77c2edcacb fix: remove previous executed directories to execute tests locally 2021-11-19 13:45:40 +09:00
4cb8a399c7 fix: add cd for local execution 2021-11-19 13:45:40 +09:00
133d79a358 vim-patch:8.2.3616: arglist test does not clear the argument list consistently
Problem:    Arglist test does not clear the argument list consistently.
Solution:   Call Reset_arglist(). (Shougo Matsushita, closes vim/vim#9154)
3cad470385
2021-11-19 13:45:29 +09:00
b43b6efa34 version.c: update [skip ci] 2021-11-19 03:07:56 +00:00
2d340a3746 docs: regenerate 2021-11-18 21:50:55 +00:00
f71be1f87b fix(lsp): improve incremental sync robustness (#16358)
closes https://github.com/neovim/neovim/issues/16352

* improve handling of multi-byte deletions
2021-11-18 16:49:46 -05:00
d249e18bbf fix(uri): use valid EmmyLua annotations (#16359)
See:

- https://emmylua.github.io/annotations/param.html
- https://emmylua.github.io/annotations/return.html
2021-11-18 21:12:21 +01:00
722647dd8c Merge pull request #16356 from clason/bump-luarocks
build(deps): bump luarocks to 3.8.0
2021-11-18 14:41:14 -05:00
5e46f649e2 fix(diagnostic): don't use nil col if missing from qflist (#16357)
If the quickfixlist item doesn't contain a column it is reported as 0.
Rather than using a nil value in such a case (which breaks diagnostics
elsewhere), just keep the 0 value.
2021-11-18 12:27:46 -07:00
a42a9accab Merge pull request #16355 from mjlbach/fix/docgen-again 2021-11-18 11:31:31 -07:00
8081a30ca8 docs: mark tagfunc.lua methods as private 2021-11-18 11:30:09 -07:00
0746f0021f fix(docgen): add tagfunc.lua 2021-11-18 11:30:09 -07:00
cab542c0f9 build(deps): bump luarocks to 3.8.0 2021-11-18 18:55:36 +01:00
f940e7a5b9 feat(lsp): add tagfunc (#16103) 2021-11-18 12:26:26 -05:00
36538417f0 vim-patch:01164a6546b4 (#16335)
missing changes to src/nvim/po/check.vim from 01164a6546 (diff-ed3e88d59856bb5b62b2a394fb8c7293cd5794531e0718c0aa2d3d768d7973d1)
2021-11-17 21:28:20 -05:00
1f68a21d66 vim-patch:8.2.3593: directory is wrong after executing "lcd" with win_execute() (#16314)
Problem:    Directory is wrong after executing "lcd" with win_execute().
Solution:   Correct the directory when going back to the original window.
            (closes vim/vim#9132)
7f13b24ab6
2021-11-17 21:18:55 -05:00
dba3590a0e vim-patch:8.2.3591: no event is triggered when closing a window (#16306)
Problem:    No event is triggered when closing a window.
Solution:   Add the WinClosed event. (Naohiro Ono, closes vim/vim#9110)
23beefed73

Nvim has already implemented this feature, so this only changes tests
and docs.
2021-11-17 21:11:09 -05:00
5ff972cafe vim-patch:8.2.3522: cannot use \x and \u when setting 'listchars' (#16049)
Problem:    Cannot use \x and \u when setting 'listchars'.
Solution:   Support hex and unicode in hex form. (closes vim/vim#9006)
93ff6720fe
2021-11-17 20:55:59 -05:00
eb3d59126e fix(lsp): change signature of buf_highlight_references (#16345)
the prior signature did not assume an active language client
this function can now be used directly by passing an offset encoding
defaults to utf-16 (standard for LSP)
2021-11-17 21:14:45 +01:00
c0efe49e78 vim-patch:519cc559b08b (#16340)
Update runtime files
519cc559b0
2021-11-17 10:02:59 +01:00
145fc69df9 vim-patch:8.2.3588: break statement is never reached
Problem:    Break statement is never reached.
Solution:   Rely on return value of set_chars_option() not changing.
            (closes vim/vim#9103)
606efc7df4
2021-11-17 07:11:46 +08:00
8dbe47a4bc vim-patch:8.2.3572: memory leak when closing window and using "multispace"
Problem:    Memory leak when closing window and using "multispace" in
            'listchars'.
Solution:   Free the memory. (closes vim/vim#9071)
7a33ebfc5b
2021-11-17 07:11:46 +08:00
5ed2a5cf9c vim-patch:8.2.2520: missing tests for 'listchars'
Problem:    Missing tests for 'listchars'.
Solution:   Add a few more checks. (Yegappan Lakshmanan, closes vim/vim#7854)
04ea7e9049
2021-11-17 07:11:46 +08:00
7528bcec42 fix(options): using :set fillchars should clear local value 2021-11-17 07:11:46 +08:00
8c24e1462c vim-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 vim/vim#5206, closes vim/vim#7850)
eed9d46293

Nvim already has this feature, but it implements :set listchars the same
as :setglobal listchars, which is incorrect. Vim's implementation of
:set listchars is correct: using :set listchars clears local value.
2021-11-17 07:11:40 +08:00
eba317d7a9 refactor: reduce number of explicit char casts (#16077)
* refactor: reduce number of explicit char casts
2021-11-16 20:27:59 +01:00
99211b008c vim-patch:8.2.3604: not all sudoers files are recognized (#16338)
Problem:    Not all sudoers files are recognized.
Solution:   Add a file pattern. (Doug Kearns, closes vim/vim#1192)
c143fa0778
2021-11-16 18:34:39 +01:00
b5eab2a98a vim-patch:8.2.3603: fish filetype not recognized (#16337)
Problem:    Fish filetype not recognized.
Solution:   Add a file pattern and match script line. (Doug Kearns)
b1b163efd7
2021-11-16 18:26:03 +01:00
8fb09bc512 Merge pull request #16328 from gpanders/diagnostic-prefix-hi 2021-11-16 08:48:26 -07:00
98af683e0f refactor(diagnostic): make bufnr arguments consistent (#16323)
Make the bufnr argument have similar semantics across API functions;
namely, a nil value means "all buffers" while 0 means "current buffer".
This increases the flexibility of the API by allowing functions such as
enable() and disable() to apply globally or per-namespace, rather than
only on a specific buffer.
2021-11-16 08:47:49 -07:00
890f8cd750 Merge pull request #16330 from clason/vim-8.2.3598
vim-patch:8.2.3598,3599,3600: some filetypes are not recognized
2021-11-16 13:38:07 +01:00
75959d04c4 vim-patch:8.2.3600: filetype test fails
Problem:    Filetype test fails.
Solution:   Add missint change.
314b773abb
2021-11-16 13:04:14 +01:00
b20429c8a5 vim-patch:8.2.3599: not all gdbinit files are recognized
Problem:    Not all gdbinit files are recognized.
Solution:   Add "gdbinit". (Doug Kearns)
782b4bbc16
2021-11-16 12:40:50 +01:00
e5ef736dfe vim-patch:8.2.3598: RouterOS filetype is not recognized
Problem:    RouterOS filetype is not recognized.
Solution:   Add file and script patterns. (closes vim/vim#9097)
0818ab82e7
2021-11-15 23:03:10 +01:00
87a053f126 fix(lsp): fix edge cases in incremental sync (#16308) 2021-11-15 08:51:30 -08:00
63413bd047 refactor(diagnostic)!: rename 'show_header' to 'header'
Rename the `show_header` option in `open_float` to simply `header` and
allow users to specify both the header string as well as the highlight
group.
2021-11-15 09:12:27 -07:00
cc48837622 feat(diagnostic): allow 'prefix' option to return highlight
Extend the 'prefix' option for `open_float` to also provide an optional
highlight group for the prefix string.
2021-11-15 09:05:40 -07:00
8f984dc1f2 Merge pull request #16047 from mcepl/vim-8.2.3520
vim-patch:8.2.3520: cannot define a function for thesaurus completion
2021-11-14 21:23:42 -05:00
3c74ba4acb feat(diagnostic): add 'prefix' option to open_float (#16321)
The 'prefix' option accepts a function or a string that is used to add a
prefix string to each diagnostic displayed in the floating window.
2021-11-14 18:40:11 -07:00
2f37ffb719 Merge pull request #16316 from bfredl/macroman
refactor(macros): delete multibyte macros which just are aliases
2021-11-14 17:43:21 +01:00
1450a6f753 refactor(macroman): get rid of MB_COPY_CHAR macro
clean up docs for MB_PTR_ADV and MB_PTR_BACK
2021-11-14 17:08:50 +01:00
54ff21a153 refactor(macros): delete multibyte macros which just are aliases 2021-11-14 16:33:12 +01:00
ede00b29d1 Merge pull request #16317 from jamessan/remove-32bit-windows-ci
ci!: remove win32 builds/releases
2021-11-14 09:13:48 -05:00
7bd6f12b3e ci!: remove win32 builds/releases 2021-11-14 08:51:39 -05:00
27f8b04f17 Merge pull request #16315 from bfredl/multibytes
refactor(multibyte): eliminate mb_* aliases for utf_* functions
2021-11-14 13:44:18 +01:00
ee3a58d42e fix(lsp): ensure buffers are re-attached on rename (#16266)
If a LSP server sent a workspace edit containing a rename the buffers
file name changed without the server receiving a close notification for
the old buffer and without the client properly re-attaching on the new
file.

This affected `Move` code-actions in nvim-jdtls, but also
`vim.lsp.buf.rename` on a class level.
2021-11-14 12:55:16 +01:00
71a4d275dc refactor(multibyte): eliminate mb_char2len alias for utf_char2len 2021-11-14 12:49:12 +01:00
0039ba04b0 refactor(multibyte): eliminate mb_ptr2len alias for utfc_ptr2len 2021-11-14 12:49:12 +01:00
9f27e6cbe7 refactor(multibyte): eliminate mb_char2cells alias for utf_char2cells 2021-11-14 12:49:09 +01:00
2ef9d2a663 chore: disable creating a blank issue 2021-11-11 19:41:37 +01:00
e8631cb8a6 fix(float): skip non-focusable windows for :windo (#15378) 2021-11-11 11:05:18 -07:00
9d6a475ced fix(docs): add sync.lua to gen_vimdoc (#16285) 2021-11-11 07:23:52 -07:00
5d653a1344 Merge pull request #16276 from zeertzjq/channel-closed-term-error
Fixes and tests for sending to terminal channel whose terminal has been deleted
2021-11-11 10:57:16 +01:00
0ecc58c277 fix(lsp): gracefully handle nil workspaceFolders (#16284)
* handle when workspaceFolder is nil in buf.list_workspace_folders and buf.add_workspace_folder
2021-11-11 01:15:59 -08:00
8b5c32c8cd test: add tests for freeing channel opened by termopen()
This indirectly covers #16264
2021-11-11 09:34:23 +08:00
a502a7a731 fix(channel): fix channels opened by nvim_open_term() never being freed 2021-11-11 09:34:23 +08:00
3b89fee246 fix(channel): throw error if sending to internal channel w/o terminal
Prevent SIGABRT when sending to a channel created by nvim_open_term()
after the associated terminal has been deleted.
2021-11-11 09:34:23 +08:00
14def4d227 fix(terminal): free terminal if close_buffer() closes a closed terminal (#16264)
Use the (currently unused) 'destroy' field of the terminal struct as a
flag to indicate that the terminal's destruction is imminent (and
therefore it's close callback should not be called again).

Co-authored-by: Gregory Anders <greg@gpanders.com>
2021-11-10 15:28:55 -07:00
2ecf0a4c61 fix(lsp): rewrite incremental sync (#16252)
* use codeunits/points instead of byte ranges when applicable
* take into account different file formats when computing range and
  sending text (dos, unix, and mac supported)
* add tests of incremental sync
2021-11-09 14:37:48 -08:00
953ae71fd3 feat(diagnostic): do not require namespace for hide() and show() (#16261)
Also fix a few other small bugs regarding saving and restoring extmarks.
In particular, now that the virtual text and underline handlers have
their own dedicated namespaces, they should be responsible for saving
and restoring their own extmarks. Also fix the wrong argument ordering
in the call to `clear_diagnostic_cache` in the `on_detach` callback.
2021-11-09 14:33:01 -07:00
8f31b218f9 fix(lsp): do not index nil client in progress (#16262) 2021-11-09 22:05:41 +01:00
4174244d8b docs: update description for 'list' option (#16254)
Neovim has different defaults for 'list' compared to Vim which is why
the documentation needs to be updated.
2021-11-08 08:22:53 -07:00
8cbe100fcc vim-patch:partial 113cb513f76d (#16260)
Update runtime files
113cb513f7

skip doc/eval.txt
skip doc/insert.txt
skip doc/user_06.txt (needs 8.2.3562)
partial skip doc/syntax.txt (needs 8.2.3562)
2021-11-08 00:10:44 +01:00
16d4af6d2f feat(ui): add vim.ui.input and use in lsp rename (#15959)
* vim.ui.input is an overridable function that prompts for user input
* take an opts table and the `on_confirm` callback, see `:help vim.ui.input` for more details
* defaults to a wrapper around vim.fn.input(opts)
* switches the built-in client's rename handler to use vim.ui.input by default
2021-11-07 07:13:53 -08:00
b74916cfd2 fix(lsp): convert range to byte index before highlighting (#16218)
Co-authored-by: Mathias Fußenegger <mfussenegger@users.noreply.github.com>
Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
2021-11-06 15:05:52 -07:00
77c54fc995 Merge pull request #16155 from zeertzjq/fix-redr-border-corruption
fix(float): fix potential heap corruption in win_redr_border
2021-11-06 22:32:28 +01:00
03b805aee6 feat(lua): enable stack traces in error output (#16228) 2021-11-06 08:26:10 -06:00
2dc0af3a4f vim-patch:8.2.3528: 'thesaurus' and 'thesaurusfunc' do not have the same scope
Problem:    'thesaurus' and 'thesaurusfunc' do not have the same scope.
Solution:   Make 'thesaurusfunc' global-local.
f4d8b76d30
2021-11-06 14:24:46 +01:00
1fdbd29dfa fix(diagnostic): handle an unknown or missing client (#16242)
Sometimes plugins use pseudo-client IDs (e.g. nvim-lint or null-ls) in
order to hook into the LSP infrastructure without being a bona fide LSP
client. In these cases, get_client_by_id() will return nil since the
client ID given does not correspond to a real client recognized by the
LSP subsystem. When this happens, use "unknown" for the client name.
2021-11-05 10:10:27 -06:00
c0ba315b54 Merge pull request #16241 from bfredl/disptick
fix(screen): make display_tick monotonic up to 2^64. fixes #16152
2021-11-05 11:19:46 +01:00
9e88c9c12f fix(screen): make display_tick monotonic up to 2^64. fixes #16152
18446744073709551616 screen redraws should be enough for everyone.
2021-11-05 10:43:19 +01:00
3ba800f153 fix(tui): extend smglr ignores to smglp and smgrp (#16239)
The latter were added for xterm by ncurses 6.3 and are similarly
affected.

Fixes https://github.com/neovim/neovim/issues/16238
2021-11-04 20:36:16 -06:00
5ce35abae6 fix(input): never reinterpret unmapped ALT- chrods in Terminal mode (#16222) 2021-11-04 07:43:05 -06:00
fd347840ba fix(diagnostic): fix option resolution in open_float (#16229) 2021-11-04 06:59:24 -06:00
f26b391317 Merge pull request #16221 from glacambre/fix_13187
fix: remove double slash in sysinit path
2021-11-03 18:24:24 -04:00
2481b18a53 Merge pull request #16055 from doubleloop/config_depends 2021-11-03 08:24:39 -04:00
52efcefcc8 fix: remove double slash in sysinit path
Closes https://github.com/neovim/neovim/issues/13187 .
2021-11-03 07:47:40 +01:00
7899c4099b docs(lsp): correct usage examples of formatexpr (#16216) 2021-11-02 17:02:04 -07:00
487286b621 docs: mention replacement for deprecated vim.lsp.diagnostic.show_* (#16211) 2021-11-02 16:24:05 +01:00
ed2573b7e1 Merge pull request #16207 from jamessan/delete-release-tag
ci(release): delete nightly/stable tag so release recreates it
2021-11-02 07:36:33 -04:00
14716e4619 ci(release): delete nightly/stable tag so release recreates it
Even though the releaes itself gets deleted, if the tag is not, then
creating a new release just re-uses the same tag, even though we're
using “--target <sha>”.

[skip ci]
2021-11-02 07:34:55 -04:00
29cec32f44 Merge pull request #16203 from bfredl/revision
fix(extmark): fix missing virt_lines when using id param of set_extmark
2021-11-01 23:50:19 +01:00
995dbd2ca6 fix(extmark): fix missing virt_lines when using id param of set_extmark 2021-11-01 22:57:33 +01:00
b8eabb37b1 Merge pull request #16131 from jamessan/vim-8.1.0306 2021-11-01 11:27:42 -04:00
961cd83b3b refactor(api/marks)!: add opts param for feature extensibility (#16146)
In the future we might want to extend the concept of named marks and
adding opts reduces the need of changing the function signature in the
furute.
2021-11-01 07:46:26 -06:00
fa97d34858 fix(lsp): pass the enriched ctx to the client-side command (#16201) 2021-11-01 14:29:50 +01:00
9e479ea05e vim-patch:8.2.3561: cscope has a complicated way of giving an error message
Problem:    Cscope has a complicated way of giving an error message.
Solution:   Use semsg(). (James McCoy, closes vim/vim#9038)
3c5904d2a5
2021-11-01 06:41:29 -04:00
502ff11663 vim-patch:8.1.0783: compiler warning for signed/unsigned
Problem:    Compiler warning for signed/unsigned.
Solution:   Add type cast.  Change type of buffer. (Ozaki Kiichi, closes vim/vim#3827)
63c0ccd2b6
2021-11-01 06:41:29 -04:00
e6ff154be6 vim-patch:8.1.0779: argument for message functions is inconsistent
Problem:    Argument for message functions is inconsistent.
Solution:   Make first argument to msg() "char *".
32526b3c18
2021-11-01 06:41:29 -04:00
efa924f66b vim-patch:8.1.0743: giving error messages is not flexible
Problem:    Giving error messages is not flexible.
Solution:   Add semsg().  Change argument from "char_u *" to "char *", also
            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
            vim/vim#3302)  Also make emsg() accept a "char *" argument.  Get rid of
            an enormous number of type casts.
f9e3e09fdc
2021-11-01 06:41:28 -04:00
684640f551 vim-patch:8.1.0306: plural messages are not translated properly
Problem:    Plural messages are not translated properly.
Solution:   Add more usage of NGETTEXT(). (Sergey Alyoshin)
da6e8919e7
2021-11-01 06:40:00 -04:00
7f4b7320f6 Merge pull request #16198 from jamessan/limit-ci-branches
ci: limit CI checks to the main dev branches
2021-11-01 06:37:37 -04:00
519d8deb08 feat(lsp): add per-client commands (#16101) 2021-11-01 03:14:59 -07:00
7ae86c1d4c feat(ui): add opt.kind to vim.ui.select (#15838)
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2021-10-31 17:15:09 -07:00
ea2ce90cc6 ci: limit CI checks to the main dev branches
Now that we have various GH actions creating branches in the main repo,
using the generic '**' pattern for the CI workflow is just wasting CI
time and leading to more queued jobs.

[skip ci]
2021-10-31 20:05:52 -04:00
a68faed02d refactor: saner options for uncrustify #16196
* refactor: general good option changes
  sp_deref = remove
  sp_not = remove
  sp_inv = remove
  sp_inside_paren_cast = remove
  mod_remove_duplicate_include = true
  sp_after_semi = add
  sp_after_semi_for = force
  sp_sizeof_paren = remove
  nl_return_expr = remove
  nl_else_brace = remove
  nl_else_if = remove
* refactor: mod_remove_extra_semicolon = true
* refactor: nl_max = 3
* refactor: sp_bool = force
* refactor: sp_compare = force
* refactor: sp_inside_paren = remove
* refactor: sp_paren_paren = remove
* refactor: sp_inside_sparen = remove
* refactor: sp_before_sparen = force
* refactor: sp_sign = remove
* refactor: sp_addr = remove
* refactor: sp_member = remove
* refactor: nl_struct_brace = remove
* refactor: nl_before_if_closing_paren = remove
* refactor: nl_fdef_brace = force
* refactor: sp_paren_comma = force
* refactor: mod_full_brace_do = add
2021-10-31 17:03:08 -07:00
5ad15c9fa1 fix(lsp): improve symbols_to_items performance (#16197)
* use table.insert instead of list_extend to avoid validation overhead

Co-authored-by: Gianmarco Fantinuoli <fanto-dev@hotmail.com>
2021-10-31 15:18:51 -07:00
69e4cb7116 Merge pull request #15907 from black-desk/utf32-to-utf16
fix(lsp): default to UTF-16 in make_position_params
2021-10-31 14:47:08 -07:00
85a8bede45 fix(lsp): default to UTF-16 when lsp client using str_utfindex 2021-10-31 14:15:56 -07:00
2e3a4747e2 fix(lsp): default to UTF-16 in make_position_params 2021-10-31 14:15:56 -07:00
0c1585bc63 Merge pull request #16195 from jamessan/really-fix-win-ci
fix(ci): use correct check for path-existence
2021-10-31 15:11:21 -04:00
98f578293b fix(lsp): don't update active_clients on exit_timeout (#16192) 2021-10-31 12:05:57 -07:00
7126315935 fix(ci): use correct check for path-existence 2021-10-31 14:09:10 -04:00
478748881f Merge pull request #16187 from erw7/fix-build-MinGW
fix(build): fix build failure in MinGW
2021-10-31 12:54:52 -04:00
4445e0230b Merge pull request #16188 from bfredl/packentry
fix(runtime): fix missing packpath entries
2021-10-31 16:19:30 +01:00
0503e17375 fix(build): fix build failure in MinGW
The new MinGW fails to build libuv due to a typedef conflict between
mstcpip.h and src/win/winapi.h. This change avoids conflicts by disabling
typedef in the MinGW header.
2021-11-01 00:07:16 +09:00
e6b8d4f67b fix(runtime): fix missing packpath entries 2021-10-31 15:37:09 +01:00
346227e3ad Merge pull request #16191 from jamessan/fix-cpack-removal
ci(win): only remove choco's cpack.exe if it exists
2021-10-31 10:35:43 -04:00
ec0f4fab48 ci(win): only remove choco's cpack.exe if it exists 2021-10-31 09:41:10 -04:00
52fa1d26db feat(lsp): add formatexpr (#16186)
Co-authored-by: Meck <yesmeck@gmail.com>
Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
2021-10-31 05:40:26 -07:00
4da0351651 fix(lsp): add placeholder cancel function (#16189)
Fixes a bug introduced by https://github.com/neovim/neovim/pull/15949

When no supported clients for a given method are available, buf_request
returns early with a nil value. If buf_request_sync is called on a
buffer with no clients that support a given method, the returned
`cancel` method (which is nil), is invoked, resulting in an error.

Solution: return an empty function handle
2021-10-31 04:44:45 -07:00
653d963293 Merge pull request #16182 from jamessan/backport-comment
ci(backport): trigger on comments too, so "/backport" works
2021-10-30 16:51:50 -04:00
a1eea968a5 ci(backport): trigger on comments too, so "/backport" works
[skip ci]
2021-10-30 16:50:13 -04:00
91f6c06b52 Merge pull request #16181 from jamessan/backport-perms
ci(backport): add write permissions for contents/pull_requests
2021-10-30 16:35:47 -04:00
9f5e736e5d ci(backport): bump version to v0.0.7
[skip ci]
2021-10-30 16:33:20 -04:00
0c1b80efec ci(backport): add write permissions for contents/pull_requests
The workflow needs to create commits and PRs.

[skip ci]
2021-10-30 16:29:02 -04:00
e501aac7ff Merge pull request #16180 from jamessan/release-workflow
Refactor release workflow to use gh instead of a third-party action
2021-10-30 16:07:31 -04:00
c84b86fe3d ci: make sure choco cpack does not interfere with CMake cpack
[skip ci]
2021-10-30 14:02:04 -04:00
c819ce1fd4 ci(release): do not fail if stable/nightly release doesn't exist
[skip ci]
2021-10-30 14:02:04 -04:00
eede587b06 ci(release): re-publish "stable" release for versioned releases
[skip ci]
2021-10-30 14:02:04 -04:00
0ce800753e ci(release): use gh cli instead of 3rd-party actions
Closes #15709

[skip ci]
2021-10-30 14:01:47 -04:00
2230b578d1 feat: add vim.str_utf_{start,end} (#16129)
vim.str_utf_{start,end} return the offset from the current position to
the start and end of the current utf-character (nearest codepoint)
respectively.
2021-10-30 10:30:40 -07:00
97ae0ab4d8 fix(vim-patch.sh): run nvim with -u NONE -n #16179
Problem:
Because of -u NORC, vim-patch.sh would hang on my machine due to one of my
plugins (start package) waiting for prompt input.

Solution:
- Use -u NONE instead to disable all plugins.
- Also use -n to disable swapfiles. These changes only apply to the --headless
  nvim instances used to process things.
2021-10-30 09:04:04 -07:00
c9e5c778b0 feat(lsp): default to botright for setting qflist (#16177)
* Opens quickfix list spanning the entire nvim window in location
  handlers

closes https://github.com/neovim/neovim/issues/12241
2021-10-30 08:17:00 -07:00
a141f6e922 fix(vim.mpack): rename pack/unpack => encode/decode #16175
Problem:
1. "unpack" has an unrelated meaning in Lua:
   https://www.lua.org/manual/5.1/manual.html#pdf-unpack
2. We already have msgpackparse()/msgpackdump() and
   json_encode()/json_decode(), so introducing another name for the same
   thing is entropy.

Solution:
- Rename vim.mpack.pack/unpack => vim.mpack.encode/decode

Caveat:
This is incongruent with the `Unpacker` and `Packer` functions.
- It's probably too invasive to rename those.
- They also aren't part of our documented interface.
- This commit is "reversible" in the sense that we can always revert
  it and add `vim.mpack.encode/decode` as _aliases_ to
  `vim.mpack.pack/unpack`, at any time in the future, if we want
  stricter fidelity with upstream libmpack. Meanwhile,
  `vim.mpack.encode/decode` is currently the total _documented_
  interface of `vim.mpack`, so this change serves the purpose of
  consistent naming in the Nvim stdlib.
2021-10-30 06:59:59 -07:00
eb6a1039c5 fix(build): remove amalg build target for LuaJIT (#16178)
fixup for #16041 (`amalg` build is recommended by LuaJIT for performance
but this way of doing it breaks parallel build with `make -j`)
2021-10-30 12:10:19 +02:00
e921e98ce3 refactor(diagnostic): make display handlers generic (#16137)
Rather than treating virtual_text, signs, and underline specially,
introduce the concept of generic "handlers", of which those three are
simply the defaults bundled with Nvim. Handlers are called in
`vim.diagnostic.show()` and `vim.diagnostic.hide()` and are used to
handle how diagnostics are displayed.
2021-10-29 18:47:34 -07:00
4472c56d54 refactor: uncrustify #16090 2021-10-29 17:23:20 -07:00
16d06fa3eb fix(eval): fix has('wsl') #16153
Problem:
has('wsl') is decided at build-time.

Solution:
Check os_uname().
Fixes #12642, #16143
2021-10-29 16:55:32 -07:00
ac358bfb2f Merge pull request #16154 from bfredl/neoscript
refactor(api): break out Vim script functions to its own file
2021-10-30 00:05:02 +02:00
615e03c33e build(deps): bump luv to 1.42.0-1 (#16113)
* Use uv_handle_size/uv_req_size instead of sizeof
* LuaJIT: add missing LJ_ENDIAN and LJ_NO_UNWIND checks for DASM [fixes building on aarch64]
2021-10-29 17:55:21 +02:00
6acfbd810d build(deps): bump luajit to latest commit (#16041)
bump LuaJIT to b4b2dce9fc
now requires `-funwind-tables` build flag, which conflicts with
`-DLUA_USE_ASSERT`
2021-10-29 17:54:59 +02:00
a60beeb34f refactor(api): break out Vim script functions to its own file 2021-10-29 16:59:53 +02:00
c3a3e65428 refactor(api): break out vim_to_object/object_to_vim to own file 2021-10-29 15:52:28 +02:00
d1c470957b feat(lsp): track pending+cancel requests on client object #15949 2021-10-29 05:45:01 -07:00
1dbbaf89bf fix(eval): checking for a non-empty string is too strict (#15987)
Cherry-pick check_for_nonempty_string() from patch vim-8.2.2133 and
apply it on the bases of https://github.com/neovim/neovim/pull/13489

2a9d5d386b
2021-10-28 22:13:40 -04:00
bb79e05f81 vim-patch:8.2.3556: filler lines are incorrect for other window in diff mode (#16164)
Problem:    Filler lines are incorrect for other window in diff mode after
            making a change.
Solution:   Copy filler lines from the current window. (closes vim/vim#8809)
841c225b9e
2021-10-28 22:04:57 -04:00
4a618b00bc Merge pull request #16141 from dundargoc/ci/split-jobs 2021-10-28 11:57:17 -04:00
a91a5c1880 ci: run functionaltest-lua on drafts as well 2021-10-28 10:55:26 +02:00
7ff1bc18a9 fix(float): redraw if w_border_adj changed 2021-10-28 06:32:36 +08:00
de670f3809 fix(float): fix potential heap corruption in win_redr_border 2021-10-28 06:32:36 +08:00
d918759dee test(vim_spec): fix MSVC_32 skip for nvim_parse_expression test (#16161)
"works with &opt" is flaky; now it always fails after #15999 for some reason.

This test was skipped in #10773 due to previous flakiness, but after the switch away from appveyor
the check no longer works. Just skip for any CI running the MSVC_32 job.
2021-10-27 16:27:17 -06:00
3e1ef18579 ci: add newly added api file extmark.c to gen-vimdoc (#16158) 2021-10-27 11:42:19 -06:00
a5d6f36fc7 Merge pull request #16125 from dundargoc/refactor/lua/split-executor
refactor: split lua/executor.c into two files
2021-10-26 21:43:13 +02:00
13d331ef0d refactor: split executor.c into two files 2021-10-26 21:04:52 +02:00
6cc456deeb feat(ci): add backport PR action (#14766)
Trigger the backport action upon merge by marking a PR with the label `backport <branchname>` or after merge by applying the label and writing a comment containing `/backport`.
2021-10-26 08:45:15 -07:00
5e207a65e3 Merge pull request #16149 from zeertzjq/man-clean 2021-10-26 10:12:35 -04:00
f75d00456d Merge pull request #16147 from bfredl/neomark
refactor(api): move extmark API to its own file
2021-10-26 10:45:11 +02:00
72309d13b4 docs(manpage): update description of --clean 2021-10-26 07:03:14 +08:00
c8882ca7e7 refactor(api): move extmark API to its own file 2021-10-25 22:33:40 +02:00
09e96fe609 Merge pull request #16124 from mjlbach/feat/bjorn-bait
feat: add vim.str_utf_pos
2021-10-24 16:20:16 +02:00
d752cbc4d2 feat: add vim.str_utf_pos function
vim.str_utf_pos returns the codepoints for all utf-8 chars (only, currently)
in a string
2021-10-24 03:35:38 -07:00
b092171e7c vim-patch:8.2.3525: option variable name does not match option name
Problem:    Option variable name does not match option name. (Christ van
            Willigen)
Solution:   Rename the variable.
d4c4bfa007
2021-10-24 08:57:30 +02:00
6acebb8b56 vim-patch:8.2.3547: opening the quickfix window triggers BufWinEnter twice (#16108)
Problem:    Opening the quickfix window triggers BufWinEnter twice. (Yorick
            Peterse)
Solution:   Only trigger BufWinEnter with "quickfix". (closes vim/vim#9022)
1d30fde3c9
2021-10-23 21:55:04 -04:00
36ff5976b9 vim-patch:8.2.3521: options completion test fails
Problem:    Options completion test fails.
Solution:   Add 'thesaurusfunc' to the results.
abdcfd1c83
2021-10-23 22:30:53 +02:00
cbec765915 vim-patch:8.2.3520: cannot define a function for thesaurus completion
Problem:    Cannot define a function for thesaurus completion.
Solution:   Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes vim/vim#8987,
            closes 8950)
160e994d76
2021-10-23 22:30:50 +02:00
9f392c071a vim-patch:partial 079ba76ae7a7 (#16126)
Update runtime files
079ba76ae7

skip optwin.vim (needs 8.2.3520)
skip doc/options.txt (needs 8.2.1535)
skip doc/insert.txt (needs 8.2.3528)
2021-10-23 22:29:17 +02:00
966e605db9 Merge pull request #16128 from bfredl/vluapack
feat(lua): document support of packages with v:lua syntax
2021-10-23 21:44:30 +02:00
96ce6327a3 vim-patch:8.2.3542: too many comments are old style (#16096)
Problem:    Too many comments are old style.
Solution:   Change comments to // style. (closes vim/vim#9021)
c5935a859e
2021-10-23 13:58:56 -04:00
4a0acd6fac vim-patch:8.2.0026: still some /* */ comments (#16088)
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
85a2002adb
2021-10-23 13:56:43 -04:00
bb9e6a1583 Merge pull request #16111 from dundargoc/vim-patch/comments
vim-patch:8.1.2368,8.1.2378,8.1.2379,8.1.2380,8.1.2387,8.1.2388,8.1.2392,8.1.2394,8.1.2395,8.1.2396
2021-10-23 13:05:19 -04:00
9dd371bb2e feat(lua): document support of packages with v:lua syntax
this already worked in 0.5 but was not properly documented or tested
2021-10-23 18:24:00 +02:00
fa4b24072e Merge pull request #16029 from bfredl/multiline
feat(decorations): support more than one virt_lines block
2021-10-23 16:54:49 +02:00
8d7816cf27 feat(decorations): support more than one virt_lines block 2021-10-23 14:17:09 +02:00
8ade2f5b04 refactor(decorations): mark decorations directly on the marktree
This allows to more quickly skip though regions which has non-decorative
marks when redrawing. This might seem like a gratuitous
micro-optimization in isolation.

But!

Soon decorations are gonna crop into other hot inner-loop paths,
including the plines.c code for calculating the horizontal and
vertical space of text. Then we want to quickly skip over regions with
"only" overlaying decorations (which do not affect text size)
2021-10-23 11:11:00 +02:00
cb15055c29 fix(lsp): cleanup progress messages for the correct client (#16110) 2021-10-21 09:36:27 -07:00
80456cf836 feat(lsp): add exit_timeout flag (#16070)
* This flag allows customizing the time before sending kill -15 to the
  server. If set to false, neovim exits immediately after sending
  request('shutdown'). Otherwise, polls until all servers have shutdown,
  and then kills remaining servers via kill -15 at exit_timeout
  duration. Defaults to 500 ms.
2021-10-21 09:36:01 -07:00
eaa03b7181 vim-patch:8.2.3550: completion() does not work properly (#16112)
* vim-patch:8.2.3550: completion() does not work properly

Problem:    completion() does not work properly.
Solution:   Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita,
            closes vim/vim#9016)
ae38a9db77

Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
2021-10-21 17:46:24 +02:00
e59c0009a7 vim-patch:8.1.2396: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
e38eab22c1
2021-10-21 12:07:15 +02:00
8000f6d566 vim-patch:8.1.2395: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
0d6f5d9740
2021-10-21 12:07:14 +02:00
daf670dde6 vim-patch:8.1.2394: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
63d9e730f7
2021-10-21 12:07:14 +02:00
ce441b8b13 vim-patch:8.1.2392: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
6e0ce171e1
2021-10-21 12:07:14 +02:00
df27579f54 vim-patch:8.1.2388: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
4ba37b5833
2021-10-21 12:07:14 +02:00
1d54153ee0 vim-patch:8.1.2387: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2ab2e8608f
2021-10-21 12:07:14 +02:00
050130ce12 vim-patch:8.1.2380: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
306139005c
2021-10-21 12:07:14 +02:00
f677ba4dab vim-patch:8.1.2379: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
217e1b8359
2021-10-21 12:07:14 +02:00
122c0dfb5d vim-patch:8.1.2378: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
5d18efecfd
2021-10-21 12:07:14 +02:00
d5894ada70 vim-patch:8.1.2368: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
c667da5185
2021-10-21 12:07:14 +02:00
d0f10a7add Merge pull request #14794 from BK1603/gdbserver_fix
functionaltest: fix running tests under gdbserver
2021-10-20 21:27:40 +02:00
81717d2461 vim-patch:8.1.2243: typos in comments (#16104)
Problem:    Typos in comments.
Solution:   Fix the typos. (Dominique Pelle, closes vim/vim#5160)  Also adjust
            formatting a bit.
32aa10203b
2021-10-20 12:19:14 -07:00
c5525f265b fix(lsp): avoid duplicates in client attached buffers (#16099)
closes https://github.com/neovim/neovim/issues/16058

* add client.attached_buffers
* only update client.attached_buffers in on_attach
* use table instead of list for attached_buffers to avoid duplication
2021-10-20 09:33:09 -07:00
dc6c9fe442 fix(lsp): adjust legacy show diagnostic functions to use correct scope (#16106)
* `where` was renamed to `scope`
2021-10-20 08:27:55 -07:00
f421718d8d Merge pull request #16086 from bfredl/termpipe_input
feat(nvim_open_term): support input callback in lua
2021-10-20 14:27:28 +02:00
9e41e82481 feat(nvim_open_term): support input callback in lua 2021-10-20 13:07:43 +02:00
035d82e0d3 build: update cmake min version to 3.10 #16065
* build(cmake): update cmake min version to 3.10
* ci: test cmake minimum required version
* build(cmake): remove some legacy includes
  * Since version 3.5 cmake_parse_arguments is implemented natively.
2021-10-19 19:19:33 -07:00
427bac6877 fix(diagnostic): allow floats to be focusable (#16093)
Setting focus_id allows the float to be focused by calling the function
a second time (a feature of open_floating_preview).
2021-10-19 16:29:52 -06:00
a2994c82e3 fix(diagnostic): handle diagnostics placed past the end of line (#16095) 2021-10-19 16:27:49 -06:00
208d259e83 Merge pull request #15767 from lewis6991/lua_var_index
feat(lua): allow passing handles to `vim.b/w/t`
2021-10-19 22:21:31 +02:00
dfef90a518 fix(gen_vimdoc.py): spacing around inline elements #16092
The spacing fix drew attention to a couple of places that were using
incorrect formatting such as the key listing for `nvim_open_win`, so
those were fixed too.
2021-10-19 12:55:22 -07:00
6c5e7bde9a feat(lua): allow passing handles to vim.b/w/t
vim.bo can target a specific buffer by indexing with a number, e.g:
`vim.bo[2].filetype` can get/set the filetype for buffer 2. This change
replicates that behaviour for the variable namespace.
2021-10-19 19:47:33 +01:00
064411ea7f refactor(diagnostic)!: replace 'show_*' functions with 'open_float' (#16057)
'show_line_diagnostics()' and 'show_position_diagnostics()' are
almost identical; they differ only in the fact that the latter also
accepts a column to form a full position, rather than just a line. This
is not enough to justify two separate interfaces for this common
functionality.

Renaming this to simply 'show_diagnostics()' is one step forward, but
that is also not a good name as the '_diagnostics()' suffix is
redundant. However, we cannot name it simply 'show()' since that
function already exists with entirely different semantics.

Instead, combine these two into a single 'open_float()' function that
handles all of the cases of showing diagnostics in a floating window.
Also add a "float" key to 'vim.diagnostic.config()' to provide global
values of configuration options that can be overridden ephemerally.
This makes the float API consistent with the rest of the diagnostic API.

BREAKING CHANGE
2021-10-19 11:45:51 -06:00
sim
aa4f0879e3 feat(lsp): set codelens virtual text hl_mode to combine (#16048)
It looks a bit off with the extmark going over the cursorline.

(With hl_mode combine it keeps the background of the cursorline under the codelens virtualtext)
2021-10-19 18:41:57 +02:00
308fd88d0d vim-patch:8.2.3537: wrong mode() during 'operatorfunc' #16087
Problem:    mode() does not return the right value in 'operatorfunc'.
Solution:   Reset finish_op while calling 'operatorfunc'.
75c30e96cf
2021-10-19 07:39:25 -07:00
bdd180b5d2 docs: clarify chdir/CWD behaviors #16083 2021-10-19 07:37:11 -07:00
da7a4684df fix(api/nvim_eval_statusline): allow maxwidth=0 #16080
Allows disabling statusline truncation by allowing maxwidth to be
set to 0 in `nvim_eval_statusline`.
2021-10-19 07:35:44 -07:00
9fb0f12357 feat(man.vim): convert spaces to underscores #16068
PostgreSQL ships with man pages for SQL statements like `CREATE TABLE`,
which are provided with underscores as `man 7 CREATE_TABLE`. This patch
updates `man#open_page` (as used by `:Man`) such that visually selecting
the words `CREATE TABLE` in SQL code and pressing `K` properly opens the
desired man page.

Writing `:Man CREATE TABLE` still does not work, since `CREATE` is
interpreted as a section name. (Similarly, `:Man CREATE TABLE AS` fails
because there are too many arguments to `:Man`.) But this is okay,
because if you're typing it anyway then you can just enter underscores
and also tab-completion properly suggests `:Man CREATE_TABLE(7)`.

This is a bit bespoke, but my box has over 9000 man pages (as reported
by `man -k '' | wc -l`), and not one of them has a space in the man page
name, whereas the Postgres manuals do exist and are actually useful.

Test Plan:
On a machine with Postgres manual pages, running

    nvim -u NORC +'exe "norm iCREATE TABLE foo(x int);" | norm 0veeK'

should open the appropriate man page.

wchargin-branch: man-spaces-to-underscores
2021-10-19 07:24:43 -07:00
aac15cf4ad Merge #16000 refactor: uncrustify 2021-10-19 06:51:42 -07:00
6059784770 refactor: remove space after star 2021-10-19 15:20:33 +02:00
38dd53c525 refactor: make commas trail in enums 2021-10-19 15:20:33 +02:00
f98b8d2d44 refactor: enable formatting for files under lib 2021-10-19 15:20:33 +02:00
29b718d04c docs: regenerate (#15986)
Co-authored-by: marvim <marvim@users.noreply.github.com>
2021-10-19 06:03:20 -07:00
4219cfcb90 Merge pull request #16084 from dundargoc/ci/commitlint/checkout-branch-directly
ci(commitlint): use action to checkout to pr branch directly
2021-10-19 07:30:09 -04:00
9039aa24b6 ci(commitlint): use action to checkout to pr branch directly 2021-10-19 09:58:30 +02:00
9086938f7b feat(api): evaluate statusline string #16020
Adds API function `nvim_eval_statusline` to allow evaluating a
statusline string and obtaining information regarding it.

Closes https://github.com/neovim/neovim/issues/15849
2021-10-18 12:44:17 -07:00
e7ea54a3df feat(lsp): use vim.ui.select() in codelenses (#16004)
Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com> Mathias Fußenegger <mfussenegger@users.noreply.github.com>
2021-10-18 11:52:22 -07:00
bd2f61c6c4 fix(lsp): fix cursor row after textEdits (#16038) 2021-10-18 11:49:33 -07:00
bcc9ba51fa fix(lsp): persist diagnostic config for clients
Persist configuration settings set with `vim.lsp.with` and
`vim.lsp.diagnostic.on_publish_diagnostics` by setting the config for
the namespace associated with the client.
2021-10-18 10:01:41 -06:00
6b0a2e6996 build(install): rescan GLOB files on rebuild 2021-10-18 11:44:15 +02:00
389a898586 Merge pull request #16034 from rcowsill/ci/labeler/no-checkout
ci(labeler): Remove checkout steps
2021-10-17 21:18:27 -04:00
e62cac5be1 refactor: convert to doxygen-style comments #16013 2021-10-17 17:55:27 -07:00
aff444659e fix(PVS/V1028): prevent possible overflow #16023
Full warning: "Possible overflow. Consider casting operands, not the
result."

https://pvs-studio.com/en/docs/warnings/v1028/
2021-10-17 17:11:23 -07:00
ffc28dcbdb Merge pull request #15999 from famiu/fix/build/export-windows-symbols
fix(build): export symbols on Windows
2021-10-17 23:58:14 +02:00
8f9f127274 Merge pull request #15973 from bfredl/luapath
fix(runtime): don't use regexes inside lua require'mod'
2021-10-17 18:35:53 +02:00
a1e8199fff Merge pull request #15952 from zeertzjq/vim-8.1.1291
vim-patch:8.0.{1459,1460,1461,1463},8.1.{0602,0604,1291},8.2.{0189,0876,0909,1411}: chdir and DirChanged related patches
2021-10-17 10:26:11 -04:00
ea2023f689 fix(runtime): don't use regexes inside lua require'mod'
Fixes #15147 and fixes #15497. Also sketch "subdir" caching. Currently
this only caches whether an rtp entry has a "lua/" subdir but we could
consider cache other subdirs potentially or even "lua/mybigplugin/"
possibly.

Note: the async_leftpad test doesn't actually fail on master, at least
not deterministically (even when disabling the fast_breakcheck
throttling). It's still useful as a regression test for further changes
and included as such.
2021-10-17 16:21:42 +02:00
77e6ecf85a Merge pull request #15930 from dundargoc/vim-patch/old-style-c-comments
vim-patch:8.1.2396,8.1.2395,8.1.2394,8.1.2392,8.1.2368,8.1.2388,8.1.2379
2021-10-17 10:21:40 -04:00
d2d30dfabd fix(diagnostic): do not override existing config settings #16043
When using `true` as the value of a configuration option, the option is
configured to use default values. For example, if a user configures
virtual text to include the source globally (using
vim.diagnostic.config) and a specific namespace or producer configures
virtual text with `virt_text = true`, the user's global configuration is
overriden.

Instead, interpret a value of `true` to mean "use existing settings if
defined, otherwise use defaults".
2021-10-17 07:18:35 -07:00
38821cc50e test(dirchanged): add tests for DirChanged pattern "auto" 2021-10-17 22:04:53 +08:00
6004f9137a refactor(dirchanged): tab -> tabpage
Match Vim's behavior.
2021-10-17 22:04:53 +08:00
36290a2ebd vim-patch:8.2.1411: when splitting a window localdir is copied but prevdir is not
Problem:    when splitting a window localdir is copied but prevdir is not.
Solution:   Also copy prevdir. (closes vim/vim#6667)
a9a47d157a
2021-10-17 22:04:53 +08:00
60584c0245 vim-patch:8.2.0909: cannot go back to the previous local directory
Problem:    Cannot go back to the previous local directory.
Solution:   Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes vim/vim#4362)
002bc79991
2021-10-17 22:04:53 +08:00
34cfe74568 vim-patch:8.2.0876: :pwd does not give a hint about the scope of the directory
Problem:    :pwd does not give a hint about the scope of the directory
Solution:   Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes vim/vim#5469)
950587242c
2021-10-17 22:04:53 +08:00
b1dd90c760 vim-patch:8.2.0189: cd() with NULL argument crashes
Problem:    cd() with NULL argument crashes.
Solution:   Check for NULL. (Ken Takata, closes vim/vim#5558)
7cc96923c4
2021-10-17 22:04:53 +08:00
8a2489d0a4 test: partially port Vim patches 8.1.2278 and 8.2.1432 2021-10-17 22:04:53 +08:00
8727d38012 vim-patch:8.1.1291: not easy to change directory and restore
Problem:    Not easy to change directory and restore.
Solution:   Add the chdir() function. (Yegappan Lakshmanan, closes vim/vim#4358)
1063f3d200

Also includes some documentation changes from patch 8.1.1218.
2021-10-17 22:04:53 +08:00
57651df9c1 vim-patch:8.1.0604: autocommand test fails on MS-Windows
Problem:    Autocommand test fails on MS-Windows.
Solution:   Use pathcmp() instead of strcmp() to check if a directory differs.
9eb76af451
2021-10-17 22:04:53 +08:00
e91dee5c21 vim-patch:8.1.0602: DirChanged is also triggered when directory didn't change
Problem:    DirChanged is also triggered when the directory didn't change.
            (Daniel Hahler)
Solution:   Compare the current with the new directory. (closes vim/vim#3697)
2caad3fbbd
2021-10-17 22:04:53 +08:00
eed89d5e0c vim-patch:8.0.1463: test fails without 'autochdir' option
Problem:    Test fails without 'autochdir' option.
Solution:   Skip test if 'autochdir' is not supported.
ec48a9c589
2021-10-17 22:04:53 +08:00
920473d2f2 vim-patch:8.0.1459: cannot handle change of directory
Problem:    Cannot handle change of directory.
Solution:   Add the DirChanged autocommand event. (Andy Massimino,
            closes vim/vim#888)  Avoid changing directory for 'autochdir' too often.
b7407d3fc9

Only add "auto" pattern. "window" and "global" are already implemented.
Skip `Test_dirchanged_auto` using `CheckFunction test_autochdir`.
Part of PR #15952. More information can be found there.

N/A patches for version.c:

vim-patch:8.0.1460: missing file in patch

Problem:    Missing file in patch.
Solution:   Add changes to missing file.
b5cb65ba2b

vim-patch:8.0.1461: missing another file in patch

Problem:    Missing another file in patch.
Solution:   Add changes to missing file.
15833239a4
2021-10-17 22:04:53 +08:00
30af69509d Merge #15994 feat(:source, nvim_exec): script-local scope 2021-10-17 06:20:35 -07:00
aa644b7fd3 fix(build): export symbols on Windows
Closes https://github.com/neovim/neovim/issues/15063

Allows using Neovim core functions using LuaJIT FFI on Windows.
2021-10-17 18:49:55 +06:00
b98383a250 fixup! vim-patch:8.1.2379: using old C style comments 2021-10-17 12:04:06 +02:00
f19dc06081 vim-patch:8.2.3519: TOML files are not recognized (#16045)
Problem:    TOML files are not recognized.
Solution:   Add filetype patterns for TOML. (Aman Verma, closes vim/vim#8984)
28b6a3bef6
2021-10-16 23:38:05 +02:00
fc1cdb8821 Merge pull request #16042 from clason/vim-2286304cdbba
vim-patch:2286304cdbba
chore(test): adapt healthcheck test to new css syntax
2021-10-16 19:24:19 +02:00
fbc5b7b090 chore(test): adapt healthcheck test to new css syntax
The runtime file update
2286304cdb
added a `syn keyword` for `css`, which affects (via `html` and
`markdown` syntax files) the highlighting of `:checkhealth` output
(before, `ERROR:` was highlighted with `healthError`; now the colon is
no longer included).
2021-10-16 19:17:28 +02:00
0ba77f2f31 vim-patch:2286304cdbba
Update runtime files
2286304cdb
2021-10-16 18:03:51 +02:00
4476d4ef17 fixup! vim-patch:8.1.2388: using old C style comments 2021-10-16 17:53:03 +02:00
88ef0d3de4 fixup! vim-patch:8.1.2379: using old C style comments 2021-10-16 17:50:51 +02:00
46749faac4 fixup! vim-patch:8.1.2396: using old C style comments 2021-10-16 17:35:37 +02:00
1ced6cf08c vim-patch:8.2.3501: tmux filetype dection is incomplete (#16021)
Problem:    tmux filetype dection is incomplete
Solution:   Also use tmux for files having text after .conf. (Eric Pruitt,
            closes vim/vim#8971)
e519eb41c1
2021-10-15 20:01:36 -04:00
68b2a9e569 fix: correctly capture uri scheme on windows (#16027)
closes https://github.com/neovim/neovim/issues/15261

* normalize uri path to forward slashes on windows
* use a capture group on windows that avoids mistaking drive letters as uri scheme
2021-10-15 12:03:41 -07:00
4c4a41c70c ci(labeler): Remove checkout steps
Sets GH_REPO and passes PR number to `gh`, making checkout unnecessary
2021-10-15 15:08:12 +01:00
5fd4557573 Merge pull request #16014 from dundargoc/refactor/reduce-char-casts
refactor: reduce number of unique char casts
2021-10-14 23:48:42 +02:00
da9b0abc67 feat(:source, nvim_exec): defer script item creation until s:var access
For anonymous scripts, defer the creation of script items until an attempt to access a script-local
variable is made. This dramatically reduces the number of script items created when using lots of
vim.cmd and nvim_exec especially.

This will mean <SID> usage fails until a script-local variable access is first made.
2021-10-14 12:50:04 +01:00
88e16a7f30 Merge pull request #16019 from dundargoc/ci/commitlint/downgrade-necessary-git-version
ci: allow older git versions when using lintcommit
2021-10-14 07:10:33 -04:00
35c13620a1 ci: allow older git versions when using lintcommit
More specifically, use "git rev-parse --abbrev-ref HEAD" instead of "git
branch --show-current" to get current branch.
2021-10-14 10:13:56 +02:00
d4ed51eb44 feat(:source, nvim_exec): support script-local variables
Based on #13143 (and #11507) with changes:

 - Omit script_type_E. Use sn_name == NULL to determine anon items.
 - Keep SID_STR. Used by anon :source for .lua files (no item).
 - Show SID in get_scriptname output (:verbose set).
 - Factor item creation into new_script_item.
 - Leave sc_seq = 0 (anon scripts don't re-use the same item when re-sourced).
 - Add tests for anon :source.

Co-authored-by: Vikram Pal <vikrampal659@gmail.com>
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2021-10-14 01:27:10 +01:00
6b9cb665fa Merge pull request #16015 from dundargoc/ci/labeler/breaking-changes 2021-10-13 16:12:22 -04:00
348787a1b7 ci: make labeler also work for breaking changes
This means that

"refactor!: description"

and

"refactor(scope)!: description"

will add the "refactor" label.
2021-10-13 19:55:10 +02:00
24a1880866 refactor: reduce number of unique char casts 2021-10-13 18:26:18 +02:00
33e79237bc build(tests): isolate the user environment XDG_DATA_DIRS #16003
Problem:
Some tests were not passing on my machine, specifically in
`test/functional/api/vim_spec.lua` the two tests under
`describe('nvim_get_runtime_file...`

Solution:
Unset `XDG_DATA_DIRS` in the test runner.
Note: Window CI failed if we set it to the same value as `XDG_DATA_HOME`.
2021-10-12 20:12:11 -07:00
5365f24168 fix(heath/provider.vim): using list as string #16007
Fixes #15988
2021-10-12 20:06:19 -07:00
649b3160a1 refactor: reduce number of unique char casts (#15995) 2021-10-12 17:52:54 +02:00
64f0fdc682 docs: .git-blame-ignore-revs #15775 2021-10-12 08:00:13 -07:00
40be47e0fa refactor: format all C files under nvim/ #15977
* refactor: format all C files under nvim
* refactor: disable formatting for Vim-owned files:
    * src/nvim/indent_c.c
    * src/nvim/regexp.c
    * src/nvim/regexp_nfa.c
    * src/nvim/testdir/samples/memfile_test.c
2021-10-12 07:56:52 -07:00
ee342d3cef fix(lsp): maintain client_ids table structure when filtering (#15991) 2021-10-11 08:52:11 -07:00
d288daac2b fix(lsp): do not invoke handlers for unsupported methods (#15926)
Closes https://github.com/neovim/neovim/issues/15174

Instead of invoking handlers with unsupported methods, pre-compute which
clients support a given method and only notify the user if no clients
support the given method.
2021-10-10 22:32:50 -07:00
b3e0d6708e Merge pull request #15502 from seandewar/vim-8.1.1921
Add method call support for more built-ins: vim-patch:8.1.{1336,1952,1961,1984}
2021-10-10 16:48:24 -04:00
62eec98d5f vim-patch:8.2.3491: xpm2 filetype dection is not so good (#15982)
Problem:    xpm2 filetype dection is not so good.
Solution:   Adjust the check for xpm2. (closes vim/vim#8914)
6e77b88df6
2021-10-10 20:57:09 +02:00
45fa70adcb fix(lsp): add done flag to messages returned in util.get_progress_messages() (#15985) 2021-10-10 11:41:16 -07:00
f4359b5dbd vim-patch:8.2.3461: distinguish Normal and Terminal-Normal mode #15878
Problem:    Cannot distinguish Normal and Terminal-Normal mode.
Solution:   Make mode() return "nt" for Terminal-Normal mode. (issue vim/vim#8856)
72406a4bd2
2021-10-09 18:15:46 -07:00
65b8232260 vim-patch:8.2.{210,424,436,...} #15976
* vim-patch:8.2.1082: Coverity complains about ignoring dict_add() return value

Problem:    Coverity complains about ignoring dict_add() return value.
Solution:   Add (void).
91639195ef

N/A patches for version.c:

vim-patch:8.2.0210: Coverity complains about uninitialized field

Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the field.
eed3571fe0

vim-patch:8.2.0424: checking for wrong return value

Problem:    Checking for wrong return value. (Tom)
Solution:   Invert the check and fix the test.
97acfc781b

vim-patch:8.2.0436: no warnings for incorrect printf arguments

Problem:    No warnings for incorrect printf arguments.
Solution:   Fix attribute in declaration.  Fix uncovered mistakes. (Dominique
            Pelle, closes vim/vim#5834)
db99f9f29a

vim-patch:8.2.0498: Coverity complains about uninitialized field

Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the whole typval_T.
4227c789ff

vim-patch:8.2.0668: compiler warning for int/size_t usage

Problem:    Compiler warning for int/size_t usage.
Solution:   Change "int" to "size_t". (Mike Williams)
7f6f56f43c

vim-patch:8.2.1034: compiler warning for uninitialized variables

Problem:    Compiler warning for uninitialized variables.
Solution:   Add initializations. (John Marriott)
38041da1c2

vim-patch:8.2.1117: Coverity warns for unsing unitialized field

Problem:    Coverity warns for unsing unitialized field.
Solution:   Initialize v_lock.
a9a8e5f0dc

vim-patch:8.2.1148: warning for using int instead of size_t

Problem:    Warning for using int instead of size_t.
Solution:   Change "len" argument to size_t. (Mike Williams)
cbb6bdcd89

vim-patch:8.2.1251: Vim9: warning for pointer usage, test failure undetected

Problem:    Vim9: warning for pointer usage, test failure undetected.
Solution:   Fix pointer indirection.  Give error when executing function
            failed for any reason.  Fix instruction names.
682d0a1546

printable_func_name() is applicable but the vim9 changes are N/A.
Compilers can detect misuse of static functions.

vim-patch:8.2.1275: Vim9: compiler warning for buffer size

Problem:    Vim9: compiler warning for buffer size.
Solution:   Change the offset from 10 to 15. (Dominique Pellé, closes vim/vim#6518)
5a67c37a55

vim-patch:8.2.1443: Vim9: crash when interrupting a nested :def function

Problem:    Vim9: crash when interrupting a nested :def function.
Solution:   Push a dummy return value onto the stack. (closes vim/vim#6701)
cdd70f09a5

vim-patch:8.2.1818: SE Linux: deprecation warning for security_context_t

Problem:    SE Linux: deprecation warning for security_context_t.
Solution:   Use "char *" instead. (James McCoy, closes vim/vim#7093)
8956023920

SELINUX support was removed in commit 1de77bbcec

vim-patch:8.2.2004: compiler warning for uninitialized variable

Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize "ufunc". (John Marriott)
b3a01946b3

vim-patch:8.2.2051: Vim9: crash when aborting a user function call

Problem:    Vim9: crash when aborting a user function call.
Solution:   Do not use the return value when aboring. (closes vim/vim#7372)
34c54eb6cb

vim-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.
38a434f7ba

vim-patch:8.2.2333: Vim9: warning for uninitialized variable

Problem:    Vim9: warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize "res".
cb6cbf29e9

vim-patch:8.2.2460: Coverity warns for unused value

Problem:    Coverity warns for unused value.
Solution:   Do not reset the return value to OK.
fc1dafa91c

vim-patch:8.2.2461: Coverity warns for unchecked return value

Problem:    Coverity warns for unchecked return value.
Solution:   Add "(void)" to avoid the warning.
fef8064b54

vim-patch:8.2.2557: compiler warning for shadowd variable

Problem:    Compiler warning for shadowd variable.
Solution:   Declare "p" only once.
087b5ff35d

vim-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.
c9605f0595

vim-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.
169502fb0b

vim-patch:8.2.2995: linker errors with dynamic Python 3.10

Problem:    Linker errors with dynamic Python 3.10.
Solution:   Add a couple of library entries. (Zdenek Dohnal, closes vim/vim#8381,
            closes vim/vim#8356)
90478f35a8

vim-patch:8.2.3000: Vim9: warning for uninitialized variable

Problem:    Vim9: warning for uninitialized variable.
Solution:   Add initialization. (John Marriott)
3b814af7e1

vim-patch:8.2.3014: Coverity warns for freeing static string

Problem:    Coverity warns for freeing static string.
Solution:   Do not assign static string to pointer. (Dominique Pellé,
            closes vim/vim#8397)
6e9695525e

vim-patch:8.2.3205: Coverity reports a null pointer dereference

Problem:    Coverity reports a null pointer dereference.
Solution:   Change the logic to avoid Coverity gets confused.
1b862c466b

vim-patch:8.2.3294: Lua: memory leak when adding dict item fails

Problem:    Lua: memory leak when adding dict item fails.
Solution:   Free the typval and the dict item.
1b6acf02b7

vim-patch:8.2.3302: Coverity is not run from github

Problem:    Coverity is not run from github.
Solution:   Add a coverity script. (James McCoy, closes vim/vim#8714)
d57a6bd98c

vim-patch:8.2.3319: Coverity action on github does not work

Problem:    Coverity action on github does not work.
Solution:   Remove undefined $SRCDIR. (James McCoy, closes vim/vim#8739)
eed9616120

* vim-patch:8.2.1085: Coverity complains about ignoring dict_add() return value

Problem:    Coverity complains about ignoring dict_add() return value.
Solution:   Add (void).
6d90c61c5a
2021-10-09 16:40:11 -07:00
5940a3415b vim-patch:8.2.3490: superfluous return statements #15978
Problem:    Superfluous return statements.
Solution:   Remove superfluous return statements from void functions.
            (closes vim/vim#8977)
3826c0513b
2021-10-09 16:38:50 -07:00
0fc8597f01 refactor: format header files with uncrustify #15877
* refactor: format header files with uncrustify
* fixup(justin): skip formatting of terminfo_defs.h
* fixup: force winsock2 to be included first
* fixup: simplify disable/enable directive to "uncrustify:off/on"
2021-10-09 05:20:16 -07:00
a36c6e5df9 fix(checkhealth): duplicate checks if module name has "-" #15935
Problem:    Some plugins have structure `lua/nvim-someplugin/..`
            Since `-` is not allowed in vim function names, healthcheck names in
            lua and in vim can not have the same name (typically vim will use `_`
            instead of `-`).
Solution:   Normalize the names before checking for duplicates.
2021-10-08 17:36:35 -07:00
f620008e59 ci: disable commit-lint on draft PRs #15958 2021-10-08 17:08:47 -07:00
2f50c7b5a3 ci(squash_typos.py): credit authors #15967 2021-10-08 16:37:45 -07:00
1e876bd9a8 fix(mpack): clang warning: unused variable #15968 2021-10-08 16:05:26 -07:00
4f4dbfe81c fix(lsp): update tests using 0.5.0 handler calls (#15969)
Fixes test regression introduced in https://github.com/neovim/neovim/pull/15262
2021-10-08 14:01:55 -07:00
fcc11d5942 fix(lsp): add textDocument/prepareRename to capability map (#15961)
This is a simple fix for #15899, as it should at least stop calling
`prepareRename` on servers that don't support renaming.

I imagine a better fix would be to inspect the actual value for, but
that requires some plumbing changes on how capabilities are evaluated
before sending requests out.

Co-authored-by: francisco souza <fsouza@users.noreply.github.com>
2021-10-08 11:30:18 -07:00
d5dd0aa1e6 fix(diagnostic): error on invalid severity value (#15965)
Users can pass string values for severities that match with the enum
names (e.g. "Warn" or "Info") which are converted to the corresponding
numerical value in `to_severity`. Invalid strings were simply left
as-is, which caused confusing errors later on. Instead, report an
invalid severity string right up front to make the problem clear.
2021-10-08 12:28:02 -06:00
3f09732195 fix(lsp): expose ContentModified error code to callbacks (#15262) 2021-10-08 11:19:33 -07:00
5cbd0fba00 Merge pull request #15962 from bfredl/nosort
fix(buffer_updates): handle :sort of already sorted buffer
2021-10-08 18:19:18 +02:00
e9d6f7ca6c feat(lsp): utilize textEdit.range for startbyte in omnifunc (#15957)
Closes https://github.com/neovim/neovim/issues/15784
2021-10-08 08:47:59 -07:00
ef687d3218 fix(buffer_updates): handle :sort of already sorted buffer 2021-10-08 16:15:35 +02:00
93d33ed02e Merge pull request #15954 from virchau13/fix-table-validation
fix(api): check type in nlua_pop_keydict (fixes #15940)
2021-10-08 13:50:29 +02:00
6064376f6d fix(api): check type in nlua_pop_keydict (#15940) 2021-10-08 18:22:33 +08:00
7f93b2ab01 fix: support severity_sort option for show_diagnostic functions (#15948)
Support the severity_sort option for show_{line,position}_diagnostics.
2021-10-07 19:19:30 -06:00
e16adbf238 fix(provider): compare versions as number, not string #15937
"3.10" < "3.3" but v3.10 > v3.3
Fixes #14586
2021-10-07 14:27:40 -07:00
2d206d5ab2 Merge pull request #15946 from bfredl/issue-12861
fix(buffer_updates): make lockmarks not affect extmarks and buffer updates
2021-10-07 20:52:10 +02:00
fe608750a9 Merge pull request #15839 from bfredl/encgrugg
refactor(api): some cleanup
2021-10-07 20:29:53 +02:00
54b2c6800e fix(buffer_updates): cleanup test behavior 2021-10-07 20:22:10 +02:00
7d171b1c48 fix(buffer_updates): make lockmarks not affect extmarks and buffer updates. fixes #12861
Now mark_adjust() will trigger appropriate buf_updates_send_splice() called by extmark_adjust()
2021-10-07 20:21:23 +02:00
206f4429c6 Merge pull request #15945 from bfredl/emptydelete
fix(buffer_updates): handle :delete of the very last line in buffer
2021-10-07 20:13:15 +02:00
413bb6b7a4 refactor(api): cleanup modify_keymap and parse_keymap_opts 2021-10-07 19:45:30 +02:00
8335e26b2d fix(buffer_updates): handle :delete of the very last line in buffer 2021-10-07 19:35:49 +02:00
b9a35ec7a4 Merge pull request #15934 from kylo252/replacement-size
fix(lint): remove redundant ternary operator
2021-10-07 18:57:48 +02:00
684299ed4c Merge pull request #15941 from dundargoc/refactor/remove-redundant-casts
refactor: remove redundant casts
2021-10-07 18:39:27 +02:00
b55944e8af feat(diagnostic): update jumplist on goto_next/prev (#15942) 2021-10-07 08:46:17 -07:00
cbc60524f1 Merge pull request #15932 from erw7/fix-nvim-buf-set-extmark
fix(api): fix nvim_buf_set_extmark
2021-10-07 17:31:56 +02:00
7356d3cdbd Merge pull request #15316 from vigoux/ts-fix-captures
fix(treesitter): run predicates more often in iter_matches
2021-10-07 16:00:36 +02:00
6d9dea4201 refactor: remove redundant casts 2021-10-07 13:16:55 +02:00
23383451b0 fix(api): fix nvim_buf_set_extmark
Fix the problem of calling clear_virttext on undefined variables.
2021-10-07 19:03:54 +09:00
83778ce567 refactor(api): remove duplicated handle mpack encode/decode functions 2021-10-07 08:00:28 +02:00
c61a3865ee fix: set cursorlineopt=number in terminal mode (#15493)
When entering terminal mode, cursorlineopt is no longer entirely
disabled. Instead, it's set to `number`. Doing so ensures that users
using `set cursorline` combined with `set cursorlineopt=number` have
consistent highlighting of the line numbers, instead of this being
disabled when entering terminal mode.

Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
2021-10-06 16:31:14 -06:00
e06936125a fix(extmarks): splice extmarks on nv_Undo #15920 2021-10-06 09:35:44 -07:00
47dd6c4f47 fix(lint): remove redundant ternary operator
The value of `new_len` will never be '0' since `replacement.size`
is checked against that early on.
2021-10-06 18:21:43 +02:00
d0c0878b3e fix(PVS/V1048): "variable was assigned the same value" #15870 2021-10-06 07:47:31 -07:00
45b9815fc1 refactor: remove superfluous function-like macros #15918
Remove following macros:
CONVERTED
HMLL_ITER_BACK
PACK_STRUCT
IGNORE_BUF
find_shada_parameter
path_try_shorten_fname
2021-10-06 06:27:27 -07:00
1034f7d7b1 vim-patch:8.2.0017: OS/2 and MS-DOS are still mentioned #15928
Problem:    OS/2 and MS-DOS are still mentioned, even though support was
            removed long ago.
Solution:   Update documentation. (Yegappan Lakshmanan, closes vim/vim#5368)
6f345a1458
2021-10-06 06:14:56 -07:00
a161559a00 fix(tui): remove dead code #15929
Before #15889, we used our fork of libuv which supports Windows 7/8.
After #15889, we use upstream libuv, which does not support Windows 7 and lacks
mouse/altbuf support for Windows 8 console.
2021-10-06 05:13:34 -07:00
0c7d7fb45d vim-patch:8.1.2379: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
217e1b8359
2021-10-06 11:50:10 +02:00
3b3e2244db vim-patch:8.1.2388: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
4ba37b5833
2021-10-06 11:50:10 +02:00
86f32dfcdd vim-patch:8.1.2368: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
c667da5185
2021-10-06 11:50:10 +02:00
b4acae2c4a vim-patch:8.1.2392: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
6e0ce171e1
2021-10-06 11:50:10 +02:00
41d3b98deb vim-patch:8.1.2394: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
63d9e730f7
2021-10-06 11:50:10 +02:00
e8f87f15d7 vim-patch:8.1.2395: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
0d6f5d9740
2021-10-06 11:50:10 +02:00
d6c789a571 vim-patch:8.1.2396: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
e38eab22c1
2021-10-06 11:49:42 +02:00
acd5e831b6 fix(checkhealth): mitigate issues with duplicate healthchecks #15919
* fix(runtime/health): mitigate issues with duplicate healthchecks
  Previously if a healthcheck was found as Lua and Vim it was executed
  both times.
  This new implementations prefers Lua, therefore if two are found It only
  runs the Lua one, this way a plugin can mantain both implementations the
  Lua one with the method `check()` and the autoload function `#check()`
  (for none HEAD nvim versions).
  **Note: This will require plugins to use `check()` as the function name,
  since the autoload function that wraps the lua implementation won't be
  called**
* docs(health): use spaces and don't overuse backtics

followup to #15259
2021-10-05 15:37:39 -07:00
6a930a9dc4 vim-patch:8.2.0155: MinGW warnings; tests without +float #15908
Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
            building without +float feature.
Solution:   Init variables. Fix Json parsing. Skip a few tests that require
            the +float feature.
a5d5953d59

Omit vim9 changes.
vim9 internal implementation is N/A,
similar to the `vimscript-*` features.

N/A patches for version.c:

vim-patch:8.1.0737: compiler warning for uninitialized variable

Problem:    Compiler warning for uninitialized variable.
Solution:   Add initialization. (John Marriott)
e519dfd713

vim-patch:8.1.1385: signed/unsigned compiler warning

Problem:    Signed/unsigned compiler warning.
Solution:   Use STRLEN() instead of strlen().
71de720c2c

vim-patch:8.2.0165: Coverity warning for using NULL pointer

Problem:    Coverity warning for using NULL pointer.
Solution:   Add missing "else".
5b18c248d3

vim-patch:8.2.0166: Coverity warning for using uninitialized variable

Problem:    Coverity warning for using uninitialized variable.
Solution:   Check for failure.
07da94b0f0

vim-patch:8.2.0167: Coverity warning for ignoring return value

Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and jump if failed.
58ceca5cae

"src/testdir/test_vim9*.vim" files are N/A
because vim9 code is currently unsupported.

vim-patch:8.2.0168: Coverity warning for assigning NULL to an option

Problem:    Coverity warning for assigning NULL to an option.
Solution:   Use empty string instead of NULL.
97a2af39cd

vim-patch:8.2.0169: Coverity warning for dead code

Problem:    Coverity warning for dead code.
Solution:   Check if inside try-finally.
8cbd6dfc0c

vim-patch:8.2.0170: Coverity warning for ignoring return value

Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and return if failed.
a6d536829a

vim-patch:8.2.0172: Coverity warning for not restoring character

Problem:    Coverity warning for not restoring character.
Solution:   Restore the character also in case of failure.
4549ece47c

vim-patch:8.2.0254: compiler warning for checking size_t to be negative

Problem:    Compiler warning for checking size_t to be negative.
Solution:   Only check for zero. (Zoltan Arpadffy)
ae8d2de3a9

vim-patch:8.2.0326: compiler warning for using uninitialized variable

Problem:    Compiler warning for using uninitialized variable. (Yegappan
            Lakshmanan)
Solution:   Do not jump to failed but return.
d5aec0ced1

vim-patch:8.2.3387: compiler warning for non-static function

Problem:    Compiler warning for non-static function.
Solution:   Make the function static. (Dominique Pellé, closes vim/vim#8816)
de05ae7158
2021-10-05 10:58:06 -07:00
59edd377d3 docs: regenerate #15545 2021-10-05 10:48:48 -07:00
dd7812ec66 fix(docs): add win_config.c 2021-10-05 09:56:22 -07:00
38ef66f4c1 fix(docs): duplicate tag, wrong formatting
Fixes build error:
    cd /usr/home/build/neovim/build/runtime && /usr/local/bin/cmake -E remove doc/* && /usr/local/bin/cmake -E copy_directory /usr/home/build/neovim/runtime/doc doc && /usr/home/build/neovim/build/bin/nvim -u NONE -i NONE -e --headless -c helptags\ ++t\ doc -c quit
    Error detected while processing command line:
    E154: Duplicate tag "vim.register_keystroke_callback()" in file doc/lua.txt
2021-10-05 09:45:25 -07:00
49fdc62114 feat(api): named marks set, get, delete #15346
Adds the following API functions.

- nvim_buf_set_mark(buf, name, line, col)
  * Set marks in a buffer.
- nvim_buf_del_mark(buf, name)
  * Delete a mark that belongs to buffer.
- nvim_del_mark(name)
  * Delete a global mark.
- nvim_get_mark(name)
  * Get a global mark.

Tests:

- Adds test to all the new api functions, and adds more for the existing
  nvim_buf_get_mark.
    * Tests include failure cases.

Documentation:

- Adds documentation for all the new functions, and improves the
  existing fucntion docs.
2021-10-05 08:49:20 -07:00
912a6e5a9c feat(lsp): improve json deserialization performance (#15854)
* Add optional second table argument to vim.json.decode which takes
  a table 'luanil' which can include the 'object' and/or 'array' keys. These
  options use luanil when converting NULL in json objects and arrays
  respectively. The default behavior matches the original lua-cjson.
* Remove recursive_convert_NIL function from rpc.lua, use
  vim.json.decode with luanil = { object = true } instead. This removes a hotpath
  in the json deserialization pipeline by dropping keys with json NULL
  values throughout the deserialized table.
2021-10-05 08:37:20 -07:00
f6c0a37b02 build(deps)!: use libuv 1.42.0 upstream for WIN32 (#15889)
Switch libuv from https://github.com/neovim/libuv fork to upstream for WIN32.
Upstream at 1.42.0 is now used for all platforms.

BREAKING CHANGE: removes Windows 7 support
BREAKING CHANGE: removes support for mouse and alternate buffers in TUI for
Windows 8 and 8.1
2021-10-05 17:23:42 +02:00
3b531d50a8 docs(contrib): recommend nvim --clean #15917 2021-10-05 08:01:09 -07:00
f6a9f0bfca fix(vim-patch): add missing nginx runtime files (#15916)
Followup to incomplete runtime update https://github.com/neovim/neovim/pull/15911
2021-10-05 15:19:16 +02:00
17f7c83f29 docs(intro.txt): change vimhelp.appspot.com to vimhelp.org (#15915)
Ref 6c1e1570b1 (diff-644ad027e3580bc940a6b7b4aaf1869bae267f7ff30e359e523d5de70e317106)
2021-10-05 06:49:15 -06:00
0c2a7aa5f7 vim-patch:6e649224926b (#15911)
Update runtime files
6e64922492
2021-10-05 14:12:16 +02:00
0a7a215aa6 fix(healthcheck): update builtins to the new convention #15914
Adjust some builtin healthchecks to use Lua, after #15259
2021-10-05 05:05:33 -07:00
6d8cafed40 ci: exclude lua-cjson from PVS report #15859 2021-10-05 05:02:49 -07:00
a2734efdc2 vim-patch:8.2.3473: some tcl files are not recognized #15912
Problem:    Some files with tcl syntax are not recognized.
Solution:   Add a few file patterns. (Doug Kearns)
78aa5ffe31
2021-10-05 04:21:52 -07:00
93a7571fab Merge pull request #15259 from muniter/muniter/checkhealth-from-lua
feat(checkhealth): support Lua healthchecks
2021-10-05 11:27:07 +02:00
655e489e90 docs(develop.txt): nvim_open_win is now in win_config.c (#15909) 2021-10-04 20:10:07 -06:00
8b43b07333 feat(ex_checkhealth): provide function for command line completion
Move away from providing completion with ExpandRTDir to ExpandGeneric
providing the function get_healthcheck_name which caches the results for
the current command line prompt.

It does the almost the same thing the Vim function 'get_healthcheck'
implemented in 'runtime/autoload/health.vim' does.
2021-10-04 16:51:54 -05:00
b60e6448eb Merge pull request #15813 from bfredl/neomouse
fix(mouse): correct dragged position in composed layout
2021-10-04 23:08:39 +02:00
8f2a8b50da docs(runtime/health): update with new lua support
- describe how the lua support works
- explain new behavior of :checkhealth *
- fixed formatting to use tab instead of spaces
2021-10-04 14:28:54 -05:00
c65f956015 test(runtime/health): cover lua healthchecks
- Add tests for lua healthchecks (failure, success and submodules).
- Reword some of the test naming for improved logs readability.
- Modify render test to accomodate the changes of the health autoload function.
- Add test for :checkhealth completion of Lua healtchecks.
2021-10-04 14:28:54 -05:00
9249dcdda1 feat(runtime/health): support lua healthchecks
- Refactor health.vim to discover lua healthcheck in the runtime
  directories lua/**/health{/init}.lua
- Support healthchecks for lua submodules e.g :checkhealth vim.lsp and
  also support wildcard "*" at the end for all submodules
  :checkhealth vim*
- Refactor health.vim to use variable scope instead of output capturing
- Create health.lua module to wrap report functions and future
  extensibility.
- Move away from searching just in the runtimepath, use
  `nvim_get_runtime_file` due to #15632

Example:
Plugin linter in rtp can declare it's checkhealts in lua module
`lua/linter/health{/init}.lua` that returns a table with a method
"check" that when executed calls the report functions provided by the
builtin lua module require("health").

The plugin also has a submodule `/lua/linter/providers` in which it
defines `/lua/linter/providers/health{/init}.lua`

This plugin healthcheck can now be run by the ex command:
  `:checkhealth linter linter.providers`

Also calling all submodules can be done by:
  `:checkhealth linter*

And "linter" and "linter.provider" would be discovered when:
  `:checkhealth`
2021-10-04 14:28:54 -05:00
83fa8956c3 docs: fix typo 2021-10-04 13:09:32 -06:00
810da1a702 fix(mouse): correct dragged position in composed layout 2021-10-04 21:00:42 +02:00
253a012469 Merge pull request #15901 from bfredl/apiorg
refactor(api): re-organanize public and private API functions
2021-10-04 20:06:41 +02:00
22e4a2a286 refactor(api): move window config related functions to own file 2021-10-04 19:23:00 +02:00
c4d581deae refactor: inline unnecessary macros #15890 2021-10-04 08:35:18 -07:00
c7a63f35db feat(startup): load builtin plugins with --clean #15893
Closes #15605
2021-10-04 07:01:49 -07:00
44f7b46199 refactor: remove redundant char casts #15888 2021-10-04 06:40:43 -07:00
b4c54ffa22 Merge pull request #15894 from gpanders/hardcode-diagnostic-highlights
refactor: define diagnostic highlights in syntax.c
2021-10-04 10:52:05 +02:00
088026205f refactor: define diagnostic highlights in syntax.c 2021-10-03 20:06:06 -06:00
8a9f292991 Merge #15218 from gpanders/split-trimempty
feat(lua): add "noempty" param to vim.split()
2021-10-03 17:33:12 -07:00
a0bf28cd54 vim-patch:8.2.3469: some files with json syntax are not recognized (#15891)
Problem:    Some files with json syntax are not recognized.
Solution:   Add a few file patterns. (Emiliano Ruiz Carletti, closes vim/vim#8947)
50c5689342
2021-10-03 16:50:51 -06:00
a8504638cd feat(eval/method): partially port v8.1.1987
Cannot be fully ported as the remote_*() functions from +clientserver
are not yet ported. Include the test changes anyway.

line()'s optional winid argument was already ported. (Wasn't added in
this patch; this just adds documentation)
2021-10-03 20:12:20 +01:00
c5583df3c0 vim-patch:8.1.1984: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
3f4f3d8e7e

test_prompt_buffer.vim already had all the changes, except
Test_prompt_garbage_collect().
2021-10-03 20:12:20 +01:00
d23d37b212 vim-patch:8.1.1961: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.  Add a test for
            mapcheck().
a144983633

mzeval() (if_mzscheme) is N/A.
2021-10-03 20:12:20 +01:00
86593beaa4 feat(eval/method): partially port v8.1.1954
Does not include listener_*() functions.

js_*() functions are N/A.

json_encode() and json_decode() didn't include tests; add some anyway
(to json_functions_spec.lua).

test_lua.vim isn't included yet, so add tests to luaeval_spec.lua.
2021-10-03 20:06:33 +01:00
59c8a1fd51 feat(eval/method): partially port v8.1.1953
Adds method call support for all functions in the patch, but it cannot
be fully ported due to missing tests for:

- index(): requires Blobs from v8.1.0735.
           Note that index() was already added as a method in v8.1.1803;
           this patch only adds a test.

- iconv(): requires v8.1.1136 for test_termcodes.vim.

Nvim deprecated inputdialog(), so it no longer has an eval.txt entry.

Keep the test for hlexists() commented-out, just like previously. (Nvim
always defines the Number group, so it always returns 1 instead)

Cannot include both changes to test_syn_attr.vim as Nvim doesn't support
":hi term=..."; however, both test the same ->hlID() syntax anyway.
2021-10-03 20:06:32 +01:00
8b7615c735 vim-patch:8.1.1952: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.
5d69fdb7c4
2021-10-03 20:06:32 +01:00
3137c7d635 feat(eval/method): partially port v8.1.1925
Adds method call support for all functions in the patch, but it cannot
be fully ported due to missing tests for:

- getcwd(): requires chdir() and Test_chdir_func() from v8.1.1291.

Note that the method call tests for getreg() and getregtype() were
removed in v8.2.1547, which has already been ported, but doesn't seem to
have been replaced with a new test...

This patch also makes getchangelist()'s argument optional (defaults to
the current buffer).

eval.txt includes a typo for gettabwinvar(), which is fixed in
v8.1.1952.
2021-10-03 20:06:32 +01:00
6110480c29 feat(eval/method): partially port v8.1.1921
Adds method call support for all functions in the patch, but it cannot
be fully ported due to missing tests for:

- filereadable(): requires v8.1.1378 for Test_delete_rf(), but there
                  appears to have been some trouble porting it. (#12784)

- confirm(): requires v8.1.0832 for Test_confirm() and v8.1.0815 for
             feedkeys()'s "L" flag.

             (I did attempt to port the test using nvim_input() instead,
             but seems that input handling for confirm() doesn't work in
             --headless mode?)

             Note that confirm() was actually added as a method in
             v8.1.1915.

Uncomment use of method call syntax in Test_Executable() previously
included instead from v8.2.2259.
2021-10-03 20:06:31 +01:00
0193b3a391 vim-patch:8.1.1336: some eval functionality is not covered by tests
Problem:    Some eval functionality is not covered by tests.
Solution:   Add a few more test cases. (Masato Nishihata, closes vim/vim#4374)
17aca707f9

Test_expand() changes are required for v8.1.1921.
Test_call() and Test_cindent_func() are already ported.
2021-10-03 20:06:31 +01:00
7ba11e06c0 vim-patch:8.2.3466: completion submode not indicated for virtual replace (#15886)
Problem:    Completion submode not indicated for virtual replace.
Solution:   Add submode to "Rv". (closes vim/vim#8945)
cc8cd44533
2021-10-03 15:04:51 -04:00
04b59ebd85 vim-patch:8.2.3465: cannot detect insert scroll mode (#15885)
Problem:    Cannot detect insert scroll mode.
Solution:   Add "scroll" to complete_info(). (closes vim/vim#8943)
27fef59dd1
2021-10-03 14:53:58 -04:00
310d53e5d0 refactor(api): make export of functions opt-in, not opt-out 2021-10-03 16:14:47 +02:00
3beea1fe1b Merge pull request #15516 from bfredl/keyset
refactor(api): Represent option dicts as a structs in C and reduce conversion overhead from lua
2021-10-03 14:31:53 +02:00
9fe704f88e vim-patch:8.2.3464: nginx files are not recognized (#15883)
Problem:    nginx files are not recognized.
Solution:   Add several file patterns. (Chris Aumann, closes vim/vim#8922)
8b8c0ed657
2021-10-03 13:40:59 +02:00
32565922ef refactor(api): handle option dicts properly
Do not copy a lot of lua strings (dict keys) to just strequal() them
Just compare them directly to a dedicated hash function.

feat(generators): HASHY McHASHFACE
2021-10-03 10:46:57 +02:00
23d13aa4cc Merge pull request #15786 from gpanders/diagnostic-signs-unique-severity 2021-10-02 21:01:40 -06:00
0f554ef6f8 refactor(diagnostics): always make 'set' go through 'show'
Always make calls to `vim.diagnostic.set` call `vim.diagnostic.show`.
This creates an easier to reason about code path and is also less
surprising when users wish to override override `vim.diagnostic.show`
with custom behavior and `vim.diagnostic.set` is called with empty
diagnostics.

Functionally, the end result is the same: when `show` is called with an
empty diagnostics list, it just calls `hide` and then returns, which is
exactly what `reset` does right now.
2021-10-02 20:37:09 -06:00
1124439954 docs(diagnostic): add blurb on how to replace builtin handlers 2021-10-02 20:37:09 -06:00
c319c800cf test(diagnostic): add test case for signs 2021-10-02 20:37:09 -06:00
0c06da1f0a fix(nvim_open_win): crash if autocmds delete buffer/window #15549
win_set_buf can trigger autocmds if noautocmd=false. If they close the window,
code afterwards will dereference the freed win_T* wp pointer.

This interaction became possible after commit 1def3d1542.

The reason deleting curbuf crashes, and not the buf passed to
`nvim_open_win`, is because the float initially edits curbuf (`win_init`)
until it's later set to edit buf (windows from `:new` and `:split <buf>`
behave similiarly: approx. `:split`, then `:buffer <buf>`).

`do_buffer` closes windows when their edited buffer is deleted (unless
it's the only window; N/A for floats), so the float closes when curbuf
is deleted, so we need to check `win_valid` after `win_set_buf` too.

Closes #15548
2021-10-02 19:10:59 -07:00
ad1c42a97d vim-patch:8.2.3460: some type casts are not needed #15868
Problem:    Some type casts are not needed.
Solution:   Remove unnecessary type casts. (closes vim/vim#8934)
dfa5e464d4
2021-10-02 18:04:21 -07:00
4449297d12 docs(lsp): clarify parameters of some util functions (#15851)
`pad_left` and `pad_right` are unused
List used keys of `opts` in `make_floating_popup_options`
2021-10-02 17:55:54 -07:00
b3e815094b fix(float)!: always anchor to corner of window including border #15832
N, W, S, E are all inclusive, i.e., always anchor to the exact corner of the
window (including border). This line may also need change in this case (change
0 to -1):

This is most consistent and easiest to reason about, especially with GUIs whose
border do not need to have width/height of 1/1 in cell units.

Fix #15789
2021-10-02 17:36:24 -07:00
c5e8c39102 Merge #15803 fix(lsp_spec): tests depend on previous session 2021-10-02 16:50:20 -07:00
8c74c895b3 refactor: format with uncrustify #15872
* refactor: format with uncrustify
* refactor: fix function parameter comments
2021-10-02 14:41:50 -07:00
09307e64df fix(docs): uncrustify.cfg location #15817 2021-10-02 14:32:18 -07:00
ac973d5532 docs: remove obsolete text on language #15875 2021-10-02 14:30:13 -07:00
c4857b695f fix(input): resolve isolated (non-ALT/META) mappings #13109
Problem:
Since 2f06413dfb #13042, "ESC+c" sequence is treated as "ESC c"
instead of "M-c" (ALT/META+c) when not mapped, aka "fallthrough"
behavior. But "isolated" (non-ALT/META) mappings to ESC and c were not
resolved. This behavior is especially confusing for the TUI.

Solution:
Resolve isolated ESC, c mappings when there is no M-c mapping.
Change ins_char_typebuf() to escape CSI, K_SPECIAL.

fixes #13086
fixes #15869
2021-10-02 14:27:37 -07:00
79fb9ed080 Merge pull request #15867 from bfredl/starpack
fix(runtime): add compressed {&packpath}/start/*/pack/*[/after] representation to &rtp

by suggestion by at-tpope

Summary:

We can add XDG_DATA_DIR/nvim/site/pack/*/start/* (et al) as an unexpanded wildchar to &rtp which keeps it both short and explicit and still supporting globpath(&rtp, ...).

ref #15101
2021-10-02 17:47:55 +02:00
069d1de184 fix(lsp_spec): tests depended on previous session
- fix tests which accidentally depended on previous session
2021-10-02 08:26:57 -07:00
c74a706869 fix(release.sh): ignore failed "rm" 2021-10-02 08:26:57 -07:00
9c268263b1 refactor: format with uncrustify #15842
* refactor: format with uncrustify
* refactor: convert function comments to doxygen
2021-10-02 07:59:41 -07:00
9df7e022b4 fix(runtime): add packages as "/pack/*/start/*" patterns to &rtp
This makes `globpath(&rtp, ...)` work again for start packages
2021-10-02 16:45:19 +02:00
898f91f0f3 refactor: convert char_u to char #15824 2021-10-02 06:53:48 -07:00
a3b5b4a31e feat(vim-patch.sh): better detection of remote name #15846 2021-10-02 06:15:01 -07:00
724ffe7095 feat(diagnostics): add vim.diagnostic.get_namespaces (#15866)
Many vim.diagnostic functions expect the user to pass in a namespace id.

This PR allows the user to list active diagnostic namespaces:

```lua
:lua print(vim.inspect(vim.diagnostic.get_namespaces()))

{
  [7] = {
    name = "vim.lsp.client-1",
    opts = {},
    sign_group = "vim.diagnostic.vim.lsp.client-1"
  }
}
```
2021-10-01 22:50:28 -07:00
36408146ad docs(diagnostics): add "priority" option to signs table (#15860)
This feature was added in #15785, but the docs for
vim.diagnostic.config() weren't updated.
2021-10-01 19:07:55 -06:00
dc4670038e Merge pull request #15864 from jamessan/gitattributes
fix: include ci/ in exported tarball
2021-10-01 19:55:01 -04:00
d6f03aaafd fix: include ci/ in exported tarball
src/nvim/testdir/runnvim.sh re-uses the test suite code from ci/ to
cleanup the output of legacy tests.

Closes #15856

[skip ci]
2021-10-01 19:53:27 -04:00
a940952fe2 Merge pull request #15861 from dundargoc/refactor/xdiff
refactor: update path to xdiff in comments
2021-10-01 17:53:27 -04:00
1efbd4980f Merge pull request #15862 from dundargoc/refactor/xdiff-pvs
refactor: remove PVS comment on top of files
2021-10-01 17:52:50 -04:00
d9b3e41a63 Merge pull request #15863 from dundargoc/docs/contributing/commit-message
docs: update preferred commit message style for the static analyzer PRs
2021-10-01 17:52:13 -04:00
38b0306591 docs: update preferred commit message style for the static analyzer PRs 2021-10-01 21:22:32 +02:00
3134ef3d9f refactor: remove PVS comment on top of files
The xdiff directory is excluded from the PVS report so the comment isn't
required.
2021-10-01 21:08:53 +02:00
19ab0f22cc refactor: update path to xdiff in comments 2021-10-01 21:07:02 +02:00
458f2aad5c fix(treesitter): run predicates more often in iter_matches
Superseedes #15126, and fixes the issue.
2021-10-01 09:20:35 +02:00
9337fff8aa Merge pull request #15852 from bfredl/afteragain
fix(runtime): fix ordering of "after" packages
2021-09-30 22:32:02 +02:00
251ce9ddd1 fix(runtime): fix ordering of "after" packages
they must come after ordinary runtime dirs which are not "after"
2021-09-30 22:03:18 +02:00
7152353ade ci: add type and scope from PR title as labels #15850
This only works if the label exists in the first place of course.
2021-09-30 08:08:36 -07:00
270cc1d70f Merge pull request #14937 from dstein64/vim-8.1.2304
vim-patch:8.1.2304,8.1.2309,8.1.2319,8.1.2321
2021-09-29 20:59:53 -04:00
d90fb1c0bf Refactor/uncrustify (#15790)
* refactor: format with uncrustify

* fixup(dundar): fix functions comments

* fixup(dundar): remove space between variable and ++/--

* fixup(dundar): better workaround for macro attributes

This is done to be able to better use uncrustify rules for macros

* fixup(justin): make preprocessors follow neovim style guide
2021-09-29 19:48:50 +02:00
88442c2fa6 docs: add 'plus one' to correct getmousepos docs
This change was applied to Vim as part of 90df4b9.
90df4b9d42
2021-09-29 11:13:49 -04:00
096309037b chore: remove empty line
This update was part of vim-patch:4c29502.
4c295027a4
The other parts of that patch were applied to Neovim in ad6bb38.
2021-09-29 11:13:49 -04:00
ae97f25e9d test: add a test for getmousepos() 2021-09-29 11:13:49 -04:00
c423ee584a vim-patch:8.1.2321: cannot select all text with the mouse
Problem: Cannot select all text with the mouse. (John Marriott)
Solution: Move limiting the mouse column to f_getmousepos().
          (closes https://github.com/vim/vim/issues/5242)
0a5aa7b28a
2021-09-29 11:13:49 -04:00
037ec8f208 vim-patch:8.1.2319: compiler warning for int size
Problem: Compiler warning for int size.
Solution: Add typecast. (Mike Williams)
07a63d8633
2021-09-29 11:13:49 -04:00
95bf86c2bf vim-patch:8.1.2309: compiler warning for argument type
Problem: Compiler warning for argument type.
Solution: Use linenr_T and cast to varnumber_T. (John Marriott)
abe12a1a4f
2021-09-29 11:13:49 -04:00
3b9e75b366 vim-patch:8.1.2304: cannot get the mouse position when getting a mouse click
Problem:    Cannot get the mouse position when getting a mouse click.
Solution:   Add getmousepos().
db3a205147
2021-09-29 11:13:49 -04:00
ec4731d982 feat(lsp): add codeAction/resolve support (#15818)
Closes https://github.com/neovim/neovim/issues/15339 and https://github.com/neovim/neovim/issues/15828
2021-09-28 14:04:01 -07:00
3507d58dfb Merge pull request #15812 from bfredl/taba
fix(runtime): make a copy of runtime_search_path when iterating
2021-09-28 19:12:39 +02:00
19a77cd5a7 feat(lsp): add client command support to codelens (#15820)
Also adds a check against the server capabilities to fix
https://github.com/neovim/neovim/issues/15183
2021-09-28 09:19:19 -07:00
ff18a8bcc4 refactor(lsp): remove json encode/decode wrappers (#15826) 2021-09-28 09:13:44 -07:00
9ca7b6b71a fix(ui): s/format_entry/format_item to match docs (#15819)
Follow up to https://github.com/neovim/neovim/pull/15771
2021-09-27 16:12:03 -07:00
63fde086d9 feat(ui): add vim.ui.select and use in code actions (#15771)
Continuation of https://github.com/neovim/neovim/pull/15202

A plugin like telescope could override it with a fancy implementation
and then users would get the telescope-ui within each plugin that
utilizes the vim.ui.select function.

There are some plugins which override the `textDocument/codeAction`
handler solely to provide a different UI. With custom client commands and
soon codeAction resolve support, it becomes more difficult to implement
the handler right - so having a dedicated way to override the picking
function will be useful.
2021-09-27 21:57:28 +02:00
a0ec8597e3 fix(runtime): make a copy of runtime_search_path when iterating
This is to prevent concurrent modification, just like save_rtp
in the vim 8 implementation
2021-09-27 21:17:53 +02:00
6736ee8be5 chore: remove unused script finddeclarations.pl #15814 2021-09-27 09:02:42 -07:00
96614f84ab fix(lsp): avoid serializing boolean as key (#15810)
In vim.lsp.buf.references, the key vim.type_idx (which evaluates to a
boolean) was set to equal vim.types.dictionary. This resulted in a
boolean key in json which is not allowed by the json spec, and which
lua-cjson fails to serialize.
2021-09-27 00:32:30 -07:00
bec7f47cee docs: document dependencies in MAINTAIN.md #15801
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2021-09-26 17:24:20 -07:00
187e3a3b7e refactor(diagnostic): use sign priority for severity_sort #15785
Rather than relying on the order in which signs are placed to dictate
the order in which they are displayed, explicitly set the priority of
the sign according to the severity of the diagnostic and the value of
severity_sort. If severity_sort is false or unset then all signs use the
same priority.
2021-09-26 16:02:18 -07:00
cb51a1b615 docs: add lua-cjson to third-party licenses #15800 2021-09-26 14:57:57 -07:00
73280a7987 feat(lsp): allow subset of CodeActionContext as arg to code_action methods (#15793)
This makes it easier to filter the code actions. For example:

    vim.lsp.buf.code_action { only = 'refactor' }
2021-09-26 23:40:28 +02:00
c217766f7c feat(lsp): use cjson for lsp rpc (#15759) 2021-09-26 22:53:04 +02:00
68c65b7732 Merge pull request #14871 from mjlbach/feature/lua-cjson-embedded
feat(lua): expose lua-cjson as vim.json
2021-09-26 12:23:46 -07:00
3246bf5f4e ci(lintcommit.lua): replace third-party commitlint #15747 2021-09-26 12:13:59 -07:00
9c31f3b026 test: add tests for vim.json 2021-09-26 11:52:17 -07:00
9686c21237 Merge pull request #15797 from smolck/ui-stuff
fix(ui_bridge): set bridge width and height on attach
2021-09-26 20:16:39 +02:00
08ee03cb16 fix(ui_bridge): set bridge width and height on attach 2021-09-26 11:00:40 -05:00
44145847dc fix(tui): remove obsolete $NVIM detection #15791
Initially, we planned to set the NVIM environment variable to detect that
neovim is running in the neovim built-in terminal. At the time this code
was written, there was no way for a parent to set environment variables
for a program running in an embedded terminal. Later it was implemented in
 #12937, but the code to set the NVIM was not added. #11390 now uses ConPTY
instead of winpty when possible, so it is no longer necessary to force the
use of win32con even when running inside an embedded terminal. Therefore,
we now do not need this code.
2021-09-26 08:27:18 -07:00
d4fa1649fb Merge pull request #15351 from bfredl/virt_line
feat(screen): virtual lines
2021-09-26 16:56:19 +02:00
c273eb3100 refactor: replace sprintf with snprintf #15794 2021-09-26 07:53:51 -07:00
68d6ff8802 Merge pull request #15721 from bfredl/electricboogalo
fix(runtime): some ordering issues (and start work on cache mechanism)
2021-09-26 16:20:23 +02:00
ac3288d556 fix(runtime): ordering of loading packages with user config
site packages must be sourced before user config

NOTE: we only consider dirs exactly matching "after" to be an AFTER dir.
vim8 considers all dirs like "foo/bar_after", "Xafter" etc, as an
"after" dir in SOME codepaths not not in ALL codepaths.
2021-09-26 15:44:40 +02:00
392c658d4d feat(decorations): support virtual lines (for now: only one block at a time) 2021-09-26 12:19:54 +02:00
30fed27241 feat(lua): expose lua-cjson as vim.json
* add vim.json.encode and vim.json.decode
* use vim.NIL instead of cjson.null
* resolve strict-prototypes warnings

* The following benchmark shows an approximately 2.5x (750 ms vs 300 ms) improvement in deserialization performance over
  vim.fn.json_decode on a medium package.json

  ```lua
  local uv = vim.loop
  local function readfile(path)
    return
  end

  local json_url = "https://raw.githubusercontent.com/rust-analyzer/rust-analyzer/b24c8d5c89ee93d1172b4127564f5da3b0c88dad/editors/code/package.json"
  io.popen(string.format('curl -v -f -L -O %q &> /dev/null', json_url))

  local json_string = io.open('package.json'):read '*a'

  uv.update_time()
  local start = uv.hrtime()

  for i = 1,1000 do
    vim.fn.json_decode(json_string)
  end

  uv.update_time()
  print(string.format("Deserialization time vim.fn.json_decode: %s ms", (uv.hrtime() - start) * (1e-6)))

  uv.update_time()
  local start = uv.hrtime()

  for i = 1,1000 do
    vim.json.decode(json_string)
  end
  uv.update_time()
  print(string.format("Deserialization time vim.json.decode: %s ms", (uv.hrtime() - start) * (1e-6)))
  ```

Co-Authored-By: Björn Linse <bjorn.linse@gmail.com>
2021-09-26 00:35:55 -07:00
8decc9f52d feat(lua): add lua-cjson as vendored dependency
Derived from the openresty lua-cjson fork at commit 3d93d29709
2021-09-26 00:35:47 -07:00
84f66909e4 refactor: use kwargs parameter in vim.split 2021-09-25 20:11:32 -06:00
5fa26e2c2f feat: add trimempty optional parameter to vim.split
The `split()` VimL function trims empty items from the returned list by
default, so that, e.g.

  split("\nhello\nworld\n\n", "\n")

returns

  ["hello", "world"]

The Lua implementation of vim.split does not do this. For example,

  vim.split("\nhello\nworld\n\n", "\n")

returns

  {'', 'hello', 'world', '', ''}

Add an optional parameter to the vim.split function that, when true,
trims these empty elements from the front and back of the returned
table. This is only possible for vim.split and not vim.gsplit; because
vim.gsplit is an iterator, there is no way for it to know if the current
item is the last non-empty item.

Note that in order to preserve backward compatibility, the parameter for
the Lua vim.split function is `trimempty`, while the VimL function uses
`keepempty` (i.e. they are opposites). This means there is a disconnect
between these two functions that may surprise users.
2021-09-25 20:11:30 -06:00
b3b02eb529 docs(CONTRIBUTING.md): how to use uncrustify #15780
close #15780
2021-09-25 18:38:51 -07:00
8b0e6cc05d fix(api): fix crash after set_option_value_for() #15390
Problem:
This crashes Nvim:
    tabedit
    call nvim_win_set_option(1000, 'statusline', 'status')
    split
    wincmd J
    wincmd j

Solution:
- Change `no_display` parameter value to be the same as in matching
  `restore_win_noblock` call. In case of different values `topframe`
  isn't restored to `curtab->tp_topframe`.
- Call `restore_win_noblock` if `switch_win_noblock` returns `FAIL`
  (`switch_win` must always have matching `restore_win`)
- Change `switch_win`/`restore_win` to `_noblock` versions to allow
  autocommands.

fixes #14097
fixes #13577
2021-09-25 17:48:06 -07:00
2f9b9e61d7 refactor: format with uncrustify #15778
* fixup: force exactly one whitespace between type and variable
2021-09-25 17:16:04 -07:00
05d685be52 Merge pull request #15776 from jamessan/macos-11-ci
Add macos-11 CI
2021-09-25 09:43:57 -04:00
7cb34a341d test(normal): CA_COMMAND_BUSY in visual select mode #15292
Fix was already applied in 5f144efefa #15688,
but this commit adds another dimension to the test.

Test correctly fails after reverting 5f144efefa.

ref #15288
2021-09-24 09:59:36 -07:00
64a5eddc89 ci: use runner, instead of os, for job name and cache key 2021-09-24 09:01:50 -04:00
e0cf32c6de ci: add macOS 11 build 2021-09-24 09:01:30 -04:00
bc570b0064 Merge #15774 fix(pvs): fix warnings, script 2021-09-24 05:13:55 -07:00
55d1e630b4 Merge #15731 vim-patch:7.4.725,8.2.{0597,0598,0924,1035}
fixes #14581
2021-09-24 05:11:19 -07:00
7a26eb8a56 refactor: format with uncrustify #15755 2021-09-24 05:03:15 -07:00
03ed72642d fix(pvs): Exclude xdiff from analysis
ref 088161a945
ref fbe88ef8f5
2021-09-24 03:26:31 -07:00
508fcdadb7 fix(PVS): disable "typo" warnings V1051, V1074
PVS is worried about typos. Now we need it to stop worrying...
Disable these checks entirely, they are all false positives.

tui.c:1873        V1074   Boundary between escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.
tui.c:1983        V1074   Boundary between escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.

regexp_nfa.c:6189 V1051   Consider checking for misprints. It's possible that the 'pim->result' should be checked here.
screen.c:2928     V1051   Consider checking for misprints. It's possible that the 'vcol_sbr' should be checked here.
screen.c:3187     V1051   Consider checking for misprints. It's possible that the 'line_attr' should be checked here.
screen.c:3267     V1051   Consider checking for misprints. It's possible that the 'multi_attr' should be checked here.
screen.c:4747     V1051   Consider checking for misprints. It's possible that the 'redraw_next' should be checked here.
syntax.c:3448     V1051   Consider checking for misprints. It's possible that the 'arg_end' should be checked here.
syntax.c:3625     V1051   Consider checking for misprints. It's possible that the 'arg_end' should be checked here.
tui.c:1836        V1051   Consider checking for misprints. It's possible that the 'data->unibi_ext.set_cursor_style' should be checked here.
tui.c:1863        V1051   Consider checking for misprints. It's possible that the 'data->unibi_ext.set_cursor_style' should be checked here.
tui.c:1882        V1051   Consider checking for misprints. It's possible that the 'data->unibi_ext.set_cursor_style' should be checked here.
2021-09-24 03:22:26 -07:00
3c7cef7b08 fix(PVS V681): function call order is undefined
https://pvs-studio.com/en/docs/warnings/v681/
2021-09-24 02:49:59 -07:00
fefd1652e7 fix(PVS V576): false positive
`lower`, `upper` are `varnumber_T`, correctly matched to `PRIdVARNUMBER`
format.
2021-09-24 02:43:37 -07:00
0d59c01a64 fix(PVS V576): wrong fprintf() format
https://pvs-studio.com/en/docs/warnings/v576/

Before 1bffe66508 this was originally
"%ld" but that looks like a mistake. At least now, w_height_inner and
w_width_inner are just `int`.
2021-09-24 02:29:49 -07:00
d15defeb2f fix(PVS V507): false positive
https://pvs-studio.com/en/docs/warnings/v507/

"Pointer to local array 'sourcing_name_buf' is stored outside the scope
of this array. Such a pointer will become invalid."

False positive: `sourcing_name = save_sourcing_name` before returning
from this scope.
2021-09-24 02:09:52 -07:00
433bda405e fix(lsp): guard textDocument/codeAction command logic #15769
Problem:

    Error executing vim.schedule lua callback: ...ovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/buf.lua:502: command: expected string, got
     nil
    stack traceback:
            ...ovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/buf.lua:502: in function 'execute_command'
            ...HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/handlers.lua:151: in function <...HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/handlers.lua:113>
            ...ovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/buf.lua:465: in function 'callback'
            ...r/neovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp.lua:1325: in function 'handler'
            ...r/neovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp.lua:899: in function 'cb'
            vim.lua:281: in function <vim.lua:281>


Solution:

This is a follow-up to the work done in
6c03601e3a.
There are valid situations where a `textDocument/codeAction` is returned
without a command, since a command in optional. For example from Metals,
the Scala language server when you get a code action to add a missing
import, it looks like this:

```json
Result: [
  {
    "title": "Import \u0027Instant\u0027 from package \u0027java.time\u0027",
    "kind": "quickfix",
    "diagnostics": [
      {
        "range": {
          "start": {
            "line": 6,
            "character": 10
          },
          "end": {
            "line": 6,
            "character": 17
          }
        },
        "severity": 1,
        "source": "bloop",
        "message": "not found: value Instant"
      }
    ],
    "edit": {
      "changes": {
        "file:///Users/ckipp/Documents/scala-workspace/sanity/src/main/scala/Thing.scala": [
          {
            "range": {
              "start": {
                "line": 6,
                "character": 10
              },
              "end": {
                "line": 6,
                "character": 17
              }
            },
            "newText": "Instant"
          },
          {
            "range": {
              "start": {
                "line": 1,
                "character": 0
              },
              "end": {
                "line": 1,
                "character": 0
              }
            },
            "newText": "\nimport java.time.Instant\n"
          }
        ]
      }
    }
  }
]
```

This change just wraps the logic that grabs the command in a conditional
to skip it if there is no command.
2021-09-23 18:20:10 -07:00
be93821647 fix: move contrib/uncrustify.cfg -> src/uncrustify.cfg #15768
If uncrustify is now the (partial) authority on code style, it is no
longer "contrib".
2021-09-23 14:56:58 -07:00
9cde1e5891 fix(diagnostic): check for nil in show_diagnostics (#15772) 2021-09-23 09:52:21 -07:00
057606e845 fix(diagnostic): don't return nil when callers expect a table (#15765)
diagnostic_lines() returns a table, so make the early exit condition an
empty table rather than 'nil'. This way, functions that use the input
from diagnostic_lines don't have to do a bunch of defensive nil checking
and can always assume they're operating on a table.
2021-09-23 08:23:57 -07:00
abf13258cf Merge #14979 doc: convert Nvim style guide XML to vim :help 2021-09-23 07:02:43 -07:00
c05b10748c doc(dev_style.txt): misc updates 2021-09-23 06:59:30 -07:00
5f49d0efee doc: convert neovim style guide to vim doc. 2021-09-23 06:59:30 -07:00
f1bf70c2f9 vim-patch:8.2.1035: setreg() does not always clear the register
Problem:    setreg() does not always clear the register.
Solution:   Clear the register if the dict argument is empty. (Andy Massimino,
            closes vim/vim#3370)
7633fe595e

Do not getdigits for block_len strictly. For example, a user could
previously abort Nvim using:

:call setreg("0", "abort!", "\<C-V>999999999999999999")

or, after v8.2.0924's port:

:call setreg("0", #{regcontents: ["abort!"],
                  \ regtype: "\<C-V>999999999999999999"})

Instead, default to 0 so block_len is -1, which acts like the selection
width was omitted (defaults to length of longest line).
2021-09-23 02:07:21 +01:00
f8241f825a vim-patch:7.4.725
Problem:    ":call setreg('"', [])" reports an internal error.
Solution:   Make the register empty. (Yasuhiro Matsumoto)
659c94d483

Required for v8.2.1035.

Note that setreg('"', []) didn't cause an internal error for us, but
didn't clear the register properly either...
2021-09-23 02:04:16 +01:00
f9779facca vim-patch:8.2.0924: cannot save and restore a register properly
Problem:    Cannot save and restore a register properly.
Solution:   Add getreginfo() and make setreg() accept a dictionary. (Andy
            Massimino, closes vim/vim#3370)
bb861e293e

Cherry-pick eval.txt changes for getreginfo() from:
6aa57295cf
207f009326
2021-09-23 02:04:11 +01:00
74ddd14241 vim-patch:8.2.0598: test_eval_stuff fails in normal terminal
Problem:    Test_eval_stuff fails in normal terminal.
Solution:   Close the new window.
61fbb3371e

Required for v8.2.0598 to work.
2021-09-22 23:53:13 +01:00
3b2be8f3de vim-patch:8.2.0597: test_eval is old style
Problem:    Test_eval is old style.
Solution:   Change some tests to a new style test.
90455cfa87

Cherry-pick Test_setreg_basic changes from v8.2.0610.

Note that the old-style version of the tests (and the cherry-picked
changes) exist in legacy/eval_spec.lua; keep them as they've already
been Lua'd.

Required for v8.2.0924.
2021-09-22 23:53:13 +01:00
aba397991b build(deps): bump luarocks to 3.7.0 #15740
Besides bugfixes, this brings `XDG_*` compliance and improved
robustness, especially for network errors.

See https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md

- fixup: set LIBUV_LIBDIR to workaround 83126ba324
    - https://github.com/luarocks/luarocks/issues/1214
    - https://github.com/luarocks/luarocks/pull/1355
2021-09-22 12:26:01 -07:00
d999c96cf3 feat(diagnostic): allow customized diagnostic messages (#15742)
Provide a 'format' option for virtual text and floating window previews
that allows the displayed text of a diagnostic to be customized.
2021-09-22 12:20:15 -07:00
80e3f0eb34 Merge pull request #15739 from clason/luv-bump 2021-09-22 15:11:10 -04:00
248974a4c6 Merge pull request #14115 from mfussenegger/lsp-commands
lsp: Add a registry for client side code action commands
2021-09-22 11:42:56 -07:00
ec447b8798 docs: .git-blame-ignore-revs #15653 2021-09-22 06:36:53 -07:00
48e67b2294 refactor: format with uncrustify #15741 2021-09-22 06:25:38 -07:00
fb6f27e86f vim-patch:34cc7d8c034f #15753
Update runtime files
34cc7d8c03
2021-09-22 06:12:06 -07:00
e8fb0728e2 Merge pull request #15717 from gpanders/diagnostic-include-source
feat(diagnostic): add option to include diagnostic source
2021-09-21 18:32:32 -07:00
bc652f148f refactor(diagnostic): remove get_virt_text_chunks()
This function isn't compatible with including diagnostic sources when
"source" is "if_many" since it only has access to diagnostics for a
single line. Rather than having an inconsistent or incomplete interface,
make this function private. It is still exported as part of the module
for backward compatibility with vim.lsp.diagnostics, but it can
eventually be made into a local function.
2021-09-21 18:54:28 -06:00
d43151ea0b feat(diagnostic): add option to include diagnostic source
Add an option to virtual text display and floating window previews to
include diagnostic source in the diagnostic message.
2021-09-21 18:54:26 -06:00
17b7968f02 fix(diagnostic): preserve fields from LSP diagnostics via user_data (#15735)
* preserve fields from LSP diagnostics via adding a user_data table to the diagnostic, which can hold arbitrary data in addition to the lsp diagnostic information.
2021-09-21 15:27:12 -07:00
8164adc144 fix(lsp): update lsp-handler signature in call_hierarchy (#15738)
This fixes the handler signature and also prevents n+1 requests firing
if there are multiple clients.

(The first `prepareCallHierarchy` handler is called once per client,
each invocation used `buf_request` to make more requests using *all*
clients)
2021-09-21 15:05:49 -07:00
a65d8c34e6 ci(PVS): PVS/V009: add required header #15751 2021-09-21 09:02:43 -07:00
c76cddf3e0 fix(startup): init.lua: set $MYVIMRC to absolute path #15748
- main.c: remove os_setenv("MYVIMRC",…), it is already done by
  do_source().
  - This also sets $MYVIMRC to a full (absolute) path.
- code cleanup.
2021-09-21 08:47:46 -07:00
c208993026 Merge pull request #15745 from e-kwsm/Makefile
build: enhance Makefile
2021-09-21 08:22:08 -04:00
f446ab3aa3 fix(build): call find_package(Threads) before using its variables 2021-09-21 06:56:59 -04:00
9cbebcb247 chore(deps): bump libuv and luv to 1.42.0 2021-09-21 10:17:05 +02:00
7014731035 build: enhance Makefile
- fix regression where `-j` is not passed to ninja
  (39c886551b, #15708)
- enable to pass `-l` (load) to ninja as well
- s/BUILD_TYPE/CMAKE_GENERATOR/
2021-09-21 15:54:14 +09:00
21f7555277 Merge pull request #15743 from jamessan/libuv-threads
build: Add ${CMAKE_THREAD_LIBS_INIT} to LIBUV_LIBRARIES
2021-09-20 21:56:49 -04:00
2435cf77d1 build: add ${CMAKE_THREAD_LIBS_INIT} to LIBUV_LIBRARIES
This is a workaround for not yet having fully correct Find* cmake
modules for static builds.

https://github.com/Tronic/cmake-modules/issues/3#issuecomment-624469020
2021-09-20 21:19:52 -04:00
6c03601e3a feat(lsp): add a registry for client side code action commands
This builds on https://github.com/neovim/neovim/pull/14112 and closes
https://github.com/neovim/neovim/issues/12326
2021-09-20 22:26:00 +02:00
187579fe19 feat(lsp): include original request params in handler ctx
This is mostly motivated by https://github.com/neovim/neovim/issues/12326

Client side commands might need to access the original request
parameters.

Currently this is already possible by using closures with
`vim.lsp.buf_request`, but the global handlers so far couldn't access
the request parameters.
2021-09-20 22:06:54 +02:00
0216aed20c fix(diagnostic): clamp line numbers in display layer (#15729)
Some parts of LSP need to use cached diagnostics as sent from the LSP
server unmodified. Rather than fixing invalid line numbers when
diagnostics are first set, fix them when they are displayed to the user
(e.g. in show() or one of the get_next/get_prev family of functions).
2021-09-20 11:32:21 -07:00
f4ca3a29dd refactor: reformat with uncrustify #15736
* fix function parameter comments
* remove space after star in function names
2021-09-20 09:35:41 -07:00
1f8c91bf72 fix(inccommand): ignore trailing commands only for *previewed* command #15638
Since the `State` is global, other scripts are unexpectedly affected during the
'inccommand' preview. This commit introduces a new flag for `do_cmdline`, in
order to ignore trailing '|'-separated commands only for the command invoking
the preview.

fix #8796, update #7494
2021-09-20 07:33:10 -07:00
30fefee684 refactor: format with uncrustify #15726 2021-09-20 06:53:38 -07:00
12bccc7dd1 test: close timers in vim_spec.lua functional test
Close the timer started during tests before closing the session. This
fixes the uv_loop_close hangs happening in the functional tests.

Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh2702@gmail.com>
2021-09-20 18:10:40 +05:30
73d12a8b71 test: fix running functional tests under gdbserver
It was not possible to run the tests under the gdbserver because we were
not closing the old session before starting a new one. This caused the
server to not to be able to bind to the given address and crashing the
tests.

This commit closes the session before starting a new one.

Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh2702@gmail.com>
2021-09-20 18:10:40 +05:30
490e09c6d8 Merge #15727 build(lint): check scripts/*.lua 2021-09-19 16:56:57 -07:00
41da72ffb6 build(lint): commit linter 2021-09-19 16:39:34 -07:00
736299bf22 build(lint): check scripts/*.lua 2021-09-19 16:36:08 -07:00
39c886551b refactor(Makefile): use built-in make commands #15708
Changes to the main Makefile:
- add `MAKEFILE_PATH` and `MAKEFILE_DIR` that are set with native commands
- add `NVIM_PRG`
- rename `BUILD_TYPE` to `CMAKE_GENERATOR` to align with CMake naming
- remove the misleading `BUILD_CMD` and use `BUILD_TOOL` instead

Add the following phony target to quickly test the changes

```make
debug-print:
	@echo makefile path: $(MAKEFILE_PATH)
	@echo makefile dir: $(MAKEFILE_DIR)
	@echo build dir: $(BUILD_DIR)
	@echo cmake generator tool: $(CMAKE_GENERATOR)
	@echo build-tool: $(BUILD_TOOL)
	@echo nvim-prg: $(NVIM_PRG)
```
2021-09-19 15:53:48 -07:00
e61ea7772e feat(diagnostic): match(), tolist(), fromlist() #15704
* feat(diagnostic): add vim.diagnostic.match()
  Provide vim.diagnostic.match() to generate a diagnostic from a string and
  a Lua pattern.
* feat(diagnostic): add tolist() and fromlist()
2021-09-19 15:13:23 -07:00
853346a94d refactor: format with uncrustify #15722 2021-09-19 13:07:42 -07:00
6565adcbff build(lint): commit linter #15725
Example test failure:

    $ nvim -es +"lua require('scripts.lintcommit')._test()"
    [ FAIL ]: expected=true, got=false
        input: ":no type before colon 1"
    [ FAIL ]: expected=true, got=false
        input: "ci: tab after colon"

Example main({trace=true}) output:

    $ nvim -es +"lua require('scripts.lintcommit').main()"
    run: { "git", "branch", "--show-current" }
    run: { "git", "merge-base", "origin/master", "master" }
    run: { "git", "merge-base", "upstream/master", "master" }
    run: { "git", "rev-list", "89db07556dbdce97c0c150ed7e47d80e1ddacad3..master" }
    run: { "git", "show", "-s", "--format=%s", "d2e6d2f5fc93b6da3c6153229135ba2f0b24f8cc" }
    Invalid commit message: "buildlint): commit linter #15620"
        Commit: d2e6d2f5fc93b6da3c6153229135ba2f0b24f8cc
        Invalid commit type "buildlint)". Allowed types are:
        { "build", "ci", "docs", "feat", "fix", "perf", "refactor", "revert", "test", "chore", "vim-patch" }
        See also:
            https://github.com/neovim/neovim/blob/master/CONTRIBUTING.md#commit-messages
            https://www.conventionalcommits.org/en/v1.0.0/
2021-09-19 12:57:57 -07:00
89db07556d Merge pull request #15630 from zeertzjq/vim-8.2.3424
vim-patch:8.1.{1071,1078,1079,1110},8.2.{2640,3424,3425,3437}
2021-09-19 14:31:10 -04:00
2aa662568a build(lint): commit linter #15620 2021-09-19 11:06:47 -07:00
65572c719a build(lint): commit linter #15620 2021-09-19 09:27:08 -07:00
2afbce7651 refactor(tests): remove redir_exec #15718
Problem
- `redir_exec` is obsolete, but it keeps getting used in new tests
  because people copy existing tests.
- Disadvantages of `redir_exec`:
  - Captures extra junk before the actual error/message that we _want_ to test.
  - Does not fail on error, unlike e.g. `command()`.

Solution
- Use new functions like `nvim_exec` and `pcall_err`.
2021-09-19 02:29:37 -07:00
f4ce4c1677 vim-patch:8.2.3437: compiler warnings for 32/64 bit usage
Problem:    Compiler warnings for 32/64 bit usage.
Solution:   Add type casts. (Mike Williams, closes vim/vim#8870)
f5785cf059
2021-09-19 13:13:44 +08:00
a348c666a3 vim-patch:8.2.3425: warning for using uninitialized variable
Problem:    Warning for using uninitialized variable.
Solution:   Initialize it. (John Marriott)
56e14698b4
2021-09-19 13:13:44 +08:00
51567db4b6 vim-patch:8.2.3424: a sequence of spaces is hard to see in list mode
Problem:    A sequence of spaces is hard to see in list mode.
Solution:   Add the "multispace" option to 'listchars'. (closes vim/vim#8834)
f14b8ba137
2021-09-19 13:13:44 +08:00
177e87525a vim-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.
f1387285e2
2021-09-19 13:13:44 +08:00
59e80c4dfc vim-patch:8.1.1110: composing chars on space wrong when 'listchars' is set
Problem:    Composing chars on space wrong when 'listchars' is set.
Solution:   Do not use "space" and "nbsp" entries of 'listchars' when there is
            a composing character.  (Yee Cheng Chin, closes vim/vim#4197)
e5e4e22c1c
2021-09-19 13:13:44 +08:00
c14dc616bf vim-patch:8.1.1079: no need for a separate ScreenLinesUtf8() test function
Problem:    No need for a separate ScreenLinesUtf8() test function.
Solution:   Get the composing characters with ScreenLines().
48aed0824e
2021-09-19 13:13:44 +08:00
32663b0f7e vim-patch:8.1.1078: when 'listchars' is set a composing char on a space is wrong
Problem:    When 'listchars' is set a composing char on a space is wrong.
Solution:   Separate handling a non-breaking space and a space. (Yasuhiro
            Matsumoto, closes vim/vim#4046)
5f8069bbf5
2021-09-19 13:13:44 +08:00
963474321b vim-patch:8.1.1071: cannot get composing characters from the screen
Problem:    Cannot get composing characters from the screen.
Solution:   Add screenchars() and screenstring(). (partly by Ozaki Kiichi,
            closes vim/vim#4059)
2912abb3a2
2021-09-19 13:13:44 +08:00
924e8e4f2d fix(diagnostic): only update decorations for loaded buffers (#15715)
When vim.diagnostic.config() is called, the decorations for diagnostics
are re-displayed to use the new configuration. This should only be done
for loaded buffers.
2021-09-18 14:01:03 -07:00
77399184d7 ci(labeler): diagnostic 2021-09-18 13:29:56 -07:00
41cfba63cd feat(lsp): improve vim.lsp.util.apply_text_edits (#15561)
- Fix the cursor position after applying TextEdits
- Support reversed range of TextEdit
- Invoke nvim_buf_set_text one by one
2021-09-18 13:19:21 -07:00
340f77e78e Merge pull request #15710 from gpanders/show_line_diagnostics
fix(diagnostic): resolve nil bufnr in show_line_diagnostics
2021-09-18 10:31:40 -07:00
de406f651c vim-patch:8.2.3394: filler lines are wrong when changing text in diff mode (#15547)
Problem:    Filler lines are wrong when changing text in diff mode.
Solution:   Don't change the filler lines on every change.  Check
            scrollbinding when updating the filler lines. (closes vim/vim#8809)
04626c243c
2021-09-18 12:38:58 -04:00
51a98aa0c2 refactor: format #15702 2021-09-18 09:34:23 -07:00
752d2d2081 test: add test case for show_line_diagnostics 2021-09-18 10:07:54 -06:00
ef52433847 fix(diagnostic): resolve nil bufnr in show_line_diagnostics 2021-09-18 09:44:30 -06:00
6cad86fffd Merge pull request #15632 from bfredl/rtptest
runtime: always use DIP_START and remove duplication of start packages in &rtp
2021-09-18 17:14:25 +02:00
a860f7880f refactor(runtime): handle pack/foo/start/bar/after dirs properly
The order should be:
XDG_CONFIG_HOME/nvim
XDG_DATA_HOME/nvim/site/pack/foo/start/bar/
XDG_CONFIG_HOME/nvim/after
XDG_DATA_HOME/nvim/site/pack/foo/start/bar/after
2021-09-18 13:59:19 +02:00
396280d303 refactor(runtime): always use DIP_START when searching for runtime files
Now remove the addition of "start/*" packages in 'packpath' as
explicit items in 'runtimepath'. This avoids 'runtimepath' from becoming
very long when using a lot of plugins as packages.

To get the effective search path as a list, use |nvim_list_runtime_paths()|
2021-09-18 13:53:50 +02:00
8ef2b56cac fix(diagnostic): change default severity_sort order 2021-09-18 13:21:54 +02:00
0dcf4ab27b fix(diagnostic): remove check on nil return value
vim.diagnostic._set_signs doesn't return anything, so checking the
return value will always fail.
2021-09-17 21:10:10 -06:00
445ef41314 refactor(diagnostic): combine config() and set() calls 2021-09-17 21:07:24 -06:00
15d501ff7a refactor(diagnostic): group local functions together 2021-09-17 21:07:24 -06:00
1f49268c46 refactor: convert TRUE/FALSE to true/false (#15660) 2021-09-18 00:24:39 +02:00
938ed458e2 fix(diagnostic): change default severity_sort order
When severity_sort is true, higher severities should be displayed before
lower severities (e.g. ERROR is displayed over WARN).

Also improved the test case for this.
2021-09-17 14:59:30 -06:00
ede5695eb1 Merge pull request #15696 from gpanders/diagnostic-sign-fix
Diagnostic hot fixes
2021-09-17 11:31:56 -07:00
4d7dcbe49f fix(termdebug): replace mapset with nvim_set_keymap (#15699)
Co-authored-by: ii14 <ii14@users.noreply.github.com>
2021-09-17 19:29:27 +02:00
d9f93e5642 fix(typo): overriden -> overridden (RE: PR #14159) (#15360) 2021-09-17 13:07:00 -04:00
32c0631183 fix(diagnostic): support severity_sort 2021-09-17 10:50:25 -06:00
d8de4eb685 test: reorg #15698
Problem:
Subdirectories like "visual", "insert", "normal" encourage people to
separate *related* tests for no good reason.  Typically the _mode_ is
not the relevant topic of a test (and when it is, _then_ create
an appropriate describe() or it()).

Solution:
- Delete the various `test/functional/<mode>/` subdirectories, move
  their tests to more meaningful topics.
- Rename `…/normal/` to `…/editor/`.
  - Move or merge `…/visual/*` and `…/insert/*` tests into here where
    appropriate.
- Rename `…/eval/` to `…/vimscript/`.
  - Move `…/viml/*` into here also.

* test(reorg): insert/* => editor/mode_insert_spec.lua
* test(reorg): cmdline/* => editor/mode_cmdline_spec.lua
* test(reorg): eval core tests => eval_spec.lua
2021-09-17 09:16:40 -07:00
f87779a24d fix(diagnostic): correctly handle folder level diagnostics 2021-09-17 09:28:11 -06:00
15fbc9b69e docs(diagnostics): fix typos 2021-09-17 08:57:51 -06:00
3fd145007c fix(diagnostic): fix wrong data type in setqflist() 2021-09-17 08:53:08 -06:00
d56002f7b7 Merge pull request #15364 from seandewar/vim-8.2.3337
vim-patch:8.2.{3286,3289,3293,3298,3313,3321,3328,3330,3331,3337,3354,3355,3357,3360,3369,3375}
2021-09-17 10:47:17 -04:00
71e0e6cc63 fix(diagnostic): don't overwrite existing sign definitions 2021-09-17 08:44:52 -06:00
867e888599 refactor(style): switch-case formatting, "uncrustify:indent-off" #15669
* refactor: disable formatting for attribute in macro
* fixup: disable/enable uncrustify with uncrustify:indent-off/on
* fixup: stop indenting contents inside braces in case
* fixup: remove case brace if no variable declaration
2021-09-17 07:38:16 -07:00
1ec3d37192 Merge pull request #15580 from seandewar/vim-8.2.3378
vim-patch:8.2.{3378,3379,3384,3386,3398,3400}
2021-09-17 09:39:36 -04:00
5f144efefa fix: prevent K_EVENT from stopping Select mode CTRL-O #15688
When using Goneovim, Select mode `CTRL-O` returns back to Select mode
immediately (even with `--clean`). Neovim TUI (with some plugins) also randomly
returns to Select mode even if no keys are pressed when using `CTRL-O` in Select
mode.
2021-09-17 06:17:51 -07:00
c4b7744704 Merge #15693 fix(diagnostics)
fix(diagnostics): fixup for `show_line_diagnostics` and `lsp.diagnostics.get`
2021-09-17 04:58:31 -07:00
22d146760e fix(diagnostic): don't convert diagnostic table twice
The recursive implementation of vim.lsp.diagnostic.get() applied
`diagnostic_vim_to_lsp` twice, and the second time gave wrong
results because of the unexpected format.

Fixes https://github.com/neovim/neovim/issues/15689
2021-09-17 13:35:57 +02:00
3e230da90b fix(diagnostic): show_line_diagnostic with empty lnum
The documentation claims to default to the current line number if
the argument `lnum` is nil, but that was never actually done.

Fixes https://github.com/neovim/neovim/issues/15690
2021-09-17 13:33:54 +02:00
4881456e83 fix(diagnostic): nvim_echo takes three args (#15687)
Fixup for https://github.com/neovim/neovim/pull/15585
Closes https://github.com/neovim/neovim/issues/15686
2021-09-17 09:21:17 +02:00
c13242cf47 fix(diagnostic): remove useless highlight links (#15683)
These links were actually defined backwards: the highlight groups
actually being used for display are the new "Diagnostic*" groups, so
linking the old "LspDiagnostics*" groups to these does absolutely
nothing, since there is nothing actually being highlighted with the
LspDiagnostics* groups.

These links were made in an attempt to preserve backward compatibility
with existing colorschemes. We could reverse the links to maintain this
preservation, but then that disallows us from actually defining default
values for the new highlight groups.

Instead, just remove the links and be done with the old LspDiagnostics*
highlight groups.

This is not technically a breaking change: the breaking change already
happened in #15585, but this PR just makes that explicit.
2021-09-17 08:17:54 +02:00
1e0d563967 vim-patch:8.2.3375: using uninitialized memory
Problem:    Using uninitialized memory.
Solution:   Initialize textprop_save_len.
df9070e300

textprop_save_len is N/A.
2021-09-17 02:10:45 +01:00
d78f06852e vim-patch:8.2.3369: auto formatting after "cw" leaves cursor in wrong spot
Problem:    Auto formatting after "cw" leaves cursor in wrong spot.
Solution:   Do not auto-format after the delete. (closes vim/vim#8789)
6b36d2a16d
2021-09-17 02:10:45 +01:00
ebd035f08b vim-patch:8.2.3360: user function completion fails with dict function
Problem:    User function completion fails with dict function.
Solution:   Do not stop sequencing through the list if user functions when
            encountering an empty name. (Naohiro Ono, closes vim/vim#8765,
            closes vim/vim#8774)
5aec755b67
2021-09-17 02:10:44 +01:00
26b7faf1f2 vim-patch:8.2.3357: crash when 'virtualedit' is set and window is narrow
Problem:    Crash when 'virtualedit' is set and window is narrow. ()
Solution:   Check that width is not zero. (closes vim/vim#8767)
02f8694a6b
2021-09-17 02:10:44 +01:00
2ddfd6b999 vim-patch:8.2.3337: completing "call g:" returns entries with just "g:"
Problem:    Completing "call g:" returns entries with just "g:". (Naohiro Ono)
Solution:   Skip empty strings returned by get_user_func_name(). (closes vim/vim#8753)
069f90852f
2021-09-17 02:10:44 +01:00
b24c377c8a vim-patch:8.2.3330: Coverity reports using uninitialized field
Problem:    Coverity reports using uninitialized field.
Solution:   Initialize the field early.
7deb4115ef
2021-09-17 02:10:43 +01:00
17f377b6f9 vim-patch:8.2.3328: Coverity error for not checking return value
Problem:    Coverity error for not checking return value.
Solution:   Check value is not negative.
b85d3627d9
2021-09-17 02:10:43 +01:00
2cbbab28d2 vim-patch:8.2.3321: some code is not tested
Problem:    Some code is not tested.
Solution:   Add some more tests. (Dominique Pellé, closes vim/vim#8735)
bd9e796125

Include Test_confirm_write_partial_file() anyway, even though it will
not be run.
2021-09-17 02:10:43 +01:00
e9ddff9d8a vim-patch:8.2.3313: unused code in win_exchange() and frame_remove()
Problem:    Unused code in win_exchange() and frame_remove().
Solution:   Remove the code. (closes vim/vim#8728)
9e2fa4bb9e
2021-09-17 02:10:42 +01:00
423150dfa0 vim-patch:8.2.3293: finding completions may cause an endless loop
Problem:    Finding completions may cause an endless loop.
Solution:   Use a better way to check coming back where the search started.
            (Andy Gozas, closes vim/vim#8672, closes vim/vim#8671)
6a230c6b32
2021-09-17 02:10:39 +01:00
7ff5f02821 vim-patch:8.2.3286: win_enter_ext() has too many boolean arguments
Problem:    win_enter_ext() has too many boolean arguments.
Solution:   use one flags argument with defined values.
d61f2f772a

Include some style changes to appease the linter.

N/A patches for version.c:

vim-patch:8.2.3289: compiler warning for unused variable with small features

Problem:    Compiler warning for unused variable with small features.
Solution:   Rearrange #ifdefs.
f18e8a969a

vim-patch:8.2.3298: build failure with small features

Problem:    Build failure with small features.
Solution:   Add #ifdef.
6f6d58c380

vim-patch:8.2.3331: Coverity warns for using value without boundary check

Problem:    Coverity warns for using value without boundary check.
Solution:   Add a boundary check.
ed7cb2df35

vim-patch:8.2.3354: build failure with +byte_offset but without +textprop

Problem:    Build failure with +byte_offset but without +textprop. (John
            Marriott)
Solution:   Adjust the #ifdef.
92755bba30

vim-patch:8.2.3355: MS-Windows: compiler warning for 64-32 bit conversion

Problem:    MS-Windows: compiler warning for 64-32 bit conversion.
Solution:   Add type casts.
434df7a401
2021-09-17 01:46:24 +01:00
c2a65921d7 fix(diagnostic): don't override existing highlight groups #15682
Use the 'default' keyword to prevent overriding existing highlight groups.

ref #15585
2021-09-16 14:51:29 -07:00
0c66289cba Merge pull request #15668 from bfredl/logmenu
fix(tests): don't attempt to call ui functions in free_all_mem()
2021-09-16 23:36:53 +02:00
2e8103475e Merge #15585 refactor: move vim.lsp.diagnostic to vim.diagnostic
## Overview

- Move vim.lsp.diagnostic to vim.diagnostic
- Refactor client ids to diagnostic namespaces
- Update tests
- Write/update documentation and function signatures

Currently, non-LSP diagnostics in Neovim must hook into the LSP subsystem. This
is what e.g. null-ls and nvim-lint do. This is necessary because none of the
diagnostic API is exposed separately from the LSP subsystem.

This commit addresses this by generalizing the diagnostic subsystem beyond the
scope of LSP. The `vim.lsp.diagnostic` module is now simply a specific
diagnostic producer and primarily maintains the interface between LSP clients
and the broader diagnostic API.

The current diagnostic API uses "client ids" which only makes sense in the
context of LSP. We replace "client ids" with standard API namespaces generated
from `nvim_create_namespace`.

This PR is *mostly* backward compatible (so long as plugins are only using the
publicly documented API): LSP diagnostics will continue to work as usual, as
will pseudo-LSP clients like null-ls and nvim-lint. However, the latter can now
use the new interface, which looks something like this:

```lua
-- The namespace *must* be given a name. Anonymous namespaces will not work with diagnostics
local ns = vim.api.nvim_create_namespace("foo")

-- Generate diagnostics
local diagnostics = generate_diagnostics()

-- Set diagnostics for the current buffer
vim.diagnostic.set(ns, diagnostics, bufnr)
```

Some public facing API utility methods were removed and internalized directly in `vim.diagnostic`:

* `vim.lsp.util.diagnostics_to_items`

## API Design

`vim.diagnostic` contains most of the same API as `vim.lsp.diagnostic` with
`client_id` simply replaced with `namespace`, with some differences:

* Generally speaking, functions that modify or add diagnostics require a namespace as their first argument, e.g.

  ```lua
  vim.diagnostic.set({namespace}, {bufnr}, {diagnostics}[, {opts}])
  ```

   while functions that read or query diagnostics do not (although in many cases one may be supplied optionally):

   ```lua
   vim.diagnostic.get({bufnr}[, {namespace}])
   ```

* We use our own severity levels to decouple `vim.diagnostic` from LSP. These
  are designed similarly to `vim.log.levels` and currently include:

  ```lua
  vim.diagnostic.severity.ERROR
  vim.diagnostic.severity.WARN
  vim.diagnostic.severity.INFO
  vim.diagnostic.severity.HINT
  ```

  In practice, these match the LSP diagnostic severity levels exactly, but we
  should treat this as an interface and not assume that they are the same. The
  "translation" between the two severity types is handled transparently in
  `vim.lsp.diagnostic`.

* The actual "diagnostic" data structure is: (**EDIT:** Updated 2021-09-09):

  ```lua
  {
    lnum = <number>,
    col = <number>,
    end_lnum = <number>,
    end_col = <number>,
    severity = <vim.diagnostic.severity>,
    message = <string>
  }
  ```

This differs from the LSP definition of a diagnostic, so we transform them in
the handler functions in vim.lsp.diagnostic.

## Configuration

The `vim.lsp.with` paradigm still works for configuring how LSP diagnostics are
displayed, but this is a specific use-case for the `publishDiagnostics` handler.
Configuration with `vim.diagnostic` is instead done with the
`vim.diagnostic.config` function:

```lua
vim.diagnostic.config({
    virtual_text = true,
    signs = false,
    underline = true,
    update_in_insert = true,
    severity_sort = false,
}[, namespace])
```

(or alternatively passed directly to `set()` or `show()`.)

When the `namespace` argument is `nil`, settings are set globally (i.e. for
*all* diagnostic namespaces). This is what user's will typically use for their
local configuration. Diagnostic producers can also set configuration options for
their specific namespace, although this is generally discouraged in order to
respect the user's global settings. All of the values in the table passed to
`vim.diagnostic.config()` are resolved in the same way that they are in
`on_publish_diagnostics`; that is, the value can be a boolean, a table, or
a function:

```lua
vim.diagnostic.config({
    virtual_text = function(namespace, bufnr)
        -- Only enable virtual text in buffer 3
        return bufnr == 3
    end,
})
```

## Misc Notes

* `vim.diagnostic` currently depends on `vim.lsp.util` for floating window
  previews. I think this is okay for now, although ideally we'd want to decouple
  these completely.
2021-09-16 14:23:42 -07:00
4fca63dbf7 fix(lint): remove unused parameters from deprecated functions 2021-09-16 15:01:09 -06:00
888a6ec6ce fix(lint): remove unused function from diagnostic spec 2021-09-16 14:40:13 -06:00
7d21b95869 Merge pull request #15211 from seandewar/blob-port
Port VimL's Blob type - vim-patch:8.1.{0735,0736,0738,0741,0742,0755,0756,0757,0765,0793,0797,0798,0802,1022,1023,1671},8.2.{0121,0184,0404,0521,0829,1473,1866,2712}
2021-09-16 16:31:41 -04:00
2d81f19279 Merge #15680 fix(eval): add the vimscript-1 feature to has() 2021-09-16 13:25:26 -07:00
89f7f7a991 vim-patch:8.2.1866: Vim9: appending to pushed blob gives wrong result
Problem:    Vim9: appending to pushed blob gives wrong result.
Solution:   Set ga_maxlen when copying a blob.
66fa5fd54f

Vim9script is N/A.
2021-09-16 20:20:43 +01:00
26d728fe7c test(oldtest): re-order test_eval_stuff tests to match Vim 2021-09-16 20:09:56 +01:00
18b32fca67 fix(eval): add the vimscript-1 feature to has()
Include Test_string_concat_scriptversion1 to test that
has('vimscript-1') works (excluding the :scriptversion 1 bit).
2021-09-16 19:50:13 +01:00
9d5d72c388 fix(test runner): handle nil in no-colors output handler #15679
Problem:
13748512f6 #15610 The no-colors codepath of the nvim.lua test output
handler does not handle nil, leading to weird symptoms if e.g. a test
has a syntax error:

    test/busted/outputHandlers/nvim.lua:105: attempt to concatenate a nil value

Solution:
Coerce to string in no-colors handler.
2021-09-16 11:42:00 -07:00
d140d3bd33 fix(docs): ignore _*.lua files from auto doc generation #15678 2021-09-16 10:49:11 -07:00
0c86bf563c refactor: remove UTF to byte col conversion 2021-09-16 11:26:45 -06:00
29bc648d2b fix(man.vim): ensure buftype=nofile after :tag or :stag #15675
Problem:
`buftype=help` occasionally propagates from help to man buffer. As a result the
next time you open help it opens in the man window, replacing the manpage.

Test case:
    nvim -u NORC
    :Man man
    :set bt?            " should print `buftype=nofile`
    :help
    <C-W><C-W><C-W>c    " go back to :Man window and close it
    :help               " focus help window
    :Man man            " open window with manpage again
    :set bt?            " prints `buftype=help`

Solution:
- call s:set_options()
    - man#read_page() (called by autocmd BufReadCmd man://*) should already do
      this. But BufReadCmd doesn't fire for already-existing man:// buffers.

Fix #15650
2021-09-16 06:51:26 -07:00
4fa3865588 test: add test case for severity ranges 2021-09-15 19:09:21 -06:00
10283915d6 doc(eval): include latest relevant Blob changes
Also includes some small relevant nearby non-Blob changes and typo
fixes.

Changes are included from:
- v8.1.0815
- v8.1.0846
- v8.1.1084
- v8.1.2326
- v8.2.1969
- d89682477c
- d09091d495
- 53f7fccc94
2021-09-16 00:14:48 +01:00
6eb41e5c8d test(oldtest): unskip existing tests that use Blobs 2021-09-16 00:14:48 +01:00
e53b71627f feat(f_msgpackparse): support parsing from Blob
Note that it is not possible for msgpack_unpack_next() and
msgpack_unpacker_next() to return MSGPACK_UNPACK_EXTRA_BYTES, so it
should be fine to abort() on that.

Lua 5.1 doesn't support string hex escapes (\xXX) like VimL does (though
LuaJIT does), so convert them to decimal escapes (\DDD) in tests.
2021-09-16 00:14:47 +01:00
ddaa0cc9be fix(test/dumplog): tostring(rv) before formatting as string
For example, implicitly converting a table to a string works in LuaJIT,
but needs to be done explicitly with tostring() in Lua 5.1.

This can cause issues when testing a non-JIT build if eq(), for example,
fails with a table argument. E.g: eq({}, {1}) will not print the details
of the assertion failure, but will instead print a less helpful "string
expected, got table" error.
2021-09-16 00:14:47 +01:00
5fdf741f77 feat(f_msgpackdump): support dumping to Blob 2021-09-16 00:14:47 +01:00
7e9ea08321 feat(f_chansend): support Blob data argument 2021-09-16 00:14:47 +01:00
e88961943b fix(eval): partially port v8.2.3284
These were issues that I found while porting that I fixed upstream. :^)

Very little of the patch can be exactly ported as we're a bit behind on
dependant patches (we also can't use the exact :for emsg, as we don't
support iterating over Strings yet), so just translate the fixes as best
as we can for now.

Include latest relevant doc changes from:
- v8.1.0815
- v8.2.2658
2021-09-16 00:14:46 +01:00
3d6bb8b3fb fix(f_remove): partially port v8.2.2779
Fixes remove() copying one extra byte after the end of a Blob's buffer.

Can't be fully ported as the change is from blob_remove(), which hasn't
been ported yet.
2021-09-16 00:14:46 +01:00
ecb54238e0 vim-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.
f2dd9cb995
2021-09-16 00:14:46 +01:00
9e38c4a79f vim-patch:8.2.1473: items in a list given to :const can still be modified
Problem:    Items in a list given to :const can still be modified.
Solution:   Work like ":lockvar! name" but don't lock referenced items.
            Make locking a blob work.
021bda5671
2021-09-16 00:13:41 +01:00
ffaf881b42 vim-patch:8.2.0829: filter() may give misleading error message
Problem:    filter() may give misleading error message.
Solution:   Also mention Blob as an allowed argument.
fcb0b61d15

Rename Test_map_fails() to Test_map_filter_fails() from v8.2.0610 and
include the modeline.
2021-09-15 22:57:55 +01:00
19232593ba fix(f_insert): partially port v8.2.0634
Fixes a crash in f_insert() when inserting into a NULL blob.
Include blob-related test changes and some other simple changes.
2021-09-15 22:57:54 +01:00
9b5c9dbfa7 vim-patch:8.2.0521: crash when reading a blob fails
Problem:    Crash when reading a blob fails.
Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pelle,
            closes vim/vim#5890)  Adjust error messages.
15352dc6ec
2021-09-15 22:57:54 +01:00
ba34afb378 vim-patch:8.2.0404: writefile() error does not give a hint
Problem:    Writefile() error does not give a hint.
Solution:   Add remark about first argument.
18a2b87ca2
2021-09-15 22:57:54 +01:00
53f28f024c vim-patch:8.2.0184: blob test fails
Problem:    Blob test fails.
Solution:   Check for different error when float feature is missing.
92be6e3f46

Nvim always has the float feature, but include the changes to the test
anyway.
2021-09-15 22:57:53 +01:00
ef76238548 vim-patch:8.2.0121: filter() and map() on blob don't work
Problem:    filter() and map() on blob don't work.
Solution:   Correct the code. (closes vim/vim#5483)
49c57ce500
2021-09-15 22:57:53 +01:00
726b255288 vim-patch:8.1.1671: copying a blob may result in it being locked
Problem:    Copying a blob may result in it being locked.
Solution:   Reset v_lock. (Ken Takata, closes vim/vim#4648)
b7b9efbccf
2021-09-15 22:57:53 +01:00
e7772c051f vim-patch:8.1.1023: may use NULL pointer when indexing a blob
Problem:    May use NULL pointer when indexing a blob. (Coverity)
Solution:   Break out of loop after using index on blob
61be376337
2021-09-15 22:57:52 +01:00
bd9c787b4f vim-patch:8.1.0802: negative index doesn't work for Blob
Problem:    Negative index doesn't work for Blob.
Solution:   Make it work, add a test. (closes vim/vim#3856)
a5be9b6248

Leave tv_blob_get()'s return type untouched.
2021-09-15 22:57:47 +01:00
23f5999d28 vim-patch:8.1.0798: changing a blob while iterating over it works strangely
Problem:    Changing a blob while iterating over it works strangely.
Solution:   Make a copy of the Blob before iterating.
dd29ea1805
2021-09-15 22:30:31 +01:00
e140eec441 vim-patch:8.1.0797: error E898 is used twice
Problem:    Error E898 is used twice.
Solution:   Rename the Blob error to E899. (closes vim/vim#3853)
bf821bccf1
2021-09-15 22:30:31 +01:00
c57132ec2a vim-patch:8.1.0793: incorrect error messages for functions that take a Blob
Problem:    Incorrect error messages for functions that now take a Blob
            argument.
Solution:   Adjust the error messages. (Dominique Pelle, closes vim/vim#3846)
0d17f0d1c0
2021-09-15 22:30:31 +01:00
6a02ccc222 vim-patch:8.1.0765: string format of a Blob can't be parsed back
Problem:    String format of a Blob can't be parsed back.
Solution:   Use 0z format.
4131fd5509
2021-09-15 22:30:30 +01:00
0eadd7e5fd vim-patch:8.1.0757: not enough documentation for Blobs
Problem:    Not enough documentation for Blobs.
Solution:   Add a section about Blobs.
d89682477c

Include doc changes for empty() from v7.4.1274.
Include some minor typo fixes.
2021-09-15 22:30:20 +01:00
2b98bdd75b vim-patch:8.1.0756: copy() does not make a copy of a Blob
Problem:    copy() does not make a copy of a Blob.
Solution:   Make a copy.
3d28b58c51

Replace vim_memsave() with xmemdup().
2021-09-15 21:54:00 +01:00
c1b8731ece vim-patch:8.1.0755: error message for get() on a Blob with invalid index
Problem:    Error message for get() on a Blob with invalid index.
Solution:   Return an empty Blob, like get() on a List does.
2ea773b468
2021-09-15 21:54:00 +01:00
d346ac536f vim-patch:8.1.0742: not all Blob operations are tested
Problem:    Not all Blob operations are tested.
Solution:   Add more testing for Blob.
05500ece62

Test_readfile_binary is already ported.
2021-09-15 21:53:38 +01:00
7200454ee6 vim-patch:8.1.0738: using freed memory, for loop over blob leaks memory
Problem:    Using freed memory, for loop over blob leaks memory.
Solution:   Clear pointer after freeing memory.  Decrement reference count
            after for loop over blob.
ecc8bc482b
2021-09-15 21:19:31 +01:00
de9df825d5 feat(decode_string): decode binary string with NULs to Blob
Strings that previously decoded into a msgpack special for representing
BINs with NULs now convert to Blobs. It shouldn't be possible to decode
into this special anymore after this change?

Notably, Lua strings with NULs now convert to Blobs when passed to VimL.
2021-09-15 21:19:30 +01:00
ef729fb15b feat(shada): restore Blob globals properly
As Strings and Blobs are encoded as msgpack BINs, the current ShaDa
implementation will restore global Blob variables as Strings (or msgpack
special dicts if they contain NULs).

Encode an additional element with Blob globals to differentiate them
from Strings so that we can restore them with the correct type.

Adjust variables_spec.lua's autotest() to also check for proper type.
2021-09-15 21:19:30 +01:00
af6f454f5c feat(msgpack): convert Blobs to BIN strings 2021-09-15 21:19:30 +01:00
ab82369c8e feat(json): convert Blobs to array of byte values
Similiar to how Vim does it, but to be consistent with how Nvim encodes
lists, add a space after every comma.
2021-09-15 21:19:29 +01:00
312c783d81 feat(api): convert Blobs to API strings
Note that these are not NUL-terminated; the API supports this.
2021-09-15 21:19:29 +01:00
10aa60e806 feat(nlua): convert Blobs to strings 2021-09-15 21:19:29 +01:00
bfeecd0b41 vim-patch:8.1.0736: code for Blob not sufficiently tested
Problem:    Code for Blob not sufficiently tested.
Solution:   Add more tests.  Fix uncovered crash.  Add test_null_blob().
c0f5a78c15

eval0 and ex_echo's emsg-specific changes have already been ported.
These tests uncover another crash that was fixed in v8.1.0738.
2021-09-15 21:19:29 +01:00
9095101743 vim-patch:8.1.0735: cannot handle binary data
Problem:    Cannot handle binary data.
Solution:   Add the Blob type. (Yasuhiro Matsumoto, closes vim/vim#3638)
6e5ea8d2a9

Nvim-specific Blob conversions are implemented in future commits.

Refactor write_blob() to use a FileDescriptor, as f_writefile() was
refactored to use one (does not apply to read_blob()).

Use var_check_lock() in f_add() for Blobs from v8.1.0897.

Add a modeline to test_blob.vim and fix some doc typos.

Include if_perl.txt's VIM::Blob() documentation. Interestingly, this
function already worked before this port, as it just returns a Blob
string literal, not an actual Blob object.

N/A patches for version.c:

vim-patch:8.1.0741: viminfo with Blob is not tested

Problem:    Viminfo with Blob is not tested.
Solution:   Extend the viminfo test.  Fix reading a blob.  Fixed storing a
            special variable value.
8c8b8bb56c

vim-patch:8.1.1022: may use NULL pointer when out of memory

Problem:    May use NULL pointer when out of memory. (Coverity)
Solution:   Check for blob_alloc() returning NULL.
e142a9467a
2021-09-15 21:19:22 +01:00
a5bbb932f9 refactor: move vim.lsp.diagnostic to vim.diagnostic
This generalizes diagnostic handling outside of just the scope of LSP.
LSP clients are now a specific case of a diagnostic producer, but the
diagnostic subsystem is decoupled from the LSP subsystem (or will be,
eventually).

More discussion at [1].

[1]: https://github.com/neovim/neovim/pull/15585
2021-09-15 14:09:47 -06:00
685cf39813 feat(lsp): improve logging (#15636)
* Simplify rpc encode/decode messages to rpc.send/rcp.receive
* Make missing handlers message throw a warning
* Clean up formatting style in log
* Move all non-RPC loop messages to trace instead of debug
* Add format func option to log to allow newlines in per log entry
2021-09-15 11:35:04 -07:00
afdc9e6150 fix(:source): copy curbuf lines to memory before sourcing #15111
It's possible for weirdness to happen if curbuf is modified while
sourcing from it via :source (with no arguments). For example:

- Deleting lines from or wiping curbuf can cause internal error E315 to
  be thrown from ml_get.
- Changing the curbuf to another buffer while sourcing can cause lines
  from the new curbuf to then be sourced instead.
2021-09-15 05:17:07 -07:00
6188926e00 fix(:source, nvim_exec): handle Vimscript line continuations #14809
Problem:
Anonymous :source (no args) and nvim_exec() don't support Vimscript line continuations.

Solution:
Factor out the concat logic into concat_continued_line() and a
CONCAT_CONTINUED_LINES macro for simple concatenations where lines are
fetched individually.

Closes #14807
2021-09-14 16:35:33 -07:00
b86039b104 fix(ui): don't log from UI events during free_all_mem()
Example assertion failure:

   %0 in logmsg neovim/src/nvim/log.c:139:17
   %1 in ui_call_update_menu neovim/build/src/nvim/auto/ui_events_call.generated.h:8:3
   %2 in ex_menu neovim/src/nvim/menu.c:263:3
   %3 in do_one_cmd neovim/src/nvim/ex_docmd.c:1981:5
   %4 in do_cmdline neovim/src/nvim/ex_docmd.c:602:20
   %5 in do_cmdline_cmd neovim/src/nvim/ex_docmd.c:287:10
   %6 in free_all_mem neovim/src/nvim/memory.c:596:3
   %7 in os_exit neovim/src/nvim/main.c:574:3
   %8 in exit_event neovim/src/nvim/msgpack_rpc/channel.c:569:5
2021-09-14 21:01:15 +02:00
9edd17509f Merge #15657 vim-patch:8.1.1195,8.2.{3417,3419} 2021-09-14 10:27:21 -07:00
b63b4777ec docs: third-party licenses, TEST_COLORS, system() #15665 2021-09-14 10:20:33 -07:00
0a83017fe9 refactor: format files with uncrustify #15663 2021-09-14 09:13:34 -07:00
516775e9d8 fix(lsp): correctly parse LSP snippets #15579
Fixes #15522
2021-09-14 04:31:41 -07:00
b8cce77702 fix: "redundant cast to the same type" #15662
Apply "redundant cast to the same type" fix from clangd.
2021-09-14 04:07:08 -07:00
6ed43f8f1c refactor: format tui/input.c with uncrustify (#15661) 2021-09-14 12:21:24 +02:00
0771504488 refactor: format tui.c with uncrustify (#15640) 2021-09-14 10:36:08 +02:00
31ac33bf77 vim-patch:8.2.3419: a failing debug expression may make Vim unusable
Problem:    A failing debug expression may make Vim unusable.
Solution:   Suppress error messages. (closes vim/vim#8848)
0325d3967c
2021-09-13 17:24:07 +01:00
936c4ae151 vim-patch:8.2.3417: Vim9: a failing debug expression aborts script sourcing
Problem:    Vim9: a failing debug expression aborts script sourcing.
Solution:   Do not let expression failure abort script sourcing. (closes vim/vim#8848)
072f1c6888

Vim9script is N/A, exclude Test_Debugger_breakadd_expr.

Move debuggy struct to before generated header inclusion so
eval_expr_restore prototype works.

Add CheckRunVimInTerminal to Test_Debugger_breakadd.
Cherry-pick Test_Debugger_breakadd changes from v8.2.1440, v8.2.1736.
2021-09-13 17:19:24 +01:00
9f3d7dcda2 vim-patch:8.1.1195: Vim script debugger functionality needs cleanup
Problem:    Vim script debugger functionality needs cleanup.
Solution:   Move debugger code to a separate file.  Add more tests. (Yegappan
            Lakshmanan, closes vim/vim#4285)
eead75c5e8

Good to have for eval_expr_restore in v8.2.3417.

Doesn't actually add any tests.
2021-09-13 17:19:15 +01:00
5fd21b8d3e vim-patch:6c391a74fe90 (#15654)
Update runtime files
6c391a74fe

omit autoload/getscript.vim

skip doc/eval.txt (needs 8.2.2468)
skip doc/various.txt (needs 8.2.3400)

(typofixes courtesy of @dundargoc)
2021-09-13 16:33:41 +02:00
1a9d2a4040 vim-patch:89a9c159f23f #15641
Update runtime files
89a9c159f2

Omit:
nsis/lang/turkish.nsi
pixmaps/gen-inline-pixbufs.sh
doc/popup.txt
doc/terminal.txt
tutor/tutor*
src/[g]vimtutor
CONTRIBUTING.md

Skip:
doc/eval.txt (needs 8.1.2342)
doc/testing.txt (needs 8.2.0299)
2021-09-13 06:05:27 -07:00
d5b66e8860 refactor: replace TRUE/FALSE with true/false #15647 2021-09-13 04:57:36 -07:00
b9d57fa107 vim-patch:8.2.3432: octave/Matlab filetype detection does not work properly (#15652)
Problem:    Octave/Matlab filetype detection does not work properly.
Solution:   Update the patterns used for matching. (Doug Kearns)
ca0627df69
2021-09-13 10:00:09 +02:00
643cb8a6ec doc(options): remove vim9script reference (#15645)
[skip ci]
2021-09-12 13:51:00 +02:00
5615ea8b6b vim-patch:8.2.3368: not all Racket files are recognized (#15643)
Problem:    Not all Racket files are recognized.
Solution:   Also recognize .rktl and .rktd files. (Doug Kearns)
9cd91a1e88
2021-09-12 13:09:18 +02:00
ae73aa8339 vim-patch:8.2.3374: Pyret files are not recognized (#15642)
Problem:    Pyret files are not recognized.
Solution:   Recognize .arr files as Pyret. (Doug Kearns)
eb05d05f8a
2021-09-12 12:55:34 +02:00
1c5833cb00 Merge pull request #15639 from bfredl/xdata
fix(tests): use isolated XDG_DATA_HOME in startup tests
2021-09-12 11:35:31 +02:00
229effac9f vim-patch:partial 6aa57295cfbe (#15633)
* vim-patch:partial 6aa57295cfbe

Update runtime files
6aa57295cf

omit doc/popup.txt
omit plugin/manpager.vim

partial skip runtime/doc/eval.txt (needs 8.2.{0258,0924,1544,2324,2468,2606})

skip ftplugin/julia.vim, indent/julia.vim, syntax/julia.vim (already
        ported in
        65f32f0f19)
skip syntax/scala.vim (already ported in
        a92e83ac14)
2021-09-12 11:02:33 +02:00
4a7a99ff31 Merge pull request #15550 from jasonccox/vim-8.2.3385
vim-patch:8.2.3385,8.2.3393
2021-09-12 10:55:35 +02:00
8e663e28ee fix(tests): use isolated XDG_DATA_HOME in startup tests
Otherwise the users site packages will be loaded from ~/.local/share/nvim/site
which can cause unexpected error messages and other kinds of mayhem

Simpler alternative: use "--noplugin". Shouldn't be done because:
(1) these tests should test the ordinary startup code path as close as possible
(2) tests that test the loading of site packages will be added here very soon
2021-09-12 09:30:46 +02:00
cd4ec810e9 Merge pull request #14770 from andrew-pa/fix13403
Fix relative float positioning
2021-09-12 09:23:47 +02:00
e2c3bcd52c Merge pull request #15637 from bfredl/colorsss
fix(build): add an env var to re-enable the colors
2021-09-12 08:34:13 +02:00
5087347e3b fix(build): add an env var to re-enable the colors 2021-09-11 23:20:00 +02:00
413e86869e Merge #14611 from seandewar/vim-8.1.1116
vim-patch:8.1.{1116,1188,1190,1355,1722,2035,2036,2038,2043},8.2.{0886,2309}
2021-09-11 12:12:59 -07:00
e31652879e vim-patch:partial 53f7fccc9413 (#15631)
* vim-patch:partial 53f7fccc9413

Update runtime files
53f7fccc94

omit macros/hanoi/hanoi.vim
omit spell/tet/main.aap
omit tools/shtags.1
omit tools/xcmdsrv_client.c

skip doc/pattern.txt (requires 8.2.3110; 8.2.{1665,1872})
skip doc/map.txt (requires 8.2.3228)
2021-09-11 16:47:45 +02:00
7175efb518 fix(get_showbreak_value): remove FUNC_ATTR_UNUSED 2021-09-11 15:36:04 +01:00
26733dd488 vim-patch:8.2.2309: 0o777 not recognized as octal
Problem:    0o777 not recognized as octal.
Solution:   Use vim_isodigit(). (Ken Takata, closes vim/vim#7633, closes vim/vim#7631)
c37b655443

:scriptversion is N/A.
2021-09-11 15:36:04 +01:00
90a4cf92d2 vim-patch:8.2.0886: cannot use octal numbers in scriptversion 4
Problem:    Cannot use octal numbers in scriptversion 4.
Solution:   Add the "0o" notation. (Ken Takata, closes vim/vim#5304)
c17e66c5c0

:scriptversion is N/A.

Cherry-pick latest str2nr() doc changes from v8.1.2035.
Cherry-pick various mentions of the 0o prefix from:
 - v8.2.2324
 - 2346a63784
 - 11e3c5ba82
 - 82be4849ee

Patch used ascii_isbdigit() by mistake, which was fixed in v8.2.2309.

Make STR2NR_OOCT work the same as STR2NR_OCT when forcing.
In Vim, STR2NR_FORCE | STR2NR_OOCT isn't handled, and doesn't actually
force anything. Rather than abort(), make it work as STR2NR_OCT.

This means STR2NR_FORCE | STR2NR_OCT works the same as
STR2NR_FORCE | STR2NR_OOCT and STR2NR_FORCE | STR2NR_OCT | STR2NR_OOCT.
2021-09-11 15:36:03 +01:00
10018958d8 vim-patch:8.1.2043: not sufficient testing for quoted numbers
Problem:    Not sufficient testing for quoted numbers.
Solution:   Add a few more test cases.
ea8dcf8346

:scriptversion is N/A.

Already added more quote tests in the port of v8.1.2036.
2021-09-11 15:35:55 +01:00
b6d9e92805 vim-patch:8.1.2036: the str2nr() tests fail
Problem:    The str2nr() tests fail.
Solution:   Add missing part of patch.
1ac90b4fa6

Add extra tests for quoted numbers in vim_str2nr_spec.lua, as the
included ones in this patch are somewhat lacking.
2021-09-11 15:33:20 +01:00
6617629ad6 vim-patch:8.1.2035: recognizing octal numbers is confusing
Problem:    Recognizing octal numbers is confusing.
Solution:   Introduce scriptversion 4: do not use octal and allow for single
            quote inside numbers.
60a8de28d1

:scriptversion is N/A.

Cherry-pick Test_readfile_binary() from v8.1.0742.

Note that this patch was missing vim_str2nr() changes, and so fails the
tests; this was fixed in v8.1.2036.
2021-09-11 15:33:20 +01:00
dda977f5c4 vim-patch:8.1.1722: error when scriptversion is 2 a making a dictionary access
Problem:    Error when scriptversion is 2 a making a dictionary access.
Solution:   Parse the subscript even when not evaluating the sub-expression.
            (closes vim/vim#4704)
61343f0c44

:scriptversion is N/A.
2021-09-11 15:33:19 +01:00
34cb087955 vim-patch:8.1.1355: obvious mistakes are accepted as valid expressions
Problem:    Obvious mistakes are accepted as valid expressions.
Solution:   Be more strict about parsing numbers. (Yasuhiro Matsumoto,
            closes vim/vim#3981)
16e9b85113

Update vim_str2nr_spec.lua to add more tests that use strict = true.
2021-09-11 15:33:19 +01:00
cd18fe17a8 vim-patch:8.1.1116: cannot enforce a Vim script style
Problem:    Cannot enforce a Vim script style.
Solution:   Add the :scriptversion command. (closes vim/vim#3857)
558ca4ae55

:scriptversion is N/A, but ":let ..=" is relevant.

N/A patches for version.c

vim-patch:8.1.1188: not all Vim variables require the v: prefix

Problem:    Not all Vim variables require the v: prefix.
Solution:   When scriptversion is 3 all Vim variables can only be used with
            the v: prefix.  (Ken Takata, closes vim/vim#4274)
d2e716e6df

vim-patch:8.1.1190: has('vimscript-3') does not work

Problem:    has('vimscript-3') does not work.
Solution:   Add "vimscript-3" to the list of features.
93a4879c20

vim-patch:8.1.2038: has('vimscript-4') is always 0

Problem:    has('vimscript-4') is always 0.
Solution:   Add "vimscript-4" to the feature table. (Naruhiko Nishino,
            closes vim/vim#4941)
af91438338
2021-09-11 15:33:06 +01:00
e7d2102c91 docs: .git-blame-ignore-revs #15535 2021-09-11 07:12:03 -07:00
e8067d1490 refactor(syntax.c): format with uncrustify #15627 2021-09-11 07:07:15 -07:00
521817ee76 Merge pull request #15619 from clason/vim-90df4b9d4234
vim-patch:90df4b9d4234

chore(vim-patch): add doc/vim9.txt to unwanted files
2021-09-11 12:59:30 +02:00
086631cd92 feat(api): win_viewport also sends line_count #15613 2021-09-10 19:19:39 -07:00
09a477737f Merge #15311 docs(extmarks) 2021-09-10 19:13:36 -07:00
915703f2d8 docs: extmarks indexing #15311
ref #11456
2021-09-10 19:10:09 -07:00
f8e406ed30 docs: extmarks indexing #15311
fix #11456
2021-09-10 18:31:11 -07:00
9b553ad28d docs: extmark indexing #12742
Extmarks mostly use api-indexing, except for nvim_buf_get_extmarks(),
which uses api-indexing with inclusive ranges.

ref #11456
2021-09-10 17:59:28 -07:00
9697023a0b vim-patch:8.2.3389: cannot stop insert mode completion without side effects #15538
Problem:    Cannot stop insert mode completion without side effects.
Solution:   Add CTRL-X CTRL-Z. (closes vim/vim#8821)
dca29d9cf4
2021-09-10 17:14:32 -07:00
5e22fdd9cc test: avoid writing ~/.bash_history #15621
Problem:
- If I run 'make test' on Linux (Fedora), a few lines like
  /path/to/neovim/build/bin/shell-test REP 31 line
  /path/to/neovim/build/bin/shell-test REP 41 line
  are written to my ~/.bash_history.
  These comes from from test/functional/terminal/scrollback_spec.lua.
- If $HISTFILE is unset, shell will not write to history file.
  But bash sets $HISTFILE to default value (~/.bash_history) if it is unset.
- Unknown how to set an env var to empty string in CMake. These do NOT work:
  set(HISTFILE "")
  set(ENV{HISTFILE} "")
  unset(ENV{HISTFILE})

Solution:
Set HISTFILE=/dev/null
2021-09-10 11:54:36 -07:00
7525052270 Merge #15626 vim-patch:8.1.{2281,2283},8.2.{2903,3391,3397} 2021-09-10 08:43:45 -07:00
36aff87ab6 vim-patch:8.2.3397: no test for what 8.2.3391 fixes
Problem:    No test for what 8.2.3391 fixes.
Solution:   Add a test. (Yegappan Lakshmanan, closes vim/vim#8828)
03d257998b
2021-09-10 15:52:07 +01:00
6e1c03bd2d vim-patch:8.2.3391: crash with combination of 'linebreak' and other options
Problem:    Crash with combination of 'linebreak' and other options.
Solution:   Avoid n_extra to become negative. (Christian Brabandt,
            closes vim/vim#8817)
20e0c3d27b
2021-09-10 15:52:07 +01:00
b91609a70d vim-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 vim/vim#8262)
a06e345af5

Add a modeline to test_display.vim.

This introduced a regression fixed by v8.2.3391.
2021-09-10 15:52:07 +01:00
fd1dbb103b vim-patch:8.1.2281: 'showbreak' cannot be set for one window
Problem:    'showbreak' cannot be set for one window.
Solution:   Make 'showbreak' global-local.
ee85702c10

Change in oneleft() is N/A as the relevant condition was removed
(has_mbyte is always true for Nvim, so the condition was always false;
see commit 73dc9e9).

Use wp over curwin for curs_columns().

Required for v8.2.2903 (otherwise test fails as it'll leave the global
option set).

N/A patches for version.c:

vim-patch:8.1.2283: missed on use of p_sbr

Problem:    Missed on use of p_sbr.
Solution:   Add missing p_sbr change.
91e22eb6e0

Already ported in commit 43a874a.
2021-09-10 15:50:43 +01:00
f46341fa43 vim-patch:8.2.3400: ":z!" is not supported
Problem:    ":z!" is not supported.
Solution:   Make ":z!" work and add tests. (Dominique Pellé, closes vim/vim#8836)
            Use display height instead of current window height.
7f2dd1e90c
2021-09-10 15:35:19 +01:00
a73b7c2b16 vim-patch:8.2.3398: html text objects are not fully tested
Problem:    Html text objects are not fully tested.
Solution:   Add tests for dbcs encoding and different number of backslashes.
            (Dominique Pellé, closes vim/vim#8831)
af631f61bc

Cherry-pick Test_textobj_quote() and modeline from v8.2.0655.
2021-09-10 15:35:18 +01:00
c23e87d9d1 vim-patch:8.2.3386: using uninitialized memory
Problem:    Using uninitialized memory.
Solution:   Initialize the rm_ic field. (Dominique Pellé, closes vim/vim#8800)
a918712626
2021-09-10 15:35:18 +01:00
b3a97c56b6 vim-patch:8.2.3384: cannot disable modeline for an individual file
Problem:    Cannot disable modeline for an individual file.
Solution:   Recognize "nomodeline" in a modeline. (Hu Jialun, closes vim/vim#8798)
9dcd349ca8

Cherry-pick missing modeline for test_modeline.vim (heh) from v8.2.1432.
2021-09-10 15:35:18 +01:00
e8e2f73c3a vim-patch:8.2.3378: MS-Windows: completing environment variables with % is wrong
Problem:    MS-Windows: completing environment variables with % is wrong.
Solution:   Only complete environment variables with $. (Albert Liu,
            closes vim/vim#8791)
6024c0427c

The change itself in set_one_cmd_context() is N/A (it was never included
in Neovim to begin with).

N/A patches for version.c:

vim-patch:8.2.3379: crash when using NULL job

Problem:    Crash when using NULL job.
Solution:   Copy static string into buffer. (issue vim/vim#8260)
271906bc06
2021-09-10 15:35:15 +01:00
0dcfd0e8d1 fix(mouse.c): fix mouse drag positions on multigrid #12667
Currently, multigrid mouse drag positions are handled incorrectly if the
drag event is not in the top left grid. Fix this by not adjusting the
position of the event in jump_to_mouse.

related: #15091
2021-09-10 07:24:41 -07:00
c58ee4ef7f docs: clarify :runtime START, OPT behavior #15342
By default, the :runtime command searches "pack/*/start" in 'packpath'
along with 'runtimepath'. Update the documentation to reflect this
behavior.
2021-09-10 07:11:50 -07:00
7b822d4b4b Merge branch 'master' into histfile 2021-09-10 07:05:11 -07:00
329047b3db docs #15625
fix #12261
fix #15536
fix #15623
fix #15572
ref #14244
ref #15034

close #15555
close #14957
2021-09-10 06:59:17 -07:00
af6948d271 docs(terminal): clarify CTRL-\ behavior #15171 2021-09-10 06:24:08 -07:00
4b452d4efb perf(lua): optimize vim.deep_equal #15236
By remembering the keys already compared in repeating a comparison is
avoided. Thanks: https://stackoverflow.com/a/32660766
2021-09-10 06:22:40 -07:00
3b3dbcf7b7 refactor: format files with uncrustify #15607 2021-09-10 06:14:15 -07:00
aab3583e74 vim-patch:8.2.3399: Octave files are not recognized (#15622)
Problem:    Octave files are not recognized.
Solution:   Detect Octave files. (Doug Kearns)
deba5eb195
2021-09-10 14:01:13 +02:00
c58a667e57 chore(vim-patch): add doc/vim9.txt to unwanted files 2021-09-10 13:20:11 +02:00
185ed18e6c Merge pull request #15618 from jamessan/test-timeout-config
test: use $TEST_TIMEOUT to specify timeout
2021-09-10 06:27:20 -04:00
c7ccb26260 do not write into user's ~/.bash_history 2021-09-10 18:21:29 +09:00
be557dddf4 vim-patch:90df4b9d4234
Update runtime files
90df4b9d42

omit .github/CODEOWNERS
omit doc/vim9.txt
omit po/it.po

skip ftplugin/jsonc.vim
skip indent/jsonc.vim
skip syntax/jsonc.vim
(already ported in dce50312e1)

partial skip doc/eval.txt (needs 8.1.{2304,2321})
2021-09-10 09:14:56 +02:00
8f0c843c13 vim-patch:4d8f476176ea (#15612)
* vim-patch:4d8f476176ea

Update runtime files
4d8f476176

skip nsis/README.txt
skip doc/vim9.txt
skip src/nvim/po/it.po
2021-09-10 08:48:27 +02:00
a422f2136a docs(gen_vimdoc.py): ignore health.lua files #15614 2021-09-09 18:28:12 -07:00
8d93223f83 test: use $TEST_TIMEOUT to specify timeout 2021-09-09 20:49:26 -04:00
2fe95cb1ad vim-patch:partial 2346a6378483 (#15599)
Update runtime files
2346a63784

omit doc/vim.man
omit doc/vim9.txt
omit doc/vimdiff.txt
omit doc/vimdiff.man

skip doc/eval.txt (missing patch 8.2.2324)
skip doc/help.txt (missing patch 8.2.2344)
2021-09-09 18:59:11 +02:00
d80aac3b2a Merge pull request #15566 from bfredl/mpack
libs: vendor libmpack and libmpack-lua
2021-09-09 18:47:03 +02:00
13748512f6 test(busted): disable colors in test-runner output #15610
Problem
-------

Because test/busted/outputHandlers/nvim.lua doesn't know if it's running
in a terminal (no "isatty" equivalent), it outputs color codes in CI
logs and local tooling that runs the tests in a pipe:

    [1m[ SKIPPED ] 

This is just noise, hard for humans to read.

Solution
--------

Disable the color codes. If we later find a clever way to detect
a terminal in nvim.lua, we might consider re-enabling colors, but that
would still affect the CI build logs...
2021-09-09 09:18:43 -07:00
422198cde6 Merge pull request #15091 from yatli/mouse_drag_fix
fix #15075 (mouse crash in multigrid)
2021-09-09 17:37:59 +02:00
ad8eda3f5b fix(ci): don't enrage the CI Gods by calling a file 'core.*' 2021-09-09 16:06:43 +02:00
0f596665cc feat(lua): make vim.mpack support vim.NIL and vim.empty_dict() 2021-09-09 16:06:43 +02:00
eaf661dacd feat(lua): add vim.mpack for msgpack support in lua 2021-09-09 16:06:43 +02:00
2a08aeff1a fix(build): make vendored libmpack and libmpack-lua build properly 2021-09-09 16:06:43 +02:00
4ef3c2c2c1 build: vendor libmpack/libmpack-lua sources from b593809d93b5299bbee4e1d18e2e2d55f9fa53a6 2021-09-09 16:06:43 +02:00
c8f46480bc build: vendor libmpack source from libmpack/libmpack 22b1fd90285117c995728511f9525d29520a8c82 2021-09-09 16:06:43 +02:00
d8339be691 Merge #15460 feat(lua)!: register_keystroke_callback => on_key 2021-09-09 06:55:35 -07:00
9f3679cbfd docs: naming conventions 2021-09-09 06:28:11 -07:00
69fe427df4 feat(lua)!: register_keystroke_callback => on_key
Analogous to nodejs's `on('data', …)` interface, here on_key is the "add
listener" interface.

ref 3ccdbc570d #12536

BREAKING_CHANGE: vim.register_keystroke_callback() is now an error.
2021-09-09 06:09:33 -07:00
4eb1ebbcf7 fix(doc): various fixes #15604
In particular:
- jobwait: omitting {timeout} arg is the same as -1.
- sockconnect: omitting {opts} arg is the same as {}.
- jobsend: obsoleted by chansend; don't mention it in job_control.txt.
- menu_get: add to |functions| table.

[skip ci]
2021-09-09 00:37:59 -07:00
ed0c747788 Merge pull request #15602 from clason/vim-8.2.3390
vim-patch:8.2.3390: included xdiff code is outdated

build: move src/nvim/xdiff to src/xdiff
2021-09-09 08:43:20 +02:00
fbe88ef8f5 build: move src/nvim/xdiff to src/xdiff
Closes #11239
2021-09-08 22:34:54 +02:00
69f4438d35 vim-patch:8.2.3390: included xdiff code is outdated
Problem:    Included xdiff code is outdated.
Solution:   Sync with xdiff in git 2.33. (Christian Brabandt, closes vim/vim#8431)
ba02e4720f
2021-09-08 22:33:20 +02:00
9065730680 fix(windowing): positioning of relative floats
Fix relative floating windows so that they open in the correct position
relative to each other. Also make sure that their positions are correct
immediately after creation without a redraw.
2021-09-08 10:31:47 -06:00
c1f573fbc9 feat(lsp): support textDocument/prepareRename (#15514) 2021-09-08 17:00:15 +02:00
11289ad733 fix(termdebug): replace term_getline with getbufline #15598
Correct incomplete runtime file port in
79cbbd5179
2021-09-08 07:35:40 -07:00
79cbbd5179 vim-patch:d2ea7cf10a4d #15571
Update runtime files
d2ea7cf10a

omit `runtime/doc/if_tcl.txt`
omit `runtime/doc/textprop.txt`
omit `runtime/tutor/*`
omit `runtime/syntax/vim.vim` (cherry-picked in 2dd7828511)

manual merge of `runtime/pack/dist/opt/termdebug/plugin/termdebug.vim`
2021-09-08 07:24:12 -07:00
5e5a329ea2 test: timeout at 20 minutes #15597
Set a maximum test run-time of 20 minutes to:
- fail faster
- avoid wasting CI resources
- set a bound on the test time (if tests take longer than 20 minutes we
  need to invest in parallelizing them...)

Timeout looks like:

    -- Tests exited non-zero: Process terminated due to timeout
    -- No output to stderr.
    CMake Error at /…/neovim/cmake/RunTests.cmake:86
    (message):
      functional tests failed with error: Process terminated due to timeout
2021-09-08 07:21:28 -07:00
384a43fe71 chore(lsp): fix formatting in vim.lsp.log (#15596) 2021-09-07 21:48:19 -07:00
257e8a7431 Merge pull request #15595 from mjlbach/feat/add-healthcheck-lsp
* feat(lsp): add lsp healthcheck

* feat(lsp): add warning message for large log size
2021-09-07 21:16:19 -07:00
e6777a7a04 feat(lsp): add warning message for large log size 2021-09-07 20:52:08 -07:00
e26802650d feat(lsp): add lsp healthcheck
Add healthcheck for language server client, currently only checks
logging status.
2021-09-07 20:51:40 -07:00
47f99d6644 Merge pull request #15575 from dundargoc/refactor/uncrustify
refactor: format files with uncrustify
2021-09-07 22:18:46 +02:00
28ac6c00e6 fix(multigrid): #15075 mouse events crash neovim 2021-09-08 01:57:40 +08:00
1e49a1c888 refactor: format files with uncrustify 2021-09-07 19:07:51 +02:00
Jit
db695cc4ca fix(screen): missing search highlights when redrawing from timer #15380
* Revert "vim-patch:8.1.2294: cursor pos wrong with concealing and search causes a scroll"
* Add a test which covers #13074 910bbc3cca
  while reverting the screen.c code changes from there.

Fixes #14064
2021-09-06 15:18:33 -07:00
687a0b3d3e fix(lsp): adapt codelens resolve to handler signature change (#15578)
Follow up to https://github.com/neovim/neovim/pull/15504
2021-09-06 17:30:53 +02:00
3f526feebf fix(lsp): update workspace/applyEdit handler signature (#15573) 2021-09-05 12:48:54 -07:00
23fe6dba13 Merge pull request #15504 from mjlbach/feat/change-handler-signature
feat(lsp)!: change handler signature
2021-09-05 10:27:52 -07:00
f7dabbc115 docs: regenerate 2021-09-05 10:05:38 -07:00
df17d7844e feat(lsp)!: change handler signature
Previously, the handler signature was:

  function(err, method, params, client_id, bufnr, config)

In order to better support external plugins that wish to extend the
protocol, there is other information which would be advantageous to
forward to the client, such as the original params of the request that
generated the callback.

In order to do this, we would need to break symmetry of the handlers, to
add an additional "params" as the 7th argument.

Instead, this PR changes the signature of the handlers to:

  function(err, result, ctx, config)

where ctx (the context) includes params, client_id, and bufnr. This also leaves
flexibility for future use-cases.

BREAKING_CHANGE: changes the signature of the built-in client handlers, requiring
updating handler calls
2021-09-05 10:04:30 -07:00
7a0468e7ad Merge pull request #15569 from bfredl/end_fill
refactor(screen): let win_line() always handle fillers after last line
2021-09-05 17:45:46 +02:00
c9c9422af0 build: fix fpclassify -Wfloat-conversion warning #15570
Work around a glibc bug where it truncates the argument to fpclassify()
from double to float by implementing fpclassify() ourselves.

Correctness test (Note that the FP_SUBNORMAL test depends on an atof() that
knows how to parse subnormals. Glibc does, not sure about other libcs.):

    #include <math.h>
    #include <stdint.h>
    #include <string.h>

    int xfpclassify(double d)
    {
      uint64_t m;
      int e;

      memcpy(&m, &d, sizeof(m));
      e = 0x7ff & (m >> 52);
      m = 0xfffffffffffffULL & m;

      switch (e) {
        default: return FP_NORMAL;
        case 0x000: return m ? FP_SUBNORMAL : FP_ZERO;
        case 0x7ff: return m ? FP_NAN : FP_INFINITE;
      }
    }

    #include <assert.h>
    #include <stdlib.h>

    int main(void)
    {
      assert(FP_ZERO == xfpclassify(atof("0.0")));
      assert(FP_ZERO == xfpclassify(atof("-0.0")));
      assert(FP_NORMAL == xfpclassify(atof("1.0")));
      assert(FP_NORMAL == xfpclassify(atof("-1.0")));
      assert(FP_INFINITE == xfpclassify(atof("inf")));
      assert(FP_INFINITE == xfpclassify(atof("-inf")));
      assert(FP_NAN == xfpclassify(atof("nan")));
      assert(FP_NAN == xfpclassify(atof("-nan")));
      assert(FP_SUBNORMAL == xfpclassify(atof("1.8011670033376514e-308")));
      return 0;
    }
2021-09-05 07:37:25 -07:00
274248c354 refactor(screen): let win_line() always handle fillers after last line 2021-09-05 11:22:45 +02:00
dce50312e1 vim-patch:90df4b9 (#15494)
Add JSONC runtime files

Co-authored-by: Izhak Jakov <izhakjakov>
2021-09-04 19:49:17 +02:00
6117877823 Merge pull request #15563 from dundargoc/refactor/uncrustify
refactor: update uncrustify config and format screen.c
2021-09-04 09:39:30 +02:00
15af08ad17 refactor: update uncrustify config and format screen.c
Also set new option cmt_trailing_single_line_c_to_cpp to true. It
converts trailing, single-line c-comments (/**/) into cpp-comments (//).
2021-09-03 21:23:23 +02:00
d3c6f1ebbb vim-patch:8.2.3393: escaping for fish shell is skipping some characters
Problem:    Escaping for fish shell is skipping some characters.
Solution:   Escape character after backslash if needed. (Jason Cox,
            closes vim/vim#8827)
6631597452
2021-09-02 13:07:29 -06:00
85ba41a4b3 vim-patch:8.2.3385: escaping for fish shell does not work properly
Problem:    Escaping for fish shell does not work properly.
Solution:   Insert a backslash before a backslash. (Jason Cox, closes vim/vim#8810)
6e82351130
2021-09-02 13:07:29 -06:00
5f8518b3f0 fix(defaults): "syntax sync maxlines=1" on CmdwinEnter #15552
I mistakenly suggested maxlines=&cmdwinheight, forgetting that it is
calculated from topline, not cursor. maxlines=1 makes the most sense in
cmdwin.

ref #15401 622a36b1f1
2021-09-02 10:29:59 -07:00
622a36b1f1 feat(defaults): limit syntax cost on CmdwinEnter #15401
Add a new default autocommand to limit syntax highlighting
synchronization in the command window. This refactors the nvim_terminal
autocommand out of main() and into a new init_default_autocmds()
function, which is now part of the startup process and can be further
extended with more default autocommands down the road.

ref #6289 #6399
2021-09-02 04:17:04 -07:00
6751d6254b refactor(tests): use assert_alive() #15546 2021-09-01 09:42:53 -07:00
0603eba6e7 feat(api): nvim_get_chan_info: include "argv" for jobs #15537
ref #15440
2021-09-01 07:29:38 -07:00
5c643dee7b docs(lsp): remove private lsp.diagnostic functions from docs (#15541)
Both `apply_to_diagnostic_items` and `show_diagnostics` are local
functions and cannot be called by users.
2021-09-01 14:28:15 +02:00
684550ff38 docs(lsp): document codelens.get bufnr parameter (#15540)
Alternative to https://github.com/neovim/neovim/pull/15224
2021-09-01 13:29:11 +02:00
284199bc4b Merge #15402 fix(terminal): close without ! if the job is stopped 2021-08-31 07:24:25 -07:00
3c081d0280 fix(jobwait): always drain process event queues #15402
Problem:
jobwait() returns early if the job was stopped, but the job might have
pending callbacks on its event queue which are required to complete its
teardown. State such as term->closed might not be updated yet (by the
pending callbacks), so codepaths such as :bdelete think the job is still
running.

Solution:
Always flush the job's event queue before returning from jobwait().

ref #15349
2021-08-31 06:53:06 -07:00
55defa1a41 fix(terminal): close without ! if the job is stopped
- If the terminal job is still running then ! is still required.

Closes #4683
2021-08-31 06:46:56 -07:00
9695691ee4 Merge pull request #15526 from bfredl/f_meta
fix(lua): make core vim module not dependent on $VIMRUNTIME modules
2021-08-30 18:09:53 +02:00
6f2d0ea311 fix(lua): make core vim module not dependent on $VIMRUNTIME functions
fixes #15524

Note: this is obviously a quickfix. A scalabe solution will
involve being able to specify a _list_ of modules to be
put into packages.preload, without needing to manually copypasta
a blurb of C code. Perhaps even involving bytecode for
static builds (to speedup initialization)
2021-08-30 17:31:44 +02:00
c52ec8f9eb fix(tutor): formatting, layout #15098
* fix(tutor): adjust over-80ch lines and corresponding expect file
* fix(tutor): standardise indentation and formatting, add nowrap modeline

- unifies the formatting/layout, which was a bit inconsistent,
- adds a nowrap modeline

Since the tutor uses a lot of conceals, which are included in the character
count when calculating line wrapping, lines were breaking at what looked like
odd spots, which gives a poor first impression and lowered readability.

I have adjusted some lines to be over 80ch in the source, but once they're
rendered out with conceals, they're actually under 80, so even with nowrap we
don't visually extend past 80.

fix #15088
2021-08-30 05:27:35 -07:00
325fad8983 fix(lsp): resolve bufnr in buf_is_attached (#15523) 2021-08-30 07:46:00 -04:00
3ab73ff81f chore(flake): fix for recent nixpkgs (#15520)
https://github.com/NixOS/nixpkgs/pull/134463 made keepDebugInfo obsolete
for generic packages.
This copies what keepDebugInfo used to do.
2021-08-30 11:55:02 +02:00
215c9b5792 Merge pull request #15498 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-08-30 09:47:39 +02:00
b35de6c525 vim-patch:8.2.2938: after using motion force from feedkeys() it sticks (#15240)
Problem:    After using motion force from feedkeys() it may not be reset.
Solution:   Clear motion_force in clearop(). (closes vim/vim#8323)
21492743e8
2021-08-29 17:08:39 -04:00
119b4daced docs: regenerate 2021-08-29 15:34:51 +00:00
4e66e74fd7 Merge pull request #15304 from bfredl/quantumtheory
fix(lua): preserve argument list ... which has not the same length as #{...}
2021-08-29 17:34:00 +02:00
6896d22b63 fix(lua): preserve argument lists which are not lists 2021-08-29 16:04:50 +02:00
81f4de08bd docs: .git-blame-ignore-revs #15510 2021-08-28 14:00:54 -07:00
636ecd0c3b Merge pull request #15509 from bfredl/miniperf
perf(api): avoid spurious allocations when converting small objects
2021-08-28 18:38:31 +02:00
6fe670878b Merge pull request #15465 from dundargoc/refactor/uncrustify
refactor(codebase): Update uncrustify config and apply it on one file screen.c

The plan is to go through the codebase in batches, and remove the most egregious "make lint"
backlog failures, by applying this config.
2021-08-28 16:59:08 +02:00
705e8f10ac perf(api): avoid spurious allocations when converting small objects
Converter functions use a heap-allocated stack to handle complex
nested objects. However, these are often called with simple,
primitive values like integers or bools wrapped in an Object.
Avoid the memory allocation in this case using kvec_withinit_t
2021-08-28 16:52:01 +02:00
469652d0d5 refactor(lua): rename nlua_msgpack_ => nlua_api_
These functions do not involve msgpack. Initially the nvim api was
sometimes called the "msgpack API", but entry points from vim script
and lua are equally valid (and don't need to reference "msgpack")
2021-08-28 16:50:59 +02:00
2d240024ac refactor: format screen.c with uncrustify 2021-08-28 16:18:36 +02:00
5a66205944 refactor: update uncrustify config file to better fit neovim style guide 2021-08-28 16:17:53 +02:00
04938eed3e fix(lsp): check if buffer is valid in changetracking (#15505) 2021-08-28 11:57:06 +02:00
8af13ed946 fix(process_wait): drain proc.events directly #15501
After a process's refcnt is decremented to zero, it enqueues a
`process_close_event` on its own event queue. In `process_wait`, this
event should be processed immediately so that any process close
callbacks are executed before `process_wait` returns.

Update `process_wait` to always process the process's event queue after
the process is freed, rather than the event queue passed in as an
argument.
2021-08-27 19:17:11 -07:00
ff7f7dd26b Merge #15433 defaults: auto-create backup dir 2021-08-27 18:08:20 -07:00
e5d464d8e0 docs: update 'backupdir' and 'undodir' descriptions 2021-08-27 10:45:25 -06:00
4e516e53bf fix: remove trailing slashes before making directory
Remove the trailing slashes from 'undofile' and 'backupdir' before
creating directories. They cause problems on Windows which doesn't
recognize these slashes as proper path separators.
2021-08-27 10:45:25 -06:00
460019366e feat: defaults: auto-create backup dir
Copy the behavior of 'undodir' and create the last specified directory
in the 'backupdir' option if it doesn't exist.

Use trailing slashes for 'backupdir' as well as 'viewdir' and 'undodir'
by default. Note that 'undodir' always behaves as though it has the
trailing slashes, regardless of whether or not they are present. They
are added to the default option value to minimize surprise.

The '.' value in 'backupdir' is kept because the default behavior for
backups is solely to have a backup if the save of the main file to disk
fails. As soon as that save is completed the backup file is removed, so
generally there is no need to put them in a central location.

Co-authored by: murphy66 <murphy66@gmail.com>
2021-08-27 10:34:44 -06:00
32024787b6 vim-patch:8.1.2229: color number column above/below cursor #15409
Problem:    Cannot color number column above/below cursor differently.
Solution:   Add LineNrAbove and LineNrBelow. (Shaun Brady, closes vim/vim#624)
efae76ab1a
2021-08-27 05:50:37 -07:00
08e223cebb tests(lua/on_yank): assert conditions that fail correctly #15495
The test added in 274a3504a7
does not fail if the code changes are reverted.
2021-08-27 04:54:01 -07:00
f6e662bbe9 feat(lsp): get_border_size(): support repeating border char list #15474 2021-08-27 04:19:17 -07:00
274a3504a7 fix(lua): verify buffer in highlight.on_yank (#15482)
Resolve an issue with deferred clearing of highlight failing if the 
buffer is deleted before the timeout by checking whether the
buffer is valid first.
2021-08-26 16:37:36 +02:00
6ff1e3fa1f fix(man.vim): use -addr=other instead of -range=-1 #15172
-range=-1 requires the current file to have at least <count> lines, whereas -addr=other doesn't.

-addr=other also sets <count> to -1 by default when it is not specified, though this feature seems undocumented.
2021-08-26 04:36:31 -07:00
d8ddd1e425 fix(man.vim): reduce false positives for manReference #14242
Co-authored-by: Anmol Sethi <hi@nhooyr.io>
2021-08-26 04:31:37 -07:00
4c499899b2 Merge #15293 Vimscript "method" syntax
Port VimL's method call syntax - vim-patch:8.1.{1638,1800,1803,1807,1809,1816,1820,1821,1828,1834,1835,1861,1863,1878,1879,1888,1909,1911,1912}
2021-08-26 04:26:32 -07:00
2548a9e180 fix(man.vim): filetype=man is too eager #15488
Problem:
"set filetype=man" assumes the user wants :Man features, this does extra
stuff like renaming the buffer as "man://".

Solution:
- old entrypoint was ":set filetype=man", but this is too presumptuous #15487
- make the entrypoints more explicit:
  1. when the ":Man" command is run
  2. when a "man://" buffer is opened
- remove the tricky b:man_sect checks in ftplugin/man.vim and syntax/man.vim
- MANPAGER is supported via ":Man!", as documented.

fixes #15487
2021-08-26 02:19:52 -07:00
8d62f5fd58 vim-patch:8.2.3362: buffer overflow when completing long tag name (#15449)
Problem:    Buffer overflow when completing long tag name.
Solution:   Allocate the buffer dynamically. (Gregory Anders, closes vim/vim#8769)
489d60996d
2021-08-25 21:57:18 -04:00
10d7d73b2d Merge pull request #15475 from vigoux/bufupdates-paste
Send correct byte updates on visual paste
2021-08-25 20:56:15 +02:00
14231463a4 fix(bufupdates): send correct updates for visual paste
One step further towards stable tree-sitter.

Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
2021-08-25 15:11:39 +02:00
a373ca1d82 Merge pull request #15466 from vigoux/ts-query-auto
feat(ts): add query module in treesitter keys
2021-08-24 17:45:54 +02:00
5d633546bf fix(lsp): enable additional capabilities (#15470)
Declaration, type-definition, and implementation capabilities were
previously disabled if the client received table output from the server
capabilities. The workDoneProgress capability is sent for many servers
for all supported capabilities as part of this table. Default to setting 
capability to table instead of false.
2021-08-23 16:25:15 -04:00
a92e83ac14 vim-patch:6aa5729 (#15463)
Update Scala syntax file
6aa57295cf
2021-08-23 17:58:45 +02:00
5756470a2b build: remove CFLAGS from :version in non-debug builds #15424
A step towards reproducible builds.
2021-08-23 07:57:17 -07:00
8e0963d307 feat(ts): add query module in treesitter keys 2021-08-23 15:34:08 +02:00
c5d76c5b9b fix(doc): example for vim.diff() (#15464) 2021-08-23 13:47:54 +02:00
34b60ec894 Merge pull request #15434 from Dkendal/feature-lua-treesitter-sibling
feat(treesitter): add next, prev sibling method
2021-08-23 09:14:40 +02:00
4b3ffde208 docs: issue templates 2021-08-22 17:37:08 -07:00
fb5db6c7cf docs: issue templates 2021-08-22 16:56:41 -07:00
90b2da16ae fix(window.c): win_close from other tabpage #15454
Fix #15313
2021-08-22 15:27:20 -07:00
da5d023c97 vim-patch:8.2.3358: structurizr files are not recognized (#15417)
Problem:    Structurizr files are not recognized.
Solution:   Recognize the file by contents. (Bastian Venthur, closes vim/vim#8764)
dea561111a
2021-08-22 14:40:59 -07:00
c2a211b8e3 docs: make Lua docstrings consistent #15255
The official developer documentation in in :h dev-lua-doc specifies to
use "--@" for special/magic tokens. However, this format is not
consistent with EmmyLua notation (used by some Lua language servers) nor
with the C version of the magic docstring tokens which use three comment
characters.

Further, the code base is currently split between usage of "--@",
"---@", and "--- @". In an effort to remain consistent, change all Lua
magic tokens to use "---@" and update the developer documentation
accordingly.
2021-08-22 13:55:28 -07:00
649dbb3b15 Merge pull request #15457 from bfredl/oldmap
refactor(map): remove extra-allocating map_new/map_free functions
2021-08-22 17:29:17 +02:00
de21e6ef3d refactor(map): remove extra-allocating map_new/map_free functions
Note: the reason for removing them is not that there after this refactor
is no use of them, but rather that having them available is an
anti-pattern: they manange an _extra_ heap allocation which has
nothing to do with the functionality of the map itself (khash
manages the real buffers internally). In case there happens to
be a reason to allocate the map structure itself later, this
should be made explicit using xcalloc/xfree calls.
2021-08-22 16:15:38 +02:00
db1b0ee3b3 refactor: replace TRUE/FALSE with true/false #15425 2021-08-22 07:10:57 -07:00
783140c670 fix(doc): move vim.diff doc (#15456)
... to prevent bots from overwriting it
2021-08-22 13:52:56 +02:00
7ebb25cca1 Merge pull request #15451 from bfredl/metamap
perf(map): get rid of unnecessary pointer indirections for maps.
2021-08-22 13:12:58 +02:00
3d3c0c669d feat(api): add lua C bindings for xdiff (#14536)
* feat(api): add lua C bindings for xdiff

* chore: opt.hunk_lines -> opt.result_type

opt.on_hunk now takes precedence over opt.result_type

* chore: fix indents

Fix indents

* chore: change how priv is managed

Assign priv NULL and unconditionally apply XFREE_CLEAR to it when
finished.
2021-08-22 12:22:04 +02:00
c265fd31ab refactor(api): remove unneccesary indirection around handles
These things are just maps to pointers, no need to perform
a huge song and dance around it.
2021-08-22 11:28:47 +02:00
b888018aed refactor(marktree): embed the keymap in the MarkTree struct 2021-08-22 10:46:04 +02:00
b2277a4279 refactor(map): get rid of spurious subsystem_init() functions due to maps 2021-08-22 10:46:04 +02:00
6d23a58b7d refactor(extmark): remove pointer indirection for extmark use of maps 2021-08-22 10:46:01 +02:00
4500253f60 refactor(syntax): don't use pointer indirected maps for no reason 2021-08-22 10:10:15 +02:00
9e651a9d09 perf(map): reduce double pointer indirection to single pointer indirection
the only field of Map(...) was a pointer to a khash_t. make it contain
the struct by value instead.
2021-08-22 09:54:21 +02:00
8331cd13c4 docs #15447
- update ":help 'hidden'" #15410
- update ":help K" #15398
- try to capture some of the debug steps from #12036 (bpftrace, USDT probes)
2021-08-21 18:26:33 -07:00
a90513c24b feat(keywordprg): use :terminal for external commands #15398
Open external 'keywordprg' commands in a :terminal in a new tab. <Esc> is
mapped to stop the job and close the buffer.

Closes #2995
Closes #2761
2021-08-21 17:23:10 -07:00
50b30de200 feat(terminal): TermClose: set exit code in v:event.status #15406
Closes #4713
2021-08-20 10:45:28 -07:00
140084180e feat(treesitter): add next, prev sibling method
Add tsnode methods to change to the next, previous, named or unnamed
nodes.
2021-08-20 11:58:15 -04:00
599af74514 Merge pull request #15295 from gpanders/ftdetect
fix: only source package ftdetect files once
2021-08-20 11:30:43 +02:00
2ae9ff1285 docs: regenerate (#15431)
Co-authored-by: marvim <marvim@users.noreply.github.com>
2021-08-19 20:28:18 +02:00
69741107e6 Merge pull request #15429 from bfredl/hl_2
perf(treesitter): avoid string lookup of highlight name in hot loop
2021-08-19 19:15:16 +02:00
ff0833cb4e feat(lsp): allow root_dir to be nil (#15430)
According to the protocol definition `rootPath`, `rootUri` and
`workspaceFolders` are allowed to be null.

Some language servers utilize this to provide "single file" support.
If all three are null, they don't attempt to index a directory but
instead only provide capabilities for a single file.
2021-08-19 18:15:18 +02:00
ea39ff5732 feat(lsp): jump to diagnostics by position (#14795) 2021-08-19 11:36:01 -04:00
2460f0a702 perf(treesitter): avoid string lookup of highlight name in hot loop
These numbers are guaranteed to be stable even if you do "highlight
clear" (all attributes disappear, but not the id to name mapping itself)
2021-08-19 16:45:04 +02:00
d088066fa1 Merge pull request #15422 from bfredl/syn_name2id_go_brr
feat(highlights): some improvements and perf fixes
2021-08-19 15:48:22 +02:00
19a0d90bb3 Merge #15410 defaults: 'hidden', 'nojoinspaces'
ref #6289
2021-08-19 06:13:08 -07:00
bb4b4d79a8 perf(highlight): use a hashtable for highlight group names
syn_name2id and syn_check_group go brr.

Note: this has impact mostly when using multiple filetypes,
as the old syn_name2id was optimized to return latest
added groups quickly (which will be the latest filetype)
2021-08-19 15:08:50 +02:00
fca52f5f32 feat(match): allow hl group to be defined after :match command 2021-08-19 15:08:50 +02:00
d8ab8cccd0 test: update tests to work with 'hidden' 2021-08-18 12:17:12 -06:00
a9f563ab62 refactor(highlight): make syn_check_group alloc free for existing group 2021-08-18 14:19:01 +02:00
7bff642169 Merge pull request #15249 from dundargoc/refactor/a-song-of-true-and-false
refactor: replace TRUE/FALSE with true/false
2021-08-18 10:10:42 +02:00
d417e67e59 feat(defaults): set nojoinspaces 2021-08-17 16:39:04 -06:00
f6c72b745c feat(defaults): set hidden 2021-08-17 16:38:39 -06:00
15b736d6e8 Merge pull request #15396 from gpanders/options-no-vi-vim
refactor(options): remove vi/vim default value distinction
2021-08-17 16:46:36 +02:00
8e926a0984 refactor(options): remove vi/vim default value distinction 2021-08-17 08:07:41 -06:00
35c6aef1c9 docs: update pull request workflow #15243
The WIP, RFC and RDY stage workflow is outdated and unnecessary. The new
workflow utilize the draft pull request on GitHub.
2021-08-17 05:58:49 -07:00
2cb8db34e3 feat: defaults: set undo points in <C-U> and <C-W> (#15400) 2021-08-16 18:28:52 -07:00
3954537b9e feat(defaults): remove 'options' from viewoptions #15397
ref #6289
2021-08-16 13:05:24 -07:00
e01b88c799 Merge pull request #15399 from mfussenegger/private-lsp-comments
docs(lsp): Prevent internal comments from showing as vim.lsp.init docs
2021-08-16 21:32:18 +02:00
c1e17866c8 docs(lsp): prevent internal comments from showing as vim.lsp.init docs 2021-08-16 20:27:51 +02:00
4ba74953b5 feat(defaults): switchbuf=uselast #15394 2021-08-16 11:20:46 -07:00
7215d35694 feat: defaults: inccommand=nosplit #15395 2021-08-16 10:39:17 -07:00
0aa8128aaa feat(defaults): map CTRL-L to search highlights, update diffs #15385 2021-08-16 08:31:14 -07:00
7146103be2 ci: increase clint line length limit to 100 characters (#15252) 2021-08-16 15:32:36 +02:00
57fc3d3ed7 Merge pull request #15386 from jamessan/32-bit-revert
Revert "tests: unit: fix preprocess: pass -m32 for 32bit ABI (#11073)"
2021-08-16 07:29:17 -04:00
29712aef60 fix(autocmd.c): fix conditions in block_autocmds, unblock_autocmds #15372
Logic got swapped in 7574918dc7.
We didn't notice it since v:termresponse isn't really used yet. #6279
2021-08-16 00:43:21 -07:00
e9dd640897 vim-patch:8.2.3295: 'cursorline' should not apply to 'breakindent' #15281
Problem:    'cursorline' should not apply to 'breakindent'.
Solution:   Make 'cursorline' apply to 'breakindent' and 'showbreak'
            consistently. (closes vim/vim#8684)
4f33bc20d7
2021-08-16 00:27:04 -07:00
54726e8bb9 fix(defaults): do not map Y in visual-mode #15387
Y in visual-mode is unrelated to the normal-mode behavior.

reverts part of #13268
2021-08-16 00:13:25 -07:00
5a111c1b02 feat(defaults): map Y to y$ #13268
rationale:
- consistent with D and Y
- long recommended by Vim's own ":help Y"

close #13268
close #416
ref #6289
2021-08-15 21:24:59 -07:00
c417d573a3 Revert "tests: unit: fix preprocess: pass -m32 for 32bit ABI (#11073)"
This reverts commit ed11721b6b.

It broke multiple 32-bit builds and isn't actually required for building
in a true x86 32-bit environment.
2021-08-16 00:02:22 -04:00
aa07d06bf4 Merge pull request #15363 from dundargoc/ci/squash
ci: ensure all PRs are up to date with master before attempting squash
2021-08-15 11:39:08 -04:00
c6ef95606f fix(ci): re-run GHA for ready_for_review events (#15377)
By default, the pull_request target only runs for the "opened",
"synchronize", and "reopened" events.

Since we've disabled GHA CI for "draft" PRs, the "ready_for_review"
event also needs to be included so CI is automatically run when leaving
draft status.
2021-08-15 15:27:50 +02:00
9367aee62d ci: ensure all PRs are up to date with master before attempting squash
This is to ensure unrelated authors don't get credited.
2021-08-15 12:38:05 +02:00
0f2af87a38 Merge pull request #15320 from neovim/julia
vim-patch:8.2.3283: Julia filetype is not recognized
vim-patch:6aa5729: Add Julia runtime files
2021-08-15 11:22:30 +02:00
65f32f0f19 vim-patch:6aa5729
Add Julia runtime files.
6aa57295cf
2021-08-15 11:02:19 +02:00
0dc4bec69e vim-patch:8.2.3283: Julia filetype is not recognized
Problem: Julia filetype is not recognized
Solution: Add filetype detection. (Christian Clason, closes #8700)

issue: vim/vim#7498
vim-patch: vim/vim@0eec851
2021-08-15 11:02:12 +02:00
d805eb3e05 Merge pull request #15370 from gpanders/cmake-libluv
build: prioritize statically built libluv in search
2021-08-14 21:23:58 -04:00
084b28bec8 Merge pull request #15367 from jamessan/release-fixes
Clean up release handling
2021-08-14 21:22:13 -04:00
bcca62a760 Merge pull request #15368 from jamessan/fragility
test(lsp): disable finicky test when TEST_SKIP_FRAGILE is set
2021-08-14 21:21:50 -04:00
f8eae29d39 build: prioritize statically built libluv in search
When libluv is built statically it appends an '_a' suffix to the library
name. This affects CMake's ability to find the bundled version of libluv
(which is built statically) when there is a dynamic version of the
library also built on the system, which does not have the '_a' suffix.

Prioritize searching for 'libluv_a' first before falling back to
'libluv'. This will ensure the bundled version of libluv is always found
first before any system versions of libluv. In cases where we are not
using bundled libraries, CMake will still safely fall through to finding
'libluv' since package managers do not typically provide static system
libraries.
2021-08-14 06:53:52 -06:00
8491077314 test(lsp): disable finicky test when TEST_SKIP_FRAGILE is set 2021-08-13 23:53:55 -04:00
6f965f41df build: use RelWithDebInfo build for nightlies, Release for releases
Unlike Release build type, RelWithDebInfo does not disable asserts.
This helps get better debug info from people brave enough to use the
nightly builds, but shouldn't be used for official releases.

[skip ci]
2021-08-13 23:32:15 -04:00
f027c5e1e4 build: update appdata.xml version in release commit
Adding the version we just released in the "version bump" commit is
useless, since that means the actual release only reports the old
version.

Closes #15362

[skip ci]
2021-08-13 23:32:10 -04:00
222cd43222 ci: comment from bot is more helpful in case of conflict (#15359)
Also change PR title to follow conventional commits convention.
2021-08-13 15:58:31 +02:00
ce172d8d4a ci: fix typo squasher by changing trigger to "pull_request_target" (#15357)
The "pull_request" trigger only enables read-access for forks,
"pull_request_target" is required if a fork is to be a trigger. Also
changed the python script to reflect this change.
2021-08-13 15:18:15 +02:00
6f0d4ccc43 Merge pull request #15341 from dundargoc/ci/link-to-discourse
chore: link to discourse when choosing issue template
2021-08-13 10:47:44 +02:00
20c1e5757d chore: link to Discourse when choosing issue template for user questions 2021-08-13 10:34:20 +02:00
b2994e35c9 feat(v:lua): support calling v:lua as a method 2021-08-13 01:11:36 +01:00
da9005af79 fix(v:lua): fix emsg when calling v:lua directly
v:lua expressions are represented using vvlua_partial. As v:lua isn't
intended to be called directly, it's given an empty pt_name.

Because of this, calling v:lua directly like "v:lua()" will cause "E117:
Unknown function: ", with an empty name.

Instead, have call_func() show the name "v:lua" in the emsg.
2021-08-12 22:35:25 +01:00
5503d8e28b fix(eval_lambda): cherry-pick leak fix from v8.1.2107
That patch also includes a test using test_refcount() for lambdas, but
such test functions are N/A for Nvim.
2021-08-12 22:35:25 +01:00
5d88349817 feat(eval): partially port v8.1.1915
Cannot be fully ported as chdir() hasn't been ported yet.
2021-08-12 22:35:25 +01:00
56b56a76e8 vim-patch:8.1.1911: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make a few more functions usable as a method.
64b4d73524

Note that the old-style version of Test_byteidx() was already translated
to a Lua test in 069_multibyte_formatting_spec.lua. Keep both versions,
using Test_byteidx() to mainly test the method call syntax for byteidx()
and byteidxcomp().
2021-08-12 22:35:24 +01:00
7925f0b633 vim-patch:8.1.1909: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make a few more functions usable as a method.
e49fbff384
2021-08-12 22:35:24 +01:00
5fbc1a49c7 vim-patch:8.1.1888: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
073e4b92e6

test_popup.vim already has the changes from this patch (they're N/A
anyway).
2021-08-12 22:35:24 +01:00
41dbd3a2e0 vim-patch:8.1.1879: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make float functions usable as a method.
93cf85f9ef

Fix atan2() doc typo (patch referred to it as atan()).
Adjust Test_fmod() method test to expect "str2float('nan')".
2021-08-12 22:35:23 +01:00
7474db98af vim-patch:8.1.1878: negative float before method not parsed correctly
Problem:    Negative float before method not parsed correctly.
Solution:   Apply "!" and "-" in front of expression before using ->.
9cfe8f6e68
2021-08-12 22:35:23 +01:00
98dfe4adc4 vim-patch:8.1.1863: confusing error when using a builtin function as method
Problem:    Confusing error when using a builtin function as method while it
            does not support that.
Solution:   Add a specific error message.
9174639a82
2021-08-12 22:35:23 +01:00
287a77ef51 vim-patch:8.1.1861: only some assert functions can be used as a method
Problem:    Only some assert functions can be used as a method.
Solution:   Allow using most assert functions as a method.
24278d2407

Port tests to assert_spec.lua.
2021-08-12 22:35:22 +01:00
f03dd22f0d vim-patch:8.1.1835: cannot use printf() as a method
Problem:    Cannot use printf() as a method.
Solution:   Pass the base as the second argument to printf().
fd8ca21b3f
2021-08-12 22:35:22 +01:00
5811390f82 vim-patch:8.1.1834: cannot use a lambda as a method
Problem:    Cannot use a lambda as a method.
Solution:   Implement ->{lambda}(). (closes vim/vim#4768)
22a0c0c4ec

Add an additional lua_funcname argument to call_func_rettv() to maintain
support for v:lua.

A memory leak was introduced with this patch that was fixed in
v8.1.2107.
2021-08-12 22:35:22 +01:00
32589341a4 vim-patch:8.1.1828: not strict enough checking syntax of method invocation
Problem:    Not strict enough checking syntax of method invocation.
Solution:   Check there is no white space inside ->method(.
5184132ec0
2021-08-12 22:35:21 +01:00
daedbd9312 vim-patch:8.1.1821: no test for wrong number of method arguments
Problem:    No test for wrong number of method arguments.
Solution:   Add a test.
f97d46f816
2021-08-12 22:35:21 +01:00
d41b87e070 vim-patch:8.1.1820: using expr->FuncRef() does not work
Problem:    Using expr->FuncRef() does not work.
Solution:   Make FuncRef work as a method.
761fdf01c6
2021-08-12 22:35:21 +01:00
8d1ca37d1f vim-patch:8.1.1816: cannot use a user defined function as a method
Problem:    Cannot use a user defined function as a method.
Solution:   Pass the base as the first argument to the user defined function
            after "->". (partly by FUJIWARA Takuya)
fcfe1a9b89
2021-08-12 22:35:20 +01:00
aa2dc8b7b4 vim-patch:8.1.1809: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Add has_key(), split(), str2list(), etc.
a74e4946de
2021-08-12 22:35:20 +01:00
003c8acc8a vim-patch:8.1.1807: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Add append(), appendbufline(), assert_equal(), etc.
            Also add the :eval command.
25e42231d3

:eval is already ported.
2021-08-12 22:35:20 +01:00
e6be6c307a vim-patch:8.1.1803: all builtin functions are global
Problem:    All builtin functions are global.
Solution:   Add the method call operator ->.  Implemented for a limited number
            of functions.
ac92e25a33

- Note that to *exactly* port hunk @@ -7376,18 +7444,19 from
  handle_subscript(), we need the :scriptversion patches (I have an open
  PR for those, but this patch works fine without them anyway).
- Port call_internal_func() from v7.4.2058.
- Adjust some error messages in tests, as they rely on the Blob patches.
- Add a modeline to test_method.vim.

Ignore the global_functions and base_method tables and prefer the
current GPerf implementation. Instead, add an extra base_arg field to
VimLFuncDef that holds the number of the argument to use as the base
(1-indexed, so that 0 may be used to refer to functions that cannot be
used as methods).

This also means we support using any argument as a base from the get-go,
rather than just the first (Vim includes this ability in future patches,
however).

To mark a function as usable as a method, use the "base" key as
described in eval.lua.
2021-08-12 22:35:19 +01:00
4042ae5a2b vim-patch:8.1.1800: function call functions have too many arguments
Problem:    Function call functions have too many arguments.
Solution:   Pass values in a funcexe_T struct.
c6538bcc1c

Use FUNCEXE_INIT to initialize funcexe_T instances.

call_callback() and other Vim listener related stuff is N/A.
2021-08-12 22:31:18 +01:00
60dd76c7e2 vim-patch:8.1.1638: running tests leaves some files behind
Problem:    Running tests leaves some files behind.
Solution:   Delete the files. (Ozaki Kiichi, closes vim/vim#4617)
3940ec6d41

Required for v8.1.1888.

N/A patches for version.c:

vim-patch:8.1.1912: more functions can be used as methods

Problem:    More functions can be used as methods.
Solution:   Make channel and job functions usable as a method.
vim/vim@570497a
2021-08-12 17:16:34 +01:00
1918638c67 test(oldtest): cherry-pick needed test functions from v8.1.1336
Cherry-pick Test_call() and Test_cindent_func().

Required for v8.1.1911 and v8.1.1915.
2021-08-12 17:16:34 +01:00
e0bdc9b89c fix(eval): cherry-pick emsg changes from v8.1.0736
v8.1.0736 made some changes for making some emsgs more specific.
Includes the change for Test_lambda_fails() in test_lambda.vim.
Adjust relevant functionaltests to expect the new emsgs.

This patch has been fully ported in my Blob port PR, but it hasn't been
merged yet, so just use what we need from it for now.

Required for v8.1.1821.
2021-08-12 17:16:33 +01:00
c0767bd4f3 refactor: replace TRUE/FALSE with true/false 2021-08-12 10:37:40 +02:00
7d2233fad0 Merge pull request #15336 from bfredl/plines
refactor(plines): move "plines" (size of printed lines) family of function to own file
2021-08-11 17:38:36 +02:00
167514fe83 fix: only source package ftdetect files once
ftdetect files in start packages are sourced once from the :runtime
command in filetype.vim and once when packages are loaded. Change the
package loading logic to only source ftdetect files for opt packages to
avoid this duplication.
2021-08-11 09:35:21 -06:00
28b5c73bf8 refactor(plines): move horizontal size functions to plines.c
fix style.
2021-08-11 17:10:52 +02:00
2c60f7c991 Merge pull request #15335 from muniter/set_extmark_error_cleanup
refactor(api): remove redundant api_set_error
2021-08-11 10:38:21 +02:00
8bf318dcde refactor(plines): what is basic compiler optimizations? 2021-08-10 23:22:25 +02:00
ac56a27a10 refactor(plines): remove implicit curwin chartabsize() function 2021-08-10 23:18:12 +02:00
b506643dfc refactor(plines): style of new plines.c file 2021-08-10 23:06:48 +02:00
7f71e8a6b3 refactor(plines): move out plines related code from misc1.c 2021-08-10 22:59:29 +02:00
d475955ed3 refactor(api): remove redundant api_set_error
This error is already handled by 'find_buffer_by_handle'
2021-08-10 15:55:03 -05:00
0465341e16 refactor(plines): remove implicit curwin plines_nofill() function 2021-08-10 22:39:04 +02:00
a177c7df09 refactor(plines): remove implicit curwin plines() function 2021-08-10 22:32:08 +02:00
c479b90359 Merge pull request #15253 from spywhere/float-win-scl-fix
Fix sign column auto with minimum break floating window minimal style
2021-08-10 22:14:52 +02:00
adebbebdd7 fix(lsp): properly handle nil lines when trimming empty lines (#15325) 2021-08-10 20:52:30 +02:00
c5baba065c Merge pull request #15329 from dundargoc/github/bug-template/make-behavior-mandatory
ci: make all questions mandatory in bug template
2021-08-10 14:35:36 +02:00
f43a8f0eda ci: make all questions mandatory in bug template 2021-08-10 12:18:55 +02:00
1a10acb997 fix(lsp): floating popup should take offset_x into account when positioning (#15297) 2021-08-09 23:56:58 +02:00
33b4513b89 doc: Document -complete=lua option (#15102) 2021-08-09 21:21:14 +02:00
3cacd108d0 docs: regenerate (#15324)
Co-authored-by: marvim <marvim@users.noreply.github.com>
2021-08-09 20:54:28 +02:00
0e9d97896a Merge pull request #15307 from muniter/update-help.txt
docs(help.txt): Add a tag to the neovim api.
2021-08-09 19:51:47 +02:00
a3d5f391cf docs: Add some references to LSP specification (#15321) 2021-08-09 19:45:00 +02:00
cad5f01cf3 docs: elaborate on commitlint rules (#15322)
linter requires lowercase at start and no period at end of description
2021-08-09 18:46:33 +02:00
109a417e21 docs(help.txt): add treesitter to the main help file 2021-08-09 09:17:02 -05:00
4667bfb732 docs(help.txt): add a tag to the neovim api 2021-08-09 09:16:56 -05:00
7dbbd5d8b1 ci: create GitHub Action that squashes all typo PRs into a single PR (#15041)
The action adds all pull-request authors (and Marvim) as a co-author to the
newly created PR and also links to the closed PRs.
2021-08-09 15:21:50 +02:00
9ef7003c38 Merge pull request #15312 from janlazo/vim-8.2.2639
vim-patch:8.1.{1818},8.2.{1464,2639,2814,2947,2976,2986,3114,3141,3160,3198}
2021-08-09 08:28:36 -04:00
0a43b4d51e refactor(sign): include longer sign column option 2021-08-09 11:09:22 +07:00
c8f57f6ded fix(sign): reset auto sign column with minimum in float win minimal style 2021-08-09 11:09:22 +07:00
292148b08b vim-patch:8.2.3141: no error when using :complete for :command without -nargs
Problem:    No error when using :complete for :command without -nargs.
Solution:   Give an error. (Martin Tournoij, closes vim/vim#8544, closes vim/vim#8541)
de69a7353e

N/A patches for version.c:

vim-patch:8.1.1801: cannot build without the +eval feature

Problem:    Cannot build without the +eval feature.
Solution:   Always define funcexe_T.
505e43a20e

vim-patch:8.1.1818: unused variable

Problem:    Unused variable.
Solution:   Remove the variable. (Mike Williams)
b4a88a0441

vim-patch:8.2.1464: Vim9: build warning for unused variable

Problem:    Vim9: build warning for unused variable.
Solution:   Delete the variable declaration.
829ac868b7

vim-patch:8.2.2639: build failure when fsync() is not available

Problem:    Build failure when fsync() is not available.
Solution:   Add #ifdef.
5ea79a2599

vim-patch:8.2.2814: Vim9: unused variable

Problem:    Vim9: unused variable. (John Marriott)
Solution:   Adjust #ifdef.
b06b50dfa0

vim-patch:8.2.2947: build failure without the channel feature

Problem:    Build failure without the channel feature.
Solution:   Add back #ifdef. (John Marriott)
f5bfa8faa7

vim-patch:8.2.2976: build failure without the +eval feature

Problem:    Build failure without the +eval feature.
Solution:   Add #ifdefs.
8de901e1f1

vim-patch:8.2.2986: build failure without the profile feature

Problem:    Build failure without the profile feature.
Solution:   Add #ifdef.
d9f31c13d2

vim-patch:8.2.3114: Amiga-like systems: build error using stat()

Problem:    Amiga-like systems: build error using stat().
Solution:   Only build swapfile_process_running() on systems where it is
            actually used. (Ola Söder, closes vim/vim#8519)
599a6e5b36
2021-08-08 22:29:55 -04:00
43a874ab74 vim-patch:8.2.3198: cannot use 'formatlistpat' for breakindent
Problem:    Cannot use 'formatlistpat' for breakindent.
Solution:   Use a negative list indent. (Maxim Kim, closes vim/vim#8594)
f674b358fc

Port get_showbreak_value() from patch v8.1.2281
to avoid breaking changes when porting older patches.
2021-08-08 22:22:34 -04:00
f89a275e32 vim-patch:8.2.3160: 'breakindent' does not work well for bulleted lists
Problem:    'breakindent' does not work well for bulleted and numbered lists.
Solution:   Add the "list" entry to 'breakindentopt'. (Christian Brabandt,
            closes vim/vim#8564, closes vim/vim#1661)
4a0b85ad01
2021-08-08 22:22:34 -04:00
68f61b167e vim-patch:8.2.3285: scdoc filetype is not recognized (#15294)
Problem:    Scdoc filetype is not recognized.
Solution:   Add filetype detection. (Gregory Anders, closes vim/vim#8701)
dd097bdc13
2021-08-08 18:27:34 -04:00
cdbd54972b option: pvs/v557 (#14740)
Replace STRCAT with STRLCAT() to always NUL-terminate "errbuf" array.
2021-08-08 17:27:50 -04:00
a2909aa35f ci(labeler): apply label tests if only files under test have changed (#15305) 2021-08-08 11:03:55 +02:00
35041432bf ci(forms): fix "vim" description in bug template
Make clear that the version should be specified in any case, including patch level
2021-08-07 18:14:03 +02:00
c9131ef9b5 docs: fix paragraph for BufEnter in the documentation (#15301) 2021-08-07 12:18:40 +02:00
faa3007927 Merge pull request #14767 from theHamsta/no-treesitter-mapping-to-non-existent
fix(treesitter): do not map hl_group when no mapping is set
2021-08-07 11:44:41 +02:00
a1cc146405 ci(labeler): apply documentation label only for changes exclusively in runtime/doc/* (#15298) 2021-08-07 10:36:15 +02:00
e7bde44d6d fix(lsp): prevent duplicate lines seperated by newlines (#15284) 2021-08-06 17:15:49 -04:00
912152d635 chore: remove reference to nvim-treesitter in comment 2021-08-06 22:08:45 +02:00
f489d98653 fix(treesitter): do not map hl_group when no mapping is set
This changes the behavior of the hl_cache to the old one.

- when the capture exists as a hlgroup -> use it
- when hl_map contains a mapping -> use it
- else do nothing (before: map capture to non-existing capture)

Before also captures `@foo.bar` would intend to use the hlgroup `foo.bar`
which results in a confusing error since hlgroups can't contain dots.
2021-08-06 22:04:28 +02:00
f22326ef09 ci(labeler): add "tests" and "ci" labels to the labeler action (#15287)
Also added "CONTRIBUTING.md" file under the "documentation" label since
it gets changed fairly often.
2021-08-06 13:15:29 +02:00
22072b11e8 ci(labeler): fix syntax so changes under src/nvim/lua are registered (#15285)
The labeler action requires a glob (*) to denote files under a
directory.
2021-08-06 12:16:24 +02:00
41912bf777 Merge pull request #15283 from jamessan/pending-c-parsers
test(treesitter): skip all parsers tests if parsers aren't installed
2021-08-06 10:53:18 +02:00
8336488ce1 test(treesitter): skip all parsers tests if parsers aren't installed 2021-08-05 21:41:55 -04:00
5130bc071e ci(tests): skip "stale events on channel close" (#15278)
This test sporadically hangs CI (cf. #14083); skip until the actual code is fixed.
2021-08-05 15:07:26 +02:00
3d18359672 Merge pull request #15257 from gpanders/remove-set_virtual_text
refactor: remove remaining references to nvim_buf_set_virtual_text
2021-08-04 09:28:38 +02:00
545e05d2fe chore(vim-patch.sh): replace hub with gh (#15162) 2021-08-03 19:52:48 +02:00
2093b12b82 refactor: remove remaining references to nvim_buf_set_virtual_text 2021-08-03 11:39:46 -06:00
8baf7bce2b Merge pull request #15226 from zeertzjq/vim-8.1.2029
vim-patch:8.1.2029,8.1.2117,8.1.2214,8.2.3204
2021-08-02 19:23:57 -04:00
93443d59a9 Merge pull request #15233 from baahrens/doc-treesitter-fix-typos
doc(treesitter): Fix typos
2021-08-02 15:18:37 +02:00
3f9a838454 ci: disable false "footer-leading-blank" warning from commitlint (#15238) 2021-08-02 11:22:43 +02:00
141f0038db docs: fixed link to label "good-first-issue" (#15239) 2021-08-02 11:01:28 +02:00
535c762ff7 Merge pull request #15129 from dundargoc/action/commitlint
ci: add commit linter to GitHub Actions.
2021-08-02 00:08:31 +02:00
c24daf5a10 vim-patch:8.2.3204: display garbled when 'cursorline' is set and lines wrap
Problem:    Display garbled when 'cursorline' is set and lines wrap. (Gabriel
            Dupras)
Solution:   Avoid inserting lines twice.
c9e7e344ed
2021-08-02 05:41:17 +08:00
68f0670dfc vim-patch:8.1.2214: too much is redrawn when 'cursorline' is set
Problem:    Too much is redrawn when 'cursorline' is set.
Solution:   Don't do a complete redraw. (closes vim/vim#5079)
11a58af66f
2021-08-02 05:41:17 +08:00
56b437a6c7 vim-patch:8.1.2117: CursorLine highlight used while 'cursorline' is off
Problem:    CursorLine highlight used while 'cursorline' is off.
Solution:   Check 'cursorline' is set. (cloes vim/vim#5017)
49474ca122
2021-08-02 05:41:17 +08:00
1666fe9dfe vim-patch:8.1.2029: cannot control 'cursorline' highlighting well
Problem:    Cannot control 'cursorline' highlighting well.
Solution:   Add "screenline". (Christian Brabandt, closes vim/vim#4933)
017ba07fa2
2021-08-02 05:41:17 +08:00
337b1b31ac Merge pull request #15234 from janlazo/vim-8.2.3164
vim-patch:8.2.{3164,3167,3192,3208,3213,3214,3225,3231,3243,3246,3247,3250,3253,3256,3260}
2021-08-01 12:17:39 -04:00
de74fcc74c fixup! remove DYNAMIC_ICONV
Code for "DYNAMIC_ICONV" macro was dead since v0.3.0.
d87e5d7016
2021-08-01 11:27:11 -04:00
e98eba9086 vim-patch:8.2.3256: executable test may fail on new Ubuntu system
Problem:    Executable test may fail on new Ubuntu system.
Solution:   Consider /usr/bin/cat and /bin/cat the same.
bf634a0a8b
2021-08-01 11:27:11 -04:00
20fc0519af vim-patch:8.2.3246: memory use after free
Problem:    Memory use after free.
Solution:   When clearing a string option set the pointer to "empty_option".
77111e2bfc
2021-08-01 11:27:11 -04:00
5e4fcc8b36 vim-patch:8.2.3225: incsearch highlighting is attempted halfway a mapping
Problem:    Incsearch highlighting is attempted halfway a mapping.
Solution:   Only do incsearch highlighting if keys were typed or there is no
            more typeahead.
ccb148ac63
2021-08-01 11:26:54 -04:00
d95e28f5ce vim-patch:8.2.3213: NOCOMPOUNDSUGS entry in spell file not tested
Problem:    NOCOMPOUNDSUGS entry in spell file not tested.
Solution:   Add a test. (Dominique Pellé, closes vim/vim#8624)
9c9472ff49
2021-08-01 11:26:54 -04:00
34f3c5cc96 vim-patch:8.2.3167: get E12 in a job callback when searching for tags
Problem:    Get E12 in a job callback when searching for tags. (Andy Stewart)
Solution:   Use the sandbox only for executing a command, not for searching.
            (closes vim/vim#8511)
547f94f330

N/A patches for version.c:

vim-patch:8.2.3164: MS-Windows: reported version lacks patchlevel

Problem:    MS-Windows: reported version lacks patchlevel, causing some update
            tools to update too often. (Klaus Frank)
Solution:   Add the patchlevel to the version. (Christian Brabandt)
0894e0d808

vim-patch:8.2.3192: build failure with small version

Problem:    Build failure with small version (Tony Mechelynck).
Solution:   Remove stray #ifdef.
11d7e62f1d

vim-patch:8.2.3208: dynamic library load error does not mention why it failed

Problem:    Dynamic library load error does not mention why it failed.
Solution:   Add the error message. (Martin Tournoij, closes vim/vim#8621)
1a3e5747b7

vim-patch:8.2.3214: MS-Windows: passing /D does not set the install location

Problem:    MS-Windows: passing /D does not set the install location.
Solution:   Adjust how the installer uses $VIM. Update the documentation.
            (Christian Brabandt, closes vim/vim#8605)
7d60384a00

vim-patch:8.2.3231: build failure with small features

Problem:    Build failure with small features.
Solution:   Adjust #ifdef.
9088784972

vim-patch:8.2.3243: MS-Windows: "edit with multiple Vim" choice is less useful

Problem:    MS-Windows: the "edit with multiple Vim" choice is not that
            useful.
Solution:   Change it to "Edit with multiple tabs". (Michael Soyka,
            closes vim/vim#8645)
83cd0156e0

vim-patch:8.2.3247: using uninitialized memory when checking for crypt method

Problem:    Using uninitialized memory when checking for crypt method.
Solution:   Check the header length before using the salt and seed.
77ab4e28a2

vim-patch:8.2.3250: MS-Windows: cannot build with libsodium

Problem:    MS-Windows: cannot build with libsodium.
Solution:   Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt,
            closes vim/vim#8668, closes vim/vim#8663)
1790be6cb6

vim-patch:8.2.3253: channel test fails randomly

Problem:    Channel test fails randomly.
Solution:   Add a sleep after sending the "echoerr" command. (Michael Soyka)
890ee4e2be

vim-patch:8.2.3260: build failure with small features

Problem:    Build failure with small features.
Solution:   Add #ifdef.
335c8c7b20
2021-08-01 11:26:53 -04:00
4c605ec78a doc(treesitter): Fix typos 2021-08-01 17:09:19 +02:00
f54340d488 docs: add description of each type 2021-08-01 14:29:29 +02:00
5f3f4263b4 ci: add commit linter to GitHub Actions 2021-08-01 12:45:17 +02:00
51251e1dc7 Merge pull request #15217 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-08-01 11:26:00 +02:00
a5c25e4f3e Merge pull request #15228 from janlazo/vim-8.2.3002
vim-patch:8.2.{3002,3019,3025,3030,3032,3044,3046,3063,3101,3115,3119,3120,3131,3136,3140,3157,3163,3218,3245,3254}
2021-07-31 19:15:36 -04:00
927383f212 vim-patch:8.2.3136: no test for E187 and "No swap file"
Problem:    No test for E187 and "No swap file".
Solution:   Add a test. (Dominique Pellé, closes vim/vim#8540)
fe3418abe0
2021-07-31 18:32:01 -04:00
18b12bcee1 vim-patch:8.2.3115: Coverity complains about free_wininfo() use
Problem:    Coverity complains about free_wininfo() use.
Solution:   Add a condition that "wip2" is not equal to "wip". (Neovim vim/vim#14996)
b5098060f4

This fix came from https://github.com/neovim/neovim/pull/14996.
This commit adds only a comment to be in sync with Vim.

N/A patches for version.c:

vim-patch:8.2.3063: crash when switching 'cryptmethod' to xchaha20 with undo file

Problem:    Crash when switching 'cryptmethod' to xchaha20 with an existing
            undo file. (Martin Tournoij)
Solution:   Disable reading undo file when decoding can't be done inplace.
            (issue vim/vim#8467)
65aee0b714

vim-patch:8.2.3101: missing function prototype for vim_round()

Problem:    Missing function prototype for vim_round().
Solution:   Add the prototype.
67b17a6fc6

vim-patch:8.2.3119: compiler warning for unused argument

Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
6a9e5c69cf

vim-patch:8.2.3120: crypt with sodium test fails on MS-Windows

Problem:    Crypt with sodium test fails on MS-Windows.
Solution:   Make the tests pass. (closes vim/vim#8428)
db86472770

vim-patch:8.2.3131: MS-Windows: ipv6 channel test is very flaky in the GUI

Problem:    MS-Windows: ipv6 channel test is very flaky in the GUI.
Solution:   Skip the test.
981217c11f

vim-patch:8.2.3140: MS-Windows: ipv6 channel test is very flaky also without GUI

Problem:    MS-Windows: ipv6 channel test is very flaky also without the GUI.
Solution:   Skip the test also without the GUI.
482d2f37a5

vim-patch:8.2.3157: crypt test may fail on MS-Windows

Problem:    Crypt test may fail on MS-Windows.
Solution:   Ignore "[unix]" in the file message. (Christian Brabandt,
            closes vim/vim#8561)
16e26a3116

vim-patch:8.2.3218: when using xchaha20 crypt undo file is not removed

Problem:    When using xchaha20 crypt undo file is not removed.
Solution:   Reset 'undofile' and delete the file. (Christian Brabandt,
            closes vim/vim#8630, closes vim/vim#8467)
8a4c812ede

vim-patch:8.2.3245: the crypt key may appear in a swap partition

Problem:    The crypt key may appear in a swap partition.
Solution:   When using xchaha20 use sodium_mlock(). (Christian Brabandt,
            closes vim/vim#8657)
131530a54d
2021-07-31 18:31:41 -04:00
5cead86975 fixup! vim-patch:8.2.3019: location list only has the start position. 2021-07-31 16:58:10 -04:00
0c93525340 docs: regenerate 2021-07-31 20:26:57 +00:00
24f2b9ef1c fix(lsp): Include client name in handler error messages (#15227)
Makes it easier to tell with language server caused an error.
2021-07-31 22:26:02 +02:00
e4fedf5156 vim-patch:8.2.3254: win_gettype() does not recognize a quickfix window
Problem:    win_gettype() does not recognize a quickfix window.
Solution:   Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes vim/vim#8676)
28d8421bfb
2021-07-31 15:10:51 -04:00
8738ce8c41 vim-patch:8.2.3163: location list window may open a wrong file
Problem:    Location list window may open a wrong file.
Solution:   Also update the qf_ptr field. (Wei-Chung Wen, closes vim/vim#8565,
            closes vim/vim#8566)
1557b16dad
2021-07-31 15:10:50 -04:00
64ad770fbe vim-patch:8.2.3025: not enough tests for quickfix end_col and end_lnum
Problem:    Not enough tests for quickfix end_col and end_lnum.
Solution:   Add a few more test cases. (Shane-XB-Qian, closes vim/vim#8409)
0d5e1ec37f
2021-07-31 15:10:50 -04:00
59e96717d2 vim-patch:8.2.3019: location list only has the start position.
Problem:    Location list only has the start position.
Solution:   Make it possible to add an end position. (Shane-XB-Qian,
            closes vim/vim#8393)
6864efa596

N/A patches for version.c:

vim-patch:8.2.3002: Vim doesn't abort on a fatal Tcl error

Problem:    Vim doesn't abort on a fatal Tcl error.
Solution:   Change emsg() to iemsg(). (Dominique Pellé, closes vim/vim#8383)
affd0bc626

vim-patch:8.2.3030: Coverity reports a memory leak

Problem:    Coverity reports a memory leak.
Solution:   Fix the leak and a few typos. (Dominique Pellé, closes vim/vim#8418)
cb54bc6562

Patch v8.2.3022 is mostly N/A but cannot be included here
because of new feature check for "has()".

vim-patch:8.2.3032: build problems with MSVC, other crypt issues with libsodium

Problem:    Build problems with MSVC, other crypt issues with libsodium.
Solution:   Adjust MSVC makefile. Disable swap file only when 'key' is set.
            Adjust error message used when key is wrong.  Fix Coverity issues.
            (Christian Brabandt, closes vim/vim#8420, closes vim/vim#8411)
226b28b961

vim-patch:8.2.3044: Amiga MorphOS and AROS: process ID is not valid

Problem:    Amiga MorphOS and AROS: process ID is not valid.
Solution:   Use FindTask to return something which is unique to all processes.
            (Ola Söder, closes vim/vim#8444)
3a62b14077

vim-patch:8.2.3046: Amiga MorphOS: Term mode is set using DOS packets

Problem:    Amiga MorphOS: Term mode is set using DOS packets.
Solution:   Use the same way of setting term mdoe on all next gen Amiga-like
            systems.  (Ola Söder, closes vim/vim#8445)
b420ac9d20
2021-07-31 15:10:23 -04:00
5f01714b25 vim-patch:8.1.2019: 'cursorline' always highlights the whole line (#15161)
Problem:    'cursorline' always highlights the whole line.
Solution:   Add 'cursorlineopt' to specify what is highlighted.
            (closes vim/vim#4693)
410e98a70b
2021-07-30 21:51:26 -04:00
15698eb5a1 Merge pull request #15206 from dundargoc/refactor/a-song-of-true-and-false/global-variables-2
refactor: replace TRUE/FALSE with true/false
2021-07-30 17:53:07 +02:00
7b627ece8d Merge pull request #15222 from dundargoc/PVS/V501
refactor: PVS/V501: removed duplicate sub-expression 'chunk.size > 2'
2021-07-30 15:41:27 +02:00
ca3071ea93 Merge pull request #15062 from seandewar/vim-8.1.0829
vim-patch:8.1.0829: when 'hidden' is set session creates extra buffers
2021-07-30 09:19:44 -04:00
74a38c03c0 Merge pull request #14744 from janlazo/vim-8.2.2957
vim-patch:8.2.2957: using getchar() in Vim9 script is problematic
2021-07-30 09:01:35 -04:00
518f0d3d47 refactor: PVS/V501: removed duplicate sub-expression 'chunk.size > 2' 2021-07-30 14:29:54 +02:00
94120d2fd5 refactor: replace TRUE/FALSE with true/false 2021-07-30 12:29:32 +02:00
870c43c023 fixup! fix(highlight): remove syncolor.vim
Fix lint errors from lines with 80+ characters.
2021-07-29 23:01:24 -04:00
3865b43205 vim-patch:8.2.2957: using getchar() in Vim9 script is problematic
Problem:    Using getchar() in Vim9 script is problematic.
Solution:   Add getcharstr(). (closes vim/vim#8343)
3a7503c34c

Cherry-pick Test_getchar() changes from patch v8.1.2304
to sync with upstream.

Port f_getcharstr() to src/nvim/eval/funcs.c, not src/nvim/getchar.c.
Patch v8.1.2042 is not ported yet.
2021-07-29 21:51:39 -04:00
d628e4250f Merge pull request #15207 from gpanders/bye-syncolor
fix(highlight): remove syncolor.vim
2021-07-29 23:31:57 +02:00
b73e733d52 Merge pull request #15184 from bfredl/sunjonhl
feat(decorations): allow more than one stacked highlight in a virt_text
2021-07-29 22:25:43 +02:00
25a879dfa2 feat(decorations): deprecate nvim_buf_set_virtual_text
Full virt_text functionality is provided by nvim_buf_set_extmark
2021-07-29 20:36:12 +02:00
a4d81a8002 refactor(decorations): merge the two different code paths for virt_text
test(bufhl): CHANGE of tested behaviour (inb4 a proper priority mechanism)
test(decoration): change of test; previous behavior was buggy (ghost
buffer text)
2021-07-29 20:34:42 +02:00
1495d36d63 feat(decorations): allow more than one stacked highlight in a virt_text 2021-07-29 20:34:20 +02:00
3521bf7672 feat(lsp): implement vim.lsp.diagnostic.redraw() (#15203)
Add a new function to redraw diagnostics from the current diagnostic
cache, without receiving a "publishDiagnostics" message from the server.
This is already being done in two places in the Lua stdlib, so this
function unifies that functionality in addition to providing it to third
party plugins.

An example use case for this could be a command or key-binding for
toggling diagnostics virtual text. The virtual text configuration option
can be toggled using `vim.lsp.with` followed by
`vim.lsp.diagnostic.redraw()` to immediately redraw the diagnostics
with the updated setting.
2021-07-29 09:02:17 -07:00
3b6d95b5f6 Merge pull request #15213 from zeertzjq/vim-8.2.3236
vim-patch:8.2.3236: mode() does not indicate using CTRL-O in Select mode
2021-07-29 17:03:12 +02:00
143a920de9 chore: fix lsp bug issue template
correct description for expected behavior
2021-07-29 16:35:02 +02:00
1d3aaae15c chore: fix bug issue template form
description for "expected behavior" was wrongly attached to "actual behavior"
2021-07-29 16:17:58 +02:00
98c4b2cf62 Merge pull request #15215 from bfredl/fix_15212
fix(decorations): crash when :bdelete (extmark_free_all) after clear_namespace
2021-07-29 14:25:02 +02:00
cd353aa824 fix(decorations): crash when :bdelete (extmark_free_all) after clear_namespace
fixes #15212
2021-07-29 12:59:56 +02:00
04ba81ddba vim-patch:8.2.3236: mode() does not indicate using CTRL-O in Select mode
Problem:    mode() does not indicate using CTRL-O in Select mode.
Solution:   Use "vs" and similar. (closes vim/vim#8640)
eaf3f36168
2021-07-29 07:47:17 +08:00
ac5139eae4 ci(labeler): adapt to new label names 2021-07-28 17:29:27 +02:00
cab90f2ef1 fixup! fix(highlight): remove syncolor.vim 2021-07-28 09:11:07 -06:00
6c08af083d ci: label PRs only the first time they're opened (#15209)
instead of on every change -- including removing erroneous labels
2021-07-28 11:30:08 +02:00
701c21480e ci(labeler): update label format 2021-07-28 10:10:45 +02:00
9190addf1f fixup! fix(highlight): remove syncolor.vim 2021-07-27 16:00:53 -06:00
d3bc61b31d fixup! fix(highlight): remove syncolor.vim 2021-07-27 14:14:42 -06:00
9afa0d25a6 fix(highlight): remove syncolor.vim
Remove syncolor.vim in favor of defining the default highlight groups
directly in `init_highlight`. This approach provides a number of
advantages:

1. The highlights are always defined, regardless of whether or not the
   syntax regex engine is enabled.
2. Redundant sourcing of syntax files is eliminated (syncolor.vim was
   often sourced multiple times based on how the user's colorscheme file
   was written).
3. The syntax highlighting regex engine and the highlight groups
   themselves are more fully decoupled.
4. Removal of the confusing `:syntax on` / `:syntax enable` dichotomy
   (they now both do the same thing).

This approach also correctly solves a number of bugs related to
highlighting (#15176, #12573, #15205).
2021-07-27 14:14:30 -06:00
c642f3ac27 Merge pull request #15142 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-07-27 11:28:04 +02:00
86baf582b8 docs: regenerate 2021-07-26 18:48:46 +00:00
c818d8df34 Merge pull request #15197 from dundargoc/refactor/a-song-of-true-and-false/global-variables
refactor: replace TRUE/FALSE with true/false
2021-07-26 20:41:54 +02:00
3e00d4f01c feat(lsp): make list handlers configurable (#15199)
The handlers for textDocument/references, textDocument/documentSymbol,
and workspace/symbol open their results in the quickfix list by default
and are not configurable. They are also incompatible with `vim.lsp.with`
as they do not accept a configuration parameter.

Add a `config` parameter to the handler for these three messages which
allows them to be configured with `vim.lsp.with`. Additionally, add a
new configuration option 'loclist' that, when true, causes these
handlers to open their results in the location list rather than the
quickfix list.
2021-07-26 11:39:50 -07:00
b8813bacfe Merge pull request #15090 from kraftwerk28/master
docs: fix typo in treesitter.txt
2021-07-26 20:38:11 +02:00
ec7881bbfd Merge pull request #15180 from gpanders/xcalloc
fix: fix incorrect call sites of xcalloc
2021-07-26 20:30:10 +02:00
0e22a40b6d Merge pull request #15191 from vigoux/ts-docs
docs(ts): add documentation for listing fns
2021-07-26 18:48:15 +02:00
1637622db9 chore: remove checkbox from issue template
Checkboxes trigger "task lists", which add noise.
2021-07-26 17:31:27 +02:00
dfd9d861dc refactor: replace TRUE/FALSE with true/false
Focus is on global variables.
2021-07-26 17:12:35 +02:00
7b520cca3a Merge pull request #15151 from dundargoc/refactor/true-and-false-macro
refactor: replace TRUE/FALSE macros with C99 true/false
2021-07-26 10:25:08 +02:00
11dcf15682 refactor: replace TRUE/FALSE macros with C99 true/false 2021-07-25 21:51:50 +02:00
5c42e2a87f docs(ts): add documentation for listing fns 2021-07-25 20:52:05 +02:00
192adfe99f Merge pull request #14311 from matveyt/nomode_ce
refactor(state): Remove EXMODE_NORMAL
2021-07-25 19:35:23 +02:00
f15c745502 chore: PVS/V751: ignore warning #15153
There's already an ignore directive but it's placed on the wrong line.
This commit should correct it.
2021-07-25 10:19:56 -07:00
53f70bb183 chore: added ccls-cache in .gitignore (#15175) 2021-07-25 19:12:07 +02:00
3a34f59ae8 Merge pull request #14347 from theHamsta/list_directives
treesitter: add query.list_directives
2021-07-25 16:49:22 +02:00
bebca7bbeb chore: update LSP bug report with Github issue forms (#15159) 2021-07-25 16:07:20 +02:00
1aef6297b3 chore: update feature request template by using Github issue forms. (#15158) 2021-07-25 16:06:19 +02:00
e5f3abfd17 chore: update bug report template by using Github's new issue forms (#15152) 2021-07-25 16:05:11 +02:00
a8f00e39ba Merge pull request #15178 from gpanders/master
fix: source syncolors.vim after startup scripts
2021-07-25 15:36:04 +02:00
3fd4f2f611 fix: fix incorrect call sites of xcalloc
The number of elements comes first and the size of each element second.
2021-07-24 15:52:14 -06:00
289c153d1f doc: group documentation of predicates and directives 2021-07-24 20:57:45 +02:00
b2a9afef6d treesitter: add query.list_directives 2021-07-24 20:57:45 +02:00
860aedd06b fix: source syncolors.vim after startup scripts
This fixes an issue introduced in #14771 (fix: source syncolors.vim
before startup scripts) that affected highlights for users who set
'background' to light in their startup script. Because syncolor.vim
checks for the value of &background, it was always setting up the 'dark'
background colors, which looked wrong for users using light backgrounds.

The primary benefit of #14771 is that it decoupled highlighting from the
syntax engine. This is useful for e.g. treesitter, which still makes use
of highlights even if the syntax engine is disabled. For this reason, it
is still worthwhile to source syncolor.vim separately from synload.vim,
which #14771 accomplishes. However, we should still source syncolor.vim
after the user startup scripts, to ensure that we are respecting the
options the user sets.

Another corollary benefit is that this reduces some redundancy in
highlight definitions, since we now only source syncolors.vim if the
user did not already enable a colorscheme.
2021-07-24 10:28:16 -06:00
46009499af Merge pull request #15169 from bfredl/freebsdfail
fix(ci): disable broken test on openbsd also on freebsd
2021-07-24 13:18:38 +02:00
13db912e51 fix(ci): lower timeout to 45 minutes (from default 360 mins) 2021-07-24 10:23:15 +02:00
a3e2636afd fix(ci): disable broken test on openbsd on all CI due to resource constraints 2021-07-23 19:35:32 +02:00
8ce0929418 Remove EXMODE_NORMAL 2021-07-23 18:08:40 +02:00
754ac5a834 Merge pull request #15114 from theHamsta/treesitter-hl-priority
feat(treesitter): allow to set highlight priority for queries
2021-07-23 17:56:16 +02:00
5ea6cc1d75 docs(tree-sitter): document highlight priority 2021-07-22 21:38:57 +02:00
242608e669 feat(treesitter): allow to set highlight priority for queries 2021-07-22 21:38:57 +02:00
a8c3d50fad lsp: add vim.lsp.diagnostic.set_qflist() function (#14831)
* Add vim.lsp.diagnostic.set_qflist() function
* replaces opts.open_loclist with unified opts.open
2021-07-22 08:48:28 -07:00
ea35584bac Merge pull request #14771 from gpanders/colorscheme
fix: source syncolors.vim before startup scripts
2021-07-22 14:10:56 +02:00
6f48c018b5 Revert "fix(ci): remove mongodb from brew to avoid brew upgrade error (#15115)" (#15141)
This reverts commit 5377b2b00a.

(Fix no longer needed.)
2021-07-20 23:30:32 +02:00
sim
710b9ed1c7 lsp(start_client): Allow passing custom workspaceFolders to the LSP (#15132)
Some language servers *cough*rust-analyzer*cough* need an empty/custom
workspaceFolders for certain usecases. For example, rust-analyzer
needs an empty workspaceFolders table for standalone file support
(See https://github.com/rust-analyzer/rust-analyzer/pull/8955).

This can also be useful for other languages that need to commonly
open a certain directory (like flutter or lua), which would help
prevent spinning up a new language server altogether.

In case no workspaceFolders are passed, we fallback to what we had
before.
2021-07-20 22:00:38 +02:00
2475161def Merge pull request #15135 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-07-19 23:35:35 +02:00
823412eda9 docs: regenerate 2021-07-19 21:24:46 +00:00
9358aa04c4 docs: made can_merge private (#15138) 2021-07-19 14:23:28 -07:00
4ed2d4fd66 fix(lsp): allow diagnostic.clear to accept nil bufnr (#15137)
Passing `nil` is equivalent to passing 0, i.e. it simply uses the
current buffer number.

This fixes a bug when vim.lsp.diagnostic.disable() is called without
arguments.
2021-07-19 14:23:12 -07:00
223c355040 Merge pull request #15127 from bfredl/nlua_init
refactor(lua): initialize lua state at startup instead of dynamically
2021-07-19 22:27:55 +02:00
1aeb945553 feat(lsp): allow diagnostics to be disabled for a buffer (#15134)
Add two new methods to allow diagnostics to be disabled (and re-enabled)
in the current buffer. When diagnostics are disabled they are simply not
displayed to the user, but they are still sent by the server and
processed by the client.

Disabling diagnostics can be helpful in a number of scenarios. For
example, if one is working on a buffer with an overwhelming amount of
diagnostic warnings it can be helpful to simply disable diagnostics
without disabling the LSP client entirely. This also allows users more
flexibility on when and how they may want diagnostic information to be
displayed. For example, some users may not want to display diagnostic
information until after the buffer is first written.
2021-07-19 11:49:55 -07:00
c487a73fa2 feat(lsp): allow configuring zindex for floating windows (#15086) 2021-07-19 09:03:59 -07:00
526fc609b8 fix(shared): do not treat empty tables as list in deep extend (#15094)
An empty table was previously always treated as a list, which means that
while merging tables, whenever an empty table was encountered it would
  always truncate any table on the left.

`vim.tbl_deep_extend("force", { b = { a = 1 } }, { b = {} })`

Before: `{ b = {} }`
After: `{ b = { a = 1 } }`
2021-07-19 08:52:44 -07:00
3b2a85ff76 Merge pull request #15070 from dundargoc/PVS/V768
[RDY] chore(PVS/V768): don't use enum as bool.
2021-07-19 11:29:09 -04:00
e877eccafd refactor(lua): initialize lua state at startup instead of dynamically
lua is used as part of implementation for more core features. As an
example, every user keypress will invoke a lua function to check for
keypress handlers (regardless if they are registered or not). Thus not
starting lua until it is first used doesn't make much sense anymore.

nlua_enter was also needed due to the earlier stateful &rtp
translation, which by now have been made stateless.
2021-07-19 16:12:39 +02:00
192c21ccde chore(PVS/V768): don't use enum as bool. 2021-07-19 14:42:39 +02:00
bfb04812d5 Merge pull request #15073 from dundargoc/PVS/V751
[RDY] chore(PVS/V751): tui.c, Parameter is not used
2021-07-18 13:39:20 -04:00
d9be6ba796 Merge pull request #15110 from dundargoc/PVS/V1042
[RDY] chore: PVS/V1042 - ignore warning globally.
2021-07-18 13:36:23 -04:00
6f9e219f60 chore(PVS/V751): tui.c, Parameter is not used
False positive. Documentation for grid_scroll says "`cols` is always
zero, reserved for future use".
2021-07-18 11:47:09 +02:00
c36df20aef feat: aggregate code actions from all clients (#15121) 2021-07-18 01:58:35 -07:00
9f6989d551 chore: PVS/V1042 - ignore warning globally.
V1042 is a warning that a file has a copyleft license, which is an
irrelevant warning to open-source projects.
2021-07-17 17:27:17 +02:00
96a6b9b52d vim-patch:8.1.0829: when 'hidden' is set session creates extra buffers
Problem:    When 'hidden' is set session creates extra buffers.
Solution:   Move :badd commands to the end. (Jason Franklin)
d39e275b57

Adjust some tests in ex_cmds/mksession_spec.lua:

- 'restores same :terminal buf in splits': Buffers aren't always :badded
  in the same order as they're :edited, :balted, etc, so the order of
  buffers in the buffer list may change slightly now that :badd happens
  afterwards.
- 'restores buffers with tab-local CWD': This is explained in a comment.
2021-07-17 16:12:49 +01:00
5377b2b00a fix(ci): remove mongodb from brew to avoid brew upgrade error (#15115)
macOS CI was failing because:

- brew upgrade fails because,
- mongodb-community cant upgrade because,
- some symlinks are owned by ...  mongodb-community...

We don't use mogodb, so we can just remove it wholesale.
2021-07-17 16:59:39 +02:00
d8f5f4d090 doc(lsp): various small fixes (#15113)
- remove incorrect usage of docstrings
- fix make_formatting_params return type documentation to 'DocumentFormattingParams'
- make progress_handler private
- fix links
2021-07-17 11:15:57 +02:00
0bcf96bf0b fix: source syncolors.vim before startup scripts
This fixes an issue (#12573) where colorscheme files are sourced twice
upon startup. This occurs when the startup script calls `:colorscheme`,
which sets the `g:colors_name` global variable. When syntax highlighting
is enabled in `syn_maybe_enable()` the `syntax.vim` script is sourced
which in turn sources `synload.vim`. This script checks to see if
`g:colors_name` is set and, if so, runs

    exe "colors " . colors_name

This is done to ensure that highlight groups are defined before enabling
the syntax highlighting engine.

Instead, source syncolors.vim before the startup scripts which sets up
default highlights and only load the full syntax engine after
the startup scripts or when the user runs `:syntax on`. Add a guard
variable `did_syncolor` to prevent syncolor.vim from being sourced
twice and remove the line mentioned above from synload.vim so that
the colorscheme file is not re-sourced when the syntax engine is loaded.
2021-07-14 20:51:36 -06:00
682247b52e Merge pull request #15078 from bfredl/p_vim_vi
refactor(options): remove obsolete distinction of "vi" vs "vim" defaults
2021-07-14 22:21:57 +02:00
f0cc3a9480 refactor(options): remove obsolete distinction of "vi" vs "vim" defaults
It might come as a schocking surprise, but the defaults we support
are the NEOVIM defaults.
2021-07-14 21:54:19 +02:00
19a2e59f7e Merge pull request #15017 from donbex/local-file-uri
fix(lsp): accept file URIs without a hostname
2021-07-14 12:20:13 -07:00
fc869da6dc refactor(options): delet unused P_VIM flag 2021-07-14 21:06:07 +02:00
ceaef6bf3f docs: fix typo in treesitter.txt 2021-07-14 21:41:53 +03:00
c31bc6ea73 fix(lsp): pass bufnr for async formatting (#15084)
the `textDocument/rangeFormatting` nad `textDocument/formatting` did not
pass bufnr to apply_text_edits, meaning edits were applied to
the user's currently active buffer. This could result in text being
applied to the wrong buffer.
2021-07-14 09:15:43 -07:00
02bf251bb3 Merge pull request #14812 from gpanders/stdin_closed
feat(job): add parameter to close stdin
2021-07-13 20:51:46 +02:00
f83763b261 Add test case for 'null' stdin mode 2021-07-12 13:22:56 -06:00
d7382475b3 Fix line length clint error 2021-07-12 12:17:44 -06:00
35e13df3c8 Rename stdin to stdin_mode
stdin is a macro in Windows builds.
2021-07-12 12:17:44 -06:00
eb7f24b4ae feat(job): add parameter to close stdin
Some programs behave differently when they detect that stdin is being
piped. This can be problematic when these programs are used with the job
control API where stdin is attached, but not typically used. It is
possible to run the job using a PTY which circumvents this problem, but
that includes a lot of overhead when simply closing the stdin pipe would
suffice.

To enable this behavior, add a new parameter to the jobstart options
dict called "stdin" with two valid values: "pipe" (the default)
implements the existing behavior of opening a channel for stdin and
"null" which disconnects stdin (or, if you prefer, connects it to
/dev/null). This is extensible so that other modes can be added in the
future.
2021-07-12 15:17:10 +02:00
eece0735fe fix(lsp): avoid ipairs on non-sequential tables (#15059)
ipairs terminates on the first nil index when iterating over table keys:

for i,k in ipairs( {[1] = 'test', [3] = 'test'} ) do
  print(i, k)
end

prints:
1 test

Instead, use pairs which continues iterating over the entire table:

for i,k in pairs( {[1] = 'test', [3] = 'test'} ) do
  print(i, k)
end

prints:
1 test
3 test
2021-07-11 11:34:26 -07:00
e5b75d41db chore(clang): Fix 'Array subscript is undefined' #15057 2021-07-11 07:59:23 -07:00
22b5381396 fixup(clipboard): Fix error not properly handled #14984
fixes #14967
2021-07-11 06:19:54 -07:00
c21a6972a0 fix(lsp): Ensure human readable errors are printed
`return err_message(tostring(err))` caused errors to be printed as
`table: 0x123456789` instead of showing the error code and error
message.

This also removes some `if err` blocks that never got called because at
the end of `handlers.lua` all the handlers are wrapped with logic that
adds generic error handling.
2021-07-11 11:22:35 +02:00
256570a7a6 fix(lsp): Ensure users get feedback on references/symbols errors or empty results
Relates to https://github.com/neovim/neovim/issues/15050

Users should get some indication if there was an error or an empty
result.
2021-07-11 10:57:00 +02:00
79fe9dedcf window.c: address Coverity failure #14996
Check that `wip2` does not point to the same address as `wip`, to address the
Coverity test failure from PR #14884.

Based on the `if` clauses, `free_wininfo(wip2, ...)` is only called when
`wip2->wi_win == NULL` and `wip->wi_win == wp`. I think `wip2` would only point
to the same address as `wip` in scenarios where `wp` were `NULL`, which can be
assumed otherwise based on the earlier code.
2021-07-10 21:32:37 -07:00
936f3a4ddc test/memory_usage_spec: skip on MacOS #15043
Memory compression could complicate the measurements.
2021-07-10 20:15:38 -07:00
7c61d9c3bf fix(lsp): Add separator between codelens in virttext (#15049)
Before:

  Lens1Lens2

After:

  Lens1 | Lens2

Fixes https://github.com/neovim/neovim/issues/15048
2021-07-10 21:35:38 +02:00
0b64d5ecd1 fix(lsp): correctly check for windows in lsp logger (#14954) 2021-07-10 11:11:33 -07:00
1dab9357de feat(vim.uri): Allow URI schemes other than file: without authority 2021-07-10 18:27:37 +01:00
82a443e1f3 test(lsp): file URIs do not allow relative paths 2021-07-10 18:27:37 +01:00
ce5f4228aa test(lsp): file URIs without a hostname 2021-07-10 18:27:37 +01:00
a2c2a08652 fix(lsp): accept file URIs without a hostname
RFC 8089, which defines the file URI scheme, also allows URIs without a
hostname, i.e. of the form file:/path/to/file. These are returned by
some language servers and accepted by other LSP implementations, such as
VSCode's, so it is reasonable for us to accept them as well.
2021-07-10 18:27:37 +01:00
3de7017d9d Merge pull request #15047 from teto/flake-tests
flake update
2021-07-10 18:37:07 +02:00
389cbe63bf chore: add log hander to gen_vimdoc
so it actually dumps output.
Plus a description of what it does in the argparser.
2021-07-10 17:55:45 +02:00
de909bf48b chore(flake): update inputs
Updated inputs so no need to add tree-sitter ourselves anymore.

Added checks:
- for pylint/shlint
- distinguish the devolpment shell from the ASAN build (closure for ASAN
  version is smaller). While in the devShell, functionaltests would fail
because bin/nvim could not load
outputs/out/share/nvim/syntax/syntax.vim
So we touch the file.
2021-07-10 17:52:15 +02:00
e43dbfdd05 feat(lsp): Make line diagnostics display prettier
Adds indentation that matches the number prefix to ensure diagnostic
messages spawning multiple lines align.

Before:

    Diagnostics:
    1. • Variable not in scope: red :: t0 -> t
    • Perhaps you meant one of these:
        ‘rem’ (imported from Prelude), ‘read’ (imported from Prelude),
        ‘pred’ (imported from Prelude)
    2. • Variable not in scope: repeDoubleColon :: [Char] -> t0
    • Perhaps you meant ‘replaceDoubleColon’ (line 32)

After:

    Diagnostics:
    1. • Variable not in scope: red :: t0 -> t
       • Perhaps you meant one of these:
           ‘rem’ (imported from Prelude), ‘read’ (imported from Prelude),
           ‘pred’ (imported from Prelude)
    2. • Variable not in scope: repeDoubleColon :: [Char] -> t0
       • Perhaps you meant ‘replaceDoubleColon’ (line 32)
2021-07-09 20:36:08 +02:00
37af69285a Merge pull request #15036 from vigoux/decurbuf-2
refactor(undo): don't assume curbuf in u_compute_hash
2021-07-09 18:52:26 +02:00
ff53c5585f refactor(undo): don't assume curbuf in u_compute_hash 2021-07-09 15:36:07 +02:00
191d3e6af7 Merge pull request #15035 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-07-09 14:40:19 +02:00
832e1708c2 docs: regenerate 2021-07-09 10:39:24 +00:00
9132b76da6 fix(lsp): support duplicate params in signature help (#15032) 2021-07-09 03:38:29 -07:00
1c41689287 Merge pull request #12971 from vigoux/decurbuf
Decrease reliance on curbuf in BUFEMPTY and `undo.c`
2021-07-09 10:15:18 +02:00
27118c6eb3 Merge pull request #14908 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-07-08 22:50:18 -04:00
9c93e6461c refactor(undo): remove last occurence of save_curbuf 2021-07-08 23:08:42 +02:00
b35fefc57f refactor: remove all mentions to curbuf_lock 2021-07-08 23:08:27 +02:00
9c7e04eb3b build(cmake): skip download if target file exists #14844) 2021-07-08 11:16:13 -07:00
980d50d90e vim-patch:8.2.3125: variables are set but not used #15028
Problem:    Variables are set but not used.
Solution:   Move the declarations to the block where they are used.
            (closes vim/vim#8527)
09f688c33a
2021-07-08 11:04:46 -07:00
4339f528db vim-patch:8.2.3089: garbage collection has useless code #15027
Problem:    Garbage collection has useless code.
Solution:   Bail out when aborting. (closes vim/vim#8504)
20cc528320
2021-07-08 11:03:33 -07:00
6b313d68d0 docs: regenerate 2021-07-08 15:42:31 +00:00
03d15d9e09 fix(lsp): restore diagnostics extmarks that were moved to the last edit line (#15023) 2021-07-08 08:40:41 -07:00
af263711a3 feat(lsp): highlight active parameter in signature help (#15018) 2021-07-07 23:04:35 -07:00
f2205b83c5 doc: "--remote" is not supported #14936
There are plans to support the --remote-xx stuff (or something like it): #1750 #8326
But we don't need this doc meanwhile.
2021-07-07 19:04:49 -07:00
bd7a0b46a9 doc: remove mentions of compile-time flags #14935
Nvim always compiles everything in so those are useless at best and
confusing at worst.
2021-07-07 18:51:40 -07:00
4547137aaf chore: use codespell to spell check #15016 2021-07-07 15:28:44 -07:00
e2bc7e321b clang/'Dead initialization': don't assign unused value to variable "string" #15015 2021-07-07 14:25:27 -07:00
77b33e4b9f fix(lsp): restore diagnostics extmarks on buffer changes (#15011) 2021-07-07 22:31:39 +02:00
0fd3f9130d clang/'Dead nested assignment': don't assign unused value to precision #15012 2021-07-07 13:17:03 -07:00
3de777d259 chore(deps): bump LibLUV to 1.40.0-0 (#14997)
Adds several threading, async, and gc fixes and allows building with older gcc (4.x). Minimum required version remains 1.30.1.
2021-07-07 08:24:08 +02:00
f8ed13c0dc style(undo): remove unnecessary comment 2021-07-06 19:52:26 +02:00
e5804d46fd fix(qf): use correct buffer field 2021-07-06 19:51:59 +02:00
7970631fa0 buffer: move BUFEMPTY to a function 2021-07-06 19:12:15 +02:00
763c852812 undo: reduce reliance on curbuf 2021-07-06 19:08:32 +02:00
55a2c513aa buffer: don't rely on curbuf in BUFEMPTY 2021-07-06 19:07:11 +02:00
df33f30e88 clang/'Dead assignment': ignore warning #15000
This assignment is informative/documenting though technically unnecessary.
https://github.com/neovim/neovim/pull/11900#discussion_r381860165 .
2021-07-05 18:59:27 -07:00
a6cdfa27d5 chore(deps): bump LibLUV to 1.34.1 and lua-compat-53 to 0.9 (#14985)
This bumps the bundled LibLUV to 1.34.1 in order to make the newly introduced `uv.fs_mkstemp` available in the official builds. (The minimum required version remains at 1.30.1.)

The bump of lua-compat-53 to 0.9 is needed to build with the updated LibLUV.
2021-07-05 14:30:50 +02:00
f515baedc1 Merge pull request #14989 from folke/lsp_convert_input_markdown
fix(lsp): prevent double <text> for cached plaintext markup
2021-07-04 20:06:37 -07:00
910967e5af fix(lsp): prevent double <text> for cached plaintext markup 2021-07-05 00:39:46 +02:00
c6226bd6c9 Merge pull request #14391 from lewis6991/signs
signs: Change b_signcols_max -> b_signcols_valid
2021-07-04 23:16:49 +02:00
65b0918c24 signs: Change b_signcols_max -> b_signcols_valid
b_signcols_max isn't used to store the max value, it is use to
invalidate b_signcols.
2021-07-04 21:50:27 +01:00
18bfcfe77f Merge pull request #14981 from janlazo/vim-8.2.3081
vim-patch:8.2.{3081,3082,3085,3087,3088,3093,3094,3097,3098}
2021-07-04 11:00:48 -04:00
0d75b0d8d4 vim-patch:8.2.3097: crash when using "quit" at recovery prompt
Problem:    Crash when using "quit" at recovery prompt and autocommands are
            triggered.
Solution:   Block autocommands when creating an empty buffer to use as the
            current buffer. (closes vim/vim#8506)
1d97efce0c
2021-07-04 09:22:50 -04:00
ce4d424bfc vim-patch:8.2.3093: tablabel_tooltip test fails with Athena
Problem:    tablabel_tooltip test fails with Athena. (Dominique Pellé)
Solution:   Skip the test when using Athena. (closes vim/vim#8508)
fb773a3e0a
2021-07-04 09:22:50 -04:00
37959e8865 vim-patch:8.2.3088: with 'virtualedit' set to "block" Visual highlight is wrong
Problem:    With 'virtualedit' set to "block" Visual highlight is wrong after
            using "$".  (Marco Trosi)
Solution:   Do not set w_old_cursor_lcol to MAXCOL. (closes vim/vim#8495)
9cee4a1c9c
2021-07-04 09:22:50 -04:00
c2a7e445ce vim-patch:8.2.3087: Gemtext files are not recognized
Problem:    Gemtext files are not recognized.
Solution:   Recognize .gmi and .gemini files. (closes vim/vim#8427)
fcde67c99f
2021-07-04 09:22:49 -04:00
d7060183b8 vim-patch:8.2.3085: JSONC files are not recognized
Problem:    JSONC files are not recognized.
Solution:   Recognize .jsonc files. (Izhak Jakov, closes vim/vim#8500)
acbb4b5720

N/A patches for version.c:

vim-patch:8.2.3081: cannot catch errors in a channel command

Problem:    Cannot catch errors in a channel command.
Solution:   Instead of skipping the error make it silent. (closes vim/vim#8477)
11a632d60b

vim-patch:8.2.3082: a channel command "echoerr" does not show anything

Problem:    A channel command "echoerr" does not show anything.
Solution:   Do not use silent errors when using an "echoerr" command.
            (closes vim/vim#8494)
b836f631db

vim-patch:8.2.3094: Test_popup_atcursor_pos() fails without the conceal feature

Problem:    Test_popup_atcursor_pos() fails without the conceal feature.
Solution:   Add a check for the conceal feature. (Dominique Pellé,
            closes vim/vim#8505)
c60e959cba

vim-patch:8.2.3098: popup window test is flaky on MS-Windows with GUI

Problem:    Popup window test is flaky on MS-Windows with GUI.
Solution:   Skip the check in this situation.
999db2346b
2021-07-04 09:22:45 -04:00
490615612e fix(vim.opt): vimL map string values not trimmed (#14982)
Options formatted as a list of comma-separated key-value pairs may have
values that contain leading and trailing whitespace characters. For
example, the `listchars` option has a default value of
`"tab:> ,trail:-,nbsp:+"`. When converting this value to a lua table,
leading and trailing whitespace should not be trimmed.

Co-authored-by: Robert Hrusecky <robert.hrusecky@utexas.edu>
2021-07-04 00:14:39 -07:00
75f758b993 fix(clint): fix link to style guide. (#14975) 2021-07-03 09:09:02 -07:00
ee2c7095c4 refactor(memfile_test): replace long_u type with size_t. #14974
long_u was a custom integer type that is no longer used.
More information can be found in https://github.com/neovim/neovim/issues/459.
2021-07-03 08:23:15 -07:00
70223babb0 PVS/V1051: Ignore "modulo by 1" warning for ARRAY_SIZE. (#14943)
The warning is triggered by the second division when arr is a char array
since sizeof(char) is 1. A modulo by 1 may normally indicate a logic
error, but in this case it's intended.
2021-07-03 07:50:05 -07:00
05330ba508 doc/startup: cleanup; assign ENN to "conflicing configs" msg (#14971) 2021-07-03 06:31:00 -07:00
7918072f99 doc/readme: mention void linux (#14969) 2021-07-03 05:52:33 -07:00
d791274a9d fixup(clipboard): Use case matching #14962
Context: https://github.com/neovim/neovim/pull/14848#discussion_r663203173
2021-07-02 17:47:18 -07:00
94583483f9 deps(curl): v7.77.0 (#14961)
https://github.com/neovim/neovim/issues/14078#issuecomment-870882357
d66e306abf
2021-07-02 17:44:05 -07:00
62d67de598 version bump 2021-07-02 18:12:11 +02:00
a5ac2f45ff NVIM v0.5.0
This release represents ~4000 commits since v0.4.4, the previous
non-maintenance release. Highlights include builtin support for LSP, new APIs
for extended marks (with byte resolution tracking of changes) and buffer
decorations, as well as vast improvements to lua as a plugin and configuration
language. Experimental support for tree-sitter as a syntax engine is also
included, building on the new core APIs for byte tracking and decorations.

FEATURES:

New API functions:
  nvim_exec: execute multiline vim script blocks
  nvim_get_hl_id_by_name: Gets a highight definition by name
  nvim_exec_lua: new name for nvim_execute_lua
  nvim_notify: Notify the user with a message
  nvim_get_runtime_file: Find files in runtime directories
  nvim_get_all_options_info: Get option information for all options
  nvim_get_option_info: Get option information for one option
  nvim_echo: Echo a message with highlights
  nvim_open_term: Open a virtual terminal in a buffer
  nvim_chan_send: send data to a channel. (like chansend() but supports lua strings)
  nvim_set_decoration_provider: callback driven decoration API for a namespace

  nvim_buf_set_text: Set/replace a character range in a buffer
  nvim_buf_delete: Delete the buffer. |:bwipeout|
  nvim_buf_get_extmark_by_id: Returns position for a given extmark id.
  nvim_buf_get_extmarks: get extmarks in traversal order.
  nvim_buf_set_extmark: Creates or updates an extmark.

  nvim_buf_del_extmark: Removes an extmark.
  nvim_buf_call: call a function with buffer as temporary current buffer

  nvim_win_hide: Closes the window and hide the buffer it contains |:hide|
  nvim_win_call: Calls a function with window as temporary current window.

New UI events:
  redraw.screenshot
  redraw.win_viewport

Lua:
  767cd8b17 #12235 startup: add init.lua as an alternative user config
  687eb0b39 #14686 feat(startup): Source runtime/plugin/**/*.lua at startup
  #14686 runtime: allow lua in various runtime search paths such as
         syntax/ ftdetect/ indent/ ftplugin/ compiler/ colors/
  43956dea5 #13479 lua: Add vim.opt and fix scopes of vim.o
  1407899c3 #12268 lua: Add buffer, window and tab accessors
  be662fe5c lua: vim.wait implementation
  2b663c061 #14213 viml: embed Lua syntax highlighting
  901dd79f6 feat: add completion to ':lua'
  82688973 lua: complete methods in metatables
  342148525 runtime: propagate lua parsing errors while using "require"
  aaca2c1c4 #13276 feat(lua): improve error message to make it actionable
  c60c7375f startup: handle autoload and lua packages during startup
  3ccdbc570 #12536 lua: add vim.register_keystroke_callback
  971a191c4 lua: Add ability to pass lua functions directly to vimL
  91e41c857 #12401 lua: add vim.highlight.range
  f2894bffb #12279 lua: Add highlight.on_yank
  ae5bd0454 #11969 lua: add tbl_deep_extend
  ea4127e9a lua: metatable for empty dict value
  dab40f43b Add v:lua.func() vimL syntax for calling lua
  678a51b1d Lua: vim.validate()
  474d0bcbf lua: vim.rpcrequest, vim.rpcnotify, vim.NIL
  8ee7c94a9 lua: add vim.fn.{func} for direct access to vimL function
  d0d38fc36 #11442 Lua: vim.env, vim.{g,v,w,bo,wo}

Tree-sitter:
  Note: tree-sitter is considered experimental for 0.5. There's remaining
  bugs for buffer parsing, as well as known performance issues for
  large files and injected (nested) languages.

  e93342629 #10124 Tree-sitter API for lua
  440695c29 tree-sitter: implement query functionality and highlighting prototype
  8bea39f37 feat(treesitter): allow injections to be configured through directives
  929f19414 feat(treesitter): add offset predicate for language injection
  cd75d3289 #14200 feat: treesitter checkhealth
  1a631026a feat(treesitter): add language tree
  d3f544002 treesitter: runtime queries
  3c5141d2c #13008 treesitter: add string parser
  9437327d5 treesitter: use new on_bytes interface
  e4b5efa51 treesitter: use decoration provider API
  d6209a7b8 fix: Add a test and it is so pretty
  836c31032 feat(ts): bump tree-sitter to v0.20.0

LSP client:
  00dc12c5d #11336 lua LSP client: initial implementation
  d5aaad14e #11430 Followup improvements to LSP
  ee7ac469c #11578 LSP: Use async completion for omnifunc.
  070bd3ea2 #11604 LSP: shrink API, improve docs
  25afa10f9 #11669 Merge 'LSP: differentiate diagnostic underline by severity'
  e956ea767 #11777 LSP: show diagnostic in qf/loclist
  dd8b29cfe #11838 LSP: set InitializeParams.rootPath value
  0c5d2ffeb #11837 Merge 'LSP: fixes, improve test visibility'
  ca8699378 #11638 LSP: implement documentHighlight
  220a2b05c LSP/references: Add context to locations returned by server
  ccb038dc6 LSP/completion: add textEdit support
  da6f38ab3 #12313 LSP: Add workspace.applyEdit client capabilities
  f559e5249 #11607 LSP: Add textDocument/codeAction support
  0d83a1c43 #12638 LSP: Feature/add workspace folders
  fd507e278 #13641 LSP: window/showMessageRequest
  e467d2939 LSP: Move workspace/configuration handler from nvim-lspconfig to core
  2bdd553c9 feat(lsp): Add codelens support

UI:
  f8134f2fd screen.c: remove fold_line special case
  c146eddc8 experimental support for per-window color schemes
  a1508c9f6 nvim__screenshot (dump TUI state to file)
  08fe10010 terminal: enable pass through indexed colors to TUI in rgb mode
  5a8569942 tests/ui: make screen.lua use "linegrid" representation internally
  8fe19d9d8 screen: make ui_compositor aware of the intended size of a float
  54ce1010e extmark: add new flexible "decorations" abstraction
  4781333a7 decorations: allow virt_text overlay at any column
  bdebe8516 decorations: use extmark column adjustments for buffer highlights
  7b488314d decorations: Allow highlights beyond end of line hl_eol
  425bc438a decorations: add additional styling of virt_text overlays
  edb5864a2 floats: z-index
  243820ebd floats: add borders (MS-DOS MODE)
  5b6edc852 feat(float): add rounded borders preset
  4a36ec6da #14310 float: add "solid" border style

vim patches:
  around ~1000 vim patches and runtime updates got merged. Hooray!
  Changes include improvements to quickfix, prompt buffers, incsearch,
  display of search counts, and much much more.

various features and changes:
  858c05613 #12809 Support for :perl, :perlfile, :perldo and perleval()
  bc86f76c0 api/buffer: add "on_bytes" callback to nvim_buf_attach
  19b623708 jobstart now supports env/clear_env
  ef7c6b972 Support specifying "env" option for termopen()
  7c4f34966 #13287 switch from travis to github actions
  24db59ca8 feat: implement BufModified autocmd
  b83d8223f implement Scroll autocommand
  8caf84130 Lower "closed by the client" message level to INFO
  7de276b87 bump libvterm to 0.1.4
  097ec71bd #14096 aarch64/linux: fix build by updating LuaJIT
  bd5f0e969 #12531 support autoread using tui focus tracking
  8a1276005 #12382 Add v:event.visual during `TextYankPost`
  802f8429d api(nvim_open_win): add "noautocmd" option

FIXES:
  21444552c BugFix(clipboard): Fix block paste not working properly
  01493e799 #14413 api: fix nvim_exec() silencing behaviour
  9699f3be1 fix(doc): Add '/site' to stdpath('data') example in `:help 'rtp'`
  581b2bcde screen: fix problem with p_ch
  eae4b1e5c luaref: fix leaks for global luarefs
  409b2711f fix: segfault when pasting in term with empty buffer
  cf6c23fb0 #14273 fix plenty of errors discovered by clang
  21035cff9 #14500 fix plenty of errors discovered by coverity
  bca19138b #13987 tui: fix possibility of evaluating uninitialized variables
  9f2335937 fix_cursor: do not change line number when edit will not impact cursor row
  33f92fe02 fix(pty): Always use $TERM from the job's env dict
  6249059d4 checkhealth: fix terminfo problems on Windows
  397be5d38 #12811 UI: fix cursor not displayed after hiding and un-hiding
  87afc9031 screen.c: fix an issue with wrap and folds
  b419e39a2 screen.c: fix last character on foldtext
  2ea312769 #13688 screen.c: fix display of signcolumn=auto in diffs
  c2d288e29 Fix screen terminal family issues
  314b222c2 #14127 Fix click on foldcolumn with vsplit
  e65d0e53b vim.fn: throw error when trying to use API function
2021-07-02 17:54:29 +02:00
b6ff02e27b ex_cmds: verify invalid command name 2021-07-02 17:44:44 +02:00
7685fc9ecd Merge pull request #14864 from seandewar/get-config-zindex
fix(api/win_get_config): include z-index
2021-07-02 14:52:08 +02:00
8b07653902 doc(options): Fix recommended PowerShell config (#14349)
Ensure that
  * Shell uses UTF8 input/output mode
  * Stderr output is captured, in UTF8
  * Program exit codes are correctly captured

Update functional test harness and add tests
for :make command.

Closes #13713
2021-07-02 08:15:40 -04:00
7d8202087b Merge pull request #14951 from rktjmp/14924-checksums
feat(ci): Add sha256 checksums to release notes
2021-07-01 22:32:05 -04:00
2dd7828511 runtime/vim: d2ea7cf10a4d026ebd402594d656af7d5c811c24 (#14950)
Port vim syntax file only.
2021-07-01 17:31:30 -04:00
d1c906a7c6 feat(ci): Add sha256 checksums to release notes 2021-07-02 05:06:21 +10:00
e8247bc739 lint (#14941)
Fix SC2155 error, found by shellcheck v0.7.2.

https://github.com/koalaman/shellcheck/wiki/SC2155
2021-07-01 12:37:03 -04:00
f133ab598f Merge pull request #14792 from shadmansaleh/refactor/mkdir_p
Refactor(tests): Use os commands in mkdir_p helper
2021-07-01 16:20:34 +02:00
a50a3a12d6 Merge pull request #14848 from shadmansaleh/fixup/block_paste_clipboard
fix(clipboard): Fix block paste from system clipboard not working properly
2021-07-01 15:47:21 +02:00
47a08ec72e Tests(clipboard): Add test for block paste 2021-07-01 15:01:01 +06:00
21444552c0 BugFix(clipboard): Fix block paste not working properly
Block copy and paste from system-clipboard currently breaks formatting.
This fixes it.

The bug occurs because system-clipboard doesn't contain information
about what mode the copy was made.
Simple solution to this is we keep a cache of copy we last made along
with mode information. If system-clipboard returns the cache we apply
the mode information that we know about that cache.
2021-07-01 15:01:01 +06:00
27ea0d37e1 Refactor(tests): mkdir_p in startup/init.lua test 2021-07-01 08:25:55 +06:00
f35a5f2efc Revert "tui: improve support for tmux, GNU Screen" (#14786)
* Revert "tui: improve support for tmux, GNU Screen"

This reverts commit c266c2f36e.

This commit broke neovim under tmux, where it "types" the background
string as input to the terminal. Fixing this with neovim as-is requires
changing tmux keybindings or TERM settings, which has to be done by
every single user, therefore a fix should happen on neovim's side.

Fixes #14298

* tui: fix code lints.
2021-06-30 21:29:51 -04:00
8bd6990084 vim-patch:8.2.1905: the wininfo list may contain stale entries (#14884)
Problem:    The wininfo list may contain stale entries.
Solution:   When closing a window remove any other entry where the window
            pointer is NULL.
4882d98339
2021-06-30 21:24:50 -04:00
d83bc835b6 Merge pull request #14938 from janlazo/vim-8.2.3072
vim-patch:8.2.{3072,3075}
2021-06-30 18:46:22 -04:00
fe10a4e555 Open funcs_data.mpack in binary mode. (#14944)
"b" flag is required to read binary files on Windows. 
https://www.lua.org/pil/21.2.2.html
2021-06-30 18:17:48 -04:00
b82d8faf53 Refactor(tests): Use os commands in mkdir_p helper 2021-06-30 23:27:36 +06:00
390fed3248 Merge pull request #14939 from clason/bump-ts-0.20
[RDY] feat(ts): bump tree-sitter to v0.20.0
2021-06-30 18:18:35 +02:00
48b2092d01 Merge pull request #14942 from jamessan/functionaltest-lua
ci(gha): Add functionaltest-lua checker
2021-06-30 09:58:02 -04:00
3438959da9 Update CONTRIBUTING.md: mention ASAN/UBSAN for runtime errors 2021-06-30 14:57:52 +02:00
836c310321 feat(ts): bump tree-sitter to v0.20.0 2021-06-30 12:11:35 +02:00
2fc9e9effa ci(gha): Add functionaltest-lua checker 2021-06-29 21:46:46 -04:00
b2cc43b454 vim-patch:8.2.3072: "zy" does not work well when "virtualedit' is "block"
Problem:    The "zy" command does not work well when 'virtualedit' is set to
            "block". (Johann Höchtl)
Solution:   Make endspaces zero. (Christian Brabandt, closes vim/vim#8468,
            closes vim/vim#8448)
7d7bcc6ba0

N/A patches for version.c:

vim-patch:8.2.3075: xxd always reports an old version string

Problem:    Xxd always reports an old version string. (Åsmund Ervik)
Solution:   Update the version string with the last known change date.
            (Jürgen Weigert, closes vim/vim#8475)
80b2ba3e96
2021-06-29 21:40:48 -04:00
384f9870f6 Merge pull request #14930 from clason/ts-ifdef-fixup
fixup(ts): put ts_query_cursor_set_match_limit behind feature guard
2021-06-29 20:23:02 +02:00
845d5ab305 Merge pull request #14931 from clason/patch-1
fix(ci): change autolabel to "treesitter"
2021-06-29 20:03:15 +02:00
f969b4bfb1 fix(ci): change autolabel to "treesitter"
Open issues and PRs are almost all labeled `treesitter` instead of `tree-sitter`; this change improves consistency.
2021-06-29 18:54:27 +02:00
7e8a8482e8 fixup(ts): put ts_query_cursor_set_match_limit behind feature guard
This is a fixup for #14915, which used the above-mentioned call to
restore the behavior of the pre-release version of tree-sitter to
that of 0.19.5. However, this function was introduced after 0.19.5,
breaking distro builds that link against 0.19.5 instead of the tag
specified in neovim's build script.

Now the function should only be called when it is available _and_
needed. Once tree-sitter is bumped to 0.19.6 (when this is released),
this guard can be removed again.

Fixes #14923 (among others)
2021-06-29 17:15:12 +02:00
2bcf18deaa Merge pull request #14779 from tjdevries/tjdevries/vim_opt_fixes
An assortment of various vim.opt fixups.
2021-06-29 10:24:41 -04:00
f8990870ff Merge pull request #14335 from chentau/extmark_delbytes
Extmarks: manually zero out `curbuf->deleted_bytes2` on substitute and join
2021-06-29 15:31:23 +02:00
19b7cef0a7 fix(vim.opt): Fix #14828 with empty values being incorrectly inserted 2021-06-29 09:18:59 -04:00
6ecec87c09 fix(vim.opt): Fix #14668 Now correctly handles unescaped commas in isfname style 2021-06-29 08:42:07 -04:00
9119ea1bec fix(vim.opt): Fix #14669 whichwrap now acts as expected 2021-06-29 08:42:07 -04:00
b02e64c4df fix(vim.opt): Add basic error handling 2021-06-29 08:42:07 -04:00
e6175f6389 fix(vim.opt): Get window options before setting.
This closes #14677, but I also am a little unsure if there are times
where this may not be correct. However, this just changes the behavior
that even if `was_set` was false, we still get for
`nvim_win_get_option`.
2021-06-29 08:42:07 -04:00
1d3ee1c441 fix(vim.opt): #14708 Now lets you put duplicate values in wildmode 2021-06-29 08:42:07 -04:00
1c962401a1 Manually zero out deleted_bytes2 when substituting and joining lines 2021-06-29 00:48:24 -07:00
f83c25942d fix(doc/api): Remove 'border' as unsupported (#14916)
PR #13998 added support for floating window borders.
2021-06-28 20:40:56 -04:00
99a4152a4b fix: Remove [RFC] from PR subject in vim-patch.sh (#14917)
As of PR #10383, CONTRIBUTING.md says '[RFC] is assumed by default'. As
of PR #11656, CONTRIBUTING.md says '**do not** put "RFC" in the PR
title'.
2021-06-28 20:40:00 -04:00
3552916cb9 fix(doc): remove reference to vim.lsp.callbacks (#14576)
too old now, can be confusing
2021-06-28 23:02:17 +02:00
c81cbad444 Merge pull request #14920 from otherJL0/master
Adding clangd language server config file
2021-06-28 18:20:33 +02:00
5777fc1b8e Adding clangd language serever config file to point to build/ directory for compile_commands.json 2021-06-28 11:03:09 -04:00
785dcff909 Merge pull request #14915 from clason/ts-match-limit
fix(treesitter): set match limit for query cursors
2021-06-28 16:28:52 +02:00
5aaa1a1c04 [RDY] Add buffer information to tabline_update (#12481)
* Add buffer information to tabline_update

Most terminal implementations of the tabline display buffer and tab
information. Many neovim-qt users disable GuiTabline because it lacks
functionality provided in the terminal implementation.

The tabline_update event should include buffer information too, so client GUIs
can display rich useful tabs.
2021-06-27 15:30:09 -04:00
bdf3df4027 Fixed +1 -1 in util.lua (#14913)
No point in adding and then subtracting I believe ;)
2021-06-26 13:43:18 -04:00
bb4fc69e93 Merge pull request #14914 from janlazo/vim-8.2.3050
vim-patch:8.2.{2954,3049,3050}
2021-06-26 13:42:38 -04:00
18354ca4a7 fix(treesitter): set match limit for query cursors
Upstream tree-sitter raised the number of pending matches for a query cursor
from 32 to 64k in <https://github.com/tree-sitter/tree-sitter/commit/
78010722a49ed6224c773c22b0d25a8c9fbde584>, which severely impacted performance
for some highlighting queries. This uses the `ts_query_cursor_set_match_limit`
function introduced in <https://github.com/tree-sitter/tree-sitter/commit/
cd96552448a6e0d4eb27fc54b27cb5130c4b6f76> to manually set this back to the old
default of 32.

Fixes #14897
2021-06-26 18:11:38 +02:00
7a239a8a9a vim-patch:8.2.2954: short file name extension for Scala not recognized
Problem:    Short file name extension for Scala not recognized.
Solution:   Recognize *.sc. (closes vim/vim#8337)
6db7b6375a
2021-06-26 11:43:35 -04:00
eb7e7ad882 vim-patch:8.2.3049: JSON patch file not recognized
Problem:    JSON patch file not recognized.
Solution:   Recognize json-patch as json. (Kevin Locke, closes vim/vim#8450)
6582e230a0
2021-06-26 11:37:57 -04:00
750ad18845 vim-patch:8.2.3050: cannot recognize elixir files
Problem:    Cannot recognize elixir files.
Solution:   Recognize Elixir-specific files.  Check if an .ex file is Euphoria
            or Elixir. (Austin Gatlin, closes vim/vim#8401, closes vim/vim#8446)
f3caeb63d6
2021-06-26 10:51:29 -04:00
5c0b01fd88 vim-patch:8.2.3018: 'quickfixtextfunc' formatting is lost when switching buffers (#14865)
Problem:    Formatting using quickfixtextfunc is lost when updating location
            lists for different buffers.  (Yorick Peterse)
Solution:   Use the right window for the locaiton list. (Yegappan Lakshmanan,
            closes vim/vim#8400, closes vim/vim#8403)
ad52f96a2d
2021-06-26 10:44:05 -04:00
20dc3f1989 vim-patch:8.1.0897: can modify a:000 when using a reference (#14902)
Problem:    Can modify a:000 when using a reference.
Solution:   Make check for locked variable stricter. (Ozaki Kiichi,
            closes vim/vim#3930)
05c00c038b
2021-06-26 10:19:09 -04:00
ad9c2c069a Fix <afile> getting prepended with a slash on WinClosed (#14515)
It is wrong to assume that you can't shorten a path if it's in `/`: you
can always shorten it by removing the forward slash.

Closes #14512
2021-06-26 10:18:36 -04:00
c1120ad0e1 fix(doc/usr_41): don't mention 0o prefix for octs (#14906)
v8.2.0886 isn't ported yet.
Also remove mentions of Vim9 and legacy script for now.

[skip ci]
2021-06-25 20:10:58 -04:00
e680d7d6af fix(lsp): render the last line in stylize_markdown 2021-06-25 11:45:42 -07:00
3b44b21894 Merge pull request #14910 from folke/lsp_fences_docs
style(lsp): make get_markdown_fences private
2021-06-25 11:04:44 -07:00
b86b410a92 Update busy_start/busy_stop ui events documentation (#14415)
Closes #14386
2021-06-25 13:01:57 -04:00
28dde1038f style(lsp): make get_markdown_fences private 2021-06-25 18:32:00 +02:00
5d792701cf Merge pull request #14904 from mfussenegger/nil-message-callbacks
fix(lsp): Handle nil message_callbacks
2021-06-25 09:13:01 -07:00
7b5a233d64 Merge pull request #14617 from folke/fancy_markdown_fences_support
feat(lsp): use `g:markdown_fenced_languages` in `vim.lsp.util.stylized_markdown`
2021-06-25 09:02:28 -07:00
22c27c0fb4 Merge pull request #14903 from mfussenegger/add-workspace-folder
fix(lsp): Set `dir` completion option for add_workspace_folder
2021-06-25 08:29:57 -07:00
aa1e20497a feat(lsp): use markdown_fenced_languages in stylized_markdown 2021-06-25 17:27:38 +02:00
bbd13aadd7 Merge pull request #14907 from folke/lsp_markdown
fix(lsp): syntax improvements for lsp_markdown
2021-06-25 08:22:54 -07:00
08f81f0f29 fix(lsp): syntax improvements for lsp_markdown 2021-06-25 17:01:06 +02:00
58473178ff fix(lsp): Handle nil message_callbacks
The `onexit` handler could set `message_callbacks` to `nil` within the
luv event loop while the mainloop runs a function that tries to access
`message_callbacks`.

This adds some checks to prevent errors in that case.

Fixes https://github.com/neovim/neovim/issues/14863
2021-06-25 14:45:17 +02:00
7ea652e4bf fix(lsp): Set dir completion option for add_workspace_folder
Given that the input is pre-filled with a path, it should be possible to
use dir completion.
2021-06-25 14:28:17 +02:00
510ed996d2 Merge pull request #14886 from janlazo/vim-8.1.1437
vim-patch:8.1.{1437,2391},8.2.{1255,2185,2294,3033,3034,3037,3038,3043}
2021-06-24 19:36:21 -04:00
1e2fc1f9cd Merge pull request #14584 from akinsho/bugfix/vim-nil-conversion-logic
[RDY] fix(lsp): do not convert vim.NIL to nil in lists
2021-06-24 13:23:28 -07:00
444f175335 fix(lsp): do not convert vim.NIL to nil in lists 2021-06-24 11:23:19 +01:00
9081cd30a5 vim-patch:8.2.3033: no error when using alpha delimiter with :global
Problem:    No error when using alpha delimiter with :global.
Solution:   Check the delimiter like with :substitute. (closes vim/vim#8415)
419a40ac96

N/A patches for version.c:

vim-patch:8.1.2391: cannot build when __QNXNTO__ is defined

Problem:    Cannot build when __QNXNTO__ is defined. (Ian Wayne Larson)
Solution:   Move the check for "qansi". (Ken Takata, closes vim/vim#5317)
c95e8d6490

vim-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)
82c38fe508

vim-patch:8.2.3034: installing packages on github CI sometimes fails

Problem:    Installing packages on github CI sometimes fails.
Solution:   Update package information first. (Christian Brabandt,
            closes vim/vim#8432)
ef7be8348f

vim-patch:8.2.3037: configure reports libcanberra when checking for libsodium

Problem:    Configure reports libcanberra when checking for libsodium.
Solution:   Adjust the message. (Ozaki Kiichi, closes vim/vim#8435)
8ce3ca8961

vim-patch:8.2.3038: Amiga built-in version string doesn't include build date

Problem:    Amiga built-in version string doesn't include build date.
Solution:   Add the build date if available. (Ola Söder, closes vim/vim#8437)
cc65040986

vim-patch:8.2.3043: Amiga: cannot get the shell size on MorphOS and AROS

Problem:    Amiga: cannot get the shell size on MorphOS and AROS.
Solution:   Use control sequences. (Ola Söder, closes vim/vim#8438)
d415d26913
2021-06-23 23:27:01 -04:00
cd4b649136 vim-patch:8.2.2185: BufUnload is not triggered for the quickfix dummy buffer
Problem:    BufUnload is not triggered for the quickfix dummy buffer.
Solution:   Do trigger BufUnload. (Pontus Leitzler,closes vim/vim#7518, closes vim/vim#7517)
            Fix white space around "=".
1cfb9bb5c0
2021-06-23 23:16:20 -04:00
4cb0bf0942 vim-patch:8.2.1255: cannot use a lambda with quickfix functions
Problem:    Cannot use a lambda with quickfix functions.
Solution:   Add support for lambda. (Yegappan Lakshmanan, closes vim/vim#6499)
d43906d2e5
2021-06-23 23:16:20 -04:00
d5329c0331 vim-patch:8.1.1437: code to handle callbacks is duplicated
Problem:    Code to handle callbacks is duplicated.
Solution:   Add callback_T and functions to deal with it.
3a97bb3f0f

Port Vim's put_callback() as callback_put()
because Neovim's naming convention is {type}_{action},
not {action}_{type}.

Renaming put_callback type as PutCallback.
https://neovim.io/develop/style-guide.xml#Type_Names
2021-06-23 23:16:20 -04:00
24e0c16fd6 Merge pull request #14868 from shadmansaleh/patch_verbose_for_lua
fix(runtime): Fix bugs regarding lua runtime files
2021-06-23 20:34:57 +02:00
0d7e33bc13 docs(starting): mention init.lua in paths and remove repetition (#14883) 2021-06-23 09:36:03 +02:00
5a24284b8d Merge pull request #14878 from mjlbach/fix/lsp-quickfix-focus 2021-06-22 11:45:04 -07:00
b601f2548c Merge pull request #14719 from snezhniylis/marktree_delete_node_iter_fix
Fix deletable nodes in MarkTree sometimes getting skipped
2021-06-22 13:48:22 +02:00
9a39a11807 fixup! vim-patch:8.2.3020: unreachable code (#14866) 2021-06-22 10:35:36 +02:00
43479f0ad6 extmark: fix deletable nodes in MarkTree sometimes getting skipped
As per #14236, performing extmark cleanup in a certain namespace does
not guarantee removing all the extmarks inside given namespace.
The issue resides within the tree node removal method and results in
a couple of rare edge cases.

To demonstrate what causes this bug, I'll give an example covering one
of the edge cases.

=== AN EXAMPLE ===

   (A)         (B)         (C)         (D)         (E)
---------   ---------   ---------   ---------   ---------
  <0, 1>      <0, 1>      <0, 1>      <0, 1>      <0, 1>
  <0, 2>      <0, 2>      <0, 2>      <0, 2>      <0, 2>
  <0, 3>      <0, 3>      <0, 3>      <0, 3>      <0, 3>
  <0, 4>      <0, 4>      <0, 4>      <0, 4>      <0, 4>
  <0, 5>      <0, 5>      <0, 5>      <0, 5>      <0, 5>
  <0, 6>      <0, 6>      <0, 6>      <0, 6>      <0, 6>
  <0, 7>      <0, 7>      <0, 7>      <0, 7>      <0, 7>
  <0, 8>      <0, 8>      <0, 8>      <0, 8>      <0, 8>
  <0, 9>      <0, 9> *           *    <0, 9>  *   <0, 9>
[0, 10] *   [0, 10]     <0, 9>        [0, 11]     [0, 11]
  [0, 11]     [0, 11]     [0, 11]     [0, 12]     [0, 12]  *
  [0, 12]     [0, 12]     [0, 12]     [0, 13]     [0, 13]
  [0, 13]     [0, 13]     [0, 13]     [0, 14]     [0, 14]
  [0, 14]     [0, 14]     [0, 14]     [0, 15]     [0, 15]
  [0, 15]     [0, 15]     [0, 15]     [0, 16]     [0, 16]
  [0, 16]     [0, 16]     [0, 16]     [0, 17]     [0, 17]
  [0, 17]     [0, 17]     [0, 17]     [0, 18]     [0, 18]
  [0, 18]     [0, 18]     [0, 18]     [0, 19]     [0, 19]
  [0, 19]     [0, 19]     [0, 19]   [0, 20]     [0, 20]
[0, 20]     [0, 20]     [0, 20]

DIAGRAM EXPLANATION

* Every column is a state of the marktree at a certain stage.

* To make it simple, I don't draw the whole tree. What you see are
   2 leftmost parent nodes ([0, 10], [0, 20]) and their children placed
   in order `MarkTreeIter` would iterate through. From top to bottom.

* Numbers on this diagram represent extmark coordinates. Relative
   positioning and actual mark IDs used by the marktree are avoided
   for simplicity.

* 2 types of brackets around coordinates represent 2 different
   extmark namespaces (`ns_id`s).

* '*' shows iterator position.

ACTUAL EXPLANATION

Let's assume, we have two sets of extmarks from 2 different plugins:
  * Plugin1: <0, 1-9>
  * Plugin2: [0, 10-20]

1. Plugin2 calls
    `vim.api.nvim_buf_clear_namespace(buf_handle, ns_id, 0, -1)`
    to clear all its extmarks which results in `extmark_clear` call.

2. The iteration process goes on ignoring extmarks with irrelevant
    `ns_id` from Plugin1, until it reaches [0, 10], entering state (A).

3. At the end of cleaning up process, `marktree_del_itr` gets called.
    This function is supposed to remove given node and, if necessary,
    restructure the tree. Also, move the iterator to the next node.
    The bug occurs in this function.

4. The iterator goes backwards to the node's last child, to put it
    in the place of its deleted parent later. (B)

5. The parent node is deleted and replaced with its child node. (C)

6. Since now this node has 8 children, which is less than
    `MT_BRANCH_FACTOR - 1`, it get's merged with the next node. (D)

7. Finally, since at (B) the iterator went backward, it goes forward
    twice, skipping [0, 11] node, causing this extmark to persist,
    causing the bug. (E)

ANALYSIS AND SOLUTION

The algorithm works perfectly when the parent node gets replaced by
its child, but no merging occurs. I.e. the exact same diagram,
but without the (D) stage. If not for (D), it would iterate to <0, 9>
and then to [0, 11]. So, iterating twice makes sense. The actual problem
is in (C) stage, because the iterator index isn't adjusted and still
pointing to no longer existent node. So my solution is to adjust
iterator index after removing the child node.

More info: https://github.com/neovim/neovim/pull/14719
2021-06-22 10:32:46 +02:00
060255253f fix(lsp): handlers should focus quickfix list 2021-06-21 20:44:37 -07:00
b4ac878026 fix(source): Source giving E484 & parsing error at line 1 for lua files
It's happening because do_source is only expected to return FAIL when it
was unable to open file . But `nlua_exec_file` returns fail for parsing
and execution error too . Those errors are emitted through `nlua_error`.

So now return value of nlua_exec_file is ignored like do_cmdline. It now
only returns fail when it was unable to open file that check is done
before calling nlua_exec_file or do_cmdline. Errors in nlua_exec_file
are still directly emitted through nlua_error like before.
2021-06-21 13:07:05 +06:00
b4a216f7ed BugFix: Fix inconsistent verbose message
When a keymap is set from lua currently verbose message says
it's set from line 1. That's incorrect because we don't really know when
it was set. So until proper :verbose support isn't added for sourceing
lua it shouldn't say where it was set at.
2021-06-21 07:14:37 +06:00
b585f723bc vim-patch:8.2.3020: unreachable code (#14866)
Problem:    Unreachable code.
Solution:   Remove the code. (closes vim/vim#8406)
2fb7495686
2021-06-20 14:20:43 -04:00
997a9c8792 Merge pull request #14849 from seandewar/demethod-curwin
fix(doc): various fixes
2021-06-19 20:18:30 -04:00
c16afaa1f8 Merge pull request #14851 from ckipp01/hlCodeLens 2021-06-19 15:44:48 -07:00
90bdb6e74d Add hl group docs for codelenses 2021-06-20 00:16:37 +02:00
db06fe11fa Merge pull request #14861 from stevearc/diagnostic-loclist
fix(lsp): fix severity_limit logic in set_loclist
2021-06-19 11:08:34 -07:00
5f1b728621 fix(api/win_get_config): include z-index 2021-06-19 17:17:17 +01:00
41332f6187 fix(doc/index.txt): various ex command fixes
Add :eval and :checkhealth (:eval was also missing upstream).
Fix :perlfile typo, add abbreviations for :perl, :perlfile and :perldo.
Remove :scriptversion; it hasn't been ported yet (#14611).

[skip ci]
2021-06-19 16:58:50 +01:00
b5c0ade437 fix(doc): :sleep! does not hide cursor
:sleep is the same as :sleep! in the port of v8.2.2366
2021-06-19 16:58:50 +01:00
7d025f2e8e fix(doc): remove :promptfind and :promptrepl
:promptfind and :promptrepl are N/A for Nvim.
2021-06-19 16:58:39 +01:00
bb35ed6aaa fix(doc): don't use method call syntax in examples
The method call syntax patches aren't ported yet.
2021-06-19 16:37:04 +01:00
43835ab0da fix(lsp): fix severity_limit logic in set_loclist 2021-06-19 07:35:17 -07:00
7da86f55a7 Merge pull request #14833 from vigoux/tree-sitter-docs-tidy
docs(treesitter): tidy docs and remove legacy information
2021-06-19 08:48:35 +02:00
96d83e2a66 Merge pull request #14824 from vigoux/extmarks-ts-perf
perf(extmarks): allow ephemeral extmarks past EOF to remove O(strlen^2) cost of tree-sitter
2021-06-18 12:37:27 +02:00
e2d3ad7bc4 vim-patch:8.2.3012: when 'rightleft' is set the line number is drawn reversed (#14839)
Problem:    When 'rightleft' is set the line number is sometimes drawn
            reversed.
Solution:   Adjust how space is handled. (Christian Brabandt, closes vim/vim#8389,
            closes vim/vim#8391)
29f0dc3689
2021-06-17 22:00:26 -04:00
a03ffe1602 Merge pull request #14840 from folke/lsp_float_cleanup
chore(lsp): removed deprecated floating preview methods
2021-06-16 23:39:10 -07:00
39d9713c5b chore(lsp): removed deprecated floating preview methods 2021-06-17 07:48:40 +02:00
a72dfec855 release.sh: use stdin for release commit message (#14832)
v0.5.0 has too many commits since v0.4.0.
"git commit -m" triggers "Argument list too long" error.
2021-06-16 22:58:54 -04:00
a85e8a186b perf(extmarks): allow ephemeral extmarks past EOF 2021-06-16 20:15:47 +02:00
3a438bbb44 docs(treesitter): mention query help page 2021-06-16 19:10:15 +02:00
1b6b32c544 docs(treesitter): tidy docs and remove legacy information 2021-06-16 19:06:29 +02:00
c78816eb66 Merge pull request #14796 from glacambre/upgrade_to_gcc11
[RDY] ci: upgrade to gcc-11 on ubuntu-18.04
2021-06-16 12:13:07 -04:00
04ad196b4e ci: upgrade to gcc-11 on ubuntu-18.04
In https://github.com/neovim/neovim/issues/14150 , investigations showed
that using an older gcc to build the appimage could result in severe
perf issues. This is because older gcc versions happily replace calls to
libc functions with their own, which happen to be less optimized than
their libc counterparts.

We fix this problem by upgrading to gcc-11 on ubuntu-18.04.
2021-06-16 17:54:14 +02:00
f76f72a27b fix(lsp): add bufnr to formatting requests
Add the buffer number to the `textDocument/formatting` request, so
that it is passed to the handler.
The built-in formatting handlers do not use the buffer number, but user
overrides should have access to it.
2021-06-15 23:53:43 -07:00
3df0e475e8 docs(lsp): Clarify opts for show_line_diagnostics() 2021-06-15 23:21:04 -07:00
6a77def1ee Merge pull request #14454 from eltociear/patch-1
screen: fix typo in screen.c
2021-06-15 20:06:41 +02:00
ec7b21918d Merge pull request #14822 from eltociear/patch-2
option: fix typo in option.c
2021-06-15 20:02:18 +02:00
dbf8236764 option: fix typo in option.c
seperated -> separated
2021-06-16 01:08:23 +09:00
19ccda230e Merge pull request #14817 from neovim/marvim/api-doc-update/master 2021-06-15 07:37:54 -07:00
45a7cd2c19 docs: regenerate 2021-06-15 06:20:14 +00:00
8cdffd42dd docs(lsp): annotate call_hierarchy function as private 2021-06-14 23:19:23 -07:00
b8dfa2f112 fix(lsp): fix on_detach in lsp.diagnostic
`lsp.diagnostic.get_all()` was returning diagnotics for `:bwipeout`-ed
buffers because the diagnostic cache is not cleared. The first argument
of on_detach callback is the string "detach", not the bufnr.
2021-06-14 23:07:52 -07:00
44fad0a7a3 Merge pull request #14815 from folke/lsp_triples
fix(lsp): replace --- by a line in stylize_markdown
2021-06-14 23:04:34 -07:00
d7d1f40d2c fix(lsp): replace --- by a line in stylize_markdown 2021-06-15 07:35:58 +02:00
b28d458f87 Merge pull request #14482 from elianiva/lsp/remove_hover_line
feat(lsp): hide triple - in hover window
2021-06-14 15:03:25 -07:00
98b597bf03 Merge pull request #14737 from rktjmp/lsp-guard-against-negative-lines
[RDY] fix(lsp): guard against negative diagnostic line numbers
2021-06-14 15:01:58 -07:00
6488fca06b feat(lsp): hide triple - in hover window. 2021-06-15 05:01:45 +07:00
ed61b7f053 Merge pull request #14814 from nanotee/fix_lsp_floats_presets
fix(lsp): allow 'rounded' and 'solid' in floats
2021-06-14 15:00:11 -07:00
15039d7597 fix(lsp): allow 'rounded' and 'solid' in floats 2021-06-14 23:19:45 +02:00
8162792283 Merge pull request #13165 from mfussenegger/codelens
feat(lsp): Add codelens support
2021-06-14 14:15:57 -07:00
32c6ad02b7 Merge pull request #14813 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-06-14 22:56:23 +02:00
67c4ae1322 docs: regenerate 2021-06-14 20:39:02 +00:00
4284abd89a Merge pull request #14804 from clason/rounded-borders
[RDY] feat(float): add rounded borders preset
2021-06-14 13:36:47 -07:00
2bdd553c9e feat(lsp): Add codelens support 2021-06-14 21:45:14 +02:00
5b6edc852f feat(float): add rounded borders preset
Add `borders = "rounded"` preset for `nvim_open_win`, equivalent to

  border = {"╭", "─", "╮", "│", "╯", "─", "╰", "│"}

Also add undocumented "solid" preset to docs.
2021-06-14 11:10:57 +02:00
2f0e5e7e67 Merge pull request #14802 from janlazo/vim-8.2.1354
vim-patch:8.2.{936,1354,2990}
2021-06-13 18:09:11 -04:00
8f4ba0a46b vim-patch:8.2.2990: Jupyter Notebook files are not recognized
Problem:    Jupyter Notebook files are not recognized.
Solution:   Recognize *.ipynb. (closes vim/vim#8375)
2e66b0d137
2021-06-13 15:27:24 -04:00
e2bc0bf665 fix(ci): adjust DEPS_INSTALL_DIR on OpenBSD to avoid pkg-config bug (#14803)
Also bumps to OpenBSD 6.9 and updates packages.

Co-authored-by: glacambre <code@lacamb.re>
2021-06-13 14:03:47 -04:00
ac18e26f57 vim-patch:8.2.0936: some terminals misinterpret the code for getting cursor style
Problem:    Some terminals misinterpret the code for getting cursor style.
Solution:   Send a sequence to the terminal and check the result. (IWAMOTO
            Kouichi, closes vim/vim#2126)  Merged with current code.
a45551a535

Cherry-pick Test_cwindow_highlight() from patch v8.1.2040
because it is skipped.
2021-06-13 12:34:23 -04:00
8b81218300 vim-patch:8.2.1354: test 59 is old style
Problem:    Test 59 is old style.
Solution:   Convert into a new style test. (Yegappan Lakshmanan, closes vim/vim#6604)
aa970abd0a
2021-06-13 10:19:48 -04:00
141647cfbb Merge pull request #14765 from folke/lsp_plaintext
fix(lsp): convert_input_to_markdown_lines: preserve plaintext
2021-06-12 17:48:04 -07:00
9c7132cda4 Merge pull request #14788 from shadmansaleh/fix/lua_runtime1
fixup(runtime): Fix lua runtime files not listed in :scriptnames
2021-06-13 00:52:30 +02:00
afb0274c28 fix(lsp): convert_input_to_markdown_lines: preserve plaintext 2021-06-12 21:47:17 +02:00
12d8ff7ccd Merge pull request #14785 from janlazo/vim-8.1.1838
vim-patch:8.1.{1838,1865},8.2.{38,39,46,945,948,2896}
2021-06-12 15:07:11 -04:00
cdbc733ec4 refactor(startup): Load init.lua with do_sorce
This was init.lua will be logged in startuptime
2021-06-13 00:27:52 +06:00
1f280b582f fixup(runtime): Fix lua runtime files not listed
lua runtime files weren't listed in :scriptname & profiler.
This fixes that.

* Add tests

* Small doc tweeks
2021-06-13 00:27:52 +06:00
ee4735881d fix(lsp): guard against negative diagnostic line numbers 2021-06-13 03:38:59 +10:00
6a4685fb0e vim-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 vim/vim#8270)
dc3275a1ac
2021-06-12 13:06:50 -04:00
72b512bd53 vim-patch:8.2.0945: cannot use "z=" when 'spell' is off
Problem:    Cannot use "z=" when 'spell' is off.
Solution:   Make "z=" work even when 'spell' is off. (Christian Brabandt,
            Gary Johnson, closes vim/vim#6227)
152e79e94b
2021-06-12 13:06:50 -04:00
82d1c29bfd vim-patch:8.2.0046: tests for spell suggestions are slow
Problem:    Tests for spell suggestions are slow.
Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.
            (Dominique Pelle, closes vim/vim#5399)
767340574b
2021-06-12 13:06:49 -04:00
e78656875d vim-patch:8.2.0039: memory access error when "z=" has no suggestions
Problem:    Memory access error when "z=" has no suggestions.
Solution:   Check for negative index.
569fea2c31
2021-06-12 13:06:49 -04:00
f376e67a53 vim-patch:8.2.0038: spell suggestions insufficiently tested
Problem:    Spell suggestions insufficiently tested.
Solution:   Add spell suggestion tests. (Dominique Pelle, closes vim/vim#5398)
e9a8d1f9ad

Requires latest en.utf-8.spl from
https://ftp.nluug.nl/pub/vim/runtime/spell/.

Include the following patch because patch v8.2.0946 was merged:

vim-patch:8.2.0948: spell test fails

Problem:    Spell test fails.
Solution:   Adjust expected text of the prompt.
d281b7c227
2021-06-12 13:06:49 -04:00
e75244af63 vim-patch:8.1.1865: spellrare and spellrepall in the wrong order
Problem:    Spellrare and spellrepall in the wrong order.
Solution:   Put spellrare below spellrepall. (closes vim/vim#4820)
a3891681f7
2021-06-12 13:06:49 -04:00
61117d89a3 vim-patch:8.1.1838: there is :spellwrong and :spellgood but not :spellrare
Problem:    There is :spellwrong and :spellgood but not :spellrare.
Solution:   Add :spellrare. (Martin Tournoij, closes vim/vim#4291)
08cc374dab
2021-06-12 13:06:48 -04:00
d3bdde0bad test: clear $GZIP, use nvim's system() (#14791) 2021-06-12 13:05:43 -04:00
db83be2dab Merge pull request #14137 from last-partizan/patch-1-test
Fix popupmenu position in multigrid mode (pum_above)
2021-06-12 14:59:47 +02:00
8d23941af8 fix(ui): Fix pum incorrect position in multigrid mode
Refs #12985
2021-06-12 14:34:02 +02:00
d09b8ad715 Merge pull request #14761 from janlazo/vim-8.2.2966
vim-patch:8.2.{1702,2422,2966,2971,2974}
2021-06-11 21:07:47 -04:00
2644fe5b7c vim-patch:8.2.2974: Greek spell checking uses wrong case folding
Problem:    Greek spell checking uses wrong case folding.
Solution:   Fold capital sigma depending on whether it is at the end of a
            word or not. (closes vim/vim#299)
4f13527598
2021-06-11 17:00:14 -04:00
a9b8c780fe Merge pull request #14773 from mjlbach/fix/vim-region-bounds
fix(lua): ensure vim.region truncates to buf range
2021-06-11 10:24:30 -07:00
81a6b70880 Merge pull request #14686 from shadmansaleh/feat/evaluate_plugin/lua
runtime: allow to use .lua files for most features defined as &rtp/{feature}/*.vim
2021-06-11 17:42:21 +02:00
fa768152dc Merge pull request #14776 from vigoux/ts-0.19.5plus
deps(treesitter): bump to 0.19.5+
2021-06-11 16:34:16 +02:00
69255fc7e4 Merge pull request #14777 from vigoux/label-dependencies
ci: correctly label dependencies PRs
2021-06-11 16:33:57 +02:00
7b0836ed01 ci: correctly label dependencies PRs
Configures the labeler to handle PRs related to third-party.
2021-06-11 16:17:41 +02:00
74140e7642 Merge pull request #14775 from bfredl/gcc11
macros: add a dummy statement to allow FALLTHROUGH in an empty case.
2021-06-11 15:19:58 +02:00
3085788a3e deps(treesitter): bump to 0.19.5+
This fixes a bunch of issues with queries.
2021-06-11 14:15:27 +02:00
4eeefb8d45 macros: add a dummy statement to allow FALLTHROUGH in an empty case. 2021-06-11 12:07:07 +02:00
67eb63df50 Merge pull request #14769 from mjlbach/feature/fix_diagnostic_end_range
fix(lsp): cap diagnostic end range to buf length
2021-06-11 01:13:03 -07:00
cd3233c289 fix(lua): ensure vim.region truncates to buf range
If vim.region receives a large range outside of the current buffer
bounds, it will not check the range ahead of time and loop until neovim
exhausts the system memory.

Fixes #14743
2021-06-11 04:10:01 -04:00
8ebbeee1d0 vim-patch:8.2.2971: cannot yank a block without trailing spaces
Problem:    Cannot yank a block without trailing spaces.
Solution:   Add the "zy" command. (Christian Brabandt, closes vim/vim#8292)
544a38e44d
2021-06-10 22:58:15 -04:00
f9b9b82047 fix(lsp): cap diagnostic end range to buf length
Closes #14743
2021-06-10 22:16:34 -04:00
d662dfde36 vim-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.
1d859e2421
2021-06-10 21:28:30 -04:00
cb368e1bff vim-patch:8.2.1702: crash when using undo after deleting folded lines
Problem:    Crash when using undo after deleting folded lines.
Solution:   Check for NULL pointer. (closes vim/vim#6968)
da697645d5
2021-06-10 19:20:33 -04:00
292037ef9b vim-patch:8.2.2966: ml_get errors after recovering a file
Problem:    ml_get errors after recovering a file. (Yegappan Lakshmanan)
Solution:   Fix the cursor position after deleting lines.
e3f50ad640
2021-06-10 19:20:32 -04:00
e1edc079dd refactor(source): Move lua file detection to do_source
So now :source can run lua files too :)

* feat: Add support for :[ranged]source for lua files
2021-06-11 01:01:03 +06:00
92b6b3764c refactor(tests): Simplify tests at functional/lua/runtime_spec 2021-06-11 01:01:03 +06:00
07c9b20c75 enhance(runtime): Enable completion for lua files
Enabled for `:colorscheme` `:compiler` filetype
2021-06-11 01:01:03 +06:00
f000251e08 feat(runtime): Allow lua to be used in syntax 2021-06-11 01:01:03 +06:00
f256a18fef feat(runtime): Allow lua to be used in ftdetect 2021-06-11 01:01:02 +06:00
4dffe1ff2f feat(runtime): Allow lua to be used in indent 2021-06-11 01:01:02 +06:00
fd5e5d2715 feat(runtime): Allow lua to be used in ftplugin 2021-06-11 01:01:02 +06:00
68be8b99cf feat(runtime): Allow lua to be used in compiler 2021-06-11 01:01:02 +06:00
1e6c02510a feat(runtime): Allow lua to be used in colorschemes
* tests(runtime): move runtime/plugin tests to functional/lua/runtime_spec
2021-06-11 01:01:02 +06:00
687eb0b39f feat(startup): Source runtime/plugin/**/*.lua at startup
For opt plugins these files are sourced on `:packadd`

* `:runtime` Now can exexute lua files
2021-06-11 00:58:38 +06:00
1df8a34a7b docs(contributing): update commit message instructions (#14758)
we are changing the way we write commits to increase automation. This commit explains how to write commit messages.
2021-06-10 19:08:58 +02:00
988f88c24e Merge pull request #14249 from euclidianAce/euclidianAce/win-config-include-border
include 'border' in nvim_win_get_config
2021-06-10 12:01:12 +02:00
7b519cd11c api:get_config: don't add border="none" (inactive default) 2021-06-10 10:41:50 +02:00
38d6452899 fix linter errors 2021-06-10 10:41:50 +02:00
8021c5a531 api: include border in nvim_win_get_config 2021-06-10 10:41:49 +02:00
21645e603c Merge pull request #14763 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-06-10 10:05:55 +02:00
04f9511715 docs: regenerate 2021-06-10 08:03:28 +00:00
70a1331dab Merge pull request #14717 from notomo/add-win-call-api
api: add nvim_win_call
2021-06-10 10:02:31 +02:00
53791c0546 Merge pull request #14510 from urandom/doc_nvim_buf_set_extmark
Minor observational corrections to the nvim_buf_set_extmark documentation
2021-06-10 09:39:35 +02:00
1a9eb7a987 api: add nvim_win_call 2021-06-10 09:34:29 +02:00
fd7e77b227 Merge pull request #14757 from jbyuki/open_line_changed_bytes
fix: changed byte ranges for indented lines
2021-06-09 23:49:02 +02:00
a15c2cbab6 add tests in buffer_updates 2021-06-09 12:20:13 -07:00
7ff7ca56dd minor fix 2021-06-09 11:58:25 +02:00
a1db340cea minor fixes 2021-06-09 11:57:37 +02:00
d9e11f4f78 fix changed byte ranges for indented lines 2021-06-09 11:35:15 +02:00
93f15db5d6 Merge pull request #14736 from mfussenegger/lsp-diagnostic-get-qfitems
feat(lsp): Split out a "get qf items" func from set_loclist
2021-06-07 09:43:43 -07:00
f03a4d616b feat(lsp): Split out a diagnostics_to_items function from set_loclist
Makes it easier to re-use the logic to populate the quickfix list
instead of the location list.
2021-06-07 18:24:32 +02:00
f2906a4669 Merge pull request #14731 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-06-06 20:10:07 +02:00
0819e1acf9 docs: regenerate 2021-06-06 10:23:07 +00:00
4ce61742cf Merge pull request #14726 from folke/lsp_single_popup_per_buffer
fix(lsp): max 1 floating preview per buffer. Fixes #11508
2021-06-06 03:22:10 -07:00
37d5236f88 Merge pull request #14511 from urandom/lsp_diagnostics_workspace_loclist
feat(lsp): add an option to lsp.diagnostic.set_loclist to the workspace
2021-06-06 03:16:43 -07:00
36d05845f7 feat(lsp): extend diagnostic.set_loclist
add option to show workspace diagnostic instead of the current buffer's
2021-06-06 09:59:46 +02:00
b3e3ab0567 Merge pull request #14733 from mjlbach/fix_docs_2
docs(lsp): fix locations_to_items docstring
2021-06-05 20:45:24 -07:00
5902bed406 docs(lsp): fix locations_to_items docstring 2021-06-05 17:22:47 -07:00
36802b895f Merge pull request #14730 from mjlbach/feature/open_loclist_on_win
fix(lsp): set_loclist should target current win
2021-06-05 17:12:55 -07:00
f214c19e2b Merge pull request #14707 from ray-x/master
fix(lsp): floating window border size for string type
2021-06-05 15:00:07 -07:00
15abde1676 fix(lsp): set_loclist should target current win
Currently, for large number of diagnostics, the delay in populating
loclist may be sufficient for a user to switch to another window,
resulting in the loclist being populated on the wrong window.
2021-06-05 14:46:10 -07:00
21ecde1728 Merge pull request #14729 from mjlbach/feat/diagnostic_quickfix_cleanup
feat(lsp): remove line from diagnostic quickfix
2021-06-05 13:57:16 -07:00
d846bd7e06 feat(lsp): remove line from diagnostic quickfix
Adding the line takes up valuable horizontal screen space, and also
precludes using the quickfixtextfunc built into neovim due to the
harcoded `|`.
2021-06-05 13:39:30 -07:00
becbb7436f Merge pull request #14724 from janlazo/vim-8.2.2877
vim-patch:8.0.1578,8.2.{2877,2937}
2021-06-05 13:18:05 -04:00
bfcec8d2f0 version.c: update [skip ci] (#14328)
Co-authored-by: marvim <marvim@users.noreply.github.com>

vim-patch:8.1.1433: win_execute() may leave popup window focused
vim-patch:8.1.2257: MS-Windows GUI: scroll wheel always uses current window

vim-patch:8.2.0520: tests are not listed in sorted order
vim-patch:8.2.2794: Linux users don't know how to get ncurses
vim-patch:8.2.2807: build fails with tiny features
vim-patch:8.2.2818: no jump added when opening terminal in current window
vim-patch:8.2.2823: MS-Windows: launching Vim from installer doesn't open README
vim-patch:8.2.2830: terminal colors are not updated when 'background' is set
vim-patch:8.2.2836: build failure without the +quickfix feature
vim-patch:8.2.2841: MS-Windows: cursor wrong when 'lz' and 'stl' are set
vim-patch:8.2.2845: MS-Windows: warning for signed/unsigned comparison
vim-patch:8.2.2852: configure can add --as-needed a second time
vim-patch:8.2.2859: Tcl test fails because of changed error message
vim-patch:8.2.2876: configure cannot detect Python 3.10
vim-patch:8.2.2883: MS-Windows manifest file name is misleading
vim-patch:8.2.2889: typo and verbose comment in Makefiles
vim-patch:8.2.2891: cannot build with Perl 5.34
vim-patch:8.2.2899: Appveyor script does not detect nmake failure
vim-patch:8.2.2907: memory leak when running out of memory
vim-patch:8.2.2909: build error with non-Unix system
vim-patch:8.2.2913: MS-Windows conpty supports using mouse events
vim-patch:8.2.2919: using ":!command" does not work if it uses posix_spawn()
vim-patch:8.2.2923: EBCDIC build is broken
vim-patch:8.2.2924: superfluous extern declaration
vim-patch:8.2.2929: accidentally enable tcl by default
vim-patch:8.2.2939: GTK: righthand scrollbar does not show with split window
vim-patch:8.2.2940: MS-Windows: cannot see the size when resizing

vim-patch:e307073680d498b113c7df8250abd5676de1ed13
vim-patch:8fbd6723af3248a1fa46fa1e610804841603abe5
vim-patch:d52986e7be366b6f8c9e18078648f1c5219c4335
vim-patch:7a212c625362d86327878d57269d63f6a2ca5d2b
vim-patch:424e98baab3bf05d7946f99ddfa180ae71570650
vim-patch:2b72821924ff514727b60fb0b647d5caae8336f7
vim-patch:c882e4d169fd5e0364bc91642040337efe7327a6
2021-06-05 13:16:27 -04:00
77b24c867b window: pvs/v1071
"void" cast unused return value of win_comp_pos().
2021-06-05 12:49:28 -04:00
0aa16dbd18 regexp: pvs/v1071
"void" cast unused return values of getchr(), peekchr().
2021-06-05 12:49:28 -04:00
61e07d98dd fold: pvs/v1071
"void" cast unused return value of hasFolding().
2021-06-05 12:49:28 -04:00
c6b8598616 memline: pvs/v1071
"void" cast unused return value of ml_find_line().
2021-06-05 12:49:28 -04:00
ac64055826 indent_c: pvs/v1071
"void" cast unused return value of find_last_paren().
2021-06-05 12:49:27 -04:00
3d120b1c18 screen: pvs/v614
win_col_offset must be 0 to be no-opt
when passed to col_off param of draw_virt_text().
2021-06-05 12:49:27 -04:00
607d1cc80d fixup! vim-patch:8.2.2136: Vim9: Using uninitialized variable
Resolve pvs/v560 error.
mods is nonnull in the modified inner if-condition.
because it is checked for NULL in the outer if-condition.
2021-06-05 12:49:27 -04:00
44b6a7b5bf undo: pvs/v547
buf is nonnull when xfree(buf) is executed.

free(NULL) is safe (for target compilers) so xfree(NULL) is also safe.
2021-06-05 12:49:27 -04:00
5115bc3f4f sign: pvs/v547
vim_strsave() returns nonnull.
2021-06-05 12:49:27 -04:00
729f270266 userfunc: pvs/v547
vim_strsave() returns nonnull.
2021-06-05 12:49:26 -04:00
5571004b69 fixup! tests: fix system_spec when run with clipboard manager (#10956)
uv_process_options_t "args" member was set to a local array from stack.
when uv_process_options_t variable is outside the function.
https://pvs-studio.com/en/docs/warnings/v507/
2021-06-05 12:49:26 -04:00
304c6ce934 fixup! fixup! vim-patch:8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright' (#14398) 2021-06-05 12:49:26 -04:00
b959de3a5f vim-patch:8.0.1578: no test for :popup in terminal
Problem:    No test for :popup in terminal.
Solution:   Add a screen dump test.
69f5a3011d
2021-06-05 12:49:26 -04:00
60bf49ab1c vim-patch:8.2.2937: popup test fails if rightleft feature not enabled
Problem:    Popup test fails if rightleft feature not enabled.
Solution:   Check that the rightleft feature is available. (Dominique Pellé,
            closes vim/vim#8321)
56cddb3879
2021-06-05 12:49:26 -04:00
1b13c744ea vim-patch:8.2.2877: insufficient tests for popup menu rightleft
Problem:    Insufficient tests for popup menu rightleft.
Solution:   Add tests. (Yegappan Lakshmanan, closes vim/vim#8235)
1e615669c0
2021-06-05 12:49:26 -04:00
149efa9b2b fix(lsp): max 1 floating preview per buffer. Fixes #11508 2021-06-05 10:13:01 +02:00
ca802046bf Merge pull request #14721 from jamessan/mac-ci
fix(ci): Remove gcc@8/gcc@9 homebrew workaround
2021-06-04 12:28:37 -04:00
04985f69eb fix(ci): Remove gcc@8/gcc@9 homebrew workaround 2021-06-04 11:21:45 -04:00
7d4f890aa9 Merge pull request #14710 from janlazo/clang-warnings
Reduce clang warnings
2021-06-02 22:40:09 -04:00
6a2f1b1740 clang/'Logic error': assert get_decor_provider(id, true) returns nonnull
nvim_set_decoration_provider() has undefined behavior (if not crash)
if get_decor_provider() returns NULL.
2021-06-02 21:49:38 -04:00
68cb51ab0a fixup! vim-patch:8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright' (#14398)
tab_firstwin can be NULL.
2021-06-02 21:45:44 -04:00
d1238856a8 clang/'Logic error': has_profiling() may not set forceit 2021-06-02 21:24:01 -04:00
626c631e89 clang/'Logic error': zero-init oldbase array
unrelative() must not have garbage structs.
2021-06-02 21:19:19 -04:00
59db83bc59 clang/API: reject null string in timer_start() 2021-06-02 21:05:13 -04:00
351050a10f fix(lsp): floating window border size for string type 'none' and 'shadow' 2021-06-02 20:44:13 +10:00
68d40388f3 Merge pull request #14701 from neovim/marvim/api-doc-update/master
docs: regenerate
2021-06-02 08:16:39 +02:00
2ebc28018e docs: regenerate 2021-06-02 00:43:13 +00:00
056c464e8a Merge pull request #14692 from jamessan/api-doc-workflow
ci(gha): New workflow to regen API docs on pushes to release branches
2021-06-01 20:40:16 -04:00
3fe7a04704 Merge pull request #14698 from jose-elias-alvarez/omnifunc-insert-check
fix(lsp): check mode in omnifunc callback
2021-06-01 10:13:17 -07:00
d4caafacc1 fix(lsp): check mode in omnifunc callback 2021-06-01 22:13:21 +09:00
b10cda83fa Merge pull request #14693 from shadmansaleh/enhance/lsp/make_focusable_parameter_configurable
feat(lsp): Make focusability of lsp float configurable
2021-06-01 04:32:59 -07:00
68d48e25b6 docs(lsp): Fix opts param not captured by docgen
In the documentation for `vim.lsp.util.open_floating_preview`
the opts table keys were prefixed with `--` instead of `---`,
preventing capture by docgen.
2021-06-01 17:29:06 +06:00
0bd34cb4ec feat(lsp): Make focusability of lsp float configurable
This pr allows the user to specify whether `lsp.utils.open_floating_preview`
is focusable via the `opts` parameter. Defaults to true.

It can be configured by setting the focusable key inside opts parameter:

```lua
vim.lsp.util.open_floating_preview(contents, syntax, {focusable = false})
```
2021-06-01 17:23:35 +06:00
64bdaef327 Merge pull request #14694 from folke/lsp_popup_border 2021-06-01 01:52:38 -07:00
2faa1c361b Merge pull request #14659 from seandewar/api-win-buf-noautocmd
api(nvim_open_win): Enable BufEnter autocmds by default like ordinary window; add "noautocmd" option to block BufEnter.
2021-06-01 10:05:58 +02:00
0ece34cbb8 fix(lsp): properly handle border character list without highlight groups. Fixes #14691 2021-06-01 09:36:29 +02:00
efef508ec6 ci(gha): New workflow to regen API docs on pushes to release branches
Upon pushing updates to files which may contain API documentation, the
workflow will regenerate the docs and, if there are relevant changes,
create a PR targeting the source branch.

[skip ci]
2021-05-31 22:52:44 -04:00
db6523cd13 api(parse_float_config): use api_object_to_bool() 2021-06-01 03:05:04 +01:00
802f8429d5 api(nvim_open_win): add "noautocmd" option
This option, when set, stops nvim_open_win() from potentially firing
buffer-related autocmd events
(BufEnter, BufLeave and BufWinEnter in the case of nvim_open_win()).
2021-06-01 03:05:04 +01:00
27c616d688 Merge pull request #14685 from janlazo/vim-8.2.2911
vim-patch:8.1.2400,8.2.{2911,2914.2916}
2021-05-31 22:01:09 -04:00
e8f0ff1d48 Merge pull request #14531 from janlazo/revert-noblock
Revert "api/window: use the "noblock" variants in nvim_win_set_buf"
2021-05-31 21:57:44 -04:00
c3ac9c13df vim-patch:8.2.2916: operators are not fully tested
Problem:    Operators are not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#8290)
2ac7184d34
2021-05-31 21:37:46 -04:00
2f79caa02d vim-patch:8.1.2400: test39 is old style
Problem:    Test39 is old style.
Solution:   Convert the test cases into new style. (Yegappan Lakshmanan,
            closes vim/vim#5324)
1f3e7d3bf0
2021-05-31 21:24:31 -04:00
e399731561 vim-patch:8.2.2914: cannot paste a block without adding padding
Problem:    Cannot paste a block without adding padding.
Solution:   Add "zp" and "zP" which paste without adding padding. (Christian
            Brabandt, closes vim/vim#8289)
2fa9384ca1

Cherry-pick Test_normal_z_error() from patch v8.2.0369.
2021-05-31 21:06:11 -04:00
73e3669c7a vim-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 vim/vim#8285)
e71c0ebe2c
2021-05-31 21:06:10 -04:00
2a1bc8657a Merge pull request #14690 from mjlbach/fix_docs
fix(docs): delete duplicate tags
2021-05-31 12:01:22 -07:00
638c29b7c9 fix(docs): delete duplicate tags 2021-05-31 11:51:02 -07:00
0866df4d6a Merge pull request #14687 from kabouzeid/vim-docs
Updated vim docs
2021-05-31 11:27:58 -07:00
96dfa07642 Merge pull request #14635 from folke/lsp_get_lines
perf(lsp): get all lines from a file in one go (`locations_to_items`)
2021-05-31 11:12:23 -07:00
07f81b3b05 docs: regenerate 2021-05-31 19:47:51 +02:00
3cd688ff77 fix vim.opt:remove doc (#14664) 2021-05-30 00:09:30 -04:00
cabf8ab26b Merge pull request #14649 from folke/lsp_float_refactor
refactor(lsp): consolidate the different floating window methods into `open_floating_preview`
2021-05-29 12:06:58 -07:00
a7205e2b70 Merge pull request #14673 from janlazo/vim-8.2.2898
vim-patch:8.2.{2898,2900}
2021-05-29 14:08:27 -04:00
ca6a8ac93c vim-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 vim/vim#8279)
1174b018a6
2021-05-29 13:19:22 -04:00
30a34136b6 vim-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 vim/vim#8242)
3552e74289
2021-05-29 09:59:20 -04:00
64da499ac2 refactor(lsp): consolidate the different floating window methods into open_floating_preview 2021-05-29 13:42:15 +02:00
43956dea55 lua: Add vim.opt and fix scopes of vim.o (#13479)
* lua: Add vim.opt

* fixup: cleaning

* fixup: comments

* ty clason

* fixup: comments

* this is the last commit. period.
2021-05-28 17:24:48 +02:00
192ea01edd cmake: install app icon in XDG hicolor icon theme (#14656)
Install the icon of the application in the hicolor XDG icon theme;
this way it can be properly loaded by XDG menus in the currently set
XDG icon theme, without looking in the legacy pixmaps location.
2021-05-27 22:37:24 +02:00
192f89ea1b Merge pull request #14646 from mfussenegger/wipe-floating-markdown-bufs
lsp: Ensure floating markdown buffers are deleted on hide
2021-05-26 12:13:58 -07:00
e06a73900f lsp: Ensure floating markdown buffers are deleted on hide
After the change to use fancy_floating_markdown for the signature help I
noticed that scratch buffers start to accumulate.
2021-05-26 19:27:04 +02:00
0b905be47b Merge pull request #14607 from glacambre/fix_get_all_options_info_crash
[RDY] Generate PARAM_COUNT macro
2021-05-26 10:30:20 -04:00
fd91e73c57 Merge pull request #14640 from janlazo/vim-3ec3217f0491
vim-patch:3ec3217f0491,8.2.{2278,2885}
2021-05-26 09:13:30 -04:00
0c8454f5bc Fix crash on :echo get_all_options_info()
Iterating over PARAM_COUNT is wrong as PARAM_COUNT also counts the last
element of the options array, which has a NULL fullname in order to
signal the end of the array.
2021-05-26 07:07:11 +02:00
a7061359b7 vim-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 vim/vim#7572)
66c50c5653
2021-05-26 00:39:55 -04:00
7e0d50b16e vim-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 vim/vim#8238)
872bee557e
2021-05-26 00:16:32 -04:00
31ea80649d vim-patch:3ec3217f0491
Update runtime files
3ec3217f04

Omit fuzzy-match in pattern.txt.
2021-05-25 22:11:04 -04:00
54c441c80b perf(lsp): get all lines from a file in one go 2021-05-25 12:23:39 +02:00
a282a177d3 Merge pull request #14634 from janlazo/vim-8.2.2880
vim-patch:8.2.{511,1689,1957,2880,2884}
2021-05-24 16:59:14 -04:00
370e65ed7c vim-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 vim/vim#8246)
1e469c72ee
2021-05-24 15:36:30 -04:00
25a088b0ad vim-patch:8.2.0511: Cscope code not fully tested
Problem:    Cscope code not fully tested.
Solution:   Add more test cases. (Dominique Pelle, closes vim/vim#5886)
d7ffc0ba8c
2021-05-24 15:25:32 -04:00
1b0937dd89 test/old: partial port of patch v8.2.1.0183
Prep for patch v8.2.0511.
2021-05-24 15:25:32 -04:00
529d88c641 vim-patch:8.2.1689: 'colorcolumn' doesn't show in indent
Problem:    'colorcolumn' doesn't show in indent.
Solution:   Also draw the column when draw_state is WL_BRI or WL_SBR.
            (Alexey Demin, closes vim/vim#6948, closes vim/vim#6619)
ad5e5631c5
2021-05-24 13:13:00 -04:00
db3136d2ea vim-patch:8.2.1957: diff and cursorcolumn highlighting don't mix
Problem:    Diff and cursorcolumn highlighting don't mix.
Solution:   Fix condition for what attribute to use. (Christian Brabandt,
            closes vim/vim#7258, closes vim/vim#7260)
fabc3ca896
2021-05-24 12:53:27 -04:00
6d932ccb1c vim-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 vim/vim#8197)
ad5c178a19
2021-05-24 12:38:02 -04:00
0a653f7ab9 vim-patch:8.2.2879: file extension .hsig not recognized (#14628)
Problem:    File extension .hsig not recognized.
Solution:   Use Haskell filetype for .hsig files. (Marcin Szamotulski,
            closes vim/vim#8236)
f5409dbf66
2021-05-23 17:15:38 -04:00
9d8a18aa56 vim-patch:8.2.2879: file extension .hsig not recognized (#14623)
Problem:    File extension .hsig not recognized.
Solution:   Use Haskell filetype for .hsig files. (Marcin Szamotulski,
            closes vim/vim#8236)
f5409dbf66
2021-05-23 16:28:10 -04:00
109fb51589 Merge pull request #14622 from mfussenegger/unmute-error-responses
lsp: Only mute RequestCancelled or ContentModified, but not other errors
2021-05-23 08:58:19 -07:00
5d4717010c lsp: Only mute RequestCancelled or ContentModified, but not other errors
handlers passed to `lsp_buf_request` weren't called if the server
responded with an error that looks like this:

     "decoded", {
      error = {
        code = -32601,
        message = "No delegateCommandHandler for foo"
      },
      id = 5,
      jsonrpc = "2.0"
    }

An example where that happens is both eclipse.jdt.ls and the
haskell-language-server when invoking a command that doesn't exist:

    :lua vim.lsp.buf_request(
      0,
      'workspace/executeCommand',
      { command = 'foo' },
      function(err, _, res)
        print(vim.inspect(err), vim.inspect(res))
      end
    )
2021-05-23 17:04:19 +02:00
3fb3b548a6 Merge pull request #14619 from janlazo/vim-8.2.2772
vim-patch:8.2.{2772,2778}
2021-05-22 22:32:43 -04:00
59d550345d vim-patch:8.2.2778: problem restoring 'packpath' in session
Problem:    Problem restoring 'packpath' in session.
Solution:   Let "skiprtp" also apply to 'packpath'.
d23b714d8b

Port Test_mksession_skiprtp() to lua functional test.
2021-05-22 17:32:24 -04:00
8415615b59 vim-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'.
635bd60804

Allow "terminal" value for sessionoptions even if it's no-opt
because patch v8.0.1592 is not ported yet.

Omit vim9 test, Test_mksession_skiprtp().
2021-05-22 15:40:06 -04:00
8e5439182b fixup! vim-patch:8.1.0734: the hlsearch state is not stored in a session file (#13547) 2021-05-22 15:36:48 -04:00
0cbe748da3 Merge pull request #14615 from folke/faster_locations_to_items
perf(lsp): `locations_to_items`: use libuv for unloaded buffers to get line
2021-05-22 10:58:45 -07:00
c98e4d1a2a perf(lsp): locations_to_items use libuv for unloaded buffers to get line 2021-05-22 18:56:48 +02:00
5b2be75256 Merge pull request #14269 from fdschmidt93/fix/document_symbol_range
fix(lsp): prefer selectionRange over range for document symbols in vim.lsp.util.symbols_to_items
2021-05-22 09:18:03 -07:00
9c7ad33006 Merge pull request #14603 from folke/format_on_save
fix(lsp): allow apply_text_edits to append text (insert at last line)
2021-05-22 09:13:06 -07:00
449bbf5540 Merge pull request #14601 from janlazo/vim-8.1.2320
vim-patch:8.1.{2320,2339},8.2.{946,1591,2875}
2021-05-22 10:12:42 -04:00
486050ebc9 vim-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 vim/vim#8231)
5cf94577cf
2021-05-21 23:01:11 -04:00
39fdb86832 vim-patch:8.2.0946: cannot use "q" to cancel a number prompt
Problem:    Cannot use "q" to cancel a number prompt.
Solution:   Recognize "q" instead of ignoring it.
eebd555733
2021-05-21 23:01:11 -04:00
4dadbe64a0 vim-patch:8.2.1591: using winheight('.') in tests works but is wrong
Problem:    Using winheight('.') in tests works but is wrong.
Solution:   Use winheight(0). (issue vim/vim#6863)
c05d1c043a
2021-05-21 20:04:39 -04:00
994cc931d1 vim-patch:8.1.2339: insufficient testing for quickfix
Problem:    Insufficient testing for quickfix.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#5261)
70077dd1ca

TODO:
Debug the following off-by-one error:
call assert_equal(repeat('m', 1024), l[0].module)
2021-05-21 20:04:38 -04:00
83e48174e6 vim-patch:8.1.2320: insufficient test coverage for quickfix
Problem:    Insufficient test coverage for quickfix.
Solution:   Add more tests.  Fix uncovered problem. (Yegappan Lakshmanan,
            closes vim/vim#5238)
f9ae154c51
2021-05-21 20:04:38 -04:00
6dd04ed5f6 doc/options: Removed vim-only text from ambiwidth. (#14602)
NeoVim always includes all features and doesn´t have termcap-options (t_u7).
2021-05-21 19:59:48 -04:00
efe33fc799 Merge pull request #14604 from folke/master
feat(lsp): use same formatting for `signature_help` as `hover`
2021-05-21 11:17:17 -07:00
bfdd750fce feat(lsp): use fancy_floating_markdown for signature_help 2021-05-21 19:55:30 +02:00
02390af5a6 fix(lsp): clear current_syntax before formatting fancy markdown region 2021-05-21 19:18:22 +02:00
262645b325 fix(lsp): preview_location options and syntax fallback 2021-05-21 19:16:50 +02:00
d09f53d8ec fix(lsp): allow apply_text_edits and set_lines to insert text after the last line. Fixes #14017 2021-05-21 09:06:00 +02:00
75992f2ad9 Merge pull request #14596 from folke/master
lsp: `lsp.util.fancy_floating_markdown` improvements
2021-05-20 23:41:34 -07:00
de96626ad4 Fixed ttimeout documentation. (#14600)
ttimeout is a boolean. The correct command for this line is ":set ttimeoutlen=9999"
2021-05-20 18:39:41 -04:00
07f54201c7 feat(lsp): lsp.util.fancy_floating_markdown improvements
fix: fancy_floating_markdown: syn region must include keepend to make sure syntax regions are applied correctly. Fixes #14594

feat: fancy_floating_markdown: handle <pre></pre> code blocks as a markdown code block with plaintext

fix: possible nil check for markdown code blocks till end of buffer

refactor: only one check is needed to see if stripped[h.finish +1] is valid

fix(lsp): dont't set doc ownsyntax, since it breaks contained syntaxes. Set regions for the markdown blocks intsead

fix: apply markdown formatting for code blocks without a language

fix: use markdownCodeBlock when no language was set in a code block
2021-05-21 00:34:30 +02:00
713eaaed06 Merge pull request #14490 from kevinhwang91/qftf
vim-patch: 8.2.{0869,0933,0959} - port quickfixtextfunc
2021-05-20 17:54:52 -04:00
3bd9cce368 Merge pull request #14575 from vigoux/virtualedit-bytes
fix(bufupdate): send events when inserting with virtualedit
2021-05-20 20:05:25 +02:00
d29148ffd8 Merge remote-tracking branch 'origin/master' into qftf 2021-05-20 21:15:31 +08:00
2dc0f81271 fixup! vim-patch:8.2.0959: using 'quickfixtextfunc' is a bit slow 2021-05-20 11:34:10 +08:00
5d9c560127 Merge pull request #14538 from jamessan/vim-patch.sh-fixup
fix(vim-patch.sh -m): Show all commits touching a file, not just the first
2021-05-19 22:51:00 -04:00
cf714bf418 vim-patch.sh -m: Ignore changes to version.c
[skip ci]
2021-05-19 22:50:05 -04:00
86d35bef13 fix(vim-patch.sh -m): Show all commits touching a file, not just the first
[skip ci]
2021-05-19 22:50:05 -04:00
216bfa1d6b Merge pull request #14579 from jamessan/windows-env-vars
Deduplicate env var names on Windows
2021-05-19 22:46:42 -04:00
30befcdce4 Merge pull request #14592 from janlazo/vim-8.2.2869
vim-patch:8.2.{2869,2871}
2021-05-19 21:36:31 -04:00
49ab1b91e7 Remove '- 1' for sizes passed to xstrlcpy
xstrlcpy() NUL-terminates the destination string
such that reducing the destination string length by 1
to reserve the last byte for NUL is pointless.

https://github.com/neovim/neovim/pull/14490#discussion_r635661185
2021-05-19 21:09:53 -04:00
003cda2312 vim-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 vim/vim#8227)
4781d6fd86
2021-05-19 20:58:09 -04:00
5fd605e1d1 vim-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 vim/vim#8197)
485b627100
2021-05-19 20:44:06 -04:00
045e47ec55 Merge pull request #14563 from mjlbach/fix_intelephense_langserver
lsp: handle case where CompletionItem.insertTextFormat is nil
2021-05-19 12:39:44 -07:00
abf2ffd1e1 Merge pull request #12076 from bfredl/luavar
use new conversion rules for vim.g, vim.v
2021-05-19 19:54:09 +02:00
7fbf3bf18b lua: use proper conversion of vim.g values 2021-05-19 19:29:19 +02:00
6deae3d14b fix(health/python3): remove obsolete check (#14590)
Python 3.3 reached its end-of-life 2017-09-29:

  https://www.python.org/dev/peps/pep-0398

Closes https://github.com/neovim/neovim/issues/14586
2021-05-19 19:26:15 +02:00
f6a86a3d7d Merge pull request #14589 from mhinz/revert-smarter-tagstack
Unfortunately, there are some subtle bugs in the smarter tagstack changes,
so we'll revert them for now and try to come up with a better approach.

One of the added tests, adds current position to jumplist before jumping,
is valuable though and changed to still work after reverting the other two
commits.

Closes #14571
2021-05-19 18:58:21 +02:00
edd48f57aa Merge pull request #14583 from cbarrete/unsupported-call-hierarchies
lsp: handle unsupported call hierarchy call
2021-05-19 09:39:44 -07:00
19d4926f5a vim-patch:8.2.0959: using 'quickfixtextfunc' is a bit slow
Problem:    Using 'quickfixtextfunc' is a bit slow.
Solution:   Process a list of entries. (Yegappan Lakshmanan, closes vim/vim#6234)
00e260bb6c
2021-05-20 00:24:22 +08:00
00246d7be5 vim-patch:8.2.0933: 'quickfixtextfunc' does not get window ID of location list
Problem:    'quickfixtextfunc' does not get window ID of location list.
Solution:   Add "winid" to the dict argument. (Yegappan Lakshmanan,
            closes vim/vim#6222)
7ba5a7eff3
2021-05-20 00:19:25 +08:00
ebe1a08366 vim-patch:8.2.0869: it is not possible to customize the quickfix window contents
Problem:    It is not possible to customize the quickfix window contents.
Solution:   Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes vim/vim#5465)
858ba06d5f
2021-05-20 00:16:07 +08:00
ca336c681d lsp: handle unsupported call hierarchy call 2021-05-19 11:55:03 -04:00
9051064672 test(lsp_spec): improve correctness
References https://github.com/neovim/neovim/issues/14571
2021-05-19 16:35:02 +02:00
34922fba6b Revert "lsp: make tagstack smarter motion-wise (#12262)"
This reverts commit 8885ea7f24.
2021-05-19 15:33:32 +02:00
3e5c484ec5 Revert "lsp: fix regression in jump_to_location() (#14446)"
This reverts commit 993ca90c9b.
2021-05-19 15:31:41 +02:00
52ca7f1a26 Merge pull request #14585 from littlepoco/master
Update README.md
2021-05-19 07:34:49 +02:00
e2af1a7da3 Update README.md 2021-05-19 11:46:37 +08:00
d16e9d8ed4 Merge pull request #14582 from bfredl/gender
docs: fix some remanining cases of gender pronoun for "the user"
2021-05-18 23:45:46 +02:00
ef9d3e6791 docs: fix some remanining cases of gender pronoun for "the user"
Adapted from original PR by:
Co-Author: Mathias Jean Johansen <mathias@mjj.io>
2021-05-18 22:47:17 +02:00
237175cf20 fix(bufupdate): send events when inserting with virtualedit
Problem first raised
https://github.com/nvim-treesitter/nvim-treesitter/issues/1304
2021-05-18 19:31:56 +02:00
c46d981461 Merge pull request #14580 from jamessan/title-stack
fix(tui): Stop sending extra parameter for save/restore title
2021-05-18 11:57:12 -04:00
88ee095d42 fix(job): Deduplicate env var names on Windows
Windows handles environment variable names case-insensitively (i.e.,
%Path% can be accessed via %PATH%).  Since nvim explicitly creates the
environment block for jobs, we need to ensure it doesn't contain
duplicate names with different cases (e.g., both %Path% and %PATH%) as
that can confuse processes using the environment.

`f_environ()` now converts all env var names to upper-case on Windows,
since it does duplicate detection and also provides the base environment
for jobs.  Similarly, `create_environment()` converts any env var names
supplied in the job opts to upper-case so they can be compared against
what we get from `f_environ()`.

Closes #14541
2021-05-18 08:53:08 -04:00
0368591bb4 fix(tui): Stop sending extra parameter for save/restore title
Closes #14573
2021-05-18 07:18:50 -04:00
d250905c69 test(job_spec): Test handling of case-insensitively matching env vars
Since Windows is case-insensitive, there should only be a single env var
in visible in the resulting job.  However, non-Windows should see both.
2021-05-18 06:53:03 -04:00
c40de6e5f5 feat(ci): autolabel pull requests (#14574)
autolabel pull requests depending on which files are modified
2021-05-18 09:37:18 +02:00
dc18c1e3ee win/package: update wintools.zip for curl v7.76.1 (#14570)
https://github.com/neovim/neovim/issues/14078
2021-05-17 14:57:46 +02:00
63df353545 lsp: handle case where CompletionItem.insertTextFormat is nil
* Update tests to use explicit insertTextFormat for snippets
2021-05-16 15:25:34 -07:00
e0a01bdf7f Update vim diff and credits (#14566)
Patch 8.2.2524 added the support for the fields 'foldopen', 'foldclose'
and 'foldsep' to the 'fillchars' option in Vim:

http://ftp.vim.org/pub/vim/patches/8.2/8.2.2524

Update the credits in intro.txt based on Vim credits.
2021-05-16 13:55:53 -04:00
dab6b08a1e Merge pull request #14406 from shadmansaleh/vim-8.2.0877
vim-patch:8.2.{0877, 0880, 0884, 0887, 0896} - port searchcount()
2021-05-15 20:57:50 -04:00
6ab83f3572 Add 'FUNC_ATTR_NONNULL_RET' to nonnull alloc funcs (#14559) 2021-05-15 20:36:13 -04:00
d67dcaba02 vim-patch:8.2.2854: custom statusline cannot contain % items (#14558)
Problem:    Custom statusline cannot contain % items.
Solution:   Add "%{% expr %}". (closes vim/vim#8190)
30e3de21fc
2021-05-15 13:10:41 -04:00
0cd1430316 Merge pull request #14468 from bfredl/zindex
[WIP] z-index!
2021-05-15 14:44:22 +02:00
edb5864a29 floats: z-index 2021-05-15 13:56:27 +02:00
c57a85d534 Merge pull request #14532 from janlazo/vim-8.1.1433
vim-patch:8.0.1394,8.1.1967,8.2.{23,1000,1059,2354,2419,2433,2473,2850}
2021-05-14 18:50:44 -04:00
ba04b3d838 Merge pull request #14555 from mickael-menu/fix/range-code-action
lsp: Fix range end offset off by one character
2021-05-14 12:30:47 -07:00
c23640140d lsp: Fix range end offset off by one character 2021-05-14 18:33:23 +02:00
7c95697026 treesitter: add predicate "any-of?" (#14344)
For the case of Clojure and other Lisp syntax highlighting, it is
necessary to create huge regexps consisting of hundreds of symbols with
the pipe (|) character. To make things more difficult, these Lisp
symbols sometimes consists of special characters that are themselves
part of special regexp characters like '*'. In addition to being
difficult to maintain, it's performance is suboptimal.

This patch introduces a new predicate to perform 'source' matching in
amortized constant time. This is accomplished by compiling a hash table
on the first use.
2021-05-14 17:41:20 +02:00
520b925627 vim-patch:8.2.2850: recalling commands from history is not tested
Problem:    Recalling commands from history is not tested.
Solution:   Add tests. (closes vim/vim#8194)
71c6f7a665
2021-05-13 23:57:24 -04:00
5110ef9171 fixup! vim-patch:8.1.1228: not possible to process tags with a function 2021-05-13 21:00:28 -04:00
30987b9190 fixup! vim-patch:8.0.1449: slow redrawing with DirectX 2021-05-13 21:00:28 -04:00
cc798c626a vim-patch:8.0.1394: cannot intercept a yank command
Problem:    Cannot intercept a yank command.
Solution:   Add the TextYankPost autocommand event. (Philippe Vaucher et al.,
            closes vim/vim#2333)
7e1652c63c
2021-05-13 20:47:27 -04:00
c9195a1273 vim-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.
8c6951fa28

N/A patches for version.c:

vim-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.
b7e2670b6a
2021-05-13 20:47:26 -04:00
e9804aead6 lint 2021-05-13 20:47:26 -04:00
07f6f12cf5 vim-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.
b63f3ca66d
2021-05-13 20:47:26 -04:00
3f9fa730ce vim-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().
d697ddea14
2021-05-13 20:47:26 -04:00
1ca89a60d8 vim-patch:8.2.2359: strange test failure with MS-Windows
Problem:    Strange test failure with MS-Windows.
Solution:   Skip the system() call for now.
e2924328c1
2021-05-13 20:47:26 -04:00
f98433d82a vim-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 vim/vim#7674)
797e63b9f2
2021-05-13 20:47:26 -04:00
4338077632 Revert "XXX: ex_tabonly(): aucmd_win is not part of the window list."
This reverts commit 7214d0bc84.

Cannot test patch v8.2.1059 without reverting this commit.
2021-05-13 20:47:25 -04:00
f54a938271 vim-patch:8.2.1059: crash when using :tabonly in an autocommand
Problem:    Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan)
Solution:   Do not allow the autocommand window to be closed.
cf8441704d

E813 error message does not mention 'popup' window
because Neovim floating window are regular windows, unlike Vim popups.

https://github.com/neovim/neovim/pull/14532#discussion_r631731829
2021-05-13 20:46:00 -04:00
7339290900 vim-patch:8.2.1000: get error when leaving Ex mode with :visual
Problem:    Get error when leaving Ex mode with :visual and a CmdLineEnter
            autocommand was used.
Solution:   Reset ex_pressedreturn. (closes vim/vim#6293)
158ea175a9
2021-05-12 19:13:28 -04:00
d5b9a7d6e8 vim-patch:8.2.0023: command line editing not sufficiently tested
Problem:    Command line editing not sufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#5374)
59cb041d0a

Ported to commit test_ex_mode.vim for later patches.
Test fails because feedkeys() filters out modifier keys on output.
2021-05-12 19:13:28 -04:00
dad725d5e5 vim-patch:8.1.1967: line() only works for the current window
Problem:    Line() only works for the current window.
Solution:   Add an optional argument for the window to use.
8e0a8e7eb7
2021-05-12 19:13:28 -04:00
89e29e8774 fixup! refactor nvim_buf_set_lines to use extmark_splice 2021-05-12 19:13:28 -04:00
61aefaf299 Merge pull request #14534 from mhinz/fix-win-ci
ci: fix stalling Windows builds
2021-05-11 20:32:05 -04:00
4ba3d059bf Revert "vim-patch:8.1.1378: delete() can not handle a file name that looks like a pattern (#12784)"
This reverts commit 4be0e92db0.

Unfortunately, that commit stalled the Windows builds on GHA and likely requires
other patches to work properly.
2021-05-12 00:47:21 +02:00
7d82ea0102 Merge pull request #14243 from shadmansaleh/Allow_cterm_colors_nvim_set_hl
API: Adding cterm support to nvim_set_hl
2021-05-11 15:07:00 +02:00
5c9b4948d4 treesitter: do not escape in match? (#14382) 2021-05-11 11:52:47 +02:00
7af26e5116 Revert "api/window: use the "noblock" variants in nvim_win_set_buf"
This reverts commit 1def3d1542.

Plugins may depend on catching the following events
when creating windows:
- BufWinEnter
- BufEnter
- BufLeave

Risky to introduce this breaking change on 0.5 release
when 0.5 release should be out by now.

https://github.com/asvetliakov/vscode-neovim/issues/632#issuecomment-837201224
2021-05-10 18:32:26 -04:00
133351cbf8 Merge pull request #14528 from disrupted/fix/nvim_buf_set_lines
Fix nvim_buf_set_lines
2021-05-10 23:18:14 +02:00
7b0edaac56 lua: use WarningMsg for vim.notify() warnings (#14508) 2021-05-10 14:26:39 +02:00
81dc647961 Apply patch from clason 2021-05-10 13:47:22 +02:00
e5c22f6347 Fix nvim_buf_set_lines 2021-05-10 13:31:06 +02:00
5ea9cbc280 Update the functio documentation in C 2021-05-10 11:27:48 +02:00
26139d3085 Merge pull request #14501 from chentau/extmark_setlines
Refactor nvim_buf_set_lines to use `extmark_splice` instead of `extmark_adjust`
2021-05-10 09:37:47 +02:00
13a9bd006f make get_region_bytecount end-exclusive 2021-05-09 16:23:01 -07:00
a847abc21b refactor nvim_buf_set_lines to use extmark_splice 2021-05-09 16:22:20 -07:00
d2be261e8d Merge pull request #14403 from seandewar/vim-8.2.1933
vim-patch:8.2.{0174,1933,1935,1946,2286,2287}
2021-05-09 17:08:21 -04:00
2bb22ce567 STRLEN -> strlen 2021-05-09 07:18:54 +06:00
1f952e34f2 Use bool for boolean values 2021-05-09 06:51:59 +06:00
da22be9f33 vim-patch:8.2.0896: crash when calling searchcount() with a string
Problem:    Crash when calling searchcount() with a string.
Solution:   Check the argument is a dict. (closes vim/vim#6192)
14681627f3
2021-05-09 06:37:02 +06:00
973ecd8e90 vim-patch:8.2.0887: searchcount().exact_match is 1 right after a match
Problem:    Searchcount().exact_match is 1 right after a match.
Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes vim/vim#6189)
57f75a5a36
2021-05-09 06:37:02 +06:00
5c404ad0fa vim-patch:8.2.0884: searchcount() test fails on slower systems
Problem:    Searchcount() test fails on slower systems.
Solution:   Set a longer timeout.
ea6561af92
2021-05-09 06:37:01 +06:00
420344324e vim-patch:8.2.0880: leaking memory when using searchcount()
Problem:    Leaking memory when using searchcount().
Solution:   Free the last used search pattern.
109aece79d
2021-05-09 06:37:01 +06:00
e498f265f4 vim-patch:8.2.0877: cannot get the search statistics
Problem:    Cannot get the search statistics.
Solution:   Add the searchcount() function. (Fujiwara Takuya, closes vim/vim#4446)
e8f5ec0d30

Additional changes:
- Tests weren't passing because the test ran assuming the cursor was at
  start of buffer but append() left the cursor at end of buffer .
  So cursor is moved to start of buffer after append.
- searchcount() added to list of builtin functions.
2021-05-09 06:37:01 +06:00
f8173df4d7 Merge pull request #14517 from janlazo/vim-8.2.2838
vim-patch:8.2.{2838,2839}
2021-05-08 12:54:31 -04:00
cd5fde6e6c neovim-qt: v0.2.16.1 (#14514)
nvim-qt --help/version should work without $DISPLAY

https://github.com/equalsraf/neovim-qt/compare/v0.2.16...v0.2.16.1
2021-05-08 12:17:25 -04:00
ec04d37188 vim-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 vim/vim#8180)
5631836975
2021-05-08 08:23:44 -04:00
6fcd96250b vim-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 vim/vim#8177)
e3e598e82b
2021-05-08 08:17:49 -04:00
a257f00f75 Minor observational corrections to the set_extmark documentation
Add a note for the line and col, saying they are 0-based.
The end_col appears to be exclusive, unline the end_line.
2021-05-07 15:27:38 +02:00
5165513198 Merge pull request #13664 from ivechan/win_exectute
vim-patch:8.1.{1418,1425,1832,2124},8.2.{0137, 2340}
2021-05-07 08:34:28 -04:00
4be0e92db0 vim-patch:8.1.1378: delete() can not handle a file name that looks like a pattern (#12784)
Problem:    Delete() can not handle a file name that looks like a pattern.
Solution:   Use readdir() instead of appending "/*" and expanding wildcards.
            (Ken Takata, closes vim/vim#4424, closes vim/vim#696)
701ff0a3e5
2021-05-07 08:07:13 -04:00
17434b88b4 checkhealth: ignore 'wildignore' when seeking executables (#14495)
Certain values of 'wildignore', .e.g `*/node_modules/**`, would make the
provider checks not find the right executables.

Fixes https://github.com/neovim/neovim/issues/14388
2021-05-07 11:07:07 +02:00
8c9f0f1da1 Merge pull request #14502 from chentau/extmark_paste
Splice extmarks on every line for block visual paste
2021-05-07 10:52:36 +02:00
37c8067226 splice extmarks on every line for block visual paste 2021-05-06 20:40:26 -07:00
21035cff9f Merge pull request #14500 from jamessan/coverity-fixes
Various Coverity fixes
2021-05-06 19:28:36 -04:00
efed75f916 coverity/331377: os_fopen: Remove invalid iflags assert
If the O_* flags were non-zero, then ORing the flags would always be
true.  However, the O_* flags aren't guaranteed to be non-zero, so the
assert is invalid in the first place.
2021-05-06 18:57:22 -04:00
d9eaca99be coverity/331399: Remove unused "term_name" member from PtyProcess 2021-05-06 18:57:22 -04:00
d4fd139c2a coverity/331366: fname_trans_sid: Avoid buffer overrun
Since we're printf()ing into an offset of fname_buf, we need to reduce
the max length by the same amount.
2021-05-06 18:57:21 -04:00
a3e914b64c Merge pull request #14507 from fsouza/add-test-for-jumplist-fix
lsp: add a test for the jump_to_location + jump list fix
2021-05-06 15:57:10 -07:00
9bdbac6712 coverity/331382: Allocate enough space for trailing NUL 2021-05-06 18:56:57 -04:00
f6d4226f4d coverity/188735: last_nonfloat: Ensure wp is non-NULL before dereferencing 2021-05-06 18:56:56 -04:00
833a6fcb60 coverity/331378: Fix inserting new decor provider
Since the providers are ordered by ns_id, inserting a new provider may
require shifting existing providers around to maintain this ordering.

When this happens, we need to allocate a new element at the end of the
vector and then shift the larger elements to the right.  Rather than
iterating (incorrectly) with a loop and copying each item, use memmove
to copy the entire block.
2021-05-06 18:56:56 -04:00
9149fe48a9 lsp: add a test for the jump_to_location + jump list fix 2021-05-06 17:56:24 -04:00
1def3d1542 api/window: use the "noblock" variants in nvim_win_set_buf
after commit 92c6383cdca977("vim-patch:8.1.1425: win_execute() does not set window pointers properly"),
nvim_win_set_buf can use switch_win_noblock and restore_win_noblock.
It makes nvim_win_set_buf don't block autocmds so that it will be more
"without side-effects" as said in help text.

Signed-off-by: jing <lhchenjw@gmail.com>
2021-05-06 23:45:16 +08:00
03b3ff8610 vim-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 vim/vim#7665)
37487e16da
2021-05-06 23:45:16 +08:00
8fecc5fab8 vim-patch:8.2.0137: crash when using win_execute() from a new tab
Problem:    Crash when using win_execute() from a new tab.
Solution:   Set the tp_*win pointers. (Ozaki Kiichi, closes vim/vim#5512)
a44b3eeafa
2021-05-06 23:45:16 +08:00
ec3524da29 vim-patch:8.1.2124: ruler is not updated if win_execute() moves cursor
Problem:    Ruler is not updated if win_execute() moves cursor.
Solution:   Update the status line. (closes vim/vim#5022)
345f28df54
2021-05-06 23:45:16 +08:00
73154bbae0 vim-patch:8.1.1832: win_execute() does not work in other tab
Problem:    Win_execute() does not work in other tab. (Rick Howe)
Solution:   Take care of the tab. (closes vim/vim#4792)
820680b9ff
2021-05-06 23:45:16 +08:00
3c00252248 vim-patch:8.1.1440: win_execute() test fails
Problem:    Win_execute() test fails.
Solution:   Adjust the expected error number.  Move to popup test.
2d247849ce
2021-05-06 23:45:16 +08:00
97abf8ee63 vim-patch:8.1.1425: win_execute() does not set window pointers properly
Problem:    Win_execute() does not set window pointers properly.
Solution:   Use switch_win_noblock().  Also execute autocommands in a popup
            window.
89adc3a137
2021-05-06 23:45:16 +08:00
f6518e5516 vim-patch:8.1.1418: win_execute() is not implemented yet
Problem:    Win_execute() is not implemented yet.
Solution:   Implement it.
868b7b6712
2021-05-06 23:44:47 +08:00
71107e12c7 Merge pull request #14499 from janlazo/vim-8.2.2819
vim-patch:8.0.1309,8.2.{1166,2819,2820,2825,2827,2828,2829,2832,2833}
2021-05-06 09:00:24 -04:00
296711cfad vim-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.
df36514a64
2021-05-06 00:55:30 -04:00
dad17caa87 lint 2021-05-06 00:42:20 -04:00
de299724cd vim-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().
3a00659db7
2021-05-06 00:32:35 -04:00
0be0f9895d vim-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 vim/vim#8176)
1ad72c8eb6
2021-05-06 00:31:18 -04:00
f70ecbd4dc vim-patch:8.2.1166: once mouse move events are enabled getchar() returns them
Problem:    Once mouse move events are enabled getchar() returns them.
Solution:   Ignore K_MOUSEMOVE in getchar(). (closes vim/vim#6424)
ae97b94176
2021-05-06 00:26:37 -04:00
51403d6d41 vim-patch:8.0.1309: cannot use 'balloonexpr' in a terminal
Problem:    Cannot use 'balloonexpr' in a terminal.
Solution:   Add 'balloonevalterm' and add code to handle mouse movements in a
            terminal. Initial implementation for Unix with GUI.
51b0f3701e
2021-05-06 00:19:10 -04:00
4910ac9ab8 vim-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.
97a6c6a1fb
2021-05-05 22:59:40 -04:00
5c6018ba2f vim-patch:8.2.2827: test file was not deleted
Problem:    Test file was not deleted.
Solution:   Uncomment the delete() call. (Dominique Pellé, closes vim/vim#8172)
5f8ed7408a
2021-05-05 22:57:47 -04:00
7d2e76e333 vim-patch:8.2.2825: code in checkreadonly() not fully tested
Problem:    Code in checkreadonly() not fully tested.
Solution:   Add more tests. (Dominique Pellé, closes vim/vim#8169)
2bf6034e5c
2021-05-05 22:54:17 -04:00
44a331c36b vim-patch:8.2.2820: session file may divide by zero
Problem:    Session file may divide by zero.
Solution:   Avoid writing difide by zero. (closes vim/vim#8162)
b6c2e9a010

Avoid typecasts if possible.
Use PRIdLINENR, PRId64, to format line numbers.
2021-05-05 22:50:57 -04:00
dd935e1473 vim-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 vim/vim#8160)
4934ed34c3
2021-05-05 22:06:10 -04:00
8a93d1028f Merge pull request #14497 from jamessan/ci-updates
ci(coverity): Fix typo in tar command
2021-05-05 12:55:17 -04:00
7ae1417ad5 ci(coverity): Fix typo in tar command
[skip ci]
2021-05-05 12:54:47 -04:00
554468cc03 Merge pull request #14493 from jamessan/ci-updates 2021-05-05 11:48:08 -04:00
3bebe60121 ci(gha): Run ci workflow for PRs into release branches 2021-05-05 09:21:12 -04:00
d399a853a3 Exclude .github/ and CI files from exported archives
These are only relevant for GitHub, not published tarballs.
2021-05-05 08:59:12 -04:00
26f5b979ec ci(gha): Add weekly Coverity scans
[skip ci]
2021-05-05 08:54:03 -04:00
7fcc596557 Merge pull request #14483 from mjlbach/floating_window_border_fix
window.c: fix floating window border width calculation
2021-05-05 07:09:04 +02:00
1c2e504d5c Merge pull request #14492 from seandewar/gcc-conv-warn
fix(gcc): compile warning in nvim_buf_set_extmark
2021-05-05 07:04:43 +02:00
b274b9887a fix(gcc): compile warning in nvim_buf_set_extmark 2021-05-05 02:15:51 +01:00
4ad30f775e Merge pull request #14424 from janlazo/vim-8.1.1726
vim-patch:8.1.1726,8.2.{296,860,1827,2388,2788,2790,2801}
2021-05-04 19:18:16 -04:00
ca058082ae tests: floating windows terminate border on edge of viewport when window extends past viewport 2021-05-04 15:43:53 -07:00
63d8a8f4e8 Merge pull request #14480 from mhinz/issue-template
template: make sure people read `:h vim-differences`
2021-05-04 09:38:08 -04:00
c2624b87cb Merge pull request #14486 from Sh3Rm4n/fix_get_str_line
get_str_line: Replace grow_array usage
2021-05-04 09:37:25 -04:00
d5b063aec1 Revert vim-patch:942db23c9cb7 for phpcomplete.vim
It targets Vim 8.2 without feature and version checks.
2021-05-04 07:28:24 -04:00
c9567704b7 get_str_line: Replace grow_array usage
A single xmemdupz is sufficient, as it is already
zero-terminating the string
2021-05-03 22:53:13 +02:00
3fc71ea228 Merge pull request #14418 from DerekStride/treesitter-set-directive
[RDY] tree-sitter ensure there is a nested table allocated for `#set!`
2021-05-03 21:41:39 +02:00
d45e168a1d window.c: fix floating window border width calculation
* lift calculation of w_border_adj into win_config_float
* Check max floating window height and width against
  w_{height,width}_outer when positioning window
2021-05-03 00:29:49 -07:00
ad81144442 Merge pull request #14334 from DarwinSenior/vim.log
lsp: deep copy vim.lsp.log when reloading
2021-05-02 23:40:34 -07:00
0ee52fba31 ci(gha/ci): Use clang-12 for TSAN 2021-05-02 22:24:28 -04:00
a0da4c3a49 Merge pull request #14455 from Sh3Rm4n/fix_get_str_line
[RDY] Fix get str line
2021-05-02 16:47:36 -04:00
14c692bc82 ci(gha/release): Bump to ubuntu-18.04
Per https://wiki.ubuntu.com/Releases, 16.04 is no longer under standard
support.  Switch to the next LTS, 18.04, for the next couple years.
2021-05-02 16:27:37 -04:00
cfaf666ac9 Merge pull request #14462 from kabouzeid/feature/formatting_seq_sync
[LSP] Support for sequential formatting with multiple clients
2021-05-02 12:52:27 -07:00
ad6bb386be vim-patch:4c295027a426
Update runtime files
4c295027a4
2021-05-02 13:00:38 -04:00
d19ede86ea vim-patch:8.2.2790: filetype test fails
Problem:    filetype test fails
Solution:   Also update the scripts detection
63276685f9
2021-05-02 12:54:06 -04:00
0020858e1c vim-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 vim/vim#8120)
3f88e71fa2
2021-05-02 12:54:02 -04:00
3bc852cabf vim-patch:11e3c5ba8203
Update runtime files
11e3c5ba82
2021-05-02 12:53:49 -04:00
7e36c9a2d3 vim-patch:56994d215815
Update runtime files.
56994d2158
2021-05-02 12:44:04 -04:00
abb13dde98 vim-patch:130cbfc31235
Update runtime files
130cbfc312
2021-05-02 12:03:34 -04:00
b8f3ef10c9 vim-patch:dad4473f02e1
Update runtime files.
dad4473f02

Omit :echoconsole. Patch v8.2.2638 is not ported.
2021-05-02 11:51:38 -04:00
bcf03affbd Increase default LSP sync timeout to 1000ms 2021-05-02 17:08:57 +02:00
eea3a692c6 vim-patch:c8cdf0f80b3c
Update runtime files.
c8cdf0f80b
2021-05-02 10:33:32 -04:00
d923f38882 Add client.request_sync doc 2021-05-02 16:24:58 +02:00
6a8436065c vim-patch:9faec4e3d439
Update runtime files.
9faec4e3d4

Omit vim9.
2021-05-02 10:23:35 -04:00
f0f3fddcdd Synchronous formatting methods notify the user on timeout and interrupted 2021-05-02 16:16:49 +02:00
dc9c6ea219 Support multiple range formatting clients 2021-05-02 15:37:31 +02:00
54368736d0 doc clarification 2021-05-02 15:23:13 +02:00
04a33c1d9a template: make sure people read :h vim-differences 2021-05-02 13:52:01 +02:00
2081504a33 vim-patch:942db23c9cb7
Update runtime files
942db23c9c

Omit po files.
2021-05-01 23:47:11 -04:00
ac83c6eba6 vim-patch:e0e391755432
Update runtime files.
e0e3917554
2021-05-01 23:19:58 -04:00
8f8602d2df vim-patch:98a29d00a48e
Update runtime files.
98a29d00a4
2021-05-01 23:19:57 -04:00
dd2bc06411 vim-patch:82be4849eed0
Update runtime files.
82be4849ee
2021-05-01 23:19:57 -04:00
c1dd4e83b4 vim-patch:7e6a515ed14e
Update runtime files.
7e6a515ed1

Omit vim9.
2021-05-01 22:29:03 -04:00
b1cd67b62e vim-patch:4072ba571bab
Update runtime files.
4072ba571b

Omit vim9 references.
Omit assert_fails(). Patch v8.2.1183 is not ported yet.
2021-05-01 22:29:03 -04:00
710f0eae2f vim-patch:1b884a005398
Update runtime files.
1b884a0053

Omit doc/autocmd.txt.
Omit tools/emoji_list.vim. Patch v8.2.1540 is not ported.
2021-05-01 22:29:03 -04:00
83b6a18598 vim-patch:23515b4ef758
Update runtime files
23515b4ef7

Omit filetype.txt changes for :Man.
2021-05-01 22:29:03 -04:00
0c93005383 vim-patch:4466ad6baa22
Update runtime files
4466ad6baa

Omit vim9 references in autocmd.txt.
Omit matchfuzzypos().
2021-05-01 22:29:02 -04:00
2ebd1f6286 vim-patch:3132cddd209e
Update runtime files
3132cddd20

Omit :sort,sort() changes.
2021-05-01 22:29:02 -04:00
330500a5bf vim-patch:cb80aa2d53e5
Update runtime files.
cb80aa2d53

Omit runtime/doc/tabpage.txt.
Patch v8.2.1401 is not ported yet.

Port optwin.vim changes without gettext().
Patch v8.2.1544 is not ported yet.
2021-05-01 22:29:02 -04:00
b227cedf82 signs: fix overflow during adjustment on Windows (#14472)
On Windows, `new_lnum + MAXLNUM` causes overflow and as a result the
line number of that sign becomes invalid negative number. This occurs
when the `set signcolumn=yes`, in other words `signcolumn` is not `auto`
and the sign column is less than 2 columns.

The related change was made in the commit
f2ed7605da. Originally the above addition
is only executed if `amount != MAXLNUM`, so reintroducing this check
fixes the bug and will hardly produces a new bug.

Fixes https://github.com/neovim/neovim/issues/14460
2021-05-02 00:35:52 +02:00
48a59f8f4f Add formatting_seq_sync, change formatting and formatting_sync 2021-05-01 21:12:40 +02:00
b16c7c515c vim-patch:4f4d51a942cc
Update runtime files.
4f4d51a942

Omit "??" operator.
Patches v8.2.1794,v8.2.1798 are not ported yet.
2021-05-01 14:22:52 -04:00
993ca90c9b lsp: fix regression in jump_to_location() (#14446)
This fixes a regression that was introduced in [1] by accidentally leaving out a line.

1: https://github.com/neovim/neovim/pull/12262
2021-05-01 19:28:21 +02:00
ef81999f4e fix: make nvim_win_get_number() return win number (#14470)
Closes https://github.com/neovim/neovim/issues/14467
2021-05-01 16:57:05 +02:00
27da5511a0 docs: Treesitter (#13260)
* doc & fixes: Generate treesitter docs

* fixup to treesitter-core

* docs(treesitter): fix docs for most functions

Co-authored-by: Thomas Vigouroux <tomvig38@gmail.com>
2021-05-01 08:19:48 -04:00
ca6107cfbc doc: update vim.cmd() (#14450) 2021-05-01 13:09:05 +02:00
9d4250d43d Merge pull request #14380 from bfredl/virtcol
decorations: right_align and win_col
2021-05-01 12:39:15 +02:00
0865f1238f decorations: right_align and win_col 2021-05-01 11:48:04 +02:00
b084f49496 vim-patch:8.2.1827: filetype detection does not test enough file names
Problem:    Filetype detection does not test enough file names.
Solution:   Test more file names. (Adam Stankiewicz, closes vim/vim#7099)
10a1a534d1
2021-05-01 02:27:32 -04:00
e1171cf1d2 vim-patch:d58a3bf7dac8
Update runtime files.
d58a3bf7da

Omit syntax/man.vim.
2021-05-01 02:01:25 -04:00
d1a2523f6c vim-patch:1d59aa1fdfb1
Update runtime files.
1d59aa1fdf
2021-05-01 01:37:13 -04:00
0150cc4160 Merge pull request #14463 from mfussenegger/decoded-result-false
lsp: Allow decoded.result to be `false`
2021-04-30 11:37:47 -07:00
69d4143e7b lsp: Allow decoded.result to be false
Some servers might respond to `workspace/executeCommand` requests with a
boolean result and that could be `false`.

A `false` result should be allowed and not trigger the `on_error`
handler:

    -- Invalid server message
    on_error(client_errors.INVALID_SERVER_MESSAGE, decoded)

Concrete example where this occurred is with eclipse.jdt.ls:

    vim.lsp.buf_request(
      0,
      'workspace/executeCommand',
      {
        command = 'java.project.isTestFile',
        arguments = { vim.uri_from_bufnr(0), },
      },
      function(err, _, resp)
        print(vim.inspect(err), vim.inspect(resp))
      end
    )
2021-04-30 20:17:56 +02:00
388a834a07 Merge pull request #14361 from bfredl/synenable
[WIP] startup: do "syntax enable" instead of "syntax on" after init.vim
2021-04-30 18:07:32 +02:00
b0a1d1eb64 startup: do "syntax enable" instead of "syntax on"
"syntax on" overwrites existing highlight groups, while "syntax enable"
just sets missing groups. This change prevents user defined highlights in
init.vim/lua to get overwritten. The manual recommends "syntax enable" for
new configurations anyway, "on" command was probably used as it is the
implicit default.
2021-04-30 16:48:12 +02:00
4d5516dc05 get_str_line: Simplify growarray usage 2021-04-30 14:42:02 +02:00
f5d1f0bf03 vim-patch:1c6737b20a5c
Update runtime files.
1c6737b20a
2021-04-29 23:35:37 -04:00
1e03e76daf vim-patch:207f009326c8
Update runtime files.
207f009326

Omit nl.po.
2021-04-29 21:56:34 -04:00
9f54d125d2 vim-patch:3d1cde8a2f28
Update runtime files.
3d1cde8a2f
2021-04-29 21:08:09 -04:00
09f3e62bc6 vim-patch:e7b1ea0276cc
Update runtime files.
e7b1ea0276
2021-04-29 20:42:16 -04:00
59eae3b38f Merge pull request #14459 from jamessan/pvs-script
fix(pvscheck): Switch URL to pvs-studio.com
2021-04-29 20:05:39 -04:00
794a287846 fix(pvscheck): Switch URL to pvs-studio.com
[skip ci]
2021-04-29 20:04:29 -04:00
0a0034718c vim-patch:2547aa930b59
Update runtime files.
2547aa930b

Omit modifyOtherKeys, vim9, vim.man.
2021-04-29 09:27:19 -04:00
ef8afa0eb7 Fix documentation typos for msg_scroll_flush 2021-04-29 12:48:56 +02:00
766f4c3f62 get_str_line: Use heap instead of stack
The stack allocated buffer does introduce an arbitrary limit,
to the length of the line.

Previously, if the line was too long, it might be catched by a
stack smash canary or resulted into a crash.

This is not guaranteed though, and thus could result into undefined
behavior.

To mitigate this, an dynamic allocated buffer is replacing the stack
allocated buffer, with the initial capacity of the copied line.
2021-04-29 11:48:51 +02:00
27fb03f5a0 vim-patch:7ff78465f705
Update runtime files
7ff78465f7
2021-04-28 23:04:14 -04:00
bb172c5104 vim-patch:e46a44050562
Runtime file updates
e46a440505

Omit vim9.
2021-04-28 22:42:43 -04:00
7c6ca6fed8 vim-patch:73fef33014db
Update runtime files
73fef33014

Omit usr_46.txt.
2021-04-28 22:14:37 -04:00
df2acdc3be vim-patch:65e0d77a66b7
Update runtime files
65e0d77a66

Omit usr_46.txt because of vim9.
2021-04-28 21:57:50 -04:00
565783be4b vim-patch:acc224064033
Update runtime files
acc2240640

Omit 'quickfixtextfunc'.
Omit ftplugin/man.vim.
2021-04-28 21:29:57 -04:00
04a4bbbe56 vim-patch:8.2.0860: cannot use CTRL-A and CTRL-X on unsigned numbers
Problem:    Cannot use CTRL-A and CTRL-X on unsigned numbers.
Solution:   Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes vim/vim#6144)
aaad995f83
2021-04-28 21:29:57 -04:00
65821cc1b9 vim-patch:388a5d4f20b4
Update runtime files
388a5d4f20

Omit vim9.
2021-04-28 21:29:57 -04:00
0185625c04 vim-patch:47e13953ffdb
Update runtime files
47e13953ff

Ignore *.rej files, generated by vim-patch.sh.
Source of mistakes for 1st-time contributors.
2021-04-28 21:29:57 -04:00
3d86857f28 vim-patch:2cfb4a2a7248
Update runtime files
2cfb4a2a72
2021-04-28 21:29:56 -04:00
038ce7a5af vim-patch:7ceefb35c811
Update runtime files
7ceefb35c8

Omit {ftplugin,syntax}/man.vim changes.
Omit E565,E578. They depend on patches v8.2.0614, v2.2.0670.
2021-04-28 21:29:56 -04:00
c2635665c5 vim-patch:2c7f8c574f1f
Update runtime files
2c7f8c574f

Omit the following line for man.vim:
hi def link manFooter PreProc
2021-04-28 21:29:56 -04:00
136edab705 screen: fix typo in screen.c
accomodate -> accommodate
2021-04-29 01:45:19 +09:00
9d3576246b vim-patch:8.2.2801: free Pascal makefile not recognized
Problem:    Free Pascal makefile not recognized.
Solution:   Add the fpcmake filetype. (Doug Kearns)
f6d9935a13
2021-04-27 22:54:38 -04:00
e612a0a76a vim-patch:d1caa941d876
Update runtime files
d1caa941d8

Cherry-pick error E452 from patch v8.2.0486.
2021-04-27 22:40:39 -04:00
d894b3da1e vim-patch:191acfdecabf
Update runtime files
191acfdeca

Skip has() changes for the "check" optional argument.
Patch v8.2.0427 is not ported yet.

Skip Vim9 (ex. :def).
2021-04-27 21:47:42 -04:00
c287e734f1 vim-patch:ff78155aa175
Update runtime files
ff78155aa1

Omit menu_info().
2021-04-27 21:31:28 -04:00
e7f6c52014 vim-patch:b17893aa940d
Update runtime files
b17893aa94

Omit feedkeys() changes.
2021-04-27 21:25:35 -04:00
a299f54cd7 vim-patch:eab6dff19f38
Update runtime files
eab6dff19f

Omit de.po translations.
2021-04-27 20:25:21 -04:00
44d4526e18 Ensure there is a nested table allocated for #set!
Fixes the following bug:
```
test/functional/helpers.lua:107: Error executing lua:
vim/treesitter/query.lua:256: attempt to index a nil value
```
2021-04-27 12:29:37 -02:30
95f02cb587 vim-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.
57d5a01cb4
2021-04-27 09:21:36 -04:00
25c0675fe3 vim-patch:8.2.0296: mixing up "long long" and __int64 may cause problems
Problem:    Mixing up "long long" and __int64 may cause problems. (John
            Marriott)
Solution:   Pass varnumber_T to vim_snprintf().  Add v:numbersize.
f9706e9df0
2021-04-27 09:21:35 -04:00
e257aff016 vim-patch:bc93cebb692f
Update runtime files.
bc93cebb69
2021-04-27 09:21:35 -04:00
278ca5f456 vim-patch:ebdf3c964a90
Update runtime files.
ebdf3c964a

Omit vim9.
2021-04-27 09:21:35 -04:00
4819737853 vim-patch:560979ed4f02
Update runtime files.
560979ed4f

Omit vim9.
2021-04-27 09:21:34 -04:00
e8178093dc vim-patch:1d9215b9aaa1
Update runtime files.
1d9215b9aa
2021-04-27 09:21:34 -04:00
d112db157c vim-patch:ade0d3946801
Update runtime files.
ade0d39468
2021-04-27 09:21:34 -04:00
f406e4631d vim-patch:8024f9363683
Update runtime files.
8024f93636

Omit "modifyOtherKeys" changes.
2021-04-27 09:21:34 -04:00
5e1f434764 vim-patch:2963456ff2b7
Update runtime files.
2963456ff2
2021-04-27 09:21:33 -04:00
c8f07e5e1f vim-patch:d7df279808f7
Update a few runtime files.
d7df279808
2021-04-27 09:21:33 -04:00
ae362c2120 vim-patch:5666fcd0bd79
Update runtime files.
5666fcd0bd

Do not manually port E290 error message.
Neovim has E5030,E5031 error messages to replace E290.
2021-04-27 09:21:33 -04:00
841bc219d2 vim-patch:95a9dd1efc5a
Update runtime files.
95a9dd1efc
2021-04-27 09:21:32 -04:00
8aa817bbb3 po: remove duplicate translations
Neovim runs "src/nvim/po/check.vim" to validate all translations.
Build fails if any translation file has a duplicate.
Remove these duplicates via "msguniq --unique".

https://manpage.me/?q=msguniq
2021-04-27 09:21:32 -04:00
62adc04f08 vim-patch:469bdbde1e8e
Minor runtime file updates.
469bdbde1e
2021-04-27 09:21:32 -04:00
f19c896e9d vim-patch:2ed639abdc40
Update a few runtime files.
2ed639abdc
2021-04-27 09:21:32 -04:00
d227c22f00 vim-patch:32b364fcc097
Runtime file updates.
32b364fcc0
2021-04-27 09:21:31 -04:00
527d108223 vim-patch:664f3cf3f21d
Runtime file updates.
664f3cf3f2
2021-04-27 09:21:31 -04:00
3e47e529b0 vim-patch:c08ee7476b19
Update runtime files.
c08ee7476b
2021-04-27 09:21:31 -04:00
5426785541 vim-patch:9834b96820be
Update version 8.2 notes and make syntax.
9834b96820
2021-04-27 09:21:31 -04:00
8e782f6124 vim-patch:4ceaa3a6e0b8
Update a few runtime files
4ceaa3a6e0

Omit de.po.
2021-04-27 09:21:31 -04:00
b918d99a61 vim-patch:91359014b359
Update runtime files.
91359014b3
2021-04-27 09:21:30 -04:00
348f72524d vim-patch:0c0734d527a1
Update runtime files
0c0734d527

Omit rand(), srand() documentation.
Patch v8.1.2342 is not ported yet.
2021-04-27 09:21:30 -04:00
d1231d4f8e vim-patch:403f3eb4c189
Update runtime files.
403f3eb4c1

Port sr.po changes, done by vim-patch.sh.
No way I'm manually porting the rest.
2021-04-27 09:21:30 -04:00
52564c9aa2 vim-patch:09c6f265b210
Update runtime files.
09c6f265b2

Omit getmousepos().
Patch v8.1.2304 is not ported yet.
2021-04-27 09:21:30 -04:00
d270313c79 vim-patch:1ebbb6ee452d
Fix vim.desktop generation.
1ebbb6ee45
2021-04-27 09:21:29 -04:00
cf0fb01ea5 vim-patch:574ee7bc1246
Update runtime files
574ee7bc12

Omit ru.po because I don't know the language and there's too much to port.
2021-04-27 09:21:29 -04:00
6cdb755507 vim-patch:5ef1c6a4838a
Update runtime files
5ef1c6a483

"scrollfocus" is for Windows GUI only so it is N/A.
2021-04-27 09:21:29 -04:00
d4b65fa6fb vim-patch:1ff14ba24c4d
Update runtime files.
1ff14ba24c
2021-04-27 09:21:28 -04:00
233292b0ba vim-patch:96f45c0b6fc9
Update runtime files
96f45c0b6f

Omit de.po changes.
Same reason as before: too much and I don't understand the language.
2021-04-27 09:21:28 -04:00
f0bf853f41 vim-patch:2e693a88b24d
Update runtime files.
2e693a88b2
2021-04-27 09:21:28 -04:00
ecb48e7f8a fixup! man.vim: Refactor verify_exists to unset $MANSECT as needed
":unset" is not a valid Ex command.
Use setenv() to set/unset environment variables.
2021-04-27 09:21:28 -04:00
b1fed1ada9 vim-patch:5be4ceecea55
Update runtime files.
5be4ceecea
2021-04-27 09:21:27 -04:00
766a107839 vim-patch:589edb340454
Updte runtime files
589edb3404

Omit state() changes in eval.txt because patch v8.1.2047 is not merged.
2021-04-27 09:21:27 -04:00
d6cef4ef9d vim-patch:8fe1000e9c34
Update runtime files
8fe1000e9c

Omit de.po changes.
There's too many lines to port and I don't understand the language.
2021-04-27 09:21:27 -04:00
01a629ca03 vim-patch:8.1.1726: the eval.txt help file is too big
Problem:    The eval.txt help file is too big.
Solution:   Split off testing support to testing.txt.  Move function details
            to where the functionality is explained.
ed997adaa1

Vim commit 5477506a9f01d40fad2e8f0555bc37adee30478f
contains the duplicate tag fix in runtime/doc/testing.txt.
2021-04-27 09:21:26 -04:00
fbe18d9ca4 Merge pull request #14448 from jamessan/nightly-ci-permissions
Update permissions for vim-patches workflow
2021-04-27 07:22:28 -04:00
0ab1f9ff3f ci(gha/vim-patches): Create PR against branch running the workflow
Avoids hard-coding branch names.

[skip ci]
2021-04-26 23:45:40 -04:00
2601296c3f ci(gha): Rename nightly workflow to vim-patches
[skip ci]
2021-04-26 23:45:40 -04:00
3047a909a2 ci(gha/nightly): Enable "contents: write" permissions to setup PR
[skip ci]
2021-04-26 23:45:36 -04:00
ecf075eb29 Merge pull request #14416 from bfredl/floatorder
ui_compositior: handle overlapping displayed floats in the same tick
2021-04-26 22:11:35 +02:00
eeb1099bc4 ui_compositior: handle multiple displayed floats in the same tick
problem: the order of non-focuesed float opened before focused float is wrong (sunjon)
solution: check curwin and correct the order (bfredl)
2021-04-26 12:59:51 +02:00
bb7d3790bf Merge pull request #14435 from michaelb/doc_missing_nvim_open_term
doc : fixing missing @return in nvim_open_term doc
2021-04-24 14:03:35 +02:00
684b4ae736 doc : fixing missing @return in nvim_open_term doc 2021-04-24 12:47:52 +02:00
11728988dc Merge pull request #14429 from ckipp01/force
[LSP] - Don't automatically force shutdown on second restart.
2021-04-23 14:52:13 -07:00
8885ea7f24 lsp: make tagstack smarter motion-wise (#12262)
This commit prevents two things regarding the tagstack and jumping to
locations:

  - Pushing the same item twice in a row

  - Pushing an item where the destination is the same as the source

Both prevent having to press CTRL-T additional times just to pop items
that don't make the cursor move.
2021-04-23 14:50:35 -07:00
d650c654a8 Merge pull request #14432 from mjlbach/revert_14428
Revert "lsp: fix blocking in closing of clients"
2021-04-23 12:49:40 -07:00
4eb29e079a Revert "lsp: fix blocking in closing of clients"
This reverts commit 2e6c09838f.

* Fixes #14428
* This commit caused neovim to close while open handles to the uv timer
  to kill active language servers were still open
2021-04-23 12:17:00 -07:00
be494023d8 lsp: check if config is nil 2021-04-23 20:56:44 +02:00
4de404a681 lsp: sort diagnostics by severity (#14372)
Allow to sort diagnostics (and thus signs and virtual text) by severity, so that
the most important message is shown first.

    vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with(
      vim.lsp.diagnostic.on_publish_diagnostics, {
        severity_sort = true,
      }
    )

Fixes https://github.com/neovim/neovim/issues/13929
2021-04-23 20:09:56 +02:00
2a77d9d8a4 Don't automatically force shutdown on second restart.
This is maybe a bit of a niche case, but I hit on this often as I'm
developing a server, and therefore continually restarting it to get the
latest changes of the server. Previously, I could only do this once
since if you send in a request to restart/shut down the server, it will
register it as a `tried_graceful_shutdown = true` meaning that the next
restart would force it to be killed instead of another graceful exit.

Instead, this changes the name a bit and now it will only mark
`graceful_shutdown_failed = true` _if_ it actually fails to gracefully
shutdown. This change allows for a user to restart multiple times in a
situation like mine where nothing is going wrong, but I just want to
restart continually as I'm developing without having to close and
reopen.
2021-04-23 14:26:33 +02:00
bb33727922 vim-patch:8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright' (#14398)
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 vim/vim#8119)
0995c81f2f

Patch v8.2.1682 is not ported.
Replace "goto fail;" with "return FAIL;".
2021-04-22 08:14:42 -04:00
0559d3f9c6 Improvements to tests 2021-04-22 17:09:18 +06:00
8402865cba lua: make vim.cmd an alias of vim.api.nvim_exec() (#14401)
Previously vim.cmd was an alias of nvim_command().

From now on it is an alias of nvim_exec().
2021-04-22 13:02:02 +02:00
4570d04b16 Merge pull request #14411 from seandewar/vim-8.2.1588
vim-patch:8.2.1588 - port `prompt_getprompt()`
2021-04-21 21:23:04 -04:00
c37eaf5746 Merge pull request #14417 from jamessan/ci-update
GHA updates
2021-04-21 23:49:54 +02:00
ff198bb78a fix(oldtest): fix assert_match() for :buffers t
Previous pattern could cause test to fail if ":buffers t" reported
"1 second ago".
2021-04-21 14:55:04 +01:00
65f35e0c7d vim-patch:8.2.1588: cannot read back the prompt of a prompt buffer
Problem:    Cannot read back the prompt of a prompt buffer.
Solution:   Add prompt_getprompt(). (Ben Jackson, closes vim/vim#6851)
077cc7aa0e

Updated prompt_getprompt() doc to cb80aa2d53
and removed mention of method syntax usage (not supported by Nvim).
2021-04-21 14:55:04 +01:00
805eb81ccd oldtest: port test_prompt_buffer.vim
Included from before v8.2.1588. Required for v8.2.1588.
Many tests use stuff like term_sendkeys() which is N/A, so are skipped.
2021-04-21 14:54:51 +01:00
60870d1531 eval: port tv_get_buf_from_arg()
Cherry-picked from v8.2.1562, but uses Nvim's tv_check_str_or_nr().
Required for v8.2.1588.

It isn't used for f_bufnr() to avoid a double error message if the first
argument isn't a number or string similiar to what's seen in Vim.
2021-04-21 11:29:47 +01:00
01493e7990 api: fix nvim_exec() silencing behaviour (#14413)
Previously nvim_exec would silent output no matter whether output
is true or false.
Now output is only silent and captured when output is true.
2021-04-21 10:41:37 +02:00
d7f9e58e40 gitignore: add vim patches (#14412) 2021-04-21 09:29:16 +02:00
62df537543 ci(gha/release): Enable "contents: write" permission to publish release 2021-04-21 00:32:38 -04:00
491708c989 ci(gha/win): Specify valid directory for DEPS_BUILD_DIR 2021-04-21 00:14:51 -04:00
9a01833d90 ci(gha): Simplify clang installation 2021-04-21 00:14:51 -04:00
74f8196935 ci(gha): Update to clang-12 2021-04-21 00:14:43 -04:00
02909d150e win/package: update wintools.zip (#14408)
This does not have 7za.exe and tidy.exe.

Ref: https://github.com/neovim/neovim/issues/14078
2021-04-20 15:54:22 +02:00
eef5a627bf doc: port changes for locale-based :sort
Cherry-picked from 3132cddd20.
2021-04-20 10:12:10 +01:00
b530221126 vim-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 vim/vim#7609)
cec77d4530
2021-04-20 10:12:09 +01:00
b5dbd156f9 vim-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 vim/vim#7609)
fefa6c347e
2021-04-20 10:12:09 +01:00
8c55a16e7d vim-patch:8.2.1946: sort() with NULL string not tested
Problem:    sort() with NULL string not tested.
Solution:   Add a test.  use v:collate. (Dominique Pellé, closes vim/vim#7247)
35efa22ff2
2021-04-20 10:12:09 +01:00
a83292685b vim-patch:8.2.1935: sort test fails on Mac
Problem:    Sort test fails on Mac.
Solution:   Disable the sort test with locale on Mac.
578f4cc7d0
2021-04-20 10:12:09 +01:00
6a0b8cbd81 vim-patch:8.2.1933: cannot sort using locale ordering
Problem:    Cannot sort using locale ordering.
Solution:   Add a flag for :sort and sort() to use the locale. (Dominique
            Pellé, closes vim/vim#7237)
55e29611d2
2021-04-20 10:12:02 +01:00
7bf62ab022 win/package: remove cat,tidy (#14402)
Neovim should not bundle external tools
that are not needed in the runtime environment.

cat.exe is meant for tests only.
Install a mingw/msys2/busybox environment which bundle cat.exe.
tidy.exe was never used in tests and is not required in Neovim runtime.
busybox and tidy.exe can be installed via scoop.

Ref: https://github.com/neovim/neovim/issues/14078
2021-04-20 01:02:42 -04:00
1d72b6e4cd eval: port v:collate
Cherry-picked from patch v8.2.0988. Required for patch v8.2.1933.
2021-04-20 02:03:46 +01:00
96f62394cf vim-patch:8.2.0174: various commands not completely tested
Problem:    Various commands not completely tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes vim/vim#5551)
5d98dc2a48
2021-04-20 01:50:56 +01:00
26bd5a58df Merge pull request #14180 from oberblastmeister/lsp_exit_perf
fix slow closing of lsp clients when exiting vim
2021-04-19 17:35:58 -07:00
2e6c09838f lsp: fix blocking in closing of clients 2021-04-19 20:04:08 -04:00
66f9dd3c6e README.md: remove part of Install from source (#14368)
The entry "To skip bundled (third-parth/*) dependencies:" contains
inappropriate content.

- Lack of description of lua-luv-dev.
- Lack of description of libtree-sitter-dev.
- Contains libutf8proc-dev, which is no longer needed.
- The package libvterm-dev is out of date and probably unusable.

Therefore, it is not possible to build according to this description.
Also, there are only descriptions for Debian and Ubuntu. For these reasons,
this item will be deleted.
2021-04-18 17:31:43 +02:00
e343437bb6 Merge pull request #12323 from da-x/orphaned-signs
Handle 'orphaned signs' on line deletion for signcolumn >= 2
2021-04-18 17:12:41 +02:00
a129887c00 vim-patch:8.2.2773: PSL filetype not recognized (#14389)
Problem:    PSL filetype not recognized.
Solution:   Add a filetype pattern. (Daniel Kho, closes vim/vim#8117)
112a006417
2021-04-17 22:41:51 -04:00
63b64ebab0 Merge pull request #14385 from chentau/extmark_delete
Extmarks: remove `curbuf->deleted_bytes2` from `op_delete`
2021-04-17 09:25:44 +02:00
5b8575fa0d test_signs.vim: adjust for sign removal on line deletion 2021-04-17 10:11:17 +03:00
f2ed7605da Handle 'orphaned signs' on line deletion for signcolumn >= 2 2021-04-17 10:11:17 +03:00
7de75f0993 Merge pull request #14365 from chentau/extmark_delbytes_move
Extmarks: flush curbuf->deleted_bytes2 after calling do_move
2021-04-17 08:58:00 +02:00
e32eaf6538 extmarks: remove curbuf->deleted_bytes2 from op_delete 2021-04-16 23:42:53 -07:00
6974d0c6c1 lsp: deep copy vim.lsp.log when reloading
If vim.lsp.log is loaded the second time,
the vim.log.levels will be modified with additional
entries from 0-5.
This will cause the require to fail as level:lower does
not exists on numbered value.
2021-04-16 11:43:20 +01:00
a6504ec339 Merge pull request #13684 from pohzipohzi/input
doc: add description for cancelreturn option in input()
2021-04-16 09:47:45 +02:00
fe808f02f6 Merge pull request #14355 from janlazo/vim-8.1.2313
vim-patch:8.1.2313,8.2.{2046,2769}
2021-04-15 21:55:56 -04:00
d8e7fbe193 Merge pull request #14367 from janlazo/vim-8.2.2046
vim-patch:8.2.{265,2761,2764}
2021-04-15 21:54:04 -04:00
97288e73c2 vim-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.
b47bed2f7a
2021-04-15 18:30:04 -04:00
7d3f31c064 vim-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 vim/vim#8104)
2e240bd428

Cherry-pick AssertHighlightGroups from patch v8.2.2068.
2021-04-15 18:30:04 -04:00
eb93399d70 vim-patch:8.2.0265: "eval" after "if 0" doesn't check for following command
Problem:    "eval" after "if 0" doesn't check for following command.
Solution:   Add "eval" to list of commands that check for a following command.
            (closes vim/vim#5640)
a76b31542e
2021-04-15 18:30:03 -04:00
b34dc4c458 ex_cmds: port :eval
Cherry-picked from patch v8.1.1807.
Required for patch v8.2.2761.
2021-04-15 18:30:03 -04:00
011cfc538c vim-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)
6bc00699c5
2021-04-15 18:08:55 -04:00
b8c3bb6790 vim-patch:8.1.2313: debugging where a delay comes from is not easy
Problem:    Debugging where a delay comes from is not easy.
Solution:   Use different values when calling ui_delay().
eda1da0c9a
2021-04-15 18:06:51 -04:00
94b10d25da vim-patch:8.2.2046: some test failures don't give a clear error
Problem:    Some test failures don't give a clear error.
Solution:   Use assert_match() and assert_fails() instead of assert_true().
            (Ken Takata, closes vim/vim#7368)
5dc4e2f883
2021-04-15 18:06:35 -04:00
b8c0fac762 Merge pull request #14370 from oberblastmeister/lsp_buf_request_sync
refactor lsp_buf_request_sync to also have an async method
2021-04-15 13:32:07 -07:00
ef5314ce59 lsp: add lsp.buf_request_all for invoking asynchronous callbacks
fixed nil issue

changed poll to 10

changed wording

added docs to once

comma

english
2021-04-15 12:54:59 -04:00
5a36d413fb flush curbuf->deleted_bytes2 after calling do_move 2021-04-14 21:47:21 -07:00
d19348923e Merge pull request #14364 from mhinz/gitignore-vim-src
gitignore: handle case where .vim-src is a symlink
2021-04-15 05:22:21 +02:00
e915ec47f3 tests/functional: delete temp file created during test run (#14363) 2021-04-14 20:42:34 -04:00
3b01e37d09 Merge pull request #14358 from bfredl/decodeco
decoration: Clean up duplicate Decoration attributes + bonus hl_eol flag
2021-04-15 01:12:36 +02:00
9471b15936 Merge pull request #14366 from mfussenegger/text-document-version-zero
lsp: Accept text document edits with version zero
2021-04-14 13:01:08 -07:00
046991e4d5 lsp: Remove vim.NIL handling from apply_text_document_edit
The rpc layer normalizes `vim.NIL` to `nil`, so the scenario tested
should never happen.
2021-04-14 21:42:03 +02:00
b67f689e4c lsp: Accept text document edits with version zero
There were a couple of reports of "Buffer X newer than edits" problems.
We first assumed that it is incorrect for a server to send 0 as a
version - and stated that they should send a `null` instead, given that
in the specification the `textDocument` of a `TextDocumentEdit` is a
`OptionalVersionedTextDocumentIdentifier`.

But it turns out that this was a change in 3.16, and in 3.15 and earlier
versions of the specification it was a `VersionedTextDocumentIdentifier`
and language servers didn't have a better option than sending `0` if
they don't keep track of the version numbers.

So this changes the version check to always accept `0` values.

See

- https://github.com/neovim/neovim/issues/12970
- https://github.com/neovim/neovim/issues/14256
- https://github.com/haskell/haskell-language-server/pull/1727
2021-04-14 21:29:32 +02:00
d9c7adc64c doc: prefer "python -m pip" (#14353)
The current guidance for install Python packages is to use

    python -m pip install <package_name>

Instead of

    pip install <package_name>

This ensures that one is using the version of pip that is tied to the
environment's interpreter (and, thusly, its packages).  This has [been
endorsed by a core
maintainer](https://snarky.ca/why-you-should-use-python-m-pip/) as
being the recommended way to invoke pip.

As there currently are a few places where the old invocation was used,
attempt to bring them in line.

Fixes #14234
2021-04-14 20:48:13 +02:00
6ab4c8f955 doc: port prompt-buffer section (#14342)
[skip ci]

Changes from original include:
- "See |terminal-window|" -> "See |terminal|".
- Remove mention of using CTRL-W window commands in insert mode.
- Converted usage example to use the Nvim job and channel API.
- Removed logging from usage example, as ch_logfile() has no direct Nvim
  counterpart.
- Fixed some small grammar/spelling mistakes.
2021-04-14 20:39:37 +02:00
57220e7cc3 gitignore: handle case where .vim-src is a symlink
I build Vim and Nvim from source and have both repos cloned locally. To prevent
vim-patch.sh from downloading the Vim source once again to /.vim-src/, I usually
use a symlink pointing to the already existing Vim repo.

The pattern "/.vim-src" works for both, a directory or a symlink.
2021-04-14 20:14:54 +02:00
7b488314d0 decoration: Clean up duplicate Decoration attributes + bonus hl_eol flag 2021-04-14 13:04:33 +02:00
cd3e74201a lsp: fix _make_floating_popup_size when wrap_at is nil (#14359) 2021-04-14 13:01:14 +02:00
e652b2987a Merge pull request #14046 from nvim-treesitter/feature/language-tree-directive-config
feat(treesitter): allow injections to be configured through directives
2021-04-14 05:36:05 +02:00
6b16ec701e lsp: fix off-by-one in line diagnostic highlighting 2021-04-14 02:11:47 +02:00
391fe1064e Merge pull request #14119 from mfussenegger/lsp-debounce
lsp: Add a flag to debounce didChange notifications
2021-04-13 15:03:13 -07:00
2001ba2c6a Merge pull request #14324 from mhinz/lsp-border-float-placement 2021-04-13 23:43:50 +02:00
720c6353b5 lsp: Add a flag to debounce didChange notifications
Would help with cases as reported in https://github.com/neovim/neovim/issues/14087
2021-04-13 21:02:30 +02:00
c9817603cf Merge pull request #14318 from chentau/extmark_luado
extmark: splice extmarks on :luado
2021-04-13 15:00:42 +02:00
ef3f05c432 tutor: force one sign per line (#14352)
The only thing setting signs in the tutor buffer (buftype=nofile), should be
tutor.vim itself.

Instead of endlessly piling up new signs per line, just unplace any sign on the
line before placing a new one.

Closes https://github.com/neovim/neovim/issues/13808
Closes https://github.com/neovim/neovim/pull/13809
2021-04-13 12:13:44 +02:00
4a36ec6da0 float: add "solid" border style (#14310)
It looks solid with the default `FloatBorder` group.

If you set the bgcolor of FloatBorder to the same color as for FloatNormal, you
effectively get an "1-cell padding".
2021-04-12 20:51:05 +02:00
ff43d9597e extmark: splice extmarks on :luado 2021-04-12 11:33:50 -07:00
3831825167 lsp: correct float placement when using borders
Because borders add up to 2 to the height of a float, we need to subtract that
from the anchor position, when opening a float in the lower half of the window.
2021-04-12 19:54:54 +02:00
a215adabc1 lsp: make sure borders are always inside of the screen
Add a helper function to get the additional width a border adds to a float to
make sure that the border is always inside the visible screen.
2021-04-12 19:51:18 +02:00
3893027200 Merge pull request #14337 from janlazo/vim-8.2.0409
vim-patch:8.1.{1841,2416},8.2.{409,1920,2050}
2021-04-11 21:43:45 -04:00
9b77a2bf60 Merge pull request #14343 from jamessan/doc-fix
fix(doc): Add '/site' to stdpath('data') example in `:help 'rtp'`
2021-04-11 20:07:11 -04:00
fa9e5ab0ea test/old: ':execute' does not suppress range error
:2,1>
should trigger backwards range error
but it is suppressed for inccomand.

:execute "2,1>"
does not suppress the error.
2021-04-11 19:14:48 -04:00
4ff70cc58b vim-patch:8.1.2416: loading menus sets v:errmsg
Problem:    Loading menus sets v:errmsg.
Solution:   Avoid setting v:errmsg and add a test for that. (Jason Franklin)
e24c5b3332
2021-04-11 17:05:42 -04:00
750f2b686b vim-patch:8.1.1841: no test for Ex shift commands
Problem:    No test for Ex shift commands.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#4801)
d5e3cc11d3

Comment out some tests because of Neovim inccomand.
2021-04-11 17:05:42 -04:00
d2a9b29e1b vim-patch:8.2.1920: listlbr test fails when run after another test
Problem:    Listlbr test fails when run after another test.
Solution:   Add test separately to list of test targets.
cf4d454df0
2021-04-11 17:05:42 -04:00
a0d3461bf8 vim-patch:8.2.2050: search test contains unneeded sleeps
Problem:    Search test contains unneeded sleeps.
Solution:   Rename the function, remove sleeps. (Christian Brabandt,
            closes vim/vim#7369)
6bed0dbc85
2021-04-11 17:05:41 -04:00
20e5cb151b vim-patch:8.2.0409: search test leaves file behind
Problem:    Search test leaves file behind.
Solution:   Delete the file.  Also use Check commands.
b68df220c5

Reorder tests based on test_search.vim in patch v8.2.0409.
2021-04-11 17:05:41 -04:00
fd908ded50 Merge pull request #14339 from janlazo/vim-8.2.0044
vim-patch:8.2.{44,45,69,2319}
2021-04-11 17:04:37 -04:00
b2971ebeed vim-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.
657137ca48

Vim9 changes omitted.
2021-04-11 16:35:55 -04:00
ca214311d2 vim-patch:8.2.0069: ETYPE_ is used for two different enums
Problem:    ETYPE_ is used for two different enums.
Solution:   Rename one to use EXPR_.
87396072c5
2021-04-11 16:35:47 -04:00
de16fbcc57 vim-patch:8.2.0045: script test fails
Problem:    Script test fails.
Solution:   For numbers "is" and "isnot" work like "==" and "!=".
ec57ec692e
2021-04-11 16:35:14 -04:00
53cbfd0220 vim-patch:8.2.0044: expression type is used inconsistently
Problem:    Expression type is used inconsistently.
Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename
            "TYPE_" to "ETYPE_" to avoid confusion.
07a3db89b8
2021-04-11 16:34:53 -04:00
2e156a3b7d Merge pull request #14340 from mjlbach/fix_clangd_nix
contrib: add clang-tools to nix flake
2021-04-10 16:54:56 -07:00
9699f3be10 fix(doc): Add '/site' to stdpath('data') example in :help 'rtp'
[skip ci]
2021-04-10 13:45:48 -04:00
062c64e24c test/ui/cmdline: set notimeout to remove indeterminism (#14338) 2021-04-10 12:36:54 -04:00
6435b46b48 Merge pull request #14317 from chentau/extmark_sub
extmark: correct extmark_splice call with substitute and inccommand when replacing with escaped backslashes
2021-04-10 18:14:42 +02:00
f695457f81 contrib: add clang-tools to nix flake 2021-04-10 08:28:16 -07:00
1b030f889c doc: advertise nanotee/nvim-lua-guide (#14332) [skip ci]
Mention https://github.com/nanotee/nvim-lua-guide at the beginning of ":h lua" as well as ":h lua-vimscript".

Closes #12369 .
2021-04-09 19:36:23 +02:00
e3d0fb0d3c Merge pull request #14321 from jamessan/ci-fixes
Some small cleanups/diagnostic improvements
2021-04-09 09:48:35 -04:00
8a1a256b44 Merge pull request #14326 from janlazo/vim-8.2.0623
vim-patch:8.2.{623,1822,2738}
2021-04-09 08:25:08 -04:00
343ee2d254 extmark: correct extmark_splice call with inccommand 2021-04-09 00:34:02 -07:00
82ac44d01f vim-patch:8.2.2737: status line not updated when local 'statusline' option set (#14325)
Problem:    Status line not updated when local 'statusline' option set.
Solution:   Check the 'statusline' option of each window.
d8db838392
2021-04-08 23:14:08 -04:00
b35daa986f vim-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 vim/vim#1112)
dcae51facc

Originated from Neovim commit 7ceebacb3f.
2021-04-08 22:58:13 -04:00
cfeaea0d3e vim-patch:8.2.1822: list test doesn't fail
Problem:    List test doesn't fail.
Solution:   Adjust the test for NULL list handling.
f57497276b

Comment out test cases that modify null lists
because Neovim throws error messages instead of silently failing.
Null lists should be read-only and constant.
https://github.com/neovim/neovim/issues/4615
2021-04-08 22:39:28 -04:00
0d0eeff8a3 eval: add v:_null_string
Replacement for Vim's test_null_string().
Vim uses it to verify that its codebase handles null strings.
Preparation for the Test_null_list() in patch v8.2.1822.

Use v:_null_string, not non-existent env var, for null string tests.

Mention v:_null_string in id() because id(v:_null_string) returns (nil).
2021-04-08 22:36:20 -04:00
ec273a2c6b vim-patch:8.2.0623: typo in test comment
Problem:    Typo in test comment. (Christ van Willegen)
Solution:   Avoid mixing up a data structure with a body part.
f7b398c6a9

Cherry-pick Test_dict_lock_operator() from patch v8.2.0619.
2021-04-08 18:53:36 -04:00
ed3c0a27c7 Merge pull request #14314 from janlazo/vim-8.2.2720
vim-patch:8.0.{1505,1511},8.2.{1304,1305,1393,1508,1791,2720}
2021-04-08 09:32:37 -04:00
6a03bcc3c2 fix(test): Detect more core filenames 2021-04-08 08:13:39 -04:00
ce9b5848f9 Add more info to debug messages
[skip ci]
2021-04-08 08:13:39 -04:00
8caf841308 Lower "closed by the client" message level to INFO
[skip ci]
2021-04-08 07:44:51 -04:00
d99ce54252 vim-patch:8.2.1305: some tests are still old style
Problem:    Some tests are still old style.
Solution:   Convert tests 52 and 70 to new style. (Yegappan Lakshmanan,
            closes vim/vim#6544)  Fix error in FinishTesting().
622b3568fa

Omit test_mzscheme.vim.
Neovim does not support "mzscheme" feature.
2021-04-08 07:28:58 -04:00
c3c3425b76 vim-patch:8.2.1791: Vim9: debugger test fails
Problem:    Vim9: debugger test fails.
Solution:   Use "var" instead of "let".
1bdae40323
2021-04-08 07:28:58 -04:00
c0f20333c8 vim-patch:8.2.1508: not all debugger commands covered by tests
Problem:    Not all debugger commands covered by tests.
Solution:   Add tests for going up/down in the stack. (Ben Jackson,
            closes vim/vim#6765)
c63b72b6dc
2021-04-08 07:28:57 -04:00
bf6afcce20 vim-patch:8.2.1393: insufficient testing for script debugging
Problem:    Insufficient testing for script debugging.
Solution:   Add more tests. (Ben Jackson)
b7f4fa5177

Check terminal feature in individual tests, not the test suite.
Avoid code coverage loss in test_debugger.vim.
2021-04-08 07:28:57 -04:00
1b40447df3 vim-patch:8.2.1304: debug backtrace isn't tested much
Problem:    Debug backtrace isn't tested much.
Solution:   Add more specific tests. (Ben Jackson, closes vim/vim#6540)
6ca6ca4889

Port runtest.vim fix from patch v8.2.1305.
2021-04-08 07:28:57 -04:00
69bab7e35d vim-patch:8.0.1511: some code for the debugger watch expression is clumsy
Problem:    Some code for the debugger watch expression is clumsy.
Solution:   Clean up the code.
3198870137
2021-04-08 07:28:46 -04:00
1a1fe58f7e vim-patch:8.0.1505: debugger can't break on a condition
Problem:    Debugger can't break on a condition. (Charles Campbell)
Solution:   Add ":breakadd expr". (Christian Brabandt, closes vim/vim#859)
c6f9f739d3

Do not port "has_watchexpr()" to avoid dead code.
"has_watchexpr()" always returns 0 because "debug_expr" is always 0.

Restore "eval_expr()" as a wrapper to allocate "typval_T" for "eval0()".
Remove it in later patches.

Include "typval_compare()" changes from patch v8.1.0958,
partially ported in 8b60368c1b.

Close https://github.com/neovim/neovim/pull/12373

N/A patches for version.c:

vim-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.
01ac0a1f66
2021-04-08 07:28:46 -04:00
afae96e69a doc: add description for cancelreturn option in input() 2021-04-08 17:56:31 +08:00
48e8057285 Merge pull request #14302 from vigoux/fix-8449
Update docs
2021-04-07 09:14:49 -07:00
cd75d3289a Merge pull request #14200 from teto/treesitter-checkhealth
feat: treesitter checkhealth
2021-04-07 16:40:56 +02:00
d7a1bbd81a docs: add priority option in buf_set_extmark 2021-04-07 15:36:46 +02:00
91cdc11984 Merge pull request #14309 from mjlbach/feature/hover_return_win_buf
lsp: hover window should return buf/winnr from focusable float
2021-04-07 00:58:32 -07:00
c2298503ce Merge pull request #14308 from mjlbach/lsp_update_docs
lsp: update documentation on window borders
2021-04-07 00:29:39 -07:00
5610e8a4ac lsp: hover window should return buf/winnr from focusable float 2021-04-07 00:21:56 -07:00
2c0bcc539a lsp: update documentation on window borders 2021-04-06 23:51:15 -07:00
b518b9076f Merge pull request #14299 from mjlbach/issue_template_improvements
issue template: add reference to discourse and minimal config in lsp issue template
2021-04-06 11:22:04 -07:00
952508d405 fix(ts): move checkhealth in runtime/vim 2021-04-06 19:03:04 +02:00
e8bc3d717e feat(ts): include parser ABI version in checkhealth 2021-04-06 19:02:58 +02:00
86ced59a6a feat: treesitter checkhealth 2021-04-06 18:54:22 +02:00
370469be25 Merge pull request #14300 from elianiva/feat/lsp_border_config
feat(lsp): make hover/signature_help borders configurable
2021-04-05 22:44:28 -07:00
c84b1b1ad0 feat(lsp): make hover/signature_help borders configurable
change hl groups for the example

rename borders -> border
2021-04-06 12:13:31 +07:00
bbdd002033 Merge pull request #14290 from Shougo/vim-8.2.2704
[RFC] vim-patch:8.2.2704, 8.2.2707
2021-04-05 20:08:57 -04:00
cc9f7e717b Merge pull request #14291 from janlazo/vim-8.2.2709
vim-patch:8.2.{2709,2711,2714,2717}
2021-04-05 20:01:07 -04:00
dcb447dafd issue template: add reference to discourse and minimal config in lsp issue template 2021-04-05 14:47:59 -07:00
ce0153e4f7 vim-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 vim/vim#8065)
409da842db
2021-04-05 11:29:35 -04:00
62a3312b88 vim-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 vim/vim#8062)
3c49e74e18

N/A patches for version.c:

vim-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 vim/vim#8027)
26af8e54ff

vim-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 vim/vim#8067, closes vim/vim#7810)
ce5b06a6a9
2021-04-05 11:29:35 -04:00
2c4e9c5245 lsp: floating window improvements (#14207)
* remove left/right padding feature from trim_and_pad
* use invisible borders by default on floating windows
2021-04-05 15:43:08 +02:00
9fbeaf7771 vim-patch:8.1.2205: sign entry structure has confusing name (#14289)
Problem:    Sign entry structure has confusing name.
Solution:   Rename signlist_T to sign_entry_T and prefix se_ to the fields.
2021-04-05 06:16:44 -04:00
21a3d1a511 Fix the comments 2021-04-05 13:41:39 +09:00
1996028c5c vim-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)
ceb0619433
2021-04-05 09:24:11 +09:00
356a35a848 vim-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 vim/vim#8061)
440cf096fa
2021-04-05 09:22:26 +09:00
9b2d4ff625 Merge pull request #14227 from bfredl/bordaa3
Border: allow to enable/disable specific border edges
2021-04-05 00:21:51 +02:00
160c9fd126 Merge pull request #14199 from bfredl/chansend2
api: fix use-after-free in nvim_chan_send
2021-04-04 22:41:01 +02:00
0f187700ab vim-patch:8.2.0295: highlighting for :s wrong when using different separator (#14286)
Problem:    Highlighting for :s wrong when using different separator.
Solution:   Use separat argument for search direction and separator. (Rob
            Pilling, closes vim/vim#5665)
c036e87bd7
2021-04-04 14:43:22 -04:00
a4d3804837 Border: allow to enable/disable specific border edges 2021-04-04 18:32:31 +02:00
3d6831a30a api: fix use-after-free in nvim_chan_send 2021-04-04 18:11:48 +02:00
76f5c72860 Merge pull request #14063 from lewis6991/master
vim-patch:8.1.{1631,1682,1899}: sign improvements
2021-04-04 10:28:16 -04:00
ce976bf355 Merge pull request #14278 from chentau/extmark_retab
extmark: buffer update fixes for `noexpandtab` and `:retab`
2021-04-04 09:42:34 +02:00
8e496b9dfd Merge pull request #14268 from erw7/fix-p_ch-problem
screen: fix problem with p_ch
2021-04-04 12:04:36 +09:00
8ed0a0d4db Merge pull request #14094 from erw7/improve-get-bg
tui: improve support for tmux, GNU Screen
2021-04-04 12:03:33 +09:00
0dfb4e2765 Merge pull request #14282 from janlazo/vim-8.2.2695
vim-patch:8.2.{2695,2697,2700,2701,2702}
2021-04-03 21:09:26 -04:00
53cceda52d vim-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.
c17ba791a9
2021-04-03 20:31:17 -04:00
ffef1519ca vim-patch:8.2.2697: function list test fails
Problem:    Function list test fails.
Solution:   Add missing function. (Yegappan Lakshmanan)
0df6030145
2021-04-03 20:26:05 -04:00
3a623fd5cf vim-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 vim/vim#5820)
1e6bbfb560

N/A patches for version.c:

vim-patch:8.2.2700: nested autocmd test fails sometimes

Problem:    Nested autocmd test fails sometimes.
Solution:   Wait for the job to finish.
6437475ffb

vim-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.
26f201345d
2021-04-03 20:25:59 -04:00
d82b599ea5 vim-patch:8.1.1899: sign_place() does not work as documented
Problem:    sign_place() does not work as documented.
Solution:   Make accept line numbers like line(). (Yegappan Lakshmanan,
            closes #4848)
2021-04-03 23:56:55 +01:00
5257bce979 vim-patch:8.1.1682: placing a larger number of ...
...signs is slow

Problem:    Placing a larger number of signs is slow.
Solution:   Add functions for dealing with a list of signs. (Yegappan
            Lakshmanan, closes #4636)
2021-04-03 23:56:54 +01:00
0b7e5eeb62 vim-patch:8.1.1631: displaying signs is inefficient
+ support for neovim's dynamic width signcolumn

Problem:    Displaying signs is inefficient.
Solution:   Avoid making multiple calls to get information about a placed
            sign. (Yegappan Lakshmanan, closes #4586)
2021-04-03 23:39:56 +01:00
804ea22944 Merge pull request #14226 from bfredl/luarefcount
lua: track reference ownership with ASAN when present
2021-04-03 17:48:39 +02:00
2df527e1ff test/lsp: disable tracking in LSP tests (here be dragons) 2021-04-03 16:27:58 +02:00
7e799502e5 luaref: simplify handling of table callables and fix leak in vim.fn.call(table)
I AM THE TABLE
2021-04-03 16:27:58 +02:00
623fe4dc7e luaref: free decoration providers 2021-04-03 16:27:58 +02:00
a0b7bb4153 luaref: free all references in buffer_updates 2021-04-03 16:27:58 +02:00
eae4b1e5c2 luaref: fix leaks for global luarefs 2021-04-03 16:27:58 +02:00
5ed383057b lua: track reference ownership with ASAN when present 2021-04-03 16:27:58 +02:00
abdda66410 vim-patch:8.2.2694: when 'matchpairs' is empty every character beeps (#14279)
Problem:    When 'matchpairs' is empty every character beeps. (Marco Hinz)
Solution:   Bail out when no character in 'matchpairs' was found.
            (closes vim/vim#8053)  Add assert_nobeep().
5b8cabfef7
2021-04-03 08:49:39 -04:00
581b2bcde0 screen: fix problem with p_ch
When the screen is resized, p_ch is not re-set to the appropriate value.
As a result, access to invalid addresses was occurring.
2021-04-03 15:27:46 +09:00
f4224a12c0 Fix lualint warnings 2021-04-03 10:18:40 +06:00
7a6228d581 Add tests for nvim_set_hl() 2021-04-03 09:18:53 +06:00
7602c56050 extmark: fixes for noexpandtab and retab 2021-04-02 16:21:46 -07:00
6db3ba9df2 Merge pull request #14027 from dylanarmstrong/fix/13955-empty-paste-in-term-segfault
fix: segfault when pasting in term with empty buffer
2021-04-02 23:15:43 +02:00
42d2bbe7d0 chore: move check for paste size 2021-04-02 12:49:36 -05:00
8bea39f372 feat(treesitter): allow injections to be configured through directives 2021-04-02 12:48:16 -05:00
dde89730b4 vim-patch:8.2.2690: PowerShell files are not recognized (#14276)
Problem:    PowerShell files are not recognized.
Solution:   Recognize several PowerShell extension. (Heath Stewart,
            closes vim/vim#8051)
ef38bcf051

N/A patches for version.c:

vim-patch:8.2.2689: tiny build fails

Problem:    Tiny build fails.
Solution:   Add #ifdef around use of p_stl.
160a2b4dac

vim-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 vim/vim#8049)
3fa5e64e0e
2021-04-02 13:44:25 -04:00
22ef4071f0 Merge pull request #14197 from theHamsta/file-handles-modeline
Fix #14192: Handle IO errors and close files in query.lua
2021-04-02 16:50:28 +02:00
43eb22d4c9 Fix #14192: Handle IO errors and close files in query.lua 2021-04-02 16:21:49 +02:00
f2df01900e Merge pull request #14188 from mfussenegger/treesitter-0194
treesitter: Update to 0.19.4+2
2021-04-02 15:50:46 +02:00
bfaf42a621 Merge pull request #14039 from theHamsta/fix-field-introspection
Fix(treesitter): Make treesitter.inspect_lang include last field name
2021-04-02 15:46:01 +02:00
cf6c23fb0f Merge pull request #14273 from janlazo/clang-warnings
clang: resolve logic error and dead store warnings
2021-04-02 09:21:25 -04:00
4f3396e128 clang/'Logic error': assert nonnull p_extra 2021-04-02 08:43:51 -04:00
49706a1842 clang/'Logic error': fix loop cond to avoid nullptr deref
nvim_set_decoration_provider() has insufficient null checks.
2021-04-02 08:38:37 -04:00
4d396271e1 clang/API: copy "" if orig_save is NULL
orig_save can be NULL if ExpandOne() is misused
if ExpandOne() is first called with mode "WILD_CANCEL" or "WILD_APPLY"
before other modes.
2021-04-02 08:30:16 -04:00
5bfad093b2 clang/'Dead store': remove dead assign in msg_may_trunc
Evaluating the expression without assignment is enough.
2021-04-02 08:23:41 -04:00
6d34b0b702 clang/'Dead store': do not assign fnamelen
Vim hasn't changed this line in buf_modname().
Assigning a value to fnamelen is useless
when evaluating strlen() is sufficient for the condition check.
2021-04-02 08:23:41 -04:00
484370f206 clang/'Logic error': cmd_source_buffer() requires nonnull param 2021-04-02 08:23:40 -04:00
ba3d626efb clang/'Logic error': avoid nullptr deref
mouse_find_win() can return NULL.
2021-04-02 08:23:40 -04:00
5bf94259c1 clang/'Logic error': set vcol in do_put() 2021-04-02 08:23:40 -04:00
3f7cd18c4a Merge pull request #14218 from steelsojka/bugfix/check-queries-exist
fix(treesitter): check highlight queries exist
2021-04-02 05:24:49 +02:00
da31f1c7dd doc: Fix typo in the help for <Cmd> where lhs was used instead of rhs (#14272) 2021-04-01 21:50:02 -04:00
a03be1e44f Merge pull request #14271 from mjlbach/feature/lsp_cwd
lsp: allow launching language servers with uv_spawn using cwd arg
2021-04-01 17:01:51 -07:00
3b01dd4183 lsp: allow launching language servers with uv_spawn using cwd arg 2021-04-01 14:24:37 -07:00
0bf24d3eb1 Merge pull request #14270 from janlazo/vim-8.2.2678
vim-patch:8.1.0986,8.2.{2678,2683,2686}
2021-04-01 16:55:50 -04:00
7959aaf781 vim-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 vim/vim#8044)
ce0b75711a
2021-04-01 15:05:10 -04:00
b120bb8ea9 vim-patch:8.1.0986: rename() is not propertly tested
Problem:    rename() is not propertly tested.
Solution:   Add tests. (Dominique Pelle, closes vim/vim#4061)
ef8c956172

Skip Test_rename_fails() because 'blob' feature is not ported yet.

N/A patches for version.c:

vim-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.
82820d9bf1

vim-patch:8.2.2683: build failure without the +eval feature

Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
b91d3f857f
2021-04-01 11:58:02 -04:00
cee19696b6 Merge pull request #14222 from janlazo/v8.2.2655
vim-patch:8.2.{2655,2656}
2021-04-01 11:38:07 -04:00
11bea67a55 fix: allow accessing vim.treesitter.language without require 2021-04-01 16:51:36 +02:00
6e9e8eb382 test/old/win: debug Test_w_arg 2021-04-01 10:45:56 -04:00
a2bd2f220c fix: selectionrange over range for document symbols 2021-04-01 14:16:01 +02:00
3784827f8d vim-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 vim/vim#8013)
a2b3e7dc92

Cherry-pick Test_t_arg() from patch v8.2.0509.
2021-04-01 07:23:04 -04:00
3b04ba7544 vim-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 vim/vim#8011)
0a1a6a1aa4

Cherry-pick Test_w_arg() from patch v8.2.0509.
2021-04-01 07:23:04 -04:00
3d25a72a60 Merge pull request #14264 from mjlbach/feature/handle_reloading_buffer
lsp: add on_reload callback for buffer edits outside of neovim
2021-04-01 01:08:39 -07:00
f738f089da Merge pull request #14262 from mjlbach/feature/lsp_did_save_autocommand
lsp: clear did_save handler autocommand on each attach
2021-04-01 00:53:47 -07:00
5dfa937e4a Merge pull request #14266 from mjlbach/fix/rename_workspace_symbol_request
lsp: fix textDocument/workspaceSymbol -> workspace/symbol
2021-04-01 00:37:28 -07:00
f87ae324bb lsp: fix textDocument/workspaceSymbol -> workspace/symbol 2021-03-31 23:53:07 -07:00
92e106ba23 lsp: add on_reload callback for buffer edits outside of neovim 2021-03-31 22:41:00 -07:00
08941e163e lsp: clear did_save handler autocommand on each attach 2021-03-31 20:23:17 -07:00
a177820420 Merge pull request #14259 from janlazo/fix-dictwatcherdel-crash
Fix dictwatcherdel crash
2021-03-31 19:22:11 -04:00
5e4fb9a7dd os/win: fix build failure 2021-03-31 17:46:43 -04:00
d55a69168f Merge pull request #14245 from tjdevries/tjdevries/ts_override_hl
ts: Add per-language highlight links
2021-03-31 19:57:50 +02:00
d50f99f08b fixup: remove unused test function 2021-03-31 18:09:03 +02:00
06c065469b ts: Add per-language highlight links 2021-03-31 18:09:00 +02:00
94c2ce2ce4 Merge pull request #14252 from tjdevries/tjdevries/ts_query_overrides
ts: Add per-language query overriding
2021-03-31 17:59:42 +02:00
1c5e347b8c more tests 2021-03-30 21:55:51 -04:00
d6cac809b0 tv_dict_watcher_notify: any_needs_free 2021-03-30 21:55:51 -04:00
aca002e7d5 test 2021-03-30 21:55:51 -04:00
7268d49c50 tv_dict_watcher_remove: delay freeing with busy queue 2021-03-30 21:55:50 -04:00
36caafeb28 Change QUEUE_FOREACH macro to use while instead of for 2021-03-30 21:55:50 -04:00
4c76b1e981 Test and initial fix for crash with dictwatcherdel
Fixes https://github.com/neovim/neovim/issues/11188.
2021-03-30 21:55:50 -04:00
c20ae3aadb Merge pull request #14251 from janlazo/vim-8.1.1193
vim-patch:8.1.{936,1193}
2021-03-30 21:51:51 -04:00
608c03298a vim-patch:8.1.0936: may leak memory when using 'vartabstop'
Problem:    May leak memory when using 'vartabstop'. (Kuang-che Wu)
Solution:   Fix handling allocated memory for 'vartabstop'. (closes vim/vim#3976)
55c77cf2ea
2021-03-30 19:56:13 -04:00
db47cf8153 Merge pull request #14233 from mjlbach/disable_utf16_conversion
lsp: use utf-8 when utf-16 not requested
2021-03-30 14:37:55 -07:00
0cadab1412 lsp: use utf-8 when utf-16 not requested 2021-03-30 14:14:09 -07:00
240cec9192 ts: Add language version to vim.treesitter (#14255) 2021-03-30 16:40:29 -04:00
d6209a7b84 fixup: Add a test and it is so pretty 2021-03-30 10:57:38 -04:00
04fb94cd80 ts: Add per-language query overriding 2021-03-30 08:25:11 -04:00
e491e77498 vim-patch:8.1.1193: typos and small problems in test files
Problem:    Typos and small problems in test files.
Solution:   Small improvements.
037c54f261

Include unmerged patch v8.0.1200 changes
because this patch depends on `set beloff=all` removed in 1 test.
2021-03-30 06:49:37 -04:00
f89bfa6869 vim-patch:8.2.2454: leading space can not be made visible (#14138)
Problem:    Leading space can not be made visible.
Solution:   Add "lead:" to 'listchars'. (closes vim/vim#7772)
91478ae49a
2021-03-29 21:26:11 -04:00
291f1ece7f added support for termux-clipboard : clipboard.vim (#14244)
Termux - Android terminal emulator
Link - https://termux.com/
2021-03-29 20:52:35 -04:00
3f447d928d Merge pull request #14248 from andymass/vim-8.2.2612
[RFC] vim-patch 8.2.{2612,2613}
2021-03-29 20:46:44 -04:00
3c497e214f Merge pull request #14238 from janlazo/vim-8.1.0958
vim-patch:8.1.{874,958,989,2380},8.2.{1621,2674}
2021-03-29 20:25:09 -04:00
756f559599 vim-patch:8.2.2613: new test throws exception
Problem:    New test throws exception.
Solution:   Adjust the function cleanup.
6ccfd99b92
2021-03-29 19:46:33 -04:00
b4aea3d1c8 vim-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 vim/vim#7971)
18b7d86d7f
2021-03-29 19:46:00 -04:00
af2f0ffdf4 vim-patch:8.1.2380: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
306139005c
2021-03-29 19:34:45 -04:00
9d28875d50 vim-patch:8.1.0874: using old style comments in new file
Problem:    Using old style comments in new file.
Solution:   Convert to // comments in new file. (Yegappan Lakshmanan)
9c46efd7dc
2021-03-29 18:40:48 -04:00
4564f2c54f vim-patch:8.2.1621: crash when using submatch(0, 1) in substitute()
Problem:    Crash when using submatch(0, 1) in substitute().
Solution:   Increment reference count. (closes vim/vim#6887)
8a0dcf4330

N/A patches for version.c:

vim-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 vim/vim#7825,
            closes vim/vim#8035)  Fix compiler warnings.
9dbe701fe1
2021-03-29 18:29:25 -04:00
375f957af6 vim-patch:8.1.0989: various small code ugliness
Problem:    Various small code ugliness.
Solution:   Remove pointless NULL checks. Fix function calls. Fix typos.
            (Dominique Pelle, closes vim/vim#4060)
bdace838c6
2021-03-29 18:29:25 -04:00
3dbcf69888 test/old: run most tests in test_regexp_latin.vim
Most tests here don't depend on 'set encoding=latin1'.

Skip Test_recursive_addstate() because of ASAN build.
2021-03-29 08:23:03 -04:00
8b60368c1b vim-patch:8.1.0958: compiling weird regexp pattern is very slow
Problem:    Compiling weird regexp pattern is very slow.
Solution:   When reallocating post list increase size by 50%. (Kuang-che Wu,
            closes vim/vim#4012)  Make assert_inrange() accept float values.
38f08e76ac

Omit changes to typval_compare()
because patch v8.0.1505 was not ported.
2021-03-29 08:23:02 -04:00
aa6adacd77 Make sure window is still valid in the middle of calling :lopen (#14240)
Make sure that oldwin is not invalid after splitting

Revisit this when porting vim patch v8.1.0892 and related quickfix patches.
2021-03-29 08:19:59 -04:00
fd62d39835 Make clint happy about spaces. 2021-03-29 13:52:28 +06:00
fdbba2ccf7 Api: Adding cterm color support to nvim_set_hl 2021-03-29 09:48:07 +06:00
8665a96b92 clang: fix compile warnings in tab code (#14239)
https://github.com/neovim/neovim/pull/13851
2021-03-28 18:42:22 -04:00
63c2a7af2d Merge pull request #13851 from VVKot/vim-8.1.0105
vim-patch:8.1.{0105,0114,0116,0126,0138,0154,0479,0542,0936}
2021-03-28 13:40:34 -04:00
6d4a922e07 Merge pull request #14091 from euclidianAce/euclidianAce/nvim_win_hide
api: add vim.api.nvim_win_hide
2021-03-28 19:07:56 +02:00
45236981d8 run docgen 2021-03-28 19:03:35 +02:00
2ed5a77602 Merge pull request #14232 from mjlbach/fix_utf16_ranges_again
lsp: fix utf-16 ranges to use second return value for incremental sync
2021-03-28 03:02:29 -07:00
32cf278a19 lsp: fix utf-16 ranges to use second return value for incremental sync 2021-03-28 02:22:13 -07:00
a70d904ad0 vim-patch:8.1.0936: may leak memory when using 'vartabstop'
Problem:    May leak memory when using 'vartabstop'. (Kuang-che Wu)
Solution:   Fix handling allocated memory for 'vartabstop'. (closes vim/vim#3976)
55c77cf2ea
2021-03-28 08:40:37 +01:00
7fc58ec99a vim-patch:8.1.0542: shiftwidth() does not take 'vartabstop' into account
Problem:    shiftwidth() does not take 'vartabstop' into account.
Solution:   Use the cursor position or a position explicitly passed.
            Also make >> and << work better with 'vartabstop'. (Christian
            Brabandt)
f951416a83
2021-03-28 08:38:21 +01:00
facb1d897e vim-patch:8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Problem:    Failure when setting 'varsofttabstop' to end in a comma. (Ralf
            Schandl)
Solution:   Reject value with trailing command.  Add test for invalid values
            (closes vim/vim#3544)
64f410742f
2021-03-28 08:37:04 +01:00
6f23291b8d vim-patch:8.1.0154: crash with "set smarttab shiftwidth=0 softtabstop=-1"
Problem:    Crash with "set smarttab shiftwidth=0 softtabstop=-1".
Solution:   Fall back to using 'tabstop'. (closes vim/vim#3155)
c9fe5ab3b0
2021-03-28 08:37:04 +01:00
18b73ea3c8 vim-patch:8.1.0138: negative value of 'softtabstop' not used correctly
Problem:    Negative value of 'softtabstop' not used correctly.
Solution:   Use get_sts_value(). (Tom Ryder)
33d5ab3795
2021-03-28 08:37:04 +01:00
2922f6e34b vim-patch:8.1.0126: various problems with 'vartabstop'
Problem:    Various problems with 'vartabstop'.
Solution:   Fix memory leak.  Fix crash. Add a few more tests. (Christian
            Brabandt, closes vim/vim#3076)
307ac5c68e
2021-03-28 08:37:04 +01:00
7ee09c61fe vim-patch:8.1.0116: display problem with 'vartabstop' and 'linebreak'
Problem:    Display problem with 'vartabstop' and 'linebreak'. (Chauca
            Fuentes)
Solution:   Call tabstop_padding(). (Christian Brabandt, closes vim/vim#3076)
a87b72cc31
2021-03-28 08:37:03 +01:00
3e55811acf vim-patch:8.1.0114: confusing variable name
Problem:    Confusing variable name.
Solution:   Rename new_ts to new_vts_array.  Change zero to NULL.
0119a59ffd
2021-03-28 08:37:03 +01:00
6752ac4968 vim-patch:8.1.0105: all tab stops are the same
Problem:    All tab stops are the same.
Solution:   Add the variable tabstop feature. (Christian Brabandt,
            closes vim/vim#2711)
04958cbaf2
2021-03-28 08:37:01 +01:00
b79596eb5e Merge pull request #14231 from mjlbach/fix_utf16_ranges
lsp: fix utf16 ranges for incremental sync
2021-03-27 19:02:48 -07:00
af683fdb57 lsp: fix utf16 ranges for incremental sync 2021-03-27 18:31:29 -07:00
2b663c061b viml: embed Lua syntax highlighting [skip ci] (#14213) 2021-03-28 00:43:06 +01:00
acd643bd49 Merge pull request #13621 from janlazo/vim-8.1.2326
vim-patch:8.1.{2326,2344,2398},8.2.0949
2021-03-27 11:29:32 -04:00
423f3bc3e2 test/old: skip Test_strptime() on Windows
POSIX strptime does not exist in Windows.
There is a C++ workaround but I don't know how to use it.
Julia ported BSD's "strptime()" but I can't compile the file
or embed the relevant code into src/nvim/os/time.c

I cannot use "#ifdef" in eval.lua because of function hashing.
"#ifdef" is required to point "strptime()" to NULL
such that "CheckFunction strptime" fails.
2021-03-27 10:58:01 -04:00
a7e0b0edbc vim-patch:8.2.0949: strptime() does not use DST
Problem:    Strptime() does not use DST.
Solution:   Set the tm_isdst field to -1. (Tomáš Janoušek, closes vim/vim#6230)
ea1233fccf
2021-03-27 10:53:42 -04:00
93e9cf4b6c vim-patch:8.1.2398: strptime() test fails on Japanese Mac
Problem:    strptime() test fails on Japanese Mac.
Solution:   Use %T instead of %X.
9a838fe543
2021-03-27 10:53:41 -04:00
3261ba98a2 vim-patch:8.1.2326: cannot parse a date/time string
Problem:    Cannot parse a date/time string.
Solution:   Add strptime(). (Stephen Wall, closes #)
10455d43fe

N/A patches for version.c:

vim-patch:8.1.2344: Cygwin: warning for using strptime()

Problem:    Cygwin: warning for using strptime().
Solution:   Move defining _XOPEN_SOURCE and __USE_XOPEN to vim.h. (Ken Takata,
            closes vim/vim#5265)  Use 700 for _XOPEN_SOURCE for mkdtemp().
6a228c6463
2021-03-27 10:53:41 -04:00
75a9db5b7d Merge pull request #14223 from janlazo/vim-8.2.2659
vim-patch:8.2.{1666,2045,2659,2662}
2021-03-27 10:10:11 -04:00
9118bf191e vim-patch:8.2.1666: the initial value of 'backupskip' can have duplicate items
Problem:    The initial value of 'backupskip' can have duplicate items.
Solution:   Remove duplicates, like when it is set later. (Tom Ryder,
            closes vim/vim#6940)
b00ef0508b
2021-03-27 09:29:18 -04:00
6da06bc249 vim-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)
7007e31bde

"Test_not_a_term" passes because Neovim does not support "--not-a-term" flag.
2021-03-27 08:27:44 -04:00
ff870232b8 test/old: run some tests from test_listlbr.vim
These tests pass without 'set encoding=latin1'.
2021-03-27 01:30:30 -04:00
1c49695d12 test/old: test_eval_func was removed 2021-03-27 01:18:07 -04:00
4bd919dc51 test/old: do not special-case test_autochdir
Use "CheckFunction" for standard error message
for missing "test_autochdir()".

Sync test_autochdir.vim to the latest Vim commit
because porting Vim patches for this file
modify other files and are too tedious to port.
2021-03-27 01:16:06 -04:00
ecd2729658 test/old: use CheckFunction, enable more tests
Some skipped tests have custom error messages.
Use ":CheckFunction" command for standard error message
on missing function.
2021-03-27 01:12:44 -04:00
618b17f575 vim-patch:8.2.2045: highlighting a character too much with incsearch
Problem:    Highlighting a character too much with incsearch.
Solution:   Check "search_match_endcol". (Christian Brabandt, closes vim/vim#7360)
448465e687
2021-03-27 01:12:44 -04:00
31e2546cc9 vim-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.
c61cb8bfe1
2021-03-26 21:09:16 -04:00
f0ace6d419 Merge pull request #13778 from steelsojka/fix-duplicate-query-files
fix(treesitter): dedupe runtime file list
2021-03-26 22:25:15 +01:00
98f9df253e fix(treesitter): check highlight queries exist 2021-03-26 11:25:19 -05:00
3c2bc05f94 treesitter: Update to 0.19.4+2 2021-03-26 10:23:39 +01:00
095f5da79c Merge pull request #14210 from bfredl/bordaa2
floats: handle interaction with popupmenu and border correctly
2021-03-25 09:42:26 +01:00
3000f6c56b floats: handle interaction with popupmenu and border correctly 2021-03-25 09:06:09 +01:00
9481310c26 Merge pull request #14203 from janlazo/vim-8.2.2647
vim-patch:8.2.{400,402,2647,2648}
2021-03-24 19:10:38 -04:00
b951d1ff1d vim-patch:8.2.0402: setting local instead of global flag
Problem:    Setting local instead of global flag.
Solution:   Prepend "g:" to "test_is_flaky".
30d53e2c11
2021-03-23 22:42:52 -04:00
f6585cae50 vim-patch:8.2.0400: not all tests using a terminal are in the list of flaky tests
Problem:    Not all tests using a terminal are in the list of flaky tests.
Solution:   Introduce the test_is_flaky flag.
3cdcb090a6

Cherry-pick g:test_is_flaky from patch v8.2.0557.
Ensure that test_is_flaky variable is set from the global scope..

N/A patches for version.c:

vim-patch:8.2.2647: terminal test sometimes hangs

Problem:    Terminal test sometimes hangs.
Solution:   Wait for the shell to display a prompt.
f4a2ed0714

vim-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.
c54f347d63

fixup! vim-patch:8.2.0400: not all tests using a terminal are in the list of flaky tests
2021-03-23 22:41:22 -04:00
1186f7dd96 Merge pull request #14191 from chentau/extmark_blockpaste
Extmarks: send correct buffer events on blockwise paste for nonuniform lines
2021-03-24 00:27:55 +01:00
7fbabbaa57 Extmarks: correct buffer events on blockwise paste 2021-03-23 14:06:57 -07:00
2a794b8f5d fix(treesitter): dedupe runtime file list 2021-03-23 12:58:27 -05:00
9f5c8226bb Merge pull request #14186 from mjlbach/feature/make_signature_help_beautiful
lsp: add syntax highlighting to signature help
2021-03-23 09:38:21 -07:00
ed20089877 Merge pull request #14194 from bfredl/provide_virt
memory error with ephemeral virt_text
2021-03-23 15:54:09 +01:00
927475bdf0 Fix(treesitter): Make treesitter.inspect_lang include last field name 2021-03-23 15:20:12 +01:00
a1a0bc618f Merge pull request #14190 from teto/fix-cursorlinenr
fix CursorLineNr with diff
2021-03-23 14:01:57 +01:00
06c191848b decorations: memory error with ephemeral virt_text 2021-03-23 13:58:18 +01:00
3e5efa50b6 Merge pull request #14193 from bfredl/msginit
screen: setup scrolling main screen when starting with display-=msgsep
2021-03-23 10:46:29 +01:00
80e122ae5d screen: setup scrolling main screen when starting with display-=msgsep 2021-03-23 09:34:36 +01:00
691a72bb68 Merge pull request #14124 from chentau/extmark_tab
Correctly splice extmarks on tab with `noexpandtab`
2021-03-23 08:59:14 +01:00
a92a8ef506 Correctly splice extmarks on tab with noexpandtab set 2021-03-22 20:26:25 -07:00
d41778c993 Merge pull request #14178 from andymass/vim-8.2.0088
[RFC] vim-patch 8.2.0088: insufficient tests for tags...
2021-03-22 20:35:24 -04:00
e0d0e46cf2 chore: add test for CursorLineNr with filler lines 2021-03-22 23:33:17 +01:00
f2e1709d49 fix: stop using CursorLineNr in front of fillers
filling lines in diff mode.
2021-03-22 23:33:17 +01:00
1df1098b0c Merge pull request #13998 from bfredl/border
floats: add MS-DOS mode (borders)
2021-03-22 23:27:59 +01:00
243820ebd0 floats: add borders (MS-DOS MODE) 2021-03-22 23:18:40 +01:00
3113d4befa lsp: add syntax highlighting to signature help 2021-03-22 10:57:21 -07:00
6fef28da58 Merge pull request #14184 from tjdevries/tjdevries/nit_diagnostics
lsp: some small diagnostic fixes
2021-03-22 10:07:52 -07:00
e5cfc7f3a0 wheel: move non-window code out of window.c 2021-03-22 15:42:26 +01:00
08ca5207cd w_grid_alloc: baseline impl 2021-03-22 15:42:26 +01:00
875979ec3f lsp: Unopened buffers return 0 for line count, which leads to broken positions 2021-03-22 10:22:23 -04:00
880fb0d146 lsp: Force re-display of diagnostics when opening a file 2021-03-22 10:21:56 -04:00
e25ebf6b4f Fix neovim tag bugs uncovered by vim-8.2.0088,
but not related to the patch.  Specifically:

    - settagstack()'s e_listreq is in the wrong place
    - in :ltag, vim_strncpy -> xstrlcpy length parameter is different
        xstrlcpy's length includes the null terminator (so add one)
    - in :ltag, STRNCAT -> xstrlcat takes dest size, not number to copy
        use snprintf instead
2021-03-21 12:06:23 -04:00
070e084a64 Merge pull request #14172 from janlazo/vim-8.2.2622
vim-patch:8.2.{2622,2624,2625,2626,2631,2634}
2021-03-21 12:04:06 -04:00
6519b18471 vim-patch:8.2.0088: insufficient tests for tags; bug in using extra tag field
Problem:    Insufficient tests for tags; bug in using extra tag field when
            using an ex command to position the cursor.
Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes vim/vim#5439)
830c1afc9d
2021-03-21 10:37:45 -04:00
c620ca4cc2 vim-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 vim/vim#7982)
f90c855c71
2021-03-21 10:35:26 -04:00
749a8b6be7 vim-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 vim/vim#7988)
a0c8aea479
2021-03-21 00:26:42 -04:00
0bf9f10da0 vim-patch:8.2.2625: rss files not recognized
Problem:    Rss files not recognized.
Solution:   Recognize .rss as XML. (Kivin Locke, closes vim/vim#7987)
af125866db
2021-03-20 22:27:51 -04:00
429c6d2d4f vim-patch:8.2.2624: atom files not recognized
Problem:    Atom files not recognized.
Solution:   Recognize .atom as XML. (Kivin Locke, closes vim/vim#7986)
74b99f6ab6

N/A patches for version.c:

vim-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 vim/vim#7978)
a555e6fcb6

vim-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 vim/vim#7978)
240014321b
2021-03-20 22:27:47 -04:00
e5bef5974e Merge pull request #14171 from vrischmann/insert-text-empty
runtime/lua/vim/lsp: check emptyness in get_completion_word
2021-03-20 17:51:56 -07:00
24ad2c7067 runtime/lua/vim/lsp: check emptyness in get_completion_word 2021-03-21 00:30:01 +01:00
dc8da7ba40 Merge pull request #14060 from andymass/vim-8.2.1703
[RFC] vim-patch:8.2.{1693,1703,1705}
2021-03-20 18:08:16 -04:00
049213b419 Merge pull request #14164 from andymass/vim-8.1.2020
[RFC] vim-patch 8.{1.2020,2.0093,2.0422}: add win_splitmove()
2021-03-20 15:59:53 -04:00
79575cfe8a Fix a failing test (highlight_spec.lua) 2021-03-20 15:56:52 -04:00
7e89606591 vim-patch:8.2.1705: "verbose hi Name" reports incorrect info after ":hi clear"
Problem:    "verbose hi Name" reports incorrect info after ":hi clear".
Solution:   Store the script context. (Antony Scriven, closes vim/vim#6975)
e8df010498

Also adds src/nvim/testdir/script_util.vim which originates from patch 8.2.1366
(a6296200bd)
because some tests in test_highlight.vim use it for testing :verbose.
Should merge this and older related patches later.

Also, fix collateral damage to test_options.vim

test_options tests for file name completion in the test directory, but
since we've added a new file, the test output is now different.  This
test is slightly different from upstream anyway, so for now we just add
the file name.  This may change when more upstream patches are added
which alter this test.
2021-03-20 15:56:37 -04:00
b0c0c50d32 Merge pull request #14160 from jamessan/automatic-version-updates
ci(gh): Automatically create PR for version.c updates
2021-03-20 12:12:48 -04:00
eca091a77c ci(gh): Automatically create PR for version.c updates
[skip ci]
2021-03-20 12:11:22 -04:00
0cec2d39c9 vim-patch:8.2.0422: crash when passing popup window to win_splitmove()
Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
Solution:   Disallow moving a popup window. (closes vim/vim#5816)
0f1563ffee

Add translated test for 8.2.0422 (popup->floating)
2021-03-19 23:02:34 -04:00
b2ec770070 vim-patch:8.2.0093: win_splitmove() can make Vim hang
Problem:    win_splitmove() can make Vim hang.
Solution:   Check windows exists in the current tab page. (closes vim/vim#5444)
7b94e77132
2021-03-19 23:02:34 -04:00
1ef4340f22 vim-patch:8.1.2020: it is not easy to change the window layout
Problem:    It is not easy to change the window layout.
Solution:   Add win_splitmove(). (Andy Massimino, closes vim/vim#4561)
d20dcb3d01
2021-03-19 23:02:28 -04:00
fa4ee00fa7 Merge pull request #14165 from mjlbach/feature/lsp_preview_location_syntax
lsp: set syntax instead of filetype for preview location highlighting
2021-03-19 13:35:14 -07:00
2358e52fc4 lsp: set syntax instead of filetype for preview location highlighting 2021-03-19 12:55:58 -07:00
0f7b6b2efd Merge pull request #14155 from janlazo/vim-8.2.2609
vim-patch:8.2.{2609,2611}
2021-03-18 20:49:42 -04:00
b5926f7f27 Merge pull request #14149 from Borwe/mine/uninstaller
[FEATURE] Add uninstall target for make and others
Closes #14105
2021-03-18 19:16:54 -04:00
f31b8dabfd Merge pull request #14144 from mfussenegger/lsp-workspace-edit-rename
lsp: Add support for create,rename,delete workspaceEdit resourceOperations
2021-03-18 12:27:16 -07:00
84213b5b9a lsp: Add support for delete workspaceEdit resource operation 2021-03-18 19:53:43 +01:00
191afb42be lsp: Add support for create workspaceEdit resource operation 2021-03-18 19:53:42 +01:00
5e401b693b lsp: Add support for file rename via workspaceEdit 2021-03-18 19:53:14 +01:00
bd2ea22a54 gitignore: src/nvim/testdir/test_result.log
PR https://github.com/neovim/neovim/pull/14063 added it by mistake.
2021-03-17 22:23:59 -04:00
2ae6705f87 vim-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 vim/vim#7976)
f8c52e8d08
2021-03-17 22:11:58 -04:00
f1f131d132 vim-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 vim/vim#7970)
3214812997
2021-03-17 22:00:50 -04:00
0ab88c2ea8 Merge pull request #14145 from teto/remove-tshighlighter
chore: remove deprecated lua module tshighlighter
2021-03-16 18:44:41 +01:00
b0599d2708 Merge pull request #14148 from mjlbach/mkd_round_3
lsp: update lsp_markdown syntax to not clash with built-in markdown syntax
2021-03-16 09:08:56 -07:00
84f10a7970 Add uninstall target for make and others 2021-03-16 15:33:39 +03:00
2f64cda49e lsp: update lsp_markdown syntax to not clash with built-in markdown syntax 2021-03-15 22:58:54 -07:00
2b0c34053d chore(ts): show grammar that triggers the error
to help debugging
2021-03-16 01:57:32 +01:00
b540141876 chore: remove deprecated lua module tshighlighter 2021-03-16 01:41:28 +01:00
054eb31dc7 Merge pull request #14098 from mjlbach/fix_highlighting_lsp_markdown
lsp: fix highlighting for lsp markdown code blocks
2021-03-15 10:28:05 -07:00
e8a0ff001f Merge pull request #14076 from mfussenegger/treesitter019
treesitter: Update to 0.19.3
2021-03-15 18:06:26 +01:00
ff749e3213 Merge pull request #14142 from bfredl/un_ns
api: destabilize nvim_set_hl_ns
2021-03-15 10:55:40 +01:00
bb6d2c9b7c api: destabilize nvim_set_hl_ns
The sematics and signature of this API is going to change, but we
don't wanna delay 0.5 for it. Mark API as unstable for now.
2021-03-15 09:58:39 +01:00
f5daf55c10 Merge pull request #14140 from jamessan/delete-release
ci(GHA/release): Delete the release when creating a new nightly
2021-03-14 20:55:35 -04:00
ba758ac553 ci(GHA/release): Delete the release when creating a new nightly
This reverts #13733.  Disabling delete of the release leaves behind a
draft release associated with the previous nightly tag, which is
annoying to cleanup.

In the rare circumstances that the creation of a new nightly fails after
deleting the previous nightly, the job can be re-run or a nightly can be
missing for a day.
2021-03-14 19:53:45 -04:00
a8694ff9c1 Merge pull request #14139 from jamessan/release-packages
ci(GHA/release): Stop installing gcc-multilib
2021-03-14 19:37:00 -04:00
dfa01b820f ci(GHA/release): Stop installing gcc-multilib
Recent changes in Xenial have made it uninstallable and we aren't
actually using anything from it for the release builds.
2021-03-14 19:27:50 -04:00
bdf3aeeede Merge pull request #14123 from smolck/skip_ci
Don't run CI on draft PRs
2021-03-14 18:30:27 -04:00
f2847e7ea1 Don't run CI on draft PRs 2021-03-14 17:23:57 -05:00
b1f7c4e7d6 Merge pull request #14131 from janlazo/vim-8.2.2596
vim-patch:8.2.{2596,2601,2604}
2021-03-14 15:39:37 -04:00
c47dd5376e vim-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 vim/vim#7962)
240309c9bf
2021-03-14 12:08:31 -04:00
9e4c1fa073 vim-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.
6bce5856b5
2021-03-14 11:54:36 -04:00
519848f64e vim-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 vim/vim#7958)
41cd80335c
2021-03-14 11:54:36 -04:00
3c8583e43b Merge pull request #14020 from chentau/float_resize
Update lines after shrinking floating window
2021-03-14 08:35:48 +01:00
314b222c25 Fix click on foldcolumn with vsplit (#14127) 2021-03-13 23:12:18 +01:00
9808c8d9dd Merge pull request #14126 from janlazo/vim-8.2.2593
vim-patch:8.2.{2593,2594,2595}
2021-03-13 10:38:21 -05:00
a1cdb6ca6a vim-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. (vim/vim#7899)
9e813b3dea
2021-03-13 10:16:23 -05:00
60670c1fd3 vim-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 vim/vim#7951)
0756f757ed

N/A patches for version.c:

vim-patch:8.2.2593: list of distributed files is incomplete

Problem:    List of distributed files is incomplete.
Solution:   Add a file and rename another.
0de8e2d6a3
2021-03-13 09:06:57 -05:00
5d5e018a5c Merge pull request #14125 from janlazo/vim-8.2.2591
vim-patch:8.2.{2341,2452,2591}
2021-03-13 08:27:37 -05:00
a4ea602788 vim-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.
1bb4de5302

Port most of patch v8.2.0335 to complete script-local functions
if the name starts with "s:".
2021-03-12 23:20:56 -05:00
b650d2d8d9 vim-patch:8.2.2452: no completion for the 'filetype' option
Problem:    No completion for the 'filetype' option.
Solution:   Add filetype completion. (Martin Tournoij, closes vim/vim#7747)
d5e8c92816
2021-03-12 21:42:09 -05:00
ea99cbc85a vim-patch:8.2.2591: Poke files are not recognized
Problem:    Poke files are not recognized.
Solution:   Add a filetype entry. (Matt Ihlenfield)
c80f647512
2021-03-12 18:34:58 -05:00
d38508d88a Merge pull request #13567 from bfredl/termpipe
api: allow open non-current buffer as terminal (+ xmas bonus)
2021-03-12 16:52:05 +01:00
ed08936987 api: allow open non-current buffer as terminal (+ xmas bonus)
vim.api.nvim_chan_send(vim.api.nvim_open_term(0), io.open("/path/to/smile.cat", "r"):read("*a"))
2021-03-12 14:44:47 +01:00
dc8273f2f1 vim-patch:8.2.2588: build failure with tiny features (#14099)
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.  Run recover test separately.
23b32a8d6b

N/A patches for version.c:

vim-patch:8.2.1048: build failure without the eval feature

Problem:    Build failure without the eval feature.
Solution:   Add dummy typedef.
9d40c63c7d

vim-patch:8.2.1828: build failure without the +eval feature

Problem:    Build failure without the +eval feature.
Solution:   Add dummys for ex_block and ex_endblock.
1b1e9df78b

vim-patch:8.2.2293: build failure with Motif

Problem:    Build failure with Motif. (Tony Mechelynck)
Solution:   Use empty_option instead of empty_options.
bb0956fc65

vim-patch:8.2.2410: build failure without the +profiling feature

Problem:    Build failure without the +profiling feature.
Solution:   Add dummy argument to macro.
ff0e57fe77

vim-patch:8.2.2514: Vim9: build error in tiny version

Problem:    Vim9: build error in tiny version.
Solution:   Add #ifdef.
2379f87eb4
2021-03-11 17:58:37 -05:00
8fe19d9d89 screen: make ui_compositor aware of the intended size of a float 2021-03-11 12:27:29 -08:00
1ce899db7d Merge pull request #14106 from mfussenegger/lsp-incremental-sync
lsp: Use incremental sync by default
2021-03-11 11:43:03 -08:00
16827817bb lsp: Use incremental sync by default
With the new implementation added in
https://github.com/neovim/neovim/pull/14079 I think this is now working
well enough to enable it by default.

There are high CPU usage issues popping up now and then and they might
at least partially be related to the full-text sync.
2021-03-11 20:13:52 +01:00
5d20fc4fc5 Merge pull request #14107 from mfussenegger/gen-docs
Update lsp, lua and api docs (gen_vimdoc.py)
2021-03-11 08:26:59 -08:00
02271009ca Update lsp, lua and api docs (gen_vimdoc.py) 2021-03-11 16:16:26 +01:00
6b7cde3dd0 lsp: fix highlighting for lsp markdown code blocks 2021-03-10 17:26:22 -08:00
097ec71bd8 aarch64/linux: fix build by updating LuaJIT (#14096) 2021-03-10 18:14:14 -05:00
4ed860a64c Merge pull request #14073 from mjlbach/feature/syntax_highlight_rule
lsp: add custom syntax rule for floating window
2021-03-10 14:15:24 -08:00
d1074e0077 lsp: Resolve codeLense server capabilities (#14056) 2021-03-10 17:02:09 -05:00
564dd7d8db lsp: get_language_id (#14092)
* Allow specifying a languageId for a lsp

For some languages the filetype might not match the languageId the
language server accepts. In these cases the config for the language
server can contain a function which gets the current buffer and filetype
and returns a languageId. When it isn't provided the filetype is used
instead.

Example:
```lua
require'lspconfig'.sourcekit.setup{
    get_language_id = function(bufnr, ft)
        return 'swift'
    end;
}
```

Closes #13093

* lsp: Change to get_language_id

Co-authored-by: Jan Dammshäuser <mail@jandamm.de>
2021-03-10 16:53:23 -05:00
3fbd9ed4ab api: clarify difference between win_hide and win_close 2021-03-10 13:29:01 -06:00
c29494b719 Merge pull request #14095 from mjlbach/lsp_incremental_endline_fix
lsp: fix endline such that it cannot point outside the buffer range
2021-03-10 09:37:30 -08:00
53414555eb lsp: fix endline such that it cannot point outside the buffer range 2021-03-10 09:17:20 -08:00
c266c2f36e tui: improve support for tmux, GNU Screen
Wrapping it in DCS allows the get_bg features to work with tmux, GNU Screen.
2021-03-11 00:45:16 +09:00
300e71de9c runtime/termdebug 82be4849eed0b8fbee45bc8da99b685ec89af59a (#13660)
port termdebug dissasembly window only (termdebug.vim)

This patch adds disassembly window to Termdebug

  :Asm should bring up disassembly window

or setting:

  g:termdebug_disasm_window

Values greater than 1 will set disasm window height.

Code works by calling gdb disassemble command, demangling output and
storing in Termdebug-asm-listing buffer + window.

Current pc address is parsed from 'addr=' cursor msg and we search for
that address in the disasm window. When the search fails, we execute a
new "disassemble $pc" command.

When in a location without a proper stack frame, "disassemble $pc" can
fail and in this case we add a +length argument and try again.

Tested with x86_64 gdb v10.1 and v8.2.1, and aarch64 gdb v7.12.
2021-03-10 08:20:22 -05:00
7844ca2e05 Merge pull request #14065 from bfredl/overlaymode
more virt_text display options
2021-03-10 13:28:07 +01:00
425bc438ae decorations: add additional styling of virt_text overlays 2021-03-10 12:11:05 +01:00
d49177afd9 lsp: add custom syntax rules for lsp floating window 2021-03-09 21:15:10 -08:00
0869cbd55c Merge pull request #14079 from mjlbach/incremental_sync
lsp: add incremental text synchronization
2021-03-09 21:03:31 -08:00
3a342f9cc9 api: add vim.api.nvim_win_hide 2021-03-09 22:51:56 -06:00
e4e51c69d7 lsp: add incremental text synchronization
* Implementation derived from and validated by vim-lsc authored by Nate
  Bosch
2021-03-09 20:14:08 -08:00
cc23c95bcc Merge pull request #14088 from janlazo/vim-8.2.2577
vim-patch:8.1.0783,8.2.{1507,2152,2438,2577}
2021-03-09 19:44:26 -05:00
7da8056607 vim-patch:8.2.2438: out of bounds compiler warning
Problem:    Out of bounds compiler warning.
Solution:   Increase the size of uf_name.
6a12e3342d

Do not set size of uf_name to avoid compiler warnings.
Port only the comments.
2021-03-09 18:38:04 -05:00
effd234960 vim-patch:8.2.1507: using malloc() directly
Problem:    Using malloc() directly.
Solution:   Use ALLOC_ONE().  Remove superfluous typecast.  (Hussam al-Homsi,
            closes vim/vim#6768)
51b6eb47b3
2021-03-09 18:38:04 -05:00
f7f7146588 vim-patch:8.2.2577: compiler warning for type conversion
Problem:    Compiler warning for type conversion.
Solution:   Add a typecast. (Mike Williams)
9355ae4149

N/A patches for version.c:

vim-patch:8.1.0783: compiler warning for signed/unsigned

Problem:    Compiler warning for signed/unsigned.
Solution:   Add type cast.  Change type of buffer. (Ozaki Kiichi, closes vim/vim#3827)
63c0ccd2b6

Neovim was refactored to prefer char type for string functions, not char_u.

vim-patch:8.2.2152: screenpos() does not include the WinBar offset

Problem:    screenpos() does not include the WinBar offset.
Solution:   Use W_WINROW() instead of directly using w_window. (closes vim/vim#7487)
8dd46e72cf

W_WINROW() was removed so port only the test changes.
The test is currently skipped.
2021-03-09 18:38:04 -05:00
e355cc8cc5 Merge pull request #13875 from smolck/vim_fn_error_on_api
vim.fn: throw error when trying to use API function
2021-03-09 23:12:23 +01:00
d1899bb5f4 use pcall_err 2021-03-09 15:23:42 -06:00
b73e653703 treesitter: Update to 0.19.3 2021-03-09 19:21:26 +01:00
7c204af87a Merge pull request #13686 from bfredl/fastevent
state: throttle batched event processing when input is available
2021-03-08 17:55:59 +01:00
f901149de4 state: throttle batched event processing when input is available
before, calling vim.schedule() from inside an event would execute
the scheduled callback immediately after this event without
checking for user input in between. Break event processing
whenever user input or an interrupt is available.
2021-03-08 16:08:58 +01:00
c12ea02e0b Merge pull request #14070 from janlazo/vim-8.2.2564
vim-patch:8.1.1016,8.2.{890,1513,1805,2345,2564}
2021-03-07 15:56:23 -05:00
5c4fbe34f9 Merge pull request #13993 from teto/gendoc
improve vimdoc generation
2021-03-07 17:20:09 +01:00
667e3bfb6e Merge pull request #13004 from jgehrig/jg-neovim-qt-runtime
fix Windows missing QtSVG DLL
2021-03-07 20:05:05 +09:00
8996a12d82 vim-patch:8.2.1513: cannot interrupt shell used for filename expansion
Problem:    Cannot interrupt shell used for filename expansion. (Dominique
            Pellé)
Solution:   Do set tmode in mch_delay(). (closes vim/vim#6770)
0981c8729e

Neovim does not run settmode() in os_delay() so this patch is mostly N/A.
Do not port Vim's flags (ie. MCH_DELAY_SETTMODE) for mch_delay().
2021-03-06 22:11:42 -05:00
f135e511c0 vim-patch:8.1.1016: MS-Windows: No color in shell when using "!" in 'guioptions
Problem:    MS-Windows: No color in shell when using "!" in 'guioptions.
Solution:   Don't stop termcap when using a terminal window for the shell.
            (vim-jp, closes vim/vim#4117)
049ca59236

N/A patches for version.c:

vim-patch:8.2.0890: no color in terminal window when 'termguicolor' is set

Problem:    No color in terminal window when 'termguicolor' is set.
Solution:   Clear the underline color. (closes vim/vim#6186)
1e5f8f6d65

vim-patch:8.2.1805: Unix: terminal mode changed when using ":shell"

Problem:    Unix: terminal mode changed when using ":shell".
Solution:   Avoid calling settmode() when not needed. (issue vim/vim#7079)
80361a5f2b

vim-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 vim/vim#7673,
            closes vim/vim#609, closes vim/vim#5526)
681fc3fa78

vim-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 vim/vim#7926)
51b477f74f
2021-03-06 22:03:29 -05:00
0496b572ac Merge pull request #13919 from TheAlakazam/lsplogfix
fix: fix empty line in lsp log after each run
2021-03-06 09:40:57 -08:00
b3dd856f2b Merge pull request #14052 from phaazon/fix/typo
Fix a typo in the Lua documentation for nvim_add_highlight().
2021-03-06 13:21:44 +01:00
399b47fddb Merge pull request #14066 from LeeWannacott/clarify-nvim-put
Clarify that nvim_put()'s {after} and {follow} parameters expect boolean values true, or false.
2021-03-06 13:17:42 +01:00
d8dff33e4b Added If true to show that {after} and {follow} parameters of nvim_put() are expecting boolean values 2021-03-07 00:54:13 +13:00
ea99e7f2ab Forgot to add colon to the {follow} parameters statement 2021-03-07 00:31:58 +13:00
cde94598ed Clarify that nvim_put()'s {after} and {follow} parameters expect boolean values true, or false. 2021-03-07 00:06:13 +13:00
82c09f7c0b lsp: add explicit entry on lsp log start
fix: address typo and review comments
2021-03-06 10:39:40 +05:30
3fbff98cfd Merge pull request #13793 from mjlbach/fix_terminating_eol_diagnostic
[RDY] lsp: fix diagnostic reported on terminating EOL character
2021-03-05 07:27:50 -08:00
8601e8b0d6 vim-patch:8.2.1703: ":highlight clear" does not restore default link
Problem:    ":highlight clear" does not restore default link.
Solution:   Remember the default link and restore it. (Antony Scriven,
            closes vim/vim#6970, closes vim/vim#4405)
213da551de
2021-03-05 01:45:54 -05:00
4e6b31d978 vim-patch:8.2.1693: "hi def" does not work for cleared highlight
Problem:    "hi def" does not work for cleared highlight.
Solution:   Check the "sg_cleared" flag. (Maxim Kim, closes vim/vim#6956,
            closes vim/vim#4405)
05eb5b9cae
2021-03-05 01:45:50 -05:00
8f4b9b8b7d Merge pull request #14048 from saadparwaiz1/runtime/haskell
Update Runtime Files For Haskell
2021-03-04 22:48:16 -05:00
115488105d Merge pull request #14059 from mjlbach/fix/no_notification_lsp_sigterm
lsp: don't invoke vim.notify on sigterm of language server
2021-03-04 16:02:43 -08:00
58be81d645 lsp: don't invoke vim.notify on sigterm of language server 2021-03-04 13:50:49 -08:00
c50b737d6f Merge pull request #14047 from mjlbach/feature/notify_on_crash
lsp: invoke vim.notify when client exits with code or signal other than 0
2021-03-04 12:27:46 -08:00
bdb2512325 lsp: invoke vim.notify when client exits with code or signal other than 0 2021-03-04 10:55:50 -08:00
e55c27fc6e more generic shebang for lua2dox_filter
previous one was not working/ or use /bin/sh
2021-03-04 15:44:40 +01:00
513ac58043 fix: section_name must be a dict {filename:name}
else it was triggering an error during regeneration of the files.
2021-03-04 15:44:40 +01:00
55d6699dfd chore: rename progress_callback to progress_handler 2021-03-04 15:42:05 +01:00
a167ae6d5d fix(flake): can now generate vimdoc
and removed warning about deprecated usage of stdenv.lib

also can run `make pylint shlint`.
2021-03-04 15:42:05 +01:00
f2fc44d50b [RDY] Fix click on foldcolumn if it has tabline (#13982)
* Fix click on foldcolumn if it has tabline
* Fixes to correctly determine if tablie was clicked when multigrid is enabled
* Separate foldcolumn checks into functions
* Add test case for click on foldcolumn with split window
* Fix foldcolumn click used nvim_input() on multigrid enabled
2021-03-04 13:54:22 +01:00
d7008418b7 Fix a typo in the Lua documentation for nvim_create_namespace(). 2021-03-04 13:48:13 +01:00
df4440024b vim-patch:30e9b3c42567 (#13936)
Update runtime files
30e9b3c425
2021-03-03 18:19:01 -05:00
6995fad260 Merge pull request #13973 from chentau/on_bytes_undofile
New versions of neovim will not read undofiles written by nvim before this merge (there will be an error message about incopmatible version). Nvim 0.4 (or an master up to bda12927be ) can be used to recover older undofiles, so if you worried about unsaved changes lurking around in undofiles it would make sense to keep such version around somewhere to recover them.

This is a necessary change to keep tree-sitter and plugins dependent on byte-level buffer change events fully working with undo states from a undofile. If there is a clear demand we might implement reading of the old format. Such recovered buffers will not be be fully functional with plugins relying on buffer updates or tree-sitter, however.
2021-03-03 09:45:06 +01:00
1888d9cbd0 runtime/haskell: 4f4d51a942cc2c6b3e936ee0f93f00c2d000065c
port syntax file only
2021-03-03 02:00:56 +00:00
6cfd5d7163 runtime/haskell: 8fe1000e9c3438d0ff36cf2340f0f0e48f8fb89f
port haskellcomplete file only
2021-03-03 01:55:43 +00:00
af0a9da975 runtime/cabal: 23515b4ef7580af8b9d3b964a558ab2007cacda5
port cabal, cabalconfig, cabalproject syntax file
2021-03-03 01:54:39 +00:00
4053b7b1ca runtime/cabal: 4f4d51a942cc2c6b3e936ee0f93f00c2d000065c
port cabal syntax file only
2021-03-03 01:54:33 +00:00
bda12927be Merge pull request #14041 from janlazo/vim-8.2.2560
vim-patch:8.1.{680,1901},8.2.{1043,2196,2236,2551.2559,2560}
2021-03-02 18:43:52 -05:00
1edc0285c4 vim-patch:8.2.1043: %a item in 'statusline' not tested
Problem:    %a item in 'statusline' not tested.
Solution:   Add a test. (Dominique Pellé, closes vim/vim#6318)
4014e2ceb0

Do not run test_statusline.vim in test_alot.vim
because test_statusline.vim runs separately in Vim since patch v8.2.0164.
2021-03-02 18:19:14 -05:00
f42e932df4 Extmarks: Save extmark undo information to undofile. 2021-03-02 12:45:54 -08:00
db96edb58d lsp: fix diagnostic reported on terminating EOL character 2021-03-02 09:42:00 -08:00
f32acc70e8 vim-patch:8.2.2236: 'scroll' option can change when setting the statusline
Problem:    'scroll' option can change when setting the statusline or tabline
            but the option context is not updated.
Solution:   Update the script context when the scroll option is changed as a
            side effect. (Christian Brabandt, closes vim/vim#7533)
746670604a
2021-03-02 00:35:52 -05:00
a5bacdbfb4 vim-patch:8.1.1901: the +insert_expand feature is not always available
Problem:    The +insert_expand feature is not always available.
Solution:   Graduate the +insert_expand feature.
e2c453d38f
2021-03-01 23:41:10 -05:00
e50875b3e3 vim-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 vim/vim#7899)
39d4cab494

N/A patches for version.c:

vim-patch:8.1.0680: not easy to see what features are unavailable

Problem:    Not easy to see what features are unavailable.
Solution:   Highlight disabled features in the :version output. (Nazri Ramliy,
            closes vim/vim#3756)
c85ffc9dab

vim-patch:8.2.2196: :version output has extra spaces in compile and link command

Problem:    :version output has extra spaces in compile and link command.
Solution:   Adjust QUOTESED. (closes vim/vim#7505)
abcbb0e9ad

vim-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 vim/vim#7902)
d0bce504ec

vim-patch:8.2.2559: MS-Windows: guifont test fails on Windows XP

Problem:    MS-Windows: guifont test fails on Windows XP.
Solution:   Check windowsversion().
3650fd7098
2021-03-01 23:40:39 -05:00
6646280d1a chore: revert unrelated changes in test 2021-02-27 10:02:56 -06:00
1d4a7c6039 test: use assert_alive helper rather than eq 2021-02-27 09:38:38 -06:00
a9eeeec5d5 test: segfault test for empty buffer paste on term 2021-02-26 19:55:32 -06:00
409b2711fe fix: segfault when pasting in term with empty buffer 2021-02-26 19:38:07 -06:00
c1fbc2ddf1 Merge pull request #14022 from crispgm/lsp-start-error
lsp: prompt correct error when language server start fails
2021-02-26 02:41:29 -08:00
365c353c9a fix: show error when language server start fails and prevent future requests 2021-02-26 17:24:18 +08:00
0c7610cf9d Merge pull request #14014 from mfussenegger/textDocumentSync
LSP: Resolve text_document_save capability according to spec
2021-02-25 10:25:14 -08:00
a2b6e5ed4e Merge pull request #14004 from erw7/fix-fic
option: fix problem with fileignorecase not being set properly
2021-02-25 12:45:53 -05:00
eff7666163 LSP: Resolve text_document_save capability according to spec
Fixes https://github.com/neovim/neovim/issues/13989
See https://github.com/microsoft/language-server-protocol/issues/288
2021-02-25 10:08:14 +01:00
34d12e7dd7 path.c: fix path_fnamencmp
Fix the problem that the last comparison of strings when p_fic is true was
not ignore case.
2021-02-25 13:50:31 +09:00
6deabca3e7 eval: add fname_case to feature list 2021-02-25 13:50:31 +09:00
b2f1969f82 option: fix problem with fileignorecase not being set properly 2021-02-25 13:50:30 +09:00
e55ded00cf Merge pull request #14008 from mfussenegger/docs-update
Update lsp and api docs with gen_vimdoc changes
2021-02-24 15:37:24 -08:00
b5292a047d Update lsp and api docs with gen_vimdoc changes
Applies the changes generated with ./scripts/gen_vimdoc.py to add
missing documentation.
2021-02-24 23:44:52 +01:00
7d82aaa6f5 [LSP] Add in more docs for highlight groups with document_highlight() (#13614)
Currently it's not 100% clear that without setting these, using the autocomds
to utilize the `textDocument/documentHighlight` functionality, nothing will
actually be visible since the highlight groups don't have any details. This
just adds in a couple simple extra notes to make sure that's done
2021-02-24 17:23:47 +01:00
d290da70b7 Merge pull request #14001 from janlazo/vim-8.2.2545
vim-patch:8.2.{2545,2547,2548}
2021-02-24 09:26:17 -05:00
ab5083b5fc pos: define MAXCOL to INT_MAX
Partial port of patch v8.1.0953.
Remove useless casts on MAXCOL.
2021-02-23 23:00:06 -05:00
6b7cc45c48 fix: treesitter languagetree crash when using telescope buffer previewer (#13986) 2021-02-23 21:39:35 -05:00
ceed85ea43 vim-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.
7d41410a45
2021-02-23 20:27:04 -05:00
9b5e3ba32d vim-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 vim/vim#7889)
2c6553498e

N/A patches for version.c:

vim-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 vim/vim#7890)
eba13e4ea2
2021-02-23 20:24:41 -05:00
0450e155d4 vim-patch:8.2.2233: cannot convert a byte index into a character index (#13978)
Problem:    Cannot convert a byte index into a character index.
Solution:   Add charidx(). (Yegappan Lakshmanan, closes vim/vim#7561)
17793ef23a
2021-02-22 20:13:14 -05:00
9d5f842807 lsp: remove deprecated references to 'callbacks' (#13945)
vim.lsp.callbacks was deprecated a few months ago. This is a cleanup before the release.
Use vim.lsp.handlers instead.
2021-02-23 00:02:51 +01:00
46a58b74f4 feat(lsp): use vim.notify for some errors (#13992) 2021-02-22 23:31:12 +01:00
fb2adadc9e Merge pull request #13988 from janlazo/vim-8.1.1310
vim-patch:8.1.1310: named function arguments are never optional
2021-02-22 15:04:16 -05:00
bca19138bf tui: fix possibility of evaluating uninitialized variables (#13987) 2021-02-22 16:55:28 +01:00
77bae79c07 fixup! vim-patch:8.1.1310: named function arguments are never optional 2021-02-22 09:27:49 -05:00
66b0ab0883 vim-patch:8.1.1310: named function arguments are never optional
Problem:    Named function arguments are never optional.
Solution:   Support optional function arguments with a default value. (Andy
            Massimino, closes vim/vim#3952)
42ae78cfff
2021-02-22 09:16:41 -05:00
7bcac75f30 Merge pull request #13952 from bfredl/overlay
decorations: allow virt_text overlay at any column
2021-02-22 10:17:44 +01:00
4781333a7a decorations: allow virt_text overlay at any column 2021-02-22 09:40:06 +01:00
595f6e4d64 vim-patch:8.2.2070: can't get the exit value in VimLeave(Pre) autocommands (#13981)
Problem:    Can't get the exit value in VimLeave or VimLeavePre autocommands.
Solution:   Add v:exiting like in Neovim. (Yegappan Lakshmanan, closes vim/vim#7395)
f0068c5154

Rearrange VimVarIndex enums and vimvars[] entries to sync with  Vim.

N/A patches for version.c:

vim-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.
723ef5db98
2021-02-20 23:45:14 -05:00
1caf58578c lsp: Fix text edits operating on the last line of a document (#13677)
`lines` can be empty, in which case `#lines[#lines]` failed with an
error:

    lsp/util.lua:214: attempt to get length of a nil value
2021-02-19 22:20:42 -05:00
b2fcfc65b7 lsp: client stop cleanups (#13877)
* lsp: client stop cleanups

* Add diagnostic clearing to client.stop() method used by nvim-lspconfig
* Clear diagnostic cache to prevent stale diagnostics on client restart

* lsp: Add test for vim.lsp.diagnostic.reset
2021-02-19 22:05:49 -05:00
4d5dbea4f4 [RFC] ":source" sources from current buffer if filename is omitted (#11444)
Fix https://github.com/neovim/neovim/issues/8722
2021-02-18 01:25:51 -05:00
d08e983c6b Merge pull request #13968 from janlazo/runtime-tar
runtime/tar: port latest files
2021-02-18 01:13:40 -05:00
b46a92f519 runtime/tar: 23515b4ef7580af8b9d3b964a558ab2007cacda5
Port tar files only in order to support '*.tar.zst' files.

Close https://github.com/neovim/neovim/pull/13337
2021-02-17 23:59:17 -05:00
d3c6f74498 runtime/tar: 8024f936368336241406137a2fa78ed5ee9000a6
Port tar runtime files only.
2021-02-17 23:54:40 -05:00
1d84277738 runtime/tar: 2963456ff2b740244b3a064785fe681b1998d75e
Port tar files for release v31 only.
2021-02-17 23:39:37 -05:00
18f90336cb vim-patch:8.2.2523: Svelte filetype not recognized (#13961)
Problem:    Svelte filetype not recognized.
Solution:   Add a detection rule. (Brian Ryall, closes vim/vim#7858)
c0fcb6e0b1
2021-02-18 00:22:48 +01:00
64b7d7ae78 vim-patch:8.2.2522: Beancount filetype not recognized (#13960)
Problem:    Beancount filetype not recognized.
Solution:   Add a detection rule. (Brian Ryall, closes vim/vim#7859)
9bbd883b35
2021-02-18 00:20:07 +01:00
2dd383c943 fix(flake): add debuginfo to nvim-debug (#13947)
nvim-debug was missing symbols.
adding the lock file to remove the flake warning message as well.
2021-02-17 18:58:40 +01:00
d623400cad Merge pull request #13944 from chentau/on_bytes_doc
Doc: update documentation for on_bytes
2021-02-17 13:14:18 +01:00
d966e0142d Doc: update documentation for on_bytes 2021-02-17 00:47:19 -08:00
4bc74c2431 netrw: move netrw_home to XDA_DATA_HOME (#13939) 2021-02-16 21:21:43 -05:00
5006881b0c Issue 12928: Windows missing QtSVG DLL
We should copy the entire output of windeployqt. Currently several DLLs
are missing including one required to display the window icon.
2021-02-16 19:34:16 -05:00
03383ee27b doc: Update vim_diff.txt (#13954)
Update vim_diff.txt to reflect the following patches:

patch 8.1.1113: making an autocommand trigger once is not so easy
patch 8.2.2128: there is no way to do something on CTRL-Z
patch 8.2.2508: cannot change the character displayed in non existing lines
patch 8.2.2518: 'listchars' should be window-local
2021-02-16 19:50:06 +01:00
772421f6b1 Merge pull request #13692 from mjlbach/fix_cursor_respect_current_line
fix_cursor: do not change line number when edit will not impact cursor row
2021-02-16 18:32:38 +01:00
7250d521c5 Merge pull request #13949 from janlazo/runtime-netrw
runtime/netrw: port missing Vim 8.1,8.2 runtime patches
2021-02-16 09:24:17 -05:00
44dac91501 runtime/netrw: 207f009326c8f878defde0e594d7d9ed9860106e
Port runtime/doc/pi_netrw.txt only.
2021-02-16 07:58:05 -05:00
d29553d4a9 runtime/netrw: 8024f936368336241406137a2fa78ed5ee9000a6
Port runtime/doc/pi_netrw.txt only.
2021-02-16 07:55:03 -05:00
44ba77e589 runtime/netrw: 2963456ff2b740244b3a064785fe681b1998d75e
Port netrw files for release v168 only.
2021-02-16 07:51:25 -05:00
8d2c76c80c runtime/netrw: 469bdbde1e8ea8110705327ab193acca79296742
Port runtime/doc/pi_netrw.txt only.
2021-02-15 21:32:28 -05:00
803be53cf7 runtime/netrw: 2ed639abdc4000436115f378e28320b7bee38a6e
Port runtime/doc/pi_netrw.txt only.
2021-02-15 21:31:30 -05:00
08947d1642 runtime/netrw: 91359014b359cf816bf943fe2c7d492996263def
Port netrw files for release v167 only.
2021-02-15 21:29:20 -05:00
9b662a57db runtime/netrw: 09c6f265b21065ffa9437837b1d0955137175e45
Port runtime/doc/pi_netrw.txt only.
2021-02-15 21:21:10 -05:00
68816c7e0a runtime/netrw: 574ee7bc1246070dba598f9561a2776aa1a10d07
Port runtime/doc/pi_netrw.txt only.
2021-02-15 21:19:47 -05:00
e35c766518 runtime/netrw: 5ef1c6a4838a9629b793f3ae676f72a764171b00
Port netrw files only.
2021-02-15 21:16:27 -05:00
dc3ca16a99 Merge pull request #13930 from janlazo/vim-8.2.1902
vim-patch:8.2.{54,64,576,925,1056,1058,1902,1903,1904}
2021-02-14 11:36:12 -05:00
147d40f2a0 vim-patch:8.2.0925: getcompletion() does not return command line arguments
Problem:    Getcompletion() does not return command line arguments.
Solution:   Add the "cmdline" option. (Shougo, closes vim/vim#1140)
1f1fd44ef7
2021-02-14 10:00:59 -05:00
96ca0e2142 Merge pull request #13935 from bfredl/undotime
autoread episode III: revenge of the trees
2021-02-14 14:53:36 +01:00
c7a65fe6a1 buffer_updates: autoload episode III: revenge of the trees 2021-02-14 11:10:36 +01:00
e87c30a196 vim-patch:8.2.0064: diffmode completion doesn't use per-window setting
Problem:    Diffmode completion doesn't use per-window setting.
Solution:   Check if a window is in diff mode. (Dominique Pell, closes vim/vim#5419)
efcc329020
2021-02-13 18:22:04 -05:00
54cd7298f8 vim-patch:8.2.0054: :diffget and :diffput don't have good completion
Problem:    :diffget and :diffput don't have good completion.
Solution:   Add proper completion. (Dominique Pelle, closes vim/vim#5409)
ae7dba8969
2021-02-13 18:17:25 -05:00
fd44bd4d4f vim-patch:8.2.1056: wrong display when mixing match conceal and syntax conceal
Problem:    Wrong display when mixing match conceal and syntax conceal.
Solution:   Adjust how conceal flags are used. (closes vim/vim#6327, closes vim/vim#6303)
211dd3fd82
2021-02-13 17:05:06 -05:00
34291eba80 vim-patch:8.2.1058: multiline conceal causes display errors
Problem:    Multiline conceal causes display errors.
Solution:   Do not allow conceal cross over EOL. (closes vim/vim#6326, closes vim/vim#4854,
            closes vim/vim#6302)
fc838d6cb0

Port test_conceal.vim but skip tests that require screendumps.
2021-02-13 16:15:00 -05:00
cdace43b6c vim-patch:8.2.1904: still using default option values after using ":badd +1"
Problem:    Still using default option values after using ":badd +1".
Solution:   Find a window where options were set.  Don't set the window when
            using ":badd".
89b693e562
2021-02-13 14:27:17 -05:00
a2aeed013c vim-patch:8.2.1903: buffer test fails with normal features
Problem:    Buffer test fails with normal features.
Solution:   Use 'numberwidth' instead of 'conceallevel' in the test.
37e4e03c67
2021-02-13 13:50:00 -05:00
6855a55d53 vim-patch:8.2.0576: some errors are not covered by tests
Problem:    Some errors are not covered by tests.
Solution:   Add a few more tests. (Dominique Pelle, closes vim/vim#5920)
067297e16a
2021-02-13 13:47:29 -05:00
9860d14af3 vim-patch:8.2.1902: default option values changed with :badd for existing buffer
Problem:    Default option values are changed when using :badd for an existing
            buffer.
Solution:   When calling buflist_new() pass a zero line number. (closes vim/vim#7195)
e974fa7b2b
2021-02-13 13:40:09 -05:00
5ad32885d4 vim-patch:8.2.2499: "vim -g --version" does not redirect output (#13922)
Problem:    "vim -g --version" does not redirect output.
Solution:   Reset gui.starting when showing version info. (closes vim/vim#7815)
3b678047bc

N/A patches for version.c:

vim-patch:8.1.2065: compiler warning building non-GUI with MinGW.

Problem:    Compiler warning building non-GUI with MinGW.
Solution:   Adjust #ifdefs. (Yegappan Lakshmanan, closes vim/vim#4964)
910c378d93

vim-patch:8.2.2500: build fails without the GUI feature

Problem:    Build fails without the GUI feature.
Solution:   Add #ifdef.
0bcadf14aa

vim-patch:8.2.2502: a few github actions are failing

Problem:    A few github actions are failing.
Solution:   Install setuptools-rust. (closes vim/vim#7823)
ca753ec862

vim-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 vim/vim#7820)
0fa09676c2
2021-02-13 12:00:36 -05:00
8399f48ca9 man.vim: :Man should not change global value of 'tagfunc' option (#13926) 2021-02-13 11:54:03 -05:00
52397aaa0d Merge pull request #13491 from seandewar/vim-8.2.1967
vim-patch:8.2.{1967,2058,2467}
2021-02-11 22:37:38 -05:00
4bc82a59b6 vim-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 vim/vim#7779)
139348f3e8
2021-02-11 19:00:55 +00:00
add0cf9a42 vim-patch:8.2.2058: using mkview/loadview changes the jumplist
Problem:    Using mkview/loadview changes the jumplist.
Solution:   Use ":keepjumps".  Don't let ":badd" or ":balt" change the
            jumplist. (closes vim/vim#7371)
3482be6a33

Definition for BufWinEnter autocmd in Test_mkview_loadview_jumplist()
was moved down a few lines until after the views are written, as in
Nvim, :loadview throws if the view file can't be opened.
2021-02-11 19:00:55 +00:00
d9dd360d2a vim-patch:8.2.1967: the session file does not restore the alternate file
Problem:    The session file does not restore the alternate file.
Solution:   Add ":balt".  Works like ":badd" and also sets the buffer as the
            alternate file.  Use it in the session file. (closes vim/vim#7269,
            closes vim/vim#6714)
59d8e56e04

Include minimal test_buffer.vim from patch 8.2.0243 for Test_balt().
Add entry for :balt to runtime/doc/index.txt from vim/vim#7819.
2021-02-11 19:00:24 +00:00
393095c1c6 cmake: Remove duplicate compile flags argument (#13920)
${C_FLAGS_ARRAY} is already part of ${gen_cflags} and does not
need to be passed explicitly.

Passing it a second time leads to macro redefinition warnings when
-D_FORTIFY_SOURCE=2 is given as part of CFLAGS because Neovim
enforces -D_FORTIFY_SOURCE=1.
2021-02-11 18:37:41 +01:00
1aec5ba85e Merge pull request #13908 from janlazo/vim-8.2.2489
vim-patch:8.1.0341,8.2.{2489,2490,2492,2495,2496}
2021-02-10 20:56:54 -05:00
81b4c88130 vim-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 vim/vim#7797)
4223d43c0f
2021-02-10 18:20:02 -05:00
81c9cda296 vim-patch:8.2.2496: insufficien testing for text jumping fix
Problem:    Insufficien testing for text jumping fix.
Solution:   Add another test case.
5202929dab
2021-02-10 18:07:32 -05:00
c3dada3e5a vim-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 vim/vim#7813)
8f33ebfade
2021-02-10 18:07:31 -05:00
89143b5fc4 vim-patch:8.2.2492: command line buffer name cannot be translated
Problem:    Command line buffer name cannot be translated.
Solution:   Add _(). (Gabriel Dupras, closes vim/vim#7812)
b17ec4d427
2021-02-10 17:58:59 -05:00
787446886f vim-patch:8.1.0341: :argadd in empty buffer changes the buffer name
Problem:    :argadd in empty buffer changes the buffer name. (Pavol Juhas)
Solution:   Don't re-use the current buffer when not going to edit the file.
            (closes vim/vim#3397)  Do re-use the current buffer for :next.
32bbd00949
2021-02-10 17:54:24 -05:00
be981112b8 vim-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.
963ffa0a5a
2021-02-10 17:54:24 -05:00
61aea004d7 Merge pull request #13895 from bfredl/ar2
buffer updates: fix autoread but for real this time
2021-02-10 22:28:52 +01:00
94622ca66b buffer updates: add on_reload callback and handle it in treesitter parser 2021-02-10 18:58:46 +01:00
fa5f583981 treesitter: propagate on_detach event properly 2021-02-10 18:57:49 +01:00
230f2ff381 Merge pull request #13903 from glacambre/fix_prompt_for_number
Clear prompt_for_number messages
2021-02-10 18:51:33 +01:00
dbf3c5d953 Clear prompt_for_number messages
This fixes issues in GUIs:
https://github.com/akiyosi/goneovim/issues/94
https://github.com/glacambre/firenvim/issues/448
2021-02-10 13:04:02 +01:00
971e0ca903 fix(notify): Expected 3 arguments error (#13905) 2021-02-09 11:41:02 +01:00
8becdec391 vim-patch:8.2.2259: Test_Executable() fails when using chroot (#13907)
Problem:    Test_Executable() fails when using chroot.
Solution:   Ignore the difference between "sbin" and "bin".
a387083b2f

Cherry-pick Test_Executable() changes from patches v8.1.1921, v8.2.1432
to be in sync with Vim.

N/A patches for version.c:

vim-patch:8.1.0509: checking cwd not accessible fails for root

Problem:    Checking cwd not accessible fails for root. (James McCoy)
Solution:   Skip this part of the test for root. (closes vim/vim#3595)
0b38f54730

vim-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 vim/vim#7801)
4549dad874

vim-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 vim/vim#7802)
a853089479
2021-02-08 22:10:43 -05:00
38ea2ce342 Merge pull request #13842 from vigoux/update-last-line
fix(buf_updates): send updates when putting past last line
2021-02-08 20:29:59 +01:00
b2b47e4618 Merge pull request #13899 from chentau/set_text_fix
correctly mark changed regions for set_text
2021-02-08 19:08:43 +01:00
3094bb4e38 fix(buf_updates): send updates when putting past last line
Fixes #13710
2021-02-08 19:08:42 +01:00
00423730b5 Merge pull request #13843 from teto/notif_provider
[RDY] Notification provider
2021-02-08 15:49:27 +01:00
02a3c41794 Merge pull request #13898 from janlazo/set_string_option_direct
Refactor option,var functions to use char for param type
2021-02-07 18:28:34 -05:00
d34846af74 option: use char* for get_option_value() param
'name' param is casted to char_u* within get_option_value().
Most calls to get_option_value() cast arg to 'name' from char to char_u.
Remove these pointless type casts.
2021-02-07 17:57:37 -05:00
b1df53e868 menu: use char* for set_context_in_menu_cmd() param
All calls to set_context_in_menu_cmd() cast "cmd" arg to char_u.
get_menu_cmd_nodes() doesn't require "cmd" to be unsigned char.
Use "char" type for "cmd" function param to reduce type casts.
2021-02-07 17:28:00 -05:00
0458b23d53 eval: use char* for set_var_lval() param
'op' param is casted to char_u* within set_val_lval().
Most calls to set_val_lval() cast arg to 'op' from char to char_u.
Remove these pointless type casts.
2021-02-07 17:27:59 -05:00
7484c7de9a eval: use char* for set_internal_string_var()
"name" param was cast to (const char *).
All calls to set_internal_string_var() cast from (char *) to (char_u *).
Remove these useless casts.
2021-02-07 17:27:59 -05:00
f1fdeaf667 option: use char* for set_string_option_direct()
"name" param was cast to (const char *).
All calls to set_string_option_direct() cast 1st arg
from (char *) to (char_u *).
Remove these useless casts.
2021-02-07 17:27:59 -05:00
05605bfc05 correctly mark changed regions for set_text 2021-02-07 13:50:29 -08:00
a7d9df996d Merge pull request #13894 from stsewd/ts-small-fixes
treesitter: small fixes
2021-02-07 15:23:41 +01:00
947f9a04d4 treesitter: small fixes
Mostly typos I found while reading the code.
2021-02-07 01:27:38 -05:00
b894fbcbe8 Merge pull request #13892 from janlazo/vim-8.1.2285
vim-patch:8.1.2285
2021-02-06 22:11:02 -05:00
f9c0af0180 eval: ll_range,ll_empty2 members are bool 2021-02-06 17:40:40 -05:00
bea99729dd vim-patch:8.1.2285: padding in structures wastes memory
Problem:    Padding in structures wastes memory.
Solution:   Move fields to avoid padding. (Dominique Pelle, closes vim/vim#5202)
d6beab0248

Skip "ml_line_len" member of "struct memline".
Patch v8.1.0579 was not ported.
2021-02-06 17:30:47 -05:00
336eb70822 vim-patch:8.2.2469: confusing error if :winsize has a wrong argument (#13889)
Problem:    Confusing error if :winsize has a wrong argument.
Solution:   Quote the argument in the error. (closes vim/vim#2523)
f5a5116a96

Cherry-pick Test_winsize_cmd() from patch v8.2.0243.
2021-02-06 12:24:24 -05:00
4526294848 Fix unused vararg 2021-02-06 11:06:33 -06:00
e455f0ba2d Merge pull request #13876 from jamessan/pty-term
fix(pty): Always use $TERM from the job's env dict
2021-02-06 09:06:34 -05:00
33f92fe025 fix(pty): Always use $TERM from the job's env dict
Before #12937, the only way to specify the `$TERM` for a pty job was
through the `TERM` key in the job's opts dict.  This was shuttled to the
child process throug a special field on the PtyProcess object and
injected into the environment after forking.

Now that we have a proper way to specify the environment for a job, we
can simply ensure that the env dict has a proper `TERM` set and avoid
the extra shuttling of data around.

This deprecates the use of the `TERM` option, but will still honor it if
present, although at a lower priority than a `TERM` present in the env
dict.

This also fixes #13874 because we're no longer trying to overwrite
`TERM` in the env dict with the special pty `term_name`.  Doing so
raises an internal error because of the existing key which, under
certain circumstances, would cause the "hit enter" prompt.  However,
since the child process had already forked, there was no way for the
user to acknowledge the prompt and we would just hang there.
2021-02-06 07:12:33 -05:00
f4f6cce952 Merge pull request #13888 from jamessan/win-ci
ci(gha/win): Do not rename python.exe to python3.exe if it exists
2021-02-06 07:10:58 -05:00
02a9663869 Merge pull request #13701 from erw7/fix-checkhealth
Fix checkhealth problems
2021-02-06 13:01:37 +09:00
957ac9442c Merge pull request #13702 from erw7/fix-build_stl_str_hl
buffer.c: fix problem of memory allocation
2021-02-06 12:56:20 +09:00
787339892d Merge pull request #12080 from erw7/feature-bracketed-paste-on-term
terminal: add bracketed pasting feature
2021-02-06 12:51:24 +09:00
8f24199490 ci(gha/win): Do not rename python.exe to python3.exe if it exists
GHA now provides python3.exe by default -- actions/python-versions#78

Ensure Python 2 directory is earlier in $PATH so bare python always
invokes Python 2.
2021-02-05 22:39:10 -05:00
c95e797b83 Merge pull request #13878 from bfredl/incmark
inccommand: preserve extmarks when undoing preview substitution
2021-02-05 08:50:53 +01:00
ad1a437835 vim.fn: add test for error 2021-02-04 09:22:27 -06:00
2d06538b5e remove extra line, remove () in error 2021-02-04 08:27:38 -06:00
209fb35acd tests: clean up lua/buffer_updates_spec.lua 2021-02-04 14:35:30 +01:00
aa50369897 inccommand: preserve extmarks when undoing preview substitution 2021-02-04 14:33:37 +01:00
94cf7bba00 lsp: Fix pumvisible() check introduced in #12900 (#13866)
`pumvisible()` returns a number, and numbers are always `true` in Lua,
so the return value needs to be checked explicitly.

Using https://github.com/neovim/neovim/pull/12900 as context, it appears
the intention was to move into the `if` branch when the completion popup
is not shown (i.e. `vim.fn.pumvisible() == 0`).
2021-02-04 12:35:17 +01:00
4dc41c0516 Change default for tpf option
Change the default of tpf to the same value as the default of xterm's
disallowedPasteControls, because it may be a security risk.
2021-02-04 15:20:05 +09:00
1e3fadb419 Add termpastefilter option
Change to specify a character to be filtered as an option when pasting on
the terminal.
2021-02-04 15:20:05 +09:00
14158e8d47 Change to filter control characters when pasting a terminal window
Change to filter the following control characters in the same way as
xterm.

\x00-\x07, \x0b-\x0c, \x0e-\x1f
2021-02-04 15:20:05 +09:00
81a30f4367 Add support for bracketed paste mode in terminal windows 2021-02-04 15:20:05 +09:00
b96db38af1 Merge pull request #13865 from janlazo/vim-8.2.2437
vim-patch:8.2.{2437,2439,2442,2446,2447,2448,2457,2458,2462,2464}
2021-02-03 22:36:52 -05:00
e65d0e53b1 vim.fn: throw error when trying to use API function 2021-02-03 18:13:04 -06:00
4a1a86a2be vim-patch.sh: remove unsupported files (#13570)
Add files listed in https://github.com/neovim/neovim/wiki/Merging-patches-from-upstream-Vim#na-not-applicable-patches.
2021-02-03 18:53:27 -05:00
da3f9778af vim-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.
8ab375706e
2021-02-03 18:46:53 -05:00
02cda35cf7 vim-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.
2c363a2e95
2021-02-03 18:37:32 -05:00
8d3baf0791 vim-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.
0dcd39bad5

N/A patches for version.c:

vim-patch:8.2.2457: Coverity warns for memory leak

Problem:    Coverity warns for memory leak.
Solution:   Free memory when out of memory.
4dba04256b
2021-02-03 18:33:52 -05:00
a90a43796a test: test vim-notify 2021-02-02 15:40:08 +01:00
bb22c78044 api: add nvim_notify
parameters are mandatory
2021-02-02 15:40:08 +01:00
65e51fca0e vim-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 vim/vim#7767)
f9547eb6ef
2021-02-01 21:42:26 -05:00
2a6580a8e2 vim-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 vim/vim#7766)
5daa911626

N/A patches for version.c:

vim-patch:8.2.2437: deprecation warnings with default configuration

Problem:    Deprecation warnings with default configuration.
Solution:   Add -Wno-deprecated-declarations.
4d8479b335

vim-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.
3d2bb8b6f1

vim-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.
f272ae12ac

vim-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 vim/vim#7761)
9d20daffc2
2021-02-01 21:34:12 -05:00
cc1851c9fd Add clangd cache to ignore (#13856)
While standard library is cached to a user's directory such as
$XDG_CACHE_HOME, directory-specific clangd indexes are stored to .cache
subdirectory.
https://github.com/llvm/clangd-www/blob/main/design/indexing.md#backgroundindex
2021-01-31 23:03:35 -05:00
563d7b694b tests: add test for cursor postion when deleting buffer lines 2021-01-31 12:43:48 -08:00
9f2335937e fix_cursor: do not change line number when edit will not impact cursor
row
2021-01-31 11:57:22 -08:00
e85c8dff69 Merge pull request #12937 from jamessan/term-env 2021-01-31 13:25:16 -05:00
81794204ce ci(sr.ht): Use RelWithDebInfo builds
Many compiler checks rely on optimizations being enabled, so we want
these to show up in CI.  Use RelWithDebInfo instead of Release so that
assert() statements aren't compiled out.
2021-01-31 11:28:52 -05:00
27a7a4d384 Use abort() instead of assert(false) for things that should never happen
assert() is compiled out for release builds, but we don't want to
continue running in these impossible situations.

This also resolves the "implicit fallthrough" warnings for the asserts
in switch cases.
2021-01-31 11:28:52 -05:00
b2713f11b4 vim-patch:8.2.2430: :vimgrep expands wildcards twice (#13853)
Problem:    :vimgrep expands wildcards twice.
Solution:   Do not expand wildcards a second time.
f8c6a17180
2021-01-31 10:10:22 -05:00
035ee868ae fix(pty_proc/macOS): Properly set the environment for the child
Binding _NSGetEnviron()'s return value to a local variable and then
re-binding that is incorrect.  We need to directly update what
_NSGetEnviron() refers to.
2021-01-31 07:54:22 -05:00
db734ae994 test(job): Ensure job-specific env var overrides global env var 2021-01-31 07:54:21 -05:00
a199363be2 Pass environment on to pty processes on Windows
vim-patch:8.2.0239: MS-Windows: 'env' job option does not override existing vars

Problem:  MS-Windows: 'env' job option does not override existing
          environment variables.  (Tim Pope)
Solution: Set the environment variables later. (Yasuhiro Matsumoto,
          closes vim/vim#5485, closes vim/vim#5608)
355757aed6

Co-authored-by: erw7 <erw7.github@gmail.com>
2021-01-31 07:54:21 -05:00
a54ac073fb eval/environ: Prefer the last definition of an env var
It's possible for the environment variable block given to nvim to
contain multiple definitions for the same env var.  In this case, nvim
should preserve the last one defined.
2021-01-31 07:54:21 -05:00
8eec9c7d5b Common handling of required/ignored env vars
When starting a pty job, there are certain env vars that we need to
either add or remove.  Currently, there are two relevant scenarios.

* Removing irrelevant env vars on Unix, mostly related to the terminal
  hosting nvim since they do not apply to a libvterm-hosted terminal.

* Adding required env vars for Windows jobs.
2021-01-31 07:54:20 -05:00
ef7c6b972a Support specifying "env" option for termopen()
Co-authored-by: erw7 <erw7.github@gmail.com>
2021-01-31 07:54:20 -05:00
7f50c69268 Use dict_T to pass env vars to process spawning code
Co-authored-by: Matthieu Coudron <mattator@gmail.com>
2021-01-31 07:54:20 -05:00
55add1c1c8 version.c: update [ci skip] (#13705)
vim-patch:8.2.2307: a shell command in the vimrc causes terminal output
vim-patch:8.2.2312: build failure with Ruby 3.0 and 32 bits
vim-patch:8.2.2326: build error with +eval feature but without +spell
vim-patch:8.2.2337: configure test for GTK only says "no"
vim-patch:8.2.2346: Codecov reports every little coverage drop
vim-patch:8.2.2347: build failure without GUI
vim-patch:8.2.2348: no check for modified files after focus gained
vim-patch:8.2.2352: if focus lost/gained is received twice code is not ignored
vim-patch:8.2.2358: wrong #ifdef for use_xterm_like_mouse()
vim-patch:8.2.2383: focus escape sequences are not named
vim-patch:8.2.2407: old jumplist code is never used
vim-patch:8.2.2408: MinGW: "--preprocessor" flag no longer supported
vim-patch:8.2.2431: warning for -fno-strength-reduce with Clang 11
vim-patch:8.2.2432: libvterm tests are executed even when libtool doesn't work
2021-01-30 20:48:49 -05:00
4e8a01a306 Merge pull request #13835 from saadparwaiz1/runtime/zsh
Update Runtime Files For Zsh
2021-01-30 18:34:16 -05:00
3f81f5c7a4 feat: adds vim.notify
Adds function to notify the user like this:
`:lua vim.notify("hello user")`
embeds log levels vim.log.levels.

you can then reassign vim.notify to for instance
```
function notify_external(msg, log_level, opts)
	vim.fn.jobstart({"notify-send", msg })
end
```
2021-01-31 00:18:22 +01:00
55fed9a2b0 runtime/zsh: 23515b4ef7580af8b9d3b964a558ab2007cacda5
port zsh compiler only
2021-01-30 20:50:04 +00:00
bf1da7424d runtime/zsh: 23515b4ef7580af8b9d3b964a558ab2007cacda5
port zsh ftplugin only.
2021-01-30 20:50:04 +00:00
7722eb0953 runtime/zsh: b17893aa940dc7d45421f875f5d90855880aad27
port zsh ftplugin only
2021-01-30 20:50:04 +00:00
da61cca9f7 runtime/zsh: 23515b4ef7580af8b9d3b964a558ab2007cacda5
port zsh syntax file only
2021-01-30 20:50:04 +00:00
d89cbb62ab runtime/zsh: b17893aa940dc7d45421f875f5d90855880aad27
port zsh syntax file only
2021-01-30 20:50:04 +00:00
44802202be runtime/zsh: 96f45c0b6fc9e9d404e6805593ed1e0e6795e470
Port zsh syntax file only
2021-01-30 20:50:04 +00:00
c4d0211fea Merge pull request #13852 from janlazo/vim-8.2.2037
vim-patch:8.2.{2037,2038}
2021-01-30 21:31:20 +01:00
150859d717 test/old: rewrite method code in test_compiler.vim
Patch v8.1.1803 and related method patches are not ported yet.
Revert this commit when those patches are ported.
2021-01-30 13:40:28 -05:00
647c9c558b vim-patch:8.2.2038: compiler test fails on MS-Windows
Problem:    Compiler test fails on MS-Windows.
Solution:   Sort the found compiler plugin names.
142f23544c
2021-01-30 13:37:26 -05:00
8aae1521e5 vim-patch:8.2.2037: compiler test depends on list of compiler plugins
Problem:    Compiler test depends on list of compiler plugins.
Solution:   Compare with the actual list of compiler plugins.
60bc8e7244
2021-01-30 13:37:25 -05:00
ad98b84008 Merge pull request #13833 from janlazo/vim-8.2.2412
vim-patch:8.2.{2412,2418,2420,2425}
2021-01-29 18:02:43 -05:00
1376994f15 vim-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 vim/vim#3434)
df2c2988bb

Cherry-pick Test_for_invalid() from patch v8.1.0736.
2021-01-29 00:12:24 -05:00
c77b679ecd vim-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.
9a046fd08b

Delete Test_wipe_cbuffer().
Commit dc5f4a3cc2 should have removed it.
2021-01-28 23:43:15 -05:00
f05ffaef1c vim-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 vim/vim#7751)
2e6cdb91e8
2021-01-28 23:04:27 -05:00
2bde381d28 vim-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().
ce0370d9e6
2021-01-28 20:40:30 -05:00
8950f4e94a Merge pull request #13784 from runiq/get_extmark_by_id-limit_break
doc: remove nvim_buf_get_extmark_by_id limit opt
2021-01-28 18:27:24 +01:00
9feb47ec4b Merge pull request #13836 from teto/contribute-doc
doc: link wiki on how to improve/build doc
2021-01-28 15:20:29 +01:00
12cd9e4c08 doc: link wiki on how to improve/build doc
We generate some part of the doc from lua which complexifies the process a bit so we've added a wiki page explaining this.
2021-01-27 21:15:52 +01:00
459a6c845e lsp/tests: Ensure client is stopped in basic_init tests (#13798) 2021-01-27 15:32:07 +01:00
271cec291a Merge pull request #13719 from chentau/lua_compl
Add completion to lua
2021-01-27 07:40:10 +01:00
f0ccac0ba4 lint 2021-01-26 17:09:35 -08:00
d82688973d lua: complete methods in metatables 2021-01-26 17:04:32 -08:00
d95a465b43 Don't show entire context when completing 2021-01-26 17:04:32 -08:00
901dd79f6a feat: add completion to ':lua' 2021-01-26 17:04:31 -08:00
4d1fc167a8 Merge pull request #13828 from vigoux/ts-bump-c-runtime
deps(treesitter): bump C parser and runtime
2021-01-26 18:51:41 +01:00
6d07d18f91 deps(treesitter): bump C parser and runtime
It's been a while since we bumped the C parser version, and a few ABI
versions have been realised since.
2021-01-26 15:17:10 +01:00
78f0f00cd5 Merge pull request #13820 from janlazo/vim-8.2.2392
vim-patch:8.2.{2392,2399,2402}
2021-01-25 21:20:14 -05:00
1a6d89eb90 lsp: match textDocument/didChange eol behavior (#13792)
We should be consistent in sending the EOL character to servers(I think). Julia expects this to match on bufwrite, or it crashes when vim appends the newline during the write process.
2021-01-25 17:52:40 +01:00
687ff6566a vim-patch:8.2.2402: some filetypes not detected
Problem:    Some filetypes not detected.
Solution:   Detect Ruby Signature and Puppet related files. (Doug Kearns)
8323cab31c
2021-01-24 21:56:54 -05:00
69d1094271 vim-patch:8.2.2399: fold test fails in wide terminal
Problem:    Fold test fails in wide terminal.
Solution:   Adjust the test. (Dominique Pelle, closes vim/vim#7731, closes vim/vim#7739)
7cf0c114d6
2021-01-24 14:19:54 -05:00
2ce7e4e8a7 vim-patch:8.2.2392: fennel filetype not recognized
Problem:    Fennel filetype not recognized.
Solution:   Detect with pattern and hashbang. (Chinmay Dalal, closes vim/vim#7729)
402115f1c2
2021-01-24 14:15:16 -05:00
69103ff0cf Merge pull request #13807 from spywhere/min-size-auto-sign
Auto sign column with minimum size support
2021-01-23 22:46:29 +01:00
444e60ab39 Merge pull request #13819 from runiq/extmark_gravity_docs
Doc: Generate API docs for buf_set_extmark gravity
2021-01-23 20:29:45 +01:00
08f2aa5917 Doc: Generate API docs for buf_set_extmark gravity
Cf. #13679
2021-01-23 19:32:18 +01:00
3a3e6742f9 lsp: clear diagnostics on client shutdown (#13788) 2021-01-23 17:43:06 +01:00
24b60322a2 Merge pull request #13818 from janlazo/vim-8.2.2379
vim-patch:8.2.{2375,2379,2384,2385}
2021-01-22 12:23:58 -05:00
30ef922f39 vim-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 vim/vim#7724, closes vim/vim#4095)
e71996bd08
2021-01-22 09:03:44 -05:00
93402606fa Merge pull request #13603 from matveyt/master
Missing argument for package.loadlib()
2021-01-22 14:14:19 +01:00
dd089c398c Missing argument for package.loadlib()
Allow for foo.bar.baz module name

Make luaopen_module() name compatible with Lua 5.1
2021-01-22 10:12:22 +01:00
bdfd023f81 Merge pull request #13813 from notomo/fix-nvim-echo-clear
api(echo): should clear cmdline before echo
2021-01-22 09:59:02 +01:00
b803bfa5aa Merge pull request #13679 from chentau/gravity
Extmarks api: allow for gravity
2021-01-22 09:55:00 +01:00
b8ea076ad1 vim-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.
09fbedc8dc

Cherry-pick Test_highlight_RGB_color() from patch v8.2.1077
to port this patch.
2021-01-21 23:35:30 -05:00
4bd7f1133b vim-patch:8.2.2384: turtle filetype not recognized
Problem:    Turtle filetype not recognized.
Solution:   Add a rule to detect turtle files. (closes vim/vim#7722)
5e6a7aa2b2
2021-01-21 23:19:16 -05:00
94cb3b4b35 vim-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 vim/vim#7713)
77a849c4b3
2021-01-21 21:59:35 -05:00
1607dd071f Update Ukrainian translation (#13785) 2021-01-21 21:24:05 -05:00
d3989ea8e8 api(echo): should clear cmdline before echo 2021-01-21 21:49:42 +09:00
d68026c9ed Merge pull request #13673 from notomo/add-nvim-echo
api: nvim_echo
2021-01-20 18:54:03 +01:00
83ea08ddf3 opt: add tests (#13783) 2021-01-20 23:57:21 +07:00
52675915a7 opt: address linting issues (#13783) 2021-01-20 23:57:21 +07:00
fcd6eea217 opt: update docs on signnumber (#13783) 2021-01-20 23:57:21 +07:00
b7d60c0483 opt: better handling number bounds (#13783) 2021-01-20 23:57:21 +07:00
f1f170a2e7 opt: reduce hardcoded values (#13783) 2021-01-20 23:57:21 +07:00
cee09bb2aa opt: minimum sign size for auto (#13783) 2021-01-20 23:57:21 +07:00
8e86f5e460 api: nvim_echo 2021-01-20 16:41:39 +01:00
1785ac3e37 Merge pull request #13794 from nvim-treesitter/fix-languagetree-contains
fix(languagetree): use tree nodes instead of regions in contains
2021-01-20 15:49:48 +01:00
ed558e269a fix(languagetree): use tree nodes instead of regions in contains 2021-01-20 06:52:47 -06:00
d9c1586e4a Merge pull request #13765 from jvgrootveld/ts-default-start-end-row-on-capture
treesitter: default start and end row when omitted
2021-01-20 10:32:48 +01:00
d6d4e3d1ae lsp: remove duplicate settings validation (#13789) 2021-01-18 21:02:30 -05:00
f9b3110549 lsp: validate and document server settings (#13698)
* update lua documentation
* run docgen
2021-01-18 14:11:37 -05:00
3f63100d5b LSP: Fix nil settings handling in workspace/configuration (#13708)
The `workspace/configuration` handler could fail with the following
error if `config.settings` is nil:

    runtime/lua/vim/lsp/util.lua:1432: attempt to index local 'settings' (a nil value)"

This ensures that `config.settings` is always initialized to an empty
table.
2021-01-18 19:33:10 +01:00
51936126d3 Merge pull request #13767 from srafi1/rm-restricted-mode-docs
Remove -Z flag from --help message
2021-01-18 09:30:36 -05:00
4d1e7e5b12 Update nvim.appdata.xml to reflect version 0.4.4 (#13754)
Set release date based on commit ee77d8665f
2021-01-18 09:29:32 -05:00
fe02c65395 doc: remove nvim_buf_get_extmark_by_id limit opt
Passing any key but `details` in the opts results in an error.
2021-01-18 13:34:08 +01:00
1a4d380b5a LSP: Add in clientInfo to initalize_params. (#13757)
* Add in clienInfo to initalize_params.

Some servers (like Metals in my case) will actually pull this
info from the initalize_params and display it in the logs. I
know from the server perspective it helps at times to have this
available to pull from to have more details about the client and
version. You can see that this is part of the spec here:

microsoft.github.io/language-server-protocol/specification#initialize
2021-01-18 10:13:26 +01:00
6d659bb338 lsp: add client/registerCapability handler (#13780)
Until we support dynamicRegistration, we should handle the client/registerCapability in core. There are still some language servers that send this request despite dynamicRegistration not being registered client-side (we got an upstream fix for the node ones, but this depends on them bumping vscode-languageserver-node).
2021-01-18 10:11:19 +01:00
41eea59dcf doc: Add link to Homebrew formula in README (#13782)
The page is useful because it contains:

    How to install it
    Package information (e.g. current version)
    List of dependencies
    Analytics (how many people are using it)
2021-01-18 09:41:25 +01:00
61437c20b5 api: add vim.version (#13762)
retrun a structured version dict
:lua print(vim.inspect(vim.version()))

{
  api_compatible = 0,
  api_level = 7,
  api_prerelease = true,
  major = 0,
  minor = 5,
  patch = 0
}
2021-01-18 09:37:18 +01:00
9bed991cfb treesitter: Fix linter warning and add helper function to remove duplicated logic
This function returns the start and stop value if set else the node's range is used
When the node's range is used, the stop is incremented by 1 to make the search inclusive
2021-01-18 08:17:12 +01:00
702208daa6 Merge pull request #13775 from janlazo/vim-8.2.2353
vim-patch:8.2.{2353,2355,2360,2361,2366,2368}
2021-01-17 15:01:22 -05:00
7cced24e93 vim-patch:8.2.2368: insufficient tests for setting options
Problem:    Insufficient tests for setting options.
Solution:   Add a few tests. (Dominique Pellé, closes vim/vim#7695)
85773bf32b

Cherry-pick some test cases for Test_set_error()
from patches v8.2.0540, v8.2.0551.
2021-01-17 14:17:40 -05:00
78620dbd28 ci(GHA): install perl on osx
Fix missing header files in system perl.
2021-01-17 12:42:28 -05:00
402f2bda13 vim-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 vim/vim#7687)
7c886db915
2021-01-17 12:42:28 -05:00
6a01b3fcc3 vim-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 vim/vim#7688)
e2edc2ed4a

Cursor showing/hiding is moved from core to TUI.
":sleep!" behaves the same as ":sleep".
2021-01-17 12:42:28 -05:00
abcd982bf0 vim-patch:8.2.2360: test leaves file behind
Problem:    Test leaves file behind.
Solution:   Delete the right file. (Dominique Pellé, closes vim/vim#7689)
a3b494d6af
2021-01-17 12:42:27 -05:00
562877c135 vim-patch:8.2.2355: stray test failure on Appveyor
Problem:    Stray test failure on Appveyor.
Solution:   Finish insert command.
97c6943e11
2021-01-17 12:42:27 -05:00
7befdb3419 vim-patch:8.2.2353: spartql files are not detected
Problem:    Spartql files are not detected.
Solution:   Add the sparql filetype.  (closes vim/vim#7679)
17d015b243
2021-01-17 12:42:27 -05:00
0f2d37f11f Merge pull request #13774 from mjlbach/log_warn_cache
log.c: warn instead of error on failed stdpath('cache') creation
2021-01-16 23:40:36 -05:00
640febaca7 log.c: warn instead of error on failed stdpath('cache') creation 2021-01-16 18:58:11 -08:00
abbfaf286f logs: make kXDGCacheHome if it doesn't exist (#13758) 2021-01-16 21:14:59 +01:00
8bbf1e2e3c remove -Z line translations 2021-01-15 21:43:10 -05:00
1f49adc085 remove -Z entry from --help 2021-01-15 21:42:39 -05:00
a2818819bb treesitter: default start and end row when omitted
Add support for default start and end row when omitted in the
query:iter_captures and query:iter_matches functions.

When the start and end row values are omitted, the values of the given
node is used. The end row value is incremented by 1 to include the node end
row in the match.

Updated tests and docs accordingly.
2021-01-15 21:44:40 +01:00
0fad952a2b Merge pull request #13750 from janlazo/vim-8.2.2329
vim-patch:8.2.{2329,2334}
2021-01-14 20:56:30 -05:00
2390a0d3c4 Merge pull request #13752 from vigoux/ts-buffer-always-curbuf
fix(treesitter): use source() method on attach
2021-01-14 13:18:11 +01:00
acf6ed5541 fix(treesitter): use source() method on attach
Fixes an issue that tree-sitter always attached to the current buffer,
instead of the provided buffer.
2021-01-14 12:01:50 +01:00
d953614e72 vim-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 vim/vim#7662)
a0122dcd1c
2021-01-13 18:25:00 -05:00
ea8756f85d logging: move to XDG_CACHE_HOME (#13739)
while there is some controversy, stdpath('cache') looks like  a better fit for logs than stdpath('data'): you can remove logs without preventing nvim to work which fits the XDG_CACHE_HOME definition of `user specific non-essential data files`.
2021-01-13 23:20:21 +01:00
bd02e29443 vim-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 vim/vim#7651)
df4c9af7e7
2021-01-13 09:35:00 -05:00
2ac0ca2025 change end_right_gravity error behavior 2021-01-12 18:32:16 -08:00
77a6049e07 lsp: fix on_attach signature documentation (#13723)
* trim trailing whitespace from docs
2021-01-12 22:47:34 +01:00
953a548454 lsp: remove references to LspInstall (#13738)
and adjust sumneko setup instructions
2021-01-12 22:09:41 +01:00
9f3b2a757b lsp: Add severity_limit for other diagnostics features (#13528)
* lsp: Add severity_limit for other diagnostics

* docs and tests

* fix: lint

* Add to other types

* fix: lint
2021-01-12 12:58:50 -05:00
e0a4399adc fix(lsp): Allow subsequent text document edits to pass (#13534)
* fix: Allow subsequent text document edits to pass

* fixup: cleaner code

* add tests
2021-01-11 11:39:11 -05:00
0c0c3ee330 Merge pull request #13735 from jamessan/brew-failures 2021-01-11 10:25:28 -05:00
ad43f789e7 Merge pull request #13439 from shade-of-noon/man-iskeyword
[RDY] man.vim: Set iskeyword explicitly.
2021-01-11 08:07:47 -05:00
6d67cf8647 ci(gha): brew unlink gcc@8/@9 to fix upgrade issues 2021-01-11 00:01:37 -05:00
0f03b3f3aa ci(gha): brew upgrade before installing 2021-01-10 23:40:30 -05:00
0af5a56e47 Merge pull request #13733 from jupblb/patch-release-2
Do not delete the nightly release
2021-01-10 22:18:52 -05:00
0860d9c164 Use uv_os_homedir and current directory as backup when $HOME is not set (#13657)
Close https://github.com/neovim/neovim/issues/8614

Use uv_os_homedir and current directory as backup if HOME env is not set.
Allocate homedir only if var is not NULL.
2021-01-10 19:46:25 -05:00
3d41ce90df Do not delete the nightly release 2021-01-10 23:29:34 +01:00
635930dcd7 Merge pull request #13704 from teto/fix-fold-list
screen.c: fix last character on foldtext
2021-01-10 22:44:23 +01:00
cb457f5f7f buffer.c: remove useless 'for' loops. 2021-01-09 15:36:14 +09:00
b535575acd runtime/elm: acc224064033e5cea21ef7f1eefb356ca06ff11d (#13718)
Port ftplugin, syntax and indent Elm files.

Ref: #13193
2021-01-08 19:48:56 -05:00
87afc90317 screen.c: fix an issue with wrap and folds
Before this commit, a folded line would display a trailing character
with
bin/nvim -u ~/test.vim --cmd "hi NonText ctermbg=3" --cmd "hi Search ctermbg=2" --cmd "set listchars+=extends:X nowrap list"  ~/test.txt
2021-01-07 21:58:57 +01:00
fe1ebea339 Merge pull request #13689 from janlazo/vim-8.2.0050
vim-patch:8.1.{1731,1764,2111,2126},8.2.{50,590}
2021-01-06 21:17:44 +01:00
b419e39a2a screen.c: fix last character on foldtext
Last character on a folded line was sometimes highlighted with the
"Search" highlight. Solves this along with some remaining "curwin".
2021-01-06 21:02:40 +01:00
6249059d4b checkhealth: fix terminfo problems on Windows
fixes #13415
2021-01-06 12:43:58 +09:00
b77e21b35c checkhealth: fix problem where &shada is empty
fixes #13700
2021-01-06 12:17:45 +09:00
2ea3127697 screen.c: fix display of signcolumn=auto in diffs (#13688)
sign_id was not reset when filler lines were involved, thus causing a
bad alignment between columns.

You could check that before this commit,

    bin/nvim -u NORC  --cmd "setglobal signcolumn=yes:4" --cmd "set diffopt+=foldcolumn:0" -d ../test1.txt ../test2.txt

would result in an irregular column width.
2021-01-05 21:23:35 +01:00
2bfd0ba8ae LSP: Add diagnostic tags to client capabilities (#13578)
pyright (possibly others) does not send any hint diagnostics if we do not have tagSupport in PublishDiagnosticsClientCapabilities. This PR just adds them.
2021-01-05 21:15:08 +01:00
0efc713136 contrib: update nix flake to use flake-utils (#13685) 2021-01-05 21:12:21 +01:00
25cb2c722e vim-patch:8.2.0590: no 'backspace' value allows ignoring the insertion point
Problem:    No 'backspace' value allows ignoring the insertion point.
Solution:   Add the "nostop" and 3 values. (Christian Brabandt, closes vim/vim#5940)
aa0489e12d
2021-01-05 09:47:38 -05:00
5b897acfc1 test/old: restore test_backspace_opt.vim
Porting it to test/functional/legacy/backspace_opt_spec.lua
was a mistake.
Tests pass after commenting out some lines for Vi compatibility.

File is copied from Vim as of patch v8.2.0540.
Patch v8.2.0540 cannot be fully ported yet.
This file is a prequisite for future v8.2.x patches.
2021-01-05 09:47:38 -05:00
4f53ebaceb vim-patch:8.2.0050: after deleting a file mark it is still in viminfo
Problem:    After deleting a file mark it is still in viminfo.
Solution:   When a file mark was deleted more recently than the mark in the
            merged viminfo file was updated, do not store the mark. (Pavol
            Juhas, closes vim/vim#5401, closes vim/vim#1339)
8cd6cd8087

Neovim's ShaDa is incompatible with Vim's "viminfo"
so "viminfo" tests fail.

N/A patches for version.c:

vim-patch:8.1.1731: command line history not read from viminfo on startup

Problem:    Command line history not read from viminfo on startup.
Solution:   Get history length after initializing it.
26b654a5df

vim-patch:8.1.1764: ":browse oldfiles" is not tested

Problem:    ":browse oldfiles" is not tested.
Solution:   Add a test.
5328cb8986

vim-patch:8.1.2111: viminfo file not sufficiently tested

Problem:    Viminfo file not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes vim/vim#5009)
2a8d3b8997

vim-patch:8.1.2126: viminfo not sufficiently tested

Problem:    Viminfo not sufficiently tested.
Solution:   Add more test cases.  Clean up comments. (Yegappan Lakshmanan,
            closes vim/vim#5032)
6bd1d77067
2021-01-05 09:47:38 -05:00
6127661024 forgot to update tests 2021-01-05 00:39:07 -08:00
231f75e086 change gravity to be a boolean flag, and add corresponding flag for end position of extmark 2021-01-05 00:28:34 -08:00
adbf2dd86b Merge pull request #13687 from paddor/master
remove trailing tabs
2021-01-05 07:59:39 +01:00
eaab8e494d buffer.c: fix problem of memory allocation 2021-01-05 15:09:43 +09:00
6d5626f355 remove trailing tabs 2021-01-04 20:10:34 +01:00
9223d1450d Merge pull request #13590 from bfredl/tsquery
treesitter: simplify query reading logic
2021-01-04 16:17:34 +01:00
5fcc247c6e Merge pull request #11906 from bfredl/moreblock
consider "-- more --" state to be blocking
2021-01-04 11:14:07 +01:00
885c2f7281 treesitter: simplify query reading logic
Only the plugin/package manager should "manage" after/. Consumers of
nvim_get_runtime_file() should not need to special case it (if your plugin
manager is broken then fix it instead).

Don't use vim.fn.readfile(). Lua can already read files. It is even
better at it than vim script.

expose M.get_query_files(). Listing the queries is essential for user
config debug, and let plugins do fun things with it.
Abstraction-by-obscurity is not useful (plugins can just cargo cult copy
the code anyway, better with public entry points).
2021-01-04 11:06:02 +01:00
4cdc8b1efd input: consider "-- more --" state to be blocking, fixes #11899 2021-01-04 09:41:25 +01:00
10b278bdae allow for extmark gravity to be set through api 2021-01-03 13:59:24 -08:00
a1ed941a78 vim-patch:8.2.0861: cannot easily get all the current marks (#13676)
Problem:    Cannot easily get all the current marks.
Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
cfb4b47de0

Cherry-pick the column number fix from patch v8.2.0871
because patch v8.2.0871 cannot be fully ported
without the method patches.

Co-authored-by: Peter Wolf <pwolf2310@gmail.com>
2021-01-03 15:33:21 -05:00
fff4facdc4 LSP: fix messageRequest to not return nested title (#13674)
* LSP: fix window/showMessageRequest to not return nested title

* Add window/showMessageRequest handler to docs
2021-01-03 20:31:09 +01:00
fd960a33e4 fix: check for valid buffer handles in modify_keymap (#13543)
Fixes #13541
Neovim would crash when trying to map a key on non existant buffer
2021-01-03 19:14:18 +01:00
ae63dc264a Merge pull request #13669 from bfredl/sortsplice
buffer updates: mark sorted region as changed.
2021-01-03 18:28:21 +01:00
a58d96a7ed buffer updates: mark sorted region as changed.
NB: currently this invalidates all extmarks inside the region.
Later on within-line extmarks could be preserved
2021-01-03 14:47:37 +01:00
adb01190c4 tests: make treesitter its own category 2021-01-03 14:47:29 +01:00
7a81a0c073 Merge pull request #13665 from janlazo/vim-8.2.0917
vim-patch:8.1.{1667,1672,1822},8.2.{407,917}
2021-01-03 10:10:10 +01:00
84d08358b7 ci: Fix typo in release.yml that prevents optimized nightly build (#13671)
Assuming the `CMAKE_BUILD_TYPE` directive is case-sensitive, this *actually* prevents the nightly build from being optimized. Even if it doesn't, the typo causes `:checkhealth` to issue a dummy warning in the Performance section.
2021-01-03 02:19:03 +01:00
ebcdcad0b7 Merge pull request #13670 from janlazo/vim-8.2.2274
vim-patch:8.2.{456,458,461,470,2274,2277}
2021-01-02 20:18:18 -05:00
c3931495b2 vim-patch:8.2.0470: Test_confirm_cmd_cancel() can fail on a slow system
Problem:    Test_confirm_cmd_cancel() can fail on a slow system.
Solution:   Use WaitForAssert(). (Ozaki Kiichi, closes vim/vim#5861)
7b1b36b1cb
2021-01-02 18:49:25 -05:00
30e8c1779f vim-patch:8.2.0461: confirm test fails on amd64 system
Problem:    Confirm test fails on amd64 system. (Alimar Riesebieter)
Solution:   Add an extra WaitForAssert(). (Dominique Pelle)
9207d1f523
2021-01-02 18:48:31 -05:00
d216314e5b vim-patch:8.2.0458: missing feature check in test function
Problem:    Missing feature check in test function.
Solution:   Add check commands.
bea9023d42
2021-01-02 18:47:06 -05:00
df40d973cc vim-patch:8.2.0456: Test_confirm_cmd is flaky
Problem:    Test_confirm_cmd is flaky.
Solution:   Add a term_wait() call. (closes vim/vim#5854)
72749f062f

Cherry-pick Test_confirm_cmd() from patch v8.2.0203
because that patch modifies multiple files.
Copied code is based on Test_confirm_cmd() as of patch v8.2.0456.

N/A patches for version.c:

vim-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.
2f91e2f8da

vim-patch:8.2.2277: missing backslash

Problem:    Missing backslash.
Solution:   Add backslash.
9281c6cae4
2021-01-02 18:46:31 -05:00
215aa83b2a vim-patch:8.1.1822: confusing error message when range is not allowed
Problem:    Confusing error message when range is not allowed.
Solution:   With ADDR_NONE give e_norange.  Change e_invaddr to e_invrange for
            consistency.
0acae7acc4
2021-01-02 12:20:35 -05:00
cb5ba225f8 vim-patch:8.2.0407: no early check if :find and :sfind have an argument
Problem:    No early check if :find and :sfind have an argument.
Solution:   Add EX_NEEDARG.
2d10cd4780

Cherry-pick Test_find_cmd() from patch v8.2.0270.
Use "exe 'cd ' . save_dir" pattern
because patches v8.1.1291, v8.1.2278 are not ported yet.
Cherry-pick modeline from patch v8.1.1432.
2021-01-02 12:20:35 -05:00
ffc3df51f1 vim-patch:8.1.1667: flags for Ex commands may clash with other symbols
Problem:    Flags for Ex commands may clash with other symbols.
Solution:   Prepend with EX_.
8071cb2c64

N/A patches for version.c:

vim-patch:8.1.1672: "make cmdidxs" doesn't work

Problem:    "make cmdidxs" doesn't work.
Solution:   Update macro names. (Naruhiko Nishino, closes vim/vim#4660)
d94ac0caca

Error message for src/nvim/ex_cmds.lua
which omits the "EX_" prefix for the flags.
2021-01-02 12:20:35 -05:00
01eda00962 vim-patch:8.2.0917: quickfix entries do not suport a "note" type
Problem:    Quickfix entries do not suport a "note" type.
Solution:   Add support for "note". (partly by Yegappan Lakshmanan,
            closes vim/vim#5527, closes vim/vim#6216)
e928366de5
2021-01-02 12:20:34 -05:00
48caf1df85 Merge pull request #13649 from mjlbach/move_from_nvim-lspconfig
LSP: Move workspace/configuration from nvim-lspconfig to core
2021-01-01 23:52:48 +01:00
4a0a6f7bff LSP: progress callback should only update existing dict for reports (#13652)
Change the update of the client.messages.progress table to overwrite only the percentage and message properties on $report, Previously we were overwriting the table which meant client.messages.progress[token].message.title was wiped on report.
2021-01-01 23:51:47 +01:00
5eccfd2b2e Merge pull request #13655 from janlazo/vim-8.2.2255
vim-patch:8.1.{1241,1261,1275,1281,1549,1590,1881,2079,2322,2360,2411},8.2.{113,388,934,2255,2258,2260,2269}
2021-01-01 17:40:26 -05:00
52bfaea70e test/win: skip vargs memory usage on Github Actions
This test can fail on any of the Windows builds
because Github Actions does not provide enough stability
and enough memory for all runners..

Check test requirements before running any test cases
to avoid duplicate checks.
2021-01-01 17:13:43 -05:00
fc191352e9 vim-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 vim/vim#7595)
edc10b541b
2021-01-01 16:56:25 -05:00
60855116f0 vim-patch:8.2.0388: printmbcharset option not tested
Problem:    Printmbcharset option not tested.
Solution:   Add a test.  Enable PostScript for AppVeyor build. (Dominique
            Pelle, closes vim/vim#5783)
833805a486
2021-01-01 16:56:24 -05:00
85c658e388 vim-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 vim/vim#7592)
5efe0e5d16
2021-01-01 16:56:24 -05:00
b580cf83bd vim-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 vim/vim#7590)
beef4eeda5
2021-01-01 16:56:24 -05:00
7718826edf docs: nvim_buf_set_text 2021-01-01 14:24:40 -05:00
dac3b35ece Merge pull request #11833 from bfredl/set_text
nvim_buf_set_text
2021-01-01 20:21:09 +01:00
90f619f140 Merge pull request #13592 from bfredl/setmouse
ui: make 'mouse' handling in external UI more consistent
2021-01-01 20:04:09 +01:00
39d098f9f9 api: set_text: fix some byte count issues
add byte count tests

update documentation
2021-01-01 19:51:58 +01:00
f7d01a65d5 api: set_text: more tests, and fixing lint
removing pending virtcol tests

Allow passing in empty array as a shorthand for array with empty string; add more documentation

add check for start_row as well
2021-01-01 19:51:58 +01:00
45b14f88db api: set_text: rebase, update to new api, and add more tests 2021-01-01 19:51:45 +01:00
29ad2ebc16 api: set_text: fix validation and some issues
fix double free because intermediary lines weren't xmemdup'd.

NL-for-NUL dance.

Normalize row indices and perform more validation.

Adjust the cursor position if it's on the right side of the replacement.

Tests and documentation.
2021-01-01 19:51:37 +01:00
9be19b770d api: set_text: first stab at nvim_buf_set_text 2021-01-01 19:51:24 +01:00
86ae394aeb vim-patch:8.2.0934: lhelpgrep twice in help window doesn't jump to the help topic
Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
            topic.
Solution:   Check whether any window with the location list is present.
            (Yegappan Lakshmanan, closes vim/vim#6215)
ec98e93a82
2021-01-01 13:28:35 -05:00
134ea0c935 vim-patch:8.1.2360: quickfix test coverage can still be improved
Problem:    Quickfix test coverage can still be improved.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes vim/vim#5276)
15a7bdcb77
2021-01-01 13:20:27 -05:00
6db86cb2d3 ui: make 'mouse' handling in external UI more consistent
before the behaviour of 'mouse' was inconsistent in external UI,
as some remapping logic would check has_mouse() and others don't
(no difference in TUI or vim classic). With this change, the behaviour
is consistently up to the UI decide (see ui.txt edit)

Behaviour of tui.c is unaffected by this change.
2021-01-01 15:47:44 +01:00
3847b58a13 vim-patch:8.1.2411: function argument copied unnecessarily
Problem:    Function argument copied unnecessarily.
Solution:   Use the argument directly.
1b03a193b3
2021-01-01 04:58:05 -05:00
d7b577d6ab vim-patch:8.1.1281: cannot specify a count with :chistory
Problem:    Cannot specify a count with :chistory.
Solution:   Add a count to :chistory and :lhistory. (Yegappan Lakshmanan,
            closes vim/vim#4344)
8ffc7c8b5f
2021-01-01 04:58:05 -05:00
d1608f7503 vim-patch:8.1.1275: cannot navigate to errors before/after the cursor
Problem:    Cannot navigate to errors before/after the cursor.
Solution:   Add the :cbefore and :cafter commands. (Yegappan Lakshmanan,
            closes vim/vim#4340)
cf6a55c4b0
2021-01-01 04:58:05 -05:00
5cf94effee test, legacy/assert_spec.lua: fix few tests fail
Adjust failing tests to current behavior due to changes in assert_fails
behavior by fbd6a86.
2021-01-01 04:58:05 -05:00
35dc6d6e87 vim-patch:8.1.1261: no error for quickfix commands with negative range
Problem:    No error for quickfix commands with negative range.
Solution:   Add ADDR_UNSIGNED and use it for quickfix commands.  Make
            assert_fails() show the command if the error doesn't match.
25190db225

N/A patches for version.c:

vim-patch:8.2.0113: "make cmdidxs" fails

Problem:    "make cmdidxs" fails.
Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.
9b24dfcb9f
2021-01-01 04:57:50 -05:00
f3bbc92476 LSP: add test for workspace/configuration handler 2021-01-01 01:40:46 -08:00
e467d29390 LSP: Move workspace/configuration handler from nvim-lspconfig to core 2021-01-01 01:40:33 -08:00
8742082661 LSP: Add helper function from accessing language server settings from nvim-lspconfig 2021-01-01 01:40:33 -08:00
a66d63f36e test, provider/define_spec.lua: fix few tests fail
fbd6a86 changes the behavior of :command-range and no longer allows
arbitrary numbers. Adjust tests to reflect this behavior.
2021-01-01 04:30:55 -05:00
f3c242c13c vim-patch:8.1.1241: Ex command info contains confusing information
Problem:    Ex command info contains confusing information.
Solution:   When using the NOTADR flag use ADDR_OTHER for the address type.
            Cleanup code using NOTADR.  Check for errors in
            create_cmdidxs.vim.  Adjust Makefile to see the errors.
b731689e85

Use Lua's "assert()" to make an invalid command definition
a compilation error.

Misc changes:

Remove 'RESTRICT' flag.
Neovim does not support "restricted" mode
since commit 7777532ceb.

TODO:
Do not generate files before Lua assertions
so that CMake always runs the generator script
if the previous build has an invalid command definition.
2021-01-01 04:30:55 -05:00
cf3a861017 vim-patch:8.1.1549: quickfix test fails
Problem:    Quickfix test fails.
Solution:   Negate result of bt_quickfix().
61eeeea8e6

Patch v8.1.1547 introduces the bug that is fixed by this patch.

N/A patches for version.c:

vim-patch:8.1.1590: popup window test fails

Problem:    Popup window test fails.
Solution:   Add "scrollbar" to expected result.
6c6a603cd2

vim-patch:8.1.1881: popup window test fails in some configurations

Problem:    Popup window test fails in some configurations.
Solution:   Check that screendumps can be made.
f4665e78f2

vim-patch:8.1.2079: popup window test fails without +terminal

Problem:    Popup window test fails without +terminal.
Solution:   Check for the +terminal feature.
d2c1fb476d

vim-patch:8.1.2322: quickfix test fails in very big terminal

Problem:    Quickfix test fails in very big terminal.
Solution:   Adjust the expected result for the width. (Masato Nishihata,
            closes vim/vim#5244)
ffc4fb8fee

Patch v8.1.2339 reverts the change but patch v8.1.2340 restores it.
Port of patch v8.1.2340 was merged and includes changes from patches
v8.1.2320, v8.1.2322, v8.1.2339.

vim-patch:8.2.2255: Tcl test fails

Problem:    Tcl test fails.
Solution:   Change option handling.
1779ff4842
2020-12-31 19:16:30 -05:00
f3a8c930a4 Merge pull request #13653 from janlazo/revert-10848
Revert #10848
2020-12-31 18:44:41 -05:00
b01a60b1aa Revert "vim-patch:8.1.0822: peeking and flushing output slows down execution"
This reverts commit 0519a75f6e.
2020-12-31 16:44:53 -05:00
27548e3cd0 Revert "vim-patch:8.1.1189: mode is not cleared when leaving Insert mode"
This reverts commit 4afddb8f57.
2020-12-31 16:44:53 -05:00
723e009214 Revert "vim-patch:8.1.1192: mode is not cleared when leaving Insert mode with mapped Esc"
This reverts commit 44bb7147e4.

Avoid regression mentioned in c64cce906e (commitcomment-45554271)
2020-12-31 16:44:53 -05:00
74b343a6f2 Merge pull request #13650 from jamessan/windows-binaries
ci: Add Windows binaries to the release
2020-12-31 01:09:27 -05:00
0aa6b40599 ci: Add Windows binaries to the release 2020-12-31 00:14:37 -05:00
0efbab5f5e Merge pull request #13644 from jamessan/ci-tweaks 2020-12-30 22:13:01 -05:00
00247ecadc Merge pull request #13646 from janlazo/vim-8.2.2247
vim-patch:8.1.{172,1230,1727},8.2.2247
2020-12-30 20:34:56 -05:00
fd507e2788 LSP: window/showMessageRequest (#13641)
Another 3.16 compatibility. Solves Vue crashing currently. Currently not handling the return result, but would allow opening web browser in this case.
2020-12-31 00:09:33 +01:00
e256777b5a Merge pull request #13648 from teto/fix-fold-hl
adds a test to check syntax is taken into account in open folds
2020-12-30 23:55:00 +01:00
28b7574c94 lsp: Disable capabilities not currently supported by language client handlers (#13638)
Several language servers are incorrectly invoking handlers which are not yet implemented in core.
2020-12-30 23:54:02 +01:00
329547bf70 doc: Fix some spelling errors (#13636)
- Change 'conenvience' to 'convenient'
- Change 'lsp-handers' to 'lsp-handlers'
2020-12-30 23:39:05 +01:00
9c68aac37b tests: check highlights work in open folds
to prevent a regression we just witnessed
2020-12-30 23:32:40 +01:00
61c9d2a213 fix(flake): enable make functionaltest
otherwise busted is not provided/found and functionaltests are disabled.
2020-12-30 23:32:40 +01:00
fb90b6ec98 LSP: implement window/workDoneProgress/create (#13640) 2020-12-30 23:17:35 +01:00
bc8f2fdca4 vim-patch:8.1.1727: code for viminfo support is spread out
Problem:    Code for viminfo support is spread out.
Solution:   Move to code to viminfo.c. (Yegappan Lakshmanan, closes vim/vim#4686)
defa067c54

N/A patches for version.c:

vim-patch:8.1.1230: a lot of code is shared between vim.exe and gvim.exe

Problem:    A lot of code is shared between vim.exe and gvim.exe.
Solution:   Optionally put the shared code in vim.dll. (Ken Takata,
            closes vim/vim#4287)
afde13b62b

vim-patch:8.2.2247: VMS: various smaller problems

Problem:    VMS: various smaller problems.
Solution:   Fix VMS building and other problems. (Zoltan Arpadffy)
467676d468
2020-12-30 15:55:18 -05:00
3ea77f50cb vim-patch:8.1.0172: 'viminfofile' option does not behave like a file name
Problem:    'viminfofile' option does not behave like a file name.
Solution:   Add the P_EXPAND flag. (closes vim/vim#3178)
c229e54a69
2020-12-30 15:55:18 -05:00
2f1dc21379 ci(GHA): Disable fail-fast for CI checks 2020-12-30 09:52:42 -05:00
5964c0597a Remove Appveyor badge 2020-12-30 09:49:35 -05:00
52163c66b9 fix(fold): highlight even in folds (#13643) 2020-12-30 15:17:41 +01:00
69fc6c2de0 Merge pull request #13552 from janlazo/vim-8.1.0149
vim-patch:8.1.{149,151,790,2100}
2020-12-29 23:15:10 -05:00
d2837d5efc vim-patch:8.1.2100: :mksession is not sufficiently tested
Problem:    :mksession is not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes vim/vim#4993)
ee1a2b5a2a
2020-12-29 22:35:25 -05:00
f0a8ccff8f vim-patch:8.1.0790: code for creating tabpages in session is too complex
Problem:    Code for creating tabpages in session is too complex.
Solution:   Simplify the code. (Jason Franklin)
57a6bf0567
2020-12-29 22:31:21 -05:00
c60f7c2064 vim-patch:8.1.0151: mksession test fails on MS-Windows
Problem:    Mksession test fails on MS-Windows.
Solution:   Always use an argument for :lcd.
81e2ac7bb6
2020-12-29 22:31:21 -05:00
ca2551bc9b vim-patch:8.1.0149: session is wrong with multiple tabs when :lcd was used
Problem:    The generated sessions file does not restore tabs properly if :lcd
            was used in one of them.
Solution:   Create the tab pages before setting the directory. (Yee Cheng
            Chin, closes vim/vim#3152)
26d4b896a7
2020-12-29 22:31:20 -05:00
c762f5220b vim-patch:8.2.2244: crash when making the window width negative (#13633)
Problem:    Crash when making the window width of the not-current window
            negative.
Solution:   Make sure the window width is not negative. (closes vim/vim#7568)
89015a6759

N/A patches for version.c:

vim-patch:8.0.1617: Win32: :shell command in the GUI crashes

Problem:    Win32: :shell command in the GUI crashes.
Solution:   Handle the situation that "cmd" is NULL. (Yasuhiro Matsumoto,
            closes vim/vim#2721)
42f652f733

vim-patch:8.1.0244: no redraw when using a STOP signal on Vim and then CONT

Problem:    No redraw when using a STOP signal on Vim and then a CONT signal.
Solution:   Catch the CONT signal and force a redraw. (closes vim/vim#3285)
917e32bda5

vim-patch:8.1.0302: crash when using :suspend and "fg"

Problem:    Crash when using :suspend and "fg".
Solution:   Undo patch 8.1.244.
f1883479be

vim-patch:8.1.0548: crash when job callback unloads a buffer

Problem:    Crash when job callback unloads a buffer. (James McCoy)
Solution:   Don't round up the wait time to 10 msec in ui_inchar().
1341024e08

vim-patch:8.1.1652: GUI: popup window doesn't close on mouse movement

Problem:    GUI: popup window doesn't close on mouse movement. (Paul Jolly)
Solution:   Generate mouse-move events when a popup window is visible.
49fe95f225

vim-patch:8.1.1695: Windows 10: crash when cursor is at bottom of terminal

Problem:    Windows 10: crash when cursor is at bottom of terminal.
Solution:   Position the cursor before resizing. (Yasuhiro Matsumoto,
            closes vim/vim#4679)
f49a692259

vim-patch:8.2.2246: cursor keys not recognized at the hit-Enter prompt

Problem:    Cursor keys not recognized at the hit-Enter prompt after executing
            an external command.
Solution:   Change the codes for the extra cursor keys. (closes vim/vim#7562)
            Tune the delays to avoid test flakyness.
4d8c96d466
2020-12-29 21:15:36 -05:00
28a0f6b17d Merge pull request #13629 from jamessan/remove-old-ci 2020-12-28 21:47:00 -05:00
18512649e6 ci(travis): Remove jobs covered by GHA 2020-12-28 21:19:48 -05:00
7dbc82912a ci(appveyor): Remove now that GHA is testing Windows 2020-12-28 21:19:18 -05:00
a06c256ec8 Merge pull request #13540 from erw7/add-gha-for-windows-vs2017 2020-12-28 21:15:38 -05:00
f5383705d1 Merge pull request #13624 from janlazo/vim-8.2.2234
vim-patch:8.1.1032,8.2.{429,1785,2234,2235,2237,2241}
2020-12-28 20:14:48 -05:00
b0215afc84 fix(fold): dont highlight search results on folded lines (#13616)
Behavior may change in future but for now stick to legacy behavior.
2020-12-29 01:19:24 +01:00
d712c30fff vim-patch:8.2.0429: no warning when test checks for option that never exists
Problem:    No warning when test checks for option that never exists.
Solution:   In tests check that the option can exist.
c5a8fdc42d
2020-12-28 18:34:01 -05:00
26dfeb42dd vim-patch:8.1.1032: warnings from clang static analyzer
Problem:    Warnings from clang static analyzer. (Yegappan Lakshmanan)
Solution:   Fix relevant warnings.
2c519cf3bf
2020-12-28 18:34:01 -05:00
0e913a0812 vim-patch:8.2.2234: command line wildmenu test often fails with Unix GUI
Problem:    Command line wildmenu test often fails with Unix GUI.
Solution:   Skip the test where it is expected to fail.
3e112acc22

Include modeline fix for ASAN build.

N/A patches for version.c:

vim-patch:8.2.1785: compiler warning for strcp() out of bounds

Problem:    Compiler warning for strcp() out of bounds. (Christian Brabandt)
Solution:   use memmove() instead.
3f974ff45e

vim-patch:8.2.2235: build failure with some Ruby versions

Problem:    Build failure with some Ruby versions.
Solution:   Adjust the code for Ruby 3.0. (Ozaki Kiichi, closes vim/vim#7564)
dace9f785f

vim-patch:8.2.2237: CI on Mac fails in sed command

Problem:    CI on Mac fails in sed command.
Solution:   Set LC_ALL to "C". (Ozaki Kiichi, closes vim/vim#7565)
ed1e4c9a70

vim-patch:8.2.2241: Build with Ruby and clang may fail

Problem:    Build with Ruby and clang may fail.
Solution:   Adjust congigure and sed script. (Ozaki Kiichi, closes vim/vim#7566)
864a28b6a6
2020-12-28 18:33:50 -05:00
93762072d1 lsp: Use correct bufnr for documentHighlight handler (#13622) 2020-12-29 00:05:30 +01:00
a58c5509d9 Merge pull request #13607 from janlazo/vim-8.2.2221
vim-patch:8.1.2227,8.2.{315,928,1007,1052,1121,1580,2221,2229,2231,2232}
2020-12-27 17:14:31 -05:00
cff4cad25a vim-patch:8.2.2231: when "--remote file" is used "file" is not reloaded
Problem:    When "--remote file" is used "file" is not reloaded.
Solution:   When a :drop command is used for a file that is already displayed
            in a window and it has not been changed, check if it needs to be
            reloaded. (closes vim/vim#7560)
e4862a0fe6

Remove unused "focus" parameter from "buf_check_timestamp()".
It was meant for removed GUI code.
2020-12-27 14:37:19 -05:00
883114e882 vim-patch:8.2.0928: many type casts are used for vim_strnsave()
Problem:    Many type casts are used for vim_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes vim/vim#5633)  Remove some type casts.
df44a27b53

N/A patches for version.c:

vim-patch:8.2.0315: build failure on HP-UX system

Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
c593bec412

vim-patch:8.2.1052: build failure with older compilers

Problem:    Build failure with older compilers.
Solution:   Move declaration to start of block.
7acde51832

vim-patch:8.2.2229: build failure without the +eval feature

Problem:    build failure without the +eval feature.
Solution:   Add #ifdef.
39cb2dab18

vim-patch:8.2.2232: compiler error for falling through into next case

Problem:    Compiler error for falling through into next case.
Solution:   Move FALLTHROUGH below the #endif
9618a25b9c
2020-12-27 14:05:41 -05:00
f2be59d8f8 Merge pull request #13611 from HARSH-SHETH/typo
Fixed a typo.
2020-12-27 17:56:09 +01:00
b9c48e1d75 Fixed a typo.
Changed 'reqesting' to 'requesting' in /runtime/doc/api.txt file
2020-12-27 10:19:21 +05:30
ed0131e3d9 vim-patch:8.2.1580: wildmenu does not work properly
Problem:    Wildmenu does not work properly.
Solution:   Do not call may_do_incsearch_highlighting() if completion is in
            progress.
a60053b8f4
2020-12-26 21:27:18 -05:00
b90ae75668 vim-patch:8.2.1121: command completion not working after ++arg
Problem:    Command completion not working after ++arg.
Solution:   Move skipping up. (Christian Brabandt, closes vim/vim#6382)
743d062020
2020-12-26 21:10:13 -05:00
684172ae82 vim-patch:8.2.1007: completion doesn't work after ":r ++arg !"
Problem:    Completion doesn't work after ":r ++arg !".
Solution:   Skip over "++arg". (Christian Brabandt, closes vim/vim#6275,
            closes vim/vim#6258)
c8cb883015
2020-12-26 21:04:40 -05:00
0aa2c7e2ec vim-patch:8.1.2227: layout wrong if 'lines' changes while cmdline window is open
Problem:    Layout wrong if 'lines' changes while cmdline window is open.
Solution:   Do not restore the window layout if 'lines' changed.
            (closes vim/vim#5130)
1c329c04be
2020-12-26 18:22:04 -05:00
a51248ea17 vim-patch:8.2.2221: if <Down> is mapped on the command line 'wildchar' is inserted
Problem:    If <Down> is mapped on the command line 'wildchar' is inserted.
Solution:   Set KeyTyped when using 'wildchar'. (closes vim/vim#7552)
b0ac4ea5e1
2020-12-26 13:28:28 -05:00
c64cce906e Merge pull request #10848 from janlazo/vim-8.1.1189
vim-patch:8.1.{822,1189,1192}
2020-12-26 03:38:54 -05:00
44bb7147e4 vim-patch:8.1.1192: mode is not cleared when leaving Insert mode with mapped Esc
Problem:    Mode is not cleared when leaving Insert mode with mapped Esc.
Solution:   Clear the mode when redraw_cmdline is set. (closes vim/vim#4269)
4c25bd785a
2020-12-26 02:34:13 -05:00
4afddb8f57 vim-patch:8.1.1189: mode is not cleared when leaving Insert mode
Problem:    Mode is not cleared when leaving Insert mode.
Solution:   Clear the mode when got_int is set. (Ozaki Kiichi, closes vim/vim#4270)
abc7c7fc5a
2020-12-25 19:25:30 -05:00
0519a75f6e vim-patch:8.1.0822: peeking and flushing output slows down execution
Problem:    Peeking and flushing output slows down execution.
Solution:   Do not update the mode message when global_busy is set.  Do not
            flush when only peeking for a character. (Ken Takata)
cb574f4154
2020-12-25 19:25:30 -05:00
84faeb07d0 Merge pull request #13602 from janlazo/vim-8.2.2206
vim-patch:8.1.2212,8.2.{51,782,856,1174,1212,2206,2211}
2020-12-25 11:11:31 -05:00
43834b24ac vim-patch:8.2.2206: :exe command line completion only works for first argument
Problem:    :exe command line completion only works for first argument.
Solution:   Skip over text if more is following. (closes vim/vim#7546)
4941b5effd

Port "IS_WHITE_OR_NUL" macro from patch v8.2.0562
as "ascii_iswhite_or_nul()" inline function.

N/A patches for version.c:

vim-patch:8.2.0782: cannot build with Lua on MS-Windows

Problem:    Cannot build with Lua on MS-Windows.
Solution:   Add DLL symbol for luaL_Loadstring. (Ken Takata)
df1643a6a7

vim-patch:8.2.0856: CTRL-S stops output

Problem:    CTRL-S stops output.
Solution:   Invert the IXON flag. (closes vim/vim#6166)
928eec649b

vim-patch:8.2.1212: cannot build with Lua 5.4

Problem:    Cannot build with Lua 5.4.
Solution:   Use luaL_typeerror instead defining it. (closes vim/vim#6454)
5551b131da

vim-patch:8.2.2211: MS-Windows: can't load Python dll if not in the path

Problem:    MS-Windows: can't load Python dll if not in the path.
Solution:   Use the InstallPath registry entry. (Kelvin Lee, closes vim/vim#7540)
b2f9e0e2c5
2020-12-25 10:20:29 -05:00
1e823986e9 vim-patch:8.2.1174: no test for the "recording @x" message
Problem:    No test for the "recording @x" message.
Solution:   Add a test. (Dominique Pellé, closes vim/vim#6427)
11a5b19a8c
2020-12-25 10:17:01 -05:00
8cf4a02bf2 vim-patch:8.1.2212: cannot see the selection type in :reg output
Problem:    Cannot see the selection type in :reg output. (Ayberk Aydın)
Solution:   Add c/l/b. (Christian Brabandt, closes vim/vim#5110, closes vim/vim#4546)
3691f1ee72

Patch v8.1.0999 is not ported so ":registers" does not omit register 1.
2020-12-25 10:17:00 -05:00
0813bb021a vim-patch:8.2.0051: command line completion test skipped
Problem:    Command line completion test skipped. (Christian Brabandt)
Solution:   Invert condition.
731a799bb9

Cherry-pick Test_cmdline_complete_bang() from patch v8.2.0049.
2020-12-25 10:17:00 -05:00
8c8cc35926 Merge pull request #13595 from teto/fix-filler
de curwinify some functions
2020-12-24 22:43:27 +01:00
88ae03bcdb feat(sign):Allow signs to be 0 width (#13290)
Adds support for signs to be 0 cells wide. If all signs of the same
group have no width, the signcolumn will not be rendered for that group.
2020-12-24 17:33:52 +01:00
6c28bddfad Merge pull request #13599 from janlazo/vim-8.2.2197
vim-patch:8.1.{1837,1840},8.2.{907,2197,2203}
2020-12-24 17:03:37 +01:00
c56377bac6 vim-patch:8.2.2203: Moodle gift files are not recognized
Problem:    Moodle gift files are not recognized.
Solution:   Add a filetype pattern. (Delim Temizer)
b34f337472
2020-12-24 09:23:35 -05:00
f35118ade4 vim-patch:8.2.0907: when using :global clipboard isn't set correctly
Problem:    When using :global clipboard isn't set correctly.
Solution:   Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian
            Brabandt, closes vim/vim#6203, closes vim/vim#6198)
07188fc5ef
2020-12-24 09:18:33 -05:00
172f619b9a vim-patch:8.1.1837: popup test fails if clipboard is supported but not working
Problem:    Popup test fails if clipboard is supported but not working.
Solution:   Add the "clipboard_working" feature. Also use Check commands
            instead of "if" and "throw".  And remove stray ch_logfile().
4999a7fb65

Treat "clipboard_working" feature as an alias to "clipboard" feature.

N/A patches for version.c:

vim-patch:8.1.1840: Testing: WorkingClipboard() is not accurate

Problem:    Testing: WorkingClipboard() is not accurate.
Solution:   Check feature clipboard_working instead.
52992feafe

Neovim did not port WorkingClipboard() for the legacy tests.
2020-12-24 09:18:33 -05:00
6897ce4417 vim-patch:8.2.2197: assert arguments order reversed
Problem:    Assert arguments order reversed.
Solution:   Swap the arguments. (Christian Brabandt, closes vim/vim#7531)
9f63a65f22
2020-12-24 09:18:33 -05:00
4dfc5bb2d0 Merge pull request #13537 from bfredl/rpcabort
rpc: don't handle stale requests on already closed channel
2020-12-24 14:34:47 +01:00
7afd4526f2 Merge pull request #13591 from janlazo/vim-8.1.1805
vim-patch:8.1.1805,8.2.{116,1025}
2020-12-23 21:37:08 -05:00
7add3ef996 fix: appease linter 2020-12-24 00:21:05 +01:00
95352f490a rpc: don't handle stale requests on already closed channel 2020-12-23 23:58:56 +01:00
6eecd4230d lsp: Fire LspDiagnosticsChanged before returning (#13483)
Run hook even when transitioning from some diagnostics to no diagnostics
2020-12-23 23:29:37 +01:00
45166313cc refactor: de-curwin-ify update_topline/curs_columns 2020-12-23 16:53:35 +01:00
4d9520ec86 refactor: pass the window to get_(side)scrolloff_value
to less rely on curwin
2020-12-23 16:21:10 +01:00
e193dbd7e8 vim-patch:8.2.1025: tabpage menu and tabline not sufficiently tested
Problem:    Tabpage menu and tabline not sufficiently tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes vim/vim#6307)
8c524f76eb

Cherry-pick Test_entering_digraph() from patch v8.2.1022.
Cherry-pick :CheckGui from patch v8.1.1826.
2020-12-23 02:29:43 -05:00
afa5a11363 vim-patch:8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Problem:    BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
Solution:   Decrement autocmd_no_enter for the last file. (closes vim/vim#1660,
            closes vim/vim#5473)
c10b521628

N/A patches for version.c:

vim-patch:8.1.1805: au_did_filetype is declared twice

Problem:    Au_did_filetype is declared twice.
Solution:   Remove it from autocmd.c. (closes vim/vim#4767)
6cd57d4466
2020-12-23 02:21:46 -05:00
d0668b36a3 Merge pull request #13586 from janlazo/vim-8.1.1047
vim-patch:8.1.{1047,1101,1212},8.2.{742,749,769,874,2142,2189,2192}
2020-12-22 19:53:44 -05:00
b602fe74b0 vim-patch:8.2.2189: cannot repeat a command that uses the small delete register
Problem:    Cannot repeat a command that uses the small delete register.
Solution:   Store the register name instead of the contents. (Christian
            Brabandt, closes vim/vim#7527)
032a2d050b

N/A patches for version.c:

vim-patch:8.2.2192: Codecov on github actions fails

Problem:    Codecov on github actions fails.
Solution:   Revert to codecov script. (Ozaki Kiichi, closes vim/vim#7529)
e5492609b3
2020-12-22 18:15:01 -05:00
0561243771 vim-patch:8.2.2142: memory leak when heredoc is not terminated
Problem:    Memory leak when heredoc is not terminated.
Solution:   Free heredoc_trimmed.
fffdf4754f
2020-12-22 18:08:47 -05:00
dd515b7097 vim-patch:8.2.0874: signals test is a bit flaky
Problem:    Signals test is a bit flaky.
Solution:   Flush the XautoOut file.  Delete files that may be left behind
            from a failure. (Dominique Pelle, closes vim/vim#6179)
d14fd5285e
2020-12-22 18:08:47 -05:00
caf2620f18 vim-patch:8.2.0769: VimLeavePre not triggered when Vim is terminated
Problem:    VimLeavePre not triggered when Vim is terminated.
Solution:   Unblock autocommands.
129d6bf6b3
2020-12-22 18:08:47 -05:00
40f9b1dd2c vim-patch:8.2.0749: TERM signal test fails on FreeBSD
Problem:    TERM signal test fails on FreeBSD.
Solution:   Do not check the messages, the may appear anywhere. (Dominique
            Pelle, closes vim/vim#6075)
55ba4b844f
2020-12-22 18:08:35 -05:00
8355ea2588 vim-patch:8.2.0742: handling of a TERM signal not tested
Problem:    Handling of a TERM signal not tested.
Solution:   Add a test for SIGTERM. (Dominique Pelle, closes vim/vim#6055)
48a687148c
2020-12-22 18:08:35 -05:00
0914faf7fa vim-patch:8.1.1212: signal PWR is not tested
Problem:    Signal PWR is not tested.
Solution:   Test that PWR updates the swap file. (Dominique Pelle,
            closes vim/vim#4312)
520e245237
2020-12-22 18:08:35 -05:00
7e63bbe4ec vim-patch:8.1.1101: signals test may fail in the GUI
Problem:    Signals test may fail in the GUI.
Solution:   Skip the test for the GUI. (Yee Checng Chin, closes vim/vim#4202)
690a905a01
2020-12-22 18:08:35 -05:00
2b781a6d7f vim-patch:8.1.1047: WINCH signal is not tested
Problem:    WINCH signal is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#4158)
db77b84ac2
2020-12-22 18:08:35 -05:00
b931a554d7 GHA/osx: workaround for brew update error (#13584) 2020-12-22 08:47:46 -05:00
7b65a9135e Merge pull request #13581 from janlazo/vim-8.2.2174
vim-patch:8.2.{2174,2175,2176,2177,2181}
2020-12-21 22:30:15 -05:00
07425d45e6 vim-patch:8.2.2181: valgrind warnings for using uninitialized value
Problem:    Valgrind warnings for using uninitialized value.
Solution:   Do not use "start" or "end" unless there is a match.
a3d10a508c
2020-12-21 21:34:18 -05:00
1eab3584ba vim-patch:8.2.2177: pattern "^" does not match if first character is combining
Problem:    Pattern "^" does not match if the first character in the line is
            combining. (Rene Kita)
Solution:   Do accept a match at the start of the line. (closes vim/vim#6963)
ef2dff52de
2020-12-21 21:27:13 -05:00
5e80b90ef4 vim-patch:8.2.2176: crash with a sequence of fold commands
Problem:    Crash with a sequence of fold commands.
Solution:   Bail out when there are no folds at all.  Add a test (Dominique
            Pellé) (closes vim/vim#7515)
6a78f32844

N/A patches for version.c:

vim-patch:8.2.2174: Mac version doesn't specify the CPU architecture

Problem:    Mac version doesn't specify the CPU architecture.
Solution:   Add "arm64" or "x86_64". (Yee Cheng Chin, closes vim/vim#7519)
8c9d98a8af

vim-patch:8.2.2175: github actions: clang-11 handling suboptimal

Problem:    Github actions: clang-11 handling suboptimal.
Solution:   Separate step of installing clang-11. Get ubuntu release name
            dynamically. (Ozaki Kiichi, closes vim/vim#7514)
9aff970204
2020-12-21 19:10:43 -05:00
aa3b17d04a lsp: Add <nomodeline> to doautocmd calls (#13576)
When using "au User LspDiagnosticsChanged redrawstatus!", modelines get processed again (see h: doautocmd). Fortunately this can be suppressed using the <nomodeline> flag. this replaces every doautocmd call, that issues a User command, with doautocmd <nomodeline>.
2020-12-21 20:03:50 +01:00
f15441be4b Merge pull request #13573 from janlazo/vim-8.1.1872
vim-patch:8.1.1872,8.2.1966
2020-12-21 09:28:26 -05:00
ebb0cbc6cc vim-patch:8.2.1966: popup becomes current window after closing a terminal window
Problem:    Popup becomes current window after closing a terminal window.
Solution:   When restoring the window after executing autocommands, check that
            the window ID is still the same.  (Naruhiko Nishino,
            closes vim/vim#7272)
cbcd9cbd77
2020-12-20 23:17:03 -05:00
d1142e02bf vim-patch:8.1.1872: when Vim exits because of a signal, VimLeave is not triggered
Problem:    When Vim exits because of a signal, VimLeave is not triggered.
            (Daniel Hahler)
Solution:   Unblock autocommands when triggering VimLeave. (closes vim/vim#4818)
c7226684c8
2020-12-20 20:36:55 -05:00
a1ec36ff31 Merge pull request #13572 from janlazo/vim-8.2.0180
vim-patch:8.2.{180,686,2166,2171}
2020-12-20 19:22:18 -05:00
afe7c43025 vim-patch:8.2.2171: valgrind warning for using uninitialized value
Problem:    Valgrind warning for using uninitialized value.
Solution:   Do not use "startp" or "endp" unless there is a match.
61e07b2394
2020-12-20 18:13:17 -05:00
06869a6940 vim-patch:8.2.2166: auto format doesn't work when deleting text
Problem:    Auto format doesn't work when deleting text.
Solution:   Make "x" trigger auto format. (closes vim/vim#7504)
d0a1dee3f1
2020-12-20 17:03:36 -05:00
0476f049f4 vim-patch:8.2.0686: formatoptions not sufficiently tested
Problem:    Formatoptions not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#6031)
2eaeaf3c31

Cherry-pick Test_fo_a_w() from patch v8.2.0482.
2020-12-20 17:00:34 -05:00
7fc59461a8 vim-patch:8.2.0180: test for wrapmargin fails if terminal is not 80 columns
Problem:    Test for wrapmargin fails if terminal is not 80 columns.
Solution:   Vertical split the window. (Ken Takata, closes vim/vim#5554)
0c3064b39b
2020-12-20 16:56:37 -05:00
1e59134834 lsp: add $/progress report (#13294)
Heavily inspired by https://github.com/nvim-lua/lsp-status.nvim.
listen to the LspProgressUpdate event to update your statusline.
2020-12-20 21:59:25 +01:00
b1711e6f92 foldcolumn: support "auto" (#13571)
"set foldcolumn=auto" is documented but not supported.
Support it by making it behave as "auto:1", similar to "signcolumn".

Close https://github.com/neovim/neovim/pull/13561
2020-12-20 15:20:42 -05:00
abcbc5a9f3 lsp: Fix text payload in didSave notification (#13363)
According to the specification[1] the payload must look like this:

    interface DidSaveTextDocumentParams {
    	/**
    	 * The document that was saved.
    	 */
    	textDocument: TextDocumentIdentifier;

    	/**
    	 * Optional the content when saved. Depends on the includeText value
    	 * when the save notification was requested.
    	 */
    	text?: string;
    }

`text` must be on the same level as `textDocument´.

Where `TextDocumentIdentifier` is:

    interface TextDocumentIdentifier {
	/**
	 * The text document's URI.
	 */
	uri: DocumentUri;
    }

[1]: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didSave
2020-12-20 18:12:39 +01:00
fa46123998 doc: Fix vim.lsp.diagnostic.get_next (#13495) 2020-12-20 16:17:11 +01:00
8e9aa81919 vim-patch:8.2.1289: crash when using a custom completion function (#13565)
Problem:    Crash when using a custom completion function.
Solution:   Initialize all of the expand_T. (closes vim/vim#6532)
c841afff6a

Cherry-pick CLEAR_POINTER macro from patch v8.2.0559.

N/A patches for version.c:

vim-patch:8.1.1295: when vimrun.exe does not exist external command may fail

Problem:    When vimrun.exe does not exist external command may fail.
Solution:   Use "cmd /c" twice to get the same behavior. (Ken Takata,
            closes vim/vim#4355)
98ffe4c6d8

vim-patch:8.2.2155: warning from Github actions for code analysis

Problem:    Warning from Github actions for code analysis.
Solution:   Remove the "git checkout HEAD^2" block.
18f69229c5

vim-patch:8.2.2156: Github actions run on pusing a tag

Problem:    Github actions run on pusing a tag.
Solution:   Don't run CI on tag push. Omit coveralls on pull-request.
            (Ozaki Kiichi, closes vim/vim#7489)
b5b77378bc

vim-patch:8.2.2158: CI on cirrus times out, coveralls doesn't always run

Problem:    CI on cirrus times out, coveralls doesn't always run.
Solution:   Set timeout to 20 minutes. Adjust condition. (closes vim/vim#7493)
6e562fcc07
2020-12-20 16:14:19 +01:00
9539d46bb1 Merge pull request #13563 from janlazo/vim-8.2.2161
vim-patch:8.1.0470,8.2.{2161,2163}
2020-12-20 02:06:53 -05:00
7390cc8b29 vim-patch:8.1.0470: pointer ownership around fname_expand() is unclear
Problem:    Pointer ownership around fname_expand() is unclear.
Solution:   Allow b_ffname and b_sfname to point to the same allocated memory,
            only free one.  Update comments.
3d6014f033
2020-12-19 22:52:30 -05:00
e465157ecd vim-patch:8.2.2163: crash when discarded exception is the current exception
Problem:    Crash when discarded exception is the current exception.
Solution:   Compare the execption with current_exception. (closes vim/vim#7499)
13656f02e4
2020-12-19 21:38:17 -05:00
6ee8964d46 vim-patch:8.2.2161: arguments -T and -x not tested yet
Problem:    Arguments -T and -x not tested yet.
Solution:   Add a test. (Dominique Pellé, closes vim/vim#7490
1f33e0a7c4

Neovim does not support '-T' command line argument so skip the test.

Ref a16eab9e57
2020-12-19 21:30:12 -05:00
7e4c912565 Merge pull request #13559 from janlazo/vim-8.2.0162
vim-patch:8.1.1657,8.2.{162,262,264,272}
2020-12-19 15:18:33 -05:00
fb0ecf9e70 GHA/osx: remove python 2to3 2020-12-19 14:18:26 -05:00
f12bbf62cc Merge pull request #13558 from TysonAndre/php-syntax-update
runtime/php: 1c6737b20a5cf71751b180461cea22fc76d8870c
2020-12-19 13:08:21 -05:00
a4c41ba931 runtime/php: 1c6737b20a5cf71751b180461cea22fc76d8870c
Port php syntax file only.

Ref https://github.com/neovim/neovim/issues/12844
2020-12-19 12:39:10 -05:00
cd0a4040c4 runtime/php: 47e13953ffdbb9f163b901196dec8c2100b72edd
Port php syntax file only.
2020-12-19 12:39:07 -05:00
bec4172aa9 runtime/php: 5ef1c6a4838a9629b793f3ae676f72a764171b00
Port php syntax file only.
2020-12-19 12:39:04 -05:00
5491a728fe vim-patch:8.2.0272: ":helptags ALL" gives error for some directories
Problem:    ":helptags ALL" gives error for directories without write
            permission. (Matěj Cepl)
Solution:   Ignore errors for ":helptags ALL". (Ken Takata, closes vim/vim#5026,
            closes vim/vim#5652)
414b796627

Cherry-pick Test_helptag_cmd() from patch v8.2.0203.
2020-12-19 10:39:15 -05:00
945ae2c72b vim-patch:8.1.1657: Terminal: screen updates from 'balloonexpr' are not displayed
Problem:    Terminal: screen updates from 'balloonexpr' are not displayed.
Solution:   Update the screen if needed.  Fix the word position for
            "mousemoved".
7ba343e634
2020-12-19 10:39:14 -05:00
b35061fb64 vim-patch:8.2.0264: fileformat test still fails on MS-Windows
Problem:    Fileformat test still fails on MS-Windows.
Solution:   Set fileformat of buffer in the right place.
a36c830a32
2020-12-19 10:39:14 -05:00
09b7163f5d vim-patch:8.2.0262: fileformat test fails on MS-Windows
Problem:    Fileformat test fails on MS-Windows.
Solution:   Set fileformat of buffer.
50434bd74c

Cherry-pick Test_fileformat_plusplus_read() from patch v8.2.0261.
2020-12-19 10:39:14 -05:00
46afc1def8 Add <Enter> to existing vim syntax highlighting for angle-bracket notation (#13553) 2020-12-19 10:22:50 -05:00
5ce328df40 vim-patch:8.1.0734: the hlsearch state is not stored in a session file (#13547)
Problem:    The hlsearch state is not stored in a session file.
Solution:   Add "nohlsearch" if appropriate. (Jason Franklin)
e3c74d249a

Vi default for 'sessionoptions' includes 'options'.
Use 'set sessionoptions&vi' to use Vim's default 'sessionoptions'.
If a test sets 'sessionoptions',
reset 'sessionoptions' at the end of the test.

N/A patches for version.c:

vim-patch:8.2.0119: message test fails on some platforms

Problem:    Message test fails on some platforms. (Elimar Riesebieter)
Solution:   Add type cast to vim_snprintf() argument. (Dominique Pelle)
1470dc35c4

vim-patch:8.2.0234: message test fails on SunOS

Problem:    Message test fails on SunOS.
Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes vim/vim#5595)
d5b9914938

vim-patch:8.2.2149: popupwin test for latin1 sometimes fails

Problem:    Popupwin test for latin1 sometimes fails.
Solution:   Wait for the script to finish.
4c5bdb99ad

vim-patch:8.2.2150: Github actions CI isn't used for all available platforms

Problem:    Github actions CI isn't used for all available platforms.
Solution:   Update the github workflows. (Ozaki Kiichi, closes vim/vim#7433)
8ea05de6aa

vim-patch:8.2.2151: $dir not expanded when configure checks for moonjit

Problem:    $dir not expanded when configure checks for moonjit.
Solution:   Use double quotes instead of single quotes. (closes vim/vim#7478)
a79a8944da

vim-patch:8.2.2153: popupwin test for latin1 still fails sometimes

Problem:    Popupwin test for latin1 still fails sometimes.
Solution:   Wait for the "cat" command to finish.
b125b535bb

vim-patch:8.2.2154: popupwin test for terminal buffer fails sometimes

Problem:    Popupwin test for terminal buffer fails sometimes.
Solution:   Wait for the prompt to appear.
0353f56ddb
2020-12-17 21:13:17 -05:00
f007a140ab vim-patch:8.2.2147: quickfix window title not updated in all tab pages (#13545)
Problem:    Quickfix window title not updated in all tab pages.
Solution:   Update the quickfix window title in all tab pages. (Yegappan
            Lakshmanan, closes vim/vim#7481, closes vim/vim#7466)
530bed993e
2020-12-17 09:14:19 -05:00
934b8e172e GHA: integrate unix and windows settings 2020-12-17 15:47:11 +09:00
2debabb080 Merge pull request #13355 from notomo/check-textlock-in-api
api: add textlock check
2020-12-16 15:40:21 +01:00
5e202f69b3 Merge pull request #13367 from nvim-treesitter/offset-lang-injection
feat(treesitter): add offset predicate for language injection
2020-12-16 13:59:36 +01:00
30ef8c693c test: textlock api error 2020-12-16 21:57:24 +09:00
93ba977793 docs: add check_textlock attribute 2020-12-16 21:57:24 +09:00
958ebc7337 Merge pull request #13539 from vigoux/ts-fix-icmnosplit
fix: also splice extmarks in preview buffers
2020-12-16 12:05:01 +01:00
abdb2b4d29 GHA: fix build problems on Windows 2020-12-16 15:27:35 +09:00
d7051705d0 ci: setup GitHub actions for windows 2020-12-16 13:12:14 +09:00
25e20da550 feat(buffer_updates): allow ignoring when previewing
Also adds a test that we actually subscribe to buffer events when in
CMDPREVIEW.
2020-12-15 22:29:27 +01:00
d0112693a3 fix: also splice extmarks in preview windows
We indeed need to adjust extmarks in preview windows.

Fixes #12967
2020-12-15 15:34:55 +01:00
c3b9c35876 Merge pull request #13538 from jamessan/mac-locale
fix: Include auto/config.h before HAVE_* preprocessor checks
2020-12-15 08:54:04 -05:00
929f194145 feat(treesitter): add offset predicate for language injection
refactor(treesitter): add directives to queries
2020-12-15 07:03:47 -06:00
6c2eb903a9 fix: Include auto/config.h before HAVE_* preprocessor checks
Closes #13533
2020-12-15 07:43:44 -05:00
356319f356 api: add textlock check 2020-12-15 20:24:33 +09:00
82100a6bdb healthcheck: fix health check issue with shada file (#13291)
- If the shada file is set with shada option n, use it.
- If the shadafile is NONE, it does not check for file read/write access.
- If the shada file does not exist, try to create it.
2020-12-13 21:49:29 -05:00
d6115c9964 Merge pull request #12624 from qvacua/build-arm64-mac 2020-12-13 21:25:04 -05:00
e8ae3ade77 Fix lsp tests breaking from new LuaJIT version
Apparently the new version of LuaJIT changed the consistency with which it
sorted table dictionaries. IIRC lua sorts dictionary keys by memory address, so
it would appear that the reasons tests were previously passing was because of
a differentiation in the implementation of the lua runtime.

Ensure that array fields in the lsp protocol tables are consistently created,
by using ipair when generating arrays for completionItemKind and
symbolItemKind.

For CodeActionKind, the current implementation includes both the keys and the
values in the array. This is incorrect. Ensure that only the values are
included in the array and sort them for consistency.
2020-12-13 21:03:27 -05:00
9c5b4c87e1 third-party: Always set DEPLOYMENT_TARGET when building LuaJIT on macOS
LuaJIT build now requires specifying a deployment target, so use the
same baseline as our nightly builds.

Co-authored-by: Christian Clason <christian.clason@uni-due.de>
2020-12-13 21:03:27 -05:00
27ddaa39db Do not set pagezero_size and image_base for LuaJIT >= 2.1.0-beta3
This is properly handled in LuaJIT now and setting causes "Malformed
Mach-o file" error when running the resulting binary on arm64 Macs.
2020-12-13 21:03:27 -05:00
12709c475b Use the latest luajit for arm64 Mac compatibility. 2020-12-13 21:03:19 -05:00
0285fae5ec Merge pull request #13526 from janlazo/vim-8.1.0839
vim-patch:8.1.{839,1630,2382},8.2.{669,739,1911,2136,2140}
2020-12-13 16:35:56 -05:00
cb579bbaed vim-patch:8.1.1630: various small problems
Problem:    Various small problems.
Solution:   Various small improvements.
e809a4ed30
2020-12-13 15:58:41 -05:00
3026a5f41d vim-patch:8.2.2136: Vim9: Using uninitialized variable
Problem:    Vim9: Using uninitialized variable.
Solution:   Initialize "len" to zero.  Clean up fnamemodify().
c530852315

N/A patches for version.c:

vim-patch:8.1.0839: when using VTP wrong colors after a color scheme change

Problem:    When using VTP wrong colors after a color scheme change.
Solution:   When VTP is active always clear after a color scheme change.
            (Nobuhiro Takasaki, closes vim/vim#3872)
f58d81a187

vim-patch:8.1.2382: MS-Windows: When using VTP bold+inverse doesn't work

Problem:    MS-Windows: When using VTP bold+inverse doesn't work.
Solution:   Compare with the default colors. (Nobuhiro Takasaki, closes vim/vim#5303)
a050b9471c

vim-patch:8.2.0669: MS-Windows: display in VTP is a bit slow

Problem:    MS-Windows: display in VTP is a bit slow.
Solution:   Optimize the code. (Nobuhiro Takasaki, closes vim/vim#6014)
4e5534fab7

vim-patch:8.2.0739: incomplete profiling when exiting because of a dealy signal

Problem:    Incomplete profiling when exiting because of a dealy signal.
Solution:   Call __gcov_flush() if available.
b415168a98

vim-patch:8.2.1911: tiny build fails

Problem:    Tiny build fails.
Solution:   Add #ifdef.
977fd0b327

vim-patch:8.2.2140: build failure with tiny features

Problem:    Build failure with tiny features.
Solution:   Add #ifdef.
2a3cd3af45
2020-12-13 15:40:19 -05:00
9c56d8e5f7 Merge pull request #13522 from janlazo/vim-8.2.2130
vim-patch:8.1.1089,8.2.2130
2020-12-12 17:49:09 -05:00
d5ab4b800c vim-patch:8.1.1089: tutor does not check $LC_MESSAGES
Problem:    Tutor does not check $LC_MESSAGES.
Solution:   Let $LC_MESSAGES overrule $LANG. (Miklos Vajna, closes vim/vim#4112)
b44b7add8a
2020-12-12 16:38:23 -05:00
7bbe8a4900 vim-patch:8.2.2130: Insert mode completion messages end up in message history
Problem:    Insert mode completion messages end up in message history.
Solution:   Set msg_hist_off. (closes vim/vim#7452
cc2335896b
2020-12-12 14:07:16 -05:00
257c0f89a9 Merge pull request #13523 from janlazo/javascript-runtime
Update Javascript runtime
2020-12-12 13:31:47 -05:00
4fa6aa90ad runtime/javascript: 207f009326c8f878defde0e594d7d9ed9860106e
Port javascript and javascript react ftplugins only.
2020-12-12 11:40:25 -05:00
a8860b033f runtime/javascript: e7b1ea0276cc83cd5c612f3189a174a60d57b5ed
Port javascript autocomplete file only.
2020-12-12 11:38:33 -05:00
a2f8a795cd runtime/javascript: 388a5d4f20b4b64341d1604aa238cab85827b892
Port javascript syntax file only.

Ref https://github.com/neovim/neovim/issues/13185
2020-12-12 11:38:31 -05:00
552ff68349 runtime/javascript: 09c6f265b21065ffa9437837b1d0955137175e45
Port javascriptreact.vim syntax only.

Ref https://github.com/neovim/neovim/issues/13185
2020-12-12 11:38:28 -05:00
e2be382977 runtime/javascript: 5be4ceecea5520265066eac972460ebb1cdf05e7
Port javascript syntax files only.

Ref: https://github.com/neovim/neovim/issues/13185
2020-12-12 11:38:25 -05:00
4f9e7a512d Merge pull request #13521 from janlazo/nvim-8.1.2246
vim-patch:8.1.2246
2020-12-12 09:07:23 -05:00
b6723e1ea0 Merge pull request #13486 from bfredl/bufnoreload
fileio: detach buffer when buffer was reloaded (like with :edit)
2020-12-12 09:55:49 +01:00
da5c547ee3 vim-patch:8.1.2246: some tests are still in old style
Problem:    Some tests are still in old style.
Solution:   Change a few tests to new style. (Yegappan Lakshmanan)
1f068233c1
2020-12-11 23:39:11 -05:00
cb8e0d07b3 test/old: cherry-pick patch v8.1.1955 changes for test_trycatch.vim 2020-12-11 23:39:10 -05:00
aed5a53d5f test/old: cherry-pick patch 8.1.0711 changes for test_trycatch.vim 2020-12-11 23:39:10 -05:00
cacdef5ff1 Merge pull request #13489 from janlazo/issue-13485
eval: executable(), exepath() accept strings only
2020-12-11 23:36:15 -05:00
da58242fb8 test/functional/eval: assert that executable() fixtures are executable 2020-12-11 22:59:43 -05:00
5ccc79e880 eval: executable(), exepath() accept strings only
Cherry-pick f_executable(), f_exepath(), check_for_string() from patch 8.2.2117.
Rename check_for_string() to tv_check_for_string().
7bb4e74c38

Close https://github.com/neovim/neovim/issues/13485
2020-12-11 21:20:20 -05:00
062576f679 vim-patch:8.2.0047: cannot skip tests for specific MS-Windows platform (#13461)
Problem:    Cannot skip tests for specific MS-Windows platform.
Solution:   Add windowsversion().
0c1e3744ff
2020-12-11 19:45:22 -05:00
a82bcf9d9c unused macros: Remove a five unused macros. (#13517)
Removes:
- GET_CHARTAB
- PRT_PS_DEFAULT_BUFFER_SIZE
- key_t
- PROP_MASK
- SCTX_INIT

Referring #13505.
2020-12-11 19:41:20 -05:00
f2ec058602 tests: Take into account magic hyphen. (#13518)
In Lua patterns the hyphen works like a non-greedy version of Vim's `*`.
- Use `%-` when you need a literal hyphen.
- If you don't need a regular expression at all, use something like
  ```
  string.find(text, pattern, 1, true)
  ```
  so that the pattern is regarded as a plain, non-magical string.
  See [1] and [2] in the Lua manual.

[1]: https://www.lua.org/manual/5.1/manual.html#pdf-Patterns
[2]: https://www.lua.org/manual/5.1/manual.html#pdf-string.find
2020-12-11 18:54:39 -05:00
4620ad604f Merge pull request #13515 from neovim/revert-13514-patch-1
Revert "Use oldest macOS version for release workflow"
2020-12-11 13:07:30 -05:00
50a76a0e5d Revert "Use oldest macOS version for release workflow" 2020-12-11 13:07:07 -05:00
b8e12ebf20 Merge pull request #13514 from mhanberg/patch-1
Use oldest macOS version for release workflow
2020-12-11 12:40:19 -05:00
81aa780909 Use oldest macOS version for release workflow 2020-12-11 11:57:19 -05:00
77c60206df vim-patch:8.1.1900: sign test fails in the GUI (#13511)
Problem:    Sign test fails in the GUI.
Solution:   Catch and ignore the exception.
d933c82ff4

Port Test_sign_funcs() changes from patch 8.1.1899.
Test_sign_funcs_multi() in patch 8.1.1899 cannot be ported
without earlier sign patches..

N/A patches for version.c:

vim-patch:8.1.0954: arguments of semsg() and siemsg() are not checked

Problem:    Arguments of semsg() and siemsg() are not checked.
Solution:   Add function prototype with __attribute__.
0d8562a999

vim-patch:8.2.2126: Ruby: missing function prototype

Problem:    Ruby: missing function prototype.
Solution:   Add the prototype.
0e12140550
2020-12-11 10:10:33 -05:00
763de8dd8f macros.h: Remove unused CURSOR_BAR_RIGHT macro. (#13506)
Closes #13505.
2020-12-11 07:43:29 -05:00
faa47eafff vim-patch:8.2.0005: duplication in version info (#13502)
Problem:    Duplication in version info.
Solution:   Use preprocessor string concatenation. (Ken Takata, closes vim/vim#5357)
5021225656
2020-12-10 21:07:20 -05:00
a92dbf49bf ex_cmds: port cmd_addr_T and ADDR_NONE (#13492)
Patch 8.1.1241 is too hard to port in 1 commit.
https://github.com/neovim/neovim/pull/13079 is too hard to review
and seems to be blocked.

Use 'int' type for some  addr variables to suppress 'switch/case' warnings.
2020-12-10 19:48:18 -05:00
52e660e857 Merge pull request #13482 from dm1try/propagate_lua_file_loading_errors
runtime: propagate lua parsing errors while using "require"
2020-12-10 12:15:40 +01:00
99007bcc12 Merge pull request #13450 from nvim-treesitter/fix-unknown-language-parser
fix(treesitter): don't throw an error for missing injected langs
2020-12-10 11:12:39 +01:00
3421485253 runtime: propagate lua parsing errors while using "require" 2020-12-10 10:53:28 +01:00
00f60c2ce7 vim-patch:8.2.1833: when reading from stdin dup() is called twice (#13498)
Problem:    When reading from stdin dup() is called twice.
Solution:   Remove the dup() in main.c. (Ken Takata, closes vim/vim#7110)
204ade6bcb

N/A patches for version.c:

vim-patch:8.2.2109: "vim -" does not work well when modifyOtherKeys is enabled

Problem:    "vim -" does not work well when modifyOtherKeys is enabled and a
            shell command is executed on startup.
Solution:   Only change modifyOtherKeys when executing a shell command in raw
            mode.
8a3da6a368

vim-patch:8.2.2110: cannot use ":shell" when reading from stdin

Problem:    Cannot use ":shell" when reading from stdin. (Gary Johnson)
Solution:   Revert patch 8.2.1833.
8e1cbb55c3

vim-patch:8.2.2111: GTK: menu background is the same color as the main window

Problem:    GTK: Menu background is the same color as the main window.
Solution:   Fix white space around the test in another way. (closes vim/vim#7437,
            closes vim/vim#7427)
023fd5d213

vim-patch:8.2.2113: MS-Windows GUI: crash after using ":set guifont=" four times

Problem:    MS-Windows GUI: crash after using ":set guifont=" four times.
Solution:   Check for NULL pointer. (Ken Takata, closes vim/vim#7434)
1b3e0727ce

vim-patch:8.2.2116: MS-Windows GUI: test for 'guifont' is incomplete

Problem:    MS-Windows GUI: test for 'guifont' is incomplete.
Solution:   Set 'renderoptions'. (Christian Brabandt)
2c78a772fd

vim-patch:8.2.2118: dead code in the job support

Problem:    Dead code in the job support. (Dominique Pellé)
Solution:   Define USE_ARGV before checking for it.
f46bf5204c

vim-patch:8.2.2119: GTK3: status line background color is wrong

Problem:    GTK3: status line background color is wrong.
Solution:   Don't change the code for earlier GTK3 versions. (closes vim/vim#7444)
7988a6f0e9
2020-12-09 21:23:51 -05:00
638f5d5b95 Merge pull request #13497 from seandewar/vim-8.2.2121
vim-patch:8.2.{2121,2123}
2020-12-09 19:12:48 -05:00
de5372c8c0 man.vim: Add double click mapping. 2020-12-09 18:17:53 -04:00
9900e68ae3 vim-patch:8.2.2123: after using a complete popup the buffer is listed
Problem:    After using a complete popup the buffer is listed. (Boris
            Staletic)
Solution:   Make the buffer unlisted.
d356fc65d2
2020-12-09 19:28:03 +00:00
b8a0304bb9 vim-patch:8.2.2121: internal error when using \ze before \zs in a pattern
Problem:    Internal error when using \ze before \zs in a pattern.
Solution:   Check the end is never before the start. (closes vim/vim#7442)
a7a691cc14
2020-12-09 19:02:57 +00:00
bfed67e00e Merge pull request #13494 from jamessan/release-fixes
GHA: Use oldest OS images to build releases
2020-12-09 07:49:58 -05:00
3881bc2295 GHA: Use oldest OS images to build releases
Closes #13493
2020-12-09 07:39:20 -05:00
fb1c08a86f doc: Fix incorrect LSP diagnostic-related helptags (#13388) 2020-12-09 11:21:16 +01:00
222a0452fa doc: Add missing parameter end_pos for range_formatting (#13481) 2020-12-09 11:19:56 +01:00
3974c4bce3 feat(nix): add flake.nix (#13487)
`flakes` is a feature available in the unstable version of the `nix` package manager
to ease the distribution of nix expressions see https://www.tweag.io/blog/2020-05-25-flakes/ .

Nix excels at software reproducibility and is available/can be
installed on different distributions (ubuntu/void/debian etc) as well
as macOS.

This flakes contains 3 packages that can be installed via for instance
`nix run 'github:neovim/neovim?dir=contrib#nvim-debug'`
or
`nix run 'github:neovim/neovim?dir=contrib'` for the default version.

you can register an alias
`nix registry add neovim 'github:neovim/neovim?dir=contrib'`
and the previous commands become:
`nix run neovim`
2020-12-09 09:15:37 +01:00
08ec36efaf feat: Allow incremental sync & lsp flags (#13371) 2020-12-08 21:09:33 -05:00
74089a9086 fileio: detach buffer when buffer was reloaded (like with :edit) 2020-12-08 18:40:52 +01:00
4383c0f952 Merge pull request #13478 from seandewar/vim-8.2.2106
vim-patch:8.2.2106: TOML files are not recognized
2020-12-07 18:22:03 -05:00
8329f624de vim-patch:8.2.2106: TOML files are not recognized
Problem:    TOML files are not recognized.
Solution:   Match *.toml. (issue vim/vim#7432)
b237ae7b83
2020-12-07 18:03:29 +00:00
85bce4d13d Merge pull request #13473 from ostera/patch-1
Fix typo on treesitter.txt help page
2020-12-07 13:29:54 +01:00
c86ba6dea4 Fix typo on treesitter.txt help page 2020-12-07 08:08:23 +01:00
ee5ece084c Merge pull request #13471 from jamessan/release-fixes 2020-12-06 22:31:30 -05:00
b32124fce2 GHA: Perform a full checkout for release workflow
This is needed to get a tag-based version from `git describe` rather
than just the commit.
2020-12-06 21:01:11 -05:00
2b594b9c81 Use vX.Y.Z-dev+{git-describe} for development versions 2020-12-06 21:01:11 -05:00
7477703586 Merge pull request #13468 from janlazo/vim-8.1.0818
vim-patch:8.1.{818,1131,2064},8.2.{587,879,1021,1296,2104}
2020-12-06 20:39:53 -05:00
8ae34ab780 log: use uv_gettimeofday() for Windows
POSIX gettimeofday() is not portable.
2020-12-06 19:26:33 -05:00
a4e18e50ef runtime/doc: strftime() is always available 2020-12-06 19:26:33 -05:00
c46b67333f vim-patch:8.2.1296: some part of using 'smarcase' was not tested
Problem:    Some part of using 'smarcase' was not tested.
Solution:   Add more tests. (Dominique Pellé, closes vim/vim#6538)
d66cdcd43a
2020-12-06 19:26:33 -05:00
7bb92b7787 vim-patch:8.2.1021: Ruby interface not tested enough
Problem:    Ruby interface not tested enough.
Solution:   Add a couple more tests. (Dominique Pellé, closes vim/vim#6301)
a190548e91
2020-12-06 17:53:43 -05:00
fb7285b5d7 vim-patch:8.1.2064: MS-Windows: compiler warnings for unused arguments
Problem:    MS-Windows: compiler warnings for unused arguments.
Solution:   Add UNUSED. (Yegappan Lakshmanan, closes vim/vim#4963)
bd67aac279

N/A patches for version.c:

vim-patch:8.1.0818: MS-Windows: cannot send large data with ch_sendraw()

Problem:    MS-Windows: cannot send large data with ch_sendraw().
Solution:   Split write into several WriteFile() calls. (Yasuhiro Matsumoto,
            closes vim/vim#3823)
240583869a

vim-patch:8.1.1131: getwinpos() does not work in the MS-Windows console

Problem:    getwinpos() does not work in the MS-Windows console.
Solution:   Implement getwinpos().
16c34c3765

vim-patch:8.2.0587: compiler warning for unused variable

Problem:    Compiler warning for unused variable.
Solution:   Add UNUSED.
21cfe500f3

vim-patch:8.2.0879: compiler warning for unused function argument

Problem:    Compiler warning for unused function argument.
Solution:   Add UNUSED.
f9ca08e95f

vim-patch:8.2.2104: build problem with Ruby 2.7

Problem:    Build problem with Ruby 2.7.
Solution:   Adjust function declarations. (Ozaki Kiichi, closes vim/vim#7430)
d5a986f460
2020-12-06 17:47:17 -05:00
5855a3ea7b Merge pull request #13449 from nvim-treesitter/fix-language-for-range
fix(treesitter): incorrect method name call
2020-12-06 23:27:38 +01:00
53e9adeddd Merge pull request #13472 from jamessan/macos-nightly
GHA: Include runtime in macos release tarball
2020-12-06 17:06:01 -05:00
f4809916d3 GHA: Include runtime in macos release tarball 2020-12-06 16:47:12 -05:00
08c0eef52a Merge pull request #13467 from jamessan/release-fixes 2020-12-06 09:52:22 -05:00
f9bd3f9cb5 GHA: Use full version in release description
Closes #13466
2020-12-06 09:50:16 -05:00
cdf362a488 GHA: Fix event_name check for nightly builds 2020-12-06 09:00:47 -05:00
ef3230f35b Merge pull request #13464 from jamessan/release-fixes
GHA: Delete nightly tag before creating new release
2020-12-05 20:44:07 -05:00
44ba5c4168 GHA: Delete nightly tag before creating new release 2020-12-05 20:14:51 -05:00
d76c10ef1d Merge pull request #13455 from bfredl/deprecated
api: move deprecated functions to separate files
2020-12-05 23:31:18 +01:00
463cf74182 Merge pull request #13454 from tk-shirasaka/fix/send-win_hide
ui: Fix win_hide distination grid
2020-12-05 21:22:19 +01:00
31787a91dc Merge pull request #13458 from jamessan/release-fixes 2020-12-05 13:08:48 -05:00
18360290d0 GHA: Generate correct appimage for release/nightly 2020-12-05 13:04:33 -05:00
dfc4111e42 GHA: Do not run CI for tags 2020-12-05 13:04:25 -05:00
e11f3fb726 GHA: Rename "Nightly release" to "Release" 2020-12-05 13:04:02 -05:00
f7fd7ba745 GHA: Automatically create a release for versioned tags 2020-12-05 13:03:57 -05:00
7ab458f929 GHA: Add support for manually creating a release 2020-12-05 13:01:57 -05:00
1b53544111 GHA: Use meeDamian/github-release to create/update release 2020-12-05 13:01:38 -05:00
de0ecf3e03 Fixed lint error 2020-12-06 02:25:38 +09:00
38f4e6541f vim-patch:8.2.2091: MS-Windows: build warnings (#13451)
Problem:    MS-Windows: build warnings.
Solution:   Add a #pragma to suppress the deprecation warning. (Ken Takata)
            Avoid using a non-ASCII character. (closes vim/vim#7421)
29d2f45c88

N/A patches for version.c:

vim-patch:8.1.1883: options test fails

Problem:    Options test fails.
Solution:   Add entry for 'completepopup'.
9513d91be0

vim-patch:8.2.2089: libvterm test fails to build on Mac

Problem:    Libvterm test fails to build on Mac.
Solution:   Adjust configure to remove a space between -L and the path that
            follows.
6cd42db9dc
2020-12-05 11:04:48 -05:00
bb6229449d Moved temporary variable to where it's used 2020-12-05 23:48:59 +09:00
b1ef6de620 api: move deprecated functions to separate files
Most these are just calls to non-deprecated variants, and take up
unnecessary space and search hits in the other files.
2020-12-05 14:34:17 +01:00
9601e7c5d5 ui: Fix win_hide distination grid
When create tab, win_hide sent to new tab and new tab's previous tab.
So, if created tab that not next tab (eg. $tabnew cmd),
send win_hide to not current tab, and fixed this.
2020-12-05 20:18:51 +09:00
c348e816fc Merge pull request #13452 from jamessan/appimage 2020-12-04 21:11:56 -05:00
8997c8b563 GHA: Build appimage for nightly 2020-12-04 21:07:06 -05:00
fd53e5ee2c GHA: Stop installing test dependencies for nightly build 2020-12-04 20:50:54 -05:00
b940cbb858 Merge pull request #13417 from shade-of-noon/man_count.13411
runtime: Fix man.vim count handling.
2020-12-04 18:36:54 -05:00
e15c5f58df fix(treesitter): don't throw an error for missing injected langs 2020-12-04 16:56:29 -06:00
2985c17867 fix(treesitter): incorrect method name call 2020-12-04 16:15:47 -06:00
0c8d6ab536 Merge pull request #13445 from jamessan/build-artifacts
GHA: Publish nightly builds for Linux and macOS
2020-12-04 11:44:45 -05:00
16157258be GHA: Publish nightly builds for Linux and macOS 2020-12-04 11:25:14 -05:00
6c344a75d4 Merge pull request #13173 from tjdevries/tjdevries/option_info
api: add option metadata
2020-12-04 13:45:32 +01:00
17a58043a3 api/options: cleanup the fixup 2020-12-04 13:29:44 +01:00
ced951c2aa api/options: fixup 2020-12-04 13:29:44 +01:00
3b3c006ae3 api/options: cleanup 2020-12-04 13:29:44 +01:00
35767912bb api/options: add option metadata 2020-12-04 13:29:27 +01:00
e8153ad9c2 man.vim: Set iskeyword explicitly.
This also fixes `:Man!`, which wasn't setting 'iskeyword' to contain
parentheses, etc.
2020-12-04 08:14:40 -04:00
44be2dfca1 Merge pull request #13434 from janlazo/vim-8.2.2076
vim-patch:8.1.{1013,1774},8.2.{1164,1673,1907,2076,2077,2078,2085,2086}
2020-12-03 21:31:29 -05:00
2bcae20242 vim-patch:8.2.2085: Qt translation file is recognized as typescript
Problem:    Qt translation file is recognized as typescript.
Solution:   Check the first line for "<?xml". (closes vim/vim#7418)
c0d670ce16
2020-12-03 18:58:30 -05:00
f85386d170 vim-patch:8.2.1907: complete_info().selected may be wrong
Problem:    Complete_info().selected may be wrong.
Solution:   Update cp_number if it was never set. (issue vim/vim#6945)
f9d51354de

Misc changes:

For variables and function parameters that use "Direction" enum values,
update their type from from "int" to "Direction".
It is hard to review function parameters that must accept
"Direction" enum values only.
2020-12-03 18:58:29 -05:00
6bc1844b11 vim-patch:8.2.1673: complete_info() selected index has an invalid value
Problem:    complete_info() selected index has an invalid value. (Ben Jackson)
Solution:   Set the index when there is only one match. (closes vim/vim#6945)
            Add test for complete_info().
b806aa5bd9
2020-12-03 18:58:29 -05:00
c6b780bdd1 vim-patch:8.2.2078: illegal memory access when using :print on invalid text
Problem:    Illegal memory access when using :print on invalid text. (Dhiraj
            Mishra)
Solution:   Check for more composing characters than supported. (closes vim/vim#7399)
1cbfc9914d

N/A patches for version.c:

vim-patch:8.1.1013: MS-Windows: Scrolling fails when dividing the screen

Problem:    MS-Windows: Scrolling fails when dividing the screen.
Solution:   Position the cursor before calling ScrollConsoleScreenBuffer().
            (Nobuhiro Takasaki, closes vim/vim#4115)
3b5fef6a99

vim-patch:8.1.1774: test is silently skipped

Problem:    Test is silently skipped.
Solution:   Throw "Skipped".
3c610c9638

vim-patch:8.2.1164: text cleared by checking terminal properties not redrawn

Problem:    Text cleared by checking terminal properties not redrawn. (Alexey
            Radkov)
Solution:   Mark the screen characters as invalid. (closes vim/vim#6422)
96916ac67a

vim-patch:8.2.2076: MS-Windows console: sometimes drops typed characters

Problem:    MS-Windows console: sometimes drops typed characters.
Solution:   Do not wait longer than 10 msec for input. (issue vim/vim#7164)
c478ee3d83

vim-patch:8.2.2077: build failure with small features

Problem:    Build failure with small features.
Solution:   Add #ifdef.
a452b808b4

vim-patch:8.2.2086: libvterm tests are only run on Linux

Problem:    Libvterm tests are only run on Linux.
Solution:   Use static libraries. (Ozaki Kiichi, closes vim/vim#7419)
476268c387
2020-12-03 18:58:23 -05:00
f5e0f17968 lsp: Change diagnosticg.get_all to return {bufnr: Diagnostic[]} (#13310)
Allows users to associate the diagnostics with the right bufnr.
2020-12-03 14:22:15 -05:00
5c7141cc71 lsp: Make open_floating_preview buffers ephemeral (#13437)
Fixes #13429.
2020-12-03 14:20:56 -05:00
fa73bb70fc lsp: Fix "unsupported_method" error when the buffer does not have an LSP Server (#13175) 2020-12-03 01:00:54 -05:00
8fb786e415 vim-patch:8.2.0602: :unlet $VAR does not work properly (#13238)
Problem:    :unlet $VAR does not work properly.
Solution:   Make ":lockvar $VAR" fail.  Check the "skip" flag.
7e0868efcf

Include patch 8.2.0601 changes so that ex_unletlock() can execute a callback if there are no errors.
2020-12-02 08:44:13 -05:00
d80f262f89 Merge pull request #13428 from janlazo/nvim-8.0.1525
vim-patch:8.0.{858,953,1525}
2020-12-01 19:02:38 -05:00
72c22862dc Merge pull request #12235 from dm1try/add_init_lua
add init.lua as an alternative user config
2020-12-01 18:54:50 +01:00
f88c2490c7 Merge pull request #13425 from bfredl/secretcharm
ex_getln: add secret charm
2020-12-01 17:32:48 +01:00
518fe0e8a2 test/wildmode_spec: override $PS1
User config may set $PS1 for a colored prompt.
It breaks the screen tests.
2020-12-01 08:52:34 -05:00
4b74996dbc test/timer_spec: increase base timeout
The following keeps happening in my local environment
because the timeout is too short.

[  FAILED  ] test/functional/eval/timer_spec.lua @ 208: timers do not crash when processing events in the handler
test/functional/eval/timer_spec.lua:219: retry() attempts: 1
test/helpers.lua:73: Expected objects to be the same.
Passed in:
(number) 0
Expected:
(number) 1
2020-12-01 08:52:34 -05:00
56f5e3bd6b vim-patch:8.0.1525: using :wqa exits even if a job runs in a terminal window
Problem:    Using :wqa exits even if a job runs in a terminal window. (Jason
            Felice)
Solution:   Check if a terminal has a running job. (closes vim/vim#2654)
7a76092a51
2020-12-01 08:52:33 -05:00
eb387ae530 executor: use new nlua_ name pattern 2020-12-01 10:51:31 +01:00
c65d3fd67b doc: mention init.lua
use a generic name instead of "init.vim" in starting.txt
2020-12-01 10:51:31 +01:00
33f324796c startup: allow lua files as session one 2020-12-01 10:51:31 +01:00
767cd8b17b startup: add init.lua as an alternative user config, fixes #7895 2020-12-01 10:51:25 +01:00
13b8857300 path: add helper for checking a file extension 2020-12-01 10:50:38 +01:00
70d0bee765 Merge pull request #13426 from yegappan/vimdiff
Update vim_diff.txt
2020-12-01 10:41:33 +01:00
11249ad021 vim-patch:8.0.0953: get "no write since last change" error in terminal window
Problem:    Get "no write since last change" error in terminal window.
Solution:   Use another message when closing a terminal window. Make ":quit!"
            also end the job.
f5be7cd016
2020-12-01 01:13:49 -05:00
24ab81bd46 fixup! vim-patch:8.0.0858: check if job terminal is running #10908 2020-12-01 00:16:23 -05:00
e20ee69952 Update vim_diff.txt 2020-11-30 20:48:52 -08:00
a1a4dd34ea Merge pull request #13419 from janlazo/vim-8.2.2067
vim-patch:8.1.2264,8.2.{617,620,628,2067,2069}
2020-11-30 20:59:40 -05:00
c3a45032e6 Merge pull request #13378 from mgnsk/fix-undeclared-identifier 2020-11-30 20:27:13 -05:00
bed9839f46 ex_getln: add secret charm
Opt in to this secret world using

    set wildchar=0
    " already the default, but remove if non-zero existing config:
    set wildcharm=0

now you can map 'wildmode' just like any mode:

    cnoremap <tab> <c-z>
    function! Spacey()
      return getcmdline()[-1:] == "/" ? "\<bs>" : ""
    endfunc
    cnoremap <expr> / wildmenumode() ? Spacey()."/<c-z>" : "/"

Possibly asked questions:

What about backwards compatibility?
====

Just do nothing and your existing 'wildchar' and 'wildcharm' will keep working.

Doesn't `<c-z>` mean suspend?
====

Not in cmdline mode. If it would then the recommended wildcharm would not
have been `<c-z>` to start with.

My config relies on `:<c-z>` being a synonym to `:<nop>`!
====
just no.
2020-12-01 00:57:52 +01:00
21c6b40a59 fall back to os_realpath 2020-11-30 19:27:56 +02:00
f348923934 Fix undeclared identifier when HAVE_READLINK is not defined 2020-11-30 19:27:56 +02:00
87279bb809 vim-patch:8.1.2264: there are two test files for :let
Problem:    There are two test files for :let.
Solution:   Merge the two files.
fcf8a8743b

N/A patches for version.c:

vim-patch:8.2.0617: new error check triggers in Swedish menu

Problem:    New error check triggers in Swedish menu.
Solution:   Insert backslash. (Mats Tegner, closes vim/vim#5966)
d2662ad2de

vim-patch:8.2.0620: error in menu translations

Problem:    Error in menu translations.
Solution:   Insert a backslash before a space.
0d6fe631f7

vim-patch:8.2.0628: error in menu translations

Problem:    Error in menu translations.
Solution:   Insert a backslash before a space in one more file. (Shun Bai,
            Emir Sari)
e71ebb46a2
2020-11-30 01:18:33 -05:00
8562c2cb6b test/old: partial port of patch 8.1.0736
Required for patch 8.1.2264.
2020-11-30 01:18:33 -05:00
b3ddc23507 test/old: partial port of patch 8.1.0711
Patch 8.1.0711 is too difficult to merge in 1 commit.
2020-11-30 01:18:33 -05:00
5706ff15ed vim-patch:8.2.2069: the quickfix window is not updated after setqflist()
Problem:    The quickfix window is not updated after setqflist().
Solution:   Update the quickfix buffer. (Yegappan Lakshmanan, closes vim/vim#7390,
            closes vim/vim#7385)
287153c5d4

N/A patches for version.c:

vim-patch:8.2.2067: cursor position in popup terminal is wrong

Problem:    Cursor position in popup terminal is wrong.
Solution:   Don't check the flags.
f5452691ba
2020-11-29 21:12:31 -05:00
ba2e94d223 runtime: Fix man.vim count handling.
Here I use a negative number to decide whether the count has been
explicitly set. I think it unlikely that negative sections will ever be
created given that negative numbers complicate argument handling:
```
$ man -1 foo
man: invalid option -- '1'
```
and given that there's already precedence for alphanumeric sections like
`3p`, `3x`, `n`, etc.

---

This does work, though:
```
$ man -S -3 baz
```
With `man baz.-3` and `man 'baz(-3)'`, (GNU) man *might* consider `-3`
internally as a section, but in the end reports as if the whole
argument was the name of a topic:
```
$ man 'baz(-3)'
No manual entry for baz(-3)
```

---

Closes #13411.
2020-11-29 19:56:15 -04:00
aec61074a9 Merge pull request #13404 from jarimayenburg/filetype_docker
[RDY] runtime: Updated Dockerfile syntax with latest from Vim upstream
2020-11-29 11:31:14 -05:00
abb61cd01a runtime/dockerfile.vim: ebdf3c964a901fc00c9009689f7cfda478342c51
Port only dockerfile.vim from upstream
ebdf3c964a
2020-11-29 16:31:09 +01:00
ff1e3048cc runtime/dockerfile.vim: 560979ed4f0216f902a2c247e937f00a27dcb198
Port only dockerfile.vim from upstream
560979ed4f
2020-11-29 16:30:31 +01:00
15e616a057 folds: use Folded highlight even with spell on (#13393)
the highlight was not used with spell enabled on folded lines.
Thanks to lervag for the nice report.
2020-11-29 14:26:59 +01:00
dc6593a84a doc: fix lsp statusline examle (#13286)
Co-authored-by: Damien Rajon <damien@askmarty.io>
2020-11-29 14:24:52 +01:00
8b2887bd56 Merge pull request #13288 from acomagu/reduce-memory-usage-lsp-rpc
lsp: Reduce memory usage for buffering the message from LSP
2020-11-28 21:43:25 -05:00
900228a20f lsp: Reduce memory usage for buffering the message from LSP. 2020-11-29 06:49:44 +09:00
a35c54b2ae vim-patch:8.2.0095: cannot specify exit code for :cquit (#13407)
Problem:    Cannot specify exit code for :cquit.
Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes vim/vim#5442)
1860bde9d3

Co-authored-by: erw7 <erw7.github@gmail.com>
2020-11-28 21:28:57 +01:00
7294a20bbc Merge pull request #13405 from bfredl/newlog
initialization: enable logging in set_init_1()
2020-11-28 18:39:00 +01:00
b8ec6a5775 initialization: delay logging in set_init_1() 2020-11-28 16:55:06 +01:00
ba13b94f5a Merge pull request #13402 from janlazo/vim-8.2.2056
vim-patch:8.1.0951,8.2.{271,594,965,1370,2056,2059}
2020-11-27 21:27:07 -05:00
a3922e03a9 vim-patch:8.2.0271: the "num64" feature is available everywhere
Problem:    The "num64" feature is available everywhere and building without
            it causes problems.
Solution:   Graduage the "num64" feature. (James McCoy, closes vim/vim#5650)
82f654e092

Restore Test_printf_spec_b() from patch 7.4.2221..

N/A patches for version.c:

vim-patch:8.2.0594: MS-Windows: cannot build with WINVER set to 0x0501

Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes vim/vim#5946)
b6fb0516ec

vim-patch:8.2.0965: has_funcundefined() is not used

Problem:    Has_funcundefined() is not used.
Solution:   Delete the function. (Dominique Pellé, closes vim/vim#6242)
5055c56cfb

vim-patch:8.2.1370: MS-Windows: warning for using fstat() with stat_T

Problem:    MS-Windows: warning for using fstat() with stat_T.
Solution:   use _fstat64() if available. (Naruhiko Nishino, closes vim/vim#6625)
c753478b82

vim-patch:8.2.2056: configure fails when building with implicit-function-declaration

Problem:    Configure fails when building with the
            "implicit-function-declaration" error enabled, specifically on Mac.
Solution:   Declear the functions like in the source code. (suggestion by
            Clemens Lang, closes vim/vim#7380)
ce7be3a0e6
2020-11-27 21:24:59 -05:00
628a1caa69 vim-patch:8.2.2059: Amiga: can't find plugins
Problem:    Amiga: can't find plugins.
Solution:   Do not use "**" in the pattern. (Ola Söder, closes vim/vim#7384)
6ee874d378
2020-11-27 21:24:59 -05:00
7b8b786062 vim-patch:8.1.0951: using WIN64 even though it is never defined
Problem:    Using WIN64 even though it is never defined.
Solution:   Only use _WIN64. (Ken Takata, closes vim/vim#3997)
44b443c5db
2020-11-27 20:28:54 -05:00
d956842751 Merge pull request #13397 from adrian5/filetype-gitrebase
runtime: Patch gitrebase filetype
2020-11-27 09:20:33 -05:00
70c2849bc9 gitrebase.vim: patch runtime/syntax to 664f3cf3f21
vim/vim@664f3cf3f2
2020-11-27 04:30:56 +01:00
23ef9d2dbc gitrebase.vim: patch runtime/syntax to c08ee7476b1
vim/vim@c08ee7476b
2020-11-27 04:28:07 +01:00
37e2751c37 gitrebase.vim: patch runtime/ftplugin to c08ee7476
vim/vim@c08ee7476b
2020-11-27 04:16:36 +01:00
6af64d384f Merge pull request #13315 from ThomasFeher/colorscheme_terminal
Fix colors in terminal by maintaining COLORTERM
2020-11-26 14:04:25 -05:00
d8963c434f Fix colors in terminal by maintaining COLORTERM
Fixes https://github.com/neovim/neovim/issues/10836
2020-11-26 18:36:22 +01:00
10a5f40f9e Merge pull request #13386 from glepnir/glepnir-patch-1 2020-11-26 17:00:49 +09:00
0e7f965a1b use if_nil variable replace vim.F.if_nil 2020-11-26 14:32:38 +08:00
4537ff659e Merge pull request #13375 from janlazo/vim-8.2.2041
vim-patch:8.1.{2290,2390},8.2.{242,257,302,303,462,991,996,2041,2042,2043,2047,2048,2049,2054}
2020-11-25 22:48:53 -05:00
fe5dc26648 vim-patch:8.2.0462: previewwindow test fails on some systems
Problem:    Previewwindow test fails on some systems. (James McCoy)
Solution:   Wait a bit after sending the "o". (closes vim/vim#5849)
37bb030cd9

Cherry-pick Test_popup_and_previewwindow_dump() changes
from patches 8.1.1585, 8.1.2373.

N/A patches for version.c:

vim-patch:8.2.0242: preview popup window test fails with long directory name

Problem:    Preview popup window test fails with long directory name. (Jakub
            Kądziołka)
Solution:   Use "silent cd". (closes vim/vim#5615)
799439a5d8

vim-patch:8.2.2042: build failure with +profile but without +reltime

Problem:    Build failure with +profile but without +reltime.
Solution:   Adjust #ifdef. (Christian Brabandt, closes vim/vim#7361)
813196784a

vim-patch:8.2.2043: GTK3: white border around text stands out

Problem:    GTK3: white border around text stands out.
Solution:   Use current theme color. (closes vim/vim#7357, issue vim/vim#349)
ff94bd9e47

vim-patch:8.2.2047: Amiga: FEAT_ARP defined when it should not

Problem:    Amiga: FEAT_ARP defined when it should not.
Solution:   Adjust #ifdef. (Ola Söder, closes vim/vim#7370)
36fe7b287e

vim-patch:8.2.2048: Amiga: obsolete code

Problem:    Amiga: obsolete code.
Solution:   Remove the unused lines. (Ola Söder, closes vim/vim#7373)
3a3b691042

vim-patch:8.2.2049: Amiga: obsolete function

Problem:    Amiga: obsolete function.
Solution:   Remove the function. (Ola Söder, closes vim/vim#7374)
d653293c80

vim-patch:8.2.2054: Amiga: FEAT_ARP defined when it should not

Problem:    Amiga: FEAT_ARP defined when it should not.
Solution:   Adjust "||" to "&&" in #ifdef. (Ola Söder, closes vim/vim#7375)
d49a35a1c3
2020-11-25 22:08:26 -05:00
dd00c74737 Lsp: fix vim.F.ifnil to vim.F.if_nil (#13384) 2020-11-25 21:17:03 -05:00
0d83a1c43f LSP: Feature/add workspace folders (#12638)
* First implementation of workspace folders
* Add completion for current directory
* Add tracking of workspace folders
* Add workspace folder listing
* Add checks on adding/removing workspaces
* Add appropriate initialization options
* Add documentation
* Make workspaceFolders available wherever client is
2020-11-25 21:07:02 +01:00
2d5dd85eef screen.c: Allow showbreak to override cursorline. (#13372)
I also added relevant tests.

Close #13369
2020-11-25 16:47:03 +01:00
104749440d Merge pull request #13379 from bfredl/runtime
runtime: extract 'runtimepath' and 'packpath' logic to its own file
2020-11-25 13:15:01 +01:00
ca7fa2a43a Merge pull request #13357 from vigoux/luahl-priority
feat(luahl): add priority mechanism
2020-11-25 12:43:08 +01:00
72d29847d6 runtime: extract 'runtimepath' and 'packpath' logic to its own file
No code changes, except for added ILOG for the calculated startup path
2020-11-25 12:15:55 +01:00
c0a6989d93 feat(luahl): add priority mechanism
Base priority is 0x1000, in order to stay kinda backward compatible.
Also set tree-sitter default highlight to 100 (middle-ish value)
2020-11-25 10:10:05 +01:00
8d7fa8962b vim-patch:8.2.0996: using "aucmdwin" in win_gettype() is not ideal
Problem:    Using "aucmdwin" in win_gettype() is not ideal.
Solution:   Rename to "autocmd".
40a019f157
2020-11-25 02:46:20 -05:00
9b2efe6b7d vim-patch:8.2.0991: cannot get window type for autocmd and preview window
Problem:    Cannot get window type for autocmd and preview window.
Solution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes vim/vim#6277)
0fe937fd86

Cherry-pick test_preview.vim,test_window_cmd.vim changes
from patch v8.2.0522.
2020-11-25 02:45:00 -05:00
ede747c2cc vim-patch:8.2.0257: cannot recognize a terminal in a popup window
Problem:    Cannot recognize a terminal in a popup window.
Solution:   Add the win_gettype() function.
00f3b4e007
2020-11-25 02:10:44 -05:00
ea3aaa020f Merge pull request #13374 from bkegley/patch-1
fix(treesitter): docs reflect parser:parse()
2020-11-25 08:02:08 +01:00
a9186501f6 vim-patch:8.1.2390: test94 is old style, fix 7.4.441 not tested
Problem:    Test94 is old style, fix 7.4.441 not tested.
Solution:   Turn test94 into a new style test.  Add tests for the fix in patch
            7.4.441. (Yegappan Lakshmanan, closes vim/vim#5316)
309976ec1f
2020-11-25 01:31:38 -05:00
b0d3f47e90 vim-patch:8.2.0303: TermChanged test fails in the GUI
Problem:    TermChanged test fails in the GUI.
Solution:   Skip the test when running the GUI.
d28e0b3652
2020-11-24 22:52:06 -05:00
11e64de511 Merge pull request #13373 from jamessan/github-actions 2020-11-24 22:42:40 -05:00
eae90b37c3 vim-patch:8.2.0302: setting 'term' may cause error in TermChanged autocommand
Problem:    Setting 'term' may cause error in TermChanged autocommand.
Solution:   Use aucmd_prepbuf() to switch to the buffer where the autocommand
            is to be executed. (closes vim/vim#5682)
0c81d1b112
2020-11-24 22:29:41 -05:00
3a573a9e2f vim-patch:8.1.2290: autocommand test fails
Problem:    Autocommand test fails.
Solution:   Remove 'closeoff' from 'diffopt'.
a9aa86ff95
2020-11-24 22:17:52 -05:00
ec53d43f84 vim-patch:8.2.2041: haskell filetype not optimally recognized
Problem:    Haskell filetype not optimally recognized.
Solution:   Recognize all *.hsc files as Haskell. (Marcin Szamotulski,
            closes vim/vim#7354)
a09bee322e
2020-11-24 22:03:36 -05:00
21eb2e5ef8 fix(treesitter): docs reflect parser:parse()
Update docs to document that `parser:parse()` now returns a table of trees
2020-11-24 20:56:47 -06:00
0bb565b13b GHA: Force CCACHE_DIR=$HOME/.ccache 2020-11-24 21:26:03 -05:00
be9bd43502 ci: Only setup ipv6 on macOS for Travis 2020-11-24 21:26:03 -05:00
0d7777e9bc GHA: brew required software 2020-11-24 21:26:02 -05:00
36fe82ff98 env.sh: Handle no flavor being specified 2020-11-24 21:26:02 -05:00
0c022c03ee GHA: Add macOS CI 2020-11-24 21:26:02 -05:00
d93e397232 ci: s/TRAVIS_OS_NAME/CI_OS_NAME/ for non-Travis-specific code 2020-11-24 21:26:02 -05:00
1731ef3176 GHA: Rename linux workflow to CI 2020-11-24 21:26:01 -05:00
7caa622afc Merge pull request #13368 from vigoux/langtree-fixes
languagetree: call changedtree callback per tree
2020-11-24 21:30:13 +01:00
7574918dc7 vim-patch:8.1.0825: code for autocommands is mixed with file I/O code (#13305) 2020-11-24 14:53:38 -05:00
e6d1656831 languagetree: call changedtree callback per tree
Also fix a typo
2020-11-24 16:53:03 +01:00
a6bd52d877 Merge pull request #13366 from bfredl/path3a
api: enable nvim_get_runtime_file to find subdirectories
2020-11-24 16:47:48 +01:00
7e0e0782a1 vim-patch:8.2.2036: buffer messed up if creating the quickfix window fails (#13365)
Problem:    Current buffer is messed up if creating a new buffer for the
            quickfix window fails.
Solution:   Check that creating the buffer succeeds. (closes vim/vim#7352)
9e40c4b15e
2020-11-24 09:12:58 -05:00
d285fa73da api: enable nvim_get_runtime_file to find subdirectories 2020-11-24 14:18:46 +01:00
71d4f5851f man.vim: Use page title instead of full path. (#13353)
In commit 63f0ca3263, `tagfunc` was introduced to
`runtime/autoload/man.vim`. Nonetheless the tag function instead
of using a short buffer name (e.g. `man://foo(3)`) uses the full
path to the man page (e.g. `man:///usr/share/.../foo.3.gz`). This
behaviour is inconsistent with `:Man!`, thus this commit.

Closes #13334
2020-11-24 09:48:06 +01:00
60158dfb81 checkhealth: support virtual env dir with spaces 2020-11-24 09:39:11 +01:00
dd876a1548 Merge pull request #13322 from teto/remove_curwin
refactor: pass window to was_set_insecurely
2020-11-24 07:10:55 +01:00
7eb0c16dc8 fix(fold): use Folded highlight even with spell on
Partially addresses https://github.com/neovim/neovim/issues/12982. It's
more a quickfix while reworking folds.
2020-11-23 21:06:56 +01:00
4f1fc0f6d5 refactor: pass window to was_set_insecurely
working on get_foldtext and wanted to get rid of the curwin backup/restore.
Turns out it's not possible else f_foldtext is run on the same window.
Kept the cleanup anyway.
2020-11-23 21:06:56 +01:00
2d36b62eda Merge pull request #13270 from vigoux/ts-range-ranges
treesitter: allow table to be used as ranges
2020-11-23 18:42:08 +01:00
fb52790d1c Merge pull request #13358 from jamessan/ubuntu-20.04-gha 2020-11-23 09:27:35 -05:00
b155e6b54c Merge pull request #11148 from janlazo/vim-8.0.1455
vim-patch:8.0.1455,8.1.{2115,2361}
2020-11-23 09:19:11 -05:00
52d76f0a32 fix(treesitter): allow ranges in set_included_ranges 2020-11-23 15:09:32 +01:00
9ff6760b2d treesitter: refactor some things 2020-11-23 14:56:27 +01:00
80d1c4da5f ci: Only try installing python-pynvim if Py2 pip is present 2020-11-23 08:43:37 -05:00
1e7d937e16 GHA: Switch to ubuntu-20.04 image for Linux
Stop explicitly installing Ubuntu's python package, since most of the
Python 2 packages (and importantly pip/setuptools) have been removed in
this Ubuntu version.
2020-11-23 08:42:24 -05:00
029b5d036d Merge pull request #13354 from jamessan/ea.skip-providers 2020-11-23 08:37:04 -05:00
dd3583836b vim-patch:8.1.2361: MS-Windows: test failures related to VIMDLL
Problem:    MS-Windows: test failures related to VIMDLL.
Solution:   Adjust code and tests. (Ken Takata, closes vim/vim#5283)
310c32e892
2020-11-23 07:45:24 -05:00
1aae464222 vim-patch:8.1.2115: MS-Windows: shell commands fail if &shell contains a space
Problem:    MS-Windows: shell commands fail if &shell contains a space.
Solution:   Use quotes instead of escaping. (closes vim/vim#4920)
2efc44b3f0

Always double-quote &shell if it contains a space.
Neovim does not support escaping space with backslash, unlike Vim.

N/A patches for version.c:

vim-patch:8.0.1455: if $SHELL contains a space then 'shell' is incorrect

Problem:    If $SHELL contains a space then the default value of 'shell' is
            incorrect. (Matthew Horan)
Solution:   Escape spaces in $SHELL. (Christian Brabandt, closes vim/vim#459)
4bfa8af141

vim-patch:8.2.1194: test failure because shell prompt differs

Problem:    Test failure because shell prompt differs.
Solution:   Set the shell prompt.
a4dc6f92bb
2020-11-23 07:45:24 -05:00
43ec616414 Merge pull request #13252 from nvim-treesitter/language-tree
Language tree
2020-11-23 10:44:45 +01:00
1a631026a9 feat(treesitter): add language tree
Implement the LanguageTree structure to enable language injection.

This is done be removing the old Parser metatable and replacing by the
new structure, with the same API (almost).

Some noticeable differences :
  - `parser:parse()` now returns a table of trees
  - There is no incremental parsing for child (injected) languages

Co-authored-by: Thomas Vigouroux <tomvig38@gmail.com>
2020-11-23 08:06:17 +01:00
e26d074fed Add eap->skip checks to script_host_{execute_file,do_range}
As a safety measure, return immediately from these functions if
eap->skip is set.  This is set when VimL is being parsed, to skip past
dead code, and should not be executed.
2020-11-22 22:48:04 -05:00
503e758a2f do_one_cmd: Remove :pyxdo/:pyxfile from "handle <bar>" switch
In 8f288698e4, these commands were
incorrectly added to the switch that determines whether a command needs
to parse for "|" on their own when ea.skip is set.

This means that "if 0 | pyxfile foo.py | endif" would execute foo.py
when it should do nothing.  Removing them from the switch skips to the
end of `do_one_cmd()`, avoiding running any script.
2020-11-22 22:46:51 -05:00
cd691f2b6f Merge pull request #13333 from adrian5/filetype-xml
runtime: Patch xml, xmllint, xmlformat filetypes
2020-11-22 22:01:15 -05:00
ee8f530b40 Merge pull request #13348 from adrian5/filetype-gitconfig
runtime: Patch gitconfig.vim syntax
2020-11-22 21:41:34 -05:00
093c44d697 Merge pull request #13351 from janlazo/vim-8.1.1598
vim-patch:8.1.{1598,1601,2332},8.2.2032
2020-11-22 19:42:28 -05:00
2d35706b97 xml.vim: patch runtime/syntax to 4ceaa3a6e0b8cb299
vim/vim@4ceaa3a6e0
2020-11-22 22:47:39 +01:00
f1b826778e xml.vim: patch runtime/syntax to 96f45c0b6fc9e9d40
vim/vim@96f45c0b6f
2020-11-22 22:45:05 +01:00
4230c54660 xml.vim: patch runtime/indent to 4ceaa3a6e0b8cb299
vim/vim@4ceaa3a6e0
2020-11-22 22:42:02 +01:00
e175cebf17 xml.vim: patch runtime/indent to 96f45c0b6fc9e9d40
vim/vim@96f45c0b6f
2020-11-22 22:40:08 +01:00
fad90537c2 xmllint.vim: patch runtime/compiler to 1c6737b20a5
vim/vim@1c6737b20a
2020-11-22 22:36:17 +01:00
6068b907cb Merge pull request #13345 from shade-of-noon/lingering-e145
Remove leftover handling of restricted mode.
2020-11-22 16:11:22 -05:00
5705bb1250 Merge pull request #13352 from jamessan/isCI
test: Add GitHub actions support to helpers.isCI
2020-11-22 15:35:09 -05:00
15e5acada9 vim-patch:8.1.2332: missing file in refactoring
Problem:    Missing file in refactoring.
Solution:   Update missing file.
556ae8ea28
2020-11-22 15:07:06 -05:00
4d4d77a3c4 po: Remove E145 error message. 2020-11-22 15:46:47 -04:00
070d7c2950 runtime: Remove error handling for E145.
Restricted mode (-Z) has been removed per #11996.
Some runtime files had lingering error handling (error
identifier `E145`) so I cleaned them up.
2020-11-22 15:46:47 -04:00
4ad7092abf test: Add GitHub actions support to helpers.isCI 2020-11-22 14:41:55 -05:00
e2a2efc432 vim-patch:8.2.2032: cabalconfig and cabalproject filetypes not recognized
Problem:    Cabalconfig and cabalproject filetypes not recognized.
Solution:   Detect more cabal files. (Marcin Szamotulski, closes vim/vim#7339)
dcbab75db3

N/A patches for version.c:

vim-patch:8.1.1598: update to test file missing

Problem:    Update to test file missing.
Solution:   Update the popup window test file.
53a95d6584

vim-patch:8.1.1601: missing changes to popup window test file

Problem:    Missing changes to popup window test file.
Solution:   Add those changes.
8da4181631
2020-11-22 13:30:38 -05:00
fc0f57228d xmlformat.vim: patch runtime/autoload to eab6dff19
vim/vim@eab6dff19f
2020-11-22 18:05:02 +01:00
67612b1766 xmlformat.vim: patch runtime/autoload to 96f45c0b6
vim/vim@96f45c0b6f
2020-11-22 18:00:23 +01:00
7dfeadb0fc Merge pull request #13347 from janlazo/vim-8.1.0650
vim-patch:8.1.0650,8.2.{1216,1217}
2020-11-22 00:03:52 -05:00
4c14410af6 vim-patch:8.2.1217: startup test depends on random source file
Problem:    Startup test depends on random source file.
Solution:   Write a test file to find quickfix errors in.
1e1f612bd4

N/A patches for version.c:

vim-patch:8.2.1216: startup test fails

Problem:    Startup test fails.
Solution:   Adjust expected values for deleted lines.
b6e4e4c6f7
2020-11-21 22:45:46 -05:00
485e5022fc test/old: cherry-pick patch 8.2.0509 for Test_q_arg() 2020-11-21 22:45:39 -05:00
e632e30b8a test/old: cherry-pick patch 8.1.2373 for test_startup.vim 2020-11-21 22:45:39 -05:00
04463f027a gitconfig.vim: patch runtime/syntax to c08ee7476b1
vim/vim@c08ee7476b
2020-11-22 04:43:16 +01:00
b0b57a2a6a gitconfig.vim: patch runtime/syntax to 5be4ceecea5
vim/vim@5be4ceecea
2020-11-22 04:34:44 +01:00
c4cef4ec93 vim-patch:8.1.0650: command line argument -q [errorfile] is not tested
Problem:    Command line argument -q [errorfile] is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3730)
54948183d2
2020-11-21 22:28:26 -05:00
74eed35f95 Merge pull request #13338 from shade-of-noon/patch-1
Restricted mode (-Z) lingering references.
2020-11-21 21:02:16 -05:00
185732a1f8 Merge pull request #13340 from janlazo/vim-8.2.2025
vim-patch:8.1.1749,8.2.{579,2025,2027,2028,2029}
2020-11-21 18:20:44 -05:00
297567780e eval: use VAR_UNLOCKED enum, not the direct value 2020-11-21 15:35:05 -05:00
ce3668ed39 vim-patch:8.2.2027: Coverity warnts for uninitialized field
Problem:    Coverity warnts for uninitialized field.
Solution:   Set "v_lock".
9681f71392
2020-11-21 15:35:05 -05:00
5a4f049c38 vim-patch:8.2.2029: Coverity warns for not checking return value
Problem:    Coverity warns for not checking return value.
Solution:   Check that u_save_cursor() returns OK.
5546688fb6
2020-11-21 15:35:04 -05:00
5ea38abd53 vim-patch:8.2.2028: Coverity warns for using an uninitialized variable
Problem:    Coverity warns for using an uninitialized variable.
Solution:   Initialize to NULL.
896ad2c33e

N/A patches for version.c:

vim-patch:8.1.1749: Coverity warns for using negative index

Problem:    Coverity warns for using negative index.
Solution:   Move using index inside "if".
736cd2cfbe

vim-patch:8.2.0579: Coverity warns for unused value

Problem:    Coverity warns for unused value.
Solution:   Change order and use "else if".
4d5d0dfe94

vim-patch:8.2.2025: Amiga: Not all colors are used on OS4

Problem:    Amiga: Not all colors are used on OS4.
Solution:   Adjust the #ifdef to include __amigaos4__. (Ola Söder,
            closes vim/vim#7328)
2d718267f4
2020-11-21 15:34:44 -05:00
e192a4600a Merge pull request #13307 from janlazo/vim-8.1.0777
vim-patch:8.1.{323,777,933,938},8.2.{178,248,547,581,592,646,658,793,1608,1975,1991,1992,1993,1994,1998,1999,2003,2007,2008,2009}
2020-11-21 10:52:16 -05:00
5c92ee5d71 Update vim_diff.txt
Update for restricted mode removal.
2020-11-21 11:18:23 -04:00
60e1e60b88 Grammar - remove superfluous word. 2020-11-21 10:05:18 -04:00
fec2fb7e49 Remove restricted mode (-Z) from man page.
As per #11996, restricted mode (-Z) has been removed. Nonetheless in #11996 the man page was not updated. Hence this PR.
2020-11-21 09:41:59 -04:00
3c2402e5c2 Merge pull request #13250 from bfredl/missinglink
allow nvim_set_hl to break existing links
2020-11-21 13:11:17 +01:00
a4986ab47f decorations: allow nvim_set_hl to break existing links
also add `default` flag to NOT break existing links/defs
2020-11-21 11:24:14 +01:00
2a5307202b menu: remove winbar code
No unmerged Vim patch, applicable to Neovim, depend on WinBar feature.
It was merged only for merging Vim patches.
It is currently useless in Neovim.
Remove it to avoid rendering issues.

Close https://github.com/neovim/neovim/issues/12689
2020-11-20 20:27:12 -05:00
172d5b6561 test: rewrite powershell tests to remove timeout
TSAN kept failing and Appveyor sometimes fails on the same test.
2020-11-20 19:55:17 -05:00
0c86e70bf0 vim-patch:8.2.1608: Vim9: getchar() test fails with GUI
Problem:    Vim9: getchar() test fails with GUI.
Solution:   Avoid that getchar(0) gets stuck on K_IGNORE.
15183b41c4

N/A patches for version.c:

vim-patch:8.1.0323: reverse order of VTP calls only needed the first time

Problem:    Reverse order of VTP calls only needed the first time.
Solution:   Add a flag to remember the state. (Nobuhiro Takasaki, closes vim/vim#3366)
2551c037e4

vim-patch:8.1.0777: Win32: using pipes for channel does not work well

Problem:    Win32: using pipes for channel does not work well.
Solution:   Use a larger buffer and handle overlaps. (Yasuhiro Matsumoto,
            closes vim/vim#3782)
b091f30bf3

vim-patch:8.1.0933: When using VTP scroll region isn't used properly

Problem:    When using VTP scroll region isn't used properly.
Solution:   Make better use of the scroll region. (Nobuhiro Takasaki,
            closes vim/vim#3974)
6982f42f33

vim-patch:8.1.0938: background color is wrong in MS-Windows console

Problem:    Background color is wrong in MS-Windows console when not using VTP.
Solution:   Use g_attrCurrent. (Nobuhiro Takasaki, closes vim/vim#3987)
21edde8742

vim-patch:8.2.0178: with VTP the screen may not be restored properly

Problem:    With VTP the screen may not be restored properly.
Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
            closes vim/vim#5548)
df54382eac

vim-patch:8.2.0248: MS-Windows: dealing with deprecation is too complicated

Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes vim/vim#5626)
2f18975088

vim-patch:8.2.0547: Win32: restoring screen not always done right

Problem:    Win32: restoring screen not always done right.
Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes vim/vim#5909)
e7f234120f

vim-patch:8.2.0581: Win32 console: the cursor position is always top-left

Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
81ccbf199f

vim-patch:8.2.0592: MS-Windows with VTP: cursor is not made invisible

Problem:    MS-Windows with VTP: cursor is not made invisible.
Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
            Takasaki, closes vim/vim#5941)
2695de63e3

vim-patch:8.2.0646: t_Co uses the value of $COLORS in the GUI

Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
Solution:   Ignore $COLORS for the GUI. (closes vim/vim#5992)
759d81549c

vim-patch:8.2.0658: HP-UX build fails when setenv() is not defined

Problem:    HP-UX build fails when setenv() is not defined.
Solution:   Change "colors" to "t_colors". (John Marriott)
affc8fd2cd

vim-patch:8.2.0793: MS-Windows: cannot build GUI with small features

Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
1e1d2e89fa

vim-patch:8.2.1975: Win32: memory leak when encoding conversion fails

Problem:    Win32: memory leak when encoding conversion fails.
Solution:   Free the allocated memory. (Ken Takata, closes vim/vim#7277)
bbf9f344af

vim-patch:8.2.1991: Coverity warns for not using the ga_grow() return value

Problem:    Coverity warns for not using the ga_grow() return value.
Solution:   Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes vim/vim#7303)
ca359cbedd

vim-patch:8.2.1992: build fails with small features

Problem:    Build fails with small features.
Solution:   Add #ifdef.
4792a679f9

vim-patch:8.2.1993: occasional failure of the netbeans test

Problem:    Occasional failure of the netbeans test.
Solution:   Add "silent!". (Yegappan Lakshmanan, closes vim/vim#7304)
50dc3ecc64

vim-patch:8.2.1994: MS-Windows: MinGW always does a full build

Problem:    MS-Windows: MinGW always does a full build.
Solution:   Only check if $OUTDIR exists. (Masamichi Abe, closes vim/vim#7311)
c4390fe6c0

vim-patch:8.2.1998: terminal Cmd test sometimes fails to close popup

Problem:    Terminal Cmd test sometimes fails to close popup.
Solution:   Add "term_finish" option.
27f4f6baee

vim-patch:8.2.1999: terminal popup test sometimes fails

Problem:    Terminal popup test sometimes fails.
Solution:   Wait for the popup to close.
e6329e4c55

vim-patch:8.2.2003: build error with +conceal but without +popupwin

Problem:    Build error with +conceal but without +popupwin.
Solution:   Add #ifdef. (Tom Ryder, closes vim/vim#7316)
1efefda623

vim-patch:8.2.2007: test for insert mode in popup is not reliable

Problem:    Test for insert mode in popup is not reliable.
Solution:   Wait for the popup to disappear. (Ozaki Kiichi, closes vim/vim#7321)
17ab28daa0

vim-patch:8.2.2008: MS-Windows GUI: handling channel messages lags

Problem:    MS-Windows GUI: handling channel messages lags.
Solution:   Reduce the wait time from 100 to 10 msec. (closes vim/vim#7097)
032f40afb8

vim-patch:8.2.2009: MS-Windows: setting $LANG in gvimext only causes problems

Problem:    MS-Windows: setting $LANG in gvimext only causes problems.
Solution:   Do not set $LANG. (Ken Takata, closes vim/vim#7325)
382319211a
2020-11-20 19:55:04 -05:00
97ffa158aa Merge pull request #12004 from erw7/fix-paste 2020-11-20 12:08:31 -05:00
a539a12d72 test: add functional test for segmented response from terminal 2020-11-20 09:26:17 -05:00
6c1e1fe772 test,unit: Change test according to change of bg color response processing
Adjust the test for handle_background_color() according to
bd0275182b1c1b14c43dc4fc7e9f9da05071e56c.
2020-11-20 09:26:17 -05:00
8923a3df83 TUI: fix processing of bg color response
Terminal responses may be fragmented. In that case, the problem that was
not processed normally and was processed in the same way as user input
is corrected.

fixes #11393.
2020-11-20 09:26:17 -05:00
db5d2c86b3 TUI: fix bracket paste getting stuck
fixes #11699, #11991.
2020-11-20 09:25:57 -05:00
978857e0c2 Merge pull request #12592 from jamessan/fix-mod-keys 2020-11-20 09:15:39 -05:00
480b04122e Merge pull request #13321 from seandewar/vim-8.2.2011
vim-patch:8.2.{2006,2011}
2020-11-19 23:34:13 -05:00
da4e7ed4e9 Merge pull request #13330 from adrian5/filetype-gitcommit
runtime: Patch gitcommit.vim syntax
2020-11-19 23:19:08 -05:00
9e405c44b9 gitcommit.vim: patch runtime/syntax to c08ee7476b1
vim/vim@c08ee7476b
2020-11-20 02:44:05 +01:00
dee5dfd930 gitcommit.vim: patch runtime/ftplugin to c08ee7476
vim/vim@c08ee7476b
2020-11-20 02:39:43 +01:00
b0f967a06e vim-patch:8.2.2011: "syn sync" reports a very large number
Problem:    "syn sync" reports a very large number.
Solution:   Use "at the first line".
9950280d37
2020-11-19 17:35:51 +00:00
a18f050e51 vim-patch:8.2.2006: .pbtxt files are not recognized
Problem:    .pbtxt files are not recognized.
Solution:   Recognize .pbtxt as protobuf text buffers. (closes vim/vim#7326)
88774a30c0
2020-11-19 17:35:41 +00:00
ad56527247 Merge pull request #13319 from bfredl/bfredlpackages
startup: load files from the "start" directory of each entry in 'packpath' (as documented)
2020-11-19 15:36:44 +01:00
a119fe15da startup: load files from &packpath . '/start/{pluginname}'
Quoting the existing docs:

    Packages are loaded.  These are plugins, as above [&runtimepath], but
    found in the "start" directory of each entry in 'packpath'.  Every
    plugin directory found is added in 'runtimepath' and then the plugins
    are sourced.

Also tj didn't think I could do it.
2020-11-19 14:31:07 +01:00
569e5c86bf Merge pull request #13316 from bfredl/vim-8.2.2005
vim-patch:8.2.2005: redoing a mapping with <Cmd> doesn't work properly
2020-11-18 19:45:40 +01:00
790fd58714 Merge pull request #13318 from tjdevries/fix_vigouxs_segfaulting_mistakes
fix: NULL segfaults brought to you by @vigoux
2020-11-18 18:43:02 +01:00
2f8eaad6d8 fix: NULL segfaults brought to you by @vigoux 2020-11-18 11:16:38 -05:00
147917369e vim-patch:8.2.2005: redoing a mapping with <Cmd> doesn't work properly
Problem:    Redoing a mapping with <Cmd> doesn't work properly.
Solution:   Fill the redo buffer.  Use "<SNR>" instead of a key code.
            (closes vim/vim#7282)
c77534c303
2020-11-18 15:09:17 +01:00
8c4648421a Merge pull request #13308 from Shougo/vim-8.2.1995
vim-patch:8.2.1995: the popup menu can cause too much redrawing
2020-11-17 15:25:11 +01:00
b98348258d vim-patch:8.2.1995: the popup menu can cause too much redrawing
Problem:    The popup menu can cause too much redrawing.
Solution:   Reduce the length of the displayed text. (Yasuhiro Matsumoto,
            closes vim/vim#7306)
714cbe5b21
2020-11-17 14:42:29 +09:00
ce70edb80e Merge pull request #13302 from blueyed/fix-deps-luv-static
deps: fix BuildLuv without bundled libuv
2020-11-16 18:58:22 -05:00
a88bc4d95e keymap: Preserve S- modifier when C- is present
Closes #12037
2020-11-16 18:52:23 -05:00
e76f26d4e7 tui/input: Add S- modifier for chords with capital ASCII
termkey_strfkey() formats ctrl-l and ctrl-shift-l as <C-l> and <C-L>,
respectively.  Nvim wants the latter to look like <C-S-L>, since <C-l>
and <C-L> are interpreted the same way.

This is only required when the Ctrl modifier is present.
2020-11-16 18:52:23 -05:00
e62beab719 Understand Escape as another name for Esc
This allows us to remove special-case handling of Esc in
forward_modified_utf8(), which was always sending "<Esc>" to nvim even
when there were modifiers present.

Closes #12584
2020-11-16 18:52:16 -05:00
dd48198e62 Merge pull request #13303 from vigoux/fix-13298
fix(floatwin): don't always use winheight
2020-11-16 21:23:09 +01:00
ba21ea51b0 Merge pull request #13304 from rockerBOO/docs-fix-nvim_lsp-lspconfig
docs: Change nvim_lsp to lspconfig
2020-11-16 19:07:23 +01:00
2fb778c2ae docs: Change nvim_lsp to lspconfig 2020-11-16 11:35:34 -05:00
6a2cd57886 fix(floatwin): don't always use winheight 2020-11-16 14:37:24 +01:00
4c6628a7eb deps: fix BuildLuv without bundled libuv
Fixes:

    % rm -rf .deps
    % cmake -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED=OFF -S third-party -B .deps
    % cmake --build .deps
    ...
    [ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
    /home/daniel/Vcs/neovim/.deps/build/src/luv/src/luv.c:20:10: fatal error: c-api/compat-5.3.h: No such file or directory
       20 | #include "c-api/compat-5.3.h"
          |          ^~~~~~~~~~~~~~~~~~~~
    compilation terminated.

This was broken since 78f1eccc8, where apparently the `LUA_COMPAT53_DIR`
was defined in a wrong location.
2020-11-16 13:52:50 +01:00
6169167f90 Merge pull request #13300 from rockerBOO/docs-nvim_lsp-to-lspconfig
docs: Update nvim_lsp to lspconfig
2020-11-16 11:33:05 +01:00
ecbcca44e7 docs: Update ISSUE_TEMPLATE for lsp_bug_report 2020-11-16 03:47:23 -05:00
fb19663851 docs: Follow conventions 2020-11-16 01:13:15 -05:00
46ab054b1d docs: Update nvim_lsp to lspconfig 2020-11-16 01:10:55 -05:00
1b8867ab39 Merge pull request #13293 from janlazo/vim-8.2.1976
vim-patch:8.2.{1979,1981,1982,1985,1987}
2020-11-15 18:18:12 +01:00
bcadf324cb Merge pull request #13297 from jamessan/github-actions 2020-11-15 09:17:49 -05:00
af88b0891e GHA: Add tsan job to the matrix 2020-11-14 21:29:02 -05:00
3b0a729f9c GHA: Use matrix to de-duplicate workflow definition
The general skeleton of each job is the same, so consolidate the
definition to a single job with an explicit matrix.

Use conditional steps to handle steps that are unique to a certain job
(e.g., installing clang-11 for better ASAN support).
2020-11-14 21:29:02 -05:00
392ec5a43f ci: Remove $CCACHE_CPP2
The env var is being set to the default value, as of ccache 3.3, which
is available in Zesty and newer.  All of our CI is using Bionic, so this
is already available.
2020-11-14 21:28:59 -05:00
5271f1e2c9 GHA: Move env var setup into env.sh to keep it DRY 2020-11-14 21:28:12 -05:00
87aaa8e837 globals: eliminate "enc_utf8" macro
"enc_utf8" macro evaluates to "true".
Continue dead code removal, started in https://github.com/neovim/neovim/pull/13275.
2020-11-14 17:23:51 -05:00
35874208b8 globals: eliminate "has_mbyte" macro
"has_mbyte" always evaluates to "true".
Continue dead code removal, started in https://github.com/neovim/neovim/pull/13275.
2020-11-14 17:23:51 -05:00
78c380f947 vim-patch:8.2.1982: quickfix window now updated when adding invalid entries
Problem:    Quickfix window now updated when adding invalid entries.
Solution:   Update the quickfix buffer properly. (Yegappan Lakshmanan, closes
            vim/vim#7291, closes vim/vim#7271)
2ce7790348

N/A patches for version.c:

vim-patch:8.2.1979: "term_opencmd" option of term_start() is truncated

Problem:    "term_opencmd" option of term_start() is truncated. (Sergey
            Vlasov)
Solution:   Allocate the buffer to hold the command. (closes vim/vim#7284)
47c5ea44b9

vim-patch:8.2.1981: MinGW: parallel compilation might fail

Problem:    MinGW: parallel compilation might fail.
Solution:   Add dependencies on $(OUTDIR). (Masamichi Abe, closes vim/vim#7287)
8496c9eadb

vim-patch:8.2.1985: crash when closing terminal popup with <Cmd> mapping

Problem:    Crash when closing terminal popup with <Cmd> mapping.
Solution:   Check b_term is not NULL. (closes vim/vim#7294)
02764713a7

vim-patch:8.2.1987: MS-Windows: Win32.mak is no longer needed

Problem:    MS-Windows: Win32.mak is no longer needed.
Solution:   Do not include Win32.mak. (Jason McHugh, closes vim/vim#7290)
6453cc8078
2020-11-14 17:23:48 -05:00
39b3eb34c2 ci: Install gem binaries to ~/.local/bin
That directory is already part of `$PATH`, so let's reuse it instead of
trying to figure what version-specific path binaries gem normally uses.
2020-11-14 17:23:35 -05:00
0798ad3a3a lsp: Expose all diagnostics (#13285)
* lsp: Remove duplicate `diagnostics` fallback in diagnostic.display

* lsp: Expose all diagnostics

Before the changes in #12655 it was possible to retrieve all diagnostics
via `vim.lsp.util.diagnostics_by_buf`.

This adds a `diagnostic.get_all()` to enable users to retrieve all
diagnostics.

Use cases for that could include loading all diagnostics into the
quickfix list, or to build an enhanced goto_next that can move across
buffers.
2020-11-14 14:39:05 -05:00
27d630926c Merge pull request #13275 from janlazo/vim-8.1.0805
vim-patch:8.1.{805,806,809,810,811}
2020-11-14 19:35:26 +01:00
d8c69adbab Merge pull request #12698 from erw7/fix-popupmenu-with-rl
ui: fix problem with the popupmenu when rightleft is set
2020-11-13 23:09:57 -05:00
7c4f349661 Merge pull request #13287 from jamessan/github-actions 2020-11-13 14:13:42 -05:00
aaca2c1c4d feat(lua): improve error message to make it actionable (#13276)
* improve error message to make it actionable
2020-11-13 19:50:03 +01:00
7ac3c39e39 README: Replace Travis CI badge with GH Linux CI 2020-11-13 13:38:13 -05:00
c96acac4d3 GHA: Invalidate cache if cmake files or third-party/ change 2020-11-13 13:38:12 -05:00
25a8385cd1 ci: Rename travis_fold to ci_fold and add GHA support 2020-11-13 13:38:12 -05:00
eb96bec4bb ci/before_script.sh: Remove early exit for lint job
lualint requires building dependencies, so allow the job to take
advantage of the cache.
2020-11-13 13:36:58 -05:00
c7443b82a9 GHA: Update cache directory if all steps succeeded 2020-11-13 13:36:58 -05:00
ef0d558a3b GHA: Include ccache output in cache 2020-11-13 13:36:58 -05:00
f23b906ddd GHA: Skip tests that fail due to actions/runner#241 2020-11-13 13:36:57 -05:00
808eb44f4a GHA: Add ~/.local/bin to $PATH 2020-11-13 13:36:57 -05:00
e2e032a52a GHA: Add lint job to Linux workflow 2020-11-13 13:36:57 -05:00
eb2aaed5cc Add Linux ASAN GitHub Action 2020-11-13 13:36:56 -05:00
d0714e87d6 build: Rename TRAVIS_BUILD_DIR to CI_BUILD_DIR 2020-11-13 13:36:56 -05:00
86eba08a4b build: Rename TRAVIS_CI_BUILD variable to CI_BUILD 2020-11-13 13:36:56 -05:00
35325ddac0 doc: fixup sign information (#13281)
Thanks to @sunzoje for finding the outdated documentation.
2020-11-13 00:02:40 -05:00
f75be5e9d5 lsp: vim.lsp.diagnostic (#12655)
Breaking Changes:
- Deprecated all `vim.lsp.util.{*diagnostics*}()` functions.
    - Instead, all functions must be found in vim.lsp.diagnostic
    - For now, they issue a warning ONCE per neovim session. In a
      "little while" we will remove them completely.
- `vim.lsp.callbacks` has moved to `vim.lsp.handlers`.
    - For a "little while" we will just redirect `vim.lsp.callbacks` to
      `vim.lsp.handlers`. However, we will remove this at some point, so
      it is recommended that you change all of your references to
      `callbacks` into `handlers`.
    - This also means that for functions like |vim.lsp.start_client()|
      and similar, keyword style arguments have moved from "callbacks"
      to "handlers". Once again, these are currently being forward, but
      will cease to be forwarded in a "little while".
- Changed the highlight groups for LspDiagnostic highlight as they were
  inconsistently named.
    - For more information, see |lsp-highlight-diagnostics|
- Changed the sign group names as well, to be consistent with
  |lsp-highlight-diagnostics|

General Enhancements:
- Rewrote much of the getting started help document for lsp. It also
  provides a much nicer configuration strategy, so as to not recommend
  globally overwriting builtin neovim mappings.

LSP Enhancements:
- Introduced the concept of |lsp-handlers| which will allow much better
  customization for users without having to copy & paste entire files /
  functions / etc.

Diagnostic Enhancements:
- "goto next diagnostic" |vim.lsp.diagnostic.goto_next()|
- "goto prev diagnostic" |vim.lsp.diagnostic.goto_prev()|
    - For each of the gotos, auto open diagnostics is available as a
      configuration option
- Configurable diagnostic handling:
    - See |vim.lsp.diagnostic.on_publish_diagnostics()|
    - Delay display until after insert mode
    - Configure signs
    - Configure virtual text
    - Configure underline
- Set the location list with the buffers diagnostics.
    - See |vim.lsp.diagnostic.set_loclist()|
- Better performance for getting counts and line diagnostics
    - They are now cached on save, to enhance lookups.
    - Particularly useful for checking in statusline, etc.
- Actual testing :)
    - See ./test/functional/plugin/lsp/diagnostic_spec.lua
- Added `guisp` for underline highlighting

NOTE: "a little while" means enough time to feel like most plugins and
plugin authors have had a chance to refactor their code to use the
updated calls. Then we will remove them completely. There is no need to
keep them, because we don't have any released version of neovim that
exposes these APIs. I'm trying to be nice to people following HEAD :)

Co-authored: [Twitch Chat 2020](https://twitch.tv/teej_dv)
2020-11-12 22:21:34 -05:00
5d6ecfa3c7 vim-patch:8.1.0805: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, part 1.
135059724f
2020-11-12 21:22:06 -05:00
93c18867a0 vim-patch:8.1.0810: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, part 4.
264b74fa54
2020-11-12 18:12:05 -05:00
f494516ccd vim-patch:8.1.0809: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, part 3.
a12a161b8c
2020-11-12 02:11:23 -05:00
e2504d2192 vim-patch:8.1.0806: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, part 2.
fc3abf47fb
2020-11-12 01:12:58 -05:00
54495c9816 vim-patch:8.1.0811: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, the final chapter.
30276f2beb
2020-11-12 00:40:07 -05:00
4ae31c46f7 Merge pull request #13273 from janlazo/vim-8.2.1972
vim-patch:8.2.{1972,1973,1974}
2020-11-11 23:08:44 -05:00
6d58f1eace vim-patch:8.2.1973: finding a patch number can be a bit slow
Problem:    Finding a patch number can be a bit slow.
Solution:   Use binary search. (closes vim/vim#7279)
232f4612e2
2020-11-11 14:36:00 -05:00
3013d0edfc vim-patch:8.2.1972: crash when recreating nested fold
Problem:    Crash when recreating nested fold.
Solution:   Check for empty growarray. (closes vim/vim#7278)
5e1f22ff61

N/A patches for version.c:

vim-patch:8.2.1974: Vim9: test for has('gui_running') fails with VIMDLL

Problem:    Vim9: test for has('gui_running') fails with VIMDLL.
Solution:   Adjust the #ifdef. (Ken Takata, closes vim/vim#7276)
29b281ba8d
2020-11-11 14:17:03 -05:00
4875db2e56 Merge pull request #11996 from georg3tom/remove_restricted
Removed restricted mode - Fix #11972
2020-11-11 19:39:08 +01:00
7777532ceb Removed restricted mode - Fix #11972 2020-11-11 18:07:58 +01:00
0a95549d66 options.lua: add short descriptions (#6288)
add one-liner option descriptions in src/nvim/options.lua
They are taken from optwin.vim and should be easier to use in a
programmatic manner, for instance in a "palette", like in telescope
`:Telescope vim_options`.
2020-11-11 00:06:10 +01:00
a4fea2884d Merge pull request #13266 from jamessan/pvs-check 2020-11-10 12:59:05 -05:00
31366c44c4 Add PVS comment to new source files 2020-11-10 11:19:59 -05:00
088161a945 pvs: Exclude xdiff from analysis and comment munging 2020-11-10 10:00:25 -05:00
65993c444a Use the free PVS-Studio license
As of release 7.10, PVS Studio requires a license, even for the "check
me" comment based analyzing.
2020-11-10 09:42:28 -05:00
bb7ed42089 Merge pull request #13263 from jamessan/tree-sitter-detect
Align naming of FindTreeSitter cmake file and variables
2020-11-09 23:02:08 -05:00
f67b3ea39c Update the differences with Vim. (#13239)
:cquit can use count to set the exit code
	patch 8.2.0095: cannot specify exit code for :cquit

:tchdir tab-local current-directory
	patch 8.1.1218: cannot set a directory for a tab page

Autocmd Events:
	- DirChanged
	    patch 8.0.1459: cannot handle change of directory
	- TextYankPost
	    patch 8.0.1394: cannot intercept a yank command

tabpagenr() "#" argument
    g<Tab> goes to the last-accessed tabpage.
	patch 8.2.1401: cannot jump to the last used tabpage

hl-QuickFixLine
	patch 8.0.0641: cannot set a separate highlighting for the quickfix line

v:event
	patch 8.0.1394: cannot intercept a yank command

K in help documents can be used like CTRL-].
	Updated as part of a runtime update.
	4c05fa08c9
2020-11-09 23:01:54 -05:00
e786fb5afb Merge pull request #13244 from tk-shirasaka/fix/multigrid-click-foldcolumn
ui: Fix click on foldcolumn when ext_multigrid is enabled
2020-11-10 00:54:54 +01:00
1451b14873 Align naming of FindTreeSitter cmake file and variables
`find_package(Foo ...)` expects to find a file FindFoo.cmake and the
resulting variables to be named `Foo_...`.  If those don't all match up,
then the detection does not work properly.

Closes #13262
2020-11-09 15:15:03 -05:00
5e7626a5c6 Fix alignment issue 2020-11-10 00:36:26 +09:00
42ffa2d62e Merge pull request #13205 from romgrk/add-bufmodified-autocmd
Implement BufModifiedSet autocmd
2020-11-09 12:23:14 +01:00
11326761c7 test: update BufModifiedSet to be paranoid 2020-11-09 04:06:53 -05:00
743f7c8f72 fix: address issues for BufModifiedSet 2020-11-09 04:05:25 -05:00
19bb177512 Add test case for fold on multigrid 2020-11-09 15:05:23 +09:00
4e6f00dd29 gcc/analyzer: fix false positives for NULL (#13248)
Close https://github.com/neovim/neovim/issues/13158
2020-11-08 22:48:17 -05:00
94062831b3 Merge pull request #13255 from janlazo/pvs-547-560
pvs: fix v547, v560 errors
2020-11-08 20:34:01 -05:00
55fb5324ef pvs/v547: comment out code for 'adjustment == 1'
That code never runs.
Comment it out in case that it is required for debugging marktree.c.

Use 'const' to mark constant variables.
2020-11-08 18:09:28 -05:00
212d4bce48 pvs/v560: decoration item is always truthy 2020-11-08 17:51:12 -05:00
09c46b6c40 pvs/v547: remove useless ternary for string size 2020-11-08 17:48:03 -05:00
368403a9e6 ui: Fix click on foldcolumn when ext_multigrid is enabled 2020-11-09 02:12:39 +09:00
5caaacaafe Merge pull request #13253 from theHamsta/fix-baselang-order
tree-sitter: Put base languages first in queries
2020-11-08 16:46:25 +01:00
0276c8addd tree-sitter: Put base languages first in queries
This reverts the handling of base languages to the old way how
nvim-treesitter handled them. When a language extends a base language
it usually wants to be able to overwrite queries.

Related: https://github.com/nvim-treesitter/nvim-treesitter/issues/633
2020-11-08 13:55:42 +01:00
6b5975a1eb doc: add BufModifiedSet 2020-11-07 23:22:54 -05:00
45d9f4fe6f test: fix BufModifiedSet 2020-11-07 22:17:18 -05:00
3628d1ef72 tests: add functional test for BufModifiedSet 2020-11-07 19:18:00 -05:00
56f842e873 fix: finish renaming to BufModifiedSet 2020-11-07 19:17:43 -05:00
c3a82fbae5 fix: rename to BufModifiedSet 2020-11-07 19:09:51 -05:00
24db59ca8f feat: implement BufModified autocmd 2020-11-07 19:02:52 -05:00
5161ff88fa lsp: fix formatting_sync with multiple clients (#13233)
buf_request_sync returns a table indexed by the client id, so when
starting a second client on a separate buffer, result[1] will be nil.

Closes #13232.

Co-authored-by: francisco souza <fsouza@users.noreply.github.com>
2020-11-07 23:31:55 +01:00
df750e7248 vim-patch:8.2.1964: not all ConTeXt files are recognized (#13245)
Problem:    Not all ConTeXt files are recognized.
Solution:   Add two patterns. (closes vim/vim#7263)
faebda8cc1
2020-11-07 15:03:14 -05:00
4c7ad9527d Add v:event flag on DirChanged signaling switching window (#13153)
Closes #9909
2020-11-07 12:02:06 -05:00
643f4a1787 Merge pull request #13241 from bfredl/decoration
decoration: split out "decoration" from "extmark" module
2020-11-07 15:34:32 +01:00
e5d83a3bf3 Merge pull request #13117 from romgrk/add-scroll-events
Implement scroll autocommand
2020-11-07 15:13:20 +01:00
0fce70252d doc: fix WinScrolled details 2020-11-07 06:25:07 -05:00
8497d4b3ea decoration: split out "decoration" from "extmark" module
Decorations will only grow more complex. move the to a separate
file, so that extmark.c remains about extmarks.
2020-11-07 09:55:17 +01:00
d7f639d4e8 fix: lint doc-comments 2020-11-07 03:47:52 -05:00
cedfc1b747 my fight with the linter (tome II) 2020-11-06 23:44:32 -05:00
da134270d3 Merge pull request #13237 from janlazo/vim-8.2.1959
vim-patch:8.1.2422,8.2.{1959,1961,1962,1963}
2020-11-06 22:15:10 -05:00
4ed6f69497 my fight with the linter 2020-11-06 20:06:52 -05:00
038e98fd7d vim-patch:8.2.1961: various comments can be improved
Problem:    Various comments can be improved.
Solution:   Various comment adjustments.
22286895fc
2020-11-06 20:03:05 -05:00
0522962f15 vim-patch:8.2.1959: crash when terminal buffer name is made empty
Problem:    Crash when terminal buffer name is made empty. (Dhiraj Mishra)
Solution:   Fall back to "[No Name]". (closes vim/vim#7262)
00806bceb6

N/A patches for version.c:

vim-patch:8.1.2422: "make depend" does not work correctly for libvterm

Problem:    "make depend" does not work correctly for libvterm.
Solution:   Fix build dependencies. And a few minor improvements.
9810cfbe55

vim-patch:8.2.1962: netbeans may access freed memory

Problem:    Netbeans may access freed memory.
Solution:   Check the buffer pointer is still valid.  Add a test. (Yegappan
            Lakshmanan, closes vim/vim#7248)
32e5ec0b01

vim-patch:8.2.1963: crash when using a popup window with "latin1" encoding

Problem:    Crash when using a popup window with "latin1" encoding.
Solution:   Don't use ScreenLinesUC when enc_utf8 is false. (closes vim/vim#7241)
927495b1fe
2020-11-06 20:03:00 -05:00
40a742725c vim-patch:8.1.0268: file type checking has too many #ifdef (#13182)
Problem:    File type checking has too many #ifdef.
Solution:   Always define the S_IF macros. (Ken Takata, closes vim/vim#3306)
d569bb0299
2020-11-06 17:59:28 -05:00
d17e508796 Merge pull request #13227 from bfredl/earlyinspect
lua: make vim.inspect available early so it can be used for path debugging
2020-11-05 18:43:00 +01:00
1b0e4a5906 lua: make vim.inspect available early so it can be used for path debugging 2020-11-05 14:46:41 +01:00
0227091fb9 Merge pull request #13229 from ElPiloto/more_treesitter_doc
[RDY] doc: Supplement documentation for treesitter.
2020-11-05 12:08:55 +01:00
9162cc5417 Update runtime/doc/treesitter.txt
Co-authored-by: Thomas Vigouroux <tomvig38@gmail.com>
2020-11-05 09:14:33 +00:00
9cc702ae11 Add g:loaded_matchit check (#13226)
I have added g:loaded_matchit check to skip matchit loading like other default plugins.
2020-11-04 18:46:03 -05:00
33560002b4 healthcheck: suggest to skip tests perl provider (#13223)
CPAN tests are unreliable on Windows.
CI does the same to reduce flaky,slow builds.
2020-11-04 18:40:34 -05:00
d1bed96778 doc: Fix treesitter doc PR. 2020-11-04 19:55:12 +00:00
44180c3553 doc: Supplement documentation for treesitter.
- Describe query components (capture, match, pattern). Not
well-described in tree-sitter documentation.

- Describe Query() object. Not actually described anywhere in
documenation.
2020-11-04 17:45:38 +00:00
ee3acef386 Merge pull request #13224 from janlazo/vim-8.2.1944
vim-patch:8.1.{1829,1956,2234},8.2.1944
2020-11-04 08:15:16 -05:00
8a3a9ffa3d Merge pull request #13225 from erw7/fix-build-msvc
third-party: fix build failures in MSVC
2020-11-04 13:47:39 +01:00
9d355b8b0d Merge pull request #13219 from vigoux/ts-extract-tree
treesitter: separate tree and parser
2020-11-04 13:46:19 +01:00
05cef2f105 third-party: fix build failures in MSVC 2020-11-04 19:51:54 +09:00
c7d460c197 treesitter: separate tree and parser
While this might sound silly, it is needed for further improvements.
2020-11-04 08:14:20 +01:00
fa9dd9abf3 vim-patch:8.1.1956: screenshot tests may use a different encoding
Problem:    Screenshot tests may use a different encoding. (Dominique Pelle)
Solution:   Always set 'encoding' to "utf-8" when running Vim in a terminal.
            (closes vim/vim#4884)
0fdddeeb66

Comment out the encoding change in shared.vim
because Neovim always uses utf-8 for internal character encoding.
2020-11-04 01:51:49 -05:00
7ef3e2b880 vim-patch:8.1.1829: difference in screenshots
Problem:    Difference in screenshots.
Solution:   Update screenshots.  Change checks in a few more tests.
            (closes vim/vim#4789)
39de6413c8

N/A patches for version.c:

vim-patch:8.1.2234: get_short_pathname() fails depending on encoding

Problem:    get_short_pathname() fails depending on encoding.
Solution:   Use the wide version of the library function. (closes vim/vim#5129)
3f39697b73

vim-patch:8.2.1944: Netbeans test is flaky

Problem:    Netbeans test is flaky.
Solution:   Add a short delay. (Yegappan Lakshmanan, closes vim/vim#7246)
6fd3a4ba23
2020-11-04 00:09:07 -05:00
aaaad0f593 vim-patch:8.2.1947: crash when using "zj" without folds (#13222)
Problem:    Crash when using "zj" without folds. (Sean Dewar)
Solution:   Check for at least one fold. (closes vim/vim#7245)
c136a3528b
2020-11-03 22:44:08 -05:00
eee0668818 Merge pull request #13214 from vigoux/ts-bump-0.17.3
deps(tree-sitter): bump to 0.17.3
2020-11-03 16:29:50 +01:00
805b9a2e7b Merge pull request #13212 from lucc/patch-2
[RDY] docs: Fix typo
2020-11-03 15:22:41 +01:00
9e9137ef04 deps(tree-sitter): dump to 0.17.3
Also test the the bundling works correctly.
2020-11-03 13:40:44 +01:00
a766695c8b Merge pull request #12931 from vigoux/treesitter-bundled
bundle: move tree-sitter as a bundled dep
2020-11-03 13:36:25 +01:00
8e73cf6731 tree-sitter: ignore some tests on windows
Weirdl this test is failing, but can't reproduce locally, this is an
unnecessary blocker for this PR.
2020-11-03 10:39:36 +01:00
823cc66509 deps(treesitter): bump up to 0.17.1 2020-11-03 10:39:36 +01:00
3eb241d831 bundle: move tree-sitter as a bundled dep
fixup! bundle: move tree-sitter as a bundled dep

fixup! bundle: move tree-sitter as a bundled dep
2020-11-03 10:39:35 +01:00
432f3240f1 docs: Fix typo in example code 2020-11-03 10:05:26 +01:00
a061d53e18 Merge pull request #13211 from bfredl/fastruntime
api: gotta get the runtime fast
2020-11-03 10:00:25 +01:00
13e0ca3e19 Merge branch 'master' into add-scroll-events 2020-11-03 03:11:08 -05:00
4d9e5764d2 api: gotta get the runtime fast 2020-11-03 08:43:42 +01:00
5b5848f2fb Merge pull request #13209 from janlazo/vim-8.2.1942
vim-patch:8.2.{1165,1942}
2020-11-02 23:54:03 -05:00
0d9fa42d83 fixup! startup: handle autoload and lua packages during startup 2020-11-02 22:37:07 -05:00
1b728490d3 vim-patch:8.2.1942: insufficient test coverage for the Netbeans interface
Problem:    Insufficient test coverage for the Netbeans interface.
Solution:   Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan,
            closes vim/vim#7240)
dbfa795d8b

N/A patches for version.c:

vim-patch:8.2.1165: insufficient testing for the Tcl interface

Problem:    Insufficient testing for the Tcl interface.
Solution:   Add more tests. (Yegappan Lakshmanan, closes vim/vim#6423)
e4358906fd
2020-11-02 22:12:52 -05:00
186ba3b688 Merge pull request #13178 from steelsojka/fix-empty-main-query-file
fix(treesitter): account for no main query file
2020-11-02 18:16:37 +01:00
bab5b2fbda Merge pull request #13119 from bfredl/luartp
lua: handle require'package.mod' during startup
2020-11-02 18:11:14 +01:00
c60c7375f5 startup: handle autoload and lua packages during startup
¡NO HAY BANDA!
2020-11-02 15:21:36 +01:00
dc14b1468a lsp: remove vim.NIL from processing (#13174)
* lsp: remove vim.NIL from processing

* lsp: remove instances of vim.NIL
2020-11-02 08:50:44 -05:00
6224ec3d4a Merge pull request #13204 from janlazo/vim-8.2.1938
vim-patch:8.1.{2030,2063},8.2.{864,1086,1938}
2020-11-02 01:37:05 -05:00
4b65e4aeab vim-patch:8.2.1086: possibly using freed memory when text properties used
Problem:    Possibly using freed memory when text properties used when
            changing indent of a line.
Solution:   Compute the offset before calling ml_replace().
cf30643ae6
2020-11-01 21:11:02 -05:00
f9adb3eccb vim-patch:8.2.0864: pragmas are indented all the way to the left
Problem:    Pragmas are indented all the way to the left.
Solution:   Add an option to indent progmas like normal code. (Max Rumpf,
            closes vim/vim#5468)
d881b516da

N/A patches for version.c:

vim-patch:8.1.2030: tests fail when build with normal features and terminal

Problem:    Tests fail when build with normal features and terminal.
            (Dominique Pelle)
Solution:   Disable tests that won't work. (closes vim/vim#4932)
997d42427e

vim-patch:8.1.2063: some tests fail when +balloon_eval_term is missing

Problem:    Some tests fail when +balloon_eval_term is missing but
            _balloon_eval is present. (Dominique Pelle)
Solution:   Check the right feature in the test. (closes vim/vim#4962)
1e82a784ac

vim-patch:8.2.1938: wiping out a terminal buffer makes some tests fail

Problem:    Wiping out a terminal buffer makes some tests fail.
Solution:   Do not wipe out the terminal buffer unless wanted.
a46765a797
2020-11-01 19:55:40 -05:00
90f3a8ba29 Merge pull request #13203 from janlazo/vim-8.2.1936
vim-patch:8.2.1936
2020-11-01 16:39:30 -05:00
d1091bc658 Merge pull request #12870 from bfredl/themepark
Color themes (per window/line) and lua theme providers
2020-11-01 21:54:51 +01:00
442ad4bb63 fixup! rename: user_funcs -> userfunc 2020-11-01 13:22:52 -05:00
5db836bbca fixup! eval.c: factor out eval/funcs.c #11828 2020-11-01 13:21:33 -05:00
c146eddc8b api: add API for themes
co-author: hlpr98 <hlpr98@gmail.com> (dict2hlattrs function)

orange is sus??

NOVEMBER DAWN

erase the lie that is redraw_later()
2020-11-01 19:14:56 +01:00
4b398413e4 vim-patch:8.2.1936: session sets the local 'scrolloff' value to the global value
Problem:    Session sets the local 'scrolloff' value to the global value.
Solution:   Do not let restoring the global option value change the local
            value.
388908352f
2020-11-01 12:21:52 -05:00
ff11247837 fixup! refactor: move session functions to ex_session.c 2020-11-01 12:17:39 -05:00
720d442d19 lsp: complete support for CodeActionKinds to capabilities (#13180)
We support applying all kinds in the spec equivalently and some servers (including dartls) won't send code actions if support for the relevant kinds is not explicitly stated in the client capabilities. Therefore, this PR makes that support explicit.

Also, as we support all CodeActionKinds, we should also mark the server as supporting code actions when it specifies code action kinds. This is also done in this PR.
2020-11-01 18:11:32 +01:00
ba1ff71078 Merge pull request #13197 from janlazo/vim-8.2.1925
vim-patch:8.2.{639,666,1925,1926,1929,1932}
2020-11-01 12:03:56 -05:00
8821587748 Merge pull request #13192 from bfredl/nodeid
] treesitter: add node:id()
2020-11-01 17:27:38 +01:00
106a6c9548 Merge pull request #13090 from vigoux/tree-sitter-parse-error
tree-sitter: error out when parsing fails
2020-11-01 17:26:31 +01:00
057e21b1e7 vim-patch:8.2.0666: Ruby test fails on MS-Windows
Problem:    Ruby test fails on MS-Windows.
Solution:   Remove the "maintainer" line. (Ken Takata, closes vim/vim#6015)
88e6cc2539

Cherry-pick feature check from patch 8.1.1544.
Cherry-pick test_ruby.vim changes from patch 8.2.0183.
2020-11-01 09:28:39 -05:00
7af8de0dab vim-patch:8.2.0639: MS-Windows: messages test still fails
Problem:    MS-Windows: messages test still fails.
Solution:   Filter out the maintainer message.
49b2fb36ca
2020-11-01 09:28:39 -05:00
bbaf721fc3 vim-patch:8.2.1926: cannot use a space in 'spellfile'
Problem:    Cannot use a space in 'spellfile'. (Filipe Brandenburger)
Solution:   Permit using a space. (closes vim/vim#7230)
b2620202c7
2020-11-01 09:28:39 -05:00
925ddd2839 vim-patch:8.2.1925: list/dict test fails
Problem:    List/dict test fails.
Solution:   Correct expected exception.
6d967125ad

Cherry-pick e_dictkey[] change from patch 8.2.1924.

N/A patches for version.c:

vim-patch:8.2.1929: MS-Windows: problem loading Perl 5.32

Problem:    MS-Windows: problem loading Perl 5.32.
Solution:   Define NO_THREAD_SAFE_LOCALE. (Ken Takata, closes vim/vim#7234)
0289065e41

vim-patch:8.2.1932: compiler warnings when building with Athena GUI

Problem:    Compiler warnings when building with Athena GUI.
Solution:   Fix function signatures.
963734e316
2020-11-01 09:28:33 -05:00
31738fe8f1 treesitter: fix wrong string formatting 2020-11-01 15:07:11 +01:00
03c478ae53 treesitter: add node:id() 2020-11-01 14:59:17 +01:00
d3a63a1f71 tree-sitter: error out when parsing fails
This can happen when there is ABI mismatches, and removes the assumption
parsing alwasy succeeds (which is wrong).
2020-11-01 12:40:31 +01:00
c7c8652146 fix: remove xxx comment 2020-11-01 05:00:20 -05:00
ca7449db46 Merge pull request #13163 from erw7/fix-appveyor
ci/appveyor: change to update package database
2020-11-01 11:19:46 +09:00
bc68653a86 Merge pull request #13167 from romgrk/vim-8.2.1909
vim-patch:8.2.1909: number of status line items is limited to 80
2020-10-31 20:31:42 -04:00
10bf69a43e vim-patch:8.2.1909: number of status line items is limited to 80
Problem:    Number of status line items is limited to 80.
Solution:   Dynamically allocate the arrays. (Rom Grk, closes vim/vim#7181)
8133cc6bf4

The members of stl_item_T have not been prefixed with stl_ contrary to
the vim patch because the amount of stl_ prefixes on single lines of
code in that region was hurtful to readability.
2020-10-31 19:54:06 -04:00
a58d06ebfc tests: separate scroll test for horizontal/vertical scroll 2020-10-31 17:29:21 -04:00
98024853f4 lsp: Remove snippet lies (#13183)
We don't actually support snippets in core in the way that users would
truly expect. So, by default, we will not say that builtin-lsp has
`snippetSupport`.

To re-enable, users can do the following:

First, get a capabilities dictionary with

`local capabilities = vim.lsp.protocol.make_client_capabilities()`

Then override

`capabilities.textDocument.completion.completionItem.snippetSupport = true`

and then pass those capabilties to the setup function.

```
nvim_lsp.server_name.setup {
  ...,
  capabilities = capabilities,
  ...,
}
```

See https://github.com/neovim/neovim/issues/12795
2020-10-30 10:58:12 -04:00
9fee5f1423 Merge pull request #13172 from janlazo/vim-8.2.1910
vim-patch:8.1.{2034,2050},8.2.{131,913,929,1521,1910,1913,1922}
2020-10-30 08:56:38 -04:00
d9a58573fd tests: make scroll tests pass 2020-10-30 03:22:52 -04:00
037ffd54dc Fix clipboard provider detection (#13190)
Fixes #13189
2020-10-29 21:35:20 -04:00
4e24e31a6b vim-patch:8.2.0929: v:register is not cleared after an operator was executed
Problem:    v:register is not cleared after an operator was executed.
Solution:   Clear v:register after finishing an operator (Andy Massimino,
            closes vim/vim#5305)
cc613031b9
2020-10-29 18:36:38 -04:00
026c8dde87 vim-patch:8.1.2034: dark them of GTK 3 not supported
Problem:    Dark them of GTK 3 not supported.
Solution:   Add the "d" flag in 'guioptions'. (Jonathan Conder, closes vim/vim#4934)
50bf7ce0c9
2020-10-29 18:36:38 -04:00
3d6584223d vim-patch:8.2.0131: command line is not cleared when switching tabs
Problem:    Command line is not cleared when switching tabs and the command
            line height differs.
Solution:   Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
            closes vim/vim#5495)
479950f6c9
2020-10-29 18:36:38 -04:00
5329cb2e5c vim-patch:8.2.1521: reading past end of buffer when reading spellfile
Problem:    Reading past end of buffer when reading spellfile. (Yegappan
            Lakshmanan)
Solution:   Store the byte length and check for it.
07399e7f07
2020-10-29 18:36:38 -04:00
cb6b5e5540 vim-patch:8.2.1910: reading past the end of the command line
Problem:    Reading past the end of the command line.
Solution:   Check for NUL. (closes vim/vim#7204)
caf73dcfad

Cherry-pick undo_cmdmod() from patch 8.2.1137.

N/A patches for version.c:

vim-patch:8.1.2050: popup window test fails in some configurations

Problem:    Popup window test fails in some configurations. (James McCoy)
Solution:   Clear the command line.
7e0f462db5

vim-patch:8.2.0913: code for resetting v:register is duplicated

Problem:    Code for resetting v:register is duplicated.
Solution:   Add reset_reg_var().
439c036ed0

reset_reg_var() is not ported.
Use set_reg_var(get_default_register_name()) instead.

vim-patch:8.2.1913: GTK GUI: rounding for the cell height is too strict

Problem:    GTK GUI: rounding for the cell height is too strict.
Solution:   Round up above 15/16 of a pixel. (closes vim/vim#7203)
70cf45810c

vim-patch:8.2.1922: Win32: scrolling problems when part of window is off-screen

Problem:    Win32: scrolling doesn't work properly when part of window is
            off-screen.
Solution:   Fall back to GDI scrolling if part of the window is off-screen.
            Handle multi-monitor setup better. (Ken Takata, closes vim/vim#7219)
185577e47e
2020-10-29 18:36:05 -04:00
c6ccdda26a Merge pull request #12750 from foleyfactor/fix-hanging-messages
TJ told me to merge
2020-10-28 16:15:36 +01:00
e27af09052 fix(treesitter): account for no main query file 2020-10-28 07:34:11 -05:00
e606654ac2 doc: update doc: s/Scroll/WinScrolled/ 2020-10-28 04:49:49 -04:00
929d00db0f tests: add functional test for WinScrolled 2020-10-28 04:32:25 -04:00
bc21843228 feat: implement a working WinScrolled autocmd 2020-10-28 03:59:26 -04:00
fd7aa6768a lsp: Fix case where active_signature == vim.NIL (#13114) 2020-10-27 22:39:24 -04:00
29deb5dc31 ci/appveyor: change to update package database 2020-10-27 10:49:51 +09:00
b6897ebc0c Merge pull request #13116 from skippi/vim-8.1.1769
vim-patch:8.1.{1769, 1772, 1791},8.2.{1747}
2020-10-26 18:42:19 -04:00
6a0cb2a948 vim-patch:8.2.1747: result of expand() unexpectedly depends on 'completeslash'
Problem:    Result of expand() unexpectedly depends on 'completeslash'.
Solution:   Temporarily reset 'completeslash'. (Yasuhiro Matsumoto,
            closes vim/vim#7021)
8f187fc630
2020-10-26 15:22:23 -05:00
f8fd3d44ac vim-patch:8.1.1791: 'completeslash' also applies to globpath()
Problem:    'completeslash' also applies to globpath().
Solution:   Add the WILD_IGNORE_COMPLETESLASH flag. (test by Yasuhiro
            Matsumoto, closes vim/vim#4760)
2020-10-26 15:22:23 -05:00
c203f89ace vim-patch:8.1.1772: options test still fails on MS-Windows
Problem:    Options test still fails on MS-Windows.
Solution:   Check buffer-local value of 'completeslash'.
b78564d022
2020-10-26 15:22:22 -05:00
089f4f8e4a vim-patch:8.1.1769: 'shellslash' is also used for completion
Problem:    'shellslash' is also used for completion.
Solution:   Add the 'completeslash' option. (Yasuhiro Matsumoto, closes vim/vim#3612)
ac3150d385
2020-10-26 15:20:12 -05:00
a22fe09b90 Merge pull request #13154 from fsouza/fix-callback-logic
[RDY] lsp: fix fallback for callback in method_unsupported
2020-10-25 22:09:41 +01:00
4ba5b4a864 Merge pull request #13084 from erw7/fix-tui-cooked-mode
tui: fix problem that TTY does not go into raw mode
2020-10-25 22:05:03 +01:00
7fef16e1d6 lsp: Store diagnostics for unloaded buffers (#13102)
To avoid loading buffers https://github.com/neovim/neovim/pull/12440
changed the logic to not process diagnostics for unloaded buffers.

This is problematic for language servers where compile errors or build
errors are reported via diagnostics. These errors may prevent the
language server from providing all functions and it is difficult for
users to debug it without having access to the errors.

For example, with eclipse.jdt.ls there may be a problem with gradle (the
build tool for java), it results in a diagnostics like this:

    org.gradle.toolingapi/build.gradle|1 col 1| Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.8.1-bin.zip'.

This would be invisible to users unless the user happens to open the
right file. In this case the user would actually never see the error,
because the language server isn't attached to the build configuration
files.

This changes the behaviour to at least store the diagnostics. The other
operations which are more expensive are still skipped.
2020-10-25 14:27:11 -04:00
c984a888b8 Merge pull request #13151 from janlazo/vim-8.2.1892
vim-patch:8.1.1260,8.2.{87,393,506,618,1102,1892,1896,1899,1901}
2020-10-25 13:54:57 -04:00
c3ef198132 Merge pull request #13077 from tjdevries/tjdevries/buf_apis_1
api: nvim_buf_delete
2020-10-25 18:46:57 +01:00
a868cd920a vim-patch:8.2.1901: variable completion does not work in command line window
Problem:    Variable completion does not work in command line window.
Solution:   Use the "prevwin". (closes vim/vim#7198)
4ff2f2fb6b

N/A patches for version.c:

vim-patch:8.2.1899: crash in out-of-memory situation

Problem:    Crash in out-of-memory situation.
Solution:   Bail out if shell_name is NULL. (Dominique Pellé, closes vim/vim#7196)
67def64a4e
2020-10-25 12:48:37 -04:00
1f0f92f8ec lsp: fix fallback for callback in method_unsupported
Missed this #12764. My bad :((
2020-10-25 08:17:34 -04:00
36f78412f9 vim-patch:8.2.0393: Coverity warns for not using return value
Problem:    Coverity warns for not using return value.
Solution:   Add (void).
c030063329
2020-10-25 02:32:13 -04:00
41184660be vim-patch:8.2.0506: Coverity complains about ignoring return value
Problem:    Coverity complains about ignoring return value.
Solution:   Add (void).
d1e9dc2723
2020-10-25 02:27:52 -04:00
d2a38dab80 move.c: dont invalidate viewport when no scroll happened 2020-10-25 02:25:22 -04:00
63d4a6537d vim-patch:8.1.1862: Coverity warns for not using return value
Problem:    Coverity warns for not using return value.
Solution:   Add "(void)" to avoid the warning.
9c272a9e52
2020-10-25 02:24:33 -04:00
b7cd7e0e5c vim-patch:8.2.1102: Coverity gets confused by an unnecessary NULL check
Problem:    Coverity gets confused by an unnecessary NULL check.
Solution:   Remove the check for NULL.
9004949221
2020-10-25 02:10:47 -04:00
6312792d8a lsp: only send buf requests to servers that support the request (#12764)
Refactors how required capabilities are detected and validated, and make
sure requests are only sent to clients that support it (and only fail if
no clients support the provided method).

The validation happens at the buf_request level, because we assume that
if someone is sending the request directly through the client, they know
what they're doing. Also, let unknown methods go through.

This is extracted from #12518 and closes #12755.

Co-authored-by: francisco souza <fsouza@users.noreply.github.com>
2020-10-25 00:28:15 -04:00
a67bcb3fbf vim-patch:8.2.0618: echoing a null list results in no output
Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
Solution:   Return "[]" instead of NULL in echo_string_core().
db950e4c03
2020-10-24 23:30:23 -04:00
8b13ff0d0a vim-patch:8.1.1260: comparing with pointer instead of value
Problem:    Comparing with pointer instead of value.
Solution:   Add a "*". (Ken Takata, closes vim/vim#4336)
e4f5f3aa3d
2020-10-24 23:30:23 -04:00
59a8b7fcd9 vim-patch:8.2.0087: crash in command line expansion when out of memory
Problem:    Crash in command line expansion when out of memory.
Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.
            (Dominique Pelle, closes vim/vim#5437)
61d7c0d52c

N/A patches for version.c:

vim-patch:8.2.1892: valgrind warns for using uninitialized access in tests

Problem:    Valgrind warns for using uninitialized access in tests.
Solution:   Fix condition for breaking out of loop. (Dominique Pellé,
            closes vim/vim#7187)
9c24cd11e2

vim-patch:8.2.1896: valgrind warns for using uninitialized memory

Problem:    Valgrind warns for using uninitialized memory.
Solution:   NUL terminate the SmcOpenConnection() error message. (Dominique
            Pellé, closes vim/vim#7194)
e1be11864d
2020-10-24 23:30:23 -04:00
b59b8dd5b5 options: add fallback value to .indir member (#13150)
Required for patch v8.1.1769.
2020-10-24 22:30:04 -04:00
e37651deb7 Merge pull request #13137 from erw7/fix-pum-pos
Fix popupmenu position issue
2020-10-25 11:01:07 +09:00
a1596f0b0b scroll: use win->w_viewport_invalid 2020-10-24 20:16:58 -04:00
bcf79c62bc tests: add test for Scroll autocmd 2020-10-24 05:48:00 -04:00
ffe1a067df docs: add documentation for Scroll autocmd 2020-10-24 04:57:15 -04:00
d4033db6a0 scroll: cleanup unnecessary code & comments 2020-10-24 04:56:43 -04:00
932585fd91 Merge pull request #13132 from willelz/markdown
runtime: Patch syntax/markdown.vim
2020-10-23 22:11:10 -04:00
2786d96fac Merge pull request #13145 from janlazo/vim-8.2.0901
vim-patch:8.2.{901,912}
2020-10-23 12:29:05 -04:00
78ec28bca8 vim-patch:8.2.0912: a few test cases for CJK formatting are disabled
Problem:    A few test cases for CJK formatting are disabled.
Solution:   Fix the tests and enable them. (closes vim/vim#6212)
11f1ffd182
2020-10-23 08:57:16 -04:00
2894649c2e vim-patch:8.2.0901: formatting CJK text isn't optimal
Problem:    Formatting CJK text isn't optimal.
Solution:   Properly break CJK lines. (closes vim/vim#3875)
e52702f003
2020-10-23 08:57:16 -04:00
9280a69a6d Merge pull request #13131 from janlazo/vim-8.2.0952
vim-patch:8.2.{952,1885,1887}
2020-10-23 08:56:07 -04:00
f5c9065f3e Fix popupmenu position issue 2020-10-23 12:36:32 +09:00
49b8d43052 vim-patch:8.2.1885: filetype tests unnessarily creates swap files
Problem:    Filetype tests unnessarily creates swap files.
Solution:   Disable 'swapfile'. (Ken Takata, closes vim/vim#7183)
2733779a1a

N/A patches for version.c:

vim-patch:8.2.1887: Github actions not optimally configured

Problem:    Github actions not optimally configured.
Solution:   Run CI on any pushed branches. Set fail-fast. (Ozaki Kiichi,
            closes vim/vim#7184)
15ab48f088
2020-10-22 18:27:48 -04:00
d69a8a3fc4 vim-patch:8.2.0952: no simple way to interrupt Vim
Problem:    No simple way to interrupt Vim.
Solution:   Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes,
            closes vim/vim#1718)
be5ee8686a
2020-10-22 18:24:08 -04:00
a83b76790b fixup: fixup: fixup: fixup: 2020-10-22 16:21:35 -04:00
7fca3ddcca fixup: some small nit picks 2020-10-22 16:08:32 -04:00
1afe6dd2f4 fixup: bfredl comments 2020-10-22 16:08:32 -04:00
78556aba7d api: nvim_buf_delete 2020-10-22 16:08:32 -04:00
df726408d7 lsp: Fix "client has shut down" errors during initializing (#13103)
Language servers can already send log messages to the client while the
server is still being initialized.

This currently leads to "client has shut down" messages which are
confusing to the user as the server is properly starting.

To fix this this changes the `get_client_by_id` method to also return a
client if it is still initializing.
2020-10-22 14:59:17 -04:00
634315c6f7 markdown.vim: patch runtime to ade0d3946801
vim/vim@ade0d39468
2020-10-22 15:38:18 +09:00
471e9f53ff markdown.vim: patch runtime/ftplugin to c08ee7476b19
vim/vim@c08ee7476b
2020-10-22 15:37:29 +09:00
78cd1b9f5a Merge pull request #13128 from janlazo/vim-8.2.0268
vim-patch:8.1.1877,8.2.{268,1874,1875,1877,1878,1881,1883}
2020-10-22 00:27:59 -04:00
3f0850e9f0 vim-patch:8.2.1874: can't do something just before leaving Insert mode
Problem:    Can't do something just before leaving Insert mode.
Solution:   Add the InsertLeavePre autocommand event. (closes vim/vim#7177)
b53e13a91a

N/A patches for version.c:

vim-patch:8.1.1877: graduated features scattered

Problem:    Graduated features scattered.
Solution:   Put graduated and obsolete features together.
ffc0716af8

vim-patch:8.2.1875: warning when building GTK gui

Problem:    Warning when building GTK gui.
Solution:   Add missing function parameter.
3da855c8e2

vim-patch:8.2.1877: test for function list fails

Problem:    Test for function list fails.
Solution:   Move "obsolete" comments one line up.
b8f519e538

vim-patch:8.2.1878: GTK: error for redefining function

Problem:    GTK: error for redefining function. (Tony Mechelynck)
Solution:   Remove "gtk_" prefix from local functions and prepend "gui_" to
            global functions.
8a99e66b4f

vim-patch:8.2.1881: cannot build with GTK3

Problem:    Cannot build with GTK3.
Solution:   Adjust form functions.
692d1a51e7

vim-patch:8.2.1883: compiler warnings when using Python

Problem:    Compiler warnings when using Python.
Solution:   Adjust PyCFunction to also have the second argument.  Use "int"
            return type for some functions.  Insert "(void *)" to get rid of
            the remaining warnings.
4ce5fe4c87
2020-10-21 23:36:56 -04:00
07022306e2 vim-patch:8.2.0268: trycatch test fails
Problem:    Trycatch test fails.
Solution:   When calling function fails only check for following command, do
            not give another error.
40d9da2a43
2020-10-21 21:06:52 -04:00
10ac5ada31 Merge pull request #13107 from alexgenco/rubyeval
vim-patch:8.1.1056: no eval function for Ruby
2020-10-21 21:04:49 -04:00
b83d8223ff implement scroll autocommand 2020-10-21 16:18:20 -04:00
da3b59fc8e Install pre-release neovim gem in CI
The `ruby_eval` RPC message will be available in neovim-ruby
0.9.0.pre.*. That will become 0.9.0 once `rubyeval` is merged to neovim.

The `--version` argument isn't needed, as `gem` should pick the latest
release.
2020-10-21 10:20:21 -07:00
ed0a70087a vim-patch:8.1.1056: no eval function for Ruby
Problem:    No eval function for Ruby.
Solution:   Add rubyeval(). (Ozaki Kiichi, closes vim/vim#4152)
e99be0e6d2
2020-10-21 10:20:21 -07:00
0f590ae2a8 Merge pull request #13123 from janlazo/vim-8.2.1871
vim-patch:8.2.{6,1002,1871}

Revert patches 8.1.0877 and 8.1.1015 from #13083.
2020-10-21 08:32:02 -04:00
dff3a0d449 Revert "vim-patch:8.1.0877: new buffer used every time the quickfix window is opened"
This reverts commit e82b8ddef1.

Fix https://github.com/neovim/neovim/issues/13104
2020-10-20 22:07:45 -04:00
7b2fd21560 Revert "vim-patch:8.1.1015: quickfix buffer shows up in list, can't get buffer number"
This reverts commit 4cd69151cf.
2020-10-20 22:07:45 -04:00
87f31b4c86 vim-patch:8.2.0006: test using long file name may fail
Problem:    Test using long file name may fail. (Vladimir Lomov)
Solution:   Limit the name length. (Christian Brabandt, closes vim/vim#5358)
6e43b30a85

N/A patches for version.c:

vim-patch:8.2.1002: test may fail when run directly

Problem:    Test may fail when run directly.
Solution:   Check if g:run_nr exists. (Christian Brabandt, closes vim/vim#6285)
ceb2e77510
2020-10-20 20:43:33 -04:00
5621bc66d6 vim-patch:8.2.1871: using %v in 'errorformat' may fail before %Z
Problem:    Using %v in 'errorformat' may fail before %Z.
Solution:   Set qf_viscol only when qf_col is set. (closes vim/vim#7169)
c95940c06a
2020-10-20 18:03:14 -04:00
77dc891bfb Merge pull request #13125 from bfredl/artifical-ci
docs: update api
2020-10-20 22:02:06 +02:00
18bf216993 docs: update api 2020-10-20 21:57:07 +02:00
75996a2cdd vim-patch:8.2.1804: resolve('/') returns an empty string (#13121)
Problem:    resolve('/') returns an empty string.
Solution:   Don't remove single slash. (closes vim/vim#7074)
50c4e9e08f

Cherry-pick the test rename from Test_resolve() to Test_resolve_unix()
from patch 8.1.0894.

N/A patches for version.c:

vim-patch:8.1.0929: no error when requesting ConPTY but it's not available

Problem:    No error when requesting ConPTY but it's not available.
Solution:   Add an error message. (Hirohito Higashi, closes vim/vim#3967)
5acd987258

vim-patch:8.1.1535: popup select test fails on Mac

Problem:    Popup select test fails on Mac.
Solution:   Skip test if clipboard feature not available.
650a63748c

vim-patch:8.1.1536: popup select test still fails on Mac

Problem:    Popup select test still fails on Mac.
Solution:   Set 'clipboard' to "autoselect"
1755ec4278

vim-patch:8.1.1604: popup window scroll test is flaky

Problem:    Popup window scroll test is flaky.
Solution:   Add a delay between scroll events.
13b47c37a6

vim-patch:8.1.1668: popup window test is a bit flaky on some systems

Problem:    Popup window test is a bit flaky on some systems.
Solution:   Clear the command line. (Naruhiko Nishino, closes vim/vim#4656)
8ccabf624e

vim-patch:8.1.1935: test for text property popup window is flaky

Problem:    Test for text property popup window is flaky.
Solution:   Remove the undo message
57441d6fa0

vim-patch:8.1.2347: MacOS: build fails

Problem:    MacOS: build fails.
Solution:   Don't define _XOPEN_SOURCE for Mac.
84f903326d

vim-patch:8.2.0351: terminal in popup test is still a bit flaky

Problem:    Terminal in popup test is still a bit flaky.
Solution:   Clear and redraw before opening the popup.
3e919d2924

vim-patch:8.2.0752: terminal in popup window test is a bit flaky

Problem:    Terminal in popup window test is a bit flaky.
Solution:   Wait for shell job status to be "run".  Mark as flaky test.
e06a28f5e3

vim-patch:8.2.1087: possible memory leak when file expansion fails

Problem:    Possible memory leak when file expansion fails.
Solution:   Clear the grow array when returning FAIL.  Use an error message
            instead of an empty string.
566cc8c72b

vim-patch:8.2.1863: json code not sufficiently tested

Problem:    Json code not sufficiently tested.
Solution:   Add more test cases. (Dominique Pellé, closes vim/vim#7166)
e3c65ce4e5
2020-10-20 09:29:34 -04:00
38efa1730f Merge pull request #13118 from bfredl/mudholland
A Mudholland Dr. Recast
2020-10-19 23:14:55 +02:00
07cc231142 A Mudholland Dr. Recast
The commit summary maybe does not make sense, but calling a function
that does not wait on anything `wait()` makes even less sense.
2020-10-19 21:48:06 +02:00
eaee3d9297 Merge pull request #13111 from janlazo/vim-8.2.0862
vim-patch:8.2.{862,943,1547}
2020-10-18 13:39:22 -04:00
ce99d049e7 vim-patch:8.2.1547: various comment problems
Problem:    Various comment problems.
Solution:   Update comments.
02c037a4be
2020-10-18 12:25:48 -04:00
54d07b648c vim-patch:8.2.0943: displaying ^M or ^J depends on current buffer
Problem:    Displaying ^M or ^J depends on current buffer.
Solution:   Pass the displayed buffer to transchar(). (closes vim/vim#6225)
32ee627750

N/A patches for version.c:

vim-patch:8.2.0862: ":term ++curwin" makes the current buffer hidden

Problem:    ":term ++curwin" makes the current buffer hidden. (Harm te
            Hennepe)
Solution:   Do not hide the current buffer. (closes vim/vim#6170)
b10090928c
2020-10-18 01:24:02 -04:00
9817d99140 Merge pull request #13043 from tkuneck/fix-min-float-win-size
[RDY] Opts.wrap_at is sometimes a bool, ensure it falls back to a valid num…
2020-10-17 22:30:01 -04:00
e744631647 Merge pull request #13100 from janlazo/vim-8.1.2141
vim-patch:8.1.{2141,2419}
2020-10-17 21:48:51 -04:00
0ad5b34170 Merge pull request #12053 from tjdevries/tjdevries/nicer_validate
vim.validate(): include stacktrace in message
2020-10-17 16:47:18 -04:00
bd80671786 Merge pull request #13101 from skippi/vim-8.2.0868
vim-patch:8.2.0868
2020-10-17 16:01:22 -04:00
b5cd052037 Merge pull request #13106 from janlazo/vim-8.2.1856
vim-patch:8.1.1795,8.2.1856
2020-10-17 15:10:15 -04:00
8c9d9fa304 vim-patch:8.2.0868: trim() always trims both ends
Problem:    trim() always trims both ends.
Solution:   Add an argument to only trim the beginning or end. (Yegappan
            Lakshmanan, closes vim/vim#6126)
2245ae18e3
2020-10-17 14:07:35 -05:00
242af4dc99 vim-patch:8.1.1795: no syntax HL after splitting windows with :bufdo
Problem:    No syntax HL after splitting windows with :bufdo. (Yasuhiro
            Matsumoto)
Solution:   Trigger Syntax autocommands in buffers that are active.
            (closes vim/vim#4761)
c7f1e40021
2020-10-17 13:48:52 -04:00
e1ec2b0729 vim-patch:8.2.1856: "2resize" uses size of current window
Problem:    "2resize" uses size of current window.
Solution:   Use size of resized window. (Yasuhiro Matsumoto, closes vim/vim#7152)
9668cc57a1
2020-10-17 12:33:36 -04:00
c8ce098e71 Merge pull request #13105 from janlazo/vim-8.2.0728
vim-patch:8.2.{444,778,1219,1384,1557}
2020-10-17 12:24:52 -04:00
b9fe30cac2 vim-patch:8.2.1557: crash in :vimgrep when started as "vim -n"
Problem:    Crash in :vimgrep when started as "vim -n". (Raul Segura)
Solution:   Check mfp pointer. (Yegappan Lakshmanan, closes vim/vim#6827)
997cd1a17f
2020-10-17 11:09:35 -04:00
afd4888c6a vim-patch:8.2.1384: no ATTENTION prompt for :vimgrep first match file
Problem:    No ATTENTION prompt for :vimgrep first match file.
Solution:   When there is an existing swap file do not keep the dummy buffer.
            (closes vim/vim#6649)
8ce4b7ed85
2020-10-17 11:02:21 -04:00
a2e1bcd176 vim-patch:8.2.1219: symlink not followed if dirname ends in //
Problem:    Symlink not followed if dirname ends in //.
Solution:   Resolve symlink earlier. (Tomáš Janoušek, closes vim/vim#6454)
5966ea105e
2020-10-17 02:23:03 -04:00
1d736a1ae2 vim-patch:8.2.0444: swap file test fails on some systems
Problem:    Swap file test fails on some systems.
Solution:   Preserve the swap file. Send NL terminated keys.
d36ef573b2

Cherry-pick Test_swap_prompt_splitwin() from patch 8.2.0301.
2020-10-16 23:01:29 -04:00
96a555346b vim-patch:8.2.0728: messages about a deadly signal are not left aligned
Problem:    Messages about a deadly signal are not left aligned.
Solution:   Output a CR before the NL. (Dominique Pelle, vim/vim#6055)
69212b11d1
2020-10-16 22:44:07 -04:00
306d96cd10 vim-patch:8.1.2419: with a long file name the hit-enter prompt appears
Problem:    With a long file name the hit-enter prompt appears. (J. Lewis
            Muir)
Solution:   When checking for text to wrap don't do this when outputing a CR.
0efd1bdcf4
2020-10-16 21:56:55 -04:00
288f7f8558 Merge pull request #13030 from Happy-Dude/quickfix_warning
Fix quickfix.c warning message on EMSGN macro #hacktoberfest
2020-10-16 21:51:50 -04:00
c4cbf16c91 vim-patch:8.1.2141: :tselect has an extra hit-enter prompt
Problem:    :tselect has an extra hit-enter prompt.
Solution:   Do not set need_wait_return when only moving the cursor.
            (closes vim/vim#5040)
e8070987c6
2020-10-16 20:19:24 -04:00
0af18a6a43 Merge pull request #13097 from janlazo/vim-8.2.1850
vim-patch:8.2.1850

scripts/vim-patch.sh: include --shortstat with -m
2020-10-16 10:33:57 -04:00
074745d924 Fix shellcheck error SC2155
Close https://github.com/neovim/neovim/pull/11765
2020-10-15 22:51:19 -04:00
82b09bc9d2 scripts/vim-patch.sh: include --shortstat with -m 2020-10-15 22:51:19 -04:00
f319e4608e vim-patch:8.2.1850: "vat" does not select tags correctly over line break
Problem:    "vat" does not select tags correctly over line break.
Solution:   Adjust the search pattern. (Aufar Gilbran, closes vim/vim#7136)
a604ccc959

Use 'const char*' for spat,mpat,epat params of do_searchpair()
to reduce (char_u *) casts.

Cherry-pick Test_string_html_objects() changes from patch 8.2.0655.
2020-10-15 22:51:10 -04:00
3566244d0e gen_ex_cmds: simplify writes to defsfile (#13096)
defsfile:write() is executed multiple times to append strings.
Some of these can be combined into a format string, wrapped in [[]].
It is easier to read and insert strings via "%s".

defsfile now has a trailing comma for "cmdnames" array
but it does not break the build.
2020-10-15 19:07:54 -04:00
4b00916e94 Merge pull request #13092 from janlazo/vim-8.1.1403
vim-patch:8.1.{95,103,221,269,975,978,1403,1569,1856,1983,2014,2365,2406},8.2.{573,616,710,957,1020,1036,1038,1743,1842,1843}
2020-10-14 22:56:32 -04:00
3183b09a5e vim-patch:8.1.0269: Ruby Kernel.#p method always returns nil
Problem:    Ruby Kernel.#p method always returns nil.
Solution:   Copy p method implementation from Ruby code. (Masataka Pocke
            Kuwabara, closes vim/vim#3315)
51e9fbf1c7
2020-10-14 22:00:40 -04:00
4543af9d53 vim-patch:8.1.0221: not enough testing for the Ruby interface
Problem:    Not enough testing for the Ruby interface.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#3252)
edd6aacb01

Modified some tests to make them pass for Neovim.
Some tests will always fail because +ruby is externalized in Neovim.
Skip failing ruby tests for now.
2020-10-14 22:00:40 -04:00
e396eb549e vim-patch:8.1.0978: blob not tested with Perl
Problem:    Blob not tested with Perl.
Solution:   Add more test coverage.  Fixes a crash. (Dominique Pelle,
            closes vim/vim#4037)
2472ae81df

This commit is only to match test_perl.vim from Vim 8.1.0978
so that test_perl.vim patches are easier to port.
2020-10-14 08:54:01 -04:00
3d2cd64744 vim-patch:8.2.0710: Netbeans test sometimes fails
Problem:    Netbeans test sometimes fails.
Solution:   Mark any test using an external command as flaky.
4a070cc82e
2020-10-14 08:54:01 -04:00
bddd67a331 vim-patch:8.1.0095: dialog for ":browse tabnew" says "new window"
Problem:    Dialog for ":browse tabnew" says "new window".
Solution:   Use "new tab page". (closes vim/vim#3053)
39902a06d9
2020-10-14 08:54:00 -04:00
b946bcbc3b vim-patch:8.2.1842: crash when USE_FNAME_CASE is defined and using :browse
Problem:    Crash when USE_FNAME_CASE is defined and using :browse.
Solution:   Don't use read-only memory for ".". (Yegappan Lakshmanan,
            closes vim/vim#7123)
21cbe175ee
2020-10-14 08:54:00 -04:00
01dff1fbfb vim-patch:8.2.0957: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize one variable.
2d4070d3b0
2020-10-14 08:54:00 -04:00
32baed519c vim-patch:8.2.0573: using :version twice leaks memory
Problem:    using :version twice leaks memory
Solution:   Only initialize variables once. (Dominique Pelle, closes vim/vim#5917)
278e83863b

Cherry-pick test_alot.vim change from patch v8.2.0164
so that test_expr.vim and test_version.vim do not conflict.
Cherry-pick modeline from patch v8.2.1432.

N/A patches for version.c:

vim-patch:8.1.0103: long version string cannot be translated

Problem:    Long version string cannot be translated.
Solution:   Build the string in init_longVersion().
35fb6fbf72

vim-patch:8.1.0975: using STRNCPY() wrongly. Warning for uninitialized variable

Problem:    Using STRNCPY() wrongly. Warning for uninitialized variable.
Solution:   Use mch_memmove(). Initialize variable. (Yasuhiro Matsumoto,
            closes vim/vim#3979)
c666388367

vim-patch:8.1.1403: cannot build without the timer feature

Problem:    Cannot build without the timer feature.
Solution:   Add #ifdef.
35d5af6c0b

vim-patch:8.1.1569: cannot build with signs but without diff feature

Problem:    Cannot build with signs but without diff feature.
Solution:   Move #ifdef. (Tom Ryder)
bf8c3adef2

vim-patch:8.1.1856: popup preview test fails sometimes

Problem:    popup preview test fails sometimes. (Christian Brabandt)
Solution:   Clear the command line.
78d629a385

vim-patch:8.1.1983: compiler nags for uninitialized variable and unused function

Problem:    Compiler nags for uninitialized variable and unused function.
Solution:   Add unnecessary initialization.  Move function inside #ifdef.
ea781459b9

vim-patch:8.1.2014: terminal altscreen test fails sometimes

Problem:    Terminal altscreen test fails sometimes.
Solution:   Use WaitFor().
b9c79cf5cc

vim-patch:8.1.2365: missing tests for recent popupwin changes

Problem:    Missing tests for recent popupwin changes.
Solution:   Add test cases.
20ebbeac46

vim-patch:8.1.2406: leaking memory in test_paste and test_registers

Problem:    Leaking memory in test_paste and test_registers.
Solution:   Free the old title.  Don't copy expr_line.
6b649ac4fd

vim-patch:8.2.0616: build error when disabling the diff feature

Problem:    Build error when disabling the diff feature.
Solution:   Move parenthesis outside of #ifdef. (Tom Ryder)
e770598f31

vim-patch:8.2.1020: popupwin test fails in the GUI

Problem:    Popupwin test fails in the GUI.
Solution:   Send GUI byte sequence for <C-S-a>.
b326edf5b3

vim-patch:8.2.1036: popupwin test fails sometimes

Problem:    Popupwin test fails sometimes.
Solution:   Use WaitForAssert() instead of a sleep.
373c65104e

vim-patch:8.2.1038: popupwin test fails

Problem:    Popupwin test fails.
Solution:   Fix WaitForAssert() argument.
b2b218d89b

vim-patch:8.2.1743: cannot build without the eval feature

Problem:    Cannot build without the eval feature.
Solution:   Move shorten_dir outside of #ifdef.
273af497ca

vim-patch:8.2.1843: Netbeans: with huge buffer number memory allocation may fail

Problem:    Netbeans: with huge buffer number memory allocation may fail.
Solution:   Check for size overflow.
b9616af23f
2020-10-14 08:52:45 -04:00
2e70fee1e9 tui: fix problem with uv_tty_set_mode failing due to signal
fixes #12322.
2020-10-13 11:44:15 +09:00
759a05407f Merge pull request #12953 from vigoux/tshl-custom-parser
treesitter: various improvements to prepare for language injection
2020-10-13 00:08:16 +02:00
95238598e4 treesitter: allow multiple highlighters per buffer 2020-10-12 18:23:14 +02:00
bdbc56f931 treesitter: allow custom parser for highlighter
Also allow to get parser ranges.

This will be useful for language injection, allowing us to tweak the
parser's ranges on the fly.

Update runtime/lua/vim/treesitter.lua

Co-authored-by: Paul Burlumi <paul@burlumi.com>
2020-10-12 18:23:14 +02:00
d198aa511a Merge pull request #13059 from vigoux/ts-runtime-queries
treesitter: runtime queries
2020-10-12 11:57:09 +02:00
1709210a53 Fix multiple typos (#13063)
* Fix multiple typos in `src/nvim/api/ui_events.in.h`
* Below spellings are corrected:
  * Definitions
  * Revision
  * Performance

* Typo fix `presense` should be presence

* Typo fix, follwed -> followed

* Typo fix, attemping -> attempting

* Typo fix, duplicate 'the'

* Typo fix, bounaries -> boundaries

* Revert "Typo fix, bounaries -> boundaries"

This reverts commit 24779e55e596f7534585938a7e532830ad2fa83c.

* Revert "Typo fix, duplicate 'the'"

This reverts commit 1d41d74f78736e67821a15edc9c174a2c3024f87.

* Revert "Typo fix, attemping -> attempting"

This reverts commit d8b2860dfcac366af7afae1f09946ed0aee4a34e.
2020-10-12 09:28:12 +02:00
3dffa2cc42 Merge pull request #13088 from janlazo/vim-8.2.1834
vim-patch:8.2.{1834,1837}
2020-10-12 00:41:12 -04:00
aa930196a7 vim-patch:8.2.1837: using "gn" after "gN" does not work
Problem:    Using "gn" after "gN" does not work.
Solution:   Extend the other end of the Visual area. (closes vim/vim#7109)
c07b7f701f

N/A patches for version.c:

vim-patch:8.2.1834: PyEval_InitThreads() is deprecated in Python 3.9

Problem:    PyEval_InitThreads() is deprecated in Python 3.9.
Solution:   Do not call PyEval_InitThreads in Python 3.9 and later. (Ken
            Takata, closes vim/vim#7113)  Avoid warnings for functions.
efc0d94afc
2020-10-11 22:29:58 -04:00
3a597cb1a0 tui: fix problem that TTY does not go into raw mode
fixes #13073.
2020-10-12 10:11:47 +09:00
d3f544002c treesitter: runtime queries
Runtime queries just work like ftplugins, that is:

- Queries in the `after` directory are sourced _after_ the "base" query
- Otherwise, the last define query takes precedence.

Queries can be found in the `queries` directory.

Update runtime/lua/vim/treesitter/query.lua

Co-authored-by: Paul Burlumi <paul@burlumi.com>
2020-10-11 21:18:28 +02:00
ac5af6051b Merge pull request #11318 from janlazo/vim-8.1.1201
vim-patch:8.1.{560,1204,1206}
2020-10-11 13:46:23 -04:00
8f03d1e431 test/old: skip Test_addr_all() for now
It needs patch v8.1.0341 to pass.
Patch v8.1.0341 fails Test_nocatch_wipe_all_buffers().
2020-10-11 12:25:45 -04:00
41cfdba22b vim-patch:8.1.1206: user command parsing and listing not properly tested
Problem:    User command parsing and listing not properly tested.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#4296)
d1f90bbcab
2020-10-11 11:53:41 -04:00
ff104e197d vim-patch:8.1.1204: output of :command with address completion is not nice
Problem:    Output of :command with address completion is not nice.
Solution:   Shorten the address completion names.
a561a41a70
2020-10-11 11:53:40 -04:00
e8c2a8269e vim-patch:8.1.0560: cannot use address type "other" with with user command
Problem:    Cannot use address type "other" with with user command.
Solution:   Add "other" to the list. (Daniel Hahler, closes vim/vim#3655)  Also
            reject "%" for commands with "other".  Add some more tests.
51a7454cd2
2020-10-11 11:53:40 -04:00
b9776ff5b7 Merge pull request #13083 from janlazo/vim-8.1.1281
vim-patch:8.1.{523,720,877,988,1015,1036},8.2.{1101,1820,1823,1829,1830,1831}
2020-10-11 11:17:22 -04:00
2f9252304c vim-patch:8.2.1823: "gN" does not select the matched string
Problem:    "gN" does not select the matched string.
Solution:   Move the cursor to the start of the match.
28f224b2c1

N/A patches for version.c:

vim-patch:8.2.1820: Vim9: crash when error happens in timer callback

Problem:    Vim9: crash when error happens in timer callback.
Solution:   Check that current_exception is not NULL. (closes vim/vim#7100)
820d55a50b

vim-patch:8.2.1829: warnings when executing Github actions

Problem:    Warnings when executing Github actions.
Solution:   Use another method to set environment variables. (Ken Takata,
            closes vim/vim#7107)
bd6428b9e7

vim-patch:8.2.1830: MS-Windows: Python3 issue with stdin

Problem:    MS-Windows: Python3 issue with stdin.
Solution:   Check if stdin is readable. (Ken Takata, closes vim/vim#7106)
c6ed254d9f

vim-patch:8.2.1831: file missing from distribution

Problem:    File missing from distribution.
Solution:   Add the github code analyses file.
ef16c90423
2020-10-11 09:18:02 -04:00
4a54472098 vim-patch:8.2.1101: no error when using wrong arguments for setqflist()
Problem:    No error when using wrong arguments for setqflist() or
            setloclist().
Solution:   Check for the error.
be7a50c22f
2020-10-11 01:24:54 -04:00
bdd0c31fb0 vim-patch:8.1.1036: quickfix function arguments are inconsistent
Problem:    Quickfix function arguments are inconsistent.
Solution:   Pass a list pointer to more functions. (Yegappan Lakshmanan,
            closes vim/vim#4149)
9afe5e9cc0
2020-10-10 23:56:09 -04:00
4cd69151cf vim-patch:8.1.1015: quickfix buffer shows up in list, can't get buffer number
Problem:    Quickfix buffer shows up in list, can't get buffer number.
Solution:   Make the quickfix buffer unlisted when the quickfix window is
            closed.  get the quickfix buffer number with getqflist().
            (Yegappan Lakshmanan, closes vim/vim#4113)
647e24ba3d
2020-10-10 22:58:39 -04:00
9606317486 vim-patch:8.1.0988: deleting location list buffer breaks location list window
Problem:    Deleting a location list buffer breaks location list window
            functionality.
Solution:   (Yegappan Lakshmanan, closes vim/vim#4056)
d82a81cad9

Cherry-pick Xqbuf_test() changes from patch 8.1.0892.
Patch 8.1.0892 triggers a memory leak.
2020-10-10 22:04:25 -04:00
e82b8ddef1 vim-patch:8.1.0877: new buffer used every time the quickfix window is opened
Problem:    New buffer used every time the quickfix window is opened.
Solution:   Reuse the buffer. (Yegappan Lakshmanan, closes vim/vim#3902)
ee8188fc74
2020-10-10 20:20:56 -04:00
e9004e2af0 vim-patch:8.1.0720: cannot easily change the current quickfx list index
Problem:    Cannot easily change the current quickfx list index.
Solution:   Add the "idx" argument to setqflist(). (Yegappan Lakshmanan,
            closes vim/vim#3701)
5b69c22fd2
2020-10-10 15:28:07 -04:00
0e056d4a06 vim-patch:8.1.0523: opening window from quickfix leaves empty buffer behind
Problem:    Opening window from quickfix leaves empty buffer behind.
Solution:   Add qf_jump_newwin(). (Yegappan Lakshmanan, closes vim/vim#2574)
b244373bec

Close https://github.com/neovim/neovim/pull/12855
2020-10-10 15:28:06 -04:00
f7cc3ae0b7 Merge pull request #13038 from bfredl/multiluahl
api: multiple decoration providers at once
2020-10-10 18:31:46 +02:00
6bf414c0d7 whine 2020-10-10 18:27:01 +02:00
81c508cf61 screen: untangle static and dynamic decorations 2020-10-10 17:54:46 +02:00
405044a412 Merge pull request #12904 from erw7/vim-8.1.0431
vim-patch:8.{1.0431,1.0489,2.1677}
2020-10-10 10:31:02 -04:00
88e6e7e08c because reasons (undefined behavior) 2020-10-10 16:00:20 +02:00
0b615dae07 api: multiple decoration providers at once 2020-10-10 15:16:45 +02:00
11ec53e558 Merge pull request #13081 from bfredl/usdt2
basic support for usdt probes
2020-10-10 14:49:11 +02:00
d4fc7b25e8 basic support for usdt probes 2020-10-10 09:52:12 +02:00
ce5a260c9e Merge pull request #13075 from vigoux/ts-check-parser-version
treesitter: check language ABI version on load
2020-10-09 11:22:22 +02:00
15ad7c0d27 Merge pull request #13074 from janlazo/vim-8.1.1717
vim-patch:8.1.{746,1717,2294,2303,2405},8.2.0007
2020-10-08 20:32:13 -04:00
2bfe2018d6 vim-patch:8.2.0007: popup menu positioned wrong with folding in two tabs
Problem:    Popup menu positioned wrong with folding in two tabs.
Solution:   Update the cursor line height. (closes vim/vim#5353)
09dd2bb336
2020-10-08 19:04:51 -04:00
56bb5993d9 vim-patch:8.1.2405: matchadd_conceal test fails under valgrind
Problem:    matchadd_conceal test fails under valgrind.
Solution:   Use WaitForAssert() and wait a bit longer.
1f9a028def
2020-10-08 18:31:46 -04:00
818e794f12 vim-patch:8.1.2303: cursor in wrong position after horizontal scroll
Problem:    Cursor in wrong position after horizontal scroll.
Solution:   Set w_valid_leftcol.  (closes vim/vim#5214, closes vim/vim#5224)
08f23636ae
2020-10-08 18:31:46 -04:00
910bbc3cca vim-patch:8.1.2294: cursor pos wrong with concealing and search causes a scroll
Problem:    Cursor position wrong when characters are concealed and asearch
            causes a scroll.
Solution:   Fix the cursor column in a concealed line after window scroll.
            (closes vim/vim#5215, closes vim/vim#5012)
cbee635eee
2020-10-08 18:31:46 -04:00
d5bc62a5ce vim-patch:8.1.1717: last char in menu popup window highlighted
Problem:    Last char in menu popup window highlighted.
Solution:   Do not highlight an extra character twice.
f914a33c9c

N/A patches for version.c:

vim-patch:8.1.0746: highlighting not updated with conceal and 'cursorline'

Problem:    Highlighting not updated with conceal and 'cursorline'. (Jason
            Franklin)
Solution:   Do not use a zero line number.  Check if 'conceallevel' is set for
            the current window.
bbee8d5122
2020-10-08 18:31:46 -04:00
6f6c55717a treesitter: check language ABI version on load
This is will avoid some issues at runtime.
2020-10-08 21:31:09 +02:00
ca6815115c provider: update supported Python versions (#13070)
Python 3.9 was released, so we need to add support for the upcoming Python 3.10.
Python 3.5 and earlier reached their end-of-life.

PEP 478: Python 3.5  Release Schedule: https://www.python.org/dev/peps/pep-0478
PEP 596: Python 3.9  Release Schedule: https://www.python.org/dev/peps/pep-0596
PEP 619: Python 3.10 Release Schedule: https://www.python.org/dev/peps/pep-0619
2020-10-08 11:52:17 +02:00
3ea5df0f04 Merge pull request #13029 from aufarg/vim-8.2.1345
[RDY] vim-patch:8.2.{1345,1488}
2020-10-07 19:52:40 -04:00
8ba5f4d19c Merge pull request #13064 from janlazo/vim-8.1.2325
vim-patch:8.1.{1683,1686,1692,1705,2325},8.2.1599
2020-10-07 17:58:38 -04:00
a893593a9f vim-patch:8.2.1488: text does not scroll when inserting above first line
Problem:    Text does not scroll when inserting above first line.
Solution:   Adjust off-by-one error. (Ken Takata, closes vim/vim#6739)
9dc1917f42
2020-10-07 23:41:50 +08:00
e852bad3a7 vim-patch:8.2.1345: Redraw error when using visual block and scroll
Problem:    Redraw error when using visual block and scroll.
Solution:   Add check for w_topline. ( closes vim/vim#6597)
f8992d47cd
2020-10-07 23:41:38 +08:00
670a577c6b vim-patch:8.2.1599: missing line end when skipping a long line with :cgetfile
Problem:    Missing line end when skipping a long line with :cgetfile.
Solution:   Fix off-by-one error. (closes vim/vim#6870)
59941cbd80
2020-10-07 01:37:50 -04:00
4a6e201e37 vim-patch:8.1.1705: using ~{} for a literal dict is not nice
Problem:    Using ~{} for a literal dict is not nice.
Solution:   Use #{} instead.
4c6d90458b
2020-10-07 01:03:48 -04:00
20fc7ef161 vim-patch:8.1.1692: using *{} for literal dict is not backwards compatible
Problem:    Using *{} for literal dict is not backwards compatible. (Yasuhiro
            Matsumoto)
Solution:   Use ~{} instead.
b8be54dcc5
2020-10-07 00:56:38 -04:00
d109a33144 vim-patch:8.1.1686: "*" of "*{" is recognized as multipy operator
Problem:    "*" of "*{" is recognized as multipy operator. (Yasuhiro Matsumoto)
Solution:   Check for the "{".
2898ebb44c
2020-10-07 00:44:53 -04:00
7ca5dc2519 vim-patch:8.1.1683: dictionary with string keys is longer than needed
Problem:    Dictionary with string keys is longer than needed.
Solution:   Use *{key: val} for literaly keys.
d5abb4c877

Vim's popup,textprop features are N/A.
Neovim has not polyfilled their APIs.
Skip docs and tests for these features.
2020-10-07 00:36:48 -04:00
fa1e740e60 vim-patch:8.1.2325: crash when using balloon with empty line
Problem:    Crash when using balloon with empty line.
Solution:   Handle empty lines. (Markus Braun)
9ae862ebba

Port Test_balloon_split() from patch 8.0.1318 for merging only.
It won't run because of the function check.
2020-10-06 23:48:15 -04:00
a260d5def3 Merge pull request #13060 from janlazo/vim-8.1.2310
vim-patch:8.1.{1619,1771,1624,2274,2310,2401},8.2.{554,1806}
2020-10-06 19:09:48 -04:00
7454b11ec1 vim-patch:8.1.1624: when testing in the GUI may try to run gvim in a terminal
Problem:    When testing in the GUI may try to run gvim in a terminal.
Solution:   Add the -v argument. (Yee Cheng Chin, closes vim/vim#4605)  Don't skip
            tests that work now.
0d702028fe
2020-10-06 17:57:05 -04:00
dfd1c6c417 vim-patch:8.1.1619: tests are not run with GUI on Travis
Problem:    Tests are not run with GUI on Travis.
Solution:   Add a testgui job. (Ozaki Kiichi, closes vim/vim#4609)
435f9f06ca

N/A patches for version.c:

vim-patch:8.1.1771: options test fails on MS-Windows

Problem:    Options test fails on MS-Windows.
Solution:   Add correct and incorrect values for 'completeslash'.
d4404b4391

vim-patch:8.1.2274: newlines in 'balloonexpr' result only work in the GUI

Problem:    Newlines in 'balloonexpr' result only work in the GUI.
Solution:   Also recognize newlines in the terminal. (closes vim/vim#5193)
d1c1c82389

vim-patch:8.2.0554: the GUI doesn't set t_Co

Problem:    The GUI doesn't set t_Co.
Solution:   In the GUI set t_Co to 256 * 256 * 256. (closes vim/vim#5903)
acc770a10f

vim-patch:8.2.1806: MS-Windows with Python: Vim freezes after import command

Problem:    MS-Windows with Python: Vim freezes after import command.
Solution:   Use either "NUL" or "CONIN$" when reopening stdin. (Yasuhiro
            Matsumoto, closes vim/vim#7083)
253b16a4ab
2020-10-06 17:56:41 -04:00
779b188db6 vim-patch:8.1.2401: :cexpr does not handle | in expression
Problem:    :cexpr does not handle | in expression.
Solution:   Remove EX_TRLBAR and set nextcmd pointer.
88a3e2b2ac
2020-10-06 17:45:19 -04:00
3ad6fb804f vim-patch:8.1.2310: no proper test for directory changes in quickfix
Problem:    No proper test for directory changes in quickfix.
Solution:   Add a test that uses multiple directories. (Yegappan Lakshmanan,
            closes vim/vim#5230)
d8a8c4ca08
2020-10-06 17:45:18 -04:00
7b89353985 lua: vim.wait allows control of fast events (#13053)
* lua: vim.wait allows control of fast events

* fixup: remove requirement of function for easier waiting

* fixup: lint

* fixup: bfredl comments
2020-10-06 12:58:05 -04:00
07fde6c394 Merge pull request #13037 from janlazo/runtime-typescript
runtime: sync typescript runtime files with Vim
2020-10-06 09:03:21 -04:00
753a86c01a Merge pull request #13054 from erw7/fix-msg-is-a-directory-on-Windows
fileio: fix "is a directory" warning on Windows
2020-10-06 09:20:28 +02:00
3cc1b5c5b9 runtime/typescript: 3d1cde8a2f28dce2c82d2b2b4c5e35e6662030e0
Port typescript ftplugin and compiler files only.

3d1cde8a2f
2020-10-05 23:24:43 -04:00
95fd5ed8c9 runtime/typescript: 91359014b359cf816bf943fe2c7d492996263def
Port typescript syntax changes only.

91359014b3
2020-10-05 23:20:45 -04:00
0f1d679531 runtime/typescript: 09c6f265b21065ffa9437837b1d0955137175e45
Port typescript syntax files only.
Close https://github.com/neovim/neovim/issues/12125

09c6f265b2
2020-10-05 23:20:45 -04:00
8810973da4 runtime/typescript.vim: 96f45c0b6fc9e9d404e6805593ed1e0e6795e470
Port "runtime/indent/typescript.vim" changes only.
Close https://github.com/neovim/neovim/pull/12716.

96f45c0b6f
2020-10-05 23:20:45 -04:00
27b811dc1f Merge pull request #13042 from godlygeek/unmapped_meta_is_esc
Treat unmapped ALT/META as ESC+c in all modes

Closes #7972
2020-10-05 22:07:52 -04:00
c043e806a5 fileio: fix "is a directory" warning on Windows
The porting of vim/vim@c8fe645 by #13040 on Windows was incomplete.
This fixes that and makes the "is a directory" warning appear properly
on Windows as well.
2020-10-06 10:31:50 +09:00
f8a5b4bdce Merge pull request #13039 from janlazo/vim-8.2.1790
vim-patch:8.1.{1812,2024,2239,2242,2247,2249,2253},8.2.{354,603,609,665,1570,1790,1792,1801}
2020-10-05 20:31:19 -04:00
c76fc7942b Merge pull request #13040 from Shougo/vim-8.2.1793
[RDY] vim-patch:8.2.1793: not consistently giving the "is a directory" warning
2020-10-05 20:28:55 -04:00
0f078bdde8 vim-patch:8.2.1793: not consistently giving the "is a directory" warning
Problem:    Not consistently giving the "is a directory" warning.
Solution:   Adjust check for illegal file name and directory. (Yasuhiro
            Matsumoto, closes vim/vim#7067)
c8fe645c19
2020-10-06 08:21:51 +09:00
674844086b vim-patch:8.2.1801: undo file not found when using ":args" or ":next"
Problem:    Undo file not found when using ":args" or ":next".
Solution:   Handle like editing another file. (closes vim/vim#7072)
55b419b871
2020-10-05 18:18:14 -04:00
b35b7222ee vim-patch:8.1.2024: delete call commented out for debugging
Problem:    Delete call commented out for debugging.
Solution:   Restore the delete call. (Christian Brabandt)
9283f92008
2020-10-05 18:18:14 -04:00
8bd38863e6 vim-patch:8.1.1812: reading a truncted undo file hangs Vim
Problem:    Reading a truncted undo file hangs Vim.
Solution:   Check for reading EOF. (closes vim/vim#4769)
fb06d767a8
2020-10-05 18:18:14 -04:00
da5bd45e5a vim-patch:8.2.0665: wrongly assuming Python executable is called "python"
Problem:    Wrongly assuming Python executable is called "python".
Solution:   Use detected python command. (Ken Takata, closes vim/vim#6016)
            Also use CheckFunction if possible.
a161cb5ddd

CheckPython() is used only in test_terminal.vim as of patch 8.2.1794.
test_terminal.vim is no-opt in Neovim.
I ported it only for merging Vim patches.

N/A patches for version.c:

vim-patch:8.1.2239: CI fails when running tests without building Vim

Problem:    CI fails when running tests without building Vim.
Solution:   Skip creating doc tags if the execute does not exist.
1a577433ac

vim-patch:8.1.2242: creating docs tags uses user preferences

Problem:    Creating docs tags uses user preferences. (Tony Mechelynck)
Solution:   Add "--clean".
70def98a95

vim-patch:8.1.2247: "make vimtags" does not work in runtime/doc

Problem:    "make vimtags" does not work in runtime/doc.
Solution:   Test existence with "which" instead of "test -x". (Ken Takata)
e890b9f5dd

vim-patch:8.1.2249: "make vimtags" does not print any message

Problem:    "make vimtags" does not print any message.
Solution:   Add a message that the tags have been updated.
d047840ce4

vim-patch:8.1.2253: using "which" to check for an executable is not reliable

Problem:    Using "which" to check for an executable is not reliable.
Solution:   Use "command -v" instead.  Also exit with error code when
            generating tags has an error. (closes vim/vim#5174)
ad4de52510

vim-patch:8.2.0354: Python 3.9 does not define _Py_DEC_REFTOTAL

Problem:    Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal)
Solution:   Remove it, it was only for debugging.
a65bb53514

vim-patch:8.2.0603: configure does not detect moonjit

Problem:    Configure does not detect moonjit.
Solution:   Add check for moonjit. (Shlomi Fish, closes vim/vim#5947)
f49e564082

vim-patch:8.2.0609: configure does not detect moonjit correctly

Problem:    Configure does not detect moonjit correctly.
Solution:   Double the brackets. (Ozaki Kiichi)
ad4dc83389

vim-patch:8.2.1570: configure check for dirfd() does not work on HPUX

Problem:    Configure check for dirfd() does not work on HPUX. (Michael Osipov)
Solution:   Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes vim/vim#6838)
9d8bfae50f

vim-patch:8.2.1790: MS-Windows with Python: crash when executed from Vifm

Problem:    MS-Windows with Python: crash when executed from Vifm.
Solution:   Use NUL instead of CONIN. (Ken Takata, closes vim/vim#7061, closes vim/vim#7053)
794771cfd8

vim-patch:8.2.1792: Configure does not recognize Racket 6.1+

Problem:    Configure does not recognize Racket 6.1+.
Solution:   Add a check for "rktio". (closes vim/vim#7062)
588d241d44
2020-10-05 18:17:45 -04:00
2f06413dfb Treat unmapped ALT/META as ESC+c in all modes
In #8226 <A-x> and <M-x> were changed to behave like <Esc>x in insert
mode when no mapping exists. This commit backs out that change and
replaces it with a more general one that makes unmapped ALT and META
keypresses as <Esc>+char in all modes. This fixes an unnecessary and
confusing inconsistency between modes.
2020-10-05 15:27:04 -04:00
8e77d70e29 test/vim.validate(): assert normalized stacktrace
- The previous commit lost information in the tests. Instead, add some
  more "normalization" substitutions in pcall_err(), so that the general
  shape of the stacktrace is included in the asserted text.
- Eliminate contains(), it is redundant with matches()
2020-10-05 09:47:59 -04:00
aad7a74053 vim.validate(): include stacktrace in message 2020-10-05 09:47:59 -04:00
e3afb30e69 Merge pull request #13045 from jamessan/unicode-13 2020-10-05 06:40:29 -04:00
7996d9ece1 Merge pull request #13023 from G-flat/pvs-v1001
[RDY] PVS/V1001: Remove assignment to unused variable
2020-10-05 12:31:33 +02:00
8972eea2e1 PVS/V1001: Remove assignment to unused variable 2020-10-05 15:17:14 +08:00
b0769729c8 Merge pull request #1 from neovim/master
rebase
2020-10-05 15:15:10 +08:00
1d08dfab5b PVS/V1001: Prepare for rebase 2020-10-05 15:14:50 +08:00
1a49346319 PVS/V1001: Remove assignment to unused variable 2020-10-05 14:16:51 +08:00
f7aeac7263 Merge pull request #12999 from PaperMountainStudio/resolv-ipv6
runtime: backport IPv6 support to resolv.vim
2020-10-04 16:22:19 -04:00
aadf85f3ca Update unicode files 2020-10-04 11:50:38 -04:00
ec057d40f3 Download emoji-data from UNIDATA/ 2020-10-04 11:50:29 -04:00
6d066af27a Opts.wrap_at is sometimes a bool, ensure it falls back to a valid number in the call to math.min 2020-10-04 01:06:44 -07:00
f6ac375604 Merge pull request #13026 from janlazo/vim-8.2.1779
vim-patch:8.1.{2143},8.2.{841,1779,1780,1784,1787}
2020-10-03 02:12:54 -04:00
86ab4a1cb4 vim-patch:8.2.0841: 'verbose' value 16 causes duplicate output
Problem:    'verbose' value 16 causes duplicate output.
Solution:   Combine levels 15 and 16 into one message. (Christian Brabandt,
            closes vim/vim#6153)
823654bc06
2020-10-03 01:06:24 -04:00
970d6ee0d1 vim-patch:8.1.2143: cannot see each command even when 'verbose' is set
Problem:    Cannot see each command even when 'verbose' is set.
Solution:   List each command when 'verbose' is at least 16.
4facea310c

Cherry-pick Test_tselect() from patch 8.1.2141.
It requires screendump so it won't run.
I cannot port it to a lua screen test.
2020-10-02 23:13:28 -04:00
2000e1621d vim-patch:8.2.1787: crash with 'incsearch' and very long line
Problem:    Crash with 'incsearch' and very long line.
Solution:   Check whether regprog becomes NULL. (closes vim/vim#7063)
795aaa1e84

N/A patches for version.c:

vim-patch:8.2.1784: commits are not scanned for security problems

Problem:    commits are not scanned for security problems
Solution:   Enable Github code scanning. (Christian Brabandt, closes vim/vim#7057)
fa79be6b10
2020-10-02 23:13:28 -04:00
25513049b3 vim-patch:8.2.1780: statusline not updated when splitting windows
Problem:    Statusline not updated when splitting windows.
Solution:   Call status_redraw_all(). (Jason Franklin, closes vim/vim#5496)
668008be66
2020-10-02 22:31:55 -04:00
72914cd7f2 vim-patch:8.2.1779: some debian changelog files are not recognized
Problem:    Some debian changelog files are not recognized.
Solution:   Add */debian/changelog. (Jason Franklin)
0022675aa3
2020-10-02 22:31:55 -04:00
f126721357 Fix quickfix.c warning message on EMSGN macro
```
/Users/stahn_mchan/sources/neovim/src/nvim/quickfix.c:1775:5: warning: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long')
      [-Wformat]
    EMSGN("quickfix_busy not zero on exit: %ld", (long)quickfix_busy);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                           %lld
/Users/stahn_mchan/sources/neovim/src/nvim/message.h:49:63: note: expanded from macro 'EMSGN'
```
2020-10-02 03:24:39 -05:00
c10c2fab5b Merge pull request #12968 from erw7/fix-substitute2
fix substitute problem with inccommand
2020-10-02 09:56:57 +02:00
f1b39f91a5 extmark: Change nvim_buf_set_extmark to not create undo data 2020-10-02 11:41:30 +09:00
b2f9c2b6c1 undo: fix possibility of aborting 2020-10-02 11:41:30 +09:00
620c8fdfe9 extmark: fix decoration ploblems with extmark
54ce101 changed the way undo entries are created when adding decorations.
This creates all sorts of problems.This change fixes the problem by
reverting to the previous behavior.
2020-10-02 11:41:30 +09:00
62c53ac3cf PVS/V1001: Add cast to return statement 2020-10-02 07:29:44 +08:00
ccceab9659 PVS/V1001: Correct returned variable typo 2020-10-02 07:24:40 +08:00
a9851bfbb1 Merge pull request #13014 from erw7/fix-fold
screen.c: fix buffer overflow due to folding
2020-10-01 17:21:41 +02:00
06258772da PVS/V1001: Remove assignment to unused variable 2020-10-01 22:37:14 +08:00
8154c77bef screen.c: fix buffer overflow due to folding
fixes #12988.
2020-10-01 17:25:19 +09:00
94c743348e runtime: backport IPv6 support to resolv.vim
from commits bc93cebb692f47488d66f078d1728031e9be35e7 and
b17893aa940dc7d45421f875f5d90855880aad27 from vim
2020-10-01 10:25:09 +02:00
36a5c394a5 Merge pull request #12987 from janlazo/vim-8.1.1563
vim-patch:8.1.{1319,1563,1591},8.2.{42,499}
2020-10-01 00:38:59 -04:00
9bac43b1fb userfunc: abort early on invalid refs
Cherry-pick set_ref_in_call_stack() changes from patch 8.1.1575.
2020-09-30 21:00:18 -04:00
594a69579f vim-patch:8.2.0042: clearing funccal values twice
Problem:    Clearing funccal values twice.
Solution:   Remove clearing individual fields.
eac7ce01e9
2020-09-30 21:00:18 -04:00
578b0b0b52 vim-patch:8.2.0499: calling a lambda is slower than evaluating a string
Problem:    Calling a lambda is slower than evaluating a string.
Solution:   Make calling a lambda faster. (Ken Takata, closes vim/vim#5727)
f10806b250

Port "uf_flags" constants from patch 8.2.1054 to sync with Vim.
Port user_func_error() from patch 8.2.0149.
Port Test_lambda_scope() changes from patch 8.1.0736 so that it passes.
2020-09-30 21:00:17 -04:00
2a57dce9f2 vim-patch:8.1.1319: computing function length name in many places
Problem:    Computing function length name in many places.
Solution:   compute name length in call_func().
6ed8819822

In call_func(), reassign "len" param to (int)STRLEN(funcname)
instead of using vim_strsave() which runs strlen().
"len" param is checked for v:lua functions.
call_func() states that strlen() is used if "len" is set to -1.
2020-09-30 21:00:17 -04:00
4edf7b9ff2 vim-patch:8.1.1591: on error garbage collection may free memory in use
Problem:    On error garbage collection may free memory in use.
Solution:   Reset may_garbage_collect when evaluating expression mapping.
            Add tests. (Ozaki Kiichi, closes vim/vim#4579)
7d491c4253
2020-09-30 21:00:17 -04:00
7cb38d5ac4 vim-patch:8.1.1563: crash when using closures
Problem:    Crash when using closures.
Solution:   Set reference in varlist of funccal when running the garbage
            collector. (Ozaki Kiichi, closes vim/vim#4554, closes vim/vim#4547)
6e5000d493
2020-09-30 21:00:17 -04:00
3430e40c60 vim-patch:8.2.1775: MS-Windows: adding a long quickfix list is slow (#13019)
vim-patch:8.2.1775: MS-Windows: adding a long quickfix list is slow

Problem:    MS-Windows: adding a long quickfix list is slow.
Solution:   Shorten the buffer name only for the first entry. (Yegappan
            Lakshmanan, closes vim/vim#7039, closes vim/vim#7033)
8ec92c9779

N/A patches for version.c:

vim-patch:8.1.2226: cannot use system copy/paste in non-xterm terminals

Problem:    Cannot use system copy/paste in non-xterm terminals.
Solution:   Instead of setting 'mouse' to "a" set it to "nvi" in defaults.vim.
5b418992cf

vim-patch:8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window

Problem:    Cannot use CTRL-W <Down> to move out of a terminal window.
Solution:   Use special_to_buf() instead of mb_char2bytes(). (closes vim/vim#7045)
f43e7ac4ee

vim-patch:8.2.1774: GTK: hang when forced to exit

Problem:    GTK: hang when forced to exit.
Solution:   Do not clean up "mainwin" when really_exiting is set.
            (Zdenek Dohnal, closes vim/vim#7042)
32fbc4f247

vim-patch:8.2.1776: filetype.vim may be loaded twice

Problem:    Filetype.vim may be loaded twice.
Solution:   Do "syntax on" after "filetype on". (Adam Stankiewicz,
            closes vim/vim#7049)
17bb4d4607
2020-09-30 20:58:36 -04:00
c007b961f5 Merge pull request #12733 from KillTheMule/lnume
[RDY]: Fix buffer_updates on blockwise paste
2020-09-30 22:34:41 +02:00
02dcc3c11a Fix byte updates for blockwise paste at buffer end 2020-09-30 21:28:21 +02:00
c1a740ae33 bytetrack: add blockwise paste test 2020-09-30 20:10:06 +02:00
ba515622fb Fix buffer_updates on blockwise paste
Fixes #12718.
2020-09-30 20:10:05 +02:00
e5d98d8569 LSP: Fix separator width on hover (fixes #13006, #12998) (#13007)
* fix insert_separator conditional
* only draw separator over wrapped width
2020-09-30 18:03:40 +02:00
3c5141d2cf treesitter: add string parser (#13008) 2020-09-30 09:32:43 -04:00
d5adc8c00e Merge pull request #12903 from justinmk/checkcores
lua/check_cores(): check uname instead of TRAVIS_OS_NAME
2020-09-30 08:18:05 +02:00
d0d1f0f9a6 Merge pull request #13012 from janlazo/vim-8.1.1965
vim-patch:8.1.{1965,1970,1980,1992},8.2.0840
2020-09-29 22:34:00 -04:00
0d100032b8 vim-patch:8.2.0840: search match count wrong when only match is in fold
Problem:    Search match count wrong when only match is in fold.
Solution:   Update search stats when in a closed fold. (Christian Brabandt,
            closes vim/vim#6160, closes vim/vim#6152)
6cb0726215
2020-09-29 21:36:00 -04:00
83ebe0c998 vim-patch:8.1.1992: the search stat moves when wrapping at the end of the buffer
Problem:    The search stat moves when wrapping at the end of the buffer.
Solution:   Put the "W" in front instead of at the end.
16b58ae9f3
2020-09-29 21:36:00 -04:00
a307489a79 vim-patch:8.1.1980: fix for search stat not tested
Problem:    Fix for search stat not tested.
Solution:   Add a screenshot test. (Christian Brabandt)
0f63ed33fd
2020-09-29 19:45:06 -04:00
37c6cbc758 vim-patch:8.1.1970: search stat space wrong, no test for 8.1.1965
Problem:    Search stat space wrong, no test for 8.1.1965.
Solution:   Fix check for cmd_silent.  Add a test. (Christian Brabandt)
19e8ac72e9
2020-09-29 19:30:29 -04:00
621f7b607f vim-patch:8.1.1965: search count message is not displayed when using a mapping
Problem:    The search count message is not displayed when using a mapping.
            (Gary Johnson)
Solution:   Ignore cmd_silent for showing the search count. (Christian
            Brabandt)
359ad1a6f9
2020-09-29 19:23:46 -04:00
090551a802 Merge pull request #12996 from teto/foldcol
folds: pass column on fold creation
2020-09-29 06:40:10 +02:00
6f2138eb03 vim-patch:8.2.1757: Mac: default locale is lacking the encoding (#12994)
vim-patch:8.2.1757: Mac: default locale is lacking the encoding

Problem:    Mac: default locale is lacking the encoding.
Solution:   Add ".UTF-8 to the locale. (Yee Cheng Chin, closes vim/vim#7022)
a5fe91e6dc

Cherry-pick test_environ.vim changes from patch 8.2.1432.
2020-09-28 20:20:48 -04:00
12fdb114d1 folds: pass column on fold creation
useful if we want to have inline folds later and/or let users create
folds that remember their start/end columns.
2020-09-28 23:53:10 +02:00
f520c1ef85 test: Fix failing test in case of special .bashrc (#12920)
The test of "replace environment" in the test module of
`test/functional/core/job_spec.lua` failed in case the bashrc file of
the user running the test has special actions in it (such actions were
printing to the screen from inside this file, or changing the bash mode
to be vi).

In order to fix this problem, the test now sets the shell to be
`/bin/sh` before running the command. Setting the shell to be `/bin/sh`
causes the running shell to run without the configuration of the user,
and so the test passes even in case of special .bashrc.
This change was done only for platforms other than Windows since it is
not relevant in windows.

The fix was applied to the specific test, even though it is possible
that related issues will arise in other tests. It seems like a big
overhead to make the fix work on all the possible tests, and it does not
worth this cost.
2020-09-28 22:20:49 +02:00
c5ceefca79 vim-patch:8.2.1754: completion with spell checking not tested (#12992)
vim-patch:8.2.1754: completion with spell checking not tested

Problem:    Completion with spell checking not tested.
Solution:   Add a test case. (Dominique Pellé, closes vim/vim#7024)
8c7ad3631a

Cherry-pick GetMessages() from patch 8.2.0666.
Comment out the code that checks for "Messages maintainer:" line
because Neovim's ":messages" command does not output it
and patches for the "methods" feature (ie. foo->bar) are not ported yet.

https://github.com/neovim/neovim/pull/5160
2020-09-27 15:08:41 -04:00
8bc55f656a Merge pull request #12922 from AlxHnr/master
Use HTTPS for downloading spell files
2020-09-27 09:29:23 -04:00
430ad9ab20 Merge pull request #12986 from janlazo/vim-8.2.1738
vim-patch:8.1.{524,1613},8.2.{1088,1713,1715,1717,1721,1725,1735,1738,1745}
2020-09-26 11:56:45 -04:00
e22c15682a test/old: enable passing tests
Some TODO tests are passing now.

test_override('ALL', 1) clears previous overrides
so it's safe to comment out and execute the test.

Replace test_feedinput() with nvim_input().
Replace test_setmouse with nvim_input_mouse().
Note that test_setmouse is 1-based and nvim_input_mouse is 0-based.
2020-09-26 10:14:50 -04:00
c14d2399f6 doc: test_garbagecollect_now() was ported 2020-09-26 10:14:50 -04:00
25b9a400a9 vim-patch:8.2.1725: not all Pascal files are recognized
Problem:    Not all Pascal files are recognized.
Solution:   Add filetype patterns. (Doug Kearns)
44aaf5416e
2020-09-26 10:14:50 -04:00
6e6b660e95 vim-patch:8.2.1088: a very long translation might cause a buffer overflow
Problem:    A very long translation might cause a buffer overflow.
Solution:   Trunctate the message if needed.
6378b21d6d

N/A patches for version.c:

vim-patch:8.1.0524: terminal test fails on Windows

Problem:    Terminal test fails on Windows.
Solution:   Skip Test_terminal_does_not_truncate_last_newlines() for now.
c2c02574ec

vim-patch:8.1.1613: popup window test fails with Athena and Motif

Problem:    Popup window test fails with Athena and Motif.
Solution:   Compute the highlight attribut when the GUI is not active.
a83e70000f

vim-patch:8.2.1713: Motif GUI: crash when setting menu colors

Problem:    Motif GUI: crash when setting menu colors. (Andrzej Bylicki)
Solution:   Add {} to make "n" incremented correctly. (closes vim/vim#6989,
        closes vim/vim#5948)
7795bfea6d

vim-patch:8.2.1715: Motif GUI: commented out code missed {}

Problem:    Motif GUI: commented out code missed {}.
Solution:   Add {} and reenable the code. (similar to vim/vim#6989)
26cd3063b2

vim-patch:8.2.1717
Problem:    MS-Windows installer doesn't have Russian translations.
Solution:   Add Russian translations. (closes vim/vim#6985)
809fcecddc

vim-patch:8.2.1721: MS-Windows installer doesn't work

Problem:    MS-Windows installer doesn't work.
Solution:   Write "Russian" in ASCII. (closes vim/vim#6995, see #).
7f9c9c51a3

vim-patch:8.2.1735: Github actions appear to timeout too soon

Problem:    Github actions appear to timeout too soon.
Solution:   use "timeout" instead of "ping".
851d108313

vim-patch:8.2.1738: Mac: str2float() recognizes comma instead of decimal point

Problem:    Mac: str2float() recognizes comma instead of decimal point.
Solution:   Set LC_NUMERIC to "C". (closes vim/vim#7003)
509f8031b2

vim-patch:8.2.1745: tiny version doesn't build

Problem:    Tiny version doesn't build.
Solution:   Add dummy ex_var() function.
d47f50b331
2020-09-26 10:14:42 -04:00
4a996bc431 lsp: Add vim.lsp.buf.range_code_action() (#12962)
Allows to execute code_action for a given range.
:'<,'>lua vim.lsp.buf.range_code_action()
2020-09-24 21:53:08 +02:00
f1fbb9e9ca Merge pull request #12515 from teto/remove-foldline-final
screen.c: remove fold_line
2020-09-24 21:48:53 +02:00
a958039f0a screen: more work on fold_line replacement 2020-09-24 19:31:58 +02:00
f8134f2fd1 screen.c: remove fold_line
as well as copy_text_attr, text_to_screenline.
Display of folded line is now done via win_line, which reduces code
deduplication.
As fold_line was a trimmed down version of win_line, this change brings
new features such CursorLineNr highighting even on folded line, as well
as CursorLine highlighting.
2020-09-24 15:43:25 +02:00
b9ceac4650 Merge pull request #12955 from vigoux/vim-8.2.0953
[RFC] vim-patch:8.2.{0953,0955,0956,1678}
2020-09-24 09:10:52 +02:00
ca28cf5362 vim-patch:8.2.1678: crash when using ":set" after ":ownsyntax"
Problem:    Crash when using ":set" after ":ownsyntax".
Solution:   Make sure 'spelloptions' is not NULL. (closes vim/vim#6950)
d1f76afaf9
2020-09-24 08:09:38 +02:00
0b42e3fedb vim-patch:8.2.0956: spell test fails
Problem:    Spell test fails.
Solution:   Add missing change the spell checking.
e0ebeda4d8
2020-09-24 08:09:38 +02:00
cf4543a564 vim-patch:8.2.0955: build fails
Problem:    Build fails.
Solution:   Add missing struct change.
215f49c4d7
2020-09-24 07:13:39 +02:00
a08959bc7a vim-patch:8.2.0953: spell checking doesn't work for CamelCased words
Problem:    Spell checking doesn't work for CamelCased words.
Solution:   Add the "camel" value in the new option 'spelloptions'.
            (closes vim/vim#1235)
362b44bd4a
2020-09-24 07:13:39 +02:00
4f8d98e583 lsp: Handle ContentModified the same way as RequestCancelled (#12803)
* Added the ContentModified error to be hidden from users, like RequestCancelled
* Fixed tests (and ill-formed lua code)
* Simplified if-expression
2020-09-22 21:54:34 +02:00
78539dda95 Merge pull request #12888 from nguymin4/update-cfilter
vim-patch: Update cfilter to 1.1
2020-09-21 19:02:03 -04:00
bd7360b39a funding: Bountysource Salt -> GitHub Sponsors & Open Collective [ci skip] (#12959)
We have a GitHub Sponsors page for the neovim organization now:

  - https://github.com/sponsors/neovim

It can be reached by clicking on the "Sponsor" button on the
[organization page](https://github.com/neovim).

This commit replaces Salt by GitHub Sponsors and Open Collective.
2020-09-21 20:47:02 +02:00
dc4f81b49c Update doc
vim/vim@8ffc7c8b

vim-patch:8.1.1281
2020-09-21 11:29:51 +03:00
f8e5c6e99d Sync cfilter 1.1 from vim
vim/vim@fc65cabb
2020-09-21 11:29:02 +03:00
42d13b90fe Merge pull request #12945 from jamessan/has_include-fix
Only use __has_include when it is defined
2020-09-20 14:57:20 -04:00
461c18edad Only use __has_include when it is defined
Per GCC's documentation:

> The __has_include operator by itself, without any operand or parentheses, acts as a predefined macro so that support for it can be tested in portable code. Thus, the recommended use of the operator is as follows:
>
>     #if defined __has_include
>     #  if __has_include (<stdatomic.h>)
>     #    include <stdatomic.h>
>     #  endif
>     #endif
>
> The first ‘#if’ test succeeds only when the operator is supported by the version of GCC (or another compiler) being used. Only when that test succeeds is it valid to use __has_include as a preprocessor operator.
2020-09-20 11:45:56 -04:00
9f704c88a5 Merge pull request #12938 from janlazo/vim-8.1.0285
vim-patch:8.1.{285,1782,1972,2261,2263},8.2.{240,817,824,1549,1676,1696}
2020-09-19 17:40:55 -04:00
905c2eb359 Merge pull request #12939 from bfredl/pastetest
test: buffer updates: add visual charwise paste test
2020-09-19 18:12:44 +02:00
df46f91977 vim-patch:8.1.2263: 'noesckeys' test fails in GUI
Problem:    'noesckeys' test fails in GUI.
Solution:   Skip the test in the GUI.
215ba3b636

Cherry-pick "CheckNotGui" command from patch 8.1.1826.
2020-09-19 10:57:57 -04:00
17106b96e9 vim-patch:8.1.2261: with modifyOtherKeys set 'noesckeys' doesn't work
Problem:    With modifyOtherKeys set 'noesckeys' doesn't work. (James McCoy)
Solution:   Disable modifyOtherKeys while in Insert mode when 'noesckeys' is
            set. (closes vim/vim#5180)
177c9f2f06
2020-09-19 10:57:57 -04:00
d3e0d29919 vim-patch:8.2.0824: still not enough memory allocated when converting string
Problem:    Still not enough memory allocated when converting string with
            special character.
Solution:   Reserve space for expanding K_SPECIAL. (closes vim/vim#6130)
1919371b2b
2020-09-19 10:57:57 -04:00
ccfb69ab36 vim-patch:8.2.0817: not enough memory allocated when converting string
Problem:    Not enough memory allocated when converting string with special
            character.
Solution:   Reserve space for modifier code. (closes vim/vim#6130)
f7271e8316

Cherry-pick Test_eval(), Test_nr2char() from patch 8.2.0448.
2020-09-19 10:57:57 -04:00
31513a6f2d vim-patch:8.1.1972: no proper test for getchar()
Problem:    No proper test for getchar().
Solution:   Add a test with special characters.
5d712e4672

N/A patches for version.c:

vim-patch:8.1.0285: compiler warning for conversion

Problem:    Compiler warning for conversion.
Solution:   Add a type cast. (Mike Williams)
d7cc163570

vim-patch:8.1.1782: MS-Windows: system() has temp file error with 'noshelltemp'

Problem:    MS-Windows: system() has temp file error with 'noshelltemp'.
Solution:   Check s_dont_use_vimrun. (Ken Takata, closes vim/vim#4754)
0e6bfb9b2e

vim-patch:8.2.0240: using memory after it was freed

Problem:    Using memory after it was freed. (Dominique Pelle)
Solution:   Do not mix converion buffer with other buffer.
408030e8d0

vim-patch:8.2.1549: "r" fails if 'esckeys' is off and modifyOtherKeys is used

Problem:    The "r" command fails for keys with modifiers if 'esckeys' is off
            and modifyOtherKeys is used. (Lauri Tirkkonen)
Solution:   Temporarily disable bracketed paste and modifyOtherKeys if
            'esckeys' is off. (closes vim/vim#6809)
ca774f6753

vim-patch:8.2.1676: compiler warnings for function typecast

Problem:    Compiler warnings for function typecast.
Solution:   Add an intermediate cast to "void *".
a4224860a4

vim-patch:8.2.1696: unused (duplicate) macros

Problem:    Unused (duplicate) macros.
Solution:   Remove the macros.
2c12f89055
2020-09-19 10:57:35 -04:00
3610d0091f test: buffer updates: add visual charwise paste test 2020-09-19 15:50:35 +02:00
cea2417f30 Merge pull request #12935 from vigoux/byte-change-lines
buf_updates: fix wrong updates on linewise change
2020-09-19 11:02:32 +02:00
2f2c73265f lint: is lint 2020-09-19 10:14:13 +02:00
0ba2b955af util: make __asan_* prototypes available for ENHANCED printf debuging 2020-09-19 10:05:27 +02:00
b7fc7ac6a1 buffer updates: fix issues with "change" operator 2020-09-19 10:01:00 +02:00
4cc2a7af4b tests: lua buffer updates: reorg check_events() 2020-09-19 09:58:31 +02:00
179f0bca18 buf_updates: fix wrong updates on linewise change 2020-09-18 17:54:49 +02:00
569e75799d lsp: remove popup No signature available. (#12915)
* lsp: remove popup No signature available.

 If no signatures. we shouldn't popup No signature available ..It will make noise when use
` api.nvim_command("autocmd CompleteDone <buffer> lua vim.lsp.buf.signature_help()")`

* fix ci test failed remove whitespace

* print message when no signature help

* Add comment
2020-09-18 09:37:53 -04:00
6dc815530b buf_updates: fix updates for empty buffers (#12926)
On empty buffers, when editing the first line, the line is buffered, causing offset to be < 0. While the buffer is not actually empty, the buffered line has not been flushed (and should not be) yet, so the call is valid but an edge case.
2020-09-17 23:34:28 +02:00
2d9ae21664 Merge pull request #12872 from nvim-treesitter/extmarks-wrong-boundcheck
Extmarks: allow to set extranges past final newline
2020-09-17 22:59:20 +02:00
cecc45efb1 api(extmarks): allow extrange past final newline 2020-09-17 21:23:52 +02:00
53efdedca9 runtime: update g:spellfile_URL to URL used in Vim 8
See vim/vim@7ff7846
2020-09-17 13:31:55 +02:00
d4b4335fe3 Merge pull request #12911 from vigoux/bytetrack-formatoption-ro
treesitter: filter updates on <CR>
2020-09-16 19:53:39 +02:00
9a7f111db6 treesitter: filter updates on <CR>
This fixes an error when fo=ro, when hitting <CR> to insert a new
comment line.
2020-09-16 16:35:17 +02:00
aa98527ce7 Merge pull request #12917 from bfredl/bytes_setline
buf_attach: fix buffer updates with setline()
2020-09-16 16:34:24 +02:00
cf522488cc Merge pull request #12914 from janlazo/vim-8.2.1675
vim-patch:8.1.{2108,2222,2338},8.2.{637,1526,1675,1684}
2020-09-16 08:51:28 -04:00
34c0f7af04 buf_attach: fix buffer updates with setline() 2020-09-16 13:50:16 +02:00
c3f4610922 Merge pull request #12912 from nvim-treesitter/treesitter-docs
docs: Move treesitter docs in their own file
2020-09-16 10:07:51 +02:00
2ed48e71d3 vim-patch:8.1.2222: accessing invalid memory
Problem:    Accessing invalid memory. (Dominique Pelle)
Solution:   Reset highlight_match every time.  (closes vim/vim#5125)
7ab5d77666
2020-09-15 23:00:35 -04:00
ba16475549 vim-patch:8.1.2108: cannot close the cmdline window from CmdWinEnter
Problem:    Cannot close the cmdline window from CmdWinEnter. (George Brown)
Solution:   Reset cmdwin_result earlier. (Christian Brabandt, closes vim/vim#4980)
23324a0b35
2020-09-15 23:00:35 -04:00
eb981a01e3 vim-patch:8.2.1684: "gF" does not use line number after file in Visual mode
Problem:    "gF" does not use line number after file in Visual mode.
Solution:   Look for ":123" after the Visual area. (closes vim/vim#6952)
efd5d8a967

Cherry-pick test_gf_visual changes from patch 8.2.1040.
2020-09-14 18:54:07 -04:00
cc484928d5 vim-patch:8.2.0637: incsearch highlighting does not work for ":sort!"
Problem:    Incsearch highlighting does not work for ":sort!".
Solution:   Skip over the exclamation point. (closes vim/vim#5983)
333015a46e
2020-09-14 18:19:45 -04:00
ea03032018 vim-patch:8.1.2338: using Visual mark sith :s gives E20 if not set
Problem:    Using Visual mark sith :s gives E20 if not set.
Solution:   Ignore errors when handling 'incsearch'. (closes vim/vim#3837)
c672525b48

N/A patches for version.c:

vim-patch:8.2.1526: line in testdir Makefile got commented out

Problem:    Line in testdir Makefile got commented out. (Christian Brabandt)
Solution:   Revert.
228e62975e

vim-patch:8.2.1675: MinGW: testdir makefile deletes non-existing file

Problem:    MinGW: testdir makefile deletes non-existing file.
Solution:   Use another way to delete the output file if it already exists.
            (Michael Soyka)
05c1acd5e1
2020-09-14 18:19:45 -04:00
484a6d3205 vim-patch:8.2.1677: memory access errors when calling setloclist() in autocommand
Problem:    Memory access errors when calling setloclist() in an autocommand.
Solution:   Give an error if the list was changed unexpectedly. (closes vim/vim#6946)
4d170af0a9
2020-09-15 03:29:18 +09:00
924cab4cef docs: Move treesitter docs in their own file 2020-09-14 19:04:33 +02:00
f34eeba2d8 lsp: fix failed switch window error (#12900)
* fix failed switch window error

* checks if  window already exists
2020-09-14 11:03:02 -04:00
4a2618c817 doc: Add docs for uri functions (#12887) 2020-09-14 09:12:17 -04:00
20f7b94284 Merge pull request #12905 from janlazo/vim-8.1.0555
vim-patch:8.1.{499,555,556,584,640,1148,1704},8.2.0902
2020-09-13 12:46:32 -04:00
80eafef3bb vim-patch:8.1.0489: crash when autocmd clears vimpgrep location list
Problem:    Crash when autocmd clears vimpgrep location list.
Solution:   Return from qf_jump_edit_buffer() early. (Yegappan Lakshmanan)
b6f1480a6a
2020-09-14 00:31:19 +09:00
8105fc89c4 vim-patch:8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Problem:    C-R C-W does not work after C-G when using 'incsearch'.
Solution:   Put cursor at end of the match. (Yasuhiro Matsumoto, closes vim/vim#4664)
69a5b86794
2020-09-13 08:25:20 -04:00
25992df761 vim-patch:8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Problem:    CTRL-L with 'incsearch' does not pick up char under cursor.
            (Smylers)
Solution:   Do not compare the position with the cursor position. (Hirohito
            Higashi, closes vim/vim#3620)
730f48fe36
2020-09-13 08:25:20 -04:00
476c50903a vim-patch:8.1.0499: :2vimgrep causes an ml_get error
Problem:    :2vimgrep causes an ml_get error
Solution:   Pass tomatch pointer instead of value. (Yegappan Lakshmanan)
1c29943416
2020-09-13 08:25:20 -04:00
cc049a5612 vim-patch:8.1.0640: get E14 while typing command :tab with 'incsearch' set
Problem:    Get E14 while typing command :tab with 'incsearch' set.
Solution:   Do not give an error when looking for the command. (Yasuhiro
            Higashi)
548e598573
2020-09-13 08:25:20 -04:00
4327fe8da5 vim-patch:8.2.0902: using searchcount() in 'statusline' causes an error
Problem:    Using searchcount() in 'statusline' causes an error.
Solution:   Avoid saving/restoring the search patten recursively.
            (closes vim/vim#6194)
442a85369f
2020-09-13 08:25:20 -04:00
ce32545708 vim-patch:8.1.0556: saving/restoring search patterns share saved last_idx
Problem:    Saving/restoring search patterns share saved last_idx.
Solution:   Use a separate saved last_idx for saving search patterns for
            functions and incremental search.
ed8bc78d23
2020-09-13 08:25:19 -04:00
870f88f387 vim-patch:8.1.0584: with search CTRL-L does not pick up composing characters
Problem:    With search CTRL-L does not pick up composing characters.
Solution:   Check for composing characters. (Christian Brabandt, closes vim/vim#3682)
            [code change was accidentally included in 8.1.0579]
5f5e203c92
2020-09-13 08:25:19 -04:00
d5eff30c72 vim-patch:8.1.0555: crash when last search pat is set but not last substitute pat
Problem:    Crash when last search pat is set but not last substitute pat.
Solution:   Do not mix up last search pattern and last subtitute pattern.
            (closes vim/vim#3647)
2fb8f684d8
2020-09-13 08:25:19 -04:00
c7ef802206 Merge pull request #12841 from bfredl/buf_do
nvim_buf_call to call function in the context of another buffer
2020-09-13 12:04:38 +02:00
ead2fcf4ee api: add nvim_buf_call to call function with curbuf changed to buffer 2020-09-13 09:11:38 +02:00
542022aae4 Merge pull request #12851 from bfredl/luahl
luahl: still WIP but better
2020-09-13 08:29:49 +02:00
2c15f695a8 luahl: temporary workaround for virt_text ownership ambiguity 2020-09-13 07:46:39 +02:00
4042975df4 luahl: global the luahl 2020-09-13 07:46:39 +02:00
05c68922d3 Fix typo in treesitter docs: parser directory is parser not parsers 2020-09-13 07:46:39 +02:00
e4b5efa51e fix: use luahl in treesitter 2020-09-13 07:46:39 +02:00
18a3a89822 luahl 2020-09-13 07:46:39 +02:00
4d3ef578e9 Merge pull request #12883 from janlazo/vim-8.2.1640
vim-patch:8.1.{1296,1297,1298},8.2.{1640,1645,1646,1648,1649,1654,1655,1661}
2020-09-12 15:04:56 -04:00
46f973edf0 vim-patch:8.1.0431: the qf_jump() function is too long
Problem:    The qf_jump() function is too long.
Solution:   Refactor to split it into several functions. (Yegappan Lakshmanan)
6dae96ef7a
2020-09-13 03:48:22 +09:00
397be5d380 UI: fix cursor not displayed after hiding and un-hiding #12811
- TUI: Fix a case where the cursor was not displayed after hiding the
  cursor and then setting it to be displayed again.
- Change to reset everything before setting guicursor.

fixes #12800
close #12811

Steps to reproduce:

    nvim -u NORC
    :set termguicolors
    :hi nCursor guifg=red guibg=red
    :hi iCursor guifg=green guibg=green
    :hi cCursor guifg=blue guibg=blue
    :set guicursor=n:block-nCursor,i:hor25-iCursor,c:ver25-cCursor
    :set guicursor-=c:ver25-cCursor

Actual behaviour: Cursor is a blue vertical.
Expected behaviour: Cursor should be the default color block.
2020-09-12 11:42:42 -07:00
34e4d2f25e lua/check_cores(): check uname instead of TRAVIS_OS_NAME 2020-09-12 11:12:04 -07:00
1e10342382 docs: Add hint for :help vim.lsp.buf for new users (#12886)
* docs: Add hint for :help vim.lsp.buf for new users

* fix: Use help linker for vim.lsp.buf

* docs: Extend full api list language. Move gd to bottom. Add note about limited support
2020-09-12 13:01:14 -04:00
01ae5e7c38 lsp: fix lsp.buf.formatting_sync() null response (#12752)
Co-authored-by: tim apple <tim@tims-MacBook-Pro.local>
2020-09-12 18:39:52 +02:00
f3b5531ae8 lsp: Fix parameter markdown rendering for signature help (#12832) 2020-09-12 18:33:31 +02:00
97c03227c8 docs: Use nvim-lspconfig plugin in lsp docs (#12885)
* docs: Use nvim-lspconfig plugin in lsp docs
2020-09-12 17:52:30 +02:00
b23907e7ce Merge pull request #12721 from aufarg/vim-8.1.0265
[RDY] vim-patch:8.1.{265,271,273,274,275,277,278,279,280,281,282,284,286,291,295,296,320,321,339,351,392,399,552}
2020-09-12 10:51:59 -04:00
459f8ad808 docs: Align help docs to match using tab (#12891) 2020-09-12 16:48:16 +02:00
20b745b45b vim-patch:8.1.1298: invalid argument test fails without X clipboard
Problem:    Invalid argument test fails without X clipboard.
Solution:   Test -display only with the +xterm_clipboard feature.
5416b75031

N/A patches for version.c:

vim-patch:8.2.1640: Amiga: missing header for getgrgid()

Problem:    Amiga: missing header for getgrgid().
Solution:   Add the grp.h header. (Ola Söder, closes vim/vim#6906)
f842cd9e28

vim-patch:8.2.1645: GTK3: icons become broken images when resized

Problem:    GTK3: icons become broken images when resized.
Solution:   Use gtk_image_new_from_icon_name(). (closes vim/vim#6916)
            Fix compiler warnings.
81a4cf469a

vim-patch:8.2.1646: Amiga: Unnecessary #include

Problem:    Amiga: Unnecessary #include.
Solution:   Remove the #include. (Ola Söder, closes vim/vim#6908)
33e3346322

vim-patch:8.2.1648: Amiga: no common build file for Amiga (-like) systems

Problem:    Amiga: no common build file for Amiga (-like) systems.
Solution:   Turn Make_morph.mak into Make_ami.mak. (Ola Söder, closes vim/vim#6805)
a62372be1f

vim-patch:8.2.1649: GTK3: using old file chooser

Problem:    GTK3: using old file chooser.
Solution:   Use native file chooser on GTK 3.20 and above. (Yogeshwar
            Velingker, closes vim/vim#6909)
3e4cc9671c

vim-patch:8.2.1654: when job writes to hidden buffer current window is wrong

Problem:    When job writes to hidden buffer current window has display
            errors.  (Johnny McArthur)
Solution:   Use aucmd_prepbuf() instead of switch_to_win_for_buf().
            (closes vim/vim#6925)
ad9ec5e799

vim-patch:8.2.1655: cannot build with Strawberry Perl 5.32.0

Problem:    Cannot build with Strawberry Perl 5.32.0.
Solution:   Use Perl_sv_2pvbyte_flags. (closes vim/vim#6921)
895a7a472d

vim-patch:8.2.1661: cannot connect to 127.0.0.1 for host with only IPv6 addresses

Problem:    Cannot connect to 127.0.0.1 for host with only IPv6 addresses.
Solution:   pass AI_V4MAPPED flag to getaddrinfo. (Filipe Brandenburger,
            closes vim/vim#6931)
c6a67c92bc
2020-09-11 18:34:25 -04:00
2ab6ec9e48 vim-patch:8.1.1297: invalid argument test fails without GTK
Problem:    Invalid argument test fails without GTK.
Solution:   Test -display and --display separately.
240f7abab0
2020-09-11 18:23:47 -04:00
978dd99f45 vim-patch:8.1.1296: crash when using invalid command line argument
Problem:    Crash when using invalid command line argument.
Solution:   Check for options not being initialized.
27821260c0
2020-09-11 18:23:46 -04:00
997147e4bb Merge pull request #12889 from vigoux/bytetrack-open-line
Fix invalid events with `o` `<CR>` and `autoindent`
2020-09-11 19:30:46 +02:00
a8f71676a1 fix(bufupdates): avoid sending empty updates 2020-09-11 14:48:10 +02:00
f0e258cf85 fix(bytetrack): send correct events when opening lines
a bit of test cleanup

ärrår

feeel

SPLIT

fix: sned correct updates on <CR>
2020-09-11 14:38:58 +02:00
466ff35dfd vim-patch:8.1.0552: saved last search pattern may not be restored
Problem:    Saved last search pattern may not be restored.
Solution:   Call restore_last_search_pattern().  Add a check for balancing
            saving and restoring the last search pattern.
01a060da74
2020-09-11 10:37:52 +08:00
f7d2e37e36 vim-patch:8.1.0399: 'hlsearch' highlight remains in other window
Problem:    'hlsearch' highlight remains in other window after cancelling
            command.
Solution:   Redraw all windows. Also remove unnecessary delays. (closes vim/vim#3437)
65985ac998
2020-09-11 10:37:52 +08:00
112092fa15 vim-patch:8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Problem:    Error while typing :/foo/s// with 'incsearch' enabled.
Solution:   Do not give search errors when highlighting matches.
50eb16c3b2
2020-09-11 10:37:52 +08:00
b0042cafc0 vim-patch:8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Problem:    Using :s with 'incsearch' prevents CTRL-R CTRL-W. (Boris Staletic)
Solution:   When past the pattern put cursor back in the start position.
            (closes vim/vim#3413)
99f043a57d
2020-09-11 10:37:52 +08:00
e2dc2a6bd7 vim-patch:8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Problem:    'incsearch' for :/foo/s//<Esc> changes last search pattern.
Solution:   Save the last search pattern earlier.
198cb66d65
2020-09-11 10:37:52 +08:00
b59c293c25 vim-patch:8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Problem:    Wrong highlight when 'incsearch' set and cancelling :s.
Solution:   Reset search line range. (Hirohito Higashi, Masamichi Abe)
f13daa46da
2020-09-11 10:37:52 +08:00
f2743cfb65 vim-patch:8.1.0321: 'incsearch' regression: /\v highlights everything
Problem:    'incsearch' regression: /\v highlights everything.
Solution:   Put back the empty_pattern() check.
4edfe2d2a2
2020-09-11 10:37:52 +08:00
4770a2bac5 vim-patch:8.1.0320: too much 'incsearch' highlight for pat matching everything
Problem:    Too much 'incsearch' highlight for pattern matching everything.
Solution:   Add the skiplen to the command and remove the line range.
            (Christian Brabandt)  Check for empty pattern earlier.
8b0d5ce881
2020-09-11 10:37:52 +08:00
5f5d08a88e vim-patch:8.1.0296: command parsing for 'incsearch' is a bit ugly
Problem:    Command parsing for 'incsearch' is a bit ugly.
Solution:   Return when there is no pattern.  Put common checks together.
111bbd61e9
2020-09-11 10:37:52 +08:00
77bb48e740 vim-patch:8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Problem:    No 'incsearch' highlighting for :vimgrep and similar commands.
Solution:   Parse the :vimgrep command and similar ones to locate the search
            pattern. (Hirohito Higashi, closes vim/vim#3344)
264cf5cfaf
2020-09-11 10:33:20 +08:00
ab7e101540 vim-patch:8.1.0291: 'incsearch' highlighting not used for :sort
Problem:    'incsearch' highlighting not used for :sort.
Solution:   Handle pattern in :sort command.
81f56536b1
2020-09-11 10:33:20 +08:00
c0102c140c vim-patch:8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Problem:    'incsearch' does not apply to :smagic and :snomagic.
Solution:   Add support. (Hirohito Higashi)
167ae42685
2020-09-11 10:33:20 +08:00
68f6abef16 vim-patch:8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Problem:    'cursorline' highlighting wrong with 'incsearch'.
Solution:   Move the cursor back if the match is outside the range.
2f6a346a4c
2020-09-11 10:33:20 +08:00
b24dabf266 vim-patch:8.1.0282: 'incsearch' does not work with command modifiers
Problem:    'incsearch' does not work with command modifiers.
Solution:   Skip command modifiers.
33c4dbb74b
2020-09-11 10:33:20 +08:00
ba59ee9a15 ex_docmd: merge parse_state_T with exarg_T 2020-09-11 10:33:20 +08:00
9a6fd99a4b vim-patch:8.1.0281: parsing command modifiers is not separated
Problem:    Parsing command modifiers is not separated.
Solution:   Move command modifier parsing to a separate function.
effed9315c
2020-09-11 10:31:41 +08:00
841ec4316c vim-patch:8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Problem:    'incsearch' highlighting does not work for ":g!/".
Solution:   Skip the exclamation mark. (Hirohito Higashi)
def7b1dc61
2020-09-11 10:31:41 +08:00
8ae47ddf63 vim-patch:8.1.0279: 'incsearch' highlighting does not skip white space
Problem:    'incsearch' highlighting does not skip white space.
Solution:   Skip white space after the command. (issue vim/vim#3321)
2b926fcb3c
2020-09-11 10:31:41 +08:00
83f3218b28 vim-patch:8.1.0278: 'incsearch' highlighting does not accept reverse range
Problem:    'incsearch' highlighting does not accept reverse range.
Solution:   Swap the range when needed. (issue vim/vim#3321)
60d0871000
2020-09-11 10:31:41 +08:00
50da4d4f45 vim-patch:8.1.0277: 'incsearch' highlighting wrong in a few cases
Problem:    'incsearch' highlighting wrong in a few cases.
Solution:   Fix using last search pattern.  Restore highlighting when changing
            command. (issue vim/vim#3321)
c7f08b7ee1
2020-09-11 10:31:41 +08:00
dd08f6367b vim-patch:8.1.0275: 'incsearch' with :s doesn't start at cursor line
Problem:    'incsearch' with :s doesn't start at cursor line.
Solution:   Set cursor before parsing address. (closes vim/vim#3318)
            Also accept a match at the start of the first line.
976b847f43
2020-09-11 10:31:41 +08:00
9e834a89df vim-patch:8.1.0274: 'incsearch' triggers on ":source"
Problem:    'incsearch' triggers on ":source".
Solution:   Check for the whole command name.
21f990e1c2
2020-09-11 10:31:41 +08:00
5eb7133021 vim-patch:8.1.0273: invalid memory access when using 'incsearch'
Problem:    Invalid memory access when using 'incsearch'.
Solution:   Reset "patlen" when using previous search pattern.
ef73a28401
2020-09-11 10:31:41 +08:00
e8a8b9ed08 vim-patch:8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Problem:    'incsearch' doesn't work for :s, :g or :v.
Solution:   Also use 'incsearch' for other commands that use a pattern.
b0acacd767
2020-09-11 10:31:41 +08:00
8ac4748577 vim-patch:8.1.0265: the getcmdline() function is way too big
Problem:    The getcmdline() function is way too big.
Solution:   Factor out the incremental search highlighting.
0ee81cb638
2020-09-11 10:29:12 +08:00
7ba28b1aed Merge pull request #12881 from bfredl/unexecute
lua: cleanup naming conventions of executor functions
2020-09-10 19:58:09 +02:00
5f3ddb195e lua: cleanup naming conventions of executor functions 2020-09-10 10:02:41 +02:00
5581ac88c6 Merge pull request #12568 from nvim-treesitter/bytetrack
Bytetrack
2020-09-10 08:50:42 +02:00
ef5e7b862d memline: do not attempt to cache line2byte()
This is irrelevant to neovim usecases anyway.
2020-09-10 06:50:04 +02:00
f239134fee tests: disable hl glitch test for now, will be fixed in luahl (next PR) 2020-09-10 06:50:04 +02:00
0f41caa265 snap: Fix snapcraft builds #12879
* Use upstream git repo as snap source.
* Fix typo in snapcraft.yaml
  Use latest_tag instead of branch because branch is undefined.
2020-09-09 20:41:03 -07:00
cf0e1bc1fe wip trying to fix the highlighter 2020-09-09 21:22:21 +02:00
82fb6a8818 fix lints 2020-09-09 21:22:21 +02:00
9437327d5e treesitter: use new on_bytes interface
This will significantly reduce the parsing work
needed e.g. when rehighlighting after every keypress
in insert mode.

Also add safety check for tree-sitter trying to read
past the end of a line. This can happen after we sent
an incorrect buffer update.
2020-09-09 21:22:21 +02:00
bc86f76c0a api/buffer: add "on_bytes" callback to nvim_buf_attach
This implements byte-resolution updates of buffer changes.
Note: there is no promise that the buffer state is valid inside
the callback!
2020-09-09 21:22:21 +02:00
81fa107f59 memline: cache byte offset of current line
When editing a line in insert mode, this value will be
used for every keypress.
2020-09-09 21:22:21 +02:00
333bfd5a29 extmark: use resonable names in extmark_splice 2020-09-09 21:22:21 +02:00
f42aa95fbc extmark: separate extmark_splice_cols for column-only change
as the byte logic will be the same for all of these
2020-09-09 21:22:21 +02:00
a621c45ba0 Merge pull request #12840 from vigoux/ts-hl-fixes
treesitter: fix some highlight issues
2020-09-09 19:02:16 +02:00
1ff064126d treesitter: revert wrong optimization in highlights 2020-09-09 16:00:19 +02:00
59712f6dbe win: avoid duplicate separators in $PATH #12869
Seems like redundant env var separators (";" on Windows) in $PATH can
cause weird behavior. From #7377:

> After some time, system(['win32yank', '-o']) and system('win32yank -o')
> start returning different results: specifically first returns an
> empty string.
>
> 1. $PATH weirdly contains double semicolon followed by path to the
>    “installation directory” (unpacked directory from archive).
> 2. If I run `let $PATH=substitute($PATH, ';;', ';', 'g')` the problem is fixed.

close #7377
ref 224f99b85d
2020-09-08 20:47:22 -07:00
df6b49b4ee vim-patch:8.2.1635: no digraph for 0x2022 BULLET #12876
Problem:    No digraph for 0x2022 BULLET.
Solution:   Use "oo". (Hans Ginzel, closes vim/vim#6904)
57ad94c5a9
2020-09-08 20:45:27 -07:00
aa45579206 win/env: fix stdpath()/XDG_* initialization, parsing #12829
- Windows environment variables are semicolon-separated, but some logic
  was assuming colon (:). This broke initialization and parsing of
  XDG_CONFIG_DIRS, XDG_DATA_DIRS, 'runtimepath', stdpath(), etc.
- test/defaults_spec: enable tests on Windows

ref #12793
2020-09-07 22:40:12 -07:00
6abbc157af Merge #12862 snap: multiarch, support luajit where possible 2020-09-07 21:43:13 -07:00
a90cd6e36a Merge #12868 vim-patch:8.2.{1625,1630,1633} 2020-09-07 17:03:19 -07:00
951ef21de5 vim-patch:8.2.1633: some error messages are internal but do not use iemsg()
Problem:    Some error messages are internal but do not use iemsg().
Solution:   Use iemsg(). (Dominique Pellé, closes vim/vim#6894)
e83cca2911

N/A patches for version.c:

vim-patch:8.2.1625: compiler warning for use of fptr_T

Problem:    Compiler warning for use of fptr_T.
Solution:   Make the type less strict.
30d6413782

vim-patch:8.2.1630: terminal test fails

Problem:    Terminal test fails.
Solution:   Correct argument to term_start().  Correct error number.
c98cdb3bc9
2020-09-07 18:42:15 -04:00
d8e6a0396a docs: update (#12860) 2020-09-06 19:55:49 -04:00
c1d395a6d6 UI: forward 'mousefocus' option #12863
close #12849
ref eb4aab7173
2020-09-06 11:40:07 -07:00
d6b280799f Merge pull request #12802 from jamessan/travis-ubuntu-bump 2020-09-06 12:52:37 -04:00
83a7b1b5db test/helpers: Run $SYMBOLIZER to decode sanitizer logs, if it is set 2020-09-06 12:09:36 -04:00
c3e6b6119c Merge pull request #12858 from kyazdani42/fix/no-ts-hl-without-query-value
treesitter: check hl group exists before passing it in nvim_get_hl_id_by_name
2020-09-06 17:18:47 +02:00
eae4b2a088 snap: migrate releases to snapcraft.io buils
Architectures supported by Travis due not match 1 to 1 to the
architectures supported by snapcraft.io and launchpad. To support as
many architectures as possible, deploys to the snap store should be done
via a simulated Github webhook. An additional secret will need to be
added to Travis-ci
2020-09-06 15:00:04 +00:00
1da67c1869 snap: drop snapcraft push release 2020-09-06 14:33:06 +00:00
7e0c4e5329 apply bfredl suggestion 2020-09-06 15:32:24 +02:00
a0b18464ab Merge pull request #11649 from vhakulinen/fix-blank-sections-with-multigrid
invalidate grid on allocation when in ext_multigrid
2020-09-06 13:23:20 +02:00
01b4601376 Merge pull request #12826 from vigoux/ts-lua-match
treesitter: use lua-match? instead of match?
2020-09-06 13:19:12 +02:00
280ee90f24 version.c: update [ci skip] (#12763)
vim-patch:8.1.0113: compiler warning for unused variable
vim-patch:8.1.0294: MS-Windows: sometimes uses short directory name
vim-patch:8.1.0297: MS-Windows: tests fail, Vim crashes
vim-patch:8.1.0338: MS-Windows: VTP doesn't work properly with Powershell
vim-patch:8.1.0718: a couple compiler warnings
vim-patch:8.1.0912: MS-Windows: warning for signed/unsigned
vim-patch:8.1.1130: MS-Windows: warning for unused variable
vim-patch:8.1.1219: not checking for NULL return from alloc()
vim-patch:8.1.1487: older msgfmt cannot generate proper .desktop file
vim-patch:8.1.1528: popup_any_visible() is unused
vim-patch:8.1.2252: compiler warning for int size
vim-patch:8.1.2323: Old MSVC version no longer tested.
vim-patch:8.1.2424: MS-Windows: console buffer is resized unnecessarily

vim-patch:8.2.0541: Travis CI does not give compiler warnings
vim-patch:8.2.0545: unused arguments ignored in non-standard way
vim-patch:8.2.0550: some changes in the libvterm upstream code
vim-patch:8.2.0553: error for unused argument
vim-patch:8.2.0608: warning from clang when building message test
vim-patch:8.2.0781: compiler warning for not using value in Lua
vim-patch:8.2.0838: MS-Windows: compiler warning for uninitialized variables
vim-patch:8.2.0891: clang warns for invalid conversion
vim-patch:8.2.1234: Lua build problem with old compiler
vim-patch:8.2.1487: Travis: installing snd-dummy is not always useful
vim-patch:8.2.1495: "make clean" may delete too many files
vim-patch:8.2.1545: ch_logfile() is unclear about closing when forking
vim-patch:8.2.1546: build rule for Vim.app is unused
vim-patch:8.2.1559: s390x tests work again
vim-patch:8.2.1567: no example to use ubsan with clang
vim-patch:8.2.1579: reports from asan are not optimal
vim-patch:8.2.1583: MS-Windows: cannot easily measure code coverage
vim-patch:8.2.1589: term_start() options for size are overruled by 'termwinsize'
vim-patch:8.2.1594: pull requests on github do not notify a maintainer
vim-patch:8.2.1595: cannot easily see what Vim sends to the terminal
vim-patch:8.2.1596: using win_screenpos('.') in tests works but is wrong
vim-patch:8.2.1598: starting a hidden terminal resizes the current window
vim-patch:8.2.1605: default maintainer on github is wrong
2020-09-06 12:51:32 +02:00
9c929e7d23 lint: just bit twiddlin' 2020-09-06 11:25:23 +02:00
b397f31ede tests: update query.list_predicates() test 2020-09-06 10:33:13 +02:00
e54c6b077c treesitter: update docs on predicates 2020-09-06 10:31:47 +02:00
dc579c420b treesitter: Use excplicit names in tests 2020-09-06 10:30:40 +02:00
20c1526552 treesitter: simplify match_preds 2020-09-06 10:30:39 +02:00
2d6437f5fb treesitter: use lua-match? instead of match? 2020-09-06 10:29:47 +02:00
9be302e9a6 Invalidate grid on allction when in ext_multigrid
When in ext_multigrid mode, after a window gets resized neovim wont
currently send all the needed events fill the window's blank space and
thus' UIs will have invalid grid state.
2020-09-06 10:12:30 +02:00
8efebda2c6 snap: Ensure version reflects Github release ver 2020-09-06 05:42:47 +00:00
a7d48cb960 snap: Match snap release to github releases 2020-09-06 05:41:19 +00:00
92eab3baef snap: adjust make command depending on architecture
i386, amd64, armhf platforms should be build with luajit all others with
lua.
2020-09-06 05:36:21 +00:00
b5cbd448bf Revert back to core18 for i386 support 2020-09-06 05:30:00 +00:00
e57ea5f2a9 doc: fix invalid help tags #12745 2020-09-05 22:10:56 -07:00
bedab7e87b provider: align all foo#Detect() functions #12839
Problem: ruby#Detect() and node#Detect() don't return a [prog, err] pair
which means callers must special-case them.

Solution: align their return signatures with the perl/pythonx providers.
2020-09-05 15:02:46 -07:00
fb55cb2d91 fix(highlight): compare rows vs columns in range highlight check (#12852) 2020-09-05 17:22:54 -04:00
858c056133 Support for :perl, :perlfile, :perldo and perleval() (#12809)
* support for :perl, :perlfile, :perldo and perleval()

* document that the perl provider doesn't currently work on Windows

* document that the perl legacy interface is now also supported

* added perleval() documentation

* import legacy perl interface tests

* only perl 5.22+ is supported

* healtcheck: use g:perl_host_prog if its set instead

using just 'perl' isn't correct as it may not be the version requested.
ditto for 'cpanm', rather go through 'App::cpanminus' to find the latest
perl version
2020-09-05 13:55:06 -07:00
8b5c6a1b73 Merge pull request #12838 from bfredl/screenshot
nvim__screenshot
2020-09-05 22:54:25 +02:00
981f3f17a0 treesitter: check hl group exists before passing it in nvim_get_hl_id_by_name 2020-09-05 21:43:40 +02:00
2cea6ab012 vim-patch:8.2.1586: :resize command not fully tested (#12853)
Problem:    :resize command not fully tested.
Solution:   Add a couple of tests. (Dominique Pellé, closes vim/vim#6857)
fe6dce8739
2020-09-05 12:31:45 -07:00
8705fbf77c healtcheck: use g:perl_host_prog if its set instead
using just 'perl' isn't correct as it may not be the version requested.
ditto for 'cpanm', rather go through 'App::cpanminus' to find the latest
perl version
2020-09-05 13:09:15 +01:00
a1508c9f6d nvim__screenshot 2020-09-05 13:33:21 +02:00
7b1b271f43 Merge pull request #12788 from bfredl/nulloffset-1
robustness: avoid adding offset to NULL pointer
2020-09-05 13:32:58 +02:00
b33e375b2b robustness: avoid adding offset to NULL pointer
UBSAN with clang 10.0 is checking for adding offsets to a `NULL` pointer
which is not allowed. This is not yet checked in the version of clang
used in CI (7.0.0). I will work on cases of this so that tests passes
locally for me.

This could be tested in CI by either upgrading the clang of the
ASAN/UBSAN to 10.0, or add yet another CI target which builds with
clang 10.0.
2020-09-04 23:29:51 +02:00
7593c8012b treesitter: update runtime 2020-09-04 20:59:00 +02:00
3853276d9c Merge pull request #12850 from bfredl/oopsie
API: be less breaking in the decorations
2020-09-04 20:48:13 +02:00
866308c3de API: be less breaking in the christmas tree decorations 2020-09-04 19:11:26 +02:00
33bf6f9ada ci: Try to recover from sanitizer issues
When running in CI, we want to find as many problems as possible
instead.  Let the code try to keep running from recoverable issues so we
report all the sanitize issues we can.
2020-09-04 11:09:25 -04:00
1e14dacd08 Merge pull request #12847 from nvim-treesitter/ts-list-predicates
treesitter: allow to list supported predicates
2020-09-04 17:01:49 +02:00
74ad66404f suggest_trie_walk: Remove invalid FALLTHROUGH annotation 2020-09-04 10:59:16 -04:00
2516386c6b travis: Install clang-11 for ASAN/UBSAN job
[skip appveyor]
2020-09-04 10:59:16 -04:00
16e69eae70 travis: Relax pyenv versions to 2.7:3.8
We don't care about the specifics of the patch version, so just set the
major:minor.

[skip appveyor]
2020-09-04 10:59:15 -04:00
f7434bab73 travis: Install powershell via "snaps" addon
[skip appveyor]
2020-09-04 10:59:15 -04:00
89ed96fab9 travis: Bump Linux dist to bionic
[skip appveyor]
2020-09-04 10:59:08 -04:00
ef5a09d4fc Merge pull request #12816 from vigoux/decorations
New Decorations API (not finalized, but we gonna build on this)
2020-09-04 16:39:48 +02:00
dd465bbccc Merge pull request #12848 from jamessan/vim-8.2.1552 2020-09-04 10:16:57 -04:00
3fd6e3b923 treesitter: allow to list supported predicates 2020-09-04 15:24:23 +02:00
b163a89925 vim-patch.sh: Fix PR subject with multiple patches 2020-09-04 08:46:46 -04:00
5707982bd3 lint 2020-09-04 08:27:33 -04:00
1190192216 vim-patch:8.2.1560: using NULL pointers in some code
Problem:    Using NULL pointers in some code. (James McCoy)
Solution:   Avoid adding to a NULL pointer.  Use byte as unsigned.
9c2b06637b

The changes to eval.c (skip_expr_concatenate) and vim9compile.c aren't
included since they're specific to vim9script support.
2020-09-04 08:25:33 -04:00
ae8f108732 vim-patch:8.2.1553: crash in edit test
Problem:    Crash in edit test.
Solution:   Avoid using invalid pointer.
2c93c685e3
2020-09-04 08:25:25 -04:00
0c851e5226 vim-patch:8.2.1552: warnings from asan with clang-11
Problem:    Warnings from asan with clang-11. (James McCoy)
Solution:   Avoid using a NULL pointer. (issue vim/vim#6811)
64f37d3090
2020-09-03 23:00:24 -04:00
1832d18083 treesitter: update to use buf_set_extmark 2020-09-03 15:40:31 +02:00
49f5b57587 decor: sketch new decorations API
return decorations back

lol no nvim_buf_get_virtual_text

share decorations that are hl only to avoid alloc avalanche
2020-09-03 15:40:24 +02:00
98dea93ba0 only perl 5.22+ is supported 2020-09-03 09:57:59 +01:00
d802658ebb import legacy perl interface tests 2020-09-03 09:57:59 +01:00
7725fd9880 added perleval() documentation 2020-09-03 09:57:59 +01:00
8c6e96bb50 document that the perl legacy interface is now also supported 2020-09-03 09:57:59 +01:00
d3302573ba extmark: move id to dict in nvim_buf_set_extmark 2020-09-03 10:23:52 +02:00
54ce1010e8 extmark: refiy "Decoration" abstraction
one very important thought
2020-09-03 10:23:52 +02:00
3acfefb63e Merge #12827 'vim-patch:8.2.{1554,1561,1564,1565,1566}' 2020-09-02 22:31:31 -07:00
5fcdb63025 vim-patch:8.2.1564: a few remaining errors from ubsan
Problem:    A few remaining errors from ubsan.
Solution:   Avoid the warnings. (Dominique Pellé, closes vim/vim#6837)
4ad739fc05
2020-09-02 22:44:21 -04:00
b9430fe28e vim-patch:8.2.1566: not all Bazel files are recognized
Problem:    Not all Bazel files are recognized.
Solution:   Add *.bazel and *.BUILD. (closes vim/vim#6836)
4488f5a545
2020-09-02 21:59:36 -04:00
4bcca0baa9 vim-patch:8.2.1565: spellfile test sometimes fails
Problem:    Spellfile test sometimes fails.
Solution:   Check running into the end of the file.
e90d63ea90
2020-09-02 09:10:50 -04:00
cc64f2cc1d vim-patch:8.2.1561: using NULL pointers in fold code
Problem:    Using NULL pointers in fold code.
Solution:   Avoid using a NULL pointer. (Dominique Pellé, closes vim/vim#6831,
            closes vim/vim#6831)
81fcb67fb3
2020-09-02 09:10:50 -04:00
22e9aadc88 vim-patch:8.2.1554: crash in normal test
Problem:    Crash in normal test.
Solution:   Skip adjusting marks if there are no folds.
07e87e9eb5
2020-09-02 08:57:43 -04:00
948e625e1e Merge #12468 'lsp: logging' 2020-09-01 20:50:08 -07:00
e86b15b25c lsp/make_position_param(): handle empty buffer #12825
Fix  #12623

problem: nvim_buf_get_lines(0) returns empty during startup, where no buffers are loaded yet.
solution: return empty object

Happens during startup, where buffer may not be loaded yet, because...
`source_startup_scripts()` is done before `edit_buffers()`:
9bb552875d/src/nvim/main.c (L362)
9bb552875d/src/nvim/main.c (L480)
2020-09-01 20:45:47 -07:00
a166c2aadb eval_call_provider(): free unused return value #12819
Caller can pass discard=true to free the unwanted return value.
2020-09-01 20:22:42 -07:00
4bcf54478a Merge pull request #12814 from theHamsta/escape-queries
treesitter: avoid escaping complete query strings
2020-09-01 12:50:21 +02:00
04ab26b885 Merge pull request #12736 from vigoux/ts-iter-children
treesitter: allow to iterate over node children
2020-09-01 10:52:55 +02:00
c14a9f6fcc g📋 allow command given as a list #12775
fixes #12768
2020-09-01 00:27:38 -07:00
18217b987f treesitter: add node:field() to get field children 2020-09-01 08:57:55 +02:00
a50cf35bda build/FindLua.cmake: allow Lua 5.4 #12820
Lua 5.4 is out, and will be shipped with Fedora 33.
2020-08-31 22:06:59 -07:00
b058c671d2 treesitter: avoid escaping complete query strings
Escape "\\" only for `vim-match?` not for `match?`
Fixes #12595
2020-08-31 17:24:38 +02:00
2bbbb34ce7 Merge pull request #12804 from janlazo/vim-8.1.1725
[RDY]vim-patch:8.1.{1694,1725,1776,1804,1806,1831,2041,2198,2206},8.2.{1033,1315,1548}
2020-08-31 08:25:16 -04:00
e123fd0a5d treesitter: allow to iterate over node children 2020-08-31 13:42:30 +02:00
24b5f69a49 fix(win): ignore closing wins in win_findbuf #12798
This caused segfaults when calling win_findbuf in an `on_detach`
callback, when the callback was triggered when closing the last window
containing the buffer.
2020-08-31 00:53:10 -07:00
c2662210b5 docs, remove 'guifontset' #11708
- remove redundant autocmd list
  This "grouped" list is useless, it only gets in the way when searching
  for event names.
- intro.txt: cleanup
- starting.txt: update, revisit
- doc: `:help bisect`
- mbyte.txt: update aliases 1656367b90. closes #11960
- options: remove 'guifontset'. Why:
  - It is complicated and is used by almost no one.
  - It is unlikely to be implemented by Nvim GUIs (complicated to parse,
    specific to Xorg...).
2020-08-31 00:51:35 -07:00
3229ba0cde lsp: Fix bad sortText comparison (#12485)
The spec indicates we have to fallback to comparing by label
if sortText is falsy.

Closes #12431
2020-08-30 22:29:47 -07:00
62ba227155 vim-patch:8.2.1548: cannot move position of "%%" in message translations
Problem:    Cannot move position of "%%" in message translations. (Emir Sarı)
Solution:   Improve the check script.
0b8cf278ec
2020-08-30 21:19:23 -04:00
52a2a1b3d2 vim-patch:8.1.1694: the RUN_VIM variable is longer than needed
Problem:    The RUN_VIM variable is longer than needed.
Solution:   Shorten RUN_VIM. (Daniel Hahler, closes vim/vim#4643)
41a8260445
2020-08-30 21:12:26 -04:00
697a6ca2e4 vim-patch:8.1.2041: no test for diff mode with syntax highlighting
Problem:    No test for diff mode with syntax highlighting.
Solution:   Add a test case.
248fdb3332
2020-08-30 21:12:26 -04:00
aa60cb1083 vim-patch:8.1.1831: confusing skipped message
Problem:    Confusing skipped message.
Solution:   Drop "run" from "run start the GUI".
2514315fc2

Cherry-pick 'CheckCanRunGui' user command from patch 8.1.1826.
2020-08-30 21:12:26 -04:00
2bae98a5ea vim-patch:8.1.2206: no test for fixed issue vim/vim#3893
Problem:    No test for fixed issue vim/vim#3893.
Solution:   Add a test. (Christian Brabandt, vim/vim#3893)
28686682e7
2020-08-30 21:12:26 -04:00
d4df5fc90e vim-patch:8.1.1806: test for display updating doesn't check without statusline
Problem:    Test for display updating doesn't check without statusline.
Solution:   Add screenshots without a status line.
7cc535175a
2020-08-30 21:12:26 -04:00
f48847c578 vim-patch:8.1.1804: no test for display updating without a scroll region
Problem:    No test for display updating without a scroll region.
Solution:   Add a test.
3c8ee62974
2020-08-30 21:12:26 -04:00
1fbfd6ba09 vim-patch:8.1.1776: text added with a job isn't displayed
Problem:    Text added with a job to another buffer isn't displayed.
Solution:   Update topline after adding a line. (closes vim/vim#4745)
4641a122f2
2020-08-30 21:12:26 -04:00
a45dc02a14 vim-patch:8.1.2198: crash when using :center in autocommand
Problem:    Crash when using :center in autocommand.
Solution:   Bail out early for an empty line. (Dominique pelle, closes vim/vim#5095)
396b7c78c0

Cherry-pick 'src/testdir/check.vim' changes from patch 8.1.1544.
2020-08-30 21:12:25 -04:00
40fca0cea8 vim-patch:8.2.1315: MS-Windows: test log contains escape sequences
Problem:    MS-Windows: test log contains escape sequences.
Solution:   Do not use t_md and t_me but ANSI escape sequences. (Ken Takata,
            closes vim/vim#6559)
45df2a01a7
2020-08-30 21:12:25 -04:00
61218d3c77 vim-patch:8.2.1033: not easy to read the test time in the test output
Problem:    Not easy to read the test time in the test output.
Solution:   Align the times.  Make slow tests bold.
8d9437968b
2020-08-30 21:12:25 -04:00
269a271a10 vim-patch:8.1.1725: MS-Windows: E325 message may use incorrect date format
Problem:    MS-Windows: E325 message may use incorrect date format.
Solution:   Convert strftime() result to 'encoding'.  Also make the message
            translatable. (Ken Takata, closes vim/vim#4685, closes vim/vim#4681)
663bbc09ba
2020-08-30 21:12:25 -04:00
b3f5083b8d Merge #12815 'snap: update, fix build issues' 2020-08-30 14:03:33 -07:00
65b2fce787 snap: don't run snapcraft under sudo
Snapcraft 4.0 complains about running LXD builds under sudo.  So instead
add the CI user to the "lxd" group and use sg to switch to that
membership.

Resolves: #12712
2020-08-30 17:13:41 +00:00
dd33725802 document that the perl provider doesn't currently work on Windows 2020-08-30 17:19:05 +01:00
9bef25314e support for :perl, :perlfile, :perldo and perleval() 2020-08-30 17:19:05 +01:00
9c65017c3b Snapcraft: Use lua instead of luajit for arm64 2020-08-30 16:12:56 +00:00
8735105af8 Snapcraft: Build with Debug Info 2020-08-30 16:12:56 +00:00
7c4267e42c Add missing dependencies for Launchpad builds 2020-08-30 16:12:56 +00:00
fea608269a Bump to core20 2020-08-30 16:12:56 +00:00
c6648fe882 l10n: Update Ukrainian translation (#12785) 2020-08-30 00:06:32 -07:00
fbbc8cb8b1 Merge #12794 'tui: Fixing problems with GNU Screen' 2020-08-29 22:19:15 -07:00
46e74142ab Merge pull request #12797 from clason/libvterm-0.1.4
third-party: upgrade libvterm to v0.1.4
2020-08-28 00:48:26 -04:00
7de276b877 bump libvterm to 0.1.4 2020-08-27 20:01:14 +02:00
994e40914b Revert "tui: improve support for GNU Screen (#12098)"
This reverts commit f3ffe0b325.
Sending a control sequence to the host terminal, wrapped in DCS, causes
problems because it changes the state of the host terminal outside the
screen's control. This change will therefore be reverted.
2020-08-27 00:52:49 +09:00
8628dfe365 Revert "tui: Fix italics when $TERM is screen in tmux #12199"
This reverts commit 9d0222ee3e.
2020-08-27 00:52:17 +09:00
91109ffda2 Merge pull request #12510 from jamessan/clang-implicit-fallthrough 2020-08-26 07:13:27 -04:00
3b1db74963 lsp: add key name to the output log value
Unless we look at the code every time, we will not know what the value is, so add the key name.
2020-08-26 12:06:07 +09:00
154cbe61c4 lsp: remove output log at rpc.notify
Since "rpc.send.payload" outputs the log with almost the same contents, delete the output here.
2020-08-26 12:06:07 +09:00
43202964f3 Merge pull request #12708 from runiq/lsp-doc
Add docs for some methods in vim.lsp
2020-08-25 09:52:22 -04:00
8a333afec5 Merge pull request #12786 from janlazo/vim-8.1.1516
vim-patch:8.1.{1516,1677,2051,2089,2275,2364},8.2.{423,1517}
2020-08-24 20:59:40 -04:00
1f84ea061d spell_load_file: Add missing "goto endFAIL" if spellfile is not readable 2020-08-23 21:18:34 -04:00
75813af542 Disable -Wimplicit-fallthrough for tree_sitter/ 2020-08-23 21:18:34 -04:00
37fa8d3f44 Disable -Wimplicit-fallthrough for funcs.generated.h
This is code generated by gperf, so there's nothing we can do about it.
The code does have /*FALLTHROUGH*/ comments but clang doesn't recognize
them.
2020-08-23 20:59:39 -04:00
b46b373065 vim-patch:8.1.2275: using "seesion" looks like a mistake
Problem:    Using "seesion" looks like a mistake.
Solution:   Use an underscore to make the function sort first.
1e15e61188
2020-08-23 18:45:05 -04:00
107e50b25e vim-patch:8.2.1517: cannot easily get the character under the cursor
Problem:    Cannot easily get the character under the cursor.
Solution:   Add the {chars} argument to strpart().
6c53fca023
2020-08-23 18:32:39 -04:00
bf8d96a30d vim-patch:8.2.0423: in some environments a few tests are expected to fail
Problem:    In some environments a few tests are expected to fail.
Solution:   Add $TEST_MAY_FAIL to list tests that should not cause make to
            fail.
ce436de5a9
2020-08-23 15:08:45 -04:00
b59dadde4e vim-patch:8.1.2364: termwinscroll test is flaky on FreeBSD
Problem:    Termwinscroll test is flaky on FreeBSD.
Solution:   Add to list of flaky tests.  Rename function.
e219f73ed5
2020-08-23 14:30:11 -04:00
d1e7156f26 vim-patch:8.1.2089: do not get a hint that $TEST_FILTER was active
Problem:    Do not get a hint that $TEST_FILTER was active.
Solution:   Mention $TEST_FILTER if no functions were executed.
7b666c7883
2020-08-23 14:26:20 -04:00
9961e9bcb7 vim-patch:8.1.2051: double-click test is a bit flaky
Problem:    Double-click test is a bit flaky.
Solution:   Correct entry in list of flaky tests.
705918f9f7
2020-08-23 14:25:02 -04:00
b4a5745e84 vim-patch:8.1.1677: tests get stuck when running into an existing swapfile
Problem:    Tests get stuck when running into an existing swapfile.
Solution:   Set v:swapchoice to "q" and report an error. (Daniel Hahler,
            closes vim/vim#4644)
b073da8929
2020-08-23 13:35:26 -04:00
3fac3cad75 vim-patch:8.1.1516: time reported for a test measured wrong
Problem:    Time reported for a test measured wrong.
Solution:   Move the computation to the end of RunTheTest(). (Ozaki Kiichi,
            closes vim/vim#4520)
640d4f0c97
2020-08-23 13:22:14 -04:00
9d9edebceb gen_vimdoc: Allow to keep intermediary output 2020-08-23 13:48:27 +02:00
b5782c3b81 Add FIXMEs 2020-08-23 13:48:27 +02:00
ac05343a10 Add docs for most vim.lsp methods
Most of the lsp.log will be addressed in a separate PR.
2020-08-23 13:48:25 +02:00
8c49e3d509 Merge pull request #12770 from janlazo/vim-8.1.1115
vim-patch:8.1.{1115,2267},8.2.{607,814,1472,1474,1476,1511}
2020-08-22 18:34:52 -04:00
246c510b60 vim-patch:8.2.1511: putting a string in Visual block mode ignores multi-byte
Problem:    Putting a string in Visual block mode ignores multi-byte
            characters.
Solution:   Adjust the column for Visual block mode. (closes vim/vim#6767)
cd94277f72
2020-08-22 17:07:21 -04:00
091fc72a92 vim-patch:8.2.0814: clang warning for implicit conversion
Problem:    Clang warning for implicit conversion.
Solution:   Add type cast. (Dominique Pelle, closes vim/vim#6124)
3718427ba3
2020-08-21 21:39:57 -04:00
1d9b146ce3 vim-patch:8.2.0607: gcc warns for using uninitialized variable
Problem:    Gcc warns for using uninitialized variable. (John Marriott)
Solution:   Set name_end also for environment variables.
2bb76accc6
2020-08-19 21:38:42 -04:00
8d6c1edc6e vim-patch:8.1.2267: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Rearrange the code.
3b991527e8
2020-08-18 23:34:13 -04:00
45615cedd1 vim-patch:8.2.1472: ":argdel" does not work like ":.argdel" as documented
Problem:    ":argdel" does not work like ":.argdel" as documented. (Alexey
            Demin)
Solution:   Make ":argdel" work like ":.argdel". (closes vim/vim#6727)
            Also fix giving the error "0 more files to edit".
7b22117c4e
2020-08-17 23:34:39 -04:00
27a6728848 vim-patch:8.2.1476: filetype test fails on MS-Windows
Problem:    Filetype test fails on MS-Windows.
Solution:   Remove "^" from pattern.
aa9675a61d
2020-08-17 18:30:34 -04:00
97d3bd0bc6 vim-patch:8.2.1474: /usr/lib/udef/rules.d not recognized as udevrules
Problem:    /usr/lib/udef/rules.d not recognized as udevrules.
Solution:   Adjust match pattern. (Haochen Tong, closes 36722)
624b6eaf20
2020-08-17 18:30:10 -04:00
e99d1a7fbb vim-patch:8.1.1115: cannot build with older C compiler
Problem:    Cannot build with older C compiler.
Solution:   Move variable declaration to start of block.
8f4aeb5572
2020-08-17 02:18:55 -04:00
161cdba1e3 vim-patch:8.2.1471: :const only locks the variable, not the value (#12765)
Problem:    :const only locks the variable, not the value.
Solution:   Lock the value as ":lockvar 1 var" would do. (closes vim/vim#6719)
241572794f
2020-08-16 17:13:52 -07:00
83f5bf435d runtime/tex.vim: patch to 2547aa930b59 #12504
vim/vim@2547aa930b
2020-08-16 15:23:28 -07:00
c219d3eec4 defaults: sessionoptions+=unix,slash #12760
Since 1c3ca4f18f, 2c1d12d0be, #7836, the "unix" and "slash" behavior
of 'sessionoptions'/'viewoptions' is always enabled, and the flags are
just ignored. There is no reason for that behavior to be configurable.

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2020-08-15 19:19:06 -07:00
37aa9c9c94 Merge pull request #12713 from janlazo/vim-8.2.1347
vim-patch:8.1.{573,1674,2097,2098,2341},8.2.{1347,1360,1361,1364,1369,1377,1379,1386,1409,1410,1438,1441,1458}
2020-08-15 17:45:18 +02:00
75aeb815b4 version.c: update [ci skip] (#12662)
vim-patch:8.0.1454: when in silent mode too much output is buffered

vim-patch:8.1.0464: MS-Windows: job_info() has cmd without backslashes
vim-patch:8.1.0581: double free without the text properties feature
vim-patch:8.1.1392: build failure in tiny version
vim-patch:8.1.1541: check for ASAN is not reliable
vim-patch:8.1.1640: the CursorHold autocommand takes down a balloon
vim-patch:8.1.1808: build failure for tiny version

vim-patch:8.2.0062: memory test is flaky on FreeBSD
vim-patch:8.2.0524: Win32: searching for file matches is slow
vim-patch:8.2.0525: Win32: typo in assignment and misplaced paren
vim-patch:8.2.0569: build failure with tiny version
vim-patch:8.2.0774: t_TI and t_TE are output when using 'visualbell'
vim-patch:8.2.1225: linker errors when building with dynamic Python 3.9
vim-patch:8.2.1226: MS-Windows: windows positioning wrong depending on taskbar
vim-patch:8.2.1228: scrollbars not flush against the window edges when maximised
vim-patch:8.2.1231: MS-Windows: GUI code can be cleaned up
vim-patch:8.2.1232: MS-Windows GUI: Snap cancelled by split command
vim-patch:8.2.1240: GUI tests sometimes fail because of translations
vim-patch:8.2.1245: build failure in tiny version
vim-patch:8.2.1248: Netbeans test is flaky in the GUI
vim-patch:8.2.1264: terminal getwinpos() test is a bit flaky
vim-patch:8.2.1266: Makefile preference were accidentally included
vim-patch:8.2.1273: MS-Windows: terminal test may leave file behind
vim-patch:8.2.1277: tests on Travis do not run with EXITFREE
vim-patch:8.2.1279: some tests on Travis have EXITFREE duplicated
vim-patch:8.2.1298: compiler warning for unused argument in small version
vim-patch:8.2.1309: build failure with tiny version
vim-patch:8.2.1310: configure with Xcode 12 fails to check for tgetent
vim-patch:8.2.1312: MS-Windows: terminal test may fail if dir.exe exists
vim-patch:8.2.1317: MS-Windows tests on AppVeyor are slow
vim-patch:8.2.1318: no status badge for Github CI
vim-patch:8.2.1319: status badge for Github CI has wrong link
vim-patch:8.2.1321: GitHub CI also runs on tag push
vim-patch:8.2.1327: Mac: configure can't find Tcl libraries
vim-patch:8.2.1330: Github workflow takes longer than needed
vim-patch:8.2.1334: Github workflow timeout needs tuning
vim-patch:8.2.1335: CTRL-C in the GUI doesn't interrupt
vim-patch:8.2.1336: build failure on non-Unix systems
vim-patch:8.2.1346: small build fails
vim-patch:8.2.1348: build failure without the eval feature
vim-patch:8.2.1353: crash when drawing double-wide character in terminal window
vim-patch:8.2.1381: MS-Windows: crash with Python 3.5 when stdin is redirected
vim-patch:8.2.1385: no testing on ARM
vim-patch:8.2.1389: file missing from the distribution
vim-patch:8.2.1402: s390x tests always fail
vim-patch:8.2.1422: the Mac GUI implementation is outdated
vim-patch:8.2.1424: Mac build fails
vim-patch:8.2.1436: function implementing :substitute has unexpected name
vim-patch:8.2.1442: outdated references to the Mac Carbon GUI
vim-patch:8.2.1448: test 77a for VMS depends on small.vim which does not exist
vim-patch:8.2.1449: some test makefiles delete files that are not generated
vim-patch:8.2.1456: MS-Windows: test files are not deleted
2020-08-15 17:35:14 +02:00
056d99b0f6 tui: fix pvs/v728 2020-08-15 10:57:18 -04:00
9f591e6f23 shada: fix pvs/v1004 2020-08-15 10:57:17 -04:00
aab71dbd03 userfunc: fix pvs/v547
xcalloc() never returns NULL.
2020-08-15 10:57:17 -04:00
273ad7d66f fixup! mksession: always unix slashes "/" for filepaths 2020-08-15 10:57:17 -04:00
acf4197290 ex_docmd: replace #define with enum
enum value can be inferred from previous member.
Vim was doing this manually via relative #define.

It's not needed but it is confusing for me to update an array index
after the array value and to configure the array index
such that it is dependent on other array indices.
One missing #define and everything below breaks.
2020-08-15 10:57:17 -04:00
6ac51792b9 fixup! vim-patch:68e6560b84f1 2020-08-15 10:57:17 -04:00
afc6753f64 vim-patch:8.2.1458: .gawk files not recognized
Problem:    .gawk files not recognized.
Solution:   Recognize .gawk files. (Doug Kearns)
9a5c553f79
2020-08-15 10:57:16 -04:00
4a0dbe866f vim-patch:8.2.1441: running tests in tiny version gives error for summarize.vim
Problem:    Running tests in tiny version gives error for summarize.vim.
Solution:   Set 'cpoptions' to allow for line continuation.  Restore
            redirecting test output to /dev/null.
c771908681
2020-08-14 18:20:30 -04:00
f81167dc6f vim-patch:8.2.1438: missing tests for interrupting script execution from debugger
Problem:    Missing tests for interrupting script execution from debugger.
Solution:   Add tests. (Yegappan Lakshmanan, closes vim/vim#6697)
7ac616cb0a
2020-08-14 18:20:30 -04:00
ab85f774a6 vim-patch:8.2.1410: adding compiler plugin requires test change
Problem:    Adding compiler plugin requires test change.
Solution:   Include compiler plugin and adjust test.
7f7a888869
2020-08-14 18:20:30 -04:00
5e95e0da44 vim-patch:8.2.1409: nmpmrc and php.ini filetypes not recognized
Problem:    Nmpmrc and php.ini filetypes not recognized.
Solution:   Add filetype detection. (Doug Kearns)
1e91eafc2e
2020-08-14 18:20:30 -04:00
4eb89e7f9b vim-patch:8.1.2098: mksession test fails on MS-Windows
Problem:    mksession test fails on MS-Windows.
Solution:   Skip testing with backslashes on MS-Windows.
37ac4a531c
2020-08-14 18:20:29 -04:00
0361909462 vim-patch:8.1.2097: :mksession is not sufficiently tested
Problem:    :mksession is not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes vim/vim#4992)
66f0e6c6e2
2020-08-14 18:20:29 -04:00
af58bee2f4 vim-patch:8.2.1386: backslash not removed afer space with space in 'isfname'
Problem:    Backslash not removed afer space in option with space in
            'isfname'.
Solution:   Do remove backslash before space, also when it is in 'isfname'.
            (Yasuhiro Matsumoto, closes vim/vim#6651)
994b89d28d
2020-08-14 18:20:29 -04:00
bc2c75cbd7 vim-patch:8.2.1379: curly braces expression ending in " }" does not work
Problem:    Curly braces expression ending in " }" does not work.
Solution:   Skip over white space when checking for "}". (closes vim/vim#6634)
ae95a3946b
2020-08-14 18:20:29 -04:00
afa5b04d00 vim-patch:8.2.1377: triggering the ATTENTION prompt causes typeahead mess up
Problem:    Triggering the ATTENTION prompt causes typeahead to be messed up.
Solution:   Increment tb_change_cnt. (closes vim/vim#6541)
b8d732e93e
2020-08-14 18:20:29 -04:00
9b361e9ea1 vim-patch:8.2.1369: MS-Windows: autocommand test sometimes fails
Problem:    MS-Windows: autocommand test sometimes fails.
Solution:   Do not rely on the cat command.
14ddd226da
2020-08-14 18:20:28 -04:00
4887c3dc1c vim-patch:8.2.1364: invalid memory access when searching for raw string
Problem:    Invalid memory access when searching for raw string.
Solution:   Check for delimiter match before following quote. (closes vim/vim#6578)
282f9c64e5
2020-08-14 18:20:28 -04:00
037f532076 vim-patch:8.2.1361: error for white space after expression in assignment
Problem:    Error for white space after expression in assignment.
Solution:   Skip over white space. (closes vim/vim#6617)
6a25026262
2020-08-14 18:20:28 -04:00
9abfb85264 vim-patch:8.2.1360: stray error for white space after expression
Problem:    Stray error for white space after expression.
Solution:   Ignore trailing white space. (closes vim/vim#6608)
f96e9dec63
2020-08-14 18:20:28 -04:00
7a047d8dc2 vim-patch:8.2.1347: cannot easily get the script ID
Problem:    Cannot easily get the script ID.
Solution:   Support expand('<SID>').
909443028b
2020-08-14 18:20:28 -04:00
0680b5218e vim-patch:8.1.2341: not so easy to interrupt a script programatically
Problem:    Not so easy to interrupt a script programatically.
Solution:   Add the interrupt() function. (Yasuhiro Matsumoto, closes vim/vim#2834)
67a2deb9cb
2020-08-14 18:20:28 -04:00
6d68b2801b vim-patch:8.1.1674: script to check a colorscheme can be improved
Problem:    Script to check a colorscheme can be improved.
Solution:   Match the whole group name. Don't warn for what is usually omitted.
4e63f9425e
2020-08-14 18:20:27 -04:00
903cd73af1 vim-patch:8.1.0573: cannot redefine user command without ! in same script
Problem:    Cannot redefine user command without ! in same script
Solution:   Allow redefining user command without ! in same script, like with
            functions.
55d4691308
2020-08-14 18:20:27 -04:00
3ccdbc570d lua: add vim.register_keystroke_callback (#12536)
* feat: Add vim.register_keystroke_callback

* fixup: Forgot to remove mention of old option

* fixup: Answer jamessan comments

* fixup: Answer norcalli comments

* fixup: portability

* Update runtime/doc/lua.txt

Co-authored-by: Ashkan Kiani <ashkan.k.kiani@gmail.com>
2020-08-14 10:03:17 -04:00
aa48c1c724 Merge pull request #12739 from vigoux/ts-refactor-predicates
treesitter: refactor
2020-08-14 08:33:50 -04:00
6a8dcfab4b treesitter: allow to force predicate addition 2020-08-13 20:40:40 +02:00
5900c99b7c treesitter: update docs on predicates 2020-08-13 20:30:15 +02:00
9564803d1a treesitter: add predicate negation 2020-08-13 20:30:15 +02:00
d7b12e58df treesitter: add and test vim-match? predicate 2020-08-13 20:30:15 +02:00
58e37d7df8 treesitter: add contains? predicate 2020-08-13 20:30:15 +02:00
18c0e77528 treesitter(docs): update and refresh docs 2020-08-13 20:30:15 +02:00
613068071e treesitter: refactor and use lua regexes 2020-08-13 20:30:15 +02:00
7fe7255822 Stop bailing out of msgpack_parse if we see a response 2020-08-11 13:21:40 -04:00
94b7ff730a Merge pull request #12731 from jamessan/libcallnr
libcall: Use "int" for number argument
2020-08-10 23:23:54 -04:00
272389da32 Merge pull request #12632 from tjdevries/tjdevries/packadd_lua
[RFC] lua: Force update of rtp more often
2020-08-10 19:30:58 -04:00
e797d0658c fix: runtimepath always updates lua package.path 2020-08-10 16:48:35 -04:00
602e7505e2 Merge pull request #12621 from Shougo/vim-8.1.1564
[RDY] vim-patch:8.1.1564, 1570, 1623, 1712 : sign column takes up space
2020-08-09 16:19:11 +02:00
1869f86e35 Remove unused function (#12719) 2020-08-08 23:49:44 +02:00
7f49594813 man.vim: Add - to 'iskeyword' (#12598)
Pressing K on manpages with - in their name will now work.

I noticed this the manpages of https://github.com/cli/cli
2020-08-08 12:48:33 -04:00
840c12c107 Merge remote-tracking branch 'upstream/master' into libcallnr 2020-08-08 08:57:35 -04:00
e813ec79c2 libcall: Use "int" for number argument
The libcall family of functions need to use "int" for both input and
output.  The output side was fixed in 9c42232 but I forgot about the
input side.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch libcallnr
# Your branch is up to date with 'upstream/master'.
#
# Changes to be committed:
#	modified:   src/nvim/eval/funcs.c
#	modified:   src/nvim/os/dl.c
#
2020-08-08 08:53:35 -04:00
f26df8bb66 Merge pull request #12701 from erw7/fix-sattr-t-overflow
ui: fix problem with sattr_T overflow
2020-08-03 22:57:13 +09:00
4ed5204bc9 Merge pull request #12665 from janlazo/vim-8.2.1254
vim-patch:8.0.1774,8.1.{192,194,255,264,1202,2172,2340},8.2.{62,71,72,1004,1254,1259,1265,1267,1292,1295}
2020-08-02 20:19:48 +02:00
ea515f8ca1 vim-patch:8.1.0264: backup tests fail when CWD is in /tmp
Problem:    Backup tests fail when CWD is in /tmp.
Solution:   Make 'backupskip' empty. (Christian Brabandt, closes vim/vim#3301)
efe03738f6
2020-08-02 12:00:03 -04:00
ae92177063 vim-patch:8.1.0255: backup test fails when using shadow directory
Problem:    Backup test fails when using shadow directory.
Solution:   Remove check for "src".
f8f88f89e1
2020-08-02 12:00:03 -04:00
0d713fc8ba options: fix 'isident' for Windows
Default value on Windows does not match the documented value.
2020-08-02 12:00:02 -04:00
1123a979d0 vim-patch:8.1.0862: no verbose version of character classes
Problem:    No verbose version of character classes.
Solution:   Add [:ident:], [:keyword:] and [:fname:]. (Ozaki Kiichi,
            closes vim/vim#1373)
221cd9f4dd
2020-08-02 12:00:02 -04:00
0393eec3ea tests/terminal/tui: wait 1ms to avoid data race in FreeBSD 2020-08-02 12:00:02 -04:00
513d117947 vim-patch:8.2.1295: tests 44 and 99 are old style
Problem:    Tests 44 and 99 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes vim/vim#6536)
7d40b8a532
2020-08-02 12:00:02 -04:00
45b91711e4 vim-patch:8.2.1292: AIDL filetype not recognized
Problem:    AIDL filetype not recognized.
Solution:   Add filetype detection. (Dominique Pellé, closes vim/vim#6533)
2afc3b4f77
2020-08-02 12:00:02 -04:00
6f3a18197b vim-patch:8.1.2340: quickfix test fails under valgrind and asan
Problem:    Quickfix test fails under valgrind and asan.
Solution:   Make sure long line does not overflow IObuff. (Dominique Pelle,
            closes vim/vim#5263)  Put back fix for large terminals. (Yegappan
            Lakshmanan, closes vim/vim#5264)
a106e6cde6
2020-08-02 12:00:02 -04:00
886969e1f8 vim-patch:8.1.1202: always get regexp debugging logs when building with -DDEBUG
Problem:    Always get regexp debugging logs when building with -DDEBUG.
Solution:   By default do not create regexp debugging logs. (Ken Takata)
c2d09c9f2c
2020-08-02 12:00:01 -04:00
ca698250fc vim-patch:8.1.0194: possibly use of NULL pointer
Problem:    Possibly use of NULL pointer. (Coverity)
Solution:   Reset the re_in_use flag earlier.
414998023f
2020-08-02 12:00:01 -04:00
1ab1de7845 vim-patch:8.1.0192: executing regexp recursively fails with a crash
Problem:    Executing regexp recursively fails with a crash.
Solution:   Move global variables into "rex".
0270f38e1a
2020-08-02 12:00:01 -04:00
f3964c170e vim-patch:8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Problem:    MS-Windows: tests may fail due to $PROMPT value.
Solution:   Set $PROMPT for testing. (Taro Muraoka, closes vim/vim#6510)
2690b5aed8
2020-08-02 12:00:01 -04:00
2d34ddb3c3 vim-patch:8.2.1265: crash with EXITFREE when split() fails
Problem:    Crash with EXITFREE when split() fails.
Solution:   Restore 'cpoptions'.
7d5e744162
2020-08-02 12:00:01 -04:00
9443d39941 vim-patch:8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Problem:    Empty group in 'tabline' may cause using an invalid pointer.
Solution:   Set the group start position. (closes vim/vim#6505)
f56c95fdad
2020-08-02 12:00:00 -04:00
ed41ac08cf vim-patch:8.2.1004: line numbers below filler lines not always updated
Problem:    Line numbers below filler lines not always updated.
Solution:   Don't break out of the win_line() loop too early. (Christian
            Brabandt, closes vim/vim#6294, closes vim/vim#6138)
511feec6f0
2020-08-02 12:00:00 -04:00
1e6bf6f17a vim-patch:8.2.0072: memory test still fails on Cirrus CI
Problem:    Memory test still fails on Cirrus CI.
Solution:   Allow for a tiny bit more tolerance in the upper limit.
bb062c1588

Check memory usage after  Neovim sourced the Vimscript files.
https://github.com/neovim/neovim/pull/12679

N/A patches for version.c:

vim-patch:8.2.0062: memory test is flaky on FreeBSD

Problem:    Memory test is flaky on FreeBSD.
Solution:   Add a short sleep before getting the first size.
e7538ae997

vim-patch:8.2.0071: memory test often fails on Cirrus CI

Problem:    Memory test often fails on Cirrus CI.
Solution:   Allow for more tolerance in the upper limit.  Remove sleep.
1832d12aea
2020-08-02 12:00:00 -04:00
c207886bdf vim-patch:8.1.2172: spell highlight is wrong at start of the line
Problem:    Spell highlight is wrong at start of the line.
Solution:   Fix setting the "v" variable. (closes vim/vim#5078)
7751d1d1a3

Skip spell tests in OpenBSD.

Nvim or screen likely crashed.
Revist once issue #12104 is fixed.
Skip the test for the following reasons:
- unknown regression caused by https://github.com/neovim/neovim/issues/12104
- cannot revert failing test from ed0d135247
2020-08-02 12:00:00 -04:00
521d571992 vim-patch:8.0.1774: reading very long lines can be slow
Problem:    Reading very long lines can be slow.
Solution:   Read up to 1 Mbyte at a time to avoid a lot of copying.  Add a
            check for going over the column limit.
13d3b05ed2
2020-08-02 12:00:00 -04:00
55ff49b1a7 vim-patch:8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Problem:    MS-Windows: regexp test may fail if 'iskeyword' set wrongly.
Solution:   Override the 'iskeyword' value. (Taro Muraoka, closes vim/vim#6502)
470adb827f
2020-08-02 11:59:59 -04:00
480515e442 Merge pull request #12700 from jamessan/fileinfo-garbage 2020-08-02 11:27:12 -04:00
872ecf65d1 ui: fix problem with sattr_T overflow
sattr_T was defined as uint16_t. But this is not enough to handle the
24-bit colors of the terminal. To solve this problem, change it to int.
In 32bit, int may overflow. So, if it overflows, change it to ignore it
without adding more attr_entries.

fixes #12366
2020-08-02 22:33:18 +09:00
228d7d9482 Merge remote-tracking branch 'upstream/master' into fileinfo-garbage 2020-07-31 17:59:48 -04:00
3e3002b90c fs: Ensure FileInfo struct is initialized
Zero out the caller's FileInfo in all the functions which populate the
struct.  The contents are considered private, so we need to ensure
it's initialized.

If the stat call fails, the buffer we get back from libuv may not have
any valid data in it, so don't copy it into the caller's FileInfo.

This was happening, expectedly, in functional/ex_cmds/write_spec.lua's
"write errors out correctly", which caused it to fail in certain
environments:

    test/functional/ex_cmds/write_spec.lua:130: Expected objects to be the same.
    Passed in:
    (string) 'Vim(write):E212: Can't open file for writing: not a directory'
    Expected:
    (string) 'Vim(write):E166: Can't open linked file for writing'
2020-07-31 17:59:33 -04:00
1153ac9036 Merge pull request #12699 from jamessan/getn 2020-07-31 10:27:57 -04:00
a4fe8bdc97 shada: fix failed assertion on exit (#12692)
If set the number of history saves is 0, assertions fail when inserting an entry on exit.
Dont insert an entry when the number of saves is 0 fixes the issue.

fixes #11497
2020-07-31 16:08:34 +02:00
55a885c179 lua: Use #var instead of deprecated table.getn(var) 2020-07-31 01:33:42 -04:00
817522b231 luacheck: Enforce compatibility with Lua5.1
However, allow reading "jit" since we want to support running
differently under LuaJIT.
2020-07-31 01:32:07 -04:00
82bfdbfe5c Revert "lsp: Fix text edits with the same start position (#12434)" (#12564)
This reverts commit 44fe8828f0.
2020-07-30 13:37:19 -04:00
f1bd2c1dd9 ui: fix problem with the popupmenu when rightleft is set
fixes #12032
2020-07-31 02:11:50 +09:00
54ff1cdd76 Merge pull request #12685 from BigPeet/vim-patch-8.2.1252
vim-patch:8.2.1252
2020-07-29 17:23:21 -04:00
e5e547ded4 vim-patch:8.2.1252: ":marks" may show '< and '> mixed up
Problem:    ":marks" may show '< and '> mixed up.
Solution:   Show the mark position as where '< and '> would jump.
54c3fcd852
2020-07-28 23:33:08 +02:00
5f5bd576e5 Merge pull request #12687 from erw7/fix-terminal-overflow
terminal: fix terminal attribute overflow
2020-07-29 04:36:17 +09:00
b6b270b28f terminal: fix terminal attribute overflow
fixes #11548
2020-07-29 02:16:50 +09:00
33eaa171fa Merge pull request #12673 from erw7/fix-tv-dict-add-str
typval: fix incompatibility with vim
2020-07-26 12:27:58 +09:00
44cbf288ec script: simplify python version check (#12672) 2020-07-24 22:42:25 +02:00
38145b919d build: remove duplicate empty CONFIGURE_COMMAND (#12676)
The cmake file for libvterm had an empty CONFIGURE_COMMAND "", which tells cmake to skip the configure step for this dependency (even though a later patch added another, actual, CONFIGURE_COMMAND two lines below). Evidently the recently released cmake 3.18.0 is pickier about this than previous versions, causing the build to fail. Removing this line makes the build successful again.
2020-07-24 22:39:12 +02:00
6c6cee644d ci: fix build failure in Travis [skip appveyor] (#12678) 2020-07-24 22:37:47 +02:00
e0afec8a62 typval: fix incompatibility with vim
The dict_add_string of vim accepts NULL as the value to add. But
tv_dict_add_str didn't accept it. Change it to accept NULL as well as vim.
2020-07-23 14:51:37 +09:00
73340c1ce2 vim-patch:8.1.1570: icon signs not displayed properly in the number column
Problem:    Icon signs not displayed properly in the number column.
Solution:   Display them properly. (Yegappan Lakshmanan, closes vim/vim#4559)
4dff4aed09
2020-07-23 10:29:36 +09:00
1647e0a5b3 vim-patch:8.1.1564: sign column takes up space
Problem:    Sign column takes up space.  (Adam Stankiewicz)
Solution:   Optionally put signs in the number column. (Yegappan Lakshmanan,
            closes vim/vim#4555, closes vim/vim#4515)
394c5d8870
2020-07-23 10:29:36 +09:00
6b521ceeaf vim-patch:8.1.1712: signs in number column cause text to be misaligned
Problem:    Signs in number column cause text to be misaligned.
Solution:   Improve alignment. (Yasuhiro Matsumoto, closes vim/vim#4694)
d6bcff4577
2020-07-23 10:29:36 +09:00
bfe94d0a08 vim-patch:8.1.1623: display wrong with signs in narrow number column
Problem:    Display wrong with signs in narrow number column.
Solution:   Increase the numbercolumn width if needed. (Yegappan Lakshmanan,
            closes vim/vim#4606)
e4b407f536
2020-07-23 10:29:36 +09:00
d3eddcf630 vim-patch:8.1.1564: sign column takes up space
Problem:    Sign column takes up space.  (Adam Stankiewicz)
Solution:   Optionally put signs in the number column. (Yegappan Lakshmanan,
            closes vim/vim#4555, closes vim/vim#4515)
394c5d8870
2020-07-23 10:29:36 +09:00
326b87feb6 Merge pull request #12646 from vigoux/ts-fix-tilde
buffer_updates: set `deleted_bytes` correctly when hitting `~`

When doing bytebased update, we need to revisit this to let outer calls of ml_get_line handle the deleted part (will be more precise)
2020-07-21 23:03:14 +02:00
b059fb5c67 Merge pull request #12654 from cbarrete/nomodifiable-hover
LSP: make the hover window nomodifiable
2020-07-21 19:50:33 +02:00
be057197d3 buffer_updates: prefer using ml_add_deleted_len_buf 2020-07-21 19:18:04 +02:00
2c34780c32 buffer_updates: emit valid old_byte_size
Test this using treesitter highlighting, which is based on this
old_byte_size.
2020-07-21 19:18:04 +02:00
a6917f840d man.vim: Simplify man#init to reduce load time (#12482)
I removed the SunOS stuff since no one uses SunOS and I've never tested
it on there.

I removed the section_flag init as we can just use -S instead of -s
and -S is used by every implementation as far as I know.

This brings man#init's time from 50-70ms to 15-20ms for me.

Closes #12318
Related #6766
Related #6815
2020-07-21 11:46:42 -04:00
459800db43 Merge pull request #12575 from cbarrete/vim-8.2.0935
[RFC] vim-patch:8.2.{0935,0937}
2020-07-20 22:04:30 +02:00
9464399c8c Fix documentation
The list parameter is an an [in,out] rather than just an [in].
2020-07-20 20:21:49 +02:00
fd6361278b Make the window nomodifiable when it's created 2020-07-20 20:16:46 +02:00
8bb2c3087a LSP: make the hover window nomodifiable 2020-07-20 20:16:46 +02:00
409a1dcdc6 Merge pull request #12653 from erw7/fix-build-freebsd-ci
build: Fix build failure with CI in FreeBSD
2020-07-20 07:49:10 -04:00
950ca6abcd eval: improve ex_execute (#12445) 2020-07-20 11:01:14 +02:00
bfda389c5a build: Fix build failure with CI in FreeBSD
Co-authored-by: James McCoy <jamessan@jamessan.com>
2020-07-20 11:17:25 +09:00
398201cfab lua: Fix crash on unprotected lua errors (#12658)
Can be reproduced with a script like this:

-- in some lua file
vim.fn.timer_start(10, function() error("uh....") end)

-- will cause neovim to crash with the following error.
PANIC: unprotected error in call to Lua API
        (nlua_CFunction_func_call failed.)

After this, it will instead print the error message
from the top of the stack, like so.

tmp/error_nvim.lua:10: uh...

Also added an example test. Previously this test
caused the embedded nvim to panic.
2020-07-19 17:16:48 -04:00
56f3b95180 doc: Add documentation for some vim.lsp.buf functions (#12552)
* Add documentation for some `vim.lsp.buf` functions

* Add inline Lua documentation

* Use generated documentation for LSP buffer functions

Co-authored-by: Cédric Barreteau <>
2020-07-19 17:16:12 -04:00
33837745bb Fix / improve report messages (#12396) 2020-07-19 22:37:50 +02:00
e1d1c413f7 Merge pull request #12480 from nhooyr/mansect-trim
man.vim: Refactor verify_exists to unset $MANSECT as needed
2020-07-19 21:55:12 +02:00
6fcbcf72c3 Merge pull request #12448 from erw7/fix-shada-write-error-on-exit
Fix shada write error on exit, vim-patch:8.2.0920
2020-07-19 21:17:55 +02:00
5a69eb99b7 tui.c: augment_terminfo: remove unused colorterm argument (#12602)
It is unused since 8898793ad.
2020-07-19 18:45:26 +02:00
02bbb8c45b build: fix a problem with the static library name (#12591)
Fix the problem that the static library name was liblibnvim.a in the
environment other than Windows due to the change of bf58c00.
2020-07-19 18:42:41 +02:00
daa5bffd93 Merge pull request #12611 from janlazo/vim-8.0.1531
vim-patch:8.0.{1531,1544,1589,1591,1712,1745,1747},8.1.{819},8.2.{420,539,893,894,895,899,1114,1118,1169,1170,1171,1172,1173,1177,1179,1180,1181,1187,1188,1196,1198,1211,1214,1215,1222}
2020-07-19 18:41:40 +02:00
8e350c1c69 startup: fix stall issue with -D options (#12652)
fixes #12647.
2020-07-19 17:44:22 +02:00
140a372017 vim-patch:8.2.1222: using valgrind in Vim command started by test doesn't work
Problem:    When using valgrind a Vim command started by a test uses the same
            log file name which gets overwritten.
Solution:   Fix regexp to rename the log file.
657a826c07
2020-07-19 11:40:35 -04:00
bb1f06fa82 vim-patch:8.2.1211: removed more than dead code
Problem:    Removed more than dead code.
Solution:   Put back the decrement.
8455c5ed31

N/A patch for version.c:

vim-patch:8.2.1118: condition can never be true, dead code

Problem:    Condition can never be true, dead code.
Solution:   Remove the dead code.
810af5ea46

vim-patch:8.2.1214: MS-Windows: default _vimrc not correct in silent install mode

Problem:    MS-Windows: default _vimrc not correct in silent install mode.
Solution:   Add the LoadDefaultVimrc macro. (Ken Takata, closes vim/vim#6451)
ceb56ddbaf

vim-patch:8.2.1215: Atari MiNT support is outdated

Problem:    Atari MiNT support is outdated.
Solution:   Nobody responded this code is still useful, so let's delete it.
e3f915d12c
2020-07-19 11:40:35 -04:00
e16f2cbd12 vim-patch:8.2.0539: comparing two NULL list fails
Problem:    Comparing two NULL list fails.
Solution:   Change the order of comparing two lists.
7b293c730b

N/A patches for version.c:

vim-patch:8.2.1187: terminal2 test sometimes hangs in the GUI on Travis

Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Disable Test_zz2_terminal_guioptions_bang() for now.
c85156bb89

vim-patch:8.2.1188: memory leak with invalid json input

Problem:    Memory leak with invalid json input.
Solution:   Free all keys at the end. (Dominique Pellé, closes vim/vim#6443,
            closes vim/vim#6442)
6d3a7213f5

vim-patch:8.2.1196: build failure with normal features

Problem:    Build failure with normal features.
Solution:   Add #ifdef.
83e7450053

vim-patch:8.2.1198: terminal2 test sometimes hangs in the GUI on Travis

Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Move test function to terminal3 to see if the problem moves too.
a4b442614c
2020-07-19 11:40:34 -04:00
bf88228180 vim-patch:8.2.0899: assert_equalfile() does not give a hint about the difference
Problem:    Assert_equalfile() does not give a hint about the difference.
Solution:   Display the last seen text.
30cc44a97f
2020-07-19 11:40:34 -04:00
93f2dc0d03 vim-patch:8.2.0893: assert_equalfile() does not take a third argument
Problem:    Assert_equalfile() does not take a third argument.
Solution:   Implement the third argument. (Gary Johnson)
fb517bac23
2020-07-19 11:40:34 -04:00
ab69ea26dc vim-patch:8.1.0819: a failed assert with a long string is hard to read
Problem:    A failed assert with a long string is hard to read.
Solution:   Shorten the assert message.
865767126e
2020-07-19 11:40:34 -04:00
65793a90d7 vim-patch:8.2.0895: :mkspell output does not mention the tree type
Problem:    :mkspell output does not mention the tree type.
Solution:   Back out increasing the limits, it has no effect.  Mention the
            tree being compressed.  Only give a message once per second.
408c23b079
2020-07-19 11:40:33 -04:00
420aff590a vim-patch:8.2.0894: :mkspell can take very long if the word count is high
Problem:    :mkspell can take very long if the word count is high.
Solution:   Use long to avoid negative numbers.  Increase the limits by 20% if
            the compression did not have effect.
59f88fbf24
2020-07-19 11:40:33 -04:00
db8682b94e vim-patch:8.2.0420: Vim9: cannot interrupt a loop with CTRL-C
Problem:    Vim9: cannot interrupt a loop with CTRL-C.
Solution:   Check for CTRL-C once in a while.  Doesn't fully work yet.
f1ec378b01

Vim9 test, commented out in this patch, is restored in patch 8.2.0421.
Vim9 tests were not ported over so skip the temporary change.

Vim should stop pushing broken commits on master.
2020-07-19 11:38:35 -04:00
be9de61012 vim-patch:8.2.1170: cursor off by one with block paste while 'virtualedit' "all"
Problem:    Cursor off by one with block paste while 'virtualedit' is "all".
Solution:   Adjust condition. (Hugo Gualandi, closes vim/vim#6430)
ef85a9b2d9

N/A patches for version.c:

vim-patch:8.2.1114: terminal test sometimes times out

Problem:    Terminal test sometimes times out.
Solution:   Split the test in two parts.
1112c0febb

vim-patch:8.2.1171: possible crash when out of memory

Problem:    Possible crash when out of memory.
Solution:   Check for NULL pointer. (Dominique Pellé, closes vim/vim#6432)
58bb61cf5e

vim-patch:8.2.1172: error messages when doing "make clean" in doc or tee

Problem:    Error messages when doing "make clean" in the runtime/doc or
            src/tee directories.
Solution:   Use "rm -f".
08fc48492a

vim-patch:8.2.1173: tee doesn't build on some systems

Problem:    Tee doesn't build on some systems.
Solution:   Include header files. (Dominique Pelle, closes vim/vim#6431)
4004315292

vim-patch:8.2.1177: terminal2 test sometimes hangs in the GUI

Problem:    Terminal2 test sometimes hangs in the GUI.
Solution:   Move some tests to other files to further locate the problem.
            Set the GUI to a fixed screen size.
18aa13d13b

vim-patch:8.2.1179: Test_termwinscroll() sometimes hangs in the GUI

Problem:    Test_termwinscroll() sometimes hangs in the GUI.
Solution:   Skip the test in the GUI.
f65927fc8d

vim-patch:8.2.1180: build failure in small version

Problem:    Build failure in small version.
Solution:   Add #ifdef.
1e624c912d

vim-patch:8.2.1181: json code not fully tested

Problem:    Json code not fully tested.
Solution:   Add more test coverage. (Dominique Pellé, closes vim/vim#6433)
21e5bdd271
2020-07-19 11:38:35 -04:00
0c498200f4 vim-patch:8.2.1169: write NUL past allocated space using corrupted spell file
Problem:    Write NUL past allocated space using corrupted spell file.
            (Markus Vervier)
Solution:   Init "c" every time.
97d2f34c87

N/A patches for version.c:

vim-patch:8.0.1531: cannot use 24 bit colors in MS-Windows console

Problem:    Cannot use 24 bit colors in MS-Windows console.
Solution:   Add support for vcon. (Nobuhiro Takasaki, Ken Takasaki,
            fixes vim/vim#1270, fixes vim/vim#2060)
cafafb381a

vim-patch:8.0.1544: when using 'termguicolors' SpellBad doesn't show

Problem:    When using 'termguicolors' SpellBad doesn't show.
Solution:   When the GUI colors are not set fall back to the cterm colors.
d4fc577e60

vim-patch:8.0.1589: error for setting 'modifiable' when resetting it

Problem:    Error for setting 'modifiable' when resetting it.
Solution:   Check if 'modifiable' was actually set.
d7db27bafd

vim-patch:8.0.1591: MS-Windows: when reparsing the arguments 'wildignore' matters

Problem:    MS-Windows: when reparsing the arguments 'wildignore' matters.
Solution:   Save and reset 'wildignore'. (Yasuhiro Matsumoto, closes vim/vim#2702)
20586cb4f4

vim-patch:8.0.1712: terminal scrollback is not limited

Problem:    Terminal scrollback is not limited.
Solution:   Add the 'terminalscroll' option.
8c041b6b95

Neovim has 'scrollback' option, not 'terminalscroll',
to limit scrollback in terminal buffers.

vim-patch:8.0.1745: build failure on MS-Windows

Problem:    Build failure on MS-Windows.
Solution:   Build job arguments for MS-Windows. Fix allocating job twice.
2060892028

vim-patch:8.0.1747: MS-Windows: term_start() does not set job_info() cmd

Problem:    MS-Windows: term_start() does not set job_info() cmd.
Solution:   Share the code from job_start() to set jv_argv.
ebe74b7367
2020-07-19 11:38:34 -04:00
08efa7037e lsp: Add support for call hierarchies (#12556)
* LSP: Add support for call hierarchies

* LSP: Add support for call hierarchies

* LSP: Add support for call hierarchies

* LSP: Jump to call location

Jump to the call site instead of jumping to the definition of the
caller/callee.

* LSP: add tests for the call hierarchy callbacks

* Fix linting error

Co-authored-by: Cédric Barreteau <>
2020-07-18 15:10:09 -04:00
9f7f42ea0a Prevent flatten from taking a null list 2020-07-15 20:32:20 +02:00
fd57d69970 vim-patch:8.2.0937: asan failure in the flatten() test
Problem:    Asan failure in the flatten() test.
Solution:   Free the flattened list.
dcf59c37d0
2020-07-15 20:27:20 +02:00
6420615e3f vim-patch:8.2.0935: flattening a list with existing code is slow
Problem:    Flattening a list with existing code is slow.
Solution:   Add flatten(). (Mopp, closes vim/vim#3676)
077a1e670a
2020-07-15 20:27:20 +02:00
a02a267f8a Reuse inccommand preview window (fix #11529) (#12612)
* Reuse inccommand preview window

Currently, show_sub (inside ex_substitute) creates a new split on each
run for its existing buffer, and ex_substitute calls close_windows for
it. This functionality seems to relay in delayed operations on window
structures where the close event on the newest window is "cancelled" by
win_grid_alloc. But for multigrid, there is optimization in place in
win_grid_alloc which causes any (unnecessary?) allocations to be
skipped, and thus inccommand preview window is not preserved but closed
immediately. Alternative fix would be to remove said optimization, but
the whole "lets create a new split each time and trash the earlier
window" seems too wasteful.

Fix #11529

* Update failing test

The failing test sets inccommand=split and does `:%s/.`, but isn't
expecting to get any contents for the preview window, other than the
windows status line. Update the test to include the preview window
contents too.
2020-07-15 08:46:47 -04:00
1ca67a73c0 Merge pull request #12507 from tjdevries/tjdevries/viml_lua_callbacks
[RFC] Allow passing lua functions and closures into vim functions.
2020-07-11 17:40:31 -04:00
6360cf7ce8 lua: Add ability to pass tables with __call
vim-patch:8.2.1054: not so easy to pass a lua function to Vim
vim-patch:8.2.1084: Lua: registering function has useless code

I think I have also opened up the possibility for people to use these
callbacks elsewhere, since I've added a new struct that we should be
able to use.

Also, this should allow us to determine what the state of a list is in
Lua or a dictionary in Lua, since we now can track the luaref as we go.
2020-07-10 20:23:12 -04:00
971a191c4d lua: Add ability to pass lua functions directly to vimL 2020-07-10 16:17:33 -04:00
a695da7d3f Merge pull request #12590 from nvim-treesitter/ts-fix-highlight
[RDY] Treesitter: fix highlight, attempt 2
2020-07-10 12:58:44 -04:00
341e139992 treesitter: add parser on_lines callbacks 2020-07-10 17:16:24 +02:00
0f7eaa3555 treesitter: cache the capture hl relation 2020-07-10 17:16:24 +02:00
d19132ffd1 treesitter: update test to show overlapping works 2020-07-10 17:16:24 +02:00
c5119dbad6 treesitter: use change calbacks on redraw 2020-07-10 17:16:23 +02:00
529251d5e4 treesitter: call bufload before parsing (#12603) 2020-07-10 09:33:27 -04:00
b39edb5b60 doc: Add information about lua function calls (#12574) 2020-07-08 10:42:34 -04:00
91572ddad1 doc: mention that defer_fn applies schedule_wrap (#12601) 2020-07-07 10:55:40 +02:00
e49fc4ba1f Merge pull request #12538 from janlazo/vim-8.2.1055
vim-patch:8.1.{93,1372},8.2.{1055,1060,1089,1095,1104}
2020-07-06 23:31:24 +02:00
4ab7bbf3ea lua: add options to highlight.on_yank (#12549)
NOTE: Configuration options have  changed for highlight.on_yank.

Check help for |:help highlight.on_yank()|
2020-07-05 21:30:12 -04:00
f9579d473e lsp: add optional vertical padding, maximal size to floats (#12444)
* add vertical padding to floats

* add max_width, max_height option to float methods

* lint

* lintlint

* guard against nil wrap_at
2020-07-05 21:09:52 -04:00
10c563577c vim-patch:8.1.0093: non-MS-Windows: Cannot interrupt gdb when program is running
Problem:    non-MS-Windows: Cannot interrupt gdb when program is running.
Solution:   Only use debugbreak() on MS-Windows.
2ed890f1f8
2020-07-04 12:10:04 -04:00
37bc089fb9 vim-patch:8.2.1104: Coverity warnts for possible NULL pointer use
Problem:    Coverity warnts for possible NULL pointer use.
Solution:   Check "pbyts" is not NULL.
11b6600c88
2020-07-04 10:05:35 -04:00
9f73715daa vim-patch:8.2.1089: Coverity warns for pointer computation
Problem:    Coverity warns for pointer computation.
Solution:   Avoid computing a pointer to invalid memory.
927b7dd0fe
2020-07-04 10:05:35 -04:00
e84c075ad9 vim-patch:8.2.1095: may use pointer after freeing it
Problem:    May use pointer after freeing it when text properties are used.
Solution:   Update redo buffer before calling ml_replace().
6b949615ed
2020-07-04 10:05:34 -04:00
f01bb307fd vim-patch:8.2.1060: not all elinks files are recognized
Problem:    Not all elinks files are recognized.
Solution:   Just check for "elinks.conf". (Guido Cella, closes vim/vim#6337)
5f36d5fbb8
2020-07-04 10:05:34 -04:00
610c4d2b83 'clang/Logic error': use enums to avoid undefined array subscript 2020-07-04 10:05:34 -04:00
edaff441de vim-patch:8.1.1372: when evaluating 'statusline' the current window is unknown
Problem:    When evaluating 'statusline' the current window is unknown.
            (Daniel Hahler)
Solution:   Set "g:actual_curwin" for %{} items.  Set "g:statusline_winid"
            when evaluationg %!. (closes vim/vim#4406, closes vim/vim#3299)
1c6fd1e100
2020-07-04 10:05:34 -04:00
43a2e5fe4b vim-patch:8.2.1055: no filetype set for pacman config files
Problem:    No filetype set for pacman config files.
Solution:   Recognize pacman.conf and *.hook. (Guido Cella, closes vim/vim#6335)
73b4465ba7
2020-07-04 10:05:34 -04:00
bd5f0e9695 Merge pull request #12531 from BK1603/autoread-tui
Autoread now works in TUI too. The checktimestamp test is run at most once every 2 seconds not to poll too much and also because it doesn't make sense on some filesystems. A solution based on filesystem notifications should arrive soon.
2020-07-04 15:27:32 +02:00
bab77d122f removed test file 2020-07-04 18:18:41 +05:30
f137307dce version.c: update [ci skip] (#12581)
vim-patch:8.2.1107: 'imactivatefunc' and 'imstatusfunc' are not used in the GUI
vim-patch:8.2.1115: iminsert test fails when compiled with VIMDLL
vim-patch:8.2.1119: configure fails with Xcode 12 beta
2020-07-03 22:29:46 +02:00
435344034d removed whitespace 2020-07-03 14:14:08 +05:30
8a819d44d2 removed retry 2020-07-03 00:55:14 +05:30
ae183990ee clarified the reason for wait 2020-07-02 23:56:55 +05:30
a2370a5df0 replaced sleep with a changed mtime for the test file 2020-07-02 23:56:12 +05:30
4da0530b00 removed unnecessary feed calls 2020-07-02 23:54:54 +05:30
7b529e7912 doc: fix scripts and regenerate (#12506)
* Fix some small doc issues

* doc: fixup

* doc: fixup

* Fix lint and rebase

* Remove bad advice

* Ugh, stupid mpack files...

* Don't let people include these for now until they specifically want to

* Prevent duplicate tag
2020-07-02 07:09:17 -04:00
2844cd54da docs: Describe how to escape keycodes with nvim_feedkeys (#12484)
Closes #12297
2020-07-01 21:57:03 -04:00
3bcc27e16a Added test 2020-07-02 04:40:42 +05:30
8bee2ff19d Update file on focus gained 2020-07-02 04:40:42 +05:30
22828f59bb Added healt check for tmux focus events 2020-07-02 04:40:35 +05:30
267bc57d21 version.c: update [ci skip] (#12524)
vim-patch:8.0.1543: with 'termguicolors' Normal color doesn't work correctly

vim-patch:8.1.0089: error when ending the terminal debugger
vim-patch:8.1.0557: Termdebug: gdb may use X.Y for breakpoint number
vim-patch:8.1.0575: Termdebug: clearing multi-breakpoint does not work
vim-patch:8.1.0621: terminal debugger does not handle unexpected debugger exit
vim-patch:8.1.1637: after running tests and clean the XfakeHOME directory remains
vim-patch:8.1.2105: MS-Windows: system() may crash
vim-patch:8.1.2116: no check for out of memory
vim-patch:8.1.2149: crash when running out of memory very early
vim-patch 8.1.2242: creating docs tags uses user preferences

vim-patch:8.2.0599: Netbeans interface insufficiently tested
vim-patch:8.2.0673: cannot build Haiku in shadow directory
vim-patch:8.2.0676: pattern in list of distributed files does not match
vim-patch:8.2.0680: PTYGROUP and PTYMODE are unused
vim-patch:8.2.0689: when using getaddrinfo() the error message is unclear
vim-patch:8.2.0702: running channel tests may leave running process behind
vim-patch:8.2.0709: MS-Windows: compiler warning for int vs size_t
vim-patch:8.2.0720: occasional exit when encountering an X error
vim-patch:8.2.0727: MS-Windows: new gcc compiler does not support scanf format
vim-patch:8.2.0740: minor message mistakes
vim-patch:8.2.0741: Python tests fail because of changed message
vim-patch:8.2.0744: the name vim is not capatilized in a message
vim-patch:8.2.0750: netbeans test is a bit flaky
vim-patch:8.2.0756: MS-Windows: still a compiler warning
vim-patch:8.2.0762: buffer is not considered modified after setting crypt key
vim-patch:8.2.0763: GUI test fails without the terminal feature
vim-patch:8.2.0765: In the GUI can't use all the modifiers.
vim-patch:8.2.0767: modifyOtherKeys active when using a shell command in autocmd
vim-patch:8.2.0770: cannot map CTRL-B when using the GUI
vim-patch:8.2.0773: switching to raw mode every time ":" is used
vim-patch:8.2.0776: libvterm code lags behind the upstream version
vim-patch:8.2.0777: terminal test fails
vim-patch:8.2.0778: libvterm code lags behind the upstream version
vim-patch:8.2.0779: tmode_T not used everywhere
vim-patch:8.2.0780: libvterm code lags behind the upstream version
vim-patch:8.2.0783: libvterm code lags behind the upstream version
vim-patch:8.2.0784: libvterm code lags behind the upstream version
vim-patch:8.2.0785: libvterm code lags behind the upstream version
vim-patch:8.2.0786: channel test is flaky on FreeBSD
vim-patch:8.2.0787: libvterm code lags behind the upstream version
vim-patch:8.2.0788: memory leak in libvterm
vim-patch:8.2.0792: build failure with small features
vim-patch:8.2.0794: libvterm code lags behind the upstream version
vim-patch:8.2.0795: libvterm code lags behind the upstream version
vim-patch:8.2.0796: MS-Windows: compiler can't handle C99 construct in libvterm
vim-patch:8.2.0797: MS-Windows: compiler still can't handle C99 construct
vim-patch:8.2.0798: libvterm code lags behind the upstream version
vim-patch:8.2.0799: build fails if snprintf is not available
vim-patch:8.2.0800: errors from failing test are unclear
vim-patch:8.2.0801: terminal test fails on Mac
vim-patch:8.2.0802: libvterm code lags behind the upstream version
vim-patch:8.2.0803: libvterm code lags behind the upstream version
vim-patch:8.2.0804: libvterm code lags behind the upstream version
vim-patch:8.2.0805: terminal key codes test fails on some systems
vim-patch:8.2.0808: not enough testing for the terminal window
vim-patch:8.2.0811: terminal keycode test is flaky
vim-patch:8.2.0813: libvterm code is slightly different from upstream
vim-patch:8.2.0816: terminal test fails when compiled with Athena
vim-patch:8.2.0828: Travis: regexp patttern doesn't work everywhere
vim-patch:8.2.0830: Motif: can't map "!"
vim-patch:8.2.0831: compiler warnings for integer sizes
vim-patch:8.2.0833: mapping doesn't work in the GUI
vim-patch:8.2.0835: Motif: mapping still doesn't work
vim-patch:8.2.0837: compiler warning for value set but not used
vim-patch:8.2.0842: MS-Windows: channel tests fail
vim-patch:8.2.0846: build failure with small features
vim-patch:8.2.0849: BeOS code is not maintained and probably unused
vim-patch:8.2.0852: cannot map CTRL-S on some systems
vim-patch:8.2.0854: xxd cannot show offset as a decimal number
vim-patch:8.2.0857: GTK cell height can be a pixel too much
vim-patch:8.2.0870: MS-Windows: Control keys don't work in the GUI
vim-patch:8.2.0872: XIM code is mixed with multi-byte code
vim-patch:8.2.0885: "make shadow" does not link new lua test dir
vim-patch:8.2.0889: using old style comments
vim-patch:8.2.0903: comparing WINVER does not work correctly
vim-patch:8.2.0910: Vim is not reproducibly buildable
vim-patch:8.2.0914: MS-Windows: cannot specify a "modified by" text
vim-patch:8.2.0931: some remarks about BeOS remain
vim-patch:8.2.0939: checking for term escape sequences is long and confusing
vim-patch:8.2.0940: build failure with tiny features
vim-patch:8.2.0941: detecting terminal properties is unstructured
vim-patch:8.2.0944: xxd test leaves file behind
vim-patch:8.2.0962: terminal test sometimes hangs on Travis
vim-patch:8.2.0971: build with tiny features fails
vim-patch:8.2.0978: leaking memory in termcodes test
vim-patch:8.2.0979: a couple of screendump tests fail
vim-patch:8.2.0989: crash after resizing a terminal window
vim-patch:8.2.1010: build failure in libvterm with debug enabled
vim-patch:8.2.1013: channel tests can be a bit flaky
vim-patch:8.2.1017: Appveyor output doesn't show MinGW console features
vim-patch:8.2.1027: GUI: multi-byte characters do not work in a terminal
vim-patch:8.2.1030: reducing size of a terminal window may cause a crash
vim-patch:8.2.1031: build failure with Perl5.32

vim-patch:8.2.1057: cannot build with dynamic Lua
vim-patch:8.2.1072: missing libvterm test

vim-patch:8.2.1093: Python: double free when adding item to dict fails
vim-patch:8.2.1094: dead code in libvterm
2020-06-30 22:11:47 +02:00
554b21261e lsp: Use nvim_buf_get_lines in locations_to_items and add more tests (#12357)
* LSP: Add tests & use nvim_buf_get_lines in locations_to_items

This is to add support for cases where the server returns a URI in the
locations that does not have a file scheme but needs to be loaded via a
BufReadCmd event.

* LSP: Don't iterate through all lines in locations_to_items

* fixup! LSP: Don't iterate through all lines in locations_to_items

* fixup! fixup! LSP: Don't iterate through all lines in locations_to_items

* fixup! fixup! fixup! LSP: Don't iterate through all lines in locations_to_items
2020-06-30 11:48:04 -04:00
1920ba4b55 Merge pull request #12491 from vigoux/treesitter-set-ranges
[RDY] Treesitter set ranges
2020-06-30 00:02:46 +02:00
69816f5e13 treesitter: use single nodes in set_ranges
fixup! treesitter: fix lint
2020-06-29 23:32:49 +02:00
66af35fc85 treesitter: separate tests into smaller pieces 2020-06-29 22:21:06 +02:00
35cc8b6e83 treesitter: fix lint 2020-06-29 22:21:06 +02:00
b652f74ca3 treesitter: use nodes to mark ranges 2020-06-29 22:21:06 +02:00
558893b1b9 treesitter: add some documentation for parsers 2020-06-29 22:21:06 +02:00
75a1239eb5 treesitter: fix some clint errors
Also fixes some mismatches on the name of the function
2020-06-29 22:21:06 +02:00
ac18403d6e treesitter: test newly added set_included_ranges 2020-06-29 22:21:06 +02:00
333f3f19db treesitter: add set_included_ranges to the parser
This is the first step towards language injection using treesitter.
2020-06-29 22:21:06 +02:00
fd545d46fa Merge pull request #12567 from teto/wordcount_doc_fix
doc: fix wordcount description

Closes #12566
2020-06-29 13:33:03 -04:00
d5bbaf92c1 doc: fix wordcount description
was fixed in vim patch c572da5f67aa5cdbbc127fc6f1d0a42e38468325
and forgot in corresponding vim patch 8c3377ee76.
2020-06-29 20:08:20 +02:00
48ac77a14c LSP: Set current name as default rename text (#12553)
Since we don't know what the server considers to be a symbol, `cword` is
the best bet in most cases.

Co-authored-by: Cédric Barreteau <>
2020-06-27 20:10:19 +02:00
7efb302d26 Merge pull request #12252 from dlukes/formatting-sync 2020-06-27 11:27:51 +09:00
225f0bcd98 Merge pull request #12133 from bradking/syntax-fold 2020-06-24 13:09:30 -04:00
352831229f vim-patch:8.2.1044: not all systemd file types are recognized (#12527)
Problem:    Not all systemd file types are recognized.
Solution:   Match several more files. (Guido Cella, closes vim/vim#6319)
ef6d86c173
2020-06-24 10:18:06 +02:00
357c16515c vim-patch:8.2.0865 syntax: Add command to control how foldlevel is computed
Problem:    Syntax foldlevel is taken from the start of the line.
Solution:   Add ":syn foldlevel" to be able to use the minimal foldlevel in the line.
e35a52aee7

With `foldmethod=syntax` the foldlevel of a line is computed based
on syntax items on the line.  Previously we always used the level
of the syntax item containing the start of the line.  This works
well in cases such as:

    if (...) {
      ...
    }
    else if (...) {
      ...
    }
    else {
      ...
    }

which folds like this:

    +---  3 lines: if (...) {---------------------------
    +---  3 lines: else if (...) {----------------------
    +---  3 lines: else {-------------------------------

However, the code:

    if (...) {
      ...
    } else if (...) {
      ...
    } else {
      ...
    }

folds like this:

    +---  7 lines: if (...) {---------------------------

We can make the latter case fold like this:

    +---  2 lines: if (...) {---------------------------
    +---  2 lines: } else if (...) {--------------------
    +---  3 lines: } else {-----------------------------

by choosing on each line the lowest fold level that is followed
by a higher fold level.

Add a syntax command

    :syntax foldlevel [start | minimum]

to choose between these two methods of computing the foldlevel of
a line.
2020-06-23 19:07:33 -04:00
30b02a1bee vim-patch:8.2.1041: test summary is missing executed count (#12519)
Problem:    Test summary is missing executed count.
Solution:   Adjust pattern used for counting.
7eaafe65ee
2020-06-23 17:55:56 +02:00
2f6d1d3c88 lsp: when apply text edits, set buflisted on buffers (#12489)
The client creates buffers on the fly to be able to apply text edits on
files that weren't previously open, which is great, but it uses the
bufadd() function, which creates unlisted buffers and can lead to a
weird experience in the text editor. Setting the buffer to buflisted
fixes this.

Closes #12488.

Co-authored-by: francisco souza <fsouza@users.noreply.github.com>
2020-06-23 17:50:37 +02:00
ee3605aed4 syntax: Factor out duplicate E390 strings 2020-06-23 09:20:17 -04:00
ae5651942e syntax: factor out helper to compute the syntax-based foldlevel 2020-06-23 09:20:17 -04:00
36d71e775a treesitter: simplify puhstree call process 2020-06-23 09:11:41 +02:00
721f69c4af terminal: preserve mode when using <Cmd>wincmd in terminal mode (#12254) 2020-06-22 23:22:58 +02:00
1619410a05 main.c: fix hang issue with recoverymode (#12496)
In the case of recoverymode, the headlessmode was true, causing the UI
to hang without starting. Fix this problem by setting headlessmode to
true for List swap files only.
2020-06-22 23:04:34 +02:00
8f30753aa1 Merge pull request #12455 from janlazo/vim-8.0.1554
[RDY]vim-patch:8.0.1554,8.1.1977,8.2.{927,930,932,938,954,963,964,966,980,983,998,999}
2020-06-22 22:40:33 +02:00
21453e8f09 eval: fix assertion failure in garbage collection (#12436)
* eval: fix assertion failure in garbage collection

fixes #12387, #12430

Lists with CopyID+1 linked only from previous_funccal may be removed in
the garbage collection. Therefore, the terms of the assertions are not
correct. This can be confirmed by the following (The l:x with CopyID+1 of
the first function call needs to be removed by garbage collection):

func! s:f()
  let l:x = [1]
  let g:x = l:
endfunc

for _ in range(2)
  call s:f()
endfor
call garbagecollect()
" press any key

* test: add test for #12387, #12430
2020-06-22 10:17:20 -04:00
ebee9ebe2b lsp: Add sync variant of LSP formatting
Also, factor out a `vim.lsp.util.get_effective_tabstop()` helper and add
tests for it.
2020-06-22 09:48:41 +02:00
4496628c18 version.c: update [ci skip] (#12391) 2020-06-21 21:32:56 +02:00
5f0a1b04c1 neovim-qt: bump to version 0.2.16 (#12508) 2020-06-19 13:47:55 +02:00
b198225361 vim-patch:8.2.0999: moving to next sentence gets stuck on quote
Problem:    Moving to next sentence gets stuck on quote.
Solution:   When moving to the next sentence doesn't result in moving, advance
            a character and try again. (closes vim/vim#6291)
2f03e5a0a9
2020-06-18 20:35:06 -04:00
749429693d vim-patch:8.2.0998: not all tag code is tested
Problem:    Not all tag code is tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes vim/vim#6284)
3d9207ad2f
2020-06-18 18:01:44 -04:00
b4e4c2ad95 vim-patch:8.2.0983: SConstruct file type not recognized
Problem:    SConstruct file type not recognized.
Solution:   Use python for SConstruct files. (Roland Hieber)
ad72350360
2020-06-18 18:01:44 -04:00
954aed886e vim-patch:8.2.0980: raku file extension not recognized
Problem:    Raku file extension not recognized. (Steven Penny)
Solution:   Recognize .raku and .rakumod. (closes vim/vim#6255)
a65d8b5bb9
2020-06-18 18:01:44 -04:00
e681a317fe vim-patch:8.2.0964: TextYankPost does not provide info about Visual selection
Problem:    TextYankPost does not provide info about Visual selection.
Solution:   Add the 'visual' key in v:event. (closes vim/vim#6249)
37d1673ce0
2020-06-18 18:01:43 -04:00
833a5d16a2 vim-patch:8.2.0963: number increment/decrement does not work with 'virtualedit'
Problem:    Number increment/decrement does not work with 'virtualedit'.
Solution:   Handle coladd changing. (Christian Brabandt, closes vim/vim#6240,
            closes vim/vim#923)
6c6be9e88d
2020-06-18 18:01:43 -04:00
3c9ec83395 vim-patch:8.2.0966: 'shortmess' flag "n" not used in two places
Problem:    'shortmess' flag "n" not used in two places.
Solution:   Make use of the "n" flag consistent. (Nick Jensen, closes vim/vim#6245,
            closes vim/vim#6244)
722e505d1a
2020-06-18 18:01:43 -04:00
abadb687fb vim-patch:8.2.0954: not all desktop files are recognized
Problem:    Not all desktop files are recognized.
Solution:   Add the *.directory pattern. (Eisuke Kawashima, closes vim/vim#3317)
f1f0ff9557
2020-06-18 18:01:43 -04:00
44535d39e9 vim-patch:8.1.1977: terminal debugger plugin may hang
Problem:    Terminal debugger plugin may hang.
Solution:   Wait longer when still reading symbols.
19c8fe1925
2020-06-18 18:01:43 -04:00
33985a3a15 vim-patch:8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Problem:    NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
Solution:   Use utf_fold() when possible. (ref. neovim vim/vim#12456)
59de417b90
2020-06-18 18:01:42 -04:00
b7cae2bca3 option: fix pvs/v547 2020-06-18 18:01:42 -04:00
e34a7bca68 eval: fix pvs/v547 2020-06-18 18:01:42 -04:00
ee4265285d vim-patch:8.2.0932: missspelling spelllang
Problem:    Missspelling spelllang.
Solution:   Add an "l". (Dominique Pelle)
f154f3ab2c
2020-06-18 18:01:42 -04:00
9d565c5ba3 vim-patch:8.2.0930: script filetype detection trips over env -S argument
Problem:    Script filetype detection trips over env -S argument.
Solution:   Remove "-S" and "--ignore-environment". (closes vim/vim#5013)
            Add tests.
b5e18f29fa
2020-06-18 18:01:42 -04:00
150168b881 vim-patch:8.2.0927: some sshconfig and ssdhconfig files are not recognized
Problem:    Some sshconfig and ssdhconfig files are not recognized.
Solution:   Add filetype patterns.
da84ac2a6f
2020-06-18 18:01:41 -04:00
a5bde56b37 vim-patch:8.0.1554: custom plugins loaded with --clean
Problem:    Custom plugins loaded with --clean.
Solution:   Do not include the home directory in 'runtimepath'.
0726870326
2020-06-18 18:01:41 -04:00
70d4b31b83 lsp: Add new highlight groups used in show_line_diagnostics (#12473)
* lsp: support custom hl groups in show_line_diagnostics

Closes #12472.

* runtime: add docs for the new lsp highlight groups

Co-authored-by: francisco souza <fsouza@users.noreply.github.com>
2020-06-18 08:04:49 -04:00
25aa2969f2 Merge pull request #12497 from leun4m/patch/tex-runtime
Apply several upstream changes to text-runtime
2020-06-18 07:31:24 -04:00
8498c40fcf tex.vim: patch runtime/indent to 388a5d4f20b4
vim/vim@388a5d4f20
2020-06-17 12:52:39 +02:00
ad42ac4618 tex.vim: patch runtime to 65e0d77a66b7
vim/vim@65e0d77a66
2020-06-16 19:57:41 +02:00
db756fca52 tex.vim: patch runtime to 388a5d4f20b4
vim/vim@388a5d4f20
2020-06-16 19:56:14 +02:00
78f37f6a35 tex.vim: patch runtime to 1d9215b9aaa1
vim/vim@1d9215b9aa
2020-06-16 19:53:35 +02:00
e628a05b51 Merge pull request #12342 from h-michael/fix-doc 2020-06-15 18:08:34 +09:00
52cd8bf507 doc: fix vim.api.nvim_buf_attach callback arguments 2020-06-15 12:30:13 +09:00
6613ab6bca Merge pull request #12469 from h-michael/request
lsp: even if contents before change is 0 byte, request to server
2020-06-15 11:11:42 +09:00
8daefe2f04 Fix highlight group names in LSP documentation (#12427)
LspDiagnosticInformation -> LspDiagnosticsInformation
LspDiagnosticInformationSign -> LspDiagnosticsInformationSign
LspDiagnosticHint -> LspDiagnosticsHint
LspDiagnosticHintSign -> LspDiagnosticsHintSign
2020-06-14 15:25:39 -04:00
44fe8828f0 lsp: Fix text edits with the same start position (#12434)
According to the LSP spec[1], multiple edits can have the same starting
position, and if that is the case, they should be applied in the order
as they come in the array.

The implementation uses a reverse sort to not interfere with non applied
edits, but failed to take into account the spec.

[1] https://microsoft.github.io/language-server-protocol/specifications/specification-3-14/#textedit
2020-06-14 15:23:16 -04:00
e8ccd0f234 man.vim: Remove unnecessary code
Not sure why this was added in 94f4469638

It doesn't seem to do anything and I can't reproduce the linked issue
with this patch so I think it's all working now.

cc @justinmk
2020-06-13 02:55:40 -04:00
adc3425a37 man.vim: Fix tagfunc to respect b:man_default_sects
Also, kudos to @zsugabubus for fixing a related issue in #12417

This also prevents any sorting of the paths from man. We need to
respect the order we get from it otherwise you end up loading

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/share/man/man1/ls.1

on MacOS instead of /usr/share/man/man1/ls.1
2020-06-13 02:55:40 -04:00
4aaffc5f33 man.vim: Refactor verify_exists to unset $MANSECT as needed
Also cleaned it up a little and made it faster.

Closes #9159 and #9271

Also changes man#extract_sect_and_name_ref to only return a single
section at a time. This fixes a bug in its usage in man#goto_tag
where get_paths would be called with multiple sections and it does
not support that.

I noticed that our tagfunc doesn't obey b:man_default_sects and
I'll fix that next.
2020-06-12 23:44:31 -04:00
a0a84fc9e0 lsp: Add BufLeave to close_preview_autocmd function call (#12477)
else popup window remains open when switching buffer.
2020-06-12 20:38:33 +02:00
6d1404faf0 test: Fix ignored LSP tests (#12470)
* Fix ignored LSP tests

* Restructure _make_floating_popup_size tests

Co-authored-by: Christian Clason <christian.clason@uni-due.de>

Co-authored-by: Christian Clason <christian.clason@uni-due.de>
2020-06-11 20:34:34 -04:00
b751d16cad lsp: Fix #12449 textDocumentSync.save can be boolean. Access textDocumentSync.save.includeText only if table. (#12450) 2020-06-11 15:47:03 -04:00
e39ec50d73 lsp: even if contents before change is 0 byte, request to server
fix: https://github.com/neovim/neovim/issues/12414
2020-06-11 13:09:05 +09:00
e78658348d Merge pull request #12467 from h-michael/issue-template
issue template: fix label syntax for lsp bug report
2020-06-11 09:42:35 +09:00
d7f2318ada issue template: fix label syntax for lsp bug report 2020-06-11 08:18:12 +09:00
bb946fb475 Merge pull request #12461 from h-michael/issue-template 2020-06-11 08:08:32 +09:00
9aba7f122c add GitHub issue template for lsp 2020-06-11 06:12:37 +09:00
dcd6cf5f34 Merge pull request #11819 from erw7/fix-dot-net-stdin
[RDY] win: make UV_OVERLAPPED_PIPE optional
2020-06-10 13:24:45 -04:00
d17e38e482 Add overlapped option to jobstart
When UV_OVERLAPPED_PIPE was used for the pipe passed to the child process, a
problem occurred with the standard input of the .Net Framework application
(#11809). Therefore, add the overlapped option to jobstart() and change it so
that it is set only when necessary
2020-06-10 22:21:14 +09:00
f1cbd39f7b vim-patch:8.2.0920: writing viminfo fails with a circular reference
Problem:    Writing viminfo fails with a circular reference.
Solution:   Use copyID to detect the cycle. (closes vim/vim#6217)
5b157fe2ed
2020-06-09 23:54:07 +09:00
d8c5d122f1 Merge pull request #12376 from erw7/fix-stack-overflow-on-input-enqueue
input: fix stack overflow
2020-06-08 16:52:56 +02:00
9fc3949841 shada: fix write E5004 error on exit
Fix the problem of failing to write shada when the global variable contains
Funcref or Partial.
2020-06-08 23:15:10 +09:00
980b12edba Merge pull request #12192 from Billy4195/vim-8.2.0629
[RFC] vim-patch:8.2.0629
2020-06-07 18:00:43 +02:00
22f6da9514 vim-patch:8.2.0629: setting a boolean option to v:false does not work
Problem:    Setting a boolean option to v:false does not work.
Solution:   Do not use the string representation of the value. (Christian
            Brabandt, closes vim/vim#5974)
65d032c779
2020-06-06 23:25:07 +08:00
1805fb469a vim-patch:8.2.0111: VAR_SPECIAL is also used for booleans
Problem:    VAR_SPECIAL is also used for booleans.
Solution:   Add VAR_BOOL for better type checking.
9b4a15d5db
2020-06-06 23:24:58 +08:00
dbc8ec9446 Merge pull request #12321 from vigoux/treesitter-runtime
treesitter: update runtime
2020-06-06 15:37:51 +02:00
39f802bef4 Merge pull request #12416 from teto/openbsd_fix
ci: bump openbsd image
2020-06-06 02:06:40 +02:00
33dafc4f0f Merge pull request #12413 from janlazo/vim-8.2.0089
[RDY]vim-patch:8.0.1564,8.1.{917,1895,2018,2335},8.2.{89,491,873,892,905}
2020-06-06 02:05:49 +02:00
fca471d8e2 Merge pull request #12411 from kuuote/fix-remote-plugin-command
runtime: fix remote plugin command fails at some case
2020-06-06 01:39:12 +02:00
d14298a1f0 test: remove flaky unhelpful test
vim.wait( sthg)
2020-06-06 01:11:12 +02:00
c4888b2bde ci: bump openbsd image 6.5 -> 6.7
seems like 6.5 is not supported anymore.
2020-06-06 01:11:12 +02:00
9538a7895c vim-patch:8.2.0905: test coverage could be better
Problem:    Test coverage could be better.
Solution:   Add a couple of tests. (Dominique Pelle, closes vim/vim#6202)
e0c3c3d6cb
2020-06-04 21:21:10 -04:00
0fa2aefb61 vim-patch:8.2.0892: ubsan warns for undefined behavior
Problem:    Ubsan warns for undefined behavior.
Solution:   Use unsigned instead of signed variable. (Dominique Pelle,
            closes vim/vim#6193)
c5acc0f7fe
2020-06-04 20:52:53 -04:00
ed85d68123 vim-patch:8.1.2335: error message for function arguments may use NULL pointer
Problem:    Error message for function arguments may use NULL pointer.
            (Coverity)
Solution:   Use the original function name.
2118a30295
2020-06-04 20:52:53 -04:00
909af2f3f1 vim-patch:8.2.0491: cannot recognize a <script> mapping using maparg()
Problem:    Cannot recognize a <script> mapping using maparg().
Solution:   Add the "script" key. (closes vim/vim#5873)
2da0f0c445
2020-06-04 20:52:53 -04:00
f85bf6ec37 vim-patch:8.2.0873: a .jl file can be sawfish (lisp) or Julia
Problem:    A .jl file can be sawfish (lisp) or Julia.
Solution:   Do not recognize *.jl as lisp, since it might be Julia.
            (closes vim/vim#6178)
2891459b81
2020-06-04 20:52:52 -04:00
44531928b3 vim-patch:8.1.2018: using freed memory when out of memory and displaying message
Problem:    Using freed memory when out of memory and displaying message.
Solution:   Make a copy of the message first.
e5fbd73930
2020-06-04 20:52:52 -04:00
310a56d0a0 vim-patch:8.1.1895: using NULL pointer when out of memory
Problem:    Using NULL pointer when out of memory.
Solution:   Bail out or skip the code using the pointer. (Zu-Ming Jiang,
            closes vim/vim#4805, closes vim/vim#4843, closes vim/vim#4939, closes vim/vim#4844)
6f10c70b59
2020-06-04 20:52:52 -04:00
64a2884d4c vim-patch:8.0.1564: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate the +autocmd feature. Takes away 450 #ifdefs and
            increases code size of tiny Vim by only 40 Kbyte.
f2bd8ef2b4
2020-06-04 20:52:52 -04:00
2298350884 vim-patch:8.1.0917: double free when running out of memory
Problem:    Double free when running out of memory.
Solution:   Remove one free. (Ken Takata, closes vim/vim#3955)
445e71c5ee
2020-06-04 20:52:52 -04:00
f5c1314cb0 vim-patch:8.2.0089: crash when running out of memory in :setfiletype completion
Problem:    Crash when running out of memory in :setfiletype completion.
Solution:   Do not allocate memory. (Dominique Pelle, closes vim/vim#5438)
f0f8055102
2020-06-04 20:52:52 -04:00
dd4018947c lsp: do not process diagnostics for unloaded buffers (#12440) 2020-06-04 19:37:38 -04:00
b7f3f11049 lsp: compute height of floating preview correctly for wrapped lines (#12380)
* take wrapping into account when computing float height

* factor out size calculation

* add test

* accept and pass through opts.wrap_at in floating_preview

* make padding configurable

* slightly refactor fancy_floating_markdown to make use of make_position

* padding using string.format

* move trim and pad to separate function

* nit

Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>

* remove mention of backward compat

* make lint happy

Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2020-06-04 14:23:03 -04:00
6f4f38cd54 lsp: Add check for declaration and typeDefinition support in vim lsp server before making request (#12421)
* Add check for typeDefinition support in vim lsp server

* Check for typeDefinitionProvider in server

* Check for declarationProvider in server

* Add check for client support

* Fix typo
2020-06-04 08:52:44 -04:00
ac5a3f2c56 lua: fix behavior when split empty string (#12429)
* lua: fix behavior when split empty string

* test: lsp.util.apply_text_edits with an empty edit
2020-06-04 08:48:48 -04:00
b807de36d4 build: match WSL2 kernel name (#12425) 2020-06-04 14:07:09 +02:00
96568d5b07 Merge pull request #12343 from ndreas/fix/lsp-multibyte-indexing
Fix LSP multibyte indexing
2020-06-04 12:16:42 +09:00
6b949211a0 treesitter: update runtime
Update to 81d533d2d1b580fdb507accabc91ceddffb5b6f0.
2020-06-03 21:33:34 +02:00
6a93077475 treesitter: fix tests 2020-06-03 19:58:02 +02:00
8a1276005a Add v:event.visual during TextYankPost (#12382)
* propagate visual selection to textyankpost event

* adapt tests

* add docs

* also adapt oldtest
2020-06-03 10:51:25 -04:00
60c581b35d lua: fix infinite loop for vim.split on empty string (#12420) 2020-06-02 19:31:43 -04:00
662688817b treesitter: enhance script and add README
The script now updates a `treesitter_commit_sha.txt` file to keep track
of which commit/branch/tag we're at.
2020-06-02 23:13:42 +02:00
f5fbe8e3b5 treesitter: add update script and update runtime
Update treesitter runtime to : 9a82dcc666d06617cbab3061467075019fae0b0d
2020-06-02 23:13:42 +02:00
8349192503 treesitter: update runtime
Since tree-sitter PR 615, predicates are not parsed the same.
"Old" way of writing predicates is still supported.
2020-06-02 21:19:07 +02:00
91e41c8576 lua: add vim.highlight.range (#12401) 2020-05-31 14:56:00 -04:00
ed815c61fd vim-patch.sh: fix bash version-check message #12398 2020-05-31 10:27:05 -07:00
89123017b8 test: rewrite to multiple arguments 2020-06-01 00:10:17 +09:00
7124c0e5ac runtime: fix remote plugin command fails at some case
fixes #12410
2020-05-31 20:21:58 +09:00
4b87248285 vim-patch:8.2.0843: filetype elm not detected (#12403)
Problem:    Filetype elm not detected.
Solution:   Recognize *.elm files. (closes vim/vim#6157)
0016fd2e29
2020-05-30 18:06:23 -04:00
b8e2cd4f60 Merge pull request #12348 from tjdevries/luawait
[RFC] lua: Add vim.wait()
2020-05-30 12:56:02 -04:00
be662fe5c7 lua: vim.wait implementation 2020-05-30 12:01:32 -04:00
504d6878da lua: vim.wait initial outline 2020-05-30 12:01:32 -04:00
7d8dc4c331 provider: Fix ruby checkhealth error for Windows (#12400)
Plaform: Windows 10

run `cmd /c gem list -ra ^^neovim$`

*** REMOTE GEMS ***

minitest-neovim (0.1.0)
neovim (0.7.1, 0.7.0, 0.6.2, 0.6.1, 0.6.0, 0.5.1, 0.5.0, 0.4.0, 0.3.3, 0.3.2, 0.3.1, 0.3.0, 0.2.5, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.0, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)

run `cmd /c gem list -ra "^^neovim$"`

*** REMOTE GEMS ***
neovim (0.7.1, 0.7.0, 0.6.2, 0.6.1, 0.6.0, 0.5.1, 0.5.0, 0.4.0, 0.3.3, 0.3.2, 0.3.1, 0.3.0, 0.2.5, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.0, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)
2020-05-30 14:29:24 +02:00
977c0f292f API: nvim_create_buf: unset 'modeline' in scratch-buffer #12379
Although 'nomodeline' is not strictly part of the definition of
a "scratch-buffer" it is obviously the right default.
2020-05-29 09:45:32 -07:00
5a9226c800 lua: simple snippet support in the completion items (#12118)
Old behavior is: foo(${placeholder: bar, ...)

with lots of random garbage you'd never want inserted.

New behavior is: foo(bar, baz) 

(which maybe is good, maybe is bad [depends on user], but definitely better than it was).

-----

* Implement rudimentary snippet parsing

Add support for parsing and discarding snippet tokens from the completion items.

Fixes #11982

* Enable snippet support

* Functional tests for snippet parsing

Add simplified real-world snippet text examples to the completion items
test

* Add a test for nested snippet tokens

* Remove TODO comment

* Return the unmodified item if the format is plain text

* Add a plain text completion item
2020-05-28 08:31:56 -04:00
2ca8f02a64 lsp: add preview_location util function (#12368)
* add preview_location

* add doc stub

* doc style; return bufnr&winnr of preview

* doc: function may return nil

Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>

* doc: fixup

Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2020-05-26 09:07:10 -04:00
15b762761a lsp: make the command error message more detailed (#11633)
* lsp.lua: make the error message more detailed

* test: add lsp._cmd_part test
2020-05-26 08:55:45 -04:00
618e9a7692 Merge pull request #11803 from erw7/virtual-terminal-input
[RDY] win/TUI: Use virtual terminal input if available
2020-05-26 11:03:50 +02:00
e01fc33515 [squash] fix comment [skip ci] 2020-05-26 17:23:04 +09:00
bb2be0de38 deps: update libuv
https://github.com/neovim/neovim/pull/11808
https://github.com/neovim/libuv/pull/12

v1.34.2
  * darwin: stop calling SetApplicationIsDaemon() (Ben Noordhuis)
  * osx,fsevent: fix race during uv_loop_close (Jameson Nash)
  * unix: handle uv__open_cloexec return value correctly (Anna Henningsen)
v1.34.1
  * unix: fix -Wstrict-aliasing compiler warning (Ben Noordhuis)
  * unix: cache address of dlsym("mkostemp") (Ben Noordhuis)
  * win,tty: avoid regressions in utf-8 handling (Jameson Nash)
  * win: remove bad assert in uv_loop_close (Jameson Nash)
  * tty,unix: avoid affecting controlling TTY (Jameson Nash)
v1.34.0
  * unix: refactor uv__fs_copyfile() logic (cjihrig)
  * fs: handle non-functional statx system call (Milad Farazmand)
  * unix,win: add uv_sleep() (cjihrig)
  * fs: add uv_fs_mkstemp (Saúl Ibarra Corretgé)
v1.33.0
  * win: fix reading hidden env vars (Anna Henningsen)
  * unix,win: add uv_random() (Ben Noordhuis)
  * win, tty: fix problem of receiving unexpected SIGWINCH (erw7)
  * fs: use statvfs in uv__fs_statfs() for Haiku (Calvin Hill)
  * fsevents: stop using fsevents to watch files (Jameson Nash)
  * win,tty: add uv_tty_{get,set}_vterm_state (erw7)
  * unix: update uv_fs_copyfile() fallback logic (Stefan Bender)
  * win: cast setsockopt struct to const char* (Shelley Vohr)
  * unix: fix {Net,Open}BSD build
2020-05-26 14:16:09 +09:00
57a4f8905b win/TUI: enable mouse on ConEmu and vtpcon without vti 2020-05-26 14:16:06 +09:00
29f1e1995d win: use virtual terminal input (VTI) if available #11803
fixes #9514
fixes #11773
2020-05-26 14:13:26 +09:00
8c588246a5 Merge pull request #10905 from erw7/vim-8.1.0475
vim-patch:8.1.{475,800,868,1007,1027,1031,1033,1037,1058,1435,1484,1485}
2020-05-25 14:01:36 +02:00
a532fb2cf4 eval: fix problem with free_unref_funccal not being called 2020-05-25 18:52:30 +09:00
c3dab08c8f vim-patch:8.1.1485: double free when garbage_collect() is used in autocommand
Problem:    Double free when garbage_collect() is used in autocommand.
Solution:   Have garbage collection also set the copyID in funccal_stack.
c07f67ad0e
2020-05-25 18:52:30 +09:00
0cab85df4d vim-patch:8.1.1484: some tests are slow
Problem:    Some tests are slow.
Solution:   Add timing to the test messages.  Fix double free when quitting in
            VimLeavePre autocmd.
75ee544f99
2020-05-25 18:52:29 +09:00
e6e6affc0e nvim_input: add test 2020-05-25 14:59:27 +09:00
237c9da666 input: fix stack overflow
fixes #12287, #11788
2020-05-25 14:59:27 +09:00
b996205969 Merge pull request #12367 from h-michael/lsp-log 2020-05-25 11:56:42 +09:00
37ee95504e vim-patch:8.0.1668: terminal debugger: can't re-open source code window (#12329)
Problem:    Terminal debugger: can't re-open source code window.
Solution:   Add the :Source command.  Also create the window if needed when
            gdb stops at a source line.
c4b533e1e9
2020-05-24 20:46:41 +02:00
e89462d985 vim-patch:8.1.2233: cannot get the Vim command line arguments (#12117)
Problem:    Cannot get the Vim command line arguments.
Solution:   Add v:argv. (Dmitri Vereshchagin, closes vim/vim#1322)
69bf634858
2020-05-24 20:45:25 +02:00
97bcab8f5e Merge pull request #12327 from janlazo/vim-8.2.0766
vim-patch:8.1.2228,8.2.{36,37,766,810}
2020-05-23 14:33:33 +02:00
e0e5ada2bf lsp: change log name to "lsp.log" from "vim-lsp.log"
It's confusing because vim-lsp already has the same name as the plugin name that predates this built-in lsp.
Also, since "vim.fn.stdpath" is used, adding the prefix "nvim-" is redundant, so just "lsp.log" will suffice.
2020-05-23 15:02:38 +09:00
ef8f965c64 doc: Add optional d for :lcd and :tcd (#12359)
The `:lcd -` command, and `:tcd -` which returns to a previous directory, can be done with `:lc -` and `:tc -` respectively. 

Basically, the d is optional, so I updated the documentation to indicate this in the traditional format.
2020-05-22 21:35:40 -04:00
0666b23d65 vim-patch:8.2.0810: error when appending "tagfile" to 'wildoptions'
Problem:    Error when appending "tagfile" to 'wildoptions'.
Solution:   use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin,
            closes vim/vim#6105)
2e61e2d083
2020-05-22 20:04:10 -04:00
9a8efec8fb vim-patch:8.2.0037: missing renamed message
Problem:    Missing renamed message.
Solution:   Now really add the error number.
1500a42c42
2020-05-21 16:56:55 -04:00
30ec3a067b vim-patch:8.2.0036: not enough test coverage for match functions
Problem:    Not enough test coverage for match functions.
Solution:   Add a few more test cases.  (Dominique Pelle, closes vim/vim#5394)
            Add error number.
49d68bf5e4
2020-05-21 16:56:55 -04:00
9cdea8148c vim-patch:8.1.2228: screenpos() returns wrong values when 'number' is set
Problem:    screenpos() returns wrong values when 'number' is set. (Ben
            Jackson)
Solution:   Compare the column with the window width. (closes vim/vim#5133)
38ba4dce4a
2020-05-21 16:56:55 -04:00
63966a9ec2 vim-patch:8.2.0766: display error when using 'number' and 'breakindent'
Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes vim/vim#6089,
            closes vim/vim#5986)
e882f7a73c
2020-05-21 16:56:54 -04:00
04a0486c66 Change uri_to_fname to not convert non-file URIs (#12351)
* Change uri_to_fname to not convert non-file URIs

A URI with a scheme other than file doesn't have a local file path.

* fixup! Change uri_to_fname to not convert non-file URIs

* fixup! fixup! Change uri_to_fname to not convert non-file URIs
2020-05-22 01:17:21 +09:00
044eb56ed2 LSP: Don't swallow bufnr argument from callbacks (#12350)
The callbacks for `textDocument/documentSymbol` and `workspace/symbol`
never received the `bufnr` argument because the logic that adds error
validation and logging swallowed the argument.
2020-05-20 21:18:35 -04:00
c6dc397801 fixed hang issue with --headless and -r option specified (#12209)
* fixed hang issue with --headless and -r option specified

Calling the do_more_prompt function in headless mode will freeze neovim because it is eventally in the input-accepting state (the same as waiting for --more--).

* fixed "Press ENTER or type command to continue" to be suppressed

If in headless mode, we need to exit at this point. If we continue, we will enter the normal mode and the message "Press ENTER or type command to continue" will be displayed and we will be in the input waiting state.

* fixed functional ex_cmds tests

* Revert "fixed "Press ENTER or type command to continue" to be suppressed"

This reverts commit a02dc40e3b.

* Revert "fixed functional ex_cmds tests"

This reverts commit 3bdb8da20a.

* fixed conditional again

* added test for fixed hang issue with --headless (#11386)
2020-05-20 10:32:02 -04:00
7116105d66 provider: Add python3.9 to autoload/provider/pythonx.vim (#12344)
3.9's scheduled for beta release today.
https://www.python.org/dev/peps/pep-0596/
2020-05-20 13:57:46 +02:00
67eb3bfbc3 Add tests for jump_to_location 2020-05-19 08:51:10 +02:00
0aca34e0a9 Use get_line_byte_from_position in jump_to_location 2020-05-19 08:50:31 +02:00
131063e08f Refactor fetching the line byte
Takes the entire LSP position instead of line/col
2020-05-19 08:49:13 +02:00
74fed7d50f Merge pull request #12338 from h-michael/fix-flaky 2020-05-19 10:18:05 +09:00
5126546ed7 lsp: fix get diagnositcs 2020-05-19 10:06:30 +09:00
eabf1803cd test: fix flaky vim.defer_fn test 2020-05-19 00:02:14 +09:00
f2894bffb0 lua: Add highlight.on_yank (#12279)
* add lua function to highlight yanked region

* extract namespace, better naming, default values

* add default for event argument

* free timer

* factor out mark to position calculation

* d'oh

* make sure timer stops before callback (cf. luv example)

* factor out timer, more documentation

* fixup

* validate function argument for schedule

* fix block selection past eol

* correct handling of multibyte characters

* move arguments around, some cleanup

* move utility functions to vim.lua

* use anonymous namespaces, avoid local api

* rename function

* add test for schedule_fn

* fix indent

* turn hl-yank into proper (hightlight) module

* factor out position-to-region function

mark extraction now part of highlight.on_yank

* rename schedule_fn to defer_fn

* add test for vim.region

* todo: handle double-width characters

* remove debug printout

* do not shadow arguments

* defer also callable table

* whitespace change

* move highlight to vim/highlight.lua

* add documentation

* add @return documentation

* test: add check before vim.defer fires

* doc: fixup
2020-05-18 09:49:50 -04:00
a6be7a9180 doc: Vim internal variables & options in lua (#12302)
* doc: Add info about vim dicts in lua

* doc: preamble and info

* doc: remove weird spacing

* fixup
2020-05-17 23:29:34 -04:00
a91ce497b4 lsp: Fix timezone format of LSP log (ISO 8601) (#12332) 2020-05-17 20:12:22 -04:00
4fbbe1c957 lsp: Handle end lines in apply_text_edits (#12314)
If the LSP sends an end line that is larger than what nvim considers to be the
last line, you get an Index out of bounds error when fetching the line from
nvim, a change that was introduced in #12223. This change removes the strict
indexing and checks the return value from nvim_buf_get_lines.
2020-05-17 13:47:14 -04:00
ae5bd0454e lua: add tbl_deep_extend (#11969) 2020-05-17 13:24:34 -04:00
090d3c2813 matchdelete: fix porting (#12328)
really use win and not curwin
2020-05-17 13:55:10 +02:00
d7d69fed18 vim-patch:8.1.1084: cannot delete a match from another window (#12325)
Problem:    Cannot delete a match from another window. (Paul Jolly)
Solution:   Add window ID argument to matchdelete(), clearmatches(),
            getmatches() and setmatches(). (Andy Massimino, closes vim/vim#4178)
aff749145e
2020-05-16 15:25:51 +02:00
f3d0a1741e Merge pull request #12324 from alindeman/nil-code-actions 2020-05-16 11:58:54 +09:00
986bed2329 Check for nil before checking for empty table
At least the `gopls` language server seems to return nil/null if no code
actions are available. Currently this results in an error:

> Error executing vim.schedule lua callback: shared.lua:199: Expected table, got nil
2020-05-15 21:34:28 -04:00
f559e5249e LSP: Add textDocument/codeAction support (#11607)
* Add textDocument/codeAction

* Add callback for workspace/executeCommand
* Escape newlines in codeAction titles
* Return empty list in get_line_diagnostics if no buffer diagnostics
* Add stub documentation
* Validate context parameter in code_action
* Add support for edit in CodeAction responses
* Group diagnostics by line in vim.lsp.util.get_line_diagnostics()
* Advertise code action literal support
2020-05-16 01:18:59 +02:00
c37d9fa3da Merge pull request #11764 from blueyed/vim-patch-usage 2020-05-15 10:45:10 -04:00
e2a33a6622 Merge pull request #12259 from janlazo/vim-8.1.1186 2020-05-15 10:36:32 -04:00
da6f38ab3c LSP: Add workspace.applyEdit client capabilities (#12313)
applyEdit is supported by the built-in client.
2020-05-14 18:56:33 +02:00
02155f5c10 lsp: fix bug when documentEdit version=null for unattached buffer (#12272) 2020-05-13 23:14:52 -04:00
076b0949d0 vim-patch:8.2.0736: some files not recognized as pamenv
Problem:    Some files not recognized as pamenv.
Solution:   Add pam_inv.conf. (closes vim/vim#6065)
aacc6afdb8
2020-05-11 23:57:29 -04:00
adcabb73bc vim-patch:8.2.0309: window-local values have confusing name
Problem:    Window-local values have confusing name.
Solution:   Rename w_p_bri* to w_briopt_*.
b81f56fb57
2020-05-11 22:30:24 -04:00
801c8e06d6 vim-patch:8.2.0308: 'showbreak' does not work for a very long line
Problem:    'showbreak' does not work for a very long line. (John Little)
Solution:   Check whether 'briopt' contains "sbr". (Ken Takata, closes vim/vim#5523,
            closes vim/vim#5684)
1aa76b8fd0
2020-05-11 22:30:24 -04:00
393dc2b0f5 vim-patch:8.2.0713: the pam_environment file is not recognized
Problem:    The pam_environment file is not recognized.
Solution:   Add a filetype pattern for pamenv. (closes vim/vim#6051)
6115481053
2020-05-11 22:30:24 -04:00
03cc818fdc vim-patch:8.2.0705: indent tests don't run on CI for FreeBSD
Problem:    Indent tests don't run on CI for FreeBSD.
Solution:   Set modeline. (Ozaki Kiichi, closes vim/vim#6048)
3657686a0e
2020-05-11 22:30:24 -04:00
ae01a5e9f8 vim-patch:8.1.1186: readdir() allocates list twice
Problem:    readdir() allocates list twice.
Solution:   Remove second allocation.  Also check for zero length.
334ad41504
2020-05-11 22:30:23 -04:00
55b62a937c LSP: Make applyEdit return a response (#12270)
According to the specification workspace/applyEdit needs to respond with
a `ApplyWorkspaceEditResponse`

See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#workspace_applyEdit

This is a subset of https://github.com/neovim/neovim/pull/11607
2020-05-11 16:56:35 +02:00
9816173fb3 Merge #12275 from erw7/profile-fix-use-after-free
viml/profile: fix missing fixes when merging vim-patch:8.1.0130

Fix #12255

### Steps to reproduce using `nvim -u NORC`

```
nvim -u NORC
:function Test()
:endfunction
:profile start log1
:profile func Test
:call Test()
:profile stop
:profile start log2
:profile func Test
:call Test()
:profile stop
```

### Actual behaviour

#### log1
```
FUNCTION Test()
Called 1 times
...
```

#### log2
```
FUNCTION Test()
Called 2 times
...
```

### Expected behaviour

#### log1
```
FUNCTION Test()
Called 1 times
...
```

#### log2
```
FUNCTION Test()
Called 1 times
...
```
2020-05-09 17:22:08 -04:00
7872877ce5 test: add more profile tests
- Add a test to make sure that 'profile dump' does not reset the profile.
- Add a test to make sure that 'profile stop' does reset the profile.
2020-05-10 03:16:30 +09:00
949783fdfa viml/profile: fix issue where profile is not reset on stop 2020-05-09 11:21:52 +09:00
861aade680 viml/profile: fix use after free
fixes #12255.
2020-05-09 11:21:52 +09:00
2f818eb9ee runtime/tutor: fix broken inline spans #12282
* runtime/syntax/tutor: fix broken inline spans

Also, conceal the ends of code blocks.

Re: #11401 and #12273

* fixup
2020-05-08 09:48:25 -07:00
281e44f7bb lsp: Make apply_text_edits non-ASCII safe (#12223)
* Make apply_text_edits non-ASCII safe

Use `vim.str_byteindex` to correct starting and ending positions for text edits if the line contains non-ASCII characters.

Fixes #12221

* text_edit may be applied to other buffers

* make sure the buffer is loaded

* add comments

* add test for non-ASCII edits
2020-05-08 10:04:41 -04:00
9a67b030d9 lsp: Handle unknown CompletionItemKind and SymbolKind (#12257)
* lsp: handle kinds not specified in protocol

fix: #12200
If the client set "symbolKind.valueSet",
the client must handle it properly even if it receives a value outside the specification.

* test: add lsp.util.{get_completion_item_kind_name, get_symbol_kind_name} test case

* lsp: make lsp.util.{get_completion_item_kind_name, get_symbol_kind_name} private
2020-05-07 16:23:25 -04:00
1407899c32 lua: Add buffer, window and tab accessors (#12268)
* Add buffer, window and tab accessors

* Fix deletion and add tests
2020-05-07 15:22:24 -04:00
7432b3ca4c lsp: set buflisted when jumping to location (#12253) 2020-05-07 09:30:42 -04:00
7ac46b5d37 vim-patch:8.1.1435: memory usage test is a bit too flaky
Problem:    Memory usage test is a bit too flaky.
Solution:   Adjust the tolerances a bit. (Christian Brabandt)
5d508dd39e
2020-05-07 16:48:08 +09:00
a32bac0c04 vim-patch:8.1.1058: memory usage test may still fail on some systems
Problem:    Memory usage test may still fail on some systems.
Solution:   Use 98% of the lower limit. (Christian Brabandt)
3a731ee0c2
2020-05-07 16:48:08 +09:00
6b3399338f vim-patch:8.1.1037: memory usage test may still fail on some systems
Problem:    Memory usage test may still fail on some systems.
Solution:   Increase tolerance from 3% to 20%.
6b6f7aae4a
2020-05-07 16:48:08 +09:00
7acdc9da1d vim-patch:8.1.1033: memory usage test may still fail on some systems
Problem:    Memory usage test may still fail on some systems. (Elimar
            Riesebieter)
Solution:   Increase tolerance from 1% to 3%.
ba64ba0935
2020-05-07 16:48:08 +09:00
6175d974c2 vim-patch:8.1.1031: memory usage test may still fail
Problem:    Memory usage test may still fail.
Solution:   Drop the unused min value. (Christian Brabandt)
f7e47af776
2020-05-07 16:48:08 +09:00
9ad2ba1c5c vim-patch:8.1.1027: memory usage test sometimes fails
Problem:    Memory usage test sometimes fails.
Solution:   Use 80% of before.last as the lower limit. (Christian Brabandt)
08cda65ddf
2020-05-07 16:48:08 +09:00
1212390254 vim-patch:8.1.1007: using closure may consume a lot of memory
Problem:    Using closure may consume a lot of memory.
Solution:   unreference items that are no longer needed. Add a test. (Ozaki
            Kiichi, closes vim/vim#3961)
209b8e3e3b
2020-05-07 16:47:41 +09:00
17f067f4b4 vim-patch:8.1.0475: memory not freed on exit when quit in autocmd
Problem:    Memory not freed on exit when quit in autocmd.
Solution:   Remember funccal stack when executing autocmd.
27e80c885b
2020-05-07 16:00:46 +09:00
f04a9a2c9a Merge #12203 from janlazo/vim-8.2.0648
vim-patch:8.1.{800,868,1581},8.2.{648,649,663,678,681,688,691,692}
2020-05-05 23:38:15 -04:00
d2766b06c8 vim-patch:8.1.1120: cannot easily get directory entry matches #12222
Problem:    Cannot easily get directory entry matches.
Solution:   Add the readdir() function. (Yasuhiro Matsumoto, closes vim/vim#2439)
543c9b1921

closes #12212
2020-05-05 08:15:45 -07:00
48c2198297 paste: support replace mode (#11945)
* paste: support replace mode
* Clean up

Co-authored-by: Jesse Bakker <git@jessebakker.com>
2020-05-05 13:18:41 +02:00
a467f3f665 tag: fix problem when tagfunc return value is v:null (#12251)
fixes #12250.
2020-05-05 10:33:48 +02:00
fdd328d568 Merge #12230 'fix :terminal flicker with scrolloff' 2020-05-05 00:32:23 -04:00
7b764bb43d terminal: disable 'scrolloff' (fixes flicker)
Besides the special-case in get_scrolloff_value(), it makes sense for
'scrolloff' and 'sidescrolloff' to reflect the correct values (for
plugins, scripts, …).

ref 53d607af9c53accfd634435908fb79061f1212b9
ref #11915
ref #12230
2020-05-04 21:21:33 -07:00
edd5b233d8 terminal: always return zero from get_scrolloff_value() #12230
Fixes flicker

fix #11072
fix #11915
2020-05-04 21:21:33 -07:00
f605eeec65 lsp: fix tagstack for location jump #12248 2020-05-04 20:12:35 -07:00
2c40a38b39 LSP: Avoid URI-to-fname conversion for non-file URIs #12243
Fixes https://github.com/neovim/neovim/issues/12210
2020-05-04 20:06:40 -07:00
ebee77e73c checkhealth/ruby: fix off-by-one error #12245
Co-authored-by: BodongLiKolmostar <bodong.li@kolmostar.com>
2020-05-04 19:58:45 -07:00
d46c4003cf funcs: Fix a memory leak in f_expand (#12227)
:echo expand('%', v:false, v:true)

==423== 28 bytes in 1 blocks are definitely lost in loss record 124 of 420
==423==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==423==    by 0x2AD09C: try_malloc (memory.c:71)
==423==    by 0x2AD0B8: xmalloc (memory.c:105)
==423==    by 0x2AE05D: xmallocz (memory.c:182)
==423==    by 0x1F7CF4: vim_strnsave (strings.c:68)
==423==    by 0x318813: eval_vars (ex_docmd.c:8885)
==423==    by 0x34F5FC: f_expand (funcs.c:2058)
==423==    by 0x36D023: call_func (eval.c:6419)
==423==    by 0x370C28: get_func_tv.lto_priv.707 (eval.c:6150)
==423==    by 0x372748: eval7 (eval.c:4326)
==423==    by 0x37291A: eval6 (eval.c:4036)
==423==    by 0x372BF6: eval5 (eval.c:3884)
2020-05-04 10:50:54 +02:00
496b668ad1 Merge pull request #12237 from h-michael/vim-nil
lsp: text_document.version may be vim.NIL not nil
2020-05-04 09:53:00 +02:00
67634da714 lsp: add a lsp.util.apply_text_edits test(pending)
We don't handle non-ASCII characters well in UTF-16.
So I add a non-ASCII characters test case.
2020-05-04 09:05:16 +09:00
0107a194fa lsp: fix apply_text_document_edit test
lsp.util.buf_versions must be set in advance.
Use helper.insert to create an anonymous buffer,
so create a named buffer for testing without using insert.
2020-05-04 08:10:27 +09:00
ed4df85f6b vim-patch:8.2.0692: startup test fails on MS-Windows
Problem:    Startup test fails on MS-Windows.
Solution:   Allow for any path.
4515bcdec8
2020-05-03 13:44:13 -04:00
cd16e036d1 vim-patch:8.2.0691: startup test fails
Problem:    Startup test fails.
Solution:   Adjust expected output from -V2 argument.
7779ee30d9
2020-05-03 13:43:08 -04:00
88f4650114 vim-patch:8.2.0688: output clobbered if setting 'verbose' to see shell commands
Problem:    Output clobbered if setting 'verbose' to see shell commands.
Solution:   Only output "Searching for" when 'verbose' is 11 or higher.
647a530b33
2020-05-03 13:40:25 -04:00
5a0744e446 vim-patch:8.2.0681: pattern for 'hlsearch' highlighting may leak
Problem:    Pattern for 'hlsearch' highlighting may leak. (Dominique Pelle)
Solution:   Call end_search_hl() to make sure the previous pattern is freed.
            (closes vim/vim#6028)
0b6849e9e3
2020-05-03 13:16:38 -04:00
bc29283f20 vim-patch:8.2.0678: rare crash for popup menu
Problem:    Rare crash for popup menu.
Solution:   Check for NULL pointer. (Nobuhiro Takasaki, closes vim/vim#6027)
d58a662f44
2020-05-03 13:16:38 -04:00
560ce25359 vim-patch:8.2.0663: not all systemd temp files are recognized
Problem:    Not all systemd temp files are recognized.
Solution:   Add two more patterns. (Jamie Macdonald, closes vim/vim#6003)
512fe833c3
2020-05-03 13:16:38 -04:00
a89d64b687 vim-patch:8.1.0868: crash if triggering garbage collector after a function call
Problem:    Crash if triggering garbage collector after a function call.
            (Michael Henry)
Solution:   Don't call the garbage collector right away, do it later.
            (closes vim/vim#3894)
889da2f243
2020-05-03 13:16:38 -04:00
66369cd9d0 vim-patch:8.1.0800: may use a lot of memory when a function refers itself
Problem:    May use a lot of memory when a function creates a cyclic
            reference.
Solution:   After saving a funccal many times, invoke the garbage collector.
            (closes vim/vim#3835)
4456ab527a
2020-05-03 13:16:37 -04:00
5058b07122 vim-patch:8.1.1581: shared functions for testing are disorganised
Problem:    Shared functions for testing are disorganised.
Solution:   Group finctions in script files. (Ozaki Kiichi, closes vim/vim#4573)
7a39dd7f00
2020-05-03 13:16:37 -04:00
cf9887c838 vim-patch:8.2.0649: undo problem whn an InsertLeave autocommand resets undo
Problem:    Undo problem whn an InsertLeave autocommand resets undo. (Kutsan
            Kaplan)
Solution:   Do not create a new undo block when leaving Insert mode.
db93495d27
2020-05-03 13:16:37 -04:00
a576bf6196 vim-patch:8.2.0648: semicolon search does not work in first line
Problem:    Semicolon search does not work in first line.
Solution:   Allow the cursor to be in line zero. (Christian Brabandt,
            closes vim/vim#5996)
0e71704b77
2020-05-03 13:16:37 -04:00
501ef95298 lsp: fixup workspace symbol capabilities (#12233)
use workspace.symbol instead of workspaceSymbol to mimic the lsp spec.
2020-05-03 18:01:04 +02:00
d13c1642ae Merge pull request #12228 from h-michael/fix-docsyms-to-items
lsp: fix lsp.util.symbols_to_items with DocumentSymbol has children
2020-05-02 18:42:10 +02:00
5951ed5d74 Merge pull request #12229 from Billy4195/vim-8.1.0814
[RFC] vim-patch:8.1.{814,816}
2020-05-02 18:29:50 +02:00
ea347b18d8 lsp: add workspace/symbol (#12224)
* lsp: add workspace/symbol
* refactor symbol callback
* set hierarchical symbol support to true
* add documentation and default mapping

Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2020-05-02 17:56:05 +02:00
2f42e4d0c8 LSP: Support LocationLink (#12231)
* support LocationLink in callbacks
* announce linkSupport in client capabilities
2020-05-02 15:21:07 +02:00
a0a433dffc vim-patch:8.1.0816: test for 'runtimepath' in session fails on MS-Windows
Problem:    Test for 'runtimepath' in session fails on MS-Windows.
Solution:   Skip the test for now.
681b6bc86c
2020-05-02 17:43:25 +08:00
2f27d37517 vim-patch:8.1.0814: :mksession cannot handle a very long 'runtimepath'
Problem:    :mksession cannot handle a very long 'runtimepath'. (Timothy
            Madden)
Solution:   Expand each part separately, instead of the whole option at once.
            (Christian Brabandt, closes vim/vim#3466)
ed18f2c03a
2020-05-02 17:36:48 +08:00
3eae7d52c5 lsp: add lsp.util.symbols_to_items test 2020-05-02 15:16:43 +09:00
d0af0f5c9e lsp: fix lsp.util.symbols_to_items
fix: https://github.com/neovim/neovim/pull/11931#issuecomment-622422581

There was an error in the process of flattening the hierarchical structure.
So when DocumentSymbol has children, our client can't handle it correctly.
2020-05-02 15:16:35 +09:00
6dc8398944 [LSP] check for vim.NIL and add apply_text_document_edit tests 2020-05-01 17:40:03 +02:00
a6071ac04d version.c: update [ci skip] #12196
vim-patch:8.2.0621: after running tests asan files may remain
vim-patch:8.2.0622: Haiku: GUI does not compile
vim-patch:8.2.0630: "make tags" does not cover Haiku GUI file
vim-patch:8.2.0631: Haiku file formatted with wrong tabstop
vim-patch:8.2.0632: crash when using Haiku
vim-patch:8.2.0636: :messages does not show the maintainer when $LANG is unset
vim-patch:8.2.0642: Vim9: using invalid index
vim-patch:8.2.0643: terminal uses brown instead of dark yellow
vim-patch:8.2.0645: MS-Windows terminal: CTRL-C does not get to child job
vim-patch:8.2.0651: old style benchmark test still in list of distributed files
vim-patch:8.2.0654: building with Python fails
vim-patch:8.2.0664: included undesired changes in Makefile
vim-patch:8.2.0667: cannot install Haiku version from source
vim-patch:8.2.0671: Haiku: compiler warnings
2020-05-01 08:08:27 -07:00
250e4e699f build: Inherit -n and -jN flags if Ninja #12219 2020-05-01 07:36:56 -07:00
fe4383216b doc/UI: mode_info_set: mention colors should be swapped #12211
When attr_id is 0, the cursor's colors should be swapped, otherwise the
cursor might be invisible.

Closes #12198
2020-05-01 07:34:28 -07:00
e5022c61ed treesitter: unknown predicates always match #12173 2020-04-30 22:43:30 -07:00
42b441738d Merge pull request #12204 from archseer/lsp-user-data
lsp/completion: Expose completion_item under completed_items.user_data + vim-patch:8.2.0084
2020-04-30 15:25:15 +02:00
f9055c585f LSP: enable using different highlighting rules for LSP signs (#12176)
This commit creates 4 new highlight groups:
- LspDiagnosticsErrorSign
- LspDiagnosticsWarningSign
- LspDiagnosticsInformationSign
- LspDiagnosticsHintSign

These highlight groups are linked to their corresponding LspDiagnostics
highlight groups by default.

This lets users choose a different color for their sign columns and
virtualtext diagnostics.
2020-04-29 16:53:13 +02:00
e4a1be779b lsp/completion: Expose completion_item under completed_items.user_data.
By passing through completion_item it's now possible for snippet plugins
to add LSP snippet support.
2020-04-29 13:26:56 +09:00
c477b19bdc vim-patch:8.2.0084: complete item "user_data" can only be a string
Problem:    Complete item "user_data" can only be a string.
Solution:   Accept any type of variable. (closes vim/vim#5412)
0892832bb6
2020-04-29 11:15:49 +09:00
e9cc383614 LSP: support tagstack #12096 2020-04-28 07:47:22 -07:00
4e6531ddbd lsp: use vim.tbl_isempty to check sign (#12190)
ref: #12164
fix #12201
sign_getdefined() returns a list, {} if the sign is not defined.
2020-04-28 07:41:39 -07:00
9d0222ee3e tui: Fix italics when $TERM is screen in tmux #12199
Tmux uses smso to display italics when the default-terminal is screen,
screen-*. That's not the display the user wants, so change it to do the
same display as before f3ffe0b32.
fixes #12193.
2020-04-28 07:14:28 -07:00
c7d3630e21 Merge pull request #11943 from yatli/master
[RDY] API/UI: Allow UI to set PUM position and size, and pass the position to CompleteChanged
2020-04-27 21:12:12 +02:00
e34684b2ad api/ui: simplify popup menu position get/set logic; fix test 2020-04-28 01:54:16 +08:00
d372c804aa api/ui: allow set bounds row and col to be less than 0; ui_pum_get_pos: return first extui bounds information instead of reducing 2020-04-28 01:52:01 +08:00
ed6230434b gen_api_dispatch.lua: allow msgpack int for Float args; test: add ui_pum_set_bounds and tv_dict_add_float tests 2020-04-28 01:53:43 +08:00
6da16ac931 external pum: use floating point geometry; typval: add tv_dict_add_float 2020-04-28 01:53:05 +08:00
9c85caa390 ui_pum_get_pos: return internal pum position if external pum pos not found 2020-04-28 01:52:01 +08:00
630ec6cfb8 API/UI: Allow UI to set PUM position and size, and pass the position to CompleteChanged 2020-04-28 01:52:02 +08:00
d90a92bcd3 Merge pull request #12018 from janlazo/vim-8.0.1123
[RFC]vim-patch:8.0.{1123,1125,1138,1139,1142,1292,1334,1375},8.1.1264
2020-04-27 13:53:41 +02:00
fc98f2d581 Merge #11851 'eval.c: factor out eval/userfunc.c'
vim-patch:7.4.2058
2020-04-27 01:45:30 -04:00
34ad1ea366 Merge #12155 ':ls filter by terminal, lastused' 2020-04-26 23:57:37 -04:00
6b050a145d Merge #11851 'eval.c: factor out eval/userfunc.c'
vim-patch:7.4.2058
2020-04-26 20:01:58 -07:00
fcd9ce3901 vim-patch:8.0.1375: window size wrong after maximizing with WinBar
Problem:    Window size wrong after maximizing with WinBar. (Lifepillar)
Solution:   Fix height computations. Redraw window when it is zero height but
            has a WinBar. (closes vim/vim#2356)
415a6939a4
2020-04-26 21:28:48 -04:00
94e7f30dbb vim-patch:8.1.1264: crash when closing window from WinBar click
Problem:    Crash when closing window from WinBar click. (Ben Jackson)
Solution:   Check that window pointer is still valid. (closes vim/vim#4337)
d2fad67e3e
2020-04-26 19:20:20 -04:00
5b3ec39df3 vim-patch:8.0.1139: using window toolbar changes state
Problem:    Using window toolbar changes state.
Solution:   Always execute window toolbar actions in Normal mode.
a21a6a9ade
2020-04-26 19:17:17 -04:00
86d0f67c29 vim-patch:8.0.1334: splitting a window with a WinBar damages window layout
Problem:    Splitting a window with a WinBar damages window layout.
            (Lifepillar)
Solution:   Take the winbar into account when computing the new window
            position.  Add WINBAR_HEIGHT().
3167c3e701
2020-04-26 19:17:16 -04:00
05f58a2858 vim-patch:8.0.1292: quick clicks in the WinBar start Visual mode
Problem:    Quick clicks in the WinBar start Visual mode.
Solution:   Use a double click in the WinBar like a normal click.
d327b0c68f
2020-04-26 19:17:16 -04:00
355dffdd76 vim-patch:8.0.1138: click in window toolbar starts Visual mode
Problem:    Click in window toolbar starts Visual mode.
Solution:   Add the MOUSE_WINBAR flag.
eb163d73b1
2020-04-26 19:17:16 -04:00
7d028f0765 vim-patch:8.0.1142: window toolbar menu gets a tear-off item
Problem:    Window toolbar menu gets a tear-off item.
Solution:   Recognize the window toolbar.
378daf87d3
2020-04-26 19:17:16 -04:00
9758f5e508 vim-patch:8.0.1125: wrong window height when splitting window with window toolbar
Problem:    Wrong window height when splitting window with window toolbar.
Solution:   Add or subtract the window toolbar height.
d326ad6e93
2020-04-26 19:17:16 -04:00
64b61d49c2 vim-patch:8.0.1123: cannot define a toolbar for a window
Problem:    Cannot define a toolbar for a window.
Solution:   Add a window-local toolbar.
1b9645de3c

"WinBar" code in "screen.c" was not ported.

Fix https://github.com/neovim/neovim/issues/11513#issuecomment-562012827
2020-04-26 19:17:16 -04:00
5f41717838 LSP: don't redefine LspDiagnostics signs #12164
fix #12162
2020-04-26 15:36:40 -07:00
50ff37308a LSP: Fix show_line_diagnostics #12186
Messed this up in ef0398fe88
2020-04-26 14:56:30 -07:00
05a07ff7af lint: use docstring style #12187 2020-04-26 09:52:39 -07:00
663b83814d LSP: Add a check for null version in VersionedTextDocumentIdentifier (#12185)
According to the spec there is the possibility that when a
VersionedTextDocumentIdentifier is used in a TextEdit the value may be
null. Currently we don't check for this and always assume that it's set.
So currently if a TextEdit comes in for a rename for example with the
version null, it fails as we are comparing the bufnumber with nil.

https://microsoft.github.io/language-server-protocol/specification#versionedTextDocumentIdentifier
2020-04-26 16:51:41 +02:00
f3ffe0b325 tui: improve support for GNU Screen (#12098)
Wrapping it in DCS allows the following features to work with GNU
Screen.

- Changing the cursor style.
- bracketed paste.
- focus reporting.
2020-04-26 15:15:47 +02:00
3de9452abf Merge #12177 'folds: decrease reliance on globals' 2020-04-26 02:52:39 -04:00
68511924d0 LSP: remove obsolete "peek definition" code #12178
The method with the name 'textDocument/peekDefinition' is not part of
the official language server protocol specification. Therefore no
language server can/will support this. Thereby all related code and
documentation as been removed.
2020-04-25 21:47:48 -07:00
c5217c67df TUI: block signals on suspend #12180
fix #8075
2020-04-25 18:22:40 -07:00
2238b2a88f Merge #12181 from janlazo/vim-8.2.0635
vim-patch:8.2.{635,638}
2020-04-25 20:41:08 -04:00
1b42e95ece ci/travis: Enable ipv6 #12182
ref: a39c8b7ce3
ref: bfe13ccc58

Also:
- Remove unused macos_rvm_dance() function. (It was there for reference,
  but we have since resolved (or gave up) on Travis + macOS + ruby.
2020-04-25 17:20:37 -07:00
229a836d9b vim-patch:8.2.0638: MS-Windows: messages test fails
Problem:    MS-Windows: messages test fails.
Solution:   Clear environment variables.
47a1a8baf9
2020-04-25 16:05:18 -04:00
2bf4e824d4 vim-patch:8.2.0635: when using 256 colors DarkYellow does not show expected color
Problem:    When using 256 colors DarkYellow does not show expected color.
Solution:   Use color 3 instead of 130. (Romain Lafourcade, closes vim/vim#5985)
e93c968f52
2020-04-25 15:56:26 -04:00
ef0398fe88 LSP: Expose diagnostics grouped by bufnr (#11932)
Expose `vim.lsp.buf.diagnostics_by_buf`

This makes it easier to customize the diagnostics behavior. For example
to defer the update they can override the
`textDocument/publishDiagnostics` callback to only call
`buf_diagnostics_save_positions` and then defer the other actions to a
autocmd event.
2020-04-25 15:46:58 +02:00
78d58eaf61 lsp: remove buffer version on buffer_detach (#12029)
When we save the buffer, the buffer is detached and attached again.
So the client also needs to remove the buffer version once.
2020-04-25 14:58:35 +02:00
c9f4cac3c9 version.c: update [ci skip] (#12084) 2020-04-24 23:33:15 +02:00
4d8b66e497 helpers: fix FIXED_TEMP_ARRAY
...was using wrong macro argument.
2020-04-24 20:33:14 +02:00
6da348f220 lint: fix linting issues 2020-04-24 20:33:11 +02:00
7d2879694e extmark: introduce extmark_splice_cols
to ease up notations.
2020-04-24 20:32:20 +02:00
d20142a31f folds: decrease reliance on global 'curwin'
TODO in a future commit:
- remains 2 instances of changed_lines that dont take into account
buffer
2020-04-24 20:28:44 +02:00
deb4566cab lsp: callback for references now opens qf (#12171)
In contrast to other callbacks for LSP requests like
`textDocument/documentSymbols`, does the one for references not open the
quickfix window after the quickfix list was filled. This left the user
in a situation he don't know what or if something had happen.

Related to: neovim/neovim#12170
2020-04-23 13:36:19 +02:00
6c9a5743a0 treesitter: check for integer overflow (#12135)
Sometimes treesitter calls for an invalid column within a line, checking
that the column is actually valid and forcing the value avoids an
integer overflow and an infinite sequence of invalid reads.

Fixes #12131
2020-04-22 18:54:56 +02:00
fdedaa7226 Merge pull request #12081 from xylix/bash-version-check 2020-04-21 22:35:31 -04:00
978a6bcaf2 vim-patch:8.1.2225: the "last used" info of a buffer is under used
Problem:    The "last used" info of a buffer is under used.
Solution:   Add "lastused" to getbufinfo(). List buffers sorted by last-used
            field. (Andi Massimino, closes vim/vim#4722)
52410575be
2020-04-21 21:40:22 +01:00
6854680579 terminal: Fix mouse coordinates issue (#12158)
Offsets of window were not taken into account when sending mouse
coordinates to the terminal. Therefore, when nu or rnu is set, the mouse
coordinates sent to the terminal were not correct. Change it to send the
correct coordinates by subtract window offset from col.
2020-04-21 15:44:39 +02:00
633322a020 lsp: do not assert even if the code does not exist in ErrorCodes (#11981)
There is ErrorCodes in the LSP specification, but in ResponseError.code
it is not used and the actual type is number.
Some language servers response original error cods and this is valid spec.
So we shouldn't assert even if the code does not exist in ErrorCodes.

ref: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#responseMessage
2020-04-21 15:42:48 +02:00
0c637898f9 lsp: textDocument/definition can return Location or Location[] (#12014)
* https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_definition

Co-authored-by: Khangal Jargalsaikhan <khangal.j@irbis.sg>
2020-04-21 15:16:58 +02:00
2a5d766581 doc: fix vim.lsp.stop_all_clients doc (#12055) 2020-04-21 14:51:51 +02:00
e58a03a68e Merge pull request #12108 from mcepl/luv-1.18.0-compat 2020-04-21 08:00:42 -04:00
e8dd2c986c Test on actual libuv version number, not on existence of symbol.
uv_stream_get_write_queue_size isn't a define, it's a
function. It seems like this would always be shadowing the
actual function name.
2020-04-21 11:03:13 +02:00
770a0ac2df Make neovim building even with libuv 1.18.0
(found for example on openSUSE/Leap 15.*)
2020-04-21 10:14:07 +02:00
9678fe4cfb Merge pull request #11989 from Weypare/textEdit
LSP/completion: add textEdit support
2020-04-20 21:31:19 +02:00
49045b173e test: add docs for get_completion_word test 2020-04-20 20:20:14 +03:00
a0d2bfeeb5 test: add get_completion_word test for text_doc...
...ument_completion_list_to_complete_items
2020-04-20 18:35:54 +03:00
8745247cba tui: Don't call uv_write without output (#12146)
Fixes #11653, #11990. Check for cursor visibility to toggle uv_write call.
2020-04-20 14:50:44 +02:00
e6cfc1b158 LSP/completion: Add completion text helper function 2020-04-20 14:09:13 +03:00
adec9fb444 lsp: export convert_signature_help_to_markdown_lines (#11950)
This function is also useful for users to create their own `textDocument/signatureHelp` callback function.
2020-04-19 23:40:54 +02:00
9d59f066cb vim-patch:8.0.1651: cannot filter :ls output for terminal buffers
Problem:    Cannot filter :ls output for terminal buffers.
Solution:   Add flags for terminal buffers. (Marcin Szamotulski, closes vim/vim#2751)
0751f51a5b
2020-04-19 20:18:41 +01:00
ec2d45a851 vim-patch:7.4.1988
Problem:    When updating viminfo with file marks there is no time order.
Solution:   Remember the time when a buffer was last used, store marks for
            the most recently used buffers.
ab9c89b68d

As this is a viminfo fix, most of this is irrelevant - the patch has
just been brought across for the creation and updating of buffer's
`b_last_used` properties.
2020-04-19 20:18:41 +01:00
ca02db1f9f Merge pull request #12047 from erw7/fix-resolve-on-windows
Change resolve() to resolve symbolic links on Windows
Neovim worked the same way as vim for shortcuts, but didn't handle symbolic links and junction cases. This PR implements the same behavior for symbolic links and junctions as for vim.
2020-04-19 14:11:01 +02:00
bf0f745861 lua: allow deepcopy of functions (#12136) 2020-04-19 01:04:37 +02:00
c5466ba6ef lsp: replace the event that closes the signature help preview window from InsertCharPre to CursolMovedI (#11954)
In the case of InsertCharPre, it is inconvenient because the signature help is displayed
when backspaced in insert mode, so change it to CursolMovedI.
2020-04-18 19:04:47 +02:00
7d4451c657 LSP: fix breakage when severity isn't specified (#12027)
Before this commit, the LSP client would throw errors when messages
without severity would be sent by the server. We make severity default
to `Error` as a kludge before proper heuristics to discover the severity
of a message are found.
2020-04-18 18:21:08 +02:00
9ac5bc4b0b Merge pull request #12141 from vigoux/treesitter_fix
[RFC] Update treesitter runtime
Get rid of our utf8proc dependency

Note that we unconditionnally escape treesitter queries, might need to be revisited.
2020-04-18 16:05:16 +02:00
e10f9151dc treesitter: remove utf8proc dependency 2020-04-18 09:21:03 +02:00
1fb44ba835 treesitter: escape backslashes in queries
Treesitter changed their decoders and apparently thus causing this
change.

This decoder change happened on
ee9a3c0ebb218990cf391ed987be7f2448c54a73.
2020-04-18 09:20:13 +02:00
727040c953 treesitter: update vendor code
Update treesitter vendor code to commit
35f82ce301951315e08de3b7e44a18c9170b28b8
2020-04-18 09:19:21 +02:00
e5da4fd557 Merge pull request #12145 from janlazo/vim-8.2.0584
vim-patch:8.2.{584,589}
2020-04-18 04:09:32 +02:00
b3d669b40b vim-patch:8.2.0589: .bsd file type not recognized
Problem:    .bsd file type not recognized.
Solution:   Recognize .bsd as BSDL. (Daniel Kho, closes vim/vim#5945)
0fc1288aef
2020-04-17 21:14:26 -04:00
6f7141dd76 vim-patch:8.2.0584: viminfo file uses obsolete function file_readable()
Problem:    Viminfo file uses obsolete function file_readable().
Solution:   Use filereadable(). (closes vim/vim#5934)
c5f33db888
2020-04-17 19:04:23 -04:00
fb4c7a53cf folds: decrease reliance on global "curwin" (#12132)
Pass the window in which to create/delete folds instead of using the
global "curwin" (current window).
Preliminary work for a fold API.

TODO: I kept changed_lines prototype unchanged. This should be updated
when a fold API sees the light.
2020-04-16 21:29:04 +02:00
a5818204b1 doc:Fix incorrect nvim config paths in documentation (#12134)
Updates  remaining  ~/.vim with ~/.config/nvim
2020-04-16 20:49:05 +02:00
51b4fc4778 lsp: provide a default for missing reference kind (#12127)
Fix #12122

>Error executing vim.schedule lua callback: /usr/local/share/nvim/runtime/lua/vim/lsp/util.lua:560: Expected lua string

Some lsp server(e.g. https://github.com/bash-lsp/bash-language-server) not have kind in reference, reference["kind"] is nil
2020-04-16 18:30:03 +02:00
e8269a3ab5 win,runtime: Fix problem when win32yank was a symbolic link in WSL [skip ci] (#12124)
On some versions of Windows, WSL is unable to execute symbolic links to
Windows executables (microsoft/WSL#3999). As a workaround for that problem
this changes to use resolve() on WSL if win32yank was a symbolic link.

fixes #12113.
2020-04-15 14:54:23 +02:00
e11e93d139 Merge pull request #12005 from erw7/fix-screen-vsplit
Closes #11998
2020-04-15 08:06:59 -04:00
979b7c0a73 Merge pull request #12121 from janlazo/vim-8.2.0575 2020-04-15 07:56:42 -04:00
5f7384bf42 vim-patch:8.2.0575: :digraph! not tested
Problem:    :digraph! not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#5925)
e3242346cf
2020-04-13 20:04:51 -04:00
05fd647770 Suppress Microsoft copyright banner. (#12114) 2020-04-14 00:42:50 +02:00
bf58c00071 Use libnvim as OUTPUT_NAME for libnvim (#12119)
libnvim's OUTPUT_NAME was nvim, which caused the cmake Ninja generator
to generate two build rules for the library, which produced a warning
about incorrect builds.
2020-04-14 00:41:45 +02:00
b3a66faf66 TUI: support setting cursor color in tmux (#12100) 2020-04-14 00:07:30 +02:00
93b2cb7a38 Merge pull request #11997 from janlazo/vim-8.1.2389
[RDY]vim-patch:8.1.{1745,2147,2280,2282,},8.2.{41,134,365,366,381,387,389,397,398,406,415,457,464,473,474,507,544,549}
2020-04-13 22:49:00 +02:00
cf223e7d78 vim-patch:8.2.0549: user systemd files not recognized
Problem:    User systemd files not recognized.
Solution:   Add filetype patterns. (Kevin Locke, closes vim/vim#5914)
3b922f1138
2020-04-13 12:00:34 -04:00
bdf629775b vim-patch:8.2.0544: memory leak in search test
Problem:    Memory leak in search test.
Solution:   Free msgbuf. (Dominique Pelle, closes vim/vim#5912)
880e4d9117
2020-04-13 12:00:34 -04:00
5726272559 vim-patch:8.2.0507: getbufvar() may get the wrong dictionary
Problem:    Getbufvar() may get the wrong dictionary. (David le Blanc)
Solution:   Check for empty name. (closes vim/vim#5878)
5259275347
2020-04-13 12:00:34 -04:00
366e75b6be vim-patch:8.2.0473: variables declared in an outer scope
Problem:    Variables declared in an outer scope.
Solution:   Decleare variables only in the scope where they are used.
8601545338
2020-04-13 12:00:33 -04:00
d74a28d716 vim-patch:8.2.0134: some map functionality not covered by tests
Problem:    Some map functionality not covered by tests.
Solution:   Add tests. (Yegappan Lakshmanan, closes vim/vim#5504)
8ba6bb7c94
2020-04-13 12:00:33 -04:00
87334c00e0 vim-patch:8.2.0474: cannot use :write when using a plugin with BufWriteCmd
Problem:    Cannot use :write when using a plugin with BufWriteCmd.
Solution:   Reset BF_NOTEDITED after BufWriteCmd. (closes vim/vim#5807)
0fff44152d
2020-04-13 12:00:33 -04:00
b8ddca6554 vim-patch:8.2.0464: typos and other small problems
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing file to distribution.
2d9d409ad4
2020-04-13 12:00:33 -04:00
bc84cf2585 vim-patch:8.2.0457: Test_quotestar() often fails when run under valgrind
Problem:    Test_quotestar() often fails when run under valgrind.
Solution:   Wait longer for the GUI to start.
26bde6e2eb
2020-04-13 12:00:32 -04:00
22eb3c9e49 vim-patch:8.1.1745: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.  Change comments to new style.
1f164b1968
2020-04-13 12:00:32 -04:00
dfb8dc8b45 vim-patch:8.2.0415: bsdl filetype is not detected
Problem:    Bsdl filetype is not detected.
Solution:   Add an entry in the filetype list. (Daniel Kho, closes vim/vim#5810)
40d235e730
2020-04-13 12:00:32 -04:00
5fe88337f0 vim-patch:8.2.0406: FileReadCmd event not well tested
Problem:    FileReadCmd event not well tested.
Solution:   Add a test.
e32848780c
2020-04-13 12:00:32 -04:00
16a4581349 vim-patch:8.1.2282: crash when passing many arguments through a partial
Problem:    Crash when passing many arguments through a partial. (Andy
            Massimino)
Solution:   Check the number of arguments. (closes vim/vim#5186)
4c054e9fb2
2020-04-13 12:00:32 -04:00
dbb386e1b2 vim-patch:8.1.2280: crash when passing partial to substitute()
Problem:    Crash when passing partial to substitute().
Solution:   Take extra arguments into account. (closes vim/vim#5186)
b0745b221d
2020-04-13 12:00:31 -04:00
60a7184185 vim-patch:8.2.0398: profile test fails when two functions take same time
Problem:    Profile test fails when two functions take same time.
Solution:   Add a short sleep in once function. (closes vim/vim#5797)
a21df1db3c
2020-04-13 12:00:31 -04:00
a15750321b vim-patch:8.2.0397: delayed screen update when using undo from Insert mode
Problem:    Delayed screen update when using undo from Insert mode.
Solution:   Update w_topline and cursor shape before sleeping. (closes vim/vim#5790)
5715b3147b
2020-04-13 12:00:31 -04:00
5be72756f8 vim-patch:8.2.0041: leaking memory when selecting spell suggestion
Problem:    Leaking memory when selecting spell suggestion.
Solution:   Free previous value at the right time.
6c52f82371
2020-04-13 12:00:31 -04:00
d2abd1be80 vim-patch:8.1.2147: crash when allocating memory fails
Problem:    Crash when allocating memory fails. (Zu-Ming Jiang)
Solution:   Check that 'spellcapcheck' is not NULL. (closes vim/vim#5048)
53efb18530
2020-04-13 12:00:31 -04:00
36326436f7 pvs/v502: use explicit ternary in for-loop 2020-04-13 12:00:30 -04:00
63fc0e1d1c vim-patch:8.2.0389: delayed redraw when shifting text from Insert mode
Problem:    Delayed redraw when shifting text from Insert mode.
Solution:   Use msg_attr_keep() instead of msg(). (closes vim/vim#5782)
e4fc746d13
2020-04-13 12:00:30 -04:00
351a1cff70 vim-patch:8.2.0387: error for possible NULL argument to qsort()
Problem:    Error for possible NULL argument to qsort().
Solution:   Don't call qsort() when there is nothing to sort. (Dominique
            Pelle, closes vim/vim#5780)
bb65a5690c
2020-04-13 12:00:30 -04:00
35e798c3a7 pvs/v595: check if extmark not NULL 2020-04-13 12:00:30 -04:00
69d019f3bd pvs/v560: remove redundant line check 2020-04-13 12:00:30 -04:00
7ef2677ca6 vim-patch:8.2.0381: using freed memory with :lvimgrep and autocommand
Problem:    Using freed memory with :lvimgrep and autocommand. (extracted from
            POC by Dominique Pelle)
Solution:   Avoid deleting a dummy buffer used in a window. (closes vim/vim#5777)
2573af3519
2020-04-13 12:00:30 -04:00
e892dde369 vim-patch:8.2.0365: tag kind can't be a multi-byte character
Problem:    Tag kind can't be a multi-byte character. (Marcin Szamotulski)
Solution:   Recognize multi-byte character. (closes vim/vim#5724)
283e5f4e69
2020-04-13 12:00:29 -04:00
65b0bd6577 vim-patch:8.2.0366: hardcopy command not tested enough
Problem:    Hardcopy command not tested enough.
Solution:   Add tests for printing. (Dominique Pelle, closes vim/vim#5748)
2e09634a78
2020-04-13 12:00:29 -04:00
13b4a6fd4f Merge pull request #12073 from janlazo/vim-8.2.0027
vim-patch:8.1.{2366,2378,2387,2387},8.2.{27,560}
2020-04-13 11:06:23 -04:00
a122f6c6d4 vim-patch:8.2.0560: compiler warning in tiny build
Problem:    Compiler warning in tiny build.
Solution:   Move declaration inside #ifdef. (Dominique Pelle, closes vim/vim#5915)
2196bce56f
2020-04-12 16:04:51 -04:00
0f18c718cd vim-patch:8.2.0027: still some /* */ comments
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
aa2f0ee639
2020-04-12 15:57:54 -04:00
b3e249db7c vim-patch:8.1.2387: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2ab2e8608f
2020-04-12 15:57:54 -04:00
73dc9e943c vim-patch:8.1.2378: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
5d18efecfd
2020-04-12 15:56:40 -04:00
2ec6fec20b vim-patch:8.1.2366: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
9bf703d46a
2020-04-12 15:56:39 -04:00
81db53edec vim-patch:8.1.2389: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
707d226ac5
2020-04-12 15:56:39 -04:00
46fdad255e Merge pull request #12033 from janlazo/vim-8.1.1313
[RFC]vim-patch:8.1.{1313,1567,1568}
2020-04-12 20:37:57 +02:00
1f56f9a4b3 netrw.vim: gx should ignore terminal buffers #12091
netrw thinks it's a remote file due the name of a terminal buffer (term://),
but a terminal buffer isn't a file.

Fixes https://github.com/neovim/neovim/issues/4612#issuecomment-600321171
2020-04-08 08:57:32 -07:00
f47e574c87 Apply suggestions from code review
Improve error message for unsupported bash version, use double square bracket operator

Co-Authored-By: Daniel Hahler <github@thequod.de>
2020-04-07 10:43:17 +03:00
d26a66a2b3 Check for bash version in vim-patch.sh 2020-04-06 09:59:25 +03:00
30a6e374d4 version.c: update [ci skip] #11995
vim-patch:8.0.1388: char not overwritten with ambiguous width char

vim-patch:8.1.1316: duplicated localtime() call
vim-patch:8.1.2134: modifier keys are not always recognized
vim-patch:8.1.2135: with modifyOtherKeys Alt-a does not work properly

vim-patch:8.2.0373: type of term_sendkeys() is unknown
vim-patch:8.2.0376: nasty callback test fails on some systems
vim-patch:8.2.0377: no CI test for a big-endian system
vim-patch:8.2.0383: wrong feature check causes test not to be run
vim-patch:8.2.0384: Travis CI has warnings
vim-patch:8.2.0390: terminal postponed scrollback test is flaky
vim-patch:8.2.0391: CI test coverage dropped
vim-patch:8.2.0394: Coverity complains about using NULL pointer
vim-patch:8.2.0395: build fails with FEAT_EVAL but without FEAT_MENU
vim-patch:8.2.0405: MSVC: build fails with some combination of features
vim-patch:8.2.0410: channel test fails too often on slow Mac
vim-patch:8.2.0411: Mac: breakcheck is using a value from the stone ages
vim-patch:8.2.0412: MS-Windows: cannot use vimtutor from the start menu
vim-patch:8.2.0417: Travis CI config can be improved
vim-patch:8.2.0428: buffer name may leak
vim-patch:8.2.0431: some compilers don't support using \e for Esc
vim-patch:8.2.0434: MS-Windows with VTP: Normal color not working
vim-patch:8.2.0435: channel contents might be freed twice
vim-patch:8.2.0437: MS-Windows installer contains old stuff
vim-patch:8.2.0438: terminal noblock test is very flaky on BSD
vim-patch:8.2.0440: terminal noblock test is still very flaky on BSD
vim-patch:8.2.0441: terminal noblock test is still failing on BSD
vim-patch:8.2.0442: channel contents might be used after being freed
vim-patch:8.2.0445: png and xpm files not in MS-Windows zip file
vim-patch:8.2.0447: terminal scroll tests fails on some systems
vim-patch:8.2.0451: Win32: double-width character displayed incorrectly
vim-patch:8.2.0452: channel_parse_messages() fails when called recursively
vim-patch:8.2.0455: cannot set the highlight group for a specific terminal
vim-patch:8.2.0460: build failure because of wrong feature name
vim-patch:8.2.0463: typos and other small problems
vim-patch:8.2.0466: not parsing messages recursively breaks the govim plugin
vim-patch:8.2.0468: GUI: pixel dust with some fonts and characters
vim-patch:8.2.0472: terminal highlight name is set twice, leaking memory
vim-patch:8.2.0475: channel out_cb test still fails sometimes on Mac
vim-patch:8.2.0476: terminal nasty callback test fails sometimes
vim-patch:8.2.0479: unloading shared libraries on exit has no purpose
vim-patch:8.2.0481: Travis is still using trusty
vim-patch:8.2.0490: Win32: VTP doesn't respect 'restorescreen'
vim-patch:8.2.0497: too verbose output from the asan build in Travis
vim-patch:8.2.0505: term_getty() not sufficiently tested

WinBar requires `W_WINROW` macro but it is removed in 7f21665673. Thus, the following patch is N/A:
vim-patch:8.0.1129: window toolbar missing a part of the patch

https://github.com/neovim/neovim/issues/11513 makes the following patches for WinBar N/A:
vim-patch:8.0.1520: cursor in wrong line when using a WinBar in Terminal window
vim-patch:8.1.1263: mouse clicks in WinBar not tested
vim-patch:8.1.1266: winbar test doesn't test enough
vim-patch:8.1.1272: click on WinBar of other window not tested
vim-patch:8.1.1456: WinBar not redrawn after scrolling one line

Most `Test_termcodes.vim` tests require removed options like `ttymouse`.
The following patches do not have relevant source code changes:
vim-patch:8.1.1137: xterm mouse wheel escape sequence is not tested
vim-patch:8.1.1142: no test for dragging the window separators with the mouse
vim-patch:8.1.1155: termcodes tests can be improved
vim-patch:8.1.1160: termcodes test would fail in a very big terminal
vim-patch:8.1.1165: no test for mouse clicks in the terminal tabpage line
vim-patch:8.1.1167: no test for closing tab by click in tabline
vim-patch:8.1.1175: no test for dragging a tab and double click for new tab
vim-patch:8.1.1176: test for dragging a tab is flaky
vim-patch:8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
vim-patch:8.1.1179: no test for mouse clicks in the fold column
vim-patch:8.1.1181: tests for mouse clicks are a bit flaky
vim-patch:8.1.1216: mouse middle click is not tested
vim-patch:8.1.1223: middle mouse click test fails without a clipboard
vim-patch:8.1.1244: no tests for CTRL-mouse-click
vim-patch:8.1.1247: urxvt mouse codes are not tested
vim-patch:8.1.1248: no test for dec mouse
vim-patch:8.1.1250: no test for netterm mouse
vim-patch:8.1.1469: no test for checking the cursor style response
vim-patch:8.1.1471: 'background' not correctly set for 2-digit rgb termresponse
vim-patch:8.1.1472: add_termcap_entry() is not tested
vim-patch:8.1.1474: 'ttybuiltin' is not tested
vim-patch:8.1.2106: no tests for dragging the mouse beyond the window
vim-patch:8.1.2118: termcodes test fails when $TERM is "dumb"
vim-patch:8.1.2137: parsing the termresponse is not tested
vim-patch:8.1.2150: no test for 'ttymouse' set from xterm version response
vim-patch:8.1.2169: terminal flags are never reset
vim-patch:8.1.2174: screen not recognized as supporting "sgr" mouse codes
vim-patch:8.1.2306: double and triple clicks are not tested
2020-04-04 06:55:08 -07:00
496faf2271 Merge pull request #12074 from jamessan/vim-patch-review
vim-patch.sh: Fix creation of commit list for PR review
2020-04-04 06:39:56 -04:00
b687a6c2b2 Change to canonicalize only when reparse point in included 2020-04-02 21:13:18 +09:00
f61331e184 Change resolve() to resolve symbolic links on Windows 2020-04-02 21:13:18 +09:00
6ca7ebb346 Merge pull request #11748 from bfredl/viewport
win_viewport event for buffer range and buffer cursor pos
2020-04-01 20:52:04 +02:00
1fe0b329fe api/ui: win_viewport event for visible range and cursor position in window 2020-04-01 19:43:55 +02:00
dc7f59e04b vim-patch.sh: Fix creation of commit list for PR review
[ci skip]
2020-03-31 22:40:33 -04:00
4139678f97 vim.uri: fix uri_to_fname (#12059)
fix: #12056
If the colon of the drive letter of windows is URI encoded,
it doesn't match the expected pattern, so decode it first.
2020-03-30 14:30:24 +02:00
53fdd76181 vim-patch:8.1.1568: strftime() test fails on MS-Windows
Problem:    Strftime() test fails on MS-Windows.
Solution:   Skip the check for using the $TZ environment variable.
87652a7e3b
2020-03-29 14:17:57 -04:00
10c5434f9c vim-patch:8.1.1567: localtime_r() does not respond to $TZ changes
Problem:    Localtime_r() does not respond to $TZ changes.
Solution:   If $TZ changes then call tzset(). (Tom Ryder)
db51730df1
2020-03-29 13:17:03 -04:00
573671b1fb vim-patch:8.1.1313: warnings for using localtime() and ctime()
Problem:    Warnings for using localtime() and ctime().
Solution:   Use localtime_r() if available.  Avoid using ctime().
63d2555c9c
2020-03-29 09:41:17 -04:00
e700a88bb6 Merge pull request #11746 from Billy4195/add_wildmenu_key
[RFC] Wildmenu support C-E and C-Y as popupmenu
2020-03-28 14:25:54 +01:00
4d53bdccc6 doc: Fix wildmenu doc inconsistencies and typos
Fix typos, capitalization to match block, and remove the angle brackets
on the CTRL keys to match other documentation.
2020-03-28 14:07:59 +08:00
a8f7841924 Merge pull request #12043 from bfredl/pumrl
popupmenu: don't use 'rightleft' option in cmdline mode
2020-03-23 21:14:36 +01:00
4dabbc19d4 popupmenu: don't use 'rightleft' option in cmdline mode
Cmdline is always drawn from the left to right, so using rightleft
popupmenu is not useful here
2020-03-23 19:14:33 +01:00
9847306b95 Merge pull request #12030 from erw7/fix-tui-access-global-var
TUI: do not use nvim_get_option in tui thread
2020-03-22 19:43:21 +01:00
61d4b81d21 Merge pull request #12026 from jamessan/s390x-travis
Add big-endian, s390x job for Travis
2020-03-22 13:35:51 -04:00
9333f86ab7 TUI: do not use "nvim_get_option" in tui thread
Since "nvim_get_option" is executed on the tui thread as a C function
instead of msgpack-rpc, it accesses global variables that may change on the
main thread.
2020-03-21 18:06:59 +09:00
ca828eaed6 Install gettext for msgfmt/msgmerge
[skip appveyor]
2020-03-18 23:52:36 -04:00
be7cefdc4f Set FUNCTIONALTEST=functionaltest-lua for s390x
LuaJIT doesn't support s390x yet.

[skip appveyor]
2020-03-18 23:52:29 -04:00
cca301d939 Install pynvim with --user to avoid permission issues
[skip appveyor]
2020-03-18 23:52:22 -04:00
0ab7cfa78b Add big-endian, s390x job to Travis
This will help catch issues like #11388.

[skip appveyor]
2020-03-18 22:03:51 -04:00
87d892afa0 vim-patch:8.1.0864 Make 'scrolloff' and 'sidescrolloff' options window local (#11854)
Problem: cannot have a local value for 'scrolloff' and 'sidescrolloff'

Author: Bram Moolenar

375e339007
2020-03-17 20:05:34 +01:00
5a5c2f0290 Merge pull request #11927 from Jesse-Bakker/lsp-buf-version
LSP: Use buffer version instead of changedtick for edits
2020-03-16 21:57:51 +01:00
c2d288e293 Fix screen terminal family issues 2020-03-12 18:36:17 +09:00
8b64a77144 Fix splitting issue on gnu screen
gnu screen does not have smglr, but it inherits smglr from xterm and
splitting will cause drawing problems. So disable smglr.
2020-03-12 15:16:25 +09:00
2b00d1d09c Merge #11977 from janlazo/vim-8.1.1279
vim-patch:8.1.1279,8.2.{360,361}
2020-03-08 13:36:52 -07:00
b00650cfe9 vim-patch:8.2.0361: internal error when using "0" for a callback
Problem:    Internal error when using "0" for a callback.
Solution:   Give a normal error. (closes vim/vim#5743)
14e57909e6
2020-03-07 23:37:27 -05:00
1ad414f6ee version.c: update
vim-patch:8.0.1287: temp file used for viminfo may have wrong permissions
vim-patch:8.0.1345: race condition between stat() and open() for viminfo
vim-patch:8.0.1355: cursor keys don't work in MS-Windows console
vim-patch:8.0.1358: undercurl is not used in the terminal
vim-patch:8.0.1371: Shift-Insert doesn't always work in MS-Windows console
vim-patch:8.0.1422: no fallback to underline when undercurl is not set
vim-patch:8.2.0362: MS-Windows: channel test fails if grep is not available
2020-03-07 23:14:52 -05:00
716bebad48 vim-patch:8.2.0360: yaml files are only recognized by the file extension
Problem:    Yaml files are only recognized by the file extension.
Solution:   Check for a line starting with "%YAML". (Jason Franklin)
8eab731328
2020-03-07 23:14:43 -05:00
63d8f08b0b vim-patch:8.1.1279: cannot set 'spellang' to "sr@latin"
Problem:    Cannot set 'spellang' to "sr@latin". (Bojan Stipic)
Solution:   Allow using '@' in 'spellang'. (closes vim/vim#4342)
9a061cb78c
2020-03-07 23:14:42 -05:00
45b8dc0c3d Revert "ci/Appveyor: install diffutils via scoop"
This reverts commit 4faf30de3e.
2020-03-07 23:14:42 -05:00
ccb038dc6a LSP/completion: add textEdit support
According to lsp specification, value of insertText should be ignored if
textEdit is provided.
2020-03-06 19:40:46 +02:00
f8f41d088b diff.c: fix sprintf call
fix #11975
2020-03-03 00:26:21 -08:00
fbc4c4fd36 lsp: make showMessage and logMessage callbacks different (#11942)
According to the LSP specification, showMessage is what is displayed and logMessage is what is stored.
Since these are different things, I devide the callback into those that match.
2020-03-02 14:27:30 +01:00
d22fd58629 Merge pull request #11716 from teto/folds_auto_backup
[RFC] foldcolumn autowidth
2020-03-02 13:56:27 +01:00
6f261d2394 updating doc 2020-03-02 12:59:35 +01:00
e35ff7371f lua: add vim.tbl_len() #11889 2020-03-01 23:38:43 -08:00
e2e99b9f81 version.c: update [ci skip] #11721
vim-patch:8.0.1354: Shift-Insert doesn't always work in MS-Windows console
vim-patch:8.0.1783: cannot use 256 colors in a MS-Windows console

vim-patch:8.1.0028: prompt buffer test fails on MS-Windows
vim-patch:8.1.0030: stoping Vim running in a terminal may not work
vim-patch:8.1.0349: crash when wiping buffer in a callback
vim-patch:8.1.0350: Vim may block on ch_sendraw()
vim-patch:8.1.0442: GUI: cursor not drawn after ":redraw | sleep"
vim-patch:8.1.0446: options test fails in the GUI
vim-patch:8.1.0447: GUI scrollbar test fails with Athena and Motif
vim-patch:8.1.0522: :terminal does not show trailing empty lines
vim-patch:8.1.0649: setjmp() variables defined globally are used in one file
vim-patch:8.1.0788: cannot build with tiny features
vim-patch:8.1.0882: checking for FEAT_MBYTE which doesn't exist anymore
vim-patch:8.1.0967: stray dependency in test Makefile
vim-patch:8.1.0997: using GUI colors in vim.exe when 'termguicolors' is off
vim-patch:8.1.1042: the paste test doesn't work properly in the Windows console
vim-patch:8.1.1127: getwinpos() doesn't work in terminal on MS-Windows console
vim-patch:8.1.1164: gettitle test is failing when server name differs
vim-patch:8.1.1166: gettitle test can still fail when another Vim is running
vim-patch:8.1.1185: mapping for CTRL-X is inconsistent
vim-patch:8.1.1903: cannot build without the +eval feature
vim-patch:8.1.2238: error in docs tags goes unnoticed
vim-patch:8.1.2353: build failure on FreeBSD
vim-patch:8.1.2393: using old C style comments
vim-patch:8.1.2397: should not define __USE_XOPEN

vim-patch:8.2.0122: readme files still mention MS-DOS
vim-patch:8.2.0125: :mode no longer works for any system
vim-patch:8.2.0129: MS-Windows installer doesn't use Turkish translations
vim-patch:8.2.0138: memory leak when starting a job fails
vim-patch:8.2.0139: MS-Windows: default for IME is inconsistent
vim-patch:8.2.0140: CI does not test building doc tags
vim-patch:8.2.0143: Coverity warning for possible use of NULL pointer
vim-patch:8.2.0145: using #error for compilation errors should be OK now
vim-patch:8.2.0153: warning shows when listing version info
vim-patch:8.2.0157: Vim9 script files not in list of distributed files
vim-patch:8.2.0176: generating os headers does not work for Swedish
vim-patch:8.2.0181: problems parsing :term arguments
vim-patch:8.2.0192: build failure without +terminal feature
vim-patch:8.2.0193: still build failure without +terminal feature
vim-patch:8.2.0213: configure does not recognize gcc 10.0 and later
vim-patch:8.2.0217: terminal test fails on Mac
vim-patch:8.2.0219: terminal test still fails on Mac
vim-patch:8.2.0220: terminal test did pass on Mac
vim-patch:8.2.0228: configure does not recognize gcc version on BSD
vim-patch:8.2.0230: terminal popup test is flaky
vim-patch:8.2.0231: silent system command may clear the screen
vim-patch:8.2.0236: MS-Windows unintall doesn't delete vimtutur.bat
vim-patch:8.2.0237: crash when setting 'wincolor' on finished terminal window
vim-patch:8.2.0244: compiler warning in Lua interface
vim-patch:8.2.0245: MSVC: error message if the auto directory already exists
vim-patch:8.2.0246: MSVC: deprecation warnings with Ruby
vim-patch:8.2.0247: misleading comment in NSIS installer script
vim-patch:8.2.0249: MS-Windows: various warnings
vim-patch:8.2.0255: VMS: missing files in build
vim-patch:8.2.0259: terminal in popup test sometimes fails
vim-patch:8.2.0266: terminal in popup test sometimes fails on Mac
vim-patch:8.2.0273: MS-Windows uninstall may delete wrong batch file
vim-patch:8.2.0278: channel test is flaky on Mac
vim-patch:8.2.0297: compiler warnings for the Ruby interface
vim-patch:8.2.0304: terminal test if failing on some systems
vim-patch:8.2.0314: short name not set for terminal buffer
vim-patch:8.2.0317: MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build
vim-patch:8.2.0330: build error with popup window but without terminal
vim-patch:8.2.0333: terminal in popup test is flaky
vim-patch:8.2.0337: build fails on a few systems
vim-patch:8.2.0338: build failure without the channel feature
vim-patch:8.2.0345: compiler warning when building without the float feature

8.2.{212,243,250} are connected. 8.2.0250 makes 8.2.0212 N/A.
vim-patch:8.2.0212: missing search/substitute pattern hardly tested
2020-03-01 23:36:37 -08:00
0110735547 Merge #11929 from janlazo/vim-8.1.1510
vim-patch:8.0.1587,8.1.{253,881,883,885,896,939,1107,1108,1466,1489,1510,1552,1642,1793},8.2.{108,133,135}
2020-03-01 23:23:50 -08:00
f1923d4b92 vim-patch:8.1.1793: mixed comment style in globals
Problem:    Mixed comment style in globals.
Solution:   Use // comments where appropriate.
1ccaa35abf
2020-03-01 20:02:10 -05:00
ad0587133f vim-patch:8.1.1108: test for 'visualbell' doesn't work
Problem:    Test for 'visualbell' doesn't work.
Solution:   Make 'belloff' empty.
7a66627cf4
2020-03-01 20:02:10 -05:00
e6c9db6ede vim-patch:8.1.1107: no test for 'visualbell'
Problem:    No test for 'visualbell'.
Solution:   Add a test.
b4e6a2d075
2020-03-01 20:02:10 -05:00
4ccbc8d56e vim-patch:8.2.0108: when sign text is changed a manual redraw is needed
Problem:    When sign text is changed a manual redraw is needed. (Pontus
            Lietzler)
Solution:   Redraw automatically. (closes vim/vim#5455)
bf0acff012
2020-03-01 20:02:10 -05:00
c40bb2de7a vim-patch:8.1.0939: no completion for sign group names
Problem:    No completion for sign group names.
Solution:   Add completion for sign group names and buffer names. (Yegappan
            Lakshmanan, closes vim/vim#3980)
3678f65d43
2020-03-01 20:02:10 -05:00
b376bb49b5 vim-patch:8.1.1552: cursor position is wrong after sign column changes
Problem:    Cursor position is wrong after sign column appears or disappears.
            (Yegappan Lakshmanan)
Solution:   Call changed_line_abv_curs() instead of changed_cline_bef_curs().
f85e40afc2
2020-03-01 20:02:10 -05:00
c6481f70c2 vim-patch:8.1.1489: sign order wrong when priority was changed
Problem:    Sign order wrong when priority was changed.
Solution:   Reorder signs when priority is changed. (Yegappan Lakshmanan,
            closes vim/vim#4502)
64416127fc
2020-03-01 20:02:09 -05:00
1caa85b677 vim-patch:8.1.1466: not updating priority on existing sign
Problem:    Not updating priority on existing sign.
Solution:   Set the sign priority.  Add a test. (Yegappan Lakshmanan)
58a7f87c86
2020-03-01 20:02:09 -05:00
ca3dba482c vim-patch:8.1.0896: tests for restricted mode no run for MS-Windows GUI
Problem:    Tests for restricted mode no run for MS-Windows GUI.
Solution:   Make tests also work in MS-Windows GUI.
5a6698169d
2020-03-01 20:02:09 -05:00
2a818f8901 vim-patch:8.1.0885: test for restricted hangs on MS-Windows GUI
Problem:    Test for restricted hangs on MS-Windows GUI.
Solution:   Skip the test.
18c5632cab
2020-03-01 20:02:09 -05:00
d846f47cc8 vim-patch:8.1.0881: can execute shell commands in rvim through interfaces
Problem:    Can execute shell commands in rvim through interfaces.
Solution:   Disable using interfaces in restricted mode. Allow for writing
            file with writefile(), histadd() and a few others.
8c62a08faf
2020-03-01 20:02:09 -05:00
3618fe9e8c vim-patch:8.1.0883: missing some changes for Ex commands
Problem:    Missing some changes for Ex commands.
Solution:   Add mising changes in header file.
54d6fe5e60
2020-03-01 20:02:08 -05:00
ab38df2fc5 vim-patch:8.1.1642: may use uninitialized variable
Problem:    May use uninitialized variable. (Patrick Palka)
Solution:   Initialize variables earlier. (closes vim/vim#4623)
ec572ad6a6
2020-03-01 20:02:08 -05:00
a78e8f6e1b vim-patch:8.1.0253: saving and restoring window title does not always work
Problem:    Saving and restoring window title does not always work.
Solution:   Use the stack push and pop commands. (Kouichi Iwamoto,
            closes vim/vim#3059)
40385dbcdf
2020-03-01 20:02:08 -05:00
4ffae76520 addressing reviews 2020-03-01 16:45:51 +01:00
fa6518b1da vim-patch:8.2.0135: bracketed paste can still cause invalid memory access
Problem:    Bracketed paste can still cause invalid memory access. (Dominique
            Pelle)
Solution:   Check for NULL pointer.
fe4bbac116
2020-03-01 04:01:32 -05:00
55e3f21110 vim-patch:8.2.0133: invalid memory access with search command
Problem:    Invalid memory access with search command.
Solution:   When :normal runs out of characters in bracketed paste mode break
            out of the loop.(closes vim/vim#5511)
98a336dd49
2020-03-01 04:01:32 -05:00
4de2957a99 vim-patch:8.0.1587: inserting from the clipboard doesn't work literally
Problem:    inserting from the clipboard doesn't work literally
Solution:   When pasting from the * or + register always assume literally.
3324d0a864
2020-03-01 04:01:32 -05:00
607240a8ba pvs/v1048: variable was assigned same value 2020-03-01 03:57:58 -05:00
0eb2f2be60 'clang/Logic error': zero-init MarkTreeIter vars 2020-03-01 03:57:58 -05:00
eba8a9ca1d vim-patch:8.1.1510: a plugin cannot easily expand a command like done internally
Problem:    A plugin cannot easily expand a command like done internally.
Solution:   Add the expandcmd() function. (Yegappan Lakshmanan, closes vim/vim#4514)
80dad48c50
2020-03-01 03:57:58 -05:00
5e0c435ca1 man.vim: Handle man errors when looking for man-paths
Fallback to simply globbing the tag we're given. This matches the
original behaviour of `man.vim`, prior to c6afad78d3.

fixes #11794
closes #11918
2020-02-29 23:44:43 -08:00
1b0a770340 Merge #11805 'vim-patch:8.1.0619' 2020-02-29 17:37:15 -08:00
6fcab7e758 Merge pull request #11931 from h-michael/symbol
[RDY] LSP support 'textDocument/documentSymbol’
2020-03-01 01:47:21 +01:00
16262472cd lsp: add 'textDocument/documentSymbol’ callback
Spec: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol
2020-03-01 09:10:02 +09:00
3c12ee333a vim-patch:8.1.0619: :echomsg and :echoerr do not handle List and Dict
Problem:    :echomsg and :echoerr do not handle List and Dict like :echo does.
            (Daniel Hahler)
Solution:   Be more tolerant about the expression result type.
461a7fcfce

Add lua functional tests for :echo,:echon,:echomsg,:echoerr
because nvim did not port "test_" functions from Vim
that modify internal state.

Testing :echoerr via try/catch is sufficient.
2020-02-29 17:40:00 -05:00
cyy
1656367b90 win/l10n: add zh-* locale aliases #11963 2020-02-29 14:11:57 -08:00
78f1eccc86 deps: Fix luv-static build issues #11961
- Fix an issue where CMAKE_BUILD_TYPE was not reflected during
  construction.
- Remove the switch that uses the static library(-MTd, -MT) because it was
  specified in the CMakeLists.txt of luv when building on MSVC.

related: https://github.com/luvit/luv/pull/461
2020-02-29 13:47:56 -08:00
1a2be57da3 foldcolumn: allow auto:X
Similar to signcolumn, allow foldcolumn to adapt itself to the number of
folds.

Regression:
vim supports a maximum fdc of 12, this limits it to 9.
2020-02-29 20:27:22 +01:00
f157fdef7e lsp: add bufnr to callback function arguments
DocumentSymbol type doesn't have location field.
So when we'll add 'textDocument/documentSymbol’ handler, we can't decide which file have we jump to.
2020-02-28 09:03:17 +09:00
49cd750d6a Merge pull request #11910 from mfussenegger/references-ctx
LSP/references: Add context to locations returned by server
2020-02-27 15:59:48 +01:00
1fe01b36de Use buffer version instead of changedtick for edits 2020-02-27 14:53:11 +01:00
38201650cd LSP: Remove diagnostic message handling in locations_to_items
`locations_to_items` is for turning `Location[]` into items, not for
`Diagnostic[]`
2020-02-27 12:50:12 +01:00
220a2b05c6 LSP/references: Add context to locations returned by server
This changes the `textDocument/references' callback to annotate the
locations returned by the server with the content present at the
locations range.

The quickfix list then looks as follows:

    cr8/insert_fake_data.py|17 col 32| from .misc import parse_table, parse_version
    cr8/insert_fake_data.py|43 col 15| version = parse_version(r['rows'][0][0])
    cr8/java_magic.py|8 col 22| from cr8.misc import parse_version
    cr8/java_magic.py|30 col 19| version = parse_version(fst)
    cr8/java_magic.py|33 col 16| return parse_version(version_str)

Instead of:

    cr8/insert_fake_data.py|17 col 32|
    cr8/insert_fake_data.py|43 col 15|
    cr8/java_magic.py|8 col 22|
    cr8/java_magic.py|30 col 19|
    cr8/java_magic.py|33 col 16|
2020-02-27 12:49:49 +01:00
52124f286c Merge pull request #11880 from bfredl/tree-sitter-regex
add regex support in treesitter queries
2020-02-27 12:28:47 +01:00
83add102cf Add signs for Lsp diagnostics (#11668)
* Add signs for Lsp diagnostics
* defer sign definition until init.vim is loaded
2020-02-27 12:12:53 +01:00
cb8b9428ca LSP/hover: Do not throw away contents if first line is empty (#11939)
haskell-ide-engine sends `hover` payloads as follows:

    {
      contents = {
        kind = "markdown",
        value = "\n```haskell\nfoo :: Either String (Integer, Text)\n```\n`foo` *local*"
      },
      range = {
        end = {
          character = 5,
          line = 57
        },
        start = {
          character = 2,
          line = 57
        }
      }
    }

`value` starts with `\n`. The logic in `convert_input_to_markdown_lines`
threw away the whole information.
2020-02-27 00:00:06 +01:00
ad745f9da2 add support to show diagnostics count in statusline (#11641)
* add support to show diagnostics count in statusline
* documentation
2020-02-26 20:22:14 +01:00
ca8699378c LSP: implement documentHighlight (#11638)
* implement documentHighlight
* fix bug
* document highlight groups
* use uppercase for help section title
* documentation
2020-02-26 20:10:16 +01:00
78ec95ce7d Merge pull request #11946 from bfredl/ts-sync
treesitter: update vendored tree-sitter runtime
2020-02-26 19:39:56 +01:00
9c00fea585 lua: add regex support, and @match support in treesitter queries 2020-02-26 19:39:02 +01:00
08af82b9cb treesitter: redraw on changed query 2020-02-26 19:39:02 +01:00
3ce9b05653 treesitter: update vendored tree-sitter runtime
tree-sitter/tree-sitter commit 6cb8d24de2d99c4c50c9a0fd1e719ca5b3abc87f

Included files are:
lib/include/tree-sitter/*.h
lib/src/*.[ch]
lib/src/unicode/*
LICENSE
2020-02-25 22:20:23 +01:00
96059d72e5 TUI: reset background color before scroll #11909
fixes #11893
2020-02-23 17:59:37 -08:00
c036e24f39 Merge pull request #11890 from cryptomilk/master-gcc10-fno-common
Fix issues revealed by gcc10 setting -fno-common by default
2020-02-23 16:03:24 +01:00
7591fafd76 Merge pull request #11934 from h-michael/restore
clang/scan-build: restore required code
2020-02-23 11:02:21 +01:00
0504f2f88d cmake: Check for -fno-common and use it if available 2020-02-23 09:49:33 +01:00
823b2104c3 nvim: Correctly setup global channels
As gcc10 uses -fno-common by default, global variables declared with the
same name more than once is not allowed anymore revealing this issue.

We need to define it as extern to access it.

See also https://bugzilla.redhat.com/show_bug.cgi?id=1799680
2020-02-23 09:49:33 +01:00
517bf15603 nvim:msgpack: Correctly set up global ch_before_blocking_events
gcc10 builds with -fno-common by default. This mean you can't define
a global variable with the same name twice.

See also https://bugzilla.redhat.com/show_bug.cgi?id=1799680
2020-02-23 09:49:33 +01:00
986db1adb4 nvim: Fix enum declaration of RemapValues
Instead of declaring an enum, this creates a global variable. As gcc10
uses -fno-common by default, global variables declared with the same
name more than once is not allowed anymore revealing this issue.

Each time this header is included, we define the enum name as a global
variable.

See also https://bugzilla.redhat.com/show_bug.cgi?id=1799680
2020-02-23 09:49:33 +01:00
b87b4a6147 nvim:viml: Fix enum declaration of ExprParserFlags
Instead of declaring an enum, this creates a global variable. As gcc10
uses -fno-common by default, global variables declared with the same
name more than once is not allowed anymore revealing this issue.

Each time this header is included, we define the enum name as a global
variable.

See also https://bugzilla.redhat.com/show_bug.cgi?id=1799680
2020-02-23 09:49:33 +01:00
ebcde1de42 nvim:eval: Fix enum declaration for ListLenSpecials
Instead of declaring an enum, this creates a global variable. As gcc10
uses -fno-common by default, global variables declared with the same
name more than once is not allowed anymore revealing this issue.

Each time this header is included, we define the enum name as a global
variable.

See also https://bugzilla.redhat.com/show_bug.cgi?id=1799680
2020-02-23 09:49:33 +01:00
599a12e316 clang/scan-build: restore required code
ref: https://github.com/neovim/neovim/pull/11900#discussion_r381860165
2020-02-23 10:14:05 +09:00
38cda18626 CI/travis: workaround broken homebrew
6.70s$ rvm $brew_ruby do brew bundle --verbose --global
    /usr/local/bin/brew tap homebrew/bundle
    ==> Tapping homebrew/bundle
    Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-bundle'...
    Tapped (102 files, 251.1KB).
    Error: Unknown command: bundle

https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296/10
https://twitter.com/AJenbo/status/1175976531480457216
2020-02-22 14:15:08 -08:00
93c6eb4a66 PVS/V618: fix printf-style args #11888
We intentionally do not translate API errors. 
ref: https://github.com/neovim/neovim/issues/6150
2020-02-22 12:59:39 -08:00
ff1730373c lsp/completion: show duplicates in completion popup #11920
Allow duplicates so that in languages with overloaded functions it will
show all signatures.

E.g. instead of having a single (last one wins)

    add(int index, String element)

It shows all signatures:

    add(String e) : boolean
    add(int index, String element) : void
2020-02-21 00:34:07 -08:00
82936c3b9a doc: LOG_CALLSTACK: mention "-no-pie" [ci skip]
close #11898
2020-02-21 00:08:26 -08:00
c8ea09248b Merge #11914 'vim-patch:8.1.{1122,1868}' 2020-02-20 23:50:44 -08:00
7ed4837298 vim-patch:8.1.1122: char2nr() does not handle composing characters
Problem:    char2nr() does not handle composing characters.
Solution:   Add str2list() and list2str(). (Ozaki Kiichi, closes vim/vim#4190)
9d40128afd

'utf8' optional param is noop unlike Vim.
2020-02-20 23:39:17 -05:00
13b6f7a806 vim-patch:8.1.1868: multi-byte chars in 'listchars' fail with 'linebreak' set
Problem:    Multibyte characters in 'listchars' don't work correctly if
            'linebreak' is also enabled. (Martin Tournoij)
Solution:   Make it work correctly. (Christian Brabandt, closes vim/vim#4822,
            closes vim/vim#4812)
69cbbecf54
2020-02-20 22:07:18 -05:00
9897ad3606 quickfix.c: Fix vimgrep regression #11907
Fix ex_vimgrep to properly ignore filetype when running vimgrep.
This restores vimgrep to behaviour before function refactoring.

fix #9842
fix #11856
2020-02-19 22:53:58 -08:00
ab12a22941 Merge pull request #11908 from bfredl/qf_msg-fixup
test: always use "set more" with :digraph test
2020-02-19 19:33:29 +01:00
a380526c0f test: always use "set more" with :digraph test
otherwise we risk the same issue as with ex_cmds/digraphs_spec.lua
2020-02-19 13:08:12 +01:00
e8f160c82f Merge #11895 'lsp: fix textDocument/completion handling' 2020-02-18 23:38:52 -08:00
521b79c0f8 clang/scan-build: fix dead stores #11900 2020-02-18 20:54:19 -08:00
ce15977d70 Merge #11887 'loop_close: close all handles' 2020-02-18 20:34:07 -08:00
f3d4ddd0f8 lsp: make functions private and use filter function 2020-02-19 07:39:56 +09:00
c1bfc8093f lsp: respect the sort order if there is sortText 2020-02-19 07:27:35 +09:00
4ac376740c lsp: fix textDocument/completion handling
fix: #11826
Some lanuguage servers return complementary candidates whose prefixes do not match are also returned.
So we exclude completion candidates whose prefix does not match.
ex) Microsoft python-language-server, rust-analyzer
2020-02-19 07:27:29 +09:00
dd5d00aaa9 doc: C-Y and C-E in wildmenu completion
Add description of C-Y and C-E in wildmenu completion
2020-02-18 17:10:29 +08:00
e2ed8053bf lua: move test helper function, map and filter, to vim.shared module 2020-02-18 17:43:10 +09:00
ceac76daa5 loop_close: close all handles
- Move uv_stop(), it still causes a "leak" on exit somehow.
- Tenatively restore `UV_RUN_DEFAULT`.  It shouldn't hang since we
  clobber the handles via `uv_walk((h)=>uv_close(h))`. Although this
  still "leaks" on exit, it's faster than the 2-second timeout.

fix #11820
fix #7376
2020-02-17 23:50:59 -08:00
6d48d0bd15 loop_close: call uv_stop(), fix bug
- Call uv_stop().
- Restore `uv_loop_close` condition (braindead cosmetic change from
  a2efc9cf8b that caused uv_loop_close *not* to be called if
  wait=false, sorry).

Not doing `uv_walk(() => uv_close)`: see source comment for explanation.

fix #11820
fix #7376

Q: Should we restore use of `UV_RUN_DEFAULT`/`UV_RUN_ONCE` (removed in
   a2efc9cf8b)?
A: The while-loop (hopefully) achieves the same purpose while avoiding
   a hang.
2020-02-17 22:41:13 -08:00
a2efc9cf8b loop_close: timout after 2 seconds #11821
never UV_RUN_DEFAULT
ref #11820
ref #7376
2020-02-16 23:54:24 -08:00
b353a5c05f test: always dump logs on failure #11886
Whenever `eq()`, `ok()`, etc. fails, include log tail in the failure
message. This helps to correlate log messages with a particular test
failure.
2020-02-16 23:30:24 -08:00
03f245c0b8 Merge #11873 from janlazo/vim-8.1.0786
vim-patch:8.0.1660,8.1.{43,786,1201,2129,2131,2187,2223,2259},8.2.{241,267}
2020-02-16 23:18:24 -08:00
0c5d2ffebe Merge #11837 'LSP: fixes, improve test visibility' 2020-02-16 23:02:23 -08:00
6e13b9d261 test/LSP: assert contents of log file 2020-02-16 22:09:28 -08:00
a446fbc8fa lsp/rpc.lua: fix env application function
Env vars must be merged with the current env.
2020-02-16 22:09:28 -08:00
4cf48dc329 test/LSP: dump logs on error
This will help debug CI flakey failures.

TODO: helpers.assert_log()  -- Explicitly check contents of the logfile.
2020-02-16 19:04:40 -08:00
1eb0f5371a LSP: fix validate_client_config
- `cmd_env` is a table not a function.
- tests: Set $NVIM_LOG_FILE for fake LSP server.
2020-02-16 17:53:33 -08:00
c15bd6cd27 test/LSP: use less-generic exit code
- os.exit(1) is too generic, since code 1 may be caused by Nvim exiting
  for some other reason.  Change it to os.exit(101).
- style: de-architect json_encode/json_decode calls.

Failure seen in travis macOS job:
https://travis-ci.org/neovim/neovim/jobs/647849133

    [  FAILED  ] test/functional/plugin/lsp_spec.lua@ 266 SP basic_init test should not send didOpen if the buffer closes before init
    test/functional/plugin/lsp_spec.lua:297: exit code
    Expected objects to be the same.
    Passed in:
    (number) 1
    Expected:
    (number) 0
    stack traceback:
      test/functional/plugin/lsp_spec.lua:297: in function 'on_exit'
      test/functional/plugin/lsp_spec.lua💯 in function 'test_rpc_server'
      test/functional/plugin/lsp_spec.lua:272: in function <test/functional/plugin/lsp_spec.lua:266>
2020-02-16 17:52:48 -08:00
b04165859d test: style 2020-02-16 17:24:21 -08:00
322b2731ed deps: lua-client 0.2.2-1 2020-02-16 17:24:21 -08:00
1ce4b3c9a7 vim-patch:8.2.0267: no check for a following cmd when calling a function fails
Problem:    No check for a following command when calling a function fails.
Solution:   Also check for a following command when inside a try block.
            (closes vim/vim#5642)
e51bb17dd0
2020-02-16 18:04:44 -05:00
acc5fd9fac vim-patch:8.1.0043: ++bad argument of :edit does not work properly
Problem:    ++bad argument of :edit does not work properly.
Solution:   Return FAIL from get_bad_opt() only when there is no valid
            argument. (Dominique Pelle, Christian Brabandt, closes vim/vim#2966,
            closes vim/vim#2947)
7580849df9
2020-02-16 09:38:15 -05:00
18d86283b0 vim-patch:8.0.1660: the terminal API "drop" command doesn't support options
Problem:    The terminal API "drop" command doesn't support options.
Solution:   Implement the options.
333b80acf3
2020-02-16 09:38:14 -05:00
7955c05acc vim-patch:8.1.1201: output of :command is hard to read
Problem:    Output of :command is hard to read.
Solution:   Make some columns wider, some narrower.  Truncate the command when
            listing all.
725310d89e
2020-02-16 07:49:44 -05:00
986eafce47 vim-patch:8.1.2187: error for bad regexp even though regexp is not used
Problem:    Error for bad regexp even though regexp is not used when writing
            a file. (Arseny Nasokin)
Solution:   Ignore regexp errors. (closes vim/vim#5059)
b40c2576d4
2020-02-16 07:49:44 -05:00
5e38516a46 vim-patch:8.2.0241: crash when setting 'buftype' to "quickfix"
Problem:    Crash when setting 'buftype' to "quickfix".
Solution:   Check that error list is not NULL. (closes vim/vim#5613)
99234f29aa
2020-02-16 07:49:44 -05:00
bde4f47eb2 vim-patch:8.1.2223: cannot see what buffer an ml_get error is for
Problem:    Cannot see what buffer an ml_get error is for.
Solution:   Add the buffer number and name in the message
cb86893114
2020-02-16 07:49:44 -05:00
0f5bb9faf1 vim-patch:8.1.0786: ml_get error when updating the status line
Problem:    ml_get error when updating the status line and a terminal had its
            scrollback cleared.  (Chris Patuzzo)
Solution:   Check the cursor position when drawing the status line.
            (closes vim/vim#3830)
10772307c4
2020-02-16 07:49:43 -05:00
4907bc2626 vim-patch:8.1.2259: running tests may leave XfakeHOME behind
Problem:    Running tests may leave XfakeHOME behind.
Solution:   Source summarize.vim without using setup.vim. (closes vim/vim#5177)
            Also fix that on MS-Windows the test log isn't echoed.
7d2320414f
2020-02-16 07:49:43 -05:00
e52c22d63c vim-patch:8.1.2131: MSVC tests fail
Problem:    MSVC tests fail.
Solution:   Replace backslashes with slashes.
c25e702dee
2020-02-16 07:49:43 -05:00
e5aeb2e193 vim-patch:8.1.2129: using hard coded executable path in test
Problem:    Using hard coded executable path in test.
Solution:   Use v:progpath. Use $VIMRUNTIME instead of "runtime". (James
            McCoy, closes vim/vim#5025)
1ac41a5c13
2020-02-16 07:49:43 -05:00
a1d6c2f5c9 checkhealth: allow 'sudo install' of 'Neovim::Ext' #11874
cpanm cannot look for Perl modules from root directories
without sudo so it creates '~/perl5/' and look for Perl modules in there.
Whether this directory existed before running cpanm or not,
cpanm returns a warning to advice the user to setup local::lib
in order to use modules in '~/perl5/' and exits with error code 0.
Each line in the warning always starts with '!'.

Display this warning to the user.
Continue parsing the version number if the warning can be ignored
because lines that are not prefixed with '!' are valid output.

Fix #11858
2020-02-15 16:02:52 -08:00
dc0e534a91 Merge pull request #11864 from h-michael/deepcopy
lua: vim.deepcopy() and vim.tbl_extend() should preserve vim.empty_dict()
2020-02-15 18:10:48 +01:00
bb331a9b31 mouse.c: can click on multibyte foldopen/foldclose (#11863)
would previously only work with ascii fillchars.

Added a test.
2020-02-14 16:42:00 +01:00
61c98a1cf2 Merge pull request #11870 from QnJ1c2kNCg/master
clang analyzer: Dead assignment `ns_id` in nvim_buf_add_highlight
2020-02-14 16:00:49 +01:00
cdb729b746 lua: add vim.tbl_extend and vim.deepcopy test 2020-02-14 22:36:21 +09:00
c230c7d1a6 lua: if second argument is vim.empty_dict(), vim.tbl_extend uses empty_dict() instead of {} 2020-02-14 19:35:46 +09:00
146598efcc build: Fix MSVC build failure on CI #11865
clean-shared-libraries does nothing useful in MSVC build. Nevertheless,
it deletes ${DEPS_INSTALL_DIR}/lib/nvim/parser/c.dll and causes build
failure in CI.
2020-02-14 00:45:41 -08:00
1b200d9936 checkhealth: ignore cpamn "!" output #11869
cpanm outputs a warning that suggest to use 'sudo' or use local::lib.
cpanm exits with 0 so nvim thinks that the command worked.

cpanm output that starts with "!"  is likely an error.

Close #11858
2020-02-14 00:43:28 -08:00
a26943e9b3 clang bug: Dead assignment ns_id
Remove a dead assignment of the `ns_id` variable in the
`src/nvim/api/buffer.c` file.

Refer: https://neovim.io/doc/reports/clang/report-f279da.html#EndPath
2020-02-13 23:09:42 -08:00
d9657b3ae2 doc/lsp: start_client config cmd must be a list (#11866)
doc/lsp: start_client config cmd must be a list

After the merge of https://github.com/neovim/neovim/pull/11847 cmd can
no longer be a string but must be a list.
2020-02-13 20:38:47 +01:00
0eadbd4ac2 mark userfunc as legacy 2020-02-13 14:11:57 +01:00
5e815edece rename: user_funcs -> userfunc
Lets stick with vim for now
2020-02-13 14:11:55 +01:00
d50c1123d5 fix: includes 2020-02-13 14:11:53 +01:00
e367e80e11 fix: moved macros 2020-02-13 14:11:52 +01:00
c7ef0e8d2d fix: moved some static inline function 2020-02-13 14:11:50 +01:00
3c413f1523 fix: vvlua_partial 2020-02-13 14:11:48 +01:00
1e0a9b2690 fix: made eval_lavars_used global 2020-02-13 14:11:47 +01:00
9d7ce03ef1 fix: include static function declarations 2020-02-13 14:11:45 +01:00
3477512f81 fix: header updates 2020-02-13 14:11:44 +01:00
937da5dd7e Removed redundant define 2020-02-13 14:11:42 +01:00
423fcbee4a fix: factor out make_partial 2020-02-13 14:11:40 +01:00
b683957763 fix: prof functions 2020-02-13 14:11:39 +01:00
04f7e1f56d fix: var_set_global 2020-02-13 14:11:37 +01:00
bae1738bce fix: find_var_ht_dict 2020-02-13 14:11:35 +01:00
e50b545676 fix: factor out new functions
free_unref_funccal
get_funccal_local_var
get_funccal_args_var
get_current_funccal_dict
set_ref_in_previous_funccal
set_ref_in_call_stack
set_ref_in_func_args

note:
In vim semantic for garbage_collect was changed
(the result of free_unref_funccal is ignored, bug or intentional?)

For nvim I did leave previous behavior thus

did_free = did_free || free_unref_funccal(copyID, testing);
instead of just
free_unref_funccal(copyID, testing);
2020-02-13 14:11:34 +01:00
c769b15fe4 fix: func_init 2020-02-13 14:11:32 +01:00
700d7a037c unstatic some functions 2020-02-13 14:11:29 +01:00
3b0475927c moved more stuff 2020-02-13 14:11:27 +01:00
dc5debadc2 created header file 2020-02-13 14:11:25 +01:00
9b140fafe3 moved functions to user_funcs.c (no code changes) 2020-02-13 14:11:21 +01:00
417fc6ccf7 lua: vim.deepcopy uses empty_dict() instead of {} for empty_dict()
fix: https://github.com/neovim/nvim-lsp/issues/94
2020-02-13 11:55:43 +09:00
a73d8ace0b Merge pull request #11859 from h-michael/empty-dict
check json_encode behavior for vim.empty_dict()
2020-02-12 21:16:42 +01:00
032ede0203 test: add json_encode test for vim.empty_dict() 2020-02-12 21:08:12 +09:00
68de6b17b8 Merge #10433 from erw7/vim-8.1.0027
vim-patch:8.1.{27,32,36,69,70,71,91,92}
2020-02-12 00:24:50 -08:00
d54b5997b7 Fix issue where callbacks are garbage collected
Import necessary part of vim-patch:8.1.1575.
75a1a9415b
2020-02-12 16:03:54 +09:00
3557757a3c vim-patch:8.1.0092: prompt buffer test fails
Problem:    Prompt buffer test fails.
Solution:   Set 'nomodified' before closing the window. (Ozaki Kiichi,
            closes vim/vim#3051
71ef1ba5e9
2020-02-12 16:03:54 +09:00
aec3d7915c vim-patch:8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Problem:    MS-Windows: Cannot interrupt gdb when program is running.
Solution:   Add debugbreak() and use it in the terminal debugger.
            Respect 'modified' in a prompt buffer.
4551c0a9fc
2020-02-12 16:03:45 +09:00
b015c4741c vim-patch:8.1.0071: terminal debugger only works with the terminal feature
Problem:    Terminal debugger only works with the terminal feature.
Solution:   Make it also work with a prompt buffer.  Makes it possible to use
            on MS-Windows. Various other improvements. (closes vim/vim#3012)
b3307b5e7e
2020-02-12 15:30:17 +09:00
f320db3450 vim-patch:8.1.0070: missing part of the changes for prompt_setinterrupt()
Problem:    Missing part of the changes for prompt_setinterrupt().
Solution:   Add the missing changes.
222cd20e26
2020-02-12 15:30:17 +09:00
fe395ae210 vim-patch:8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Problem:    Cannot handle pressing CTRL-C in a prompt buffer.
Solution:   Add prompt_setinterrupt().
0e5979a6d4
2020-02-12 15:30:06 +09:00
783aecd501 vim-patch:8.1.0036: not restoring Insert mode if leaving prompt buffer with mouse
Problem:    Not restoring Insert mode if leaving a prompt buffer by using a
            mouse click.
Solution:   Set b_prompt_insert appropriately. Also correct cursor position
            when moving cursor to last line.
891e1fd894
2020-02-12 15:16:32 +09:00
3ca0343fb9 vim-patch:8.1.0032: BS in prompt buffer starts new line
Problem:    BS in prompt buffer starts new line.
Solution:   Do not allows BS over the prompt.  Make term_sendkeys() handle
            special keys. Add a test.
6b810d92a9
2020-02-12 15:16:32 +09:00
4813ad48cd vim-patch:8.1.0027: difficult to make a plugin that feeds a line to a job
Problem:    Difficult to make a plugin that feeds a line to a job.
Solution:   Add the nitial code for the "prompt" buftype.
f273245f64
2020-02-12 15:16:32 +09:00
58ec72f9fd LSP: rename validate_command to _cmd_parts #11847
and now only accepts a list of strings (instead of string or list).
2020-02-11 21:48:25 -08:00
5d5b068d5b LSP: Refine formatting tabSize #11834
Use the logic explained in the softtabstop help section for defining
the tabSize parameter in formatting requests. This means that:

 - if softtabstop is 0, tabstop is used
 - if softtabstop < 0, shiftwidth is used
 - if softtabstop > 0, softtabstop is used

When inserting spaces instead of tabs, softtabstop is used in vim.
Therefor it would be more logical to use it when formatting instead
of the current tabstop.
2020-02-10 22:53:14 -08:00
2572c5d093 Merge pull request #11845 from rht/master
doc/manpage: Remove the extra nvim subdirectory
2020-02-11 02:45:36 +01:00
e14fae81e9 Merge pull request #11848 from fwalch/build-tree-sitter-out-of-source
Build tree-sitter-c out-of-source
2020-02-10 23:32:47 +01:00
3f217741ec Build tree-sitter out-of-source
Avoids having CMakeCache.txt etc in https://github.com/neovim/deps, where it can cause trouble for Ubuntu PPA builds such as:

> CMake Error: The source "/<<BUILDDIR>>/neovim-0.5.0+ubuntu1+git202002090924-1f479ff-00e710e/.deps/build/src/treesitter-c/CMakeLists.txt" does not match the source "/home/travis/build/neovim/bot-ci/build/deps-src/build/src/treesitter-c/CMakeLists.txt" used to generate cache.  Re-run cmake with a different source directory.
2020-02-10 21:52:33 +01:00
a723d60549 Merge pull request #11842 from bfredl/decotest
treesitter: use internal "decorations" buffer
2020-02-10 18:09:50 +01:00
7d7adf7acc treesitter: cleanup some luahl stuff 2020-02-10 13:10:15 +01:00
95fd28f4a1 treesitter: use internal "decorations" buffer 2020-02-10 13:10:15 +01:00
rht
29d66288ef doc/manpage: Remove the extra nvim subdirectory 2020-02-10 07:10:06 -05:00
6c5bbf07d9 eval.c: factor out eval/funcs.c #11828
close #11828
ref #5081
cf. vim patch 7.4.2063
2020-02-10 00:36:26 -08:00
rht
d34f042ed5 doc/manpage: reference $VIM instead of /usr/local/share #11840 [ci skip] 2020-02-09 16:43:06 -08:00
174f7a2980 lsp: Support text edit on inactive buffer (#11843)
Using `vim.lsp.buf.rename()` can result in receiving a TextEdit that
affects a file for which there is no active or loaded buffer.

In that case `api.nvim_buf_get_lines(...)` returned an empty result,
leading to an error.

Closes https://github.com/neovim/neovim/issues/11790
2020-02-10 09:05:42 +09:00
31614d3eb0 Merge pull request #11841 from bfredl/libdir
build: always create build/lib/nvim so the install command doesn't fail
2020-02-09 19:02:01 +01:00
ba3778f83b build: always create build/lib/nvim so the install command doesn't fail 2020-02-09 14:21:58 +01:00
1ece24a329 Merge pull request #11836 from bfredl/vim-dbe5d361feb6
vim-patch:8.2.0235: draw error when an empty group is removed from 'statusline'
2020-02-09 10:45:32 +01:00
70c212e480 vim-patch:8.2.0235: draw error when an empty group is removed from 'statusline'
Problem:    Draw error when an empty group is removed from 'statusline'.
Solution:   Do not use highlighting from a removed group.
dbe5d361fe
2020-02-09 09:42:26 +01:00
dd8b29cfe2 LSP: set InitializeParams.rootPath value #11838
InitializeParams.rootPath is deprecated now. But some language servers still use it.
2020-02-08 22:51:02 -08:00
1f479fffbf Merge pull request #11830 from teto/treesitter_fix
build: allow to use non-bundled C parser
2020-02-07 21:55:43 +01:00
712298e1d3 build: allow to skip treesitter C parser install
if USE_BUNDLED_TS_PARSERS is set to off, don't try to install the
parser.
Distribs can install treesitter parsers directly into $CMAKE_LIBRARY_PATH/nvim
(and users anywhere in rtp).

Also fix the URL.
2020-02-07 20:42:27 +01:00
120a4c8e25 Merge pull request #11757 from bfredl/treesitter_runtime
treesitter: add standard search path for parsers + bundle c parser properly
2020-02-07 10:41:02 +01:00
017b25101a Merge #11827 'deps/MSVC: gettext 0.20.1'
fix #8164
close #11771
2020-02-07 00:54:59 -08:00
ef2e6522c5 tests: bail out on libdir just like $VIMRUNTIME, it cannot be calculated 2020-02-07 09:32:25 +01:00
00c57c98df treesitter: add standard &rtp/parser/ search path for parsers 2020-02-07 09:22:55 +01:00
64807303df build: include tree-sitter-c parser in bundled build 2020-02-07 09:22:55 +01:00
c5b812c9ea env: try find library dir (like /usr[/local]/lib/nvim) and add it to &rtp 2020-02-07 09:22:55 +01:00
7ce9a5c7da api: add nvim_get_runtime_file for finding runtime files 2020-02-07 09:22:55 +01:00
882f4a6f8e deps/msvc: gettext 0.20.1 2020-02-06 14:08:06 -06:00
405f49a9b1 doc: Fix {spell,mlang}.txt files text encoding #11814
These had broken encodings, set it to UTF-8. All remianing Neovim
non-ASCII documentation files are UTF-8 encoded. And so are their Vim
original versions.
2020-02-05 01:07:01 -08:00
09016d979b deps: gettext 0.20.1
fix https://github.com/neovim/neovim/pull/8163

The `gettext-Fix-compilation-on-a-system-without-alloca.patch`
patch is included in gettext 0.20.1, so we can remove that file and
the associated PATCH_COMMAND in `BuildGettext.cmake`.

changes (abbreviated) since 0.19.8.1:

    2019-05-12  Bruno Haible  <bruno@clisp.org>
            intl: Fix wrong libtool versioning information.
            Reported by Ken Takata <ktakata65536@gmail.com>
            in <https://savannah.gnu.org/bugs/?56305>.
    2019-05-11  Bruno Haible  <bruno@clisp.org>
            intl: Remove obsolete code.
            Update after gnulib changed.
            * autogen.sh: Don't copy intl.m4.
            intl.m4, intmax.m4, printf-posix.m4, uintmax_t.m4, visibility.m4.
            Update to newest gnulib.
    2019-05-09  Bruno Haible  <bruno@clisp.org>
            Update release steps.
    2019-05-08  Bruno Haible  <bruno@clisp.org>
            examples: Use infrastructure from gettext version 0.20.
            version 0.20.
            Update translations (from the TP).
            Prepare for 0.20 release.
            * libtextstyle/version.sh: Update RELEASE_DATE.
    2019-05-07  Bruno Haible  <bruno@clisp.org>
            libtextstyle: examples: Enable --color=html, for debuggability.
            Reported by Akim Demaille.
            * libtextstyle/examples/color-hello/hello.c (main): Handle color_html case.
            * libtextstyle/examples/color-filter/filter.c (main): Likewise.
    2019-05-05  Bruno Haible  <bruno@clisp.org>
            examples: hello-c++-widgets: Update build infrastructure.
            Gnulib changed on 2018-11-11: asm-underscore.m4 is no longer needed for havelib.
            asm-underscore.m4.
            asm-underscore.m4.
    2019-05-05  Bruno Haible  <bruno@clisp.org>
            (check_PROGRAMS): Add intl-version-prg.
            (intl_version_prg_SOURCES, intl_version_prg_LDADD): New variables.
    2019-05-05  Bruno Haible  <bruno@clisp.org>
            msginit: Avoid error messages when run on mingw.
            Reported by Michele Locati <michele@locati.it>.
            language_team_address): Don't even attempt to run the shell script.
    2019-05-05  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Document debugging tricks.
            Reported by Akim Demaille <akim@lrde.epita.fr>.
            * libtextstyle/doc/libtextstyle.texi (Debugging style files): New subsection.
            (Debugging the styling code): New section.
    2019-05-01  Bruno Haible  <bruno@clisp.org>
            msginit: Fix invocation of helper programs on Windows.
            Reported by Michele Locati <michele@locati.it>
            in <https://lists.gnu.org/archive/html/bug-gettext/2019-04/msg00058.html>.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add configmake.
            (main): Add BINDIR to the PATH.
    2019-05-01  Bruno Haible  <bruno@clisp.org>
            msginit: Improvements for Cygwin and Android.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add sh-filename.
            language_team_address): Use BOURNE_SHELL instead of hardcoding /bin/sh.
    2019-04-29  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Document one more terminal emulator.
            * libtextstyle/doc/libtextstyle.texi (Terminal emulators): Mention QTerminal.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            "cldr-plurals.exe", not "cldr-plurals".
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            In the POT files, talk about the "GNU gettext package".
            Reported by Benno Schulenberg <coordinator@translationproject.org>.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            XGETTEXT_OPTIONS and the XGETTEXT_EXTRA_OPTIONS after all other options.
            Likewise.
            ($(DOMAIN).pot-update): Likewise.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            The xterm description on these platforms includes support for italics.
            Reported by Nelson H. F. Beebe.
            New file.
            expected result.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            libxml: Avoid gcc warnings.
            Avoids "warning: too many arguments for format".
            * gnulib-local/lib/libxml/xmlerror.in.h (__xmlSimpleError): Remove
            LIBXML_ATTR_FORMAT annotation, because this function may be called with a
            NULL msg.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            libxml: Avoid build failure due to "implicit declaration of function".
            * gnulib-local/lib/libxml/libxml.h: Include xmlstring.h only after config.h is
            included.
            libxml: Update included libxml2 to version 2.9.9.
            * gnulib-local/lib/libxml/*: Update from libxml2 2.9.9.
            Update to newest gnulib.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            Reported by Nelson H. F. Beebe.
            allow an expected result in UTF-8 encoding.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            Reported by Nelson H. F. Beebe.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            Reported by Nelson H. F. Beebe.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            The master copy lives in gnulib now.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            Reported by Nelson H. F. Beebe.
            "automake -a -c".
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            Reported by Nelson H. F. Beebe.
    2019-04-28  Bruno Haible  <bruno@clisp.org>
            Update after gnulib changed.
            Update to newest gnulib.
    2019-04-27  Bruno Haible  <bruno@clisp.org>
            intl: Use the lookup optimization also on platforms without per-thread locales.
            This bug was introduced on 2007-01-27.
    2019-04-27  Bruno Haible  <bruno@clisp.org>
            po-mode: Fix warning.
            libgettextpo: Don't rely on the undocumented variable libgettextpo_program_name.
            * gnulib-local/lib/xerror.c: If IN_LIBGETTEXTPO is defined, include
            getprogname.h instead of progname.h and define program_name as a macro.
            * gnulib-local/lib/error-progname.c: Likewise.
            * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Remove progname.
            Pass --avoid=progname to gnulib-tool invocation for libgettextpo.
            libgettextpo: Fix crash when iconv() does not support the PO file's encoding.
            defined, don't use program_name.
            libgettextpo: Fix gcc warnings.
            evaluate the classname argument.
            Fix a gcc warning.
            USEJAVA is 0.
            Fix a gcc warning on mingw.
            set.
            (get_user_fullname): Don't call get_user_pwd if HAVE_PWD_H is not set.
            Fix gcc warnings on mingw and IRIX 6.5.
            supports %zu.
            Fix gcc warnings on mingw.
            Fix a gcc warning (regression from 2017-05-04).
            search-path.c: Improve code style.
            (foreach_elements): Fix comment.
            (get_search_path): Improve comments. Perform each getenv() only once. Reduce
            scope of variables. Fix gcc warning.
            libxml: Fix width of fprintf argument on native Windows.
            * gnulib-local/lib/libxml/timsort.h (TIM_SORT_RESIZE): Cast fprintf argument to
            'unsigned long'.
            intl: Fix a gcc warning.
            data as BYTE array, not char array.
    2019-04-26  Bruno Haible  <bruno@clisp.org>
            Reported by Michele Locati <michele@locati.it>
            in <https://lists.gnu.org/archive/html/bug-gettext/2019-04/msg00052.html>.
            symbol.
    2019-04-26  Bruno Haible  <bruno@clisp.org>
            Document the OUTPUT_CHARSET environment variable.
            Reported by Václav Slavík <vaclav@slavik.io>
            via Michele Locati <michele@locati.it>.
    2019-04-14  Bruno Haible  <bruno@clisp.org>
            Update translations (from the TP).
            Prepare for 0.20 release.
            (GETTEXT_MACRO_VERSION): Bump to 0.20.
            output.
            * libtextstyle/version.sh: Use version number 0.20 here as well.
            autopoint: Reject AM_GNU_GETTEXT without 'external' for versions >= 0.20.
            specified with a gettext version >= 0.20.
            --with-included-gettext. Don't use libtoolize.
            * check-copyright-headers (func_check_file): Succeed for the archive.dir.tar
            file.
            Update to newest gnulib.
    2019-04-13  Bruno Haible  <bruno@clisp.org>
            assume that fprintf supports %zu.
            * autogen.sh: Copy x-to-1.in from gnulib.
            libtextstyle/lib.
            (textstyle.h): New rule.
            (BUILT_SOURCES, MOSTLYCLEANFILES): Add textstyle.h and textstyle/*.h.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add openmp-init. Remove openmp.
            Update to newest gnulib.
    2019-04-12  Bruno Haible  <bruno@clisp.org>
            msgfmt: Fix another buffer overrun.
            Reported and patch by Joshua Root <jmr@macports.org>
            at <https://savannah.gnu.org/bugs/?56126>.
            trailing NUL byte as well.
    2019-04-11  Bruno Haible  <bruno@clisp.org>
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add localtime, unsetenv.
            gl_array_list_implementation, styled_ostream_typeinfo.
            color_test_mode, style_file_name.
            modules.
            * libtextstyle/autogen.sh: Pass a --macro-prefix option to gnulib-tool.
            * libtextstyle/configure.ac: Update accordingly.
            libtextstyle: Fix build failure on mingw (regression from 2019-03-17).
            isatty.c defines the symbol 'libtextstyle_isatty', not 'isatty'.
    2019-04-11  Bruno Haible  <bruno@clisp.org>
            For some reason, Automake puts a definition of CXXLD in
    2019-04-10  Bruno Haible  <bruno@clisp.org>
            msgfmt: Fix a buffer overrun.
            Reported by Tobi Schäfer at <https://trac.macports.org/ticket/58323>,
            via Ryan Schmidt <@ryandesign.com> at <https://savannah.gnu.org/bugs/?56112>.
            Patch proposed by Joshua Root.
            trailing NUL byte as well.
    2019-04-09  Bruno Haible  <bruno@clisp.org>
            of HAVE_USELOCALE.
            msgmerge: Fix crash on 32-bit AIX 7.2.
            (main): Invoke openmp_init().
            Update to newest gnulib.
    2019-04-08  Bruno Haible  <bruno@clisp.org>
            Make sure that libintl.h declares the *wprintf overrides on Windows.
            Update to newest gnulib.
    2019-04-08  Bruno Haible  <bruno@clisp.org>
            autopoint: Don't risk failing because of user or system git configurations.
            Reported by Jamie Kirkpatrick <jkp@kirkconsulting.co.uk>
            in <https://savannah.gnu.org/support/?107689>.
            does not read the user's git configuration nor the system's git configuration.
    2019-04-08  Bruno Haible  <bruno@clisp.org>
            xgettext: Recognize ECMAScript-262 6th edition template literals.
            Reported by Philip Chimento <philip.chimento@gmail.com>
            in <https://savannah.gnu.org/bugs/index.php?50920>.
            (enum token_type_ty): Add token_type_template, token_type_ltemplate,
            token_type_mtemplate, token_type_rtemplate.
            (free_token): Treat token_type_template like token_type_string.
            (phase7_getuc): Add support for backquote quote_char.
            (brace_depth, template_literal_depth): New variables.
            (phase5_get): Parse template literals.
            (x_javascript_lex): Treat token_type_template like token_type_string. Handle the
            combination of symbol followed by template.
            (extract_balanced): Treat token_type_template like token_type_string, and
            token_type_ltemplate, token_type_mtemplate, token_type_rtemplate like
            token_type_other.
            (extract_javascript): Initialize brace_depth, template_literal_depth.
            syntax for strings.
    2019-04-08  Bruno Haible  <bruno@clisp.org>
            xgettext: Make JavaScript parser more robust.
            inside_embedded_js_in_xml.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            * check-copyright-headers: New file.
            (distcheck-hook): Run check-copyright-headers and fail if it fails.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            * build-aux/texi2html: Moved to here from libtextstyle/build-aux/texi2html.
            * libtextstyle/autogen.sh: Copy texi2html.
            (EXTRA_DIST): Remove texi2html.
            (EXTRA_DIST): Remove texi2html.
            (distcheck-hook): Update.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
            libunistring/build-aux/texi2html and then in libtextstyle/build-aux/texi2html.
            processing.
            -no-sec-nav -no-menu -toc-links.
            (gettext_toc.html): Likewise. Pull out generated files out of subdirectory.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            libasprintf: Use a version of texi2html which is under a good license.
            Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
            changes made in libunistring/build-aux/texi2html and then in
            libtextstyle/build-aux/texi2html.
            gettext-tools/doc/fdl.texi.
            gnulib/doc/gpl-2.0.texi.
            gnulib/doc/lgpl-2.1.texi.
            Top node during texi2html processing.
            (Licenses): New appendix.
            (MAKEINFOFLAGS): Use it.
            (autosprintf_TEXINFOS): New variable.
            (autosprintf_all.html): Depend on it. Use texi2html options -no-sec-nav -no-menu
            -toc-links.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Tweak style of HTML documentation.
            * libtextstyle/build-aux/texi2html (BIG_RULE): Set to empty.
    2019-04-07  Bruno Haible  <bruno@clisp.org>
            Add copyright notices in several files.
            Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
            by Gora Mohanty <gora_mohanty@yahoo.co.in> through private email on 2004-11-13.
            file is meant to be copied and renamed to 'Makevars'.
            notice.
    2019-04-04  Bruno Haible  <bruno@clisp.org>
            Reduce ABOUT-NLS to just a hyperlink.
            The common way to distribute information, nowadays, is through the web,
            not by including files in tarballs of packages.  Also, the current
            contents of ABOUT-NLS is outdated.
            Reported by Samuel Thibault in <https://savannah.gnu.org/bugs/?54809>.
            documentation.
            (all-local, ABOUT-NLS): Remove rules.
            instead of the ABOUT-NLS file.
            ABOUT-NLS file.
    2019-04-04  Bruno Haible  <bruno@clisp.org>
            'Translation Intro'. Turn into a section. Mark section as historical.
            matrix.texi.
    2019-04-04  Bruno Haible  <bruno@clisp.org>
            Add copyright notices in several files.
            Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
            * windows/windres-options: Likewise.
            in Rules-quot.
    2019-04-03  Bruno Haible  <bruno@clisp.org>
            Mention the support for Java 11.
            This support was added in gnulib on 2018-09-26.
    2019-04-03  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Clean up old TODO item.
    2019-04-02  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Distribute two more files.
            gnulib-local/lib/libxml/xmlversion.in.h.diff, gnulib-local/modules/libxml.diff.
            * libtextstyle/gnulib-local/*: Many files moved to here from gnulib-local/*.
            * libtextstyle/gnulib-local/modules/libglib: Apply diff.
            * libtextstyle/gnulib-local/modules/libglib.diff: Remove file.
            * libtextstyle/gnulib-local/modules/libcroco: Apply diff.
            * libtextstyle/gnulib-local/modules/libcroco.diff: Remove file.
            * libtextstyle/gnulib-local/modules/term-styled-ostream: Apply diff.
            * libtextstyle/gnulib-local/modules/term-styled-ostream.diff: Remove file.
            * libtextstyle/gnulib-local/modules/html-styled-ostream: Apply diff.
            * libtextstyle/gnulib-local/modules/html-styled-ostream.diff: Remove file.
            * libtextstyle/gnulib-local/modules/noop-styled-ostream: Apply diff.
            * libtextstyle/gnulib-local/modules/noop-styled-ostream.diff: Remove file.
            * libtextstyle/woe32dll/c++term-styled-ostream.cc: Remove file.
            * libtextstyle/woe32dll/c++html-styled-ostream.cc: Remove file.
            * libtextstyle/woe32dll/c++noop-styled-ostream.cc: Remove file.
            libtextstyle/gnulib-local/. Add build-aux/moopp.
            libgettextpo: Avoid closing a FILE stream when it will still be used.
            ostream_free if we're using the dummy <textstyle.h>.
            libgettextpo: Use a dummy replacement for libtextstyle.
            * gnulib-local/modules/libtextstyle-dummy: New file, based on gnulib's
            modules/libtextstyle-optional.
            * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Add libtextstyle-dummy. Remove
            file-ostream, ostream.
            Link the msg* and xgettext programs against libtextstyle.
            * libtextstyle/autogen.sh: Don't generate lib/color.h and lib/color.c.
            * libtextstyle/lib/color.h: Moved to here from gettext-tools/src/color.h.
            * libtextstyle/lib/color.c: Moved to here from gettext-tools/src/color.c.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Remove fd-ostream, file-ostream,
            html-styled-ostream, ostream, styled-ostream, term-styled-ostream. Add libxml.
            customization.
            (AM_CPPFLAGS): Add -I directives to the libtextstyle/lib directory.
            (libgettextsrc_la_SOURCES): Remove color.c.
            (libgettextsrc_la_LDFLAGS): Link with libtextstyle.la.
            and *-ostream.h.
            (msgdomain_list_print): Use styled_ostream_create and
            noop_styled_ostream_create.
            (is_stylable): Remove function.
            (begin_css_class, end_css_class): Update. Mark as inline.
            ostream.h.
            libtextstyle: Generalize fd-styled-ostream to noop-styled-ostream.
            * gnulib-local/lib/noop-styled-ostream.oo.h: New file, based on
            gnulib-local/lib/fd-styled-ostream.oo.h.
            * gnulib-local/lib/noop-styled-ostream.oo.c: New file, based on
            gnulib-local/lib/fd-styled-ostream.oo.c.
            * gnulib-local/modules/noop-styled-ostream: New file, based on
            gnulib-local/modules/fd-styled-ostream.
            and modules/fd-styled-ostream. Add lib/noop-styled-ostream.oo.[hc] and
            modules/noop-styled-ostream.
            * libtextstyle/woe32dll/c++noop-styled-ostream.cc: New file, based on
            libtextstyle/woe32dll/c++fd-styled-ostream.cc.
            * libtextstyle/gnulib-local/modules/noop-styled-ostream.diff: New file, based
            on libtextstyle/gnulib-local/modules/fd-styled-ostream.diff.
            * gnulib-local/lib/fd-styled-ostream.oo.h: Remove file.
            * gnulib-local/lib/fd-styled-ostream.oo.c: Remove file.
            * gnulib-local/modules/fd-styled-ostream: Remove file.
            * libtextstyle/woe32dll/c++fd-styled-ostream.cc: Remove file.
            * libtextstyle/gnulib-local/modules/fd-styled-ostream.diff: Remove file.
            * libtextstyle/autogen.sh (GNULIB_MODULES): Add noop-styled-ostream. Remove
            fd-styled-ostream.
            * libtextstyle/lib/misc.c: Include noop-styled-ostream.h, fd-ostream.h.
            (styled_ostream_create): Call fd_ostream_create and noop_styled_ostream_create
            instead of fd_styled_ostream_create.
            * libtextstyle/lib/textstyle.h (noop_styled_ostream_t): New type.
            (noop_styled_ostream_*): New declarations.
            * libtextstyle/doc/libtextstyle.texi (The noop_styled_ostream class): New
            subsection.
            * autogen.sh: Recurse into libtextstyle directory.
            * configure.ac: Likewise.
            * DEPENDENCIES: Mention that libiconv and ncurses are also used by libtextstyle.
            * PACKAGING: Recommend to ship libtextstyle as a third binary package.
            * gitsub.sh: New file, from gnulib.
            * autogen.sh: Remove all git operations and the --no-git option. Look at the
            GNULIB_SRCDIR environment variable. Ignore the GNULIB_TOOL environment variable.
            * HACKING: Explain when to use gitsub.sh.
            libtextstyle: Bump version number.
    2019-04-01  Daiki Ueno  <ueno@gnu.org>
            desktop: Fix whitespace handling around '='
            While the spec only allows spaces before and after '=',
            xgettext/msgfmt previously accepted all whitespaces including '\n'.
            That was causing unwanted concatenation of desktop lines.
            Reported by Bastien Nocera in:
            https://lists.gnu.org/archive/html/bug-gettext/2019-03/msg00017.html
            space characters before and after '='.
    2019-04-01  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Bump version number.
    2019-03-31  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Add support for true-color terminals.
            * gnulib-local/lib/term-ostream.oo.c (colormodel_t): Add cm_xtermrgb.
            (rgb_to_color_xtermrgb): New function.
            (attributes_t): Extend the color fields to 25 bits.
            (struct term_ostream): New fields active_attr_color, active_attr_bgcolor.
            (out_color_change, out_bgcolor_change, term_ostream::rgb_to_color): Handle
            cm_xtermrgb.
            (out_attr_change): Set also active_attr_color, active_attr_bgcolor.
            (async_set_attributes_from_default): Fetch also active_attr_color,
            active_attr_bgcolor.
            (term_ostream_create): Accept all $TERM values that end in -direct.
            * libtextstyle/doc/libtextstyle.texi (Terminal emulators): Document the
            prerequisites for true-color support.
            maint: Make code more "git diff"-friendly.
            non-whitespace character.
            libtextstyle: Improve documentation regarding the TERM value.
            * libtextstyle/doc/libtextstyle.texi (The TERM variable): Many more details.
            (Terminal emulators, Consoles): New subsections.
            libtextstyle: Support for terminal types with 256 colors.
            * gnulib-local/lib/term-ostream.oo.c (term_ostream_create): Accept all $TERM
            values that end in -16color or -256 color (such as Eterm-256color,
            mlterm-256color, or putty-256color).
    2019-03-30  Takesi Ayanokoji  <ayanokoji.takesi@gmail.com>
            po-mode: Enable highlighting of #, lines.
    2019-03-30  Bruno Haible  <bruno@clisp.org>
            po-mode: Remove support for Emacs versions < 22.
            Emacs 22 is the oldest version still in use, see
            <https://repology.org/project/emacs/versions>.
            (po-rehighlight): Remove function.
            (po-check-all-pending-edits, po-check-for-pending-edit): Update.
    2019-03-30  Bruno Haible  <bruno@clisp.org>
            po-mode: Remove support for XEmacs.
            Update after gnulib changed.
    2019-03-27  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Add support for Windows consoles.
            * gnulib-local/lib/term-ostream.oo.c: Include <windows.h>, msvc-nothrow.h,
            <io.h>.
            (struct term_ostream): Add fields handle, is_windows_console,
            default_console_attributes, current_console_attributes.
            (out_color_change, out_bgcolor_change, out_underline_change, out_attr_change,
            restore, async_restore, async_set_attributes_from_default, term_ostream::flush):
            Add separate code path for Windows consoles.
            and initialize the new fields.
            * gnulib-local/modules/term-ostream (Depends-on): Add msvc-nothrow.
            libtextstyle: Make the SIGCONT handler work more reliably.
            * gnulib-local/lib/term-ostream.oo.c (out_attr_change): Modify active_attr
            before emitting the escape sequences, not afterwards.
            libtextstyle: Mention fixes.
            'term-style-control'.
            libtextstyle: Small fix for last commit.
            * gnulib-local/lib/term-ostream.oo.c (struct term_ostream): Mark fd volatile.
            Update to newest gnulib.
    2019-03-27  Bruno Haible  <bruno@clisp.org>
            its: Simplify code.
            Suggested by Daiki Ueno.
    2019-03-26  Bruno Haible  <bruno@clisp.org>
            boundary. Get rid of initial trim() call.
            at the end of the last paragraph.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add memchr.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add strchrnul.
    2019-03-24  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Use gnulib module 'term-style-control'.
            * gnulib-local/lib/term-ostream.oo.h: Include term-style-control.h.
            (ttyctl_t): Remove type.
            * gnulib-local/lib/term-ostream.oo.c (DEBUG_SIGNALS): Remove macro.
            Don't include <signal.h>, <stdio.h>, <sys/stat.h>, fatal-signal.h,
            sig-handler.h, same-inode.h.
            (SIZEOF): Remove macro.
            (nonintr_tcgetattr, nonintr_tcsetattr): Remove functions.
            (log_message, sprintf_integer, simple_errno_string, simple_signal_string,
            log_signal_handler_called): Remove functions.
            (struct term_ostream): Remove fields tty_control, same_as_stderr,
            non_default_active. Add control_data field instead.
            (get_control_data): New function.
            (BLOCK_SIGNALS_DURING_NON_DEFAULT_STYLE_OUTPUT): Remove macro.
            (term_fd): Remove variable.
            (pgrp_status_t): Remove type.
            (pgrp_status): Remove variable.
            (update_pgrp_status): Remove function.
            (out_filename): Remove variable.
            (out_error): Use out_stream instead of out_filename.
            (restore, tcsetattr_failed): Remove functions.
            (orig_lflag_set, orig_lflag): Remove variables.
            (clobber_local_mode, restore_local_mode): Remove functions.
            (job_control_signals): Remove variable.
            (num_job_control_signals): Remove macro.
            (relevant_signal_set, relevant_signal_set_initialized): Remove variables.
            (init_relevant_signal_set, block_relevant_signals, unblock_relevant_signals,
            is_ignored, show_signal_marker, fatal_or_stopping_signal_handler,
            fatal_signal_handler, stopping_signal_handler, continuing_signal_handler,
            ensure_continuing_signal_handler, ensure_other_signal_handlers): Remove
            functions.
            (out_attr_change): Set out_stream and out_fd.
            (activate_non_default_attr, deactivate_non_default_attr): Remove functions.
            (restore, async_restore, async_set_attributes_from_default): New functions.
            (controller): New variable.
            (activate_default_attr, output_buffer): Update.
            (term_ostream::free): Invoke deactivate_term_style_controller.
            (term_ostream_create): Invoke activate_term_style_controller.
            * gnulib-local/modules/term-ostream (Depends-on): Add term-style-control. Remove
            fatal-signal, sigaction, sigprocmask, same-inode.
            moopp: Allow forward references to the <class>_representation type.
            * gnulib-local/build-aux/moopp (func_version): Bump copyright year.
            (func_emit_source_c): Move the <class>_representation type alias to the top
            of the file.
    2019-03-20  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Fix a memory access from a signal handler.
            * gnulib-local/lib/term-ostream.oo.c (struct term_ostream): Mark active_attr
            field as volatile.
            libtextstyle: Bump version number.
            Use _GL_ASYNC_SAFE from gnulib.
            (sigfpe_handler): Mark as _GL_ASYNC_SAFE.
            * gnulib-local/lib/term-ostream.oo.c (ASYNC_SAFE): Remove macro.
            Use _GL_ASYNC_SAFE instead.
            Update to newest gnulib.
            Update .gitignore after 2019-03-12 change.
    2019-03-17  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Bump version number.
            libtextstyle: Bump version number.
            libtextstyle: Implement reliable tty control.
            * gnulib-local/lib/term-ostream.oo.c (DEBUG_SIGNALS): New macro.
            Include <stdio.h>, <sys/stat.h>.
            (NOFLSH): Define fallback value.
            Include sig-handler.h, same-inode.h.
            (ASYNC_SAFE): New macro.
            (color_bgr): Mark as ASYNC_SAFE.
            (nonintr_tcgetattr, nonintr_tcsetattr): New functions.
            (log_message, sprintf_integer, simple_errno_string, simple_signal_string,
            log_signal_handler_called): New functions.
            (struct term_ostream): Add fields restore_colors, restore_weight,
            restore_posture, restore_underline, tty_control, same_as_stderr.
            (BLOCK_SIGNALS_DURING_NON_DEFAULT_STYLE_OUTPUT): New macro.
            (term_fd): New variable.
            (pgrp_status_t): New type.
            (pgrp_status): New variable.
            (update_pgrp_status): New function.
            (out_stream): New variable.
            (restore_colors, restore_weight, restore_posture, restore_underline): Remove
            variables.
            (out_color_change, out_bgcolor_change, out_weight_change, out_posture_change,
            out_underline_change): New functions, extracted from out_attr_change.
            (out_attr_change): Call these functions.
            (restore): Use out_stream.
            (tcsetattr_failed): New function.
            (orig_lflag_set, orig_lflag): New variables.
            (clobber_local_mode, restore_local_mode): New functions.
            (job_control_signals): Renamed from stopping_signals. Add SIGCONT.
            (num_job_control_signals): Renamed from num_stopping_signals.
            (relevant_signal_set): Replaces stopping_signal_set.
            (relevant_signal_set_initialized): New variable.
            (init_relevant_signal_set): Replaces init_stopping_signal_set.
            (block_relevant_signals): Replaces block_stopping_signals.
            (unblock_relevant_signals): Replaces unblock_stopping_signals.
            (is_ignored): New function.
            (show_signal_marker): New function.
            (fatal_or_stopping_signal_handler, fatal_signal_handler,
            stopping_signal_handler, continuing_signal_handler,
            ensure_continuing_signal_handler, ensure_other_signal_handlers): New functions.
            (activate_non_default_attr, deactivate_non_default_attr): Rewritten.
            (term_ostream::free): Unset term_fd and call update_pgrp_status.
            (term_ostream_create): Initialize the fields restore_colors, restore_weight,
            restore_posture, restore_underline, tty_control, same_as_stderr. Call
            init_relevant_signal_set. Set term_fd and call ensure_continuing_signal_handler
            and update_pgrp_status.
            * gnulib-local/m4/term-ostream.m4 (gl_TERM_OSTREAM): Check for tcgetattr.
            * gnulib-local/modules/term-ostream (Depends-on): Add sigaction, same-inode.
            libtextstyle: Fix build failure on Cygwin (regression from 2019-03-15).
            from $(srcdir)/libtextstyle.sym.
            (libtextstyle.sym): New rule.
            (MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST): Update accordingly.
            (config.h): Depend on libtextstyle.sym in the build directory.
            (libtextstyle_la_LDFLAGS: Use libtextstyle.sym in the build directory.
            libtextstyle: Clean up leftovers from 2019-03-13 commit.
    2019-03-16  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Complete styled_ostream_flush_to_current_style declaration.
            * libtextstyle/lib/textstyle.h (term_styled_ostream_flush_to_current_style,
            html_styled_ostream_flush_to_current_style): New declarations.
            libtextstyle: Protect better against EINTR.
            * gnulib-local/lib/fd-ostream.oo.c (nonintr_tcdrain): New function.
            (fd_ostream::flush): Use it instead of tcdrain.
            * gnulib-local/lib/file-ostream.oo.c: Include <errno.h>.
            (nonintr_tcdrain): New function.
            (file_ostream::flush): Use it instead of tcdrain.
            * gnulib-local/lib/term-ostream.oo.c (nonintr_tcdrain): New function.
            (term_ostream::flush): Use it instead of tcdrain.
    2019-03-15  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Reexport isatty() override from gnulib.
            This is necessary for programs that are compiled for native Windows and
            run in a Cygwin console.
            * libtextstyle/autogen.sh (GNULIB_MODULES): Add 'isatty'.
            * libtextstyle/configure.ac: Set GNULIB_ISATTY to 0.
            * libtextstyle/lib/textstyle.h (libtextstyle_isatty): New declaration.
            (isatty): Redirect to libtextstyle_isatty.
    2019-03-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Use less code from libxml.
            * libtextstyle/gnulib-local/lib/libxml/xmlversion.in.h.diff: New file.
            * gnulib-local/lib/libxml/save.h (xmlEncodeAttributeEntities): Declare also when
            LIBXML_OUTPUT_ENABLED is 0.
            libtextstyle: Fix "make clean" failure in VPATH builds.
            (DISTCLEANDIRS_NOT_IN_SRCDIR): Add 'textstyle'.
            libtextstyle: Make sure we get new versions also of mdate-sh.
            * libtextstyle/autogen.sh: Erase more files in build-aux.
    2019-03-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Remove unused code for exporting variables from Windows DLLs.
            Here we use the third approach listed in gettext-tools/woe32dll/export.h, not
            the fourth approach.
            * libtextstyle/configure.ac (false): Remove conditional.
    2019-03-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Add metainformation for Windows.
            libtextstyle: Add metainformation for Windows.
            * libtextstyle/lib/libtextstyle.rc: New file.
            (WOE32_LIBADD): New variable.
            (libtextstyle.res.lo): New rule.
            (libtextstyle_la_LIBADD, libtextstyle_la_DEPENDENCIES): Augment.
    2019-03-13  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Don't use a C++ compiler.
            * libtextstyle/gnulib-local/modules/fd-styled-ostream.diff: New file.
            * libtextstyle/gnulib-local/modules/html-styled-ostream.diff: New file.
            * libtextstyle/gnulib-local/modules/term-styled-ostream.diff: New file.
            always.
            * libtextstyle/configure.ac: Remove LT_LANG([C++]), AC_PROG_CXX, and related
            invocations.
            libasprintf: Add metainformation for Windows.
            (WOE32_LIBADD): New variable.
            (libasprintf.res.lo): New rule.
            (libasprintf_la_LIBADD, libasprintf_la_DEPENDENCIES): New variables.
            * windows/gettext.rc: Likewise.
            libtextstyle: Bump version number.
    2019-03-12  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Bump version number.
            libtextstyle: New function styled_ostream_flush_to_current_style.
            * gnulib-local/lib/styled-ostream.oo.h (struct styled_ostream): Add method
            flush_to_current_style.
            * gnulib-local/lib/fd-styled-ostream.oo.c
            (fd_styled_ostream::flush_to_current_style): New method.
            * gnulib-local/lib/term-styled-ostream.oo.c
            (term_styled_ostream::flush_to_current_style): New method.
            * gnulib-local/lib/html-styled-ostream.oo.c
            (html_styled_ostream::flush_to_current_style): New method.
            * libtextstyle/lib/textstyle.h (styled_ostream_flush_to_current_style): New
            declaration.
            * libtextstyle/doc/libtextstyle.texi (The styled_ostream class): Document
            styled_ostream_flush_to_current_style.
            libtextstyle: New function html_ostream_flush_to_current_style.
            * gnulib-local/lib/html-ostream.oo.h (struct html_ostream): Add method
            flush_to_current_style.
            * gnulib-local/lib/html-ostream.oo.c (html_ostream::flush_to_current_style): New
            method.
            * libtextstyle/lib/textstyle.h (html_ostream_flush_to_current_style): New
            declaration.
            * libtextstyle/doc/libtextstyle.texi (The html_ostream class): Document
            html_ostream_flush_to_current_style.
            libtextstyle: New function term_ostream_flush_to_current_style.
            * gnulib-local/lib/term-ostream.oo.h (struct term_ostream): Add method
            flush_to_current_style.
            * gnulib-local/lib/term-ostream.oo.c (struct term_ostream): Add fields
            default_attr, active_attr, non_default_active.
            (out_attr_change): Remove second argument. Update active_attr.
            (activate_non_default_attr, deactivate_non_default_attr, activate_default_attr):
            New functions, extracted from output_buffer.
            (output_buffer): Use them. Add a second argument.
            (term_ostream::write_mem, term_ostream::flush): Update output_buffer calls.
            (term_ostream::free): Add an assertion.
            (term_ostream::flush_to_current_style): New method.
            (term_ostream_create): Initialize the fields default_attr, active_attr,
            non_default_active.
            * libtextstyle/lib/textstyle.h (term_ostream_flush_to_current_style): New
            declaration.
            * libtextstyle/doc/libtextstyle.texi (The term_ostream class): Document
            term_ostream_flush_to_current_style.
    2019-03-12  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Add a second argument to the 'flush' operations.
            * gnulib-local/lib/ostream.oo.h (ostream_flush_scope_t): New type.
            (ostream::flush): Add scope parameter.
            * gnulib-local/lib/file-ostream.oo.c: Include <unistd.h>, <termios.h>.
            (file_ostream::flush): Add a scope parameter.
            * gnulib-local/modules/file-ostream (Depends-on): Add 'fsync'.
            (configure.ac): Check for tcdrain.
            * gnulib-local/lib/fd-ostream.oo.c: Include <unistd.h>, <termios.h>.
            (fd_ostream::flush): Add a scope parameter.
            (fd_ostream::free): Update flush call.
            * gnulib-local/modules/fd-ostream (Depends-on): Add 'fsync'.
            (configure.ac): Check for tcdrain.
            * gnulib-local/lib/term-ostream.oo.c: Include <unistd.h>, <termios.h>.
            (term_ostream::flush): Add scope parameter.
            (term_ostream::free): Update flush call.
            * gnulib-local/m4/term-ostream.m4 (gl_TERM_OSTREAM): Check for tcdrain.
            * gnulib-local/modules/term-ostream (Depends-on): Add 'fsync'.
            * gnulib-local/lib/memory-ostream.oo.c (memory_ostream::flush): Add scope
            parameter.
            * gnulib-local/lib/iconv-ostream.oo.c (iconv_ostream::flush): Add scope
            parameter.
            * gnulib-local/lib/html-ostream.oo.c (html_ostream::flush): Add scope parameter.
            Emit closing </span> tags.
            * gnulib-local/lib/fd-styled-ostream.oo.c (fd_styled_ostream::flush): Add scope
            parameter.
            * gnulib-local/lib/term-styled-ostream.oo.c (term_styled_ostream::flush): Add
            scope parameter.
            * gnulib-local/lib/html-styled-ostream.oo.c (html_styled_ostream::flush): Add
            scope parameter.
            * libtextstyle/lib/textstyle.h (ostream_flush_scope_t): New type.
            (ostream_flush, styled_ostream_flush, file_ostream_flush, fd_ostream_flush,
            term_ostream_flush, memory_ostream_flush, iconv_ostream_flush,
            html_ostream_flush, term_styled_ostream_flush, html_styled_ostream_flush): Add
            scope parameter.
            * libtextstyle/doc/libtextstyle.texi (The ostream class): Add scope parameter to
            flush method.
    2019-03-11  Bruno Haible  <bruno@clisp.org>
            libtextstyle/examples/color-hello/hello.c.
            libtextstyle/examples/color-hello/hello-default.css.
            contains an encoding.
    2019-03-10  Bruno Haible  <bruno@clisp.org>
    2019-03-04  Bruno Haible  <bruno@clisp.org>
            (libgettextlib_la_LDFLAGS): Augment for relocatable installation.
            relocatable installation.
            variable.
            (libgettextpo_la_LDFLAGS): Augment for relocatable installation.
            Update after gnulib changed.
            Update to newest gnulib.
    2019-02-24  Bruno Haible  <bruno@clisp.org>
            libintl: Fix installation with BSD 'make'.
            directory first.
    2019-02-16  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Improve the way the library is built.
            needed for building on older versions of AIX and useful to verify no undefined
            symbols are used by mistake. Add '-export-symbols', to reduce the loading time
            of the shared library.
    2019-02-15  Daiki Ueno  <ueno@gnu.org>
            its: Avoid uninitialized variable
            Fixes commit 89e7d2663bd27b8cdd300f26095f49d2c7519030.
    2019-02-15  Bruno Haible  <bruno@clisp.org>
            @INTL_MACOSX_LIBS@ here.
            libtextstyle: Don't use an external libglib.
            * gnulib-local/m4/libglib.m4 (gl_LIBGLIB): Accept an optional FORCE-INCLUDED
            argument.
            * libtextstyle/gnulib-local/modules/libglib.diff: New file.
            libtextstyle: Don't use an external libxml.
            * gnulib-local/m4/libxml.m4 (gl_LIBXML): Accept an optional FORCE-INCLUDED
            argument.
            * libtextstyle/gnulib-local/modules/libxml.diff: New file.
            libtextstyle: Don't use an external libcroco.
            * gnulib-local/m4/libcroco.m4 (gl_LIBCROCO): Accept an optional FORCE-INCLUDED
            argument.
            * libtextstyle/gnulib-local/modules/libcroco.diff: New file.
            * libtextstyle/autogen.sh: Pass another --local-dir option to gnulib-tool.
            libtextstyle: Fix build error on Cygwin and mingw.
            libtextstyle: Really fix hyperlinks to table of contents in HTML doc.
            libtextstyle: Document when and how to turn off styling.
            * libtextstyle/doc/libtextstyle.texi (Basic use): Document when and how to turn
            off styling.
            * gnulib-local/lib/term-styled-ostream.oo.c (term_styled_ostream_create): Handle
            a NULL css_filename explicitly.
    2019-02-15  Daiki Ueno  <ueno@gnu.org>
            its: Add new preserveSpaceRule "paragraph"
            This implements a new text extraction rule preserving paragraph
            boundaries, as mentioned in:
            https://gitlab.gnome.org/GNOME/glib/issues/1350
            (its_merge_context_merge_node): Likewise.
            (normalize_whitespace): Handle "paragraph" rule.
    2019-02-15  Daiki Ueno  <ueno@gnu.org>
            its: Make whitespace normalization logic simpler
            pointers for normalizing whitespaces, instead of memmove.
            Suggested by Bruno Haible.
    2019-02-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: In the examples, actually respect the --color option.
            Reported by Akim Demaille <akim.demaille@gmail.com>.
            * libtextstyle/examples/color-filter/filter.c (main): Set style_file_name to
            NULL when styling should be disabled.
            * libtextstyle/examples/color-hello/hello.c (main): Likewise.
    2019-02-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Assume that the texinfo sources are in the source dir.
            libtextstyle_toc.html): Lookup libunistring.texi in $(srcdir).
    2019-02-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Fix hyperlinks to table of contents in HTML doc.
            Reported by Akim Demaille <akim.demaille@gmail.com>.
            libtextstyle.html with references to libtextstyle_toc.html.
    2019-02-14  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Document the link options more precisely.
            * libtextstyle/doc/libtextstyle.texi (Link options): Document the link
            dependencies.
            libtextstyle: Fix build failure on mingw.
            * gnulib-local/modules/html-styled-ostream (Depends-on): Add 'close'.
            libtextstyle: Add support for VPATH builds with OpenBSD 'make'.
            prefix the target file names with '$(srcdir)/'.
    2019-02-13  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Put the .sym file in the source directory.
            directory.
            (config.h): Update rule.
    2019-02-12  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Fix configuration of the example programs.
            Reported by Akim Demaille <akim.demaille@gmail.com>.
    2019-02-12  Bruno Haible  <bruno@clisp.org>
            libtextstyle: Bump version number.
            * libtextstyle/version.sh (VERSION): Set to 0.6.
    2019-02-10  Bruno Haible  <bruno@clisp.org>
            libtextstyle: New project.
            * libtextstyle/AUTHORS: New file, extracted from gettext/AUTHORS.
            * libtextstyle/COPYING: New file, copied from gettext/COPYING.
            * libtextstyle/DEPENDENCIES: New file, based on gettext/DEPENDENCIES.
            * libtextstyle/HACKING: New file, based on gettext/HACKING.
            * libtextstyle/INSTALL: New file, copied from gettext/INSTALL.
            * libtextstyle/autogen.sh: New file, based on libunistring/autogen.sh.
            * libtextstyle/configure.ac: New file, based on libunistring/configure.ac.
            * libtextstyle/build-aux/texi2html: New file, copied from
            libunistring/build-aux/texi2html.
            * libtextstyle/doc/fdl.texi: New file, copied from gnulib/doc/fdl.texi.
            * libtextstyle/doc/gpl.texi: New file, copied from gnulib/doc/gpl-3.0.texi.
            * libtextstyle/doc/libtextstyle.texi: New file, partially based on
            gettext/gettext-tools/doc/gettext.texi.
            * libtextstyle/examples/color-filter/INSTALL: New file, based on
            gettext/gettext-tools/examples/hello-c/INSTALL.
            * libtextstyle/examples/color-filter/autoclean.sh: New file, based on
            gettext/gettext-tools/examples/hello-c/autoclean.sh.
            * libtextstyle/examples/color-filter/autogen.sh: New file, based on
            gettext/gettext-tools/examples/hello-c/autogen.sh.
            * libtextstyle/examples/color-filter/configure.ac: New file.
            * libtextstyle/examples/color-filter/filter.c: New file.
            * libtextstyle/examples/color-filter/filter-default.css: New file.
            * libtextstyle/examples/color-hello/INSTALL: New file, based on
            gettext/gettext-tools/examples/hello-c/INSTALL.
            * libtextstyle/examples/color-hello/autoclean.sh: New file, based on
            gettext/gettext-tools/examples/hello-c/autoclean.sh.
            * libtextstyle/examples/color-hello/autogen.sh: New file, based on
            gettext/gettext-tools/examples/hello-c/autogen.sh.
            * libtextstyle/examples/color-hello/configure.ac: New file.
            * libtextstyle/examples/color-hello/hello.c: New file.
            * libtextstyle/examples/color-hello/hello-default.css: New file.
            * libtextstyle/examples/color-hello/names.c: New file.
            * libtextstyle/lib/misc.h: New file.
            * libtextstyle/lib/misc.c: New file.
            * libtextstyle/lib/notinline.h: New file, based on
            libunistring/lib/unistring-notinline.h.
            * libtextstyle/lib/stdbool.mini.h: New file, based on
            libunistring/lib/stdbool.mini.h.
            * libtextstyle/lib/textstyle.h: New file, based on
            gnulib-local/lib/*ostream.oo.h.
            * libtextstyle/lib/textstyle/version.in.h: New file, based on
            libunistring/lib/unistring/version.in.h.
            * libtextstyle/lib/textstyle/woe32dll.in.h: New file, based on
            libunistring/lib/unistring/woe32dll.in.h.
            * libtextstyle/lib/version.c: New file, based on libunistring/lib/version.c.
            * libtextstyle/m4/init-package-version.m4: New file, copied from
            libunistring/m4/init-package-version.m4.
            * libtextstyle/version.sh: New file, based on libunistring/version.sh.
            * libtextstyle/woe32dll/c++fd-styled-ostream.cc: New file.
            * libtextstyle/woe32dll/c++html-styled-ostream.cc: New file.
            * libtextstyle/woe32dll/c++term-styled-ostream.cc: New file.
            * gnulib-local/lib/glib/gstring.c (g_string_append_c): In libtextstyle, honor a
            macro definition.
            * gnulib-local/lib/libxml/elfgcchack.h: In libtextstyle, make this entire file a
            no-op.
            * gnulib-local/lib/libxml/globals.in.h (docbDefaultSAXHandler,
            htmlDefaultSAXHandler, oldXMLWDcompatibility, xmlBufferAllocScheme,
            xmlDefaultBufferSize, xmlDefaultSAXHandler, xmlDefaultSAXLocator,
            xmlDoValidityCheckingDefaultValue, xmlFree, xmlGenericError, xmlStructuredError,
            xmlGenericErrorContext, xmlStructuredErrorContext, xmlGetWarningsDefaultValue,
            xmlIndentTreeOutput, xmlTreeIndentString, xmlKeepBlanksDefaultValue,
            xmlLineNumbersDefaultValue, xmlLoadExtDtdDefaultValue, xmlMalloc,
            xmlMallocAtomic, xmlMemStrdup, xmlParserDebugEntities, xmlParserVersion,
            xmlPedanticParserDefaultValue, xmlRealloc, xmlSaveNoEmptyTags,
            xmlSubstituteEntitiesDefaultValue, xmlRegisterNodeDefaultValue,
            xmlDeregisterNodeDefaultValue, xmlLastError,
            xmlParserInputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameValue): In
            libtextstyle, honor a macro definition.
            * gnulib-local/lib/libxml/globals.c (xmlFree, xmlMalloc, xmlMallocAtomic,
            xmlMemStrdup, xmlRealloc, docbDefaultSAXHandler, htmlDefaultSAXHandler,
            oldXMLWDcompatibility, xmlBufferAllocScheme, xmlDefaultBufferSize,
            xmlDefaultSAXHandler, xmlDefaultSAXLocator, xmlDoValidityCheckingDefaultValue,
            xmlGenericError, xmlStructuredError, xmlGenericErrorContext,
            xmlStructuredErrorContext, xmlGetWarningsDefaultValue, xmlIndentTreeOutput,
            xmlTreeIndentString, xmlKeepBlanksDefaultValue, xmlLineNumbersDefaultValue,
            xmlLoadExtDtdDefaultValue, xmlParserDebugEntities, xmlParserVersion,
            xmlPedanticParserDefaultValue, xmlSaveNoEmptyTags,
            xmlSubstituteEntitiesDefaultValue, xmlRegisterNodeDefaultValue,
            xmlDeregisterNodeDefaultValue, xmlLastError,
            xmlParserInputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameValue):
            Likewise.
            * gnulib-local/lib/libxml/xmlmemory.c (xmlMalloc): Likewise.
            gnulib-local: New module 'fd-styled-ostream'.
            * gnulib-local/lib/fd-styled-ostream.oo.h: New file.
            * gnulib-local/lib/fd-styled-ostream.oo.c: New file.
            * gnulib-local/modules/fd-styled-ostream: New file.
            term-ostream: Remove the need for an exit handler.
            * gnulib-local/lib/term-ostream.oo.c (output_buffer): Delay the error() call
            until the default state has been restored.
            term-ostream: Prepare for robustness through signal handling.
            * gnulib-local/lib/term-ostream.oo.h (ttyctl_t): New type.
            (term_ostream_create): Add tty_control argument.
            * gnulib-local/lib/term-ostream.oo.c (term_ostream_create): Likewise.
            * gnulib-local/lib/term-styled-ostream.oo.h: Include term-ostream.h.
            (term_styled_ostream_create): Add tty_control argument.
            * gnulib-local/lib/term-styled-ostream.oo.c (term_styled_ostream_create):
            Likewise.
            libasprintf: Tweak documentation formatting.
            way.
    2019-02-09  Bruno Haible  <bruno@clisp.org>
            Update copyright years.
            Remove automatically generated files from version control.
            html-styled-ostream: Fix memory leak.
            * gnulib-local/lib/html-styled-ostream.oo.c (html_styled_ostream::free): Free
            the stream.
            html-ostream: Fix memory leak.
            * gnulib-local/lib/html-ostream.oo.c: Include minmax.h.
            (verify_invariants, shrink_class_stack): New functions.
            (emit_pending_spans): Use them.
            (html_ostream::write_mem): Shrink class stack during newline processing.
            (html_ostream::free, html_ostream::begin_span): Verify invariants.
            (html_ostream::end_span): Likewise. Shrink class stack.
            * gnulib-local/modules/html-ostream (Depends-on): Add 'minmax'.
    2019-02-08  Bruno Haible  <bruno@clisp.org>
            examples: Fix build failure when building from git (regression from 2018-10-23).
            color: Make color.c package-neutral.
            (style_file_lookup): Add stylesdir_after_install argument.
            (style_file_prepare): Add arguments.
            (GETTEXTSTYLESDIR): New macro.
            (msgdomain_list_print): Update style_file_prepare calls.
            term-ostream: Accommodate a shell that is not in /bin/sh.
            accordingly.
            libglib: Fix list of files to clean.
            * gnulib-local/modules/libglib (MOSTLYCLEANFILES): Add glib.h-t, glibconfig.h-t.
            * autogen.sh: Make it clear that 'touch config.h.in' is tied to autoheader.
    2019-02-05  Bruno Haible  <bruno@clisp.org>
            Remove left-over empty directories in 'make distclean'.
    2019-02-04  Bruno Haible  <bruno@clisp.org>
            Fix copyright years.
    2019-01-25  Bruno Haible  <bruno@clisp.org>
            Reported by Nathaniel M. Beaver <nathanielmbeaver@gmail.com>
            in <https://savannah.gnu.org/bugs/?55573>.
            --style options are applicable to many programs.
    2019-01-21  Bruno Haible  <bruno@clisp.org>
            msginit: Update for current shape of Translation Project.
            Reported by Karl Ove Hufthammer <karl@huftis.org>
            in <https://lists.gnu.org/archive/html/bug-gettext/2019-01/msg00014.html>.
            structure of teams page.
    2019-01-06  Bruno Haible  <bruno@clisp.org>
            Make cldr-plurals program more robust.
            (main): Arrange to invoke close_stdout at program exit.
            Assume setlocale function.
            Likewise.
            exists.
            Update after gnulib changed.
            Update to newest gnulib.
    2018-12-17  Bruno Haible  <bruno@clisp.org>
            Fix compilation error on HP-UX with gcc.
            * gnulib-local/lib/libxml/trionan.c: Include <float.h>.
    2018-12-16  Bruno Haible  <bruno@clisp.org>
            Add comment regarding HP-UX cc in C99 mode.
            * gnulib-local/lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Update
            comment.
    2018-11-25  Bruno Haible  <bruno@clisp.org>
            intl: Really uninstall the intl/ subdir sources.
            Fix compilation error (regression from today).
            * autogen.sh (GNULIB_MODULES_RUNTIME_FOR_SRC): Add 'unistd'.
            PACKAGE_IS_GETTEXT_TOOLS, PRELOADABLE_LIBINTL): New conditionals.
            (distclean): Simplify accordingly.
            * autogen.sh: Copy wchar_t.m4 and wint_t.m4 for libasprintf.
            (OBJECTS): Use plural.lo always.
            ($(srcdir)/plural.c): New rule.
            (.y.c, pluralx.c, pluralx.lo): Remove rules.
            (mostlyclean): Delete the temporary file of the plural.c rule.
            (maintainer-clean): Delete plural.c.
            Automake .y.c rule.
            (po-gram-gen.h, cldr-plural.h): Remove separate target.
            (po-gram-gen2.h): Generate in the source directory.
            maint: Add write-up of how to do code coverage.
    2018-11-25  Bruno Haible  <bruno@clisp.org>
            libasprintf: On mingw, really use our vasprintf function, not mingw_vasprintf.
            mingw now has a definition of 'vasprintf' in <stdio.h> that redirects to
            mingw_vasprintf, which does not support argument reordering (i.e.
            HAVE_POSIX_PRINTF is not defined). Make sure to avoid this function and use
            the one defined in our lib-asprintf.c instead.
            redirecting to libasprintf_asprintf.
            (vasprintf): Define as macro redirecting to libasprintf_vasprintf.
            and libasprintf_vasprintf.
    2018-11-25  Bruno Haible  <bruno@clisp.org>
            msginit: On native Windows, produce same PO header as on Unix.
            envsubst: On native Windows, produce output suitable for the shell.
            * autogen.sh (GNULIB_MODULES_RUNTIME_FOR_SRC): Add 'binary-io'.
            binary mode.
            output.
            convention in the output.
            (GETTEXTDATADIR): On mingw, use native Windows syntax.
            wabs_top_srcdir instead of abs_top_srcdir.
            of gl_locale_name_environ to XPG syntax.
            Update to newest gnulib.
    2018-11-25  Bruno Haible  <bruno@clisp.org>
            This creates a bootstrapping issue, but it can be mitigated:
            If a user wants to build GNU gettext on a platform which does not have the
            GNU gettext programs installed, they first need to build and install a tarball
            of GNU gettext; then only they can build GNU gettext from the git repository.
    2018-11-25  Bruno Haible  <bruno@clisp.org>
            Amend 'Stop installing the intl/ subdir sources.' commit from 2018-11-11.
            $prefix/share/gettext/intl directory.
            Fix compilation error on mingw (regression from 2018-11-04).
            literalstring_parser initializer.
    2018-11-21  Pavel Raiskup  <praiskup@redhat.com>
            msgfmt: fix C&P issue
            Use 'end' for buffer size computation, instead of NULL 'ellipsis'.
            format-kde-kuit: really use fallback markup
            methods when FORMAT_KDE_KUIT_USE_FALLBACK_MARKUP is defined.  Also
            free buffer if there's no support for XML.
    2018-11-18  Bruno Haible  <bruno@clisp.org>
            msgmerge must produce output that is stable under msgcat.
            Reported by Ludovic Courtès <ludo@gnu.org>
            in <https://savannah.gnu.org/bugs/?51027>.
            and '*-format' flags.
    2018-11-18  Bruno Haible  <bruno@clisp.org>
            gettextize: Give more advice.
            AM_GNU_GETTEXT_INTL_SUBDIR invocations.
            Simplify Autoconf macros.
            argument. Use libtool always. Remove variables that existed only for backward
            compatibility.
            * autogen.sh: Ignore gettext.m4 and intl.m4 from gnulib.
            (libintl.a, libgnuintl.a): Remove rule.
            (.o): Remove suffix rule.
            (install-exec, installdirs, uninstall, distclean, dist, distdir): PACKAGE cannot
            be anything else than gettext-runtime and gettext-tools any more.
    2018-11-17  Bruno Haible  <bruno@clisp.org>
            Make 'make distcheck' work in a VPATH build.
            source dir, not in the build dir.
            build dir, not in the source dir.
            (SMALLPOFILES_FOR_lang): Prefix file names with $(srcdir).
            (hello-*/po/*.po): Likewise. Execute mmsmallpo.sh in $(srcdir).
    2018-11-11  Bruno Haible  <bruno@clisp.org>
            gettextize: Install also host-cpu-c-abi.m4 (needed since 2018-03-24).
            * PACKAGING: Mention host-cpu-c-abi.m4.
            Update to newest gnulib.
            Update packaging instructions.
            * PACKAGING: Update file list.
            gettextize: Require automake >= 1.9.
            automake >= 1.9 is not found. Stop installing intldir.m4, intl.m4 and its
            dependencies.
            to have automake >= 1.9.
            extern-inline.m4, fcntl-o.m4, glibc2.m4, glibc21.m4, intdiv0.m4, intl.m4,
            intl-thread-locale.m4, intldir.m4, intmax.m4, inttypes_h.m4, inttypes-pri.m4,
            lcmessage.m4, lock.m4, longlong.m4, printf-posix.m4, size_max.m4, stdint_h.m4,
            threadlib.m4, uintmax_t.m4, visibility.m4, wchar_t.m4, wint_t.m4, xsize.m4.
            * PACKAGING: Remove the *.m4 files that are no longer installed.
            Stop installing the intl/ subdir sources.
            (DISTFILES.obsolete): Remove variable.
            (install-data): Don't install nor remove anything.
            (installdirs): Don't create $(gettextsrcdir).
            archive.
            * PACKAGING: Remove mention of $prefix/share/gettext/intl/ directory.
            gettextize: Remove --intl option.
            Signal an error if the --intl option is specified.
            Simplify main code accordingly.
            directory.
            (configure.ac): Suggest to use AM_GNU_GETTEXT([external]) always. Remove mention
            of intl/ directory.
            (config.guess): Suggest them always.
            (aclocal): Shrink the list of .m4 files.
            (acconfig): Remove subsection.
            (config.h.in): Remove mention of intl/ directory.
            (AM_GNU_GETTEXT): First argument must be 'external'. Remove third argument.
            (AM_GNU_GETTEXT_INTL_SUBDIR): Remove subsection.
            (Language Implementors): Remove mention of intl/ directory. Mention that
            Solaris 11 gettext works like GNU gettext.
            (Maintainers for other Languages): Remove mention of intl/ directory.
    2018-11-09  Bruno Haible  <bruno@clisp.org>
    2018-11-08  Bruno Haible  <bruno@clisp.org>
    2018-11-05  Bruno Haible  <bruno@clisp.org>
            xgettext: C: Treat invalid escape sequences like GCC does.
            produce c, not a backslash.
            xgettext: Simplify calling convention of arglist_parser_remember.
            'msgid_comment_is_utf8' field.
            (arglist_parser_remember): Add comment_is_utf8 argument.
            arglist_parser_clone): Update.
            (arglist_parser_remember): Add comment_is_utf8 argument.
            (arglist_parser_done): Pass comment_is_utf8 value down to remember_a_message.
            xgettext_current_source_encoding around arglist_parser_remember calls.
            xgettext: Delay calls to from_current_source_encoding, part 2.
            (struct partial_call): Change type of fields msgctxt, msgid, msgid_plural to
            'mixed_string_ty *'.
            (arglist_parser_remember, arglist_parser_remember_msgctxt): Take a
            'mixed_string_ty *' argument instead of a 'char *' argument.
            accordingly.
            (arglist_parser_remember, arglist_parser_remember_msgctxt): Take a
            'mixed_string_ty *' argument.
            (arglist_parser_done): Convert the mixed_string to UTF-8 encoded 'char *' here.
            This is where from_current_source_encoding gets invoked now: immediately before
            invoking remember_a_message, that is, only when we really need to know the
            --from-source encoding.
            arglist_parser_remember. Don't set xgettext_current_source_encoding around
            arglist_parser_done calls.
            (read_object): Convert the string to a mixed_string_ty before passing it to
            arglist_parser_remember.
            (extract_parenthesized): Convert the string to a mixed_string_ty before passing
            it to arglist_parser_remember.
            (extract_balanced): Convert the string to a mixed_string_ty before passing it to
            arglist_parser_remember.
            (extract_balanced): Convert the string to a mixed_string_ty before passing it to
            arglist_parser_remember.
            (read_command): Convert the string to a mixed_string_ty before passing it to
            arglist_parser_remember.
            (read_command): Convert the string to a mixed_string_ty before passing it to
            arglist_parser_remember.
            mixed_string_ty before passing it to arglist_parser_remember. Don't set
            xgettext_current_source_encoding around arglist_parser_done calls.
            xgettext: Simplify calling convention of remember_a_message.
            remember_a_message_plural): Add is_utf8, comment_is_utf8 arguments.
            remember_a_message_plural): Likewise.
            extract_balanced): Likewise.
            xgettext: Delay calls to from_current_source_encoding, part 1.
            * xg-mixed-string.h (enum segment_type, struct mixed_string_segment,
            struct mixed_string, mixed_string_ty): New types.
            (mixed_string_alloc_simple, mixed_string_alloc_utf8, mixed_string_clone,
            mixed_string_contents, mixed_string_free, mixed_string_contents_free1,
            mixed_string_concat, mixed_string_concat_free1): New declarations.
            (struct mixed_string_buffer): Change internal representation to use segments.
            (mixed_string_buffer_result): Change return type to 'mixed_string_ty *'.
            * xg-mixed-string.c: Include flexmember.h, msgl-ascii.h, po-charset.h.
            (segment_alloc, segment_clone, mixed_string_alloc_simple,
            mixed_string_alloc_utf8, mixed_string_clone, mixed_string_contents,
            mixed_string_free, mixed_string_contents_free1, mixed_string_concat,
            mixed_string_concat_free1): New functions.
            (mixed_string_buffer_init, mixed_string_buffer_is_empty): Change to match new
            internal representation.
            (mixed_string_buffer_grow_curr_buffer): New function.
            (mixed_string_buffer_grow_utf8_buffer): Remove function.
            (mixed_string_buffer_append_to_utf8_buffer): Update accordingly.
            (mixed_string_buffer_flush_curr_buffer): Remove function.
            (mixed_string_buffer_add_segment, mixed_string_buffer_flush_curr): New
            functions.
            (mixed_string_buffer_append_char, mixed_string_buffer_append_unicode,
            mixed_string_buffer_destroy, mixed_string_buffer_result): Change to match new
            internal representation.
            * x-c.c (struct token_ty): New field 'mixed_string'.
            (free_token): Update accordingly.
            (phase5_get, phase6_get, phase8a_get): For tokens of type
            token_type_string_literal, use a mixed_string.
            (phase8_get): Use mixed_string_concat_free1.
            (struct xgettext_token_ty): New field 'mixed_string'.
            (x_c_lex, extract_parenthesized): For tokens of type
            xgettext_token_type_string_literal, use a mixed_string.
            * x-csharp.c (comment_line_end): Update.
            (struct token_ty): New field 'mixed_string'.
            (free_token): Update accordingly.
            (phase6_get): For tokens of type token_type_string_literal, use a mixed_string.
            (phase7_get): Use mixed_string_concat_free1.
            (extract_parenthesized): For tokens of type token_type_string_literal, use a
            mixed_string.
            * x-java.c (comment_line_end): Update.
            (struct token_ty): New field 'mixed_string'.
            (free_token): Update accordingly.
            (phase5_get): For tokens of type token_type_string_literal, use a mixed_string.
            (phase6_get): Use mixed_string_concat_free1.
            (extract_parenthesized): For tokens of type token_type_string_literal, use a
            mixed_string.
            * x-javascript.c (comment_line_end): Update.
            (struct token_ty): New field 'mixed_string'.
            (free_token): Update accordingly.
            (phase5_get): For tokens of type token_type_string, use a mixed_string.
            (x_javascript_lex): Use mixed_string_concat_free1.
            (extract_balanced): For tokens of type token_type_string, use a mixed_string.
            * x-python.c (comment_line_end): Update.
            (struct token_ty): New field 'mixed_string'.
            (free_token): Update accordingly.
            (phase5_get): For tokens of type token_type_string, use a mixed_string.
            (x_python_lex): Use mixed_string_concat_free1.
            (extract_balanced): For tokens of type token_type_string, use a mixed_string.
            * x-rst.c (extract_rsj): Update.
            * x-vala.c (struct token_ty): New field 'mixed_string'.
            (free_token): Update accordingly.
            (phase3_get): For tokens of type token_type_string_literal, use a mixed_string.
            For tokens of type token_type_string_template, fix a memory leak.
            (x_vala_lex): Use mixed_string_concat_free1.
            (extract_balanced): For tokens of type token_type_string_literal, use a
            mixed_string.
            xgettext: JavaScript: Make more use of mixed_string_buffer.
            (init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow,
            unicode_string_buffer_append_unicode, unicode_string_buffer_result,
            free_unicode_string_buffer): Remove functions.
            (comment_buffer, comment_start, comment_at_start, comment_add,
            comment_line_end): Use mixed_string_buffer API.
            xgettext: Python: Make more use of mixed_string_buffer.
            (init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow,
            unicode_string_buffer_append_unicode, unicode_string_buffer_result,
            free_unicode_string_buffer): Remove functions.
            (comment_buffer, comment_start, comment_at_start, comment_add,
            comment_line_end): Use mixed_string_buffer API.
            xgettext: Change the C# extractor to make use of mixed_string_buffer.
            (init_string_buffer, string_buffer_append_unicode_grow,
            string_buffer_append_unicode, string_buffer_result, free_string_buffer): Remove
            functions.
            (comment_buffer, comment_start, comment_at_start, comment_add,
            comment_line_end): Use mixed_string_buffer API.
            (phase6_get): Likewise.
            xgettext: Optimize away a memory allocation.
            stack, not on the heap.
            mixed_string_buffer statically, not on the heap.
            mixed_string_buffer_done): Remove declarations.
            mixed_string_buffer_done): Remove functions.
            xgettext: Change the Java extractor to make use of mixed_string_buffer.
            (mixed_string_buffer_init, mixed_string_buffer_is_empty,
            mixed_string_buffer_destroy, mixed_string_buffer_result): New declarations.
            (mixed_string_buffer_init): New function.
            (mixed_string_buffer_alloc): Invoke it.
            (mixed_string_buffer_is_empty): New function, based on comment_at_start in
            x-java.c.
            (mixed_string_buffer_append_lone_surrogate): New function, based on
            string_buffer_append_lone_surrogate in x-java.c.
            (mixed_string_buffer_flush_utf16_surr, mixed_string_buffer_append_unicode): Use
            it.
            (mixed_string_buffer_destroy, mixed_string_buffer_result): New functions.
            (mixed_string_buffer_done): Invoke mixed_string_buffer_result.
            (struct string_buffer): Remove type.
            (init_string_buffer, string_buffer_append_byte,
            string_buffer_append_unicode_grow, string_buffer_append_unicode,
            string_buffer_append_lone_surrogate, string_buffer_flush_utf16_surr,
            string_buffer_flush_curr_buffer): Remove functions.
            (mixed_string_buffer_append): Renamed from string_buffer_append. Use
            mixed_string_buffer.
            (string_buffer_result, free_string_buffer): Remove functions.
            (comment_buffer, comment_start, comment_at_start, comment_add,
            comment_line_end): Use mixed_string_buffer API.
            (accumulate_escaped, phase5_get): Likewise.
            xgettext: Share some more code among extractors.
            (xgettext_SOURCES): Add xg-pos.c.
            (real_file_name, logical_file_name, line_number): Remove variables.
            xgettext: Split source code into smaller files.
            gettext-tools/src/xgettext.h.
            gettext-tools/src/xgettext.c.
            and xg-*.h.
            (add_all_comments, comment_tag, msgstr_prefix, msgstr_suffix,
            default_syntax_check, current_formatstring_parser1,
            current_formatstring_parser2, current_formatstring_parser3): New declarations.
            (xgettext_comment, xgettext_comment_reset, savable_comment_to_xgettext_comment,
            recognize_qt_formatstrings): New declarations.
            (substring_match): Remove obsolete declaration.
            Include <iconv.h>, rc-str-list.h, xg-encoding.h, xg-arglist-context.h,
            xg-message.h. Don't include xsize.h, po-xerror.h, unistr.h.
            (add_all_comments, comment_tag, msgstr_prefix, msgstr_suffix,
            default_syntax_check): Make global.
            (split_keywordspec, insert_keyword_callshape): Moved to xg-arglist-callshape.c.
            (null_context, passthrough_context, inherited_context,
            null_context_list_iterator, passthrough_context_circular_list,
            passthrough_context_list_iterator, flag_context_list_iterator,
            flag_context_list_iterator_advance, flag_context_list_table_lookup): Move to
            xg-arglist-context.c.
            (flag_context_list_table_insert): Move bulk of body to new function
            flag_context_list_table_add in xg-arglist-context.c.
            (xgettext_comment, xgettext_comment_reset, savable_comment_to_xgettext_comment):
            Make global.
            (current_formatstring_parser1, current_formatstring_parser2,
            current_formatstring_parser3): Make global.
            (non_ascii_error_message, from_current_source_encoding): Move to xg-encoding.c.
            (CONVERT_STRING, set_format_flags_from_context, warn_format_string,
            remember_a_message, remember_a_message_plural): Move to xg-message.c.
            (arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember,
            arglist_parser_remember_msgctxt, arglist_parser_decidedp, arglist_parser_done):
            Move to xg-arglist-parser.c.
            (mixed_string_buffer_alloc, mixed_string_buffer_append_to_curr_buffer,
            mixed_string_buffer_grow_utf8_buffer, mixed_string_buffer_append_to_utf8_buffer,
            mixed_string_buffer_flush_utf16_surr, mixed_string_buffer_flush_curr_buffer,
            mixed_string_buffer_append_char, mixed_string_buffer_append_unicode,
            mixed_string_buffer_done): Move to xg-mixed-string.c.
            (recognize_qt_formatstrings): New function.
            (xgettext_SOURCES): Add the new .c files.
            xgettext: Fix crash when parsing invalid \Uxxxxxxxx escape sequence.
            xgettext: Add support for C++11 raw string literals.
            xgettext: Add support for C11 string literals.
            xgettext: Vala: Improve parsing of escape sequences.
            Do recognize \$.
    2018-11-05  Bruno Haible  <bruno@clisp.org>
            xgettext: Fix result for concatenation of strings with escape sequences.
            Reported by Morten Welinder <mwelinder@gmail.com>
            in <https://lists.gnu.org/archive/html/bug-gettext/2015-12/msg00017.html>
            and <https://savannah.gnu.org/bugs/?46756>.
            Revert commits from
            2014-05-07 xgettext: Provide a way to interpret string literals lazily
            2014-05-07 c: Interpret string literals lazily
            2014-05-09 vala: Interpret string literals lazily
            2014-12-02 c: Support C++11 string literals
            and subsequent fixes of these.
            declaration.
            (enum literalstring_escape_type, struct literalstring_parser): Remove types.
            (struct partial_call): Update.
            (arglist_parser_remember_literal): Remove declaration.
            'literalstring_parser' field.
            (savable_comment_convert_encoding): Remove function.
            (current_literalstring_parser): Remove variable.
            (extract_from_file, arglist_parser_alloc, arglist_parser_clone): Update.
            (arglist_parser_remember_literal): Remove function.
            (arglist_parser_remember_msgctxt): Simplify accordingly.
            literalstring_parser.
            (phase7_getc, phase7_ungetc): Reinstantiate functions.
            (phase5_get): Simplify. Use phase7_getc.
            literalstring_parser.
            (phase7_getc, phase7_ungetc): Reinstantiate functions.
            (phase3_get): Simplify. Use phase7_getc.
            (extract_balanced): Simplify.
    2018-11-05  Bruno Haible  <bruno@clisp.org>
            (EXTRA_DIST): Add xg-c-24.c, xg-vala-2.vala.
            expected result for backslash-NUL.
    2018-11-04  Bruno Haible  <bruno@clisp.org>
            Reported by Morten Welinder <mwelinder@gmail.com>
            in <https://lists.gnu.org/archive/html/bug-gettext/2015-12/msg00017.html>
            and <https://savannah.gnu.org/bugs/?46756>.
    2018-11-04  Bruno Haible  <bruno@clisp.org>
            xgettext: JavaScript: Fix a memory leak.
            token_type_keyword.
    2018-10-28  Bruno Haible  <bruno@clisp.org>
            Verify the exit code of the xgettext invocation.
    2018-10-25  Bruno Haible  <bruno@clisp.org>
            po, examples: Change .po -> .gmo rules to consider the newest changes to the POT file.
            Reported by Claude Paroz <claude@2xlibre.net>
            in <https://savannah.gnu.org/bugs/?50910>.
            first in $PATH.
            (MSGMERGE_FOR_MSGFMT_OPTION): New variable.
            (.po.gmo): Depend on the POT file. Use msgmerge on the fly, to take into
            account the most recent POT file changes.
            update-properties, update-classes targets.
            (MSGMERGE_FOR_MSGFMT_OPTION): New variable.
            ($(STRINGSFILES)): Depend on the POT file. Use msgmerge on the fly, to take
            into account the most recent POT file changes.
    2018-10-25  Bruno Haible  <bruno@clisp.org>
            msgmerge: New option --for-msgfmt.
            (long_options): Add option --for-msgfmt.
            (main): Handle option --for-msgfmt.
            (usage): Document option --for-msgfmt.
            (match_domain): When --for-msgfmt is given, omit untranslated and fuzzy messages
            from the result.
            (merge): When --for-msgfmt is given, don't add obsolete messages to the result.
            Add ability to write PO files without translator comment lines.
            (message_print_style_comment): New function.
            (message_print_comment): Output nothing if print_comment is false.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            Improve reliability of 'make dist'.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            po, examples: Put stamp-po in the source directory.
            Talk about "version control system", not CVS.
            stamp-po file does not exist in the build dir, except when using the older
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            po: Make "make maintainer-clean" erase the .pot file.
            Rationale:
            <https://www.gnu.org/prep/standards/html_node/Standard-Targets.html>
            <https://www.gnu.org/software/automake/manual/html_node/Clean.html>
            the .pot file.
            func_check_maintainerclean_vpath): Verify the .pot file is removed after
            infrastructure.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            po, examples: Use case-insensitive search for "GNU <PACKAGE_NAME>".
            Reported by Akim Demaille <akim@lrde.epita.fr> in
            <https://lists.gnu.org/archive/html/bug-gettext/2018-10/msg00020.html>.
            case-insensitive search for "GNU <PACKAGE_NAME>".
            Likewise.
            ($(DOMAIN).pot-update): Likewise.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            (.SUFFIXES): Remove .mo.
            (.po.mo): Remove rule.
            (distclean): Don't remove *.mo files.
            (.po.mo): Remove rule.
            (DISTCLEANFILES): Remove *.mo.
            Remove .mo.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            Remove outdated DJGPP build infrastructure.
            Approved by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
            * djgpp: Remove directory.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Add support for msgmerge --previous.
            option --previous when the msgmerge program supports it.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Support reading header comments from file.
            from today.
            Replace header entry with the content of $(DOMAIN).pot-header, if exists.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Make it possible to pass custom options to msginit.
            This mirrors the Makevars change from 2014-10-08.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Add an option to claim the package as GNU/non-GNU.
            Reported by David Shea at <https://savannah.gnu.org/bugs/?40520>.
            ($(DOMAIN).pot-update): Don't search for "GNU packagename" if $(PACKAGE_GNU) is
            set.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Upgrade to newest Makevars.
            PO_DEPENDS_ON_POT, DIST_DEPENDS_ON_UPDATE_PO): New variables.
            version 0.19.8.
            files.
            func_check_maintainerclean_vpath): Allow left-over .po~ files.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Avoid grepping through monster files.
            Reported by Jim Meyering <jim@meyering.net>.
            GNU find is available, avoid grepping through monster files.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            examples: Don't create unnecessary installation directories.
            Reported by Serge Pavlovsky <pal666@gmail.com>.
            installdirs-local-yes): Remove unnecessary MKDIR_P invocations.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            po: Make the insertion of the .pot-header file more robust.
            This improves on the 2015-09-01 patch.
            command fails.
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            po: When doing msgmerge --version, use the correct msgmerge program.
            This reverts the patch from
            <https://lists.gnu.org/archive/html/bug-gettext/2015-06/msg00000.html>.
            Rationale:
            <https://lists.gnu.org/archive/html/bug-gettext/2018-10/msg00000.html>.
            not $(MSGMERGE).
    2018-10-24  Bruno Haible  <bruno@clisp.org>
            po: Make $(POFILES) target more robust.
            It was introduced on 2014-05-01.
            PO file does not yet exist. Fail if creation of the POT file fails.
    2018-10-23  Bruno Haible  <bruno@clisp.org>
            Update list of files to check with gnulib.
            intl: Improve support for per-thread locales on Solaris 11.4.
            Handle HAVE_SOLARIS114_LOCALES through Solaris specific code.
            localename-table.h.
            gettext-runtime/m4/intlsolaris.m4.
            (gt_INTL_THREAD_LOCALE_NAME): Renamed from gt_INTL_SOLARIS. Define
            HAVE_SOLARIS114_LOCALES instead of HAVE_NAMELESS_LOCALES.
            HAVE_NAMELESS_LOCALES.
            (gt_INTL_SUBDIR_CORE): Don't invoke gt_INTL_SOLARIS. Don't set
            HAVE_NAMELESS_LOCALES here.
            intlsolaris.m4.
            intlsolaris.m4.
            intlsolaris.m4.
            intlsolaris.m4.
            * PACKAGING: List intl-thread-locale.m4, not intlsolaris.m4.
            Update to newest gnulib.
            intl: Fix support for per-thread locales on Solaris 11.4.
            gettext-runtime/intl/localename-table.h.
            localename-table.h.
            (localename-table.h): New target.
            (localename.$lo, localename-table.$lo): Update dependencies.
            (mostlyclean): Remove localename-table.h.
    2018-10-23  Daiki Ueno  <ueno@gnu.org>
            xgettext: Fix compiler warning
            implicit argument.  Reported in:
            <https://savannah.gnu.org/bugs/?48404>.
    2018-10-23  Bruno Haible  <bruno@clisp.org>
            Update after gnulib changed.
            * configure.ac: Require Autoconf >= 2.63.
            Update from gnulib: Assume Autoconf >= 2.63.
            AC_USE_SYSTEM_EXTENSIONS exists.
            Autoconf < 2.61.
            Update from gnulib: Assume Automake >= 1.11.
            Eliminate uses of 'eval'.
            Update from gnulib: Make better use of Autoconf.
    2018-10-23  Bruno Haible  <bruno@clisp.org>
            intl: Add support for per-thread locales on Solaris 11.4.
            Relies on the recent changes to the 'localename' module in gnulib.
            overriding declarations.
            (SOURCES): Add localename-table.c.
            (OBJECTS): Add localename-table.$lo.
            (localename-table.lo): New target.
            (libgnuintl.h, libintl.h): Substitute also HAVE_NAMELESS_LOCALES.
            Instead, invoke gt_INTL_SOLARIS. Set HAVE_NAMELESS_LOCALES.
            gnulib.
            * PACKAGING: Add intlsolaris.m4 to the list of installed files.
    2018-10-23  Bruno Haible  <bruno@clisp.org>
            Update to newest gnulib.
            examples: Fix another build failure.
            hello.rsj.
    2018-10-21  Bruno Haible  <bruno@clisp.org>
            system's <libintl.h>.
            system's <libintl.h>.
            the system's <libintl.h> and setenv instead of xsetenv, and no fake setlocale.
            $LOCALE_FR and $LOCALE_FR_UTF8.
            and fa_IR.UTF-8.
            Update comments.
            Don't limit to fixed set of platforms.
            Don't limit to fixed set of platforms.
            Update PACKAGING documentation.
            * PACKAGING: Remove mention of charset.alias (dropped on 2018-05-19).
            Mention that libintl does not get installed on Solaris 11.
            not the gettext-runtime/src source dir, to PATH.
    2018-10-20  Bruno Haible  <bruno@clisp.org>
            Fix 'make dist' (recent regression).
            hello-pascal/hello.rst.
    2018-10-19  Bruno Haible  <bruno@clisp.org>
            examples: Modernize configure.ac.
            AM_INIT_AUTOMAKE syntax. Require automake >= 1.11.
            examples: Add a script for checking against mistakes.
            * Admin/release-steps: Mention check-examples.
            examples: hello-pascal: Fix 'make distcheck'.
            hello.rsj into $(srcdir) only if the new contents differs from the old contents.
            examples: hello-java*: Fix 'make distcheck'.
            the new .properties files in the build dir and move them to $(srcdir) only if
            the new contents differs from the old contents.
            (update-classes): Likewise, also for .class files.
    2018-10-18  Bruno Haible  <bruno@clisp.org>
            examples: hello-csharp*: Improve 'make maintainer-clean'.
            Don't list the $(RESOURCESDLLFILES) here.
            (maintainer-clean-local): Instead, remove them and their parent directories
            here.
            examples: hello-php: Fix runtime error.
            the return value of the printf function.
            examples: hello-tcl*: Fix runtime error.
            absolute file name without variable references.
            examples: hello-clisp: Fix runtime error with clisp versions >= 2.34.
            PROCESS-ID, not PROGRAM-ID.
            examples: Fix 'make dist' failures in VPATH builds.
            'stamp-po' after having done target 'update-po'.
            examples: hello-pascal: Fix 'make dist' failure in VPATH builds.
            in $(srcdir), not in the build dir.
            examples: hello-pascal: Fix 'make dist'.
            file.
            examples: hello-java*: Fix "make dist".
            and CLASSFILES to contain files in $(srcdir), not in $(top_srcdir).
            from the po/ directory.
            Add the .properties and the .class files.
            (EXTRA_DIST): Add the .properties files.
            (update-properties, update-classes): Generate the .properties and .class files
            in the po/ directory, not in the top-level directory.
            the po/ directory, not in the top-level directory.
            examples: Fix 'make dist'.
            that are brought in by 'autopoint'.
            examples: Fix 'make' failures in VPATH builds.
            MAINTAINERCLEANFILES): Remove variables.
            (hello.jar): Use two jar commands, to combine .class files from the build dir
            with .properties files from the source dir.
            update-classes): Reference the .pot file in the source dir, not in the build
            dir.
            (echo-catalogs): Include the fallback catalog.
            prefix.
            (hello$(EXEEXT)): Use -o option to specify where the object file and the
            executable file shall be created.
    2018-10-17  Bruno Haible  <bruno@clisp.org>
            examples: hello-csharp-forms: Fix 'make clean'.
            hello.net.exe.mdb.
            examples: hello-csharp: Fix 'make clean'.
            hello.net.exe.mdb.
            examples: hello-objc-gnustep: Fix 'make distclean'.
            Remove the *.lproj directories.
            Remove remove-potcdate.sed.
            examples: hello-pascal: Fix 'make maintainer-clean'.
            variable.
            examples: hello-java: Fix 'make' failure.
            examples: hello-pascal: Update.
            ppc386 is not found.
            (SUBDIRS): Proceed in current directory before recursing into po/.
            replaces hello.rst.
            examples: Correctly clean up left-over files.
            correctly.
    2018-10-15  Bruno Haible  <bruno@clisp.org>
            examples: Remove left-over files.
            examples: Clean up autoconf left-over.
            directory.
            examples: hello-c++-widgets: Update build infrastructure.
            files.
            examples: Fix "make dist" error.
            before, not after, 'aclocal'.
            examples: Update developer documentation.
            examples: Improve developer documentation.
            examples: Improve developer documentation.
            * HACKING: Mention dependency needed for examples.
            Fix list of dependencies.
            * DEPENDENCIES: Add libacl.
    2018-10-15  Bruno Haible  <bruno@clisp.org>
            gettextize: Don't redirect stderr.
            Reported by ShellCheck via Pavel Raiskup <praiskup@redhat.com>.
    2018-10-15  Bruno Haible  <bruno@clisp.org>
            autopoint: Don't redirect stderr.
            Reported by ShellCheck via Pavel Raiskup <praiskup@redhat.com>.
    2018-10-15  Bruno Haible  <bruno@clisp.org>
            Fix "make dist" error (regression from 2018-10-09).
            hello-csharp-forms/BUGS.
    2018-10-09  Bruno Haible  <bruno@clisp.org>
            C# support: Remove pnet choice.
            * DEPENDENCIES: Don't mention pnet.
            * PACKAGING: Likewise.
            Update to newest gnulib.
    2018-10-06  Bruno Haible  <bruno@clisp.org>
            Fix a build failure on mingw with -O0.
            Reported at <https://savannah.gnu.org/bugs/?36443>.
            Fix suggested by Evgeny Grin <k2k@narod.ru>
            in <https://savannah.gnu.org/bugs/?36443#comment4>.
            * gnulib-local/build-aux/moopp (func_emit_source_h): Wrap the function
            declarations in extern "C" {}.
    2018-10-05  Bruno Haible  <bruno@clisp.org>
            msgfmt: Remove outdated warning.
            (struct msgfmt_catalog_reader_ty): Remove field 'has_nonfuzzy_header_entry'.
            (msgfmt_constructor, msgfmt_frob_new_message): Update.
    2018-10-05  Bruno Haible  <bruno@clisp.org>
            Fix conflict between different uses of GETTEXTLIBDIR.
            Rationale: The programs installed in $(prefix)/lib/gettext/ are at different
            locations before installation: some are in the source tree, some are in the
            build tree.
            GETTEXTLIBDIR_SRCDIR, not GETTEXTLIBDIR.
            GETTEXTLIBDIR_BUILDDIR.
    2018-10-05  Bruno Haible  <bruno@clisp.org>
            Fix conflict between different uses of GETTEXTDATADIR.
            GETTEXTDATADIR.
            directory with just one POT file.
            cldr-plurals: Improve error handling.
            Don't assume that the error was an out-of-memory.
            Remove unnecessary trailing comma in struct initializers.
            initializer.
    2018-10-05  Bruno Haible  <bruno@clisp.org>
            Explain how to concatenate POT files.
            Reported by Hadi Farah in
            <https://lists.gnu.org/archive/html/bug-gettext/2018-09/msg00026.html>.
    2018-10-05  Bruno Haible  <bruno@clisp.org>
            Include gnulib module 'mkdir', needed for older mingw versions.
            Reported by Maarten Bosmans at <https://savannah.gnu.org/bugs/?33379>.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add 'mkdir'.
    2018-10-05  Bruno Haible  <bruno@clisp.org>
            Fix link error when building with --enable-shared on mingw.
            * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO_OTHER): Add 'realloc-posix'.
            in argv[0].
            Update after gnulib changed.
            Update to newest gnulib.
    2018-09-19  Bruno Haible  <bruno@clisp.org>
            In this situation, argv[0] is absolute, even though the program was invoked
            as a file name without slashes (and thus found in $PATH).
    2018-09-18  Bruno Haible  <bruno@clisp.org>
            Fix link error when building with --disable-shared on 64-bit Cygwin.
            * gnulib-local/lib/execute.c.diff: Remove file.
            * gnulib-local/lib/spawn-pipe.c.diff: Remove file.
            Fix link error when building with --disable-shared on Cygwin and mingw.
            included libxml and building with --disable-shared.
            * gnulib-local/lib/libxml/libxml.h (LIBXML_STATIC): Define to 1, not empty.
    2018-09-17  Bruno Haible  <bruno@clisp.org>
            autogen.sh: Fix use of undefined function.
            * autogen.sh: Rewrite error message code.
    2018-09-17  Bruno Haible  <bruno@clisp.org>
            Fix link error on Cygwin.
            Patch partially by Michael Haubenwallner at
            c65c9e8ee0
            * gnulib-local/lib/libxml/xmlexports.in.h: Don't assume that _WIN32 is defined
            on Cygwin.
            (XMLPUBVAR): Define as 'extern', not as empty.
    2018-09-17  Bruno Haible  <bruno@clisp.org>
            Fix "Unescaped left brace in regex is deprecated here" warnings from Perl 5.26.
            Reported and patch by Jehan <jehan@girinstud.io> <jehan@zemarmot.net> at
            <https://savannah.gnu.org/bugs/?54088>.
    2018-09-17  Bruno Haible  <bruno@clisp.org>
            Update after gnulib changed.
            * gnulib-local/modules/fnmatch.diff: Update.
            (charset.alias): Remove target.
            (install-exec): Don't install charset.alias.
            (install-data): Don't chmod config.charset.
            (installdirs): Don't create $(libdir).
            (uninstall): Don't uninstall charset.alias.
            (mostlyclean): Don't remove charset.alias.
            ref-del.sin.
            Update to newest gnulib.
            not the gettext-runtime/src source dir, to PATH.
    2018-09-16  Bruno Haible  <bruno@clisp.org>
            libintl: Improve locale handling on macOS 10.12 or newer.
            logic also work in locales such as "zh-Hans-DE".
            (libintl_setlocale): Try harder to set a locale for categories LC_CTYPE and
            LC_MESSAGES.
    2018-09-16  Bruno Haible  <bruno@clisp.org>
            Don't assume that 'sed' supports alternation in regular expressions.
            See https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Limitations-of-Usual-Tools.html
    2018-09-16  Bruno Haible  <bruno@clisp.org>
            Update list of locale names with scripts on macOS.
            tables to match Mac OS X 10.13 and recent glibc.
            Fix link error in "make check" when building with --disable-shared on macOS.
            @INTL_MACOSX_LIBS@.
            Use newer macOS APIs when possible.
            CFLocaleCopyPreferredLanguages.
            CFLocaleCopyPreferredLanguages when it exists.
            Revisit macOS specific code.
            duplication. Fix comments about Mac OS X versions.
    2018-09-16  Bruno Haible  <bruno@clisp.org>
            libintl: Fix language preferences on macOS 10.12 or newer.
            Reported by Kristian Rietveld <kris@loopnest.org> at
            <https://savannah.gnu.org/bugs/?49560>.
            preferences elements of the form "ll-CC" in a reasonable way.
    2018-09-16  Bruno Haible  <bruno@clisp.org>
            setlocale: Improve support for locales not supported by libc.
            Reported by Dapeng Gao <peter@dpgao.cc> at
            <https://savannah.gnu.org/bugs/?54479>.
            (libintl_setlocale): Use a more error-tolerant strategy when the locale to be
            set is not supported by libc: Emit warnings instead of failing.
    2018-09-16  Bruno Haible  <bruno@clisp.org>
            Fix link error when linking with libintl.a on macOS.
            macOS.
            Reduce "make dist" time by 7 minutes.
            * configure.ac (AM_INIT_AUTOMAKE): Remove dist-xz and dist-lzip options.
            * Admin/release-steps: Mention how to create the tarballs with higher
            compression after "make dist".
    2018-09-15  Bruno Haible  <bruno@clisp.org>
            Add support for translation lookup with context in shell scripts.
            Reported by Markus Gothe <nietzsche@lysator.liu.se>
            in <https://savannah.gnu.org/bugs/?49899>.
            (main): Handle option -c/--context.
            (usage): Document option -c/--context. Split usage message.
            (main): Handle option -c/--context.
            (usage): Document option -c/--context. Split usage message.
            functions.
            field.
            (arglist_parser_remember_msgctxt): New declaration.
            Update accordingly.
            (arglist_parser_remember_msgctxt): New function.
            eval_npgettext.
            (init_flag_table_sh): Set flags for eval_pgettext, eval_npgettext.
            (substring_of_word): New function.
            (read_command): Recognize and handle -c/--context argument of 'gettext' and
            'ngettext'.
            Mention the new shell functions.
            (eval_pgettext Invocation, eval_npgettext Invocation): New subsubsections.
            eval_npgettext.
    2018-08-12  Bruno Haible  <bruno@clisp.org>
            gettext-runtime/intl/setlocale.c: Add fixes from gnulib.
            2018-08-11  Bruno Haible  <bruno@clisp.org>
                    setlocale: Trivial simplification.
                    * lib/setlocale.c (setlocale_unixlike): Remove redundant #if.
            2017-04-21  Bruno Haible  <bruno@clisp.org>
                    * setlocale.c (setlocale_unixlike): Accept "POSIX" as an alias for
                    "C".
            2016-03-22  Geert Janssens  <janssens-geert@telenet.be>
                    setlocale: add "sv" to Windows language table
                    * setlocale.c (language_table) [W32]: Add "sv".
                    Reported in <https://savannah.gnu.org/bugs/?44588>.
            2012-01-04  Bruno Haible  <bruno@clisp.org>
                    Talk about "native Windows API", not "Win32".
                    * setlocale.c: Update comments to mention native Windows.
    2018-07-25  Bruno Haible  <bruno@clisp.org>
            Upgrade to newer help2man.
            Reported by Bernhard M. Wiedemann in <https://savannah.gnu.org/bugs/?54367>.
              $source ||= "$program $version";
              replaced by
              $source ||= "$package $version";
    2018-07-25  Bruno Haible  <bruno@clisp.org>
            Make it possible to copy&paste strings from the HTML-formatted man pages.
            (gt_man2html): Use it.
            (gt_man2html): Use it.
    2018-07-03  Bruno Haible  <bruno@clisp.org>
            Enable the format_arg attribute also on clang on Mac OS X.
            Reported by Tom Tromey <tom@tromey.com>
            in <https://lists.gnu.org/archive/html/bug-gettext/2018-07/msg00000.html>.
            use attribute __format_arg__ if the compiler is based on clang >= 3.0.
    2018-07-03  Bruno Haible  <bruno@clisp.org>
            Make the format_arg attribute effective also in the case _INTL_REDIRECT_INLINE.
            Reported by Tom Tromey <tom@tromey.com>
            in <https://lists.gnu.org/archive/html/bug-gettext/2018-07/msg00000.html>.
            ngettext, dngettext, dcngettext): Add attribute __format_arg__ also to the
            'static inline' functions.
    2018-05-14  Bruno Haible  <bruno@clisp.org>
            Update .gitignore.
    2018-05-14  Bruno Haible  <bruno@clisp.org>
            xgettext: Improve support for specialized vector syntax in Scheme.
            Reported by Florent Angly <Florent.Angly@cslbehring.com>.
            uninitialized token. Support recent syntax for homogeneous vector types (SRFI-4)
            and byte vectors as well.
    2018-05-12  Bruno Haible  <bruno@clisp.org>
            libintl: Ensure the *printf function overrides are POSIX compatible.
            Reported by Eli Zaretskii <eliz@gnu.org>.
            (libintl_vfprintf, libintl_vsprintf, libintl_vsnprintf, libintl_vfwprintf,
            libintl_vswprintf): Use it.
    2018-05-05  Bruno Haible  <bruno@clisp.org>
            all: Replace more http and ftp URLs by https URLs.
            * autogen.sh: Use https: URLs.
            all: Use https: URLs in --version output.
            * gnulib-local/build-aux/moopp: Likewise.
            all: Replace http URLs by https URLs in copyright notices.
            Simplify code. Drop support for Borland C++ on Windows.
            'defined _WIN32 || defined __WIN32__' to just 'defined _WIN32'.
            * gnulib-local/lib/basename.c: Likewise.
            Update after gnulib changed.
            * gnulib-local/lib/execute.c.diff: Update.
            Update to newest gnulib.
    2018-03-24  Bruno Haible  <bruno@clisp.org>
            Add support for recent Java versions.
            Reported by Emmanuel Bourg <ebourg@apache.org>
            at <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892733>
            via Santiago Vila.
            source-version 1.5 and target-version 1.6 (such as Java 6 or newer, or
            GCJ 4.3 or newer).
            source-version 1.5 (such as Java 5 or newer, or GCJ 4.3 or newer).
    2018-03-24  Bruno Haible  <bruno@clisp.org>
            Comment.
            * .dir-locals.el: Add comment.
            Update after gnulib changed.
            * gnulib-local/lib/unistd.in.h.diff: Update.
            * gnulib-local/lib/regexec.c.diff: Remove file.
            Update to newest gnulib
    2018-03-15  Bruno Haible  <bruno@clisp.org>
            Reported by Amit Chaudhuri <amit.k.chaudhuri@gmail.com>.
            * HACKING: Required minimum Bison version is now 3.0, for cldr-plural.y.
    2018-01-27  Bruno Haible  <bruno@clisp.org>
            Rename some files.
            xgettext: Support '_' in number tokens in C++.
    2018-01-07  Bruno Haible  <bruno@clisp.org>
            xgettext: Support 'p'/'P' exponent markers in number tokens also in C.
            in C.
    2018-01-07  Bruno Haible  <bruno@clisp.org>
            It's a bug in gawk 4.2.0, reported at
            https://lists.gnu.org/archive/html/bug-gawk/2018-01/msg00026.html .
    2018-01-06  Bruno Haible  <bruno@clisp.org>
            Add support for new C++ preprocessing number tokens.
            Reported by Moritz Bunkus <moritz@bunkus.org>
            at <https://savannah.gnu.org/bugs/?50117>.
            preprocessing number tokens.
    2018-01-06  Bruno Haible  <bruno@clisp.org>
            Comment fix.
            (Internationalizable Data): Moved here from chapter "Programming Languages".
            xgettext: Add support for .properties files in UTF-8 encoding.
            * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add read-file, unistr/u8-check.
            about its encoding, then start parsing it.
    2018-01-05  Bruno Haible  <bruno@clisp.org>
            Add support for .rsj files.
            (extract_rsj): New declaration.
    2018-01-05  Bruno Haible  <bruno@clisp.org>
            Fix failure of lang-javascript on Ubuntu 16.04.
            pkg-config almost never works. It is best to never use it.
            the installed gjs is appropriate.
    2018-01-04  Bruno Haible  <bruno@clisp.org>
            Use locales with the customary names.
            On glibc systems, nowadays, the German and French locales are named
            'de_DE.UTF-8' and 'fr_FR.UTF-8', respectively. This change avoids the need
            to install similar locales with different names.
    2018-01-04  Bruno Haible  <bruno@clisp.org>
            lua-gettext package.
            subsection 'Ubuntu packages' for each.
    2018-01-03  Bruno Haible  <bruno@clisp.org>
            Fix msgunfmt-3 failure (regression from 2017-09-24).
            Update dependencies list.
            * HACKING: Add Lzip (needed for "make dist" since 2014-12-24).
    2018-01-03  Bruno Haible  <bruno@clisp.org>
            Fix "make dist" of modified git checkouts.
            This fixes error messages such as
            tar: gettext-0.19.8.1.74-72e49-dirty/gettext-runtime/intl-csharp/doc/GNU_Gettext_GettextResourceManager.html: file name is too long (max 99); not dumped
            * configure.ac: Pass option 'tar-ustar' to AM_INIT_AUTOMAKE.
            (am__tar): Use 'tar' option --format=ustar.
    2018-01-02  Bruno Haible  <bruno@clisp.org>
            Clarify required bison version.
            Reported by Roger Mc Murtrie <rogermc@grapevine.com.au>
            at <https://savannah.gnu.org/bugs/?47484>.
            * HACKING: Mention minimum version of bison.
    2018-01-02  Bruno Haible  <bruno@clisp.org>
            Avoid build failures caused by parallel make.
            Reported by Andrew Stormont <andyjstormont@gmail.com>
            at <https://savannah.gnu.org/bugs/?48412>.
    2018-01-02  Bruno Haible  <bruno@clisp.org>
            Fix 'ar' invocation when cross-compiling and in 64-bit mode on AIX.
            Reported by Benedikt Morbach <bmorbach@redhat.com>
            at <https://savannah.gnu.org/bugs/?43037>.
            available. Otherwise, use AC_PROG_RANLIB and set AR and ARFLAGS.
            autoconf.
            (ARFLAGS): New variable.
            (libintl.a, libgnuintl.a): Use it.
    2018-01-02  Bruno Haible  <bruno@clisp.org>
            Don't use -lc explicitly when linking with libtool.
            libtool has logic that determines whether it should add -lc, and this logic
            works fine on all modern platforms.
            Reported by Michael Forney <mforney@mforney.org>
            at <https://savannah.gnu.org/bugs/?40192>.
            LTLIBC.
    2017-10-15  Bruno Haible  <bruno@clisp.org>
            Clarify copyright and license of some files.
            Reported by Joël Krähemann at <https://savannah.gnu.org/bugs/?52227>.
    2017-09-30  Bruno Haible  <bruno@clisp.org>
            Fix an out-of-bounds memory read.
            Reported by Jakub Wilk <jwilk@jwilk.net>.
            * gnulib-local/lib/term-ostream.oo.c (term_ostream_create): Pass the correct
            length to memcmp().
    2017-09-24  Daiki Ueno  <ueno@gnu.org>
    2017-09-24  Bruno Haible  <bruno@clisp.org>
            Verify that system dependent strings in .mo files are NUL terminated.
            Reported by Jakub Wilk <jwilk@jwilk.net> in
            <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876498>.
            system-dependent strings has a last static segment that is not NUL terminated.
    2017-09-24  Bruno Haible  <bruno@clisp.org>
            libintl: Fix pointer use after free.
            deallocation outside libc as in libc (patch from 2013-09-06).
    2017-08-29  Bruno Haible  <bruno@clisp.org>
            AppData: Update documentation.
            Mention support for file extension .metainfo.xml.
    2017-08-29  Matthias Klumpp  <matthias@tenstral.net>
            Extend the AppData "language" to also support AppStream metainfo files.
            Fixes <https://savannah.gnu.org/bugs/?50414>,
            reported by Piotr Drąg <piotrdrag@gmail.com>.
            Recognize also suffix ".metainfo.xml".
    2017-08-29  Bruno Haible  <bruno@clisp.org>
            AppData: Simplify code.
            supported extensions are now defined in the *.loc files.
    2017-08-29  Matthias Klumpp  <matthias@tenstral.net>
            Translate <developer_name> elements in AppData files.
            Fixes <https://savannah.gnu.org/bugs/?50408>,
            reported by Piotr Drąg <piotrdrag@gmail.com>.
    2017-08-22  Bruno Haible  <bruno@clisp.org>
            <xlocale.h>.
    2017-08-22  Bruno Haible  <bruno@clisp.org>
            Avoid extraneous NUL bytes in .mo files.
            Reported by Jakub Wilk <jwilk@jwilk.net> via Santiago Vila <sanvila@unex.es>
            in <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872869>.
            message_list_delete_header_field): Adjust msgstr_len when modifying msgstr.
    2017-07-15  Bruno Haible  <bruno@clisp.org>
            Get rid of autom4te.cache directories, as far as possible.
            * autogen.sh: Remove autom4te.cache directories after running autoconf,
            autoheader, automake.
    2017-07-15  Bruno Haible  <bruno@clisp.org>
            Fix bug: gettextize does not add intlmacosx.m4 file.
            Reported by Eli Zaretskii via Gavin Smith in
            <http://lists.gnu.org/archive/html/bug-texinfo/2017-07/msg00026.html>.
            when --intl option is not given.
    2017-06-15  Bruno Haible  <bruno@clisp.org>
            gettext.h: Update theoretical condition for use of variable size arrays.
            Reported by Paul Eggert.
            * gnulib-local/lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Extend
            comment to include the theoretical condition for availability of variable size
            arrays, if we could trust the value of __STDC_VERSION__.
    2017-05-22  Bruno Haible  <bruno@clisp.org>
            Fix hyperlink to CLHS.
    2017-05-19  Bruno Haible  <bruno@clisp.org>
            Fix memory leaks.
            Found by Coverity.
            before returning in out-of-memory case.
            (read_alias_file): Invoke relocate2 instead of relocate. Free the allocated
            memory.
    2017-05-19  Bruno Haible  <bruno@clisp.org>
            Fix missing unlock.
            Found by Coverity.
            free allocated memory before returning.
    2017-05-19  Bruno Haible  <bruno@clisp.org>
            Update gettext-runtime files from gnulib.
              * localcharset.c (relocate2): Define fallback.
              (get_charset_aliases): Invoke relocate2 instead of relocate. Free the
              allocated memory.
              * localcharset.c (WINDOWS_NATIVE): Don't define on Cygwin.
              * localcharset.c (locale_charset) [WINDOWS_NATIVE]: Don't use the
              return value from setlocale if it would lead to a buffer overrun.
              * localename.c [__CYGWIN__]: Include <langinfo.h>, since this is
              where NL_LOCALE_NAME is defined.
              * localename.c (WINDOWS_NATIVE): Don't define on Cygwin.
              * localename.c (gl_locale_name_thread_unsafe): Add clause for
              Cygwin.
              * localename.c (struct hash_node): Use FLEXIBLE_ARRAY_MEMBER.
              * lock.c: On glibc systems without
              PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, use the fallback
              implementation of rwlocks.
              * lock.c [USE_POSIX_THREADS]
              (glthread_rwlock_init_for_glibc): New function.
              [USE_POSIX_THREADS] (glthread_rwlock_rdlock_multithreaded): Update
              comment.
              [USE_PTH_THREADS]: New implementation of rwlocks.
              [USE_WINDOWS_THREADS] (glthread_rwlock_rdlock_func): Prefer writers over
              readers.
              * lock.h (pthread_rwlockattr_setkind_np): Don't declare
              weak on non-glibc platforms.
              * lock.h: On glibc systems without
              PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, use the fallback
              implementation of rwlocks.
              * lock.h [USE_POSIX_THREADS_WEAK]: Declare also
              pthread_rwlockattr_init, pthread_rwlockattr_setkind_np,
              pthread_rwlockattr_destroy weak.
              HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation
              of rwlock initialization on glibc systems without
              HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation
              of rwlocks altogether on non-glibc systems without
              HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER.
              [USE_PTH_THREADS]: Use a different implementation of rwlocks altogether.
              * relocatable.c (relocate2): New function.
              * relocatable.c (relocate): Assume pathname is non-NULL. Use
              ISSLASH macro consistently. Avoid dangerous string concatenation idiom.
              * relocatable.h (relocate2): New declaration/macro.
              * vasnprintf.c (FALLTHROUGH): New macro.
              Use it whenever one switch case falls through into the next.
              * vasnprintf.c (USE_MSVC__SNPRINTF): New macro.
              Everywhere, use !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF instead
              of !HAVE_SNPRINTF_RETVAL_C99.
              * vasnprintf.c (VASNPRINTF): Move comment down past two cpp
              directives, so that it takes effect once again.  This is clearly
              not a proper change, and I will revert it once this bug is fixed:
              https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77817
              * vasnprintf.c (IF_LINT): Treat GCC_LINT like lint.
              * verify.h (verify) [!__GNUC__]:
              Use shorter albeit meaningless string to bypass silly compiler limits.
              * verify.h (assume): Treat GCC_LINT like lint.
            PTHREAD_IN_USE_DETECTION_HARD if configuring on Solaris 10 or newer.
            Reported by Peter Felecan at <https://savannah.gnu.org/bugs/?32087>.
              semaphores.
              (USE_NAMED_SEMAPHORE, USE_UNNAMED_SEMAPHORE): New macros.
              (atomic_int_semaphore): New macro.
              exist.
              (struct atomic_int, init_atomic_int, get_atomic_int_value,
              set_atomic_int_value) [USE_SEMAPHORE]: Define using a POSIX semaphore.
              Suggested by Torvald Riegel <triegel@redhat.com>.
    2017-05-18  Bruno Haible  <bruno@clisp.org>
            Update after gnulib changed.
            * gnulib-local/lib/fnmatch_loop.c.diff: Update.
            Update gnulib
    2017-05-16  Bruno Haible  <bruno@clisp.org>
            Update after gnulib changed.
            * gnulib-local/lib/getopt-core.h.diff: New file.
            * gnulib-local/lib/getopt.in.h.diff: Remove file.
            * gnulib-local/lib/unistd.in.h.diff: Update.
            * gnulib-local/modules/fnmatch.diff: Update.
            lib/getopt.in.h.diff.
            depend on 'hash' (because we use a different 'hash' module).
            * .gitignore: Update.
    2017-05-15  Bruno Haible  <bruno@clisp.org>
            Update gnulib
    2017-05-15  Bruno Haible  <bruno@clisp.org>
            Reported by Domingo Bernardo <domingopbernardo@gmail.com>.
            Bulgarian.
    2017-05-15  Bruno Haible  <bruno@clisp.org>
            Respect the configure option --localedir.
            Reported by Markus Gothe at https://savannah.gnu.org/bugs/index.php?49862 .
            The AC_SUBSTed variable @localedir@ is supported since Autoconf 2.60.
            by Markus Gothe <nietzsche@lysator.liu.se>.
    2017-05-04  Bruno Haible  <bruno@clisp.org>
            Remove the ability to compile the Java programs to native executables.
            This ability relied on GCJ, and GCJ was removed from GCC in version 7.1.
            * gnulib-local/modules/gcj: Remove file.
            * gnulib-local/m4/gcj.m4: Remove file.
            * gnulib-local/m4/java.m4 (gt_JAVA_CHOICE): Map value 'bytecode' to 'yes'.
            * autogen.sh (GNULIB_MODULES_TOOLS_OTHER): Remove 'gcj'.
            (GCJ, GCJFLAGS): Remove variables.
            (USEJAVA, USEJEXE): Assume BUILDJAVAEXE is false.
            (all-java-*, install-data-java-*, installdirs-java-*, uninstall-java-*): Remove
            targets that assume BUILDJAVAEXE = true. Rename remaining targets.
            (install-exec-java-*): Remove targets.
            * PACKAGING (Java support): Drop text about native executables.
            gcj.m4.
            AC_PROG_RANLIB. Remove option --enable-java-exe. Don't set BUILDJAVAEXE. Don't
            set USEJEXE.
            Remove variables.
            [USEJEXE]: Remove section.
    2017-04-22  Bruno Haible  <bruno@clisp.org>
            Avoid -Wundef warning in gettext.h.
    2017-04-19  Bruno Haible  <bruno@clisp.org>
            PO mode: Fix recognition of C and C++ modes.
            The variable 'mode-name' can contain a suffix, see
            https://www.gnu.org/software/emacs/manual/html_node/ccmode/Minor-Modes.html
            https://www.gnu.org/software/emacs/manual/html_node/emacs/Electric-C.html
            Therefore use 'major-mode' instead of 'mode-name'.
            not mode-name.
            (po-mode-version-string): Bump to 2.25.
            Reported at <https://savannah.gnu.org/bugs/index.php?50830>
            by Peter Hull <peterhull90@gmail.com>.
    2017-03-20  Bruno Haible  <bruno@clisp.org>
            Fix compilation error in <libintl.h> on Cygwin.
            Reported by Michael Haubenwallner at https://savannah.gnu.org/bugs/?50595 .
              locale_t type is not visible on Cygwin.
    2017-02-16  Bruno Haible  <bruno@clisp.org>
            Support for Automake targets install-{dvi,ps,pdf,html}.
            Reported by Eric Blake at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25690
            via Assaf Gordon.
            install-html): New empty targets.
    2017-01-10  Bruno Haible  <bruno@clisp.org>
            * DEPENDENCIES: Likewise. Point to OpenJDK instead of gcj. Point to Mono instead
            of pnet.
    2017-01-02  Bruno Haible  <bruno@clisp.org>
            (struct atomic_int): New type.
            (init_atomic_int, get_atomic_int_value, set_atomic_int_value): New
            functions.
            (lock_checker_done, rwlock_checker_done, reclock_checker_done): Define
            as 'struct atomic_int'.
            Reported by Eric Blake in
            https://www.redhat.com/archives/libvir-list/2012-March/msg00854.html
            and by Pádraig Brady in
            http://lists.gnu.org/archive/html/bug-gnulib/2016-12/msg00117.html.
    2016-12-15  John Darrington  <john@darrington.wattle.id.au>
            msgfmt: Remove POT-Creation-Date field from the header in the output.
            This helps reproducible builds.
            Reported at <https://savannah.gnu.org/bugs/?49654>.
            declaration.
            msgdomain_list_set_header_field.
            (message_list_delete_header_field): New function.
            (msgdomain_write_mo): Delete the POT-Creation-Date field.
            (msgdomain_write_java): Delete the POT-Creation-Date field.
            (msgdomain_write_csharp): Delete the POT-Creation-Date field.
            (msgdomain_write_csharp_resources): Delete the POT-Creation-Date field.
            (msgdomain_write_tcl): Delete the POT-Creation-Date field.
            (msgdomain_write_qt): Delete the POT-Creation-Date field.
            (msgdomain_write_desktop): Delete the POT-Creation-Date field.
            (msgdomain_write_xml): Delete the POT-Creation-Date field.
    2016-12-12  Bruno Haible  <bruno@clisp.org>
            Fix error handling in autogen.sh.
            * autogen.sh: Don't invoke automake if aclocal, autoconf, or autoheader failed.
    2016-12-11  Bruno Haible  <bruno@clisp.org>
            Simplify .gitignore.
            Remove files deleted by "make maintainer-clean" from version control.
            Merge all .gitignore files into a single .gitignore file.
            Update and organize the .gitignore files.
    2016-12-10  Bruno Haible  <bruno@clisp.org>
            Update to newest gnulib.
    2016-12-09  Bruno Haible  <bruno@clisp.org>
            Fix crash of xgettext with --its option.
            was initialized. Fixes bug introduced on 2016-05-16.
    2016-12-05  KO Myung-Hun  <komh78-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
            intl: Fix that /@unixroot prefix is not working on OS/2 kLIBC
            OS/2 kLIBC has a feature to rewrite some path components. For example,
            '/@unixroot' is replaced with a value of $UNIXROOT if it is.
            So prepending a drive letter to the path starting with '/' makes the
            path starting with '/@unixroot' to 'x:/@unixroot' which is unexpected.
            This will breaks the behavior of some programs depending on /@unixroot
            prefix.
            dirname if it is started with '/@unixroot'.
            if it is started with '/@unixroot'.
    2016-12-05  Bruno Haible  <bruno@clisp.org>
            Fix the last commit.
            * autogen.sh: Enable the code of the last commit. Force an update of
            build-aux/ylwrap.
    2016-12-04  Bruno Haible  <bruno@clisp.org>
            Always use the newest released copies of files brought in from Automake.
            * autogen.sh: Make sure to get new versions of files brought in by automake.
            the scope of a single xgettext invocation.
            when we want to check for an error message in English.
            Fix an error message when gettextize if run with option -n.
            location where it is installed, not in $srcdir.
            Tweak installation instructions for Windows.
    2016-11-25  Guido Flohr  <guido.flohr@cantanea.com>
            Perl supports pgettext() and similar functions
    2016-11-24  Guido Flohr  <guido.flohr@cantanea.com>
            xgettext-perl: detect question mark as operator
            After an explicit function call like "somefunc()" a question mark or
            slash cannot be regex delimiters.
    2016-11-23  Bruno Haible  <bruno@clisp.org>
            Update installation instructions for Windows.
            builds. Add instructions for the MS Visual C/C++ tool chain. Revamp instructions
            for Cygwin.
            Drop the nickname "woe32".
    2016-11-14  Daiki Ueno  <ueno@gnu.org>
            intl: Fix compilation on a system without alloca
            -> 'resolved_dirname'.  Reported by Egor Pugin in:
            http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00008.html
    2016-11-02  Daiki Ueno  <ueno@gnu.org>
            * autogen.sh: Require automake >= 1.13.
            * HACKING: Require automake >= 1.13, wget, and xz.
            Reported by Karl-P. Richter and Bruno Haible in:
            https://savannah.gnu.org/bugs/?49497
    2016-10-25  Bruno Haible  <bruno@clisp.org>
            Update iconv.m4 from Gnulib.
            Add comments about the implementation of 'autosprintf::operator='.
            comments. Rename parameter.
    2016-09-15  Daiki Ueno  <ueno@gnu.org>
            xgettext: Fix crash with *.po file input
            When xgettext was given two *.po files with the same msgid_plural, it
            crashed with double-free.  Problem reported by Davlet Panech in:
            http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00001.html
            calling do_callback_message, assuming that it takes ownership.
            msgid_plural after calling message_alloc.
    2016-08-27  Akinori MUSHA  <knu@idaemons.org>
            Add autoload magic comments
            Fix elisp package headers
    2016-08-09  Daiki Ueno  <ueno@gnu.org>
            gettextize: Don't add config.rpath to EXTRA_DIST
            The file is automatically included in the distribution by Automake,
            because of an AC_REQUIRE_AUX_FILE invocation.  Reported in:
            http://savannah.gnu.org/bugs/?48729
            added_extradist.
    2016-08-03  Daiki Ueno  <ueno@gnu.org>
            po-mode: Fix po-send-mail behaviour on Emacs 25
            region markers.
            Reported by Göran Uddeborg in:
            http://lists.gnu.org/archive/html/bug-gettext/2016-07/msg00027.html
    2016-07-12  Daiki Ueno  <ueno@gnu.org>
            Update after gnulib changed
            Update gnulib
    2016-07-12  Michele Locati  <michele@locati.it>
            Better description of GETTEXTCLDRDIR for msginit
            Let's explain better where the GETTEXTCLDRDIR should point to and where the
            CLDR data could be retrieved.
    2016-07-09  Stanislav Brabec  <sbrabec@suse.com>
            Add support for msgmerge --previous
            msgmerge --previous is a very useful feature that makes adjusting of
            translation much easier when small changes in the source code are done.
            msgmerge supports it for 10 years, but it is not used by most projects,
            Use msgmerge --previous as default on all systems with gettext >= 0.16.
    2016-06-28  Daiki Ueno  <ueno@gnu.org>
            gnulib-local: Fix the last change
            gnulib-local: Add more files to distribution
            Problem reported by Xen.
    2016-06-11  Daiki Ueno  <ueno@gnu.org>
            LTV_REVISION.
2020-02-04 12:20:52 -06:00
ead61e5a52 Merge #11807 'refactor: eliminate os_unix.c (almost)' 2020-02-02 23:13:27 -08:00
2af04e1997 lint 2020-02-02 22:14:40 -08:00
efa5af9043 refactor: rename mch_exit => os_exit
- No code changes
- Move it to main.c
2020-02-02 22:14:40 -08:00
d1d5f5103e refactor: move various things to os/shell.c
- No code changes
- Rename mch_expand_wildcards => os_expand_wildcards
2020-02-02 22:14:40 -08:00
983086f42e checkhealth: fix accidental change [ci skip] 2020-02-02 18:34:22 -08:00
4de6a648c0 Merge #11781 'checkhealth: $VIRTUAL_ENV validation' [ci skip] 2020-02-02 18:30:51 -08:00
c8abe931db checkhealth: avoid irrelevant virtualenv executables 2020-02-02 18:25:17 -08:00
3cd5a8d149 checkhealth: cleanup, brevity 2020-02-02 18:25:17 -08:00
370a33a85d checkhealth: bin directory is Scripts/ on Windows 2020-02-02 16:22:07 -08:00
1b20014972 checkhealth: print -> sys.stdout.write
Co-Authored-By: Peter Lithammer <peter.lithammer@gmail.com>
2020-02-02 16:21:55 -08:00
bf85cc0909 checkhealth: better $VIRTUAL_ENV validation #11781
fix #11753
close #11781

The virtualenv troubleshooting in the Python provider health checks is
supposed to help the user determine whether running Python from Neovim
(as in `system('python')` or `system(exepath('python'))`) will use the
correct executable when a virtualenv is active. Currently however, it
issues spurious warnings in legitimate setups, and conversely, fails to
warn about potentially problematic ones.

See https://github.com/neovim/neovim/issues/11753#issuecomment-578715584
for a more detailed analysis, but at a high level, this is due to two
things:

- the virtualenv check is part of the Python provider check defined in
`s:check_python`, which uses a roundabout and sometimes erroneous way of
determining the Python executable
- more generally, it shouldn't be part of the provider check at all,
because it's not really related to the Python *provider*, i.e. the
Python executable which can communicate with Neovim via `pynvim`, but to
the Python the user is editing source files for, which typically
shouldn't even have `pynvim` installed

This patch reimplements the virtualenv check and factors it out into its
own separate function, which is however still kept in
`health/provider.vim` alongside the rest of the Python troubleshooting,
since troubleshooting all Python-related stuff in one place is probably
a good idea in order to alleviate any potential confusion (e.g. users
who run only provider checks might be left wondering whether their
virtualenv Python was properly detected if the report only shows their
global Python as the provider used by Neovim).
2020-02-02 16:21:55 -08:00
3051342f96 Merge pull request #11801 from bfredl/incsubcrash
extmark: fix crash due to invalid column values in inccommand preview
2020-02-02 12:50:57 +01:00
459a362cc1 extmarks: fix crash due to invalid column values in inccommand preview
This used to use -1 and MAXCOL values. Make sure in range values are
used.
2020-02-02 10:50:48 +01:00
045e86474b Merge #11802 from janlazo/vim-8.2.0161
vim-patch:8.1.{140,1269},8.2.0161
2020-02-02 01:06:38 -08:00
5032bc8514 vim-patch:8.1.1269: MS-Windows GUI: multibyte chars with a 0x80 byte do not work
Problem:    MS-Windows GUI: multibyte chars with a 0x80 byte do not work when
            compiled with VIMDLL.
Solution:   Adjust the condition for fixing the input buffer. (Ken Takata,
            closes vim/vim#4330)
ed5ab2a959
2020-02-02 03:14:39 -05:00
d6625349f5 vim-patch:8.1.0140: recording into a register has focus events
Problem:    Recording into a register has focus events. (Michael Naumann)
Solution:   Don't record K_FOCUSGAINED and K_FOCUSLOST. (closes vim/vim#3143)
972bfddc6b
2020-02-01 22:15:21 -05:00
9c1a31927d vim-patch:8.2.0161: not recognizing .gv file as dot filetype
Problem:    Not recognizing .gv file as dot filetype.
Solution:   Add *.gv to dot pattern. (closes vim/vim#5544)
f8ddb25789
2020-02-01 18:06:34 -05:00
26199fedca vim-patch:8.2.0190: detect Kotlin files [ci skip] #11796
Problem:    Kotlin files are not recognized.
Solution:   Detect Kotlin files. (Alkeryn, closes vim/vim#5560)
ab067a21b9
2020-02-01 14:15:36 -08:00
14a8b3b98c doc: fix typos [ci skip] #11787 2020-01-30 22:56:34 -08:00
486fa21899 Merge #11795 from janlazo/vim-8.2.0014
vim-patch:8.2.{14,16}
2020-01-30 22:42:34 -08:00
ef11b800ac vim-patch:8.2.0016: test name used twice, option not restored properly
Problem:    Test name used twice, option not restored properly.
Solution:   Rename function, restore option with "&".
a48e78e11f
2020-01-30 21:30:40 -05:00
63983316bd vim-patch:8.2.0014: test69 and test95 are old style
Problem:    Test69 and test95 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes vim/vim#5365)
afc13bd827
2020-01-30 21:29:21 -05:00
2538e61513 Fix shift change callbacks reading bad cursor (#11782)
Sloppy code inherited from Vim caused user scripts to be able
to observe the cursor line in an invalid intermediary state,
due to Neovim change callbacks being unbuffered unlike Vim listeners.

Manifested in Vimscript executed from the callback possibly erroring
when `:call`:ing any function,
due to the implicit range `curwin->w_cursor.lnum,curwin->w_cursor.lnum`
failing validation.

Fixed by deferring the call to `changed_lines()` until after
`curwin->w_cursor.lnum` gets its correct value.
2020-01-30 07:34:34 +01:00
4ea5d7d31a Merge #11792 from janlazo/vim-8.1.0445
vim-patch:8.1.{445,446},8.2.{77,177}
2020-01-29 20:30:23 -08:00
b7447a909f vim-patch:8.2.0177: memory leak in get_tags()
Problem:    Memory leak in get_tags().
Solution:   Free matches when finding a pseudo-tag line. (Dominique Pelle,
            closes vim/vim#5553)
70b3e706b4
2020-01-29 22:18:58 -05:00
31f31b40a8 vim-patch:8.2.0077: settagstack() cannot truncate at current index
Problem:    settagstack() cannot truncate at current index.
Solution:   Add the "t" action. (Yegappan Lakshmanan, closes vim/vim#5417)
271fa08a35
2020-01-29 21:00:11 -05:00
f719b8898b vim-patch:8.1.0446: options test fails in the GUI
Problem:    Options test fails in the GUI.
Solution:   Don't try changing 'term' in the GUI.
4f88875725
2020-01-29 20:31:16 -05:00
ca08d5c191 vim-patch:8.1.0445: setting 'term' does not store location for termcap options
Problem:    Setting 'term' does not store location for termcap options.
Solution:   Set the script context for termcap options that are changed when
            'term' is set.
35bc7d6c52
2020-01-29 20:30:40 -05:00
406464fa6e CONTRIBUTING.md: mention "good first issue" label 2020-01-29 12:06:35 +01:00
0b49cb67f2 vim-patch:8.2.0171: fix use of uninitialized buffer #11786
Problem:    Coverity warning for using uninitialized buffer.
Solution:   Check the skip flag.
9a5e5a3e33
2020-01-28 23:02:11 -08:00
01ff9db633 Merge pull request #11780 from bfredl/winhlparse
options: winhighlight: fix incorrect string equality test
2020-01-28 22:23:35 +01:00
bfe84adb5a options: winhighlight: fix incorrect string equality test 2020-01-28 19:10:41 +01:00
e956ea7672 LSP: show diagnostic in qf/loclist #11777
instead of the content of the file at this line.

ref https://github.com/neovim/nvim-lsp/issues/69
2020-01-28 01:45:25 -08:00
b2062368e7 Merge #11775 'refactor: move session fns to ex_session.c'
obviates vim patch:
vim-patch:8.1.1766
2020-01-28 01:35:38 -08:00
4d0dfb8f75 build/MSVC: fix gettext multibyte issue #11774
Problem:  On Windows with the MSVC build, gettext-translation
          "Questa è già la" displays as "Questa <e8> gi<e0> la".
Solution: Fix iconv detection iconv when building gettext.
          So HAVE_ICONV is correctly defined when building nvim.

* fix gettext mb chars on MSVC
* fix libintl detection failure on MSVC

fixes #11749
2020-01-28 00:56:26 -08:00
a4b9417c78 lint 2020-01-28 00:22:14 -08:00
75e8562249 refactor: move session functions to ex_session.c 2020-01-28 00:22:14 -08:00
d3a9d75c04 Merge #11772 from janlazo/vim-8.2.0152
vim-patch:8.2.{152,158}
2020-01-26 19:54:26 -08:00
b5daee7b8f Merge #7836 'session: restore same :terminal buf split windows' 2020-01-26 19:03:43 -08:00
5ede2766c8 vim-patch:8.2.0158: triggering CompleteDone earlier is not backwards compatible
Problem:    Triggering CompleteDone earlier is not backwards compatible.
            (Daniel Hahler)
Solution:   Add CompleteDonePre instead.
3f169ce17e
2020-01-26 21:50:37 -05:00
e673a0df1a vim-patch:8.2.0152: restoring ctrl_x_mode is not needed
Problem:    Restoring ctrl_x_mode is not needed.
Solution:   Remove restoring the old value, it's changed again soon.
da812e282a
2020-01-26 21:17:54 -05:00
1c3ca4f18f mksession: always unix slashes "/" for filepaths 2020-01-26 17:30:47 -08:00
c4f4719ced cleanup/ex_docmd.c: remove most put_eol() calls 2020-01-26 17:13:00 -08:00
9048627806 lint 2020-01-26 17:13:00 -08:00
2070c082b5 cleanup/ex_docmd.c: remove most put_line() calls
- prefer fprintf() instead of put_line()
- PUTLINE_FAIL macro to avoid some boilerplate
2020-01-26 17:13:00 -08:00
2c1d12d0be mksession: always write LF "\n" line-endings
- remove `MKSESSION_NL`, `mksession_nl`
- deprecate the "unix" flag of 'sessionoptions'

There is no reason to choose CRLF or LF for session files. Instead just
always write LF.
2020-01-26 17:13:00 -08:00
598a1cd7c5 mksession: avoid ":file …" when restoring non-terminal bufs 2020-01-26 17:13:00 -08:00
1e103b3c12 mksession: simplify generated commands
Doing ":file …" immediately after is enough to fixup the :terminal
buffer name.

ref #5250
2020-01-26 17:13:00 -08:00
cf67f19ac2 mksession: restore same :term buf in split windows
Problem: When session-restore creates a terminal buffer with command
         like `:edit term://.//16450:/bin/bash`, the buffer gets
         a different name (depends on PID). Thus the later call to
         `bufexists('term://.//16450:/bin/bash)` will return false.
Solution: Force the buffer name with :file. This as least ensures
         the same buffer will show in multiple windows correctly, as
         expected when saving the session.  But it still has problems:
           1. the PID in the buffer name is bogus
           2. redundant :terminal buffers still hang around

fix #5250
2020-01-26 17:13:00 -08:00
88f133c30d Merge #11763 'spell: remove non-UTF8 dead code' 2020-01-26 16:42:00 -08:00
9dc3247850 Merge #11766 from janlazo/vim-8.1.1143
vim-patch:8.1.{1143,1144}
2020-01-26 15:53:23 -08:00
0e1dd0a502 spell: towupper(),towlower() are not called 2020-01-26 17:44:24 -05:00
ad272cd2d7 vim-patch:8.1.1144: too strict checking of the 'spellfile' option
Problem:    Too strict checking of the 'spellfile' option.
Solution:   Allow for a path.
862f1e17ea
2020-01-26 17:38:31 -05:00
08c5a874ab vim-patch:8.1.1143: may pass weird strings to file name expansion
Problem:    May pass weird strings to file name expansion.
Solution:   Check for matching characters.  Disallow control characters.
8f130eda47
2020-01-26 17:38:30 -05:00
d5322c8381 spellfile: set_spell_chartab() is dead code 2020-01-26 10:33:01 -05:00
eab052eca2 spell_defs: remove enc_utf8 redundant checks 2020-01-26 10:33:01 -05:00
86c1630a1b spell: remove enc_utf8 dead code 2020-01-26 10:33:01 -05:00
6c7a995c5f spell: zero-init structs to fix garbage ptrs 2020-01-26 10:33:00 -05:00
6f073ccbf4 Merge pull request #11755 from bfredl/qf_msg
screen: add missing redraws after a message
2020-01-26 15:38:04 +01:00
1dc5e5ae9b doc 2020-01-26 15:20:51 +01:00
20f5f44883 set -u before return
Follow up to a4d21f059.
2020-01-26 15:07:44 +01:00
f755370682 scripts/vim-patch.sh: add -m to usage
Ref: https://github.com/neovim/neovim/pull/11514#issuecomment-569476828
2020-01-26 14:51:14 +01:00
687fc527de screen: add missing redraws after a message 2020-01-26 13:45:20 +01:00
07a105f0cb terminal: trim CWD slash #11762
Trailing CWD slash in term:// buffer name breaks the BufReadCmd
handler.

Before:
    term://~///25232:/bin/bash
After:
    term://~//25232:/bin/bash

ref c6ff23d7a0
ref #11289
2020-01-26 02:13:37 -08:00
c6ff23d7a0 terminal: absolute CWD in term:// URI #11289
This makes it possible to restore the working directory of :terminal
buffers when reading those buffers from a session file.

Fixes #11288

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2020-01-26 00:24:42 -08:00
451af7f087 vim-patch:8.1.2171: mouse support not always available #11761
Problem:    Mouse support not always available.
Solution:   Enable mouse support also in tiny version.  Do not define
            FEAT_MOUSE_XTERM on MS-Windows (didn't really work).
a1cb1d1dce
2020-01-25 22:05:04 -08:00
cbcb50dcc9 shell: "..." instead of "[...]" #11760
0c1be45ea0 changed pulse logic to output "[...]" instead of nothing.
But that doesn't align with the "..." pulse which may follow it.

ref #11130
2020-01-25 16:49:53 -08:00
a75c289eb8 Merge #11750 from janlazo/vim-8.2.0146
vim-patch:8.1.2245,8.2.{146,147}
2020-01-25 16:21:09 -08:00
94ad6652f1 Remove enc_utf8,has_mbyte dead code 2020-01-25 18:09:17 -05:00
9d826700f7 vim-patch:8.1.2245: third character of 'listchars' tab shows in wrong place
Problem:    Third character of 'listchars' tab shows in wrong place when
            'breakindent' is set.
Solution:   Set c_final to NUL. (Naruhiko Nishino, closes vim/vim#5165)
2f7b7b1e12
2020-01-24 02:17:21 -05:00
e22d0cf12c vim-patch:8.2.0147: block Visual mode operators not correct when 'linebreak' set
Problem:    Block Visual mode operators not correct when 'linebreak' set.
Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes vim/vim#5524)
03c3bd9fd0
2020-01-24 02:02:40 -05:00
376fa27237 vim-patch:8.2.0146: wrong indent when 'showbreak' and 'breakindent' are set
Problem:    Wrong indent when 'showbreak' and 'breakindent' are set and
            'briopt' includes "sbr".
Solution:   Reset "need_showbreak" where needed. (Ken Takata, closes vim/vim#5523)
dfede9a70b
2020-01-23 19:31:11 -05:00
961c528afc ex_getln.c: wildmenu add cancel and apply ops 2020-01-23 12:12:42 +08:00
71ee46accf vim-patch:8.2.0141: no swift filetype detection (#11747)
Problem:    No swift filetype detection.
Solution:   Add swift, swiftgyb and sil. (Emir Sarı, closes vim/vim#5517)
0d76683e09
2020-01-23 02:21:05 +01:00
91bd1ddf3b Merge pull request #11740 from Billy4195/fix_jobstop
make jobstop() return 0 instead of throw error for already stopped job
2020-01-22 19:23:29 +01:00
041ec8997a Fix f_jobstop() failed loudly
The return value of jobstop()
@return 1 for valid job id
        0 for invalid id, including jobs have exited or stopped
2020-01-22 17:30:43 +08:00
e53e860759 vim-patch:8.1.0061: fix resetting, setting 'title' #11733
Problem:    Window title is wrong after resetting and setting 'title'.
Solution:   Move resetting the title into maketitle(). (Jason Franklin)
84a9308511
2020-01-21 23:47:32 -08:00
97dcc48c99 wildmode: fix wildmode=longest,full with pum #11690
With "wildmode=longest,full" + wildoptions=pum, wildmode should show
popupmenu after Tab-Tab, not the horizontal wildmenu.

Fixes #11622
2020-01-21 00:35:01 -08:00
99aec38259 Merge #11703 'CI: install perl provider' 2020-01-20 17:27:28 -08:00
b4e4ed844a ci/Appveyor: respect -NoTest param
Skips nodejs and Neovim::Ext.
2020-01-20 19:49:51 -05:00
7853b61786 provider/perl: test older versions 2020-01-20 19:44:00 -05:00
670a14a2a6 provider/perl: add latest version health check 2020-01-20 19:44:00 -05:00
da0cd5436b doc: provider-perl
Enable 'has("perl")' as an alias for 'g:loaded_perl_provider'.

TODO:
- +perl interface
2020-01-20 19:43:59 -05:00
ff9f70a6bf provider/perl: skip tests on Windows
It worked for MINGW builds at one point
but it keeps failing now because of perl dependencies
or nvim session issues for tests (named pipes as sockets on Windows?).
2020-01-20 19:43:59 -05:00
2063af3c94 provider/perl: add health check 2020-01-20 19:43:59 -05:00
ef3e610138 provider/perl: simplify detection 2020-01-20 19:43:59 -05:00
3420bd21e1 provider/perl: add basic tests 2020-01-20 19:43:59 -05:00
c25b5a1576 remote plugins: add support for perl hosts 2020-01-20 19:43:59 -05:00
4faf30de3e ci/Appveyor: install diffutils via scoop
scoop is a Windows package manager, similar to homebrew on OSX.
It is written on powershell, works in unelevated accounts,
is regularly maintained, and does not need mingw/msys2/cygwin
or WSL environments.
Sample use case is running (busybox) bash,
which can be installed via scoop via "scoop install busybox",
to use CI bash scripts in Appveyor.

Parts of scoop's directory can be cached to avoid downloads.
scoop modifies the registry for persistence environment variables
so scoop itself cannot be cached.
2020-01-20 19:43:59 -05:00
40cc5822b1 ci: install perl provider 2020-01-20 19:43:58 -05:00
f245c0218a tabpage: "tabnext #" switches to previous tab #11734 2020-01-20 15:14:51 -08:00
ef379d4eaa Merge pull request #11742 from bfredl/shedbike
shed biking: it's always extmarks, never marks extended
2020-01-20 20:41:17 +01:00
48a869dc6d shed biking: it's always extmarks, never marks extended 2020-01-20 19:36:35 +01:00
4d4035400e Merge pull request #11715 from teto/fix_fillchar
[RDY] fillchars: fix display on closed fold
2020-01-20 18:39:17 +01:00
270cd623ef Merge #11735 ':tabs : show # for previous tabpage' 2020-01-19 22:25:53 -08:00
8e385eb46a tabpage: :tabs indicates previous tabpage's curwin 2020-01-19 14:30:12 -08:00
198d94da0b Merge #11737 from janlazo/vim-8.1.2421
vim-patch:8.1.{2031,2421}
2020-01-19 13:28:50 -08:00
75c2c4e1b4 Merge pull request #11736 from bfredl/tenc
restore old 'termencoding' behavior
2020-01-19 20:11:19 +01:00
b3974e4437 restore old 'termencoding' behavior
Partially reverts #11647. Replaces #11662

The old implementation was removed without clear motivation. The "term option"
hackaround added in its place is neither shorter nor simpler.

The new behavior breaks even init.vim that expliticly check against it:

    if exists('&termencoding')
      set termencoding=utf-8
    endif

There was nothing wrong with the 0.4.x behavior. Empty &tenc has
indicated that the &enc value should be used for all the history of
Nvim. Ignoring setting the option is the expected behavior for Vim
versions that does not support the option (and Nvim is such a version)

'tenc' was also irrelevant to the Test_unicode python3 test.
The reason this has to be disabled is that neovim can't change
internal 'encoding'
2020-01-19 16:07:52 +01:00
f5cc5153c6 vim-patch:8.1.2421: test88 is old style
Problem:    Test88 is old style.
Solution:   Turn into a new style test. (Yegappan Lakshmanan, closes vim/vim#5347)
213ed008bb

'test_conceal.vim' requires +conceal and +terminal so it is N/A.
2020-01-19 10:06:19 -05:00
4c152be726 fixup! fixup! vim-patch.sh: list related missing Vim patches [ci skip] #11514 2020-01-19 10:05:23 -05:00
58033e15d5 vim-patch:8.1.2031: cursor position wrong when resizing and using conceal
Problem:    Cursor position wrong when resizing and using conceal.
Solution:   Set the flags that the cursor position is valid when setting the
            row and column during redrawing. (closes vim/vim#4931)
5babc6e858
2020-01-19 09:47:57 -05:00
acaf5d233b Merge #11331 'WinClosed autocmd' 2020-01-18 22:08:49 -08:00
b648b38bb1 doc: autocmd.txt 2020-01-18 21:32:14 -08:00
156c25e498 WinClosed: sort auevents.lua; improve tests
- test: reduce verbosity, condense redundancy, improve readability
- auevents.lua: keep events sorted by name. ref afd1d412fa
2020-01-18 21:32:14 -08:00
2b8e66c6ce autocmd: WinClosed exposes window id as <afile> 2020-01-18 17:06:03 -08:00
757aad92e8 autocmd: add WinClosed event
- only fire once, just before freeing mem
- trigger when on a different buffer
- avoid recursive calls in another tab
2020-01-18 17:06:03 -08:00
fb8b0503ba Merge #11707 from janlazo/vim-8.1.1434
vim-patch:8.1.{716,1139},8.2.{112,120,123}
2020-01-18 16:12:16 -08:00
ad35cbca76 vim-patch:8.2.0123: complete_info() does not work when CompleteDone is triggered
Problem:    complete_info() does not work when CompleteDone is triggered.
Solution:   Trigger CompleteDone before clearing the info.
17e04781f2
2020-01-17 23:46:00 -05:00
3d0c3148fb vim-patch:8.1.1139: no test for what is fixed in patch 8.1.0716
Problem:    No test for what is fixed in patch 8.1.0716.
Solution:   Add a test. (Yasuhiro Matsumoto, closes vim/vim#3797)
9845f36aa6
2020-01-17 23:18:25 -05:00
9a9bb9186a vim-patch:8.1.0716: get warning message when 'completefunc' returns nothing
Problem:    Get warning message when 'completefunc' returns nothing.
Solution:   Allow for returning v:none to suppress the warning message.
            (Yasuhiro Matsumoto, closes vim/vim#3789)
cee9bc2e3d
2020-01-17 23:09:32 -05:00
a7aa1fc87d spell: spell_soundfold_sal() is dead code 2020-01-17 19:06:51 -05:00
1042338c00 clang/'Logic error': zero-init struct 2020-01-17 19:06:50 -05:00
d811fab0ad vim-patch:8.2.0120: virtcol() does not check arguments to be valid
Problem:    virtcol() does not check arguments to be valid, which may lead to
            a crash.
Solution:   Check the column to be valid.  Do not decrement MAXCOL.
            (closes vim/vim#5480)
b3d33d8570
2020-01-17 19:06:50 -05:00
03da3697a4 vim-patch:8.2.0112: illegal memory access when using 'cindent'
Problem:    Illegal memory access when using 'cindent'.
Solution:   Check for NUL byte. (Dominique Pelle, closes vim/vim#5470)
02ad46394e
2020-01-17 19:06:50 -05:00
fd89ad7bfb Merge pull request #11390 from erw7/feature-conpty
win/Terminal: Change to use ConPTY, if available
2020-01-17 12:59:50 +01:00
1e4f290691 Remove termtype option 2020-01-17 11:36:28 +01:00
c86d5fa981 Change to replace stderr with conout 2020-01-17 11:36:28 +01:00
4e06594c53 Add missing include file 2020-01-17 11:36:28 +01:00
a5a3d7160d Change option name from termwintype to termtype 2020-01-17 11:36:28 +01:00
8f91d709b0 Rename from os_win_conpty.{c,h} to pty_conpty_win.{c,h} 2020-01-17 11:36:28 +01:00
2c8016c704 Add stdin, stdout replacement functions 2020-01-17 11:36:28 +01:00
60c7eabb2f Change enum to a name that follows naming convention 2020-01-17 11:36:28 +01:00
59ae38a919 Change to use TriState instead of bool
Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
2020-01-17 11:36:28 +01:00
b25e42f798 Fix function prototype 2020-01-17 11:36:28 +01:00
b4ff583277 Minor changes in reviewer's point 2020-01-17 11:36:28 +01:00
7aff0340e1 Move ConPTY resize to os_win_conpty.c 2020-01-17 11:36:28 +01:00
ed37d1081c Change union name from pty_object to object
Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
2020-01-17 11:36:28 +01:00
5355cee77d Change to use ConPTY, if available 2020-01-17 11:36:28 +01:00
8fe0635e73 Merge pull request #11723 from bfredl/nocleareol
messages: echo "line1\r\nline2" should not clear line1
2020-01-16 20:35:27 +01:00
b4a92aadd2 messages: echo "line1\r\nline2" should not clear line1 2020-01-16 19:35:45 +01:00
6e78b21623 Merge pull request #11563 from bfredl/mark_madness
extmarks: mark sanity/madness
2020-01-16 15:31:05 +01:00
ca1a00edd6 extmarks/bufhl: reimplement using new marktree data structure
Add new "splice" interface for tracking buffer changes at the byte
level. This will later be reused for byte-resolution buffer updates.
(Implementation has been started, but using undocumented "_on_bytes"
option now as interface hasn't been finalized).

Use this interface to improve many edge cases of extmark adjustment.
Changed tests indicate previously incorrect behavior. Adding tests for
more edge cases will be follow-up work (overlaps on_bytes tests)

Don't consider creation/deletion of marks an undoable event by itself.
This behavior was never documented, and imposes  complexity for little gain.

Add nvim__buf_add_decoration temporary API for direct access to the new
implementation. This should be refactored into a proper API for
decorations, probably involving a huge dict.

fixes #11598
2020-01-16 12:36:10 +01:00
8ba3354d74 api_set_error: include expression with "Failed to evaluate expression" (#11713) 2020-01-15 09:08:22 +01:00
f86acd213b version.c: update [ci skip] #11689
vim-patch:8.0.1789: BufWinEnter does not work well for a terminal window
vim-patch:8.2.0105: Vim license not easy to find on github
vim-patch:8.2.0106: printf formats are not exactly right
vim-patch:8.2.0107: hgignore is out of sync from gitignore
2020-01-14 23:59:48 -08:00
53473b3b71 fillchars: fix display on closed fold
The rollback of the last written symbol was not thorough, hence
confusing the code later on and causing a buggy display.

To reproduce, use `set fillchars+=foldopen:▾,foldsep:│` and close a
fold. Foldcolumn should display a glitch.
2020-01-14 22:51:13 +01:00
55677ddc46 Add new marktree data structure for storing marks
This is inspired by Atom's "marker index" data structure to efficiently
adjust marks to text insertions deletions, but uses a wide B-tree
(derived from kbtree) to keep the nesting level down.
2020-01-14 12:57:31 +01:00
3d1531aee5 API: include invalid buffer/window/tabpage in error message (#11712) 2020-01-14 09:21:10 +01:00
9231684986 doc [ci skip] #11656 2020-01-12 23:41:55 -08:00
dfb676fe0d edit.c: Ensure undo sync when emulating <Esc>x #11706
After PR #8226 an unmapped META key in insert mode behaves like
ESC-<key> (:help i_META).

The behaviour does not fully match, since if <Esc>-<key> is pressed
manually then since it were pressed manually `gotchars` would be called
on the second <key> after insert-mode had already been left.

This would mean that `may_sync_undo` (called from `gotchars`) would
call `u_sync(FALSE)` on the second key (since we would be in normal
mode).

This overall means that <Meta-[something]> behaves differently with
respect to undo than <Esc>[something] when the [something] makes a
change.

As an example, under `nvim -u NONE`:
ihello<M-.>u

leaves the buffer empty, while
ihello<Esc>.u

leaves the buffer with one instance of `hello`.

- Fix by calling u_sync() manually in the new clause under
  `normalchar:` in `insert_handle_key`.
- Update test in tui_spec.lua that accidentally relied on the old behaviour.
2020-01-12 17:09:39 -08:00
05ea3c1997 defaults: set fillchars "foldsep" to box line #11702
"│" U+2502 BOX DRAWINGS LIGHT VERTICAL

Fallback to old default | if 'ambiwidth' is set.
2020-01-11 16:36:11 -08:00
1cbe8d6d78 vim-patch:8.0.1593: :qall never exits active :terminal #11704
Problem:    :qall never exits with an active terminal window.
Solution:   Add a way to kill a job in a terminal window.
25cdd9c33b
2020-01-11 16:31:05 -08:00
462ee281b7 vim-patch:8.0.1769: refactor save/restore of viewstate #11701
Problem:    Repeated saving and restoring viewstate for 'incsearch'.
Solution:   Use a structure.
9b25af3620
2020-01-11 13:21:21 -08:00
a4d21f0592 vim-patch.sh: fix for bash 4.3 or older #11700 2020-01-11 12:09:54 -08:00
29b1a4761a tabpage: disallow go-to-previous in cmdline-win #11692
After cbc8d72fde when editing
the command in the command editing window (q:, q/, q?) it was possible
to switch to the previous tab.  Doing so put Nvim in a bad state.
Moreover, switching tabs via the other available mechanisms (gt, gT,
<C-W>gt, <C-W>gT) is not possible when in the command editing window.

Here, the behavior is prevented.  It is no longer possible to switch to
the previous tab when editing the command in the command editing window.
The solution is to share code between gt, gT, and g<Tab>.  Specifically,
goto_tabpage_lastused now calls through goto_tabpage rather than
directly calling goto_tabpage_tp.  Doing so works well because all the
validation enjoyed by gt and gT is present in goto_tabpage.
2020-01-09 07:31:16 -08:00
25afa10f92 Merge #11669 'LSP: differentiate diagnostic underline by severity' 2020-01-08 22:48:57 -08:00
0a1c6d9a37 LSP: highlight groups test, doc 2020-01-08 22:18:18 -08:00
b6276f5aee Merge #11691 from janlazo/vim-8.2.0099 2020-01-08 22:13:46 -08:00
8c8681d594 test: hoist buf_lines() 2020-01-08 09:41:41 -08:00
844cd9cef1 test: just say no to hyper-granularity
- Move plugin/lsp/* to plugin/*
- Merge lsp/util_spec.lua into lsp_spec.lua
2020-01-08 09:30:59 -08:00
e616ec4394 LSP: differentiate diagnostic underline by severity 2020-01-08 08:50:02 -08:00
831fa45ad8 API: nvim_get_hl_by_id: omit hl instead of returning -1 #11685
Problem: When Normal highlight group defines ctermfg/bg, but other
         highlight group lacks ctermfg/bg, nvim_get_hl_by_id(hl_id,
         v:false) returns -1 for the missing ctermfg/bg instead of just
         omitting it.
Solution: checking for -1 in hlattrs2dict()

fix #11680
2020-01-08 06:19:23 -08:00
a91ea02830 version.c: update [ci skip] #11636
vim-patch:8.0.0902: cannot specify directory or environment for a job
vim-patch:8.0.1127: Test_peek_and_get_char fails on 32 bit system
vim-patch:8.1.0661: clipboard regexp might be used recursively
vim-patch:8.1.0834: GUI may wait too long before dealing with messages
vim-patch:8.2.0040: timers test is still flaky on Travis for Mac
vim-patch:8.2.0053: windowsversion() does not always return the right value
vim-patch:8.2.0055: cannot use ":gui" in vimrc with VIMDLL enabled
vim-patch:8.2.0057: cannot build with small features
vim-patch:8.2.0059: compiler warnings for unused variables in small build
vim-patch:8.2.0060: message test only runs with one encoding
vim-patch:8.2.0065: Amiga and alikes: autoopen only used on Amiga OS4
vim-patch:8.2.0080: globals using INIT4() are not in the tags file
vim-patch:8.2.0081: MS-Windows also need the change to support INIT4()
vim-patch:8.2.0086: build error for small version
vim-patch:8.2.0094: MS-Windows: cannot build with Strawberry Perl 5.30
vim-patch:8.2.0100: macros for Ruby are too complicated
2020-01-07 22:38:10 -08:00
45759e44f9 Remove (void) hacks, Mark unused attrs 2020-01-08 01:08:55 -05:00
3d6cca5a9d vim-patch:8.2.0099: use of NULL pointer when out of memory
Problem:    Use of NULL pointer when out of memory.
Solution:   Check for NULL pointer. (Dominique Pelle, closes vim/vim#5449)
8b7aa2f9b2
2020-01-07 23:24:38 -05:00
e8d61005dc third-party: upgrade libvterm to v0.1.3 (#11678) 2020-01-07 20:12:56 +01:00
013436c997 ui_grid_resize: fix resize logic for floating window #11655 2020-01-06 22:03:15 -08:00
4a7d84ae60 man.vim: workaround for 'cscopetag' #11679
The old `:Man` implementation would take either the word under
the cursor, or the argument passed in, and load that as a man page.

Since we now use 'tagfunc' and look for all relevant man-pages, if
your system has several (i.e. same name, different sections), we return
several, giving the user an option.

This works for most tag commands except `:tjump`, which will
fail if there's multiple tags to choose from. This just happens to
be what the cscope code uses (it actually attempts to prompt the
user, but this fails).
2020-01-06 21:57:36 -08:00
83b0054b87 Merge #11674 'vim-patch:8.0.1786,8.1.{851,1308,1309,1579}' 2020-01-06 06:52:52 -08:00
83083dd47b vim-patch:8.1.1309: test for Normal highlight fails on MS-Windows GUI
Problem:    Test for Normal highlight fails on MS-Windows GUI.
Solution:   Skip the test for MS-Windows GUI.
6b528fa062
2020-01-06 00:18:02 -05:00
3c764aabb5 vim-patch:8.1.1308: the Normal highlight is not defined when compiled with GUI
Problem:    The Normal highlight is not defined when compiled with GUI.
Solution:   Always define Normal. (Christian Brabandt, closes vim/vim#4072)
f90b6e03a9
2020-01-06 00:18:02 -05:00
1aacab49ea vim-patch:8.1.1579: dict and list could be GC'ed while displaying error
Problem:    Dict and list could be GC'ed while displaying error in a timer.
            (Yasuhiro Matsumoto)
Solution:   Block garbage collection when executing a timer.  Add
            test_garbagecollect_soon(). Add "no_wait_return" to
            test_override(). (closes vim/vim#4571)
adc6714aac
2020-01-05 10:40:53 -05:00
3a3fb08602 vim-patch:8.1.0851: feedkeys() with "L" does not work properly
Problem:    feedkeys() with "L" does not work properly.
Solution:   Do not set typebuf_was_filled when using "L". (Ozaki Kiichi,
            closes vim/vim#3885)
8d4ce56a19
2020-01-05 10:35:49 -05:00
e7d49dc909 vim-patch:8.0.1786: no test for 'termwinkey'
Problem:    No test for 'termwinkey'.
Solution:   Add a test.  Make feedkeys() handle terminal_loop() returning
            before characters are consumed.
b2ac14c0b5
2020-01-05 10:35:49 -05:00
fa9b057d35 Merge #11670 from janlazo/vim-8.0.1817
vim-patch:8.0.1817,8.1.{840,842,844}
2020-01-04 15:11:56 -08:00
d139fb5cd0 vim-patch:8.1.0844: when timer fails test will hang forever
Problem:    When timer fails test will hang forever.
Solution:   Use reltime() to limit waiting time. (Ozaki Kiichi, closes vim/vim#3878)
50948e4ac2
2020-01-03 22:49:05 -05:00
25613fa65b vim-patch:8.1.0842: getchar_zero test fails on MS-Windows
Problem:    getchar_zero test fails on MS-Windows.
Solution:   Disable the test for now.
cb908a813c
2020-01-03 22:47:52 -05:00
a2554858df vim-patch:8.1.0840: getchar(0) never returns a character in the terminal
Problem:    getchar(0) never returns a character in the terminal.
Solution:   Call wait_func() at least once.
12dfc9eef1
2020-01-03 22:43:52 -05:00
4c4bcecc4a vim-patch:8.0.1817: a timer may change v:count unexpectedly
Problem:    A timer may change v:count unexpectedly.
Solution:   Save and restore v:count and similar variables when a timer
            callback is invoked. (closes vim/vim#2897)
b0f42ba60d
2020-01-03 20:15:32 -05:00
234232ff4e Merge #11648 from butwerenotthereyet/vim-8.1.0972 2020-01-03 06:56:47 -08:00
a7b6b37519 vim-patch:8.1.0974: cannot switch from terminal window to previous tabpage
Problem:    Cannot switch from terminal window to previous tabpage.
Solution:   Make CTRL-W gT move to previous tabpage.
882d02eeb5
2020-01-03 06:02:10 -08:00
42aa876488 vim-patch:8.1.0972: cannot switch from terminal window to next tabpage
Problem:    Cannot switch from terminal window to next tabpage.
Solution:   Make CTRL-W gt move to next tabpage.
72e83c1ae5
2020-01-03 06:01:47 -08:00
c241395b3d LSP: place hover window by vertical space #11657
Make the hover window position itself vertically wherever is the most
space available.
2020-01-03 04:39:25 -08:00
94cc8a20b4 vim-patch:8.2.0079: test still fails on MS-Windows #11663
Problem:    Python 3 unicode test still fails on MS-Windows.
Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.
7fc4785ea1
2020-01-03 04:13:45 -08:00
77b61cb0df option: restore termencoding (readonly) #11662
'termencoding' option was removed in abaabd1d03
but some plugins check its value.
2020-01-02 21:42:52 -08:00
0c436559df Merge pull request #11658 from bfredl/clipstderr
clipboard: do not close stderr together with stdout (fixup #11617)
2020-01-02 19:31:49 +01:00
6e3793bf11 clipboard: do not close stderr together with stdout (fixup #11617)
stderr is needed to get error messages in case of failure, and
job handler expects it to be open.
2020-01-02 19:27:55 +01:00
cbc8d72fde tabpage: track last-used tabpage #11626
In a multi-window scenario, it is possible to return focus to the last
accessed window via n_CTRL-W_p.  However, in the case of a multi-tab
scenario, there was previously no way to return focus to the last
accessed *tab*.  Here, that ability is added via n_g<tab>.

Additionally, the index of the previous tab is exposed via
tabpagenr('#'), mirroring the existing functionality of winnr('#').
2020-01-02 06:06:11 -08:00
2c62b2fc56 build.ps1: add "-NoTests" param #11654 2020-01-02 05:52:18 -08:00
dc6077535f API: fix crash on copy_object(kObjectTypeWindow) #11651
Closes #11646
2020-01-02 02:00:39 -08:00
67d7906652 clipboard: close stdout when copying via xclip #11617
test_registers.vim can fail even if a clipboard manager is running.
If a clipboard manager is not running, this test always fails with xclip.
Use xsel as a workaround.
https://github.com/astrand/xclip/issues/20 suggests closing stdout
when sending input via stdin.

Environment
- Ubuntu Xenial
- Vim 7.4 (any app with broken clipboard code will do)
- Neovim nightly

Steps to reproduce:
0. Start the clipboard manager.
1. Open a file in Vim on Linux.
   Vim should have +clipboard enabled.
   'set clipboard='
2. Yank some text to the clipboard register.
3. Quit Vim.
4. Run 'cd /path/to/neovim/repo/'
5. Run 'make oldtest'.
   Do not run any individual tests.
   They likely pass with or without this fix.

Before fix: test_registers.vim can fail.
After fix: test_registers.vim always passes.

Close https://github.com/neovim/neovim/issues/7958

https://wiki.ubuntu.com/ClipboardPersistence#The_state_of_things
2020-01-02 00:41:36 -08:00
3917064504 doc: mention *_host_prog ordering sensitivity #11639
Any uses of `has("python3")` will cause the `g:loaded_python3_provider`
variable to be set if the system path does not have a Python with Neovim
support. Subsequent assignments to `g:python3_host_program` will
therefore not cause the provider to be activated.
2020-01-02 00:38:49 -08:00
8645d480bd Merge pull request #11470 from bfredl/emptytable
metatable for empty dict value
2020-01-01 21:03:08 +01:00
a495d49012 Merge #11647 from janlazo/vim-8.2.0070
vim-patch:8.2.{70,74,75,76}
2020-01-01 11:09:01 -08:00
ea4127e9a7 lua: metatable for empty dict value 2020-01-01 19:26:29 +01:00
7dca8383db vim-patch:8.2.0076: Python 3 unicode test fails on MS-Windows
Problem:    Python 3 unicode test fails on MS-Windows.
Solution:   Do not set 'encoding' to "debug" on MS-Windows.
955f4e6f36
2020-01-01 13:13:44 -05:00
a11c3b7920 vim-patch:8.2.0075: Python 3 unicode test still sometimes fails
Problem:    Python 3 unicode test still sometimes fails.
Solution:   Skip the test when 'termencoding' is not empty.
2466aea508
2020-01-01 13:13:29 -05:00
abaabd1d03 vim-patch:8.2.0074: Python 3 unicode test someitmes fails
Problem:    Python 3 unicode test someitmes fails.
Solution:   Make 'termencoding' empty.  Correct number of error message.
4b7cdca230
2020-01-01 13:11:54 -05:00
5f0d5ec985 vim-patch:8.2.0070: crash when using Python 3 with "debug" encoding
Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pelle)
Solution:   Use "euc-jp" whenever enc_dbcs is set.
d518f952f0
2020-01-01 10:30:36 -05:00
a251b588ac Merge #11642 'CI: test powershell core' 2020-01-01 06:36:10 -08:00
070bd3ea23 Merge #11604 "LSP: shrink API, improve docs" 2020-01-01 06:30:29 -08:00
99eca04835 Merge #11645 from janlazo/vim-8.1.1346
vim-patch:8.1.1346,8.2.0068
2020-01-01 06:03:48 -08:00
dec165b268 PVS/V618: fix emsgf format specifier #11643 2020-01-01 05:59:37 -08:00
0f47870d1b vim-patch:8.2.0068: crash when using Python 3 with "utf32" encoding
Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pelle)
Solution:   Use "utf-8" whenever enc_utf8 is set. (closes vim/vim#5423)
556684ff71
2019-12-31 23:24:14 -05:00
0301de758b vim-patch:8.1.1346: error for Python exception does not show useful info
Problem:    Error for Python exception does not show useful info.
Solution:   Show the last line instead of the first one. (Ben Jackson,
            closes vim/vim#4381)
7f3a28490a
2019-12-31 23:21:25 -05:00
0da7774cf0 doc: powershell is 'pwsh' on non-Windows OS 2019-12-31 22:29:40 -05:00
d53456c68f ci: set nodejs version for tests outside fold 2019-12-31 22:22:56 -05:00
0cebdf0ed9 ci: test powershell core on macOS 2019-12-31 21:15:58 -05:00
ac6ebfcc1d LSP: eliminate lsp.print_debug_info…()
Reduce API surface.  We should not add functions unless they are really
needed.  Users should be nudged to use vim.inspect() directly.
2019-12-31 15:39:17 -08:00
8b84119650 LSP: eliminate lsp.stop_all_clients()
Reduce API surface.  We don't need so many variations of functions. Too
many functions means verbose, largely redundant documentation, tests,
and cognitive burden.
2019-12-31 15:39:17 -08:00
0dcf4bd3eb gen_vimdoc.py: rename mode to target 2019-12-31 15:39:17 -08:00
1836853955 ci: test powershell core on Linux 2019-12-31 15:11:08 -05:00
b112fe828f gen_vimdoc.py: generate LSP docs 2019-12-31 08:06:48 -08:00
d839c35871 doc: LSP 2019-12-31 02:55:12 -08:00
93e7c7e3bd doc [ci skip] 2019-12-31 02:25:10 -08:00
e922576bdd Merge #11637 from janlazo/vim-8.1.1739
vim-patch:8.1.{1739,1741},8.2.0063
2019-12-31 04:03:11 +01:00
4bd51d8988 CI: set nodejs version to 10 on main scripts
nvm can run within a bash shell only.
2019-12-30 18:48:32 -05:00
eeabd3a8c6 vim-patch:8.2.0063: wrong size argument to vim_snprintf()
Problem:    Wrong size argument to vim_snprintf(). (Dominique Pelle)
Solution:   Reduce the size by the length. (related to vim/vim#5410)
08b28b7ad5
2019-12-30 17:02:15 -05:00
0e7baed219 vim-patch:8.1.1741: cleared/added match highlighting not updated in other window
Problem:    Cleared/added match highlighting not updated in other window.
            (Andi Massimino)
Solution:   Mark the right window for refresh.
4ef18dcc2e
2019-12-30 16:30:58 -05:00
6e6544d645 vim-patch:8.1.1739: deleted match highlighting not updated in other window
Problem:    Deleted match highlighting not updated in other window.
Solution:   Mark the window for refresh. (closes vim/vim#4720)  Also fix that
            ambi-width check clears with wrong attributes.
06029a857a
2019-12-30 16:26:43 -05:00
22a92a59a6 Merge #11605 'gen_vimdoc.py: fix formatting; sort by name' 2019-12-30 12:36:41 +01:00
c24f8f46b4 gen_vimdoc.py: sort by name 2019-12-30 03:31:32 -08:00
b81547ce6d gen_vimdoc.py: better handling of inline (non-block) nodes 2019-12-30 03:12:24 -08:00
27b678f577 gen_vimdoc.py: fix deprecated check 2019-12-30 00:15:49 -08:00
f9be48436c Merge #11632 from janlazo/vim-8.1.2087
vim-patch:8.1.2087,8.2.0058
2019-12-30 08:47:19 +01:00
00af06b372 Merge #11616 from janlazo/vim-8.0.1491
vim-patch:8.0.{1356,1491,1495,1522,1538,1540},8.1.{554,670,1300,1303,1875,2377}
2019-12-30 08:27:56 +01:00
5e1cad6d33 vim-patch:8.0.1356: using simalt in a GUIEnter autocommand inserts characters
Problem:    Using simalt in a GUIEnter autocommand inserts strange characters.
            (Chih-Long Chang)
Solution:   Ignore K_NOP in Insert mode. (closes vim/vim#2379)
c5aa55db7e
2019-12-30 01:15:18 -05:00
78aa41354e vim-patch:8.1.2377: GUI: when losing focus a pending operator is executed
Problem:    GUI: when losing focus a pending operator is executed.
Solution:   Do not execute an operator when getting K_IGNORE. (closes vim/vim#5300)
fa5612c7d8
2019-12-30 00:49:30 -05:00
5fc8a7ee09 vim-patch:8.1.1300: in a terminal 'ballooneval' does not work right away
Problem:    In a terminal 'ballooneval' does not work right away.
Solution:   Flush output after drawing the balloon.  Add the <Ignore> key
            code.  Add a test.
2f10658b06
2019-12-30 00:34:44 -05:00
ebd5c2cdda ui: add basic tests for pumheight,pumwidth 2019-12-29 23:16:52 -05:00
1250a01325 vim-patch:8.2.0058: running tests changes ~/.viminfo
Problem:    Running tests changes ~/.viminfo.
Solution:   Make 'viminfo' empty when summarizing tests results. (closes vim/vim#5414)
eb698d0b32
2019-12-29 22:43:43 -05:00
74e37ac665 vim-patch:8.1.2087: cannot easily select one test function to execute
Problem:    Cannot easily select one test function to execute.
Solution:   Support the $TEST_FILTER environment variable. (Ozaki Kiichi,
            closes vim/vim#2695)
a7f6c3cf07
2019-12-29 22:43:16 -05:00
6c606c1191 vim-patch:8.1.1875: cannot get size and position of the popup menu
Problem:    Cannot get size and position of the popup menu.
Solution:   Add pum_getpos(). (Ben Jackson, closes vim/vim#4827)
e9bd57286a

https://github.com/neovim/neovim/pull/11562 backported the vim patch.
This patch only updates the runtime/doc/ files to match Vim.
2019-12-29 18:34:05 -05:00
e80f61020a vim-patch:8.0.1540: popup menu positioning fails with longer string
Problem:    Popup menu positioning fails with longer string.
Solution:   Only align with right side of window when width is less than
            'pumwidth' (closes vim/vim#2661)
2b10bcbfc1
2019-12-29 18:34:05 -05:00
81a0d10f13 fixup! vim-patch.sh: list related missing Vim patches [ci skip] #11514 2019-12-29 18:34:04 -05:00
1e693ac97d vim-patch:8.1.1303: not possible to hide a balloon
Problem:    Not possible to hide a balloon.
Solution:   Hide the balloon when balloon_show() is called with an empty
            string or list.  Add balloon_gettext().
be0a2597ae
2019-12-29 18:34:04 -05:00
be4165308f screen: fix pvs/v1048 2019-12-29 18:34:04 -05:00
1d3d84fe81 vim-patch:8.1.0554: popup menu overlaps with preview window
Problem:    Popup menu overlaps with preview window.
Solution:   Adjust the height computation. (Hirohito Higashi, closes vim/vim#3414)
614ab8aa00

Cherry-picked "row -> pum_win_row" rename changes from patch 8.1.0062.
2019-12-29 18:34:04 -05:00
51c9e3c4d1 vim-patch:8.0.1538: popupmenu is too far left when completion is long
Problem:    Popupmenu is too far left when completion is long. (Linwei)
Solution:   Adjust column computations. (Hirohito Higashi, closes vim/vim#2661)
bb008dd323
2019-12-29 18:34:04 -05:00
d56f36f46c vim-patch:8.0.1522: popup menu is positioned in the wrong place
Problem:    Popup menu is positioned in the wrong place. (Davit Samvelyan,
            Boris Staletic)
Solution:   Correct computation of the column and the conditions for that.
            (Hirohito Higashi, closes vim/vim#2640)
4287ed33dd
2019-12-29 18:34:04 -05:00
ac85d1f52f vim-patch:8.1.0670: macro for popup menu width is unused
Problem:    Macro for popup menu width is unused.
Solution:   Remove it. (Hirohito Higashi)
3d631cb0b3
2019-12-29 18:34:03 -05:00
669d675ef3 vim-patch:8.0.1495: having 'pumwidth' default to zero has no merit
Problem:    Having 'pumwidth' default to zero has no merit.
Solution:   Make the default 15, as the actual default value.
42443c7d7f

Includes 'pumwidth' documentation changes from 8.0.1531.
Sort 'pum*' option in alphabetical order.
2019-12-29 18:31:04 -05:00
703ed11c97 vim-patch:8.0.1491: the minimum width of the popup menu is hard coded
Problem:    The minimum width of the popup menu is hard coded.
Solution:   Add the 'pumwidth' option. (Christian Brabandt, James McCoy,
            closes vim/vim#2314)
a8f04aa275
2019-12-29 18:15:46 -05:00
34a59242a0 Revert "runtime: Add vim.lsp.get_client_by_name" #11623
reverts 680693e263 #11603
2019-12-29 09:05:32 +01:00
ddffd31737 netrw.vim: do not save +/* registers p.2 #11625
remove last place where system clipboard was used by netrw
(extends 6c22c7ab97)

fix #11592
2019-12-29 08:57:28 +01:00
680693e263 runtime: Add vim.lsp.get_client_by_name (#11603)
Since the client name is more obvious than the client id for the user, add an
API to get the lsp client by the client name.
2019-12-28 09:28:00 -08:00
4f4c06a7a4 doc: update 'cpoptions' default value #11619
Since version 0.2, the `_` compatibility option is turned on by default.

ref 1743df82f9
ref b0196586de/src/nvim/option_defs.h (L135)
2019-12-28 08:07:27 +01:00
52566dd780 LSP: Fix flaky test #11618 2019-12-27 12:20:17 +01:00
b0196586de Merge #11568 'fillchars: foldopen, foldsep, foldclose' 2019-12-26 07:06:43 +01:00
927a4f24e0 Merge #11612 from janlazo/clang-pvs 2019-12-26 07:02:44 +01:00
234c4a846b os/env: fix pvs/v781 2019-12-26 00:29:15 -05:00
d6ba578ccb misc1: fix pvs/v781 2019-12-26 00:29:15 -05:00
251177b63b ex_getln: fix pvs/v781 2019-12-26 00:29:15 -05:00
23dbe73585 ex_docmd: fix pvs/v781 2019-12-26 00:29:15 -05:00
f6b4547598 ex_cmds: fix pvs/v781 2019-12-26 00:29:15 -05:00
fd429345c9 search: fix pvs/v1048 2019-12-26 00:29:14 -05:00
6a0242beea quickfix: qf_parse_fmt_plus never fails 2019-12-26 00:29:14 -05:00
0be59d2b5e hardcopy: fix pvs/v1048 2019-12-26 00:29:14 -05:00
362c3a3ccf api/vim: fix pvs/v1048 2019-12-26 00:29:14 -05:00
35c3985da6 clang/'Dead store': remove dead code 2019-12-26 00:29:13 -05:00
c740e3b4b5 clang/'Logic error': set ret_tv if non-null 2019-12-25 17:16:39 -05:00
bbad324b17 fillchars: adding foldopen, foldsep, foldclose
You can try it with
set fillchars+=foldopen:▾,foldsep:│,foldclose:▸
2019-12-25 14:28:36 +01:00
5f1aec5abd Fix scripts/vim-patch.sh for Bash 4.3
Ref: https://github.com/neovim/neovim/pull/11514#issuecomment-568780231
2019-12-25 13:03:16 +01:00
07a2260e1d LSP: Handle rpc RequestCancelled specifically. (#11606)
This was creating extra noise in errors that we should've been handling
internally.

Fixes #11515
2019-12-24 14:28:09 -08:00
34abe8fd23 vim-patch.sh: list related missing Vim patches [ci skip] #11514
* scripts/vim-patch.sh: factor out _set_tokens_and_tags

This allows for caching `$tokens` and `$vim_commit_tags`, which will
become relevant with the next commit adding
`list_missing_previous_vimpatches_for_patch`.
2019-12-24 08:15:18 +01:00
b3686b1597 system(), jobstart(): raise error on non-executable #11234
* tv_to_argv: error when cmd is not executable
  Callers always assume that emsg was emitted:
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L12509
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L17923
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L18202
* test/functional/provider: display reason from missing_provider
* provider#node#Detect: skip / handle non-existing node executable
2019-12-24 07:53:56 +01:00
53fe877a97 snap: set "classic" confinement #11601 2019-12-24 06:43:25 +01:00
31cfd67453 version.c: update [ci skip] #11600
vim-patch:8.2.0001: #endif comments do reflect corresponding #ifdef
vim-patch:8.2.0003: Build file dependencies are incomplete
vim-patch:8.2.0009: VMS: terminal version doesn't build
vim-patch:8.2.0022: click in popup window doesn't close it in the GUI
vim-patch:8.2.0029: MS-Windows: crash with empty job command
vim-patch:8.2.0031: MS-Windows: test for empty job fails
vim-patch:8.2.0032: MS-Windows: test for blank job fails
vim-patch:8.2.0034: missing check for out of memory
2019-12-24 06:41:13 +01:00
7dacab9afd vim-patch:8.2.0033: make_extmatch() OOM #11602
Problem:    Crash when make_extmatch() runs out of memory.
Solution:   Check for NULL. (Dominique Pelle, closs vim/vim#5392)
7c77b34967
2019-12-24 06:40:39 +01:00
2ef72437fc Merge #11594 from janlazo/vim-8.0.1767
vim-patch:8.0.1767,8.2.0030
2019-12-23 07:16:21 +01:00
2e280dac7d gen_vimdoc.py: lint #11593 2019-12-23 07:08:49 +01:00
d6593d850a snap: set "strict" confinement #11596 2019-12-23 07:04:14 +01:00
a16de288c3 spellfile: fix pvs/v1048 2019-12-22 22:26:05 -05:00
dd2e2f8aaa getchar: fix pvs/v1048 2019-12-22 21:17:30 -05:00
0c70aa6509 charset: fix pvs/v1048 2019-12-22 21:14:04 -05:00
8758e96bf0 tag: fix pvs/v1048 2019-12-22 21:11:18 -05:00
33f6c25af8 eval: fix pvs/V1048 2019-12-22 21:02:49 -05:00
80ebfc304e vim-patch:8.2.0030: "gF" does not work on output of "verbose command"
Problem:    "gF" does not work on output of "verbose command".
Solution:   Recognize " line " and translations. (closes vim/vim#5391)
64e74c9cc7
2019-12-22 19:43:18 -05:00
bc8da6cdbe vim-patch:8.0.1767: with 'incsearch' text may jump up and down
Problem:    With 'incsearch' text may jump up and down. ()
Solution:   Besides w_botline also save and restore w_empty_rows.
            (closes # 2530)
9d34d90210
2019-12-22 11:50:16 -05:00
9e9dcd4bd7 Merge pull request #11113 from bfredl/tree-sitter-query
tree-sitter step 2: query API and  highlighting prototype
2019-12-22 13:47:45 +01:00
440695c296 tree-sitter: implement query functionality and highlighting prototype [skip.lint] 2019-12-22 12:51:46 +01:00
c21511b2f4 tree-sitter: fix prototypes (to be upstreamed) 2019-12-22 11:57:19 +01:00
f486d2145a tree-sitter: fix relative paths in unicode/ subdir 2019-12-22 11:56:13 +01:00
e1d63c180c tests: ex_terminal_spec: retry ":terminal (with fake shell)" (#11588)
Flaky failure (Travis CI, macOS):

    [ RUN      ] :terminal (with fake shell) works with gf: 10518.41 ms FAIL
    test/functional/terminal/ex_terminal_spec.lua:248: Row 1 did not match.
    Expected:
      |*^ready $ echo "scripts/shadacat.py"                |
      |*                                                  |
      |*[Process exited 0]                                |
      |:terminal echo "scripts/shadacat.py"              |
    Actual:
      |*^                                                  |
      |*[Process exited 0]                                |
      |*                                                  |
      |:terminal echo "scripts/shadacat.py"              |
    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.
    stack traceback:
            test/functional/ui/screen.lua:579: in function '_wait'
            test/functional/ui/screen.lua:361: in function 'expect'
            test/functional/terminal/ex_terminal_spec.lua:248: in function <test/functional/terminal/ex_terminal_spec.lua:245>
2019-12-22 11:23:39 +01:00
79bd8d2ab6 tree-sitter: update vendored tree-sitter runtime
tree-sitter/tree-sitter commit edb569310005c66838b7d69fa60850acac6abeee

Included files are:
lib/include/tree-sitter/*.h
lib/src/*.[ch]
lib/src/unicode/*
LICENSE
2019-12-22 10:35:00 +01:00
781c708c27 Merge #11396 'gen_vimdoc.py: mpack result' [ci skip] 2019-12-22 05:40:31 +01:00
9ea7aeb308 gen_vimdoc.py: rename for clarity
- render_para => fmt_node_as_vimhelp
- Inline parse_parblock() in fmt_node_as_vimhelp()
2019-12-21 20:36:00 -08:00
4657819e80 gen_vimdoc.py: mpack: collect functions in 1 dict
All Nvim API, core Vimscript, and core Lua functions are globally
unique, so there is no need for per-module nested dicts.

BEFORE (generated mpack structure):
    [
      {
        "buffer.c": {
          "nvim__buf_stats": { ... },
          ...
        },
        "window.c": {
          "nvim_win_close": { ... },
          ...
        },
        ...
      }
    ]

AFTER (generated mpack structure):
    [
      {
        "nvim__buf_stats": {
          ...
        },
        "nvim_buf_attach": {
          ...
        },
        "nvim_tabpage_set_var": {
          ...
        },
        "nvim_ui_attach": {
          ...
        },
        "nvim_win_close": {
          ...
        }
      }
    ]
2019-12-21 20:36:00 -08:00
f968dad3bf gen_vimdoc.py: fix "seealso", "xrefs"
- Also fix xrefs ("Deprecated" section)
- Fix "Deprecated" rendering by a weird hack (see comment).
- Eliminate unnecessary use of render_para()
2019-12-21 20:36:00 -08:00
62e365f577 gen_vimdoc.py: mpack: exclude deprecated functions
The `mpack` variable was a tuple, which manifests as an array in the
generated msgpack structure.
- Removes noise from the mpack data (deprecated functions are
  deprecated).
- Eliminates 1 level of nesting.

BEFORE:
    [
      {
        "buffer.c": [
          {
            "nvim__buf_stats": { ... },
            ...
          },
          {
            "buffer_del_line": { ... },
            ...
          },
        ],
        ...
      }
    ]

AFTER:
    [
      {
        "buffer.c": {
          "nvim__buf_stats": { ... },
          ...
        },
        ...
    ]
2019-12-21 20:36:00 -08:00
481da1ce40 gen_vimdoc.py: fix mpack generator
- make parameters_doc a dict intead of a list
  BEFORE:
    "parameters_doc": [
        {
            "buffer": "Buffer handle, or 0 for current buffer"
        }
    ],
  AFTER:
    "parameters_doc": {
        "buffer": "Buffer handle, or 0 for current buffer"
    },
- make "return", "seealso", lists instead of strings
2019-12-21 20:36:00 -08:00
01adb81c55 gen_vimdoc.py: DRY 2019-12-21 20:36:00 -08:00
c60f656839 termdebug.vim: Comment out Winbar related things #11552 2019-12-22 04:45:11 +01:00
64248e64a0 tests: sync Test_undojoin_redo from Vim #11589
This was not added in e0e482589 with Vim patch 8.0.0205.
2019-12-22 04:41:11 +01:00
138480939a vim-patch:8.2.0025: repeated word in comment (#11586)
Problem:    Repeated word in comment.
Solution:   Remove one. (Rene Nyffenegger, closes vim/vim#5384)
fe72d08400
2019-12-21 13:55:14 +01:00
ee7ac469c6 LSP: Use async completion for omnifunc. (#11578) 2019-12-20 22:49:29 -08:00
b2443361ca build: DownloadAndExtractFile.cmake: retry status_code=7 #11582
Retry downloads with "Couldn't connect to server" errors.

Ref: https://lgtm.com/projects/g/neovim/neovim/logs/rev/pr-ca2f193a91f02881deb637f18694818bda49a7ed/lang:cpp/stage:Build%20master_026ba804d173c41ab99ee270c93f7975c1d6d713
2019-12-21 06:39:26 +01:00
416de695f9 Merge pull request #11577 from janlazo/vim-8.2.0019
vim-patch:8.2.{19,24}
2019-12-20 17:25:43 +01:00
a115f23143 vim-patch:8.2.0024: filetype Rego not recognized
Problem:    Filetype Rego not recognized.
Solution:   Add *.rego. (Matt Dunford, closes vim/vim#5376)
a4ce82fe2e
2019-12-20 08:14:54 -05:00
c147806e23 vim-patch:8.2.0019: cannot number of lines of another buffer
Problem:    Cannot number of lines of another buffer.
Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
            closes vim/vim#5370)
a9e9679de3
2019-12-20 08:14:54 -05:00
026ba804d1 LSP: Improve the display of the default hover callback. (#11576)
Strips the code blocks from markdown and does syntax highlighting.
2019-12-20 02:50:37 -08:00
d00c624ba4 LSP: fix omnifunc findstart (#11522) 2019-12-20 02:46:47 -08:00
65aca4d857 TUI: can make the cursor transparent #11519
when setting 'guicursor' highlight blend=100.
2019-12-19 12:27:21 -08:00
486ddb6eb7 Merge #11572 from janlazo/vim-8.2.0015
vim-patch:8.2.{15,18}
2019-12-19 12:25:25 -08:00
35813c62ed test/old: skip Test_screenpos for now
It fails in CI.
2019-12-18 07:57:45 -05:00
04ebfeb881 vim-patch:8.2.0018: :join does not add white space where it should
Problem:    :join does not add white space where it should. (Zdenek Dohnal)
Solution:   Handle joining multiple lines propely.
91b65e4944
2019-12-18 05:38:59 -05:00
74a547d340 vim-patch:8.2.0015: not all modeline variants are tested
Problem:    Not all modeline variants are tested.
Solution:   Add modeline tests. (Dominique Pelle, closes vim/vim#5369)
e74331db4b
2019-12-17 21:43:48 -05:00
1bfccf0286 Merge #11556 from janlazo/vim-8.2.0002
vim-patch:8.2.{2,8,10,12,13}
2019-12-16 22:16:30 -08:00
3de1bc4bf9 fileio: use uint64_t for temp_count #11555
Band-aid workaround to file collision when using `tempname` for temporary batchfiles.
2019-12-16 22:14:22 -08:00
9e6ebed6f4 vim-patch:8.2.0013: not using a typedef for condstack
Problem:    Not using a typedef for condstack.
Solution:   Add a typedef.
ddef129160
2019-12-16 20:36:11 -05:00
fcd9105018 vim-patch:8.2.0012: some undo functionality is not tested
Problem:    Some undo functionality is not tested.
Solution:   Add a few more test cases. (Dominique Pelle, closes vim/vim#5364)
559b9c68fe
2019-12-16 19:38:29 -05:00
ad5049aa60 vim-patch:8.2.0010: test64 is old style
Problem:    Test64 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes vim/vim#5363)
f9cb05c147
2019-12-16 19:38:29 -05:00
06f37709e7 vim-patch:8.2.0008: test72 is old style
Problem:    Test72 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes vim/vim#5362)
3e2d1c8cd6
2019-12-16 19:38:28 -05:00
63cd5dd0ae vim-patch:8.2.0002: "dj" only deletes first line of closed fold
Problem:    "dj" only deletes first line of closed fold.
Solution:   Adjust last line of operator for linewise motion. (closes vim/vim#5354)
3b68123cd2
2019-12-16 19:38:28 -05:00
251b20e533 Add support for the pum_getpos() API (#11562)
Add support for the pum_getpos() API
2019-12-16 20:08:55 +01:00
473aea92cb Merge pull request #11564 from jamessan/libcall
libcallnr: Use int, not int64_t, as the return type for Vim compat
2019-12-16 07:32:58 -05:00
6566251d14 Merge remote-tracking branch 'upstream/master' into libcall 2019-12-15 21:17:16 -05:00
9c4223215f libcallnr: Use int, not int64_t, as the return type for Vim compat
Vim's documentation simply states that libcallnr() should be used "for a
function that returns an int".  Based on the tests, code, and common
syscall interfaces, this should likely be taken literally instead of
trying to apply some well-defined type lipstick.

Notably, this change fixes Test_libcall_libcallnr on hppa (a 32-bit
big-endian system).
2019-12-15 21:17:00 -05:00
9f3d483c79 Merge pull request #7202 from teto/jobstart_env
[RFC] override environment for jobstart
2019-12-13 06:52:48 -05:00
91b313a904 Add negative test for type of job's env option 2019-12-12 07:57:27 -05:00
bc879dd1f1 snap: allow job failure
This thing still fails with "need manual review" error.

Try devmode (again)--since we got approved once, maybe it works now?

ref 49849745f1
ref d9ab83d057
ref #11482
2019-12-12 01:29:11 -08:00
914555b14c version.c: update [ci skip] #11415
vim-patch:8.1.0121: crash when using ballooneval related to 'vartabstop'
vim-patch:8.1.0132: lua tests are old style
vim-patch:8.1.0134: Lua interface does not support funcref
vim-patch:8.1.0758: font number is always one instead of the actual
vim-patch:8.1.0808: MS-Windows: build error with GUI
vim-patch:8.1.1767: FEAT_SESSION defined separately
vim-patch:8.1.1958: old style comments taking up space
vim-patch:8.1.2327: cannot build with Hangul input
vim-patch:8.1.2328: a few hangul input pieces remain
vim-patch:8.1.2352: CI doesn't cover FreeBSD
vim-patch:8.1.2354: Cirrus CI runs on another repository
vim-patch:8.1.2359: cannot build without FEAT_FLOAT
vim-patch:8.1.2370: build problems on VMS
vim-patch:8.1.2372: VMS: failing realloc leaks memory
vim-patch:8.1.2374: unused parts of libvterm are included
vim-patch:8.1.2376: preprocessor indents are incorrect
vim-patch:8.1.2383: using old C style comments
vim-patch:8.1.2404: channel test fails under valgrind
vim-patch:8.1.2407: proto files, dependencies and build instructions outdated
vim-patch:8.1.2409: creating the distribution doesn't work as documented
vim-patch:8.1.2410: MS-Windows: test_iminsert fails without IME support
vim-patch:8.1.2413: cannot update ex_cmdidxs.h on MS-Windows
vim-patch:8.1.2414: MS-Windows: properties dialog box shows wrong character
vim-patch:8.1.2417: MinGW/Cygwin build does not clean up all files
vim-patch:8.1.2423: MS-Windows properties shows version as "8, 1, 0"
2019-12-12 00:37:23 -08:00
39963c6a04 os_getenvname_at_index: Handle Windows env vars whose name starts with = 2019-12-11 22:04:29 -05:00
6dc1005787 Add os_getfullenv_size/os_copyfullenv 2019-12-11 22:04:29 -05:00
19b6237087 jobstart now supports env/clear_env
to modify the environment of the launched job.
2019-12-11 21:07:13 -05:00
f3fcaedfad test: new test for setting environment 2019-12-11 21:06:42 -05:00
d9ab83d057 snap: re-enable CI job
ref 49849745f1
ref #11482
2019-12-11 02:27:28 -08:00
3383f1ce26 PVS/V1049: fix numerous "DEFINE_FUNC_ATTRIBUTES" warnings #11544
PVS erroneously flags our DEFINE_FUNC_ATTRIBUTES guard:

  V1049 The 'DEFINE_FUNC_ATTRIBUTES' include guard is already defined in
  the 'lang.h.generated.h' header. The 'profile.h.generated.h' header
  will be excluded from compilation.

To satisfy PVS, just remove the `#ifndef` check. It's not needed anyway:
C allows to redundantly #define a macro.

https://gcc.gnu.org/onlinedocs/cpp/Undefining-and-Redefining-Macros.html

> if an identifier which is currently a macro is redefined, then the new
> definition must be effectively the same as the old one
> ...
> If a macro is redefined with a definition that is not effectively the
> same as the old one, the preprocessor issues a warning and changes the
> macro to use the new definition. If the new definition is effectively
> the same, the redefinition is silently ignored. This allows, for
> instance, two different headers to define a common macro. The
> preprocessor will only complain if the definitions do not match.
2019-12-11 02:21:39 -08:00
39094b3fae jumplist: browser-style (or 'tagstack') navigation #11530
Traditionally, when navigating to a specific location from the middle of
the jumplist results in shifting the current location to the bottom of
the list and adding the new location after it.  This behavior is not
desireable to all users--see, for example
https://vi.stackexchange.com/questions/18344/how-to-change-jumplist-behavior.

Here, another jumplist behavior is introduced.  When jumpoptions (a new
option set added here) includes stack, the jumplist behaves like the
tagstack or like history in a web browser.  That is, when navigating to
a location from the middle of the jumplist

    2 first
    1 second
    0 third <-- current location
    1 fourth
    2 fifth

to a new location the locations after the current location in the jump
list are discarded

    2 first
    1 second
    0 third
            <-- current location

The result is that when moving forward from that location, the new
location will be appended to the jumplist:

    3 first
    2 second
    1 third
    0 new

If the new location is the same

  new == second

as some previous (but not immediately prior) entry in the jumplist,

    2 first
    1 second
    0 third <-- current location
    1 fourth
    2 fifth

both occurrences preserved

    3 first
    2 second
    1 third
    0 second (new)

when moving forward from that location.

It would be desireable to go farther and, when the new location is the
same as the location that is currently next in the jumplist,

    new == fourth

make the result of navigating to the new location by jumping (e.g. 50gg)
be the same as moving forward in the jumplist

    2 first
    1 second
    0 third
    1 new <-- current location
    2 fifth

and simply increment the jumplist index.  That change is NOT part of
this patch because it would require passing the new cursor location to
the function (setpcmark) from all of its callees.  That in turn would
require those callees to know *before* calling what the new cursor
location is, which do they do not currently.
2019-12-10 00:56:56 -08:00
6c22c7ab97 netrw.vim: do not save +/* registers
netrw shouldn't be touching these in the first place.

fix #11089
ref #6892
ref #6695
2019-12-10 00:46:04 -08:00
7111fe9459 doc: LSP [ci skip] #11524 2019-12-10 00:29:39 -08:00
76d1e9360a Merge #11528 from janlazo/vim-8.1.2402
vim-patch:8.1.{2402,2408}
2019-12-07 18:01:15 -08:00
6a4bdeb572 vim-patch:8.1.2408: syntax menu and build instructions outdated
Problem:    Syntax menu and build instructions outdated.
Solution:   Update build instructions and syntax menu.
bfd3433330
2019-12-07 17:39:43 -05:00
7d8f32338f vim-patch:8.1.2402: typos and other small things
Problem:    Typos and other small things.
Solution:   Small fixes.
f48ee3c284
2019-12-07 11:48:55 -05:00
30ed245d00 LSP: Add jump when calling gotodef (#11521) 2019-12-07 03:34:22 -08:00
0e6c6261e1 Fix access on vim.wo (#11517)
* Add more tests for vim.wo
2019-12-07 03:34:02 -08:00
fbae9f8541 runtime/syntax/vim.vim: highlight "blend" keyword #11520 2019-12-05 22:14:54 -08:00
ed424655be vim-patch:8.1.2385: open cmdline window with feedkeys() #11516
Problem:    Opening cmdline window with feedkeys() does not work. (Yegappan
            Lakshmanan)
Solution:   Recognize K_CMDWIN also when ex_normal_busy is set.
85db547598
2019-12-04 23:04:19 -08:00
3aa95ef27e defaults: set nostartofline (#11135)
Having the cursor change column can be surprising.

Force startofline in functional and old tests.
Remove the functional breakindent test, as it's a subset of the oldtest one.
2019-12-03 20:58:03 -08:00
bcd5fc9764 vim-patch:8.1.2384: test 48 is old style #11509
Problem:    Test 48 is old style.
Solution:   Merge test cases into new style test. (Yegappan Lakshmanan,
            closes vim/vim#5307)
079119babe
2019-12-03 20:54:53 -08:00
4598e489c7 test: always pass a string to expect_msg_seq
Seems like pcall doesn't always return a string as a 2nd element of the tuple.
2019-12-03 23:51:30 -05:00
3beef8ee1c defaults: set nostartofline
Having the cursor change column can be surprising.

Force startofline in functional and old tests.
Remove the functional breakindent test, as it's a subset of the oldtest one.
2019-12-03 13:31:17 +01:00
b1e4ec1c2a Merge #11500 from justinmk/api-deprecate
API: rename nvim_execute_lua, deprecate nvim_command_output
2019-12-02 22:38:36 -08:00
a3b6c2a3dc API: rename nvim_execute_lua => nvim_exec_lua
- We already find ourselves renaming nvim_execute_lua in tests and
  scripts, which suggests "exec" is the verb we actually want.
- Add "exec" verb to `:help dev-api`.
2019-12-02 22:06:42 -08:00
c34130d13a API: deprecate nvim_command_output 2019-12-02 20:52:06 -08:00
22b52dd462 log_init: call log_path_init (#11501)
This has to be done after `init_homedir` for XDG default and `set_init_1` for
lookup from env, which could be done earlier likely (to help with
https://github.com/neovim/neovim/issues/10937), but this keeps it in
sync with Vim.

Fixes https://github.com/neovim/neovim/issues/11499.
2019-12-02 22:21:15 +01:00
56be9fbde1 testdir/runnvim.sh: create messages file always (#11503) 2019-12-02 18:26:40 +01:00
0b7a7b23cc oldtest: support for running by filename (#11473)
Follow-up to 8969efca8 (Vim patch 8.1.0723)

NOTE: This changes the main entrypoint for running single oldtest files
to not use/require the ".res" extension anymore.  But it is handled for
B/C.

Adds a phony rule to run oldtest by filename.
Not going through "$(MAKE)" avoids GNUmakefile being used then (which I
use for WIP things), and it seems like SINGLE_MAKE should be used anyway
probably.
2019-12-02 17:18:37 +01:00
7d66a02b88 build: CMakeLists: do not set MIN_LOG_LEVEL with C flags (#11498)
Fixes https://github.com/neovim/neovim/issues/11496.
2019-12-02 17:12:51 +01:00
3b0191e330 src/nvim/testdir/test_quickfix.vim: align with Vim (#11502) 2019-12-02 17:12:26 +01:00
ab860cb5f6 dictwatcher: fix use-after-free #11495
fixes #11494
2019-12-02 02:09:30 -08:00
735d89d09e Merge #11159 'API: nvim_exec'
API: nvim_exec: function to source multiline Vimscript ("anonymous :source")
2019-12-01 23:15:16 -08:00
b1991f66d5 API: rename nvim_source => nvim_exec
- Eliminate nvim_source_output(): add boolean `output` param to
  nvim_exec() instead.
2019-12-01 22:35:15 -08:00
bd43e011b5 API: nvim_source_output
- Similar to nvim_source but will capture the output
- Add meaningful VimL tracebacks for nvim_source
- Handle got_int
- Add error reporting
2019-12-01 19:07:57 -08:00
276c2da286 API: nvim_source: fix multiline input
- DOCMD_REPEAT is needed to source all lines of input.
- Fix ":verbose set {option}?" by handling SID_STR in get_scriptname().

closes #8722
2019-12-01 16:09:24 -08:00
0a8d145075 API: nvim_source: save/restore script context #11159
Use a constant for the script id.
2019-12-01 16:09:24 -08:00
6aa03e86da API: nvim_source 2019-12-01 16:09:24 -08:00
70b6061666 Add vim.startswith and vim.endswith (#11248) 2019-12-01 05:32:55 -08:00
e6da21d128 Add vim.cmd as an alias for nvim_command (#11446) 2019-12-01 05:28:53 -08:00
edca84cfc9 Return nil instead of NIL for vim.env (#11486) 2019-12-01 05:04:57 -08:00
a17ccb0d24 screen.lua: remove screen:_on_event #11488
Tests can redefine the handlers, so we don't need this extra hook.
2019-12-01 01:06:10 -08:00
bff42cd7b3 ci: revisit OpenBSD/FreeBSD config (#11477) 2019-12-01 06:45:35 +01:00
cd6f755cf7 ci: SourceHut: revisit OpenBSD/FreeBSD config 2019-12-01 06:44:35 +01:00
fe927b84de terminfo_is_bsd_console: fallback to false
Ref: https://github.com/neovim/neovim/commit/ab7da4c53138768#r36200515
2019-12-01 06:44:35 +01:00
590082a58f vim-patch:8.1.2367: registers are not sufficiently tested (#11489)
Problem:    Registers are not sufficiently tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes vim/vim#5288)
71136db1bf
2019-12-01 06:41:40 +01:00
49849745f1 snap: disable job until we are approved
We are waiting for snapcraft.io to review/approve us for "classic" mode.
reverts 1f684cf80a
ref #11482
2019-11-30 15:18:48 -08:00
f700170197 Merge #11483 from janlazo/vim-8.1.2355
vim-patch:8.1.{2355,2363}
2019-11-30 14:32:06 -08:00
5b60023a8c vim-patch:8.1.2363: ml_get error when accessing Visual area in 'statusline'
Problem:    ml_get error when accessing Visual area in 'statusline'.
Solution:   Disable Visual mode when using another window. (closes vim/vim#5278)
dee50a5180
2019-11-30 16:21:33 -05:00
6c6afbcddd doc: mention OS pseudo-features in :h feature-list 2019-11-30 16:21:33 -05:00
7646e73a27 vim-patch:8.1.2355: test with "man" fails on FreeBSD
Problem:    Test with "man" fails on FreeBSD.
Solution:   Use "-P" instead of "--pager".
c7d2a57b3a

Cherry-picked "has('bsd')" from vim-patch:8.1.0846.
Cherry-picked test_normal.vim fix from vim-patch:8.1.2358
2019-11-30 11:42:31 -05:00
f6e7857c54 floatwin: show error if window is closed immediately #11476
Autocmds may close window while it is being entered, then
win_set_minimal_style(wp) operates on an invalid pointer.

We could silently ignore this instead, but it is unlikely to be
intentional, so it is more useful to show an error.

fix #11383
2019-11-29 23:48:14 -08:00
1f684cf80a snap: declare "devmode" instead of "classic" #11482 2019-11-29 10:07:02 -08:00
0a9ecf460a vim-patch:8.1.2315: switchbuf=uselast #11480
Problem:    Not always using the right window when jumping to an error.
Solution:   Add the "uselast" flag in 'switchbuf'. (closes vim/vim#1652)
539aa6b25e
2019-11-29 09:57:27 -08:00
f33371c03f vim-patch:8.1.2017: cannot execute commands after closing cmdline window #11479
Problem:    Cannot execute commands after closing the cmdline window.
Solution:   Also trigger BufEnter and WinEnter. (closes vim/vim#4762)
96e38a86a7

Fixes https://github.com/neovim/neovim/issues/11279.
2019-11-29 09:51:25 -08:00
e138c4c874 Merge pull request #11469 from bfredl/lspdiag
lsp: allow the user to config LspDiagnosticError like any hl group
2019-11-29 12:38:07 +01:00
5c9063cf2d snap: fix line continuation #11475
reverts commit 5298169068.
2019-11-28 20:51:43 -08:00
5298169068 snap: disable job
snap job hangs on travis:
https://travis-ci.org/neovim/neovim/builds/618434882
2019-11-28 20:32:06 -08:00
1bb7ea189e win_line: Fix crash with 'rightleft' in :terminal #11460
fixes #11438

Backtrace:

    0  schar_from_ascii ( p=0x801cc9e112c3 <error: Cannot access memory at address 0x801cc9e112c3>, c=32 ' ') at ../src/nvim/screen.c:5263
    1  0x00007f31460eccc5 in win_line (wp=wp@entry=0x7fffc9df6230, lnum=lnum@entry=11, startrow=startrow@entry=10, endrow=41, nochange=false, number_only=number_only@entry=false) at ../src/nvim/screen.c:4025
    2  0x00007f31460eed8e in win_update (wp=wp@entry=0x7fffc9df6230) at ../src/nvim/screen.c:1403
    3  0x00007f31460f011f in update_screen (type=<optimized out>) at ../src/nvim/screen.c:502
    4  0x00007f3146138ef4 in normal_redraw (s=s@entry=0x7fffd0a5f700) at ../src/nvim/normal.c:1247
    5  0x00007f314613b159 in normal_check (state=0x7fffd0a5f700) at ../src/nvim/normal.c:1324
    6  0x00007f31460accfe in state_enter (s=0x7fffd0a5f700) at ../src/nvim/state.c:28
    7  0x00007f3146143099 in normal_enter (cmdwin=<optimized out>, noexmode=<optimized out>) at ../src/nvim/normal.c:463
    8  0x00007f314618b541 in main (argc=<optimized out>, argv=<optimized out>) at ../src/nvim/main.c:580
2019-11-28 20:09:03 -08:00
ad17ef118a deps: update libtermkey to 0.22 #11429 2019-11-28 19:45:43 -08:00
835f959193 Merge #11428 'Update SNAP packaging' 2019-11-28 19:33:51 -08:00
c6d70d1786 snap: more yak-shaving
- generate decryption step
- skip job for PRs
- remove transfer.sh support
- deploy every (master) commit
2019-11-28 19:30:27 -08:00
8501e4a1ff snap: add snapcraft secrets to CI 2019-11-28 15:38:48 -08:00
e160c9b3be snap: add desktop file, icon 2019-11-28 15:38:40 -08:00
6325ec90dc snap: add "snap" job to Travis CI 2019-11-28 15:38:40 -08:00
86867c2f95 snap: fix/update snap builds
* rename to nvim
* bump base to core18
* fix versioning, match binary
* set prefix to /usr
2019-11-28 15:34:12 -08:00
ee1199eaba man.vim: remove K mapping #11472
Since #11457 this mapping is no longer necessary.
'keywordprg' defaults to :Man in options.lua
2019-11-28 14:04:40 -08:00
950690e48a lsp: allow the user to config LspDiagnosticError etc by standard means 2019-11-28 18:48:18 +01:00
7fef0f8db4 runtime: russian-jcukenwintype.vim keymap #11461
Author: Denis Proskurin <danwerspb@gmail.com>
2019-11-27 22:57:11 -08:00
001e69cd46 doc: fix typos
close #11459
2019-11-27 22:47:25 -08:00
86c4a87fe9 Merge #11467 from janlazo/vim-8.1.2345
vim-patch:8.1.{1252,1253,1254,1268,2345,2348,2349}
2019-11-27 22:06:31 -08:00
33beeed4d9 man.vim: Improve ft=man 'iskeyword' #11457
This addresses a minor quality problem with the recent `'tagfunc'`
changes for `man.vim` (see [link]).

Currently, with the cursor on a parenthese, hitting `K` will jump us to
the man page of the next mentioned entry, instead of the one to which
the parenthese (or section number) belongs.

```
pcrepattern(3), terminfo(5), glob(7), regex(7).
       e.g. ^        e.g. ^
```

Adding the parentheses to `'iskeyword'` means we correctly handle these cases too.

[link]: https://github.com/neovim/neovim/pull/11280#discussion_r348342357
2019-11-27 21:01:04 -08:00
585e3ddfc7 vim-patch:8.1.1268: map completion test fails in GUI
Problem:    Map completion test fails in GUI.
Solution:   Skip the test that fails.
510671a055
2019-11-26 22:09:30 -05:00
006beb73c7 vim-patch:8.1.1254: mapping completion contains dead code
Problem:    Mapping completion contains dead code.
Solution:   Remove the code.
61df0c7996
2019-11-26 22:07:53 -05:00
5ee6c3bd71 vim-patch:8.1.1253: mapping completion test fails
Problem:    Mapping completion test fails.
Solution:   Fix expected output.
92b9e60cb5
2019-11-26 22:04:35 -05:00
278a0b8df3 vim-patch:8.1.1252: not all mapping completion is tested
Problem:    Not all mapping completion is tested.
Solution:   Add a few more mapping completion tests.
1776a28e9c
2019-11-26 21:58:04 -05:00
90f2b13604 vim-patch:8.1.2349: :lockvar and :unlockvar cannot be followed by "| endif"
Problem:    :lockvar and :unlockvar cannot be followed by "| endif".
Solution:   Check for following commands. (closes vim/vim#5269)
cc4423ae13
2019-11-26 20:41:51 -05:00
f196ab87a1 vim-patch:8.1.2348: :const cannot be followed by "| endif"
Problem:    :const cannot be followed by "| endif".
Solution:   Check following command for :const. (closes vim/vim#5269)
            Also fix completion after :const.
8f76e6b12b
2019-11-26 20:38:59 -05:00
d697690e24 vim-patch:8.1.2345: .cjs files are not recognized as Javascript
Problem:    .cjs files are not recognized as Javascript.
Solution:   Add the *.cjs pattern. (closes vim/vim#5268)
c1faf3dc38
2019-11-26 20:01:16 -05:00
5f9209389b Merge pull request #11445 from bfredl/fcslcs
options: make 'fillchars' and 'listchars' global-local instead of local-only
2019-11-26 22:10:13 +01:00
a40ae96a38 Merge pull request #11466 from bfredl/luaopt
lua: make vim.wo and vim.bo used nested indexing for specified handle
2019-11-26 21:08:16 +01:00
49a40f425d options: make 'fillchars' and 'listchars' global-local
These options were previously global. A global-local window option
behaves closer to a global option "per default" (i e with :set),
but still supports local behavior via :setl

Also this restores back-compat for nvim_set_option("fcs", ...)
which are currently broken on 0.4.x but worked in earlier versions
2019-11-26 19:14:54 +01:00
a76a669ac2 lua: make vim.wo and vim.bo used nested indexing for specified handle
Also missing option should be an error. Options are functionality,
not arbitrary variable names (as for vim.g)
2019-11-26 18:44:36 +01:00
f53822d89f Merge pull request #11464 from bfredl/luaexport
cmake: enable exporting symbols from static libs again
2019-11-26 18:41:09 +01:00
3cffd17b2b cmake: enable exporting symbols from static libs again
Reverts the effect of disabling CMP0065 in ac32426 (#11131)
"build: get rid of warnings with `cmake --debug-output`"

We need symbols from statically linked libraries to be exported.
Otherwise cpath lua modules will not find liblua/libluajit
symbols as needed.
2019-11-26 17:34:00 +01:00
6e8c5779cf LSP: Move default buf callbacks to vim.lsp.callbacks (#11452)
- In the process, refactored focusable_preview to a util function.
- Add text for locations_to_items of the current line.
- Improve location callback to handle multiple return values by using
set_qflist.
- Remove update_tagstack and leave note for future travelers.
2019-11-26 05:59:40 -08:00
36d1335a66 UI: emit mouse_on/mouse_off on attach #11455
closes #11372
2019-11-25 08:56:42 -08:00
4a77df2e51 [RFC] extmark: fix E315 in nvim_buf_set_extmark (#11449)
extmark: need to use buf instead of curbuf
2019-11-25 16:50:30 +01:00
fd5710ae9a doc + extmarks tweaks #11421
- nvim_buf_get_extmarks: rename "amount" => "limit"
- rename `set_extmark_index_from_obj`
2019-11-25 01:08:02 -08:00
967f229f32 Merge #11454 from janlazo/vim-8.1.1732
vim-patch:8.1.{223,836,1732}
2019-11-25 01:07:43 -08:00
0ee4df4d96 vim-patch:8.1.0836: user completion test can fail on MS-Windows
Problem:    User completion test can fail on MS-Windows.
Solution:   Allow for other names befor "Administrator".
346d2a359a
2019-11-25 03:29:49 -05:00
226ad89a2c vim-patch:8.1.0223: completing shell command finds sub-directories in $PATH
Problem:    Completing shell command finds sub-directories in $PATH.
Solution:   Remove EW_DIR when completing an item in $PATH. (Jason Franklin)
6ab9e429da
2019-11-25 03:29:49 -05:00
7a0a2eb310 vim-patch:8.1.1732: completion in cmdwin does not work for buffer-local commands
Problem:    Completion in cmdwin does not work for buffer-local commands.
Solution:   Use the right buffer. (closes vim/vim#4711)
f03e328348
2019-11-24 23:37:10 -05:00
edb194f330 Improve terminal close error message formatting (#11434) 2019-11-24 20:18:40 -08:00
8819b5c06e vim-patch:8.1.0461: quickfix: change comment style #11453
Problem:    Quickfix code uses too many /* */ comments.
Solution:   Change to // comments. (Yegappan Lakshmanan)
00bf8cd211
2019-11-24 20:10:25 -08:00
f460bae441 release.sh [ci skip] 2019-11-24 17:53:33 -08:00
544eeeb0d6 Merge #11451 'man.vim: Fixes' 2019-11-24 17:37:47 -08:00
afaa062643 man.vim: Update maintainer email 2019-11-24 20:31:46 -05:00
4ce96e4979 man.vim: Hard wrap by default
Closes #11436
2019-11-24 20:31:46 -05:00
078f279691 man.vim: Document how to disable bold highlighting
Closes #11435
2019-11-24 20:31:18 -05:00
526798a941 man.vim: Ensure 'modifiable' in man#init_pager #11450 2019-11-24 17:30:04 -08:00
d5aaad14ec Followup improvements to LSP (#11430)
Addressing things brought up in https://github.com/neovim/neovim/issues/11389 and beyond.

- Bugfix for empty dictionary serialization.
- Reduce markdown previews of code.
- Refactor method triggers to `lsp.buf.*` methods
- Switch to v:lua and get rid of vim interface.
- Get rid of filetype config in favor of something from https://github.com/neovim/nvim-lsp
- Switch error messages to something which doesn't require `ENTER` because if an LSP goes crazy, it'll block neovim.
- Rename `builtin_callbacks` to `default_callbacks`
- Resolve callback at time of calling using default_callbacks instead of at client creation
- Make hover/signatureHelp preview focusable so you can mess with it.
- Add vim.lsp.util.set_qflist and vim.lsp.util.set_loclist and vim.lsp.util.locations_to_items().
- Add apply_textedit and tests which enables a new class of features.
- Fix column offsets in character and bytes in vim.lsp.buf to be correct.

New methods:
- Add textDocument/references under vim.lsp.buf.references()
- Finish textDocument/rename
- Finish textDocument/rangeFormatting and textDocument/format
2019-11-24 04:44:50 -08:00
a9036502dc Bring vim into local scope 2019-11-24 03:14:03 -08:00
b35f6aa9dd Add support for textDocument/references.
Add set_qflist and set_loclist.
- Also add locations_to_items, which calculates byte offsets for
character positions in files and avoids unnecessary operations.
2019-11-24 03:01:18 -08:00
b78fdd7ce5 Merge branch 'master' into lsp-followup 2019-11-24 02:29:23 -08:00
d0d38fc36e Lua: vim.env, vim.{g,v,w,bo,wo} #11442
- Add vim variable meta accessors: vim.env, vim.{g,v,w,bo,wo}
- Redo gen_char_blob to generate multiple blobs instead of just one
  so that multiple Lua modules can be inlined.
- Reorder vim.lua inclusion so that it can use previously defined C
  functions and utility functions like vim.shared and vim.inspect things.
- Inline shared.lua into nvim, but also keep it available in runtime.
2019-11-24 02:28:48 -08:00
f7c20b94c7 Merge branch 'master' into lsp-followup 2019-11-24 01:22:16 -08:00
222637c341 vim-patch:8.1.1334: respect shortmess=F when buffer is hidden #11443
Problem:    When buffer is hidden "F" in 'shortmess' is not used.
Solution:   Check the "F" flag in 'shortmess' when the buffer is already
            loaded. (Jason Franklin)  Add test_getvalue() to be able to test
            this.
eda652215a

test_getvalue() is not implemented.
It is only used for checking "need_fileinfo" internal variable.
2019-11-23 21:56:58 -08:00
2aa7b10114 Merge #11431 from janlazo/vim-8.1.1235
vim-patch:8.1.{471,723,1235,1490,1951,2183,2269,2329,2330}
2019-11-23 18:57:24 -08:00
d410812311 UI tweaks.
- Hide diagnostics on client exit
- Stop insert on popup focus.
- Hide popup on insertchar (for signature_help)
2019-11-23 16:14:24 -08:00
42c53d266a Merge remote-tracking branch 'origin/master' into lsp-followup 2019-11-23 14:28:54 -08:00
61d2a12743 Merge pull request #11382 from bfredl/extmark_bufhl
use extmark adjustment for bufhl. use vim code for within-line adjustments.
2019-11-23 22:06:43 +01:00
4c532f5469 vim-patch:8.1.0471: some tests are flaky or fail on some systems
Problem:    Some tests are flaky or fail on some systems.
Solution:   Increase waiting time for port number. Use "cmd /c" to execute
            "echo" on win32. (Ken Takata, closes vim/vim#3534)
453ce7c16b
2019-11-23 15:44:41 -05:00
7d5988feee tests: remove irrelevant timing info 2019-11-23 21:26:16 +01:00
ddf509c2ba test was wrong 2019-11-23 16:46:47 +01:00
2cc83c961c refactor: use inserted_bytes pattern from vim
This covers all "small" inserts and deletes in insert mode, as well
as a few more cases like small normal mode deletes

vim-patch:8.1.0678: text properties as not adjusted for inserted text
2019-11-23 16:46:47 +01:00
bdebe8516c bufhl: use extmark column adjustment for bufhl
NB: this is not the final implementation. Bufhl should be made a
part of the extmark tree, so that "start" adjustment just works
automatically. But "stop" will still need some ad-hoc trickery,
until extended marks natively support ranges (hopefully sooner than
forever).
2019-11-23 14:50:31 +01:00
7639ccdd0d vim-patch:8.1.1951: mouse double click test is a bit flaky
Problem:    Mouse double click test is a bit flaky.
Solution:   Add to list of flaky tests.  Update a couple of comments.
f1699968ba
2019-11-22 23:43:01 -05:00
cb107d28a0 vim-patch:8.1.2330: vi' does not always work when 'selection' is exclusive
Problem:    vi' does not always work when 'selection' is exclusive.
Solution:   Adjust start position.
94d9f4fa65
2019-11-22 20:10:12 -05:00
3d7d52ee8b vim-patch:8.1.2329: mouse multiple click test is a bit flaky
Problem:    Mouse multiple click test is a bit flaky.
Solution:   Add it to the list of flaky tests.
44f0bd878a
2019-11-22 20:10:12 -05:00
273ab19452 vim-patch:8.1.2183: running a test is a bit verbose
Problem:    Running a test is a bit verbose.
Solution:   Silence some messages. (Daniel Hahler, closes vim/vim#5070)
ba089307bb
2019-11-22 20:10:12 -05:00
a6714cf35c vim-patch:8.1.1490: when a single test fails the exit code is not set
Problem:    When a single test fails the exit code is not set. (Daniel Hahler)
Solution:   Add an exit command. (closes vim/vim#4506)
4e0bf84627
2019-11-22 20:10:12 -05:00
8969efca8c vim-patch:8.1.0723: cannot easily run specific test when in src/testdir
Problem:    Cannot run specific test when in src/testdir the same was as in
            the src directory.
Solution:   Move build rule to src/testdir/Makefile.
ec50401e1e

Developer can omit '.res' suffix now.
TEST_FILE=test_syntax make oldtest
or
make -C src/nvim/testdir test_syntax
2019-11-22 20:10:12 -05:00
970329ff8d vim-patch:8.1.2269: tags file with very long line stops using binary search
Problem:    Tags file with very long line stops using binary search.
Solution:   Reallocate the buffer if needed.
dc9ef26845
2019-11-22 20:10:11 -05:00
0f29deec80 vim-patch:8.1.1235: compiler warnings for using STRLEN() value
Problem:    Compiler warnings for using STRLEN() value.
Solution:   Cast to int. (Christian Brabandt, Mike Williams)
c0af78fa08
2019-11-22 20:10:11 -05:00
d5f14b8372 Clear 'cc' in nvim_open_win 'minimal' style #11361 (#11427)
* Clear 'cc' in nvim_open_win 'minimal' style #11361

Add 'colorcolumn' to the list of options that should be cleared when creating
a 'minimal'-style floating window.
2019-11-22 10:55:04 +01:00
73487f4130 Improve the character_offset code. 2019-11-22 00:31:10 -08:00
78991ffbf4 Improve performance of util.set_lines + bugfix
Also permit character_offset for col past the end of line (useful in
range formatting).
2019-11-22 00:02:04 -08:00
a3d67dac5f Fix encoding translation in other places. 2019-11-21 16:23:12 -08:00
c055ca00ce Remove comments. 2019-11-21 15:55:45 -08:00
43d73ee884 Fix position params for encoding. 2019-11-21 15:41:32 -08:00
da07e71b18 Account for character length in jump position. 2019-11-21 15:34:28 -08:00
b4ca07896c lualint 2019-11-21 15:23:43 -08:00
b27965538d Fix hovers staying on bufhidden 2019-11-21 15:20:32 -08:00
bcae04f6c6 Updates
- Use correct implementation of text_edits.
- Send indent options to rangeFormatting and formatting.
- Remove references to vim bindings and filetype from lsp.txt
- Add more examples to docs.
- Add before_init to allow changing initialize_params.
2019-11-21 15:19:06 -08:00
b5f99a8d73 Fix terminal close error message formatting 2019-11-21 14:56:36 -08:00
6a51401378 Merge remote-tracking branch 'origin/master' into lsp-followup 2019-11-21 10:04:32 -08:00
cc5487e32f Merge pull request #11433 from bfredl/lspeol
lsp: transmit "\n" after last line when 'eol' is set
2019-11-21 12:45:52 +01:00
76e0a8bd93 lsp: transmit "\n" after last line when 'eol' is set
Otherwise some servers like clangd will emit spurious
"no newline at end of file" warnings.
2019-11-21 11:12:57 +01:00
b7170f2d72 Remove resolve_bufnr/lualint 2019-11-20 20:59:52 -08:00
7bf766ad09 Use the apply_text_edits from util. 2019-11-20 20:59:12 -08:00
6d9f48ddcf Fix reference in rename. 2019-11-20 20:57:21 -08:00
6fc409d593 Add full text_edit implementation.
- Implements textDocument/formatting, textDocument/rangeFormatting,
workspace/applyEdit.
TODO:
- still has edge cases around replacement probably. Only tested with
inserts on the same position.
2019-11-20 20:51:44 -08:00
b984f613c1 Extend list_extend to take start/finish. 2019-11-20 17:09:21 -08:00
9b7f956715 Use err_message in default_callbacks 2019-11-20 16:39:45 -08:00
4c7ef3754a Satisfy lualint. 2019-11-20 16:37:23 -08:00
93beae4f31 Fix rename support. 2019-11-20 16:35:11 -08:00
1e16b3cf28 Spaces not tabs. 2019-11-20 16:16:36 -08:00
c40f8600d2 Change error writer to not be annoying. 2019-11-20 16:16:13 -08:00
03eb88848c Change callback resolution to be dynamic.
This allows default_callbacks to be specified after client creation to
be considered. Also it simplifies the code.
2019-11-20 16:09:03 -08:00
a4b7004f48 Move everything to buf & default_callbacks
- Rename builtin_callbacks to default_callbacks and slightly change its
semantics:
  - No longer contains the default implementations. Instead, any
  default_callbacks will be used in preference for our .buf methods.
  - Add this to the docs.
2019-11-20 16:03:32 -08:00
2d580756ca Add everything to lsp.buf and get rid of autoload. 2019-11-20 15:35:18 -08:00
c83380cf80 Add lsp.buf and hover implementation. 2019-11-20 14:21:57 -08:00
ff65cc990a Bugfix. Don't use nvim.lua that doesn't exist :) 2019-11-20 11:41:45 -08:00
568b454088 Add vim.uri_to_bufnr 2019-11-20 11:39:54 -08:00
0904ffe387 Bugfixes.
- Return after an error in RPC.
- Use an empty vim table for serialization.
2019-11-20 11:36:50 -08:00
3ae9b3781e Bugfix for floating_preview
Don't modify your inputs.
2019-11-20 11:34:10 -08:00
69a0712a9c Reduce code blocks in markdown previews.
If the preview is just a code block, then use the language as the
filetype instead of using markdown.
This reduces the size of the preview.
2019-11-20 11:23:50 -08:00
525bb1b55d Merge #11280 "man.vim: implement 'tagfunc'" 2019-11-20 00:31:22 -08:00
182d3cebcf Merge #11426 from janlazo/vim-8.0.1449
vim-patch:8.0.{1449,1793}
2019-11-19 21:32:48 -08:00
756e2b5f65 vim-patch:8.0.1793: no test for "vim -g"
Problem:    No test for "vim -g".
Solution:   Add a test for "-g" and "-y".
248be5c5de
2019-11-19 21:36:28 -05:00
025399aedb vim-patch:8.0.1449: slow redrawing with DirectX
Problem:    Slow redrawing with DirectX.
Solution:   Avoid calling gui_mch_flush() unnecessarily, especially when
            updating the cursor. (Ken Takata, closes vim/vim#2560)
a338adcf22
2019-11-19 20:33:09 -05:00
629ea19994 deps: upgrade bundled LuaRocks: 2.4.4 => 3.2.1 (#10292)
Changelog: https://github.com/luarocks/luarocks/compare/v2.4.4..v3.2.1#diff-4ac32a78649ca5bdd8e0ba38b7006a1e
2019-11-19 19:10:30 +01:00
1ff5b60cb9 vim-patch:8.1.0251: support full paths for 'backupdir' #11269
Problem:    Using a full path is supported for 'directory' but not for
            'backupdir'. (Mikolaj Machowski)
Solution:   Support 'backupdir' as well. (Christian Brabandt, closes vim/vim#179)
b782ba475a
2019-11-17 23:38:27 -08:00
b1c4a8191e version.c: update [ci skip] #11160
vim-patch:8.0.1405: duplicated code for getting a typed character

vim-patch:8.1.0828: still using FEAT_VIRTUALEDIT
vim-patch:8.1.1971: manually enabling features causes build errors
vim-patch:8.1.2000: plugin cannot get the current IME status
vim-patch:8.1.2119: memory access error for empty string
vim-patch:8.1.2122: cannot build without terminal feature
vim-patch:8.1.2123: parsing CSI sequence is messy
vim-patch:8.1.2128: renamed libvterm sources makes merging difficult
vim-patch:8.1.2130: MSVC build fails
vim-patch:8.1.2132: MS-Windows: screen mess when not recognizing insider build
vim-patch:8.1.2138: including the build number in the Win32 binary is confusing
vim-patch:8.1.2144: side effects when using t_ti to enable modifyOtherKeys
vim-patch:8.1.2157: libvterm source files missing from distribution
vim-patch:8.1.2160: cannot build with +syntax but without +terminal
vim-patch:8.1.2163: cannot build with +spell but without +syntax
vim-patch:8.1.2170: cannot build without the +termresponse feature
vim-patch:8.1.2179: pressing "q" at the more prompt doesn't stop Python output
vim-patch:8.1.2186: error for bad regexp even though regexp is not used
vim-patch:8.1.2196: MS-Windows: running tests with MSVC lacks updates
vim-patch:8.1.2199: build failure when using normal features without GUI
vim-patch:8.1.2201: cannot build with dynamically linked Python 3.8
vim-patch:8.1.2202: MS-Windows: build failure with GUI and small features
vim-patch:8.1.2203: running libvterm tests without the +terminal feature
vim-patch:8.1.2204: crash on exit when closing terminals
vim-patch:8.1.2209: LF in escape codes may be expanded to CR-LF
vim-patch:8.1.2217: compiler warning for unused variable
vim-patch:8.1.2224: cannot build Amiga version
vim-patch:8.1.2237: mode() result depends on whether CURSOR_SHAPE is defined
vim-patch:8.1.2248: CTRL-W dot does not work when modifyOtherKeys is enabled
vim-patch:8.1.2254: MS-Windows: mouse scroll wheel doesn't work in popup
vim-patch:8.1.2255: ":term ++shell" does not work on MS-Windows
vim-patch:8.1.2256: test for ":term ++shell" fails on MS-Windows
vim-patch:8.1.2260: terminal test may fail on MS-Windows
vim-patch:8.1.2271: build error if FEAT_TAG_BINS is not defined
vim-patch:8.1.2284: compiler warning for unused variable
vim-patch:8.1.2291: memory leak when executing command in a terminal
vim-patch:8.1.2301: MS-Windows GUI: drawing error when background color changes
vim-patch:8.1.2311: warning for missing function prototype
vim-patch:8.1.2316: FORTIFY_SOURCE can also be present in CPPFLAGS
vim-patch:8.1.2318: MS-Windows GUI: main background shows in toolbar

https://github.com/neovim/neovim/pull/11215
vim-patch:8.1.0084: user name completion does not work on MS-Windows
vim-patch:8.1.0085: no test for completing user name and language
vim-patch:8.1.0361: remote user not used for completion
2019-11-17 19:19:52 -08:00
d547c8d9ad Merge #11414 from janlazo/vim-8.1.2312
vim-patch:8.1.{2312,2314,2317}
2019-11-17 19:18:40 -08:00
af53a0c012 doc: Lua [ci skip] #11378
- Rework :help lua-commands
- Rename if_lua.txt => lua.txt
2019-11-17 19:06:59 -08:00
6ca3e6bfa9 vim-patch:8.1.2317: no test for spell affix file with flag on suffix
Problem:    No test for spell affix file with flag on suffix.
Solution:   Add a test case.
37ff4cf870
2019-11-17 21:55:56 -05:00
f484d3b2d4 vim-patch:8.1.2314: vi' sometimes does not select anything
Problem:    vi' sometimes does not select anything.
Solution:   Recognize an empty selection. (Christian Brabandt, closes vim/vim#5183)
7170b295b0
2019-11-17 21:51:19 -05:00
e4b185893f vim-patch:8.1.2312: "line:" field in tags file not used
Problem:    "line:" field in tags file not used.
Solution:   Recognize the field and use the value. (Andy Massimino, Daniel
            Hahler, closes vim/vim#5232, closes vim/vim#2546, closes vim/vim#1057)
077b9dd354
2019-11-17 21:37:52 -05:00
54402d6b8f Merge #11340 'Factor out parse_one_cmd()'
This will allow us to reuse the parsing logic elsewhere, namely for
'inccommand' logic, so we don't need to duplicate it for changes such as the
repeated colon fix in #11319.
2019-11-17 15:53:30 -08:00
91f4bb0aee TUI: use stdio names instead of magic numbers #11410 2019-11-17 12:58:58 -08:00
1f0fc4e452 build/macOS: set -fno-stack-check for LuaJIT build #11412
Fixes LuaJIT build on macOS Catalina.
ref https://github.com/LuaJIT/LuaJIT/issues/521
ref https://github.com/Homebrew/homebrew-core/pull/46823
2019-11-17 12:55:25 -08:00
97f1222005 provider/python: add python3.8 executable (#11402)
Python 3.8 was released 2019-10-14:

  https://www.python.org/dev/peps/pep-0569
2019-11-17 14:23:17 +01:00
a45890e82e Merge #11406 from janlazo/vim-8.1.1922
vim-patch:8.1.{1922,2289,2305}
2019-11-16 18:43:03 -08:00
7116a41e30 tutor: change arrows (--->) to symbols ✗ and ✓ #11404
* Display ✓ or ✗ based on the line user sees
* Add vim-tutor-mode expectations to the lines marked with an arrow.
* Fix some existing expectations to behave predictably.
2019-11-16 15:35:32 -08:00
3056ff4b8c vim-patch:8.1.2305: no warning for wrong entry in translations
Problem:    No warning for wrong entry in translations.
Solution:   Check semicolons in keywords entry of desktop file.
e53ec39270
2019-11-16 16:41:29 -05:00
b83027858a vim-patch:8.1.2289: after :diffsplit closing the window does not disable diff
Problem:    After :diffsplit closing the window does not disable diff.
Solution:   Add "closeoff" to 'diffopt' and add it to the default.
c823477979
2019-11-16 16:40:25 -05:00
da7bb53d99 diff: move diff globals to diff.h 2019-11-16 16:40:25 -05:00
7274f5c177 vim-patch:8.1.1922: in diff mode global operations can be very slow
Problem:    In diff mode global operations can be very slow.
Solution:   Do not call diff_redraw() many times, call it once when redrawing.
            And also don't update folds multiple times.
4f57eefe1e
2019-11-16 16:40:24 -05:00
d3ef88db63 Merge pull request #11338 from bfredl/vvlua
v:lua and better error messages for vimL->lua
2019-11-16 22:36:32 +01:00
dab40f43b1 Add v:lua.func() vimL syntax for calling lua
Also simplify error messages when calling lua from vimL.
2019-11-16 22:33:21 +01:00
18096631b1 Merge pull request #11399 from bfredl/markundo
extmark: do not crash in read-only buffer
2019-11-16 12:01:53 +01:00
ebdf90e7d7 extmark: don't crash in RO buffer. 2019-11-16 11:58:32 +01:00
6222cca36a undo: delete undo_off global without effect 2019-11-16 11:03:43 +01:00
d79164c9f9 vim-patch:8.1.0992: :normal resets reg_executing() result #11398
Problem:    A :normal command while executing a register resets the
            reg_executing() result.
Solution:   Save and restore reg_executing. (closes vim/vim#4066)
cce713ddcc
2019-11-16 00:34:25 -08:00
4bd7881fce [scripts/gen_vimdoc.py] Generate better-formatted mpack
Changes the generated msgpack result values in the runtime/doc/*.mpack
files to be formatted like this (instead of being formatted like Vim help text):
    [
        'nvim_win_get_var': {
                'signature': 'nvim_win_get_var({window}, {name}, {err})',
                'parameters': [('Window', 'window'), ('String', 'name'), ('Error *', 'err')],
                'parameters_doc': [{'window': 'Window handle, or 0 for current window', 'name': 'Variable name'}],
                'doc': ['Gets a window-scoped (w:) variable'],
                'return': ['Variable value'],
                'seealso': []
            }
        },
        ...
    ]
2019-11-15 20:00:13 -06:00
e3b08a0fc4 Merge #11384 from janlazo/vim-8.1.2293
vim-patch:8.1.{927,2293}
2019-11-14 00:02:29 -08:00
570ee5f404 f_getenv/setenv: Access v_special when v_type is VAR_SPECIAL #11388
Multiple Debian builds were failing these tests:

    Failures:
    	From test_environ.vim:
    	Found errors in Test_external_env():
    	function RunTheTest[37]..Test_external_env line 16: Expected '' but got 'FOO=null\n'
    	Found errors in Test_getenv():
    	function RunTheTest[37]..Test_getenv line 2: Expected v:null but got v:false
    	Found errors in Test_setenv():
    	function RunTheTest[37]..Test_setenv line 5: Expected v:null but got 'null'

This is because nvim has a separate tag (`v_special`) in `typval_T` for
special variables, whereas vim re-uses the `v_number` tag.

On little-endian architectures, using the incorrect tag is not an issue
because the byte representation is the same.  However, on big-endian
systems this caused the `v_number == kSpecialVarNull` checks to fail,
and the non-special code to execute.
2019-11-13 21:34:10 -08:00
a0c18bf201 spell: fix clang logic error
https://neovim.io/doc/reports/clang/report-487b01.html#EndPath
https://neovim.io/doc/reports/clang/report-ce4c3c.html#EndPath
2019-11-13 19:25:40 -05:00
c2ceed4994 quickfix: fix dead assignment
Cherry-picked from vim patch 8.1.1489.
2019-11-13 19:25:40 -05:00
6989ac05f4 vim-patch:8.1.0927: USE_CR is never defined
Problem:    USE_CR is never defined.
Solution:   Remove usage of USE_CR. (Ken Takata, closes vim/vim#3958)
0059074008
2019-11-13 19:25:39 -05:00
0cb6fc804d vim-patch:8.1.2293: join adds trailing space when second line is empty
Problem:    Join adds trailing space when second line is empty. (Brennan
            Vincent)
Solution:   Do not add a trailing space.
cc184cfb09
2019-11-13 19:25:39 -05:00
807e4039cb Sort man pages by relevance during goto_tag() 2019-11-13 22:00:11 +00:00
18c5f6ab9f Don't attempt swapfiles for man pages
This is because we now use :tag to open a man page, which attempts
to open a swap file for a path under man://...
2019-11-13 21:57:17 +00:00
aeee41192b Remove eventignore - :Man now uses :tag to populate the page 2019-11-13 21:56:28 +00:00
63abe3ca19 Factor out parse_one_cmd()
This will allow us to reuse the parsing logic elsewhere,
namely for inccommand logic.
2019-11-13 21:05:47 +00:00
c512dffb55 vim-patch:8.1.0266: parsing Ex address range is not a separate function
Problem:    Parsing Ex address range is not a separate function.
Solution:   Refactor do_one_cmd() to separate address parsing.
ee8415bc59
2019-11-13 20:59:21 +00:00
00dc12c5d8 lua LSP client: initial implementation (#11336)
Mainly configuration and RPC infrastructure can be considered "done". Specific requests and their callbacks will be improved later (and also served by plugins). There are also some TODO:s for the client itself, like incremental updates.

Co-authored by at-tjdevries and at-h-michael, with many review/suggestion contributions.
2019-11-13 21:55:26 +01:00
db436d5277 Merge #11376 'extmark: renames, docs' 2019-11-12 00:05:26 -08:00
a24eff0e27 extmark: fix spelling of "Extmark"
The spelling "Extmark" is used almost everywhere, so don't spell it
"ExtMark" inconsistently.
2019-11-11 22:12:59 -08:00
2d7e1c32a8 extmark: rename ExtendedMark => Extmark 2019-11-11 22:12:59 -08:00
54473e9a67 doc [ci skip] 2019-11-11 22:12:59 -08:00
0190de9aab Merge #11307 'Lua: vim.validate()' 2019-11-11 21:25:16 -08:00
8d70335b00 vim-patch:8.1.0622: adding quickfix items marks items as valid errors #11373
Problem:    Adding quickfix items marks items as valid errors. (Daniel Hahler)
Solution:   Check when items are valid. (Yegappan Lakshmanan, closes vim/vim#3683,
            closes vim/vim#3633)
9752c72f49
2019-11-11 21:24:25 -08:00
122426966e Merge pull request #11356 from bfredl/extmark2
extmark API feature
2019-11-11 21:48:14 +01:00
18a8b702c0 extmark: review changes 2019-11-11 20:18:15 +01:00
a9065a5051 nsmarks: initial commit 2019-11-11 19:43:15 +01:00
e757f4d536 namespace: add ns_initialized func 2019-11-11 19:43:15 +01:00
181486d7e6 api: fix typo in debug function name 2019-11-11 19:25:10 +01:00
f59e1f58a2 Lua: mark some functions as "private"
Problem:  scripts/gen_vimdoc.py gets confused and tries to generate docs
          for `fn_index` and `func`.
Solution: Rename them to be private.
2019-11-11 00:43:02 -08:00
7a3d3257db fix nvim__buf_stats
Accidentally renamed in 1cb4674547.
2019-11-10 23:43:49 -08:00
a0d992785f Lua: Use vim.validate() instead of assert() 2019-11-10 23:43:49 -08:00
7aa4042d3b Lua: vim.validate() 2019-11-10 23:43:49 -08:00
678a51b1da Lua: vim.validate()
We often want to do type checking of public function arguments.

- test: Rename utility_function_spec.lua to vim_spec.lua
- .luacov: Map lua module names
2019-11-10 22:50:24 -08:00
b9c9283f72 spellfile.vim: improve error message for missing spellfile
Problem:  If spellfile is missing, then "set spell" in modeline/sandbox
          fails with a non-obvious error.
Solution: Check for sandbox early and give a meaningful error.
          Fixes #11359

Test case:
    # test.latex has `% vim: set spelllang=hu:`
    # no spell file for `hu` yet!
    nvim -u NORC --cmd 'autocmd FileType tex setlocal spell' --cmd 'set modeline' test.latex

Before:
    No spell file for "hu" in utf-8
    Download it?
    Downloading hu.utf-8.spl...
    Error detected while processing /usr/local/share/nvim/runtime/autoload/netrw.vim:
    line  583:
    E12: Command not allowed from exrc/vimrc in current dir or tag search: au WinEnter *^Iif &ft == "netrw"|call s:NetrwInsureWinVars()|endif
    Error detected while processing function spellfile#LoadFile[60]..spellfile#Nread[13]..netrw#NetRead[4]..<SNR>67_NetrwOptionsSave:
    line   66:
    E171: Missing :endif
    Error detected while processing function spellfile#LoadFile[60]..spellfile#Nread:
    line   13:
    E171: Missing :endif
    Error detected while processing function spellfile#LoadFile:
    line   60:
    E171: Missing :endif
    Error detected while processing modelines:
    line    1:
    E12: Command not allowed from exrc/vimrc in current dir or tag search

After:
    Error detected while processing function spellfile#LoadFile:
    line    5:
    E605: Exception not caught: Cannot download spellfile in sandbox/modeline. Try ":set spell" from the cmdline.
    Error detected while processing modelines:
    line    1:
    E12: Command not allowed from exrc/vimrc in current dir or tag search
2019-11-10 12:35:45 -08:00
06a020af09 Merge pull request #11366 from bfredl/flakycat
tests: vim.rpcnotify test is flaky
2019-11-10 19:26:40 +01:00
d200a818a7 tests: vim.rpcnotify test is flaky 2019-11-10 17:13:53 +01:00
1cb4674547 api: add nvim_buf_get_virtual_text() (#11354)
This adds the missing partner function of nvim_buf_set_virtual_text().
2019-11-10 16:38:04 +01:00
3a075ce3dc Merge pull request #11310 from bfredl/luarpc
lua: add vim.rpcrequest, vim.rpcnotify and vim.NIL
2019-11-10 14:46:14 +01:00
474d0bcbf7 lua: vim.rpcrequest, vim.rpcnotify, vim.NIL 2019-11-10 13:08:05 +01:00
ece3d19b02 Merge #11004 'test/Screen:expect: support "{MATCH:…}"' 2019-11-09 23:16:52 -08:00
4abb67c027 test/Screen:expect: replace "{IGNORE}" with "{MATCH:…}"
ref #11004
2019-11-09 22:26:01 -08:00
c0abaf9ca6 tests: Screen:expect: support "{MATCH:…}" 2019-11-09 21:58:28 -08:00
268252c8c7 Merge #11343 from janlazo/vim-8.1.2244
vim-patch:8.1.{324,1091,2244,2258,2262,2268,2270,2272}
2019-11-09 21:55:28 -08:00
7a23b67d35 paste: Select-mode, Visual-mode #11360
fix #11344
2019-11-09 21:18:51 -08:00
099c38efed quickfix: fix pvs/v547 2019-11-09 10:11:56 -05:00
6e42eb4dc9 vim-patch:8.1.0324: off-by-one error in cmdidx check
Problem:    Off-by-one error in cmdidx check. (Coverity)
Solution:   Use ">=" instead of ">".
74c8be2c68

Fix pvs/v557.
2019-11-09 09:58:33 -05:00
2ed23af9b2 vim-patch:8.1.2272: test may hang at more prompt
Problem:    Test may hang at more prompt.
Solution:   Reset 'more' after resetting 'compatible'. (Michael Soyka)
34059e7b67
2019-11-09 09:58:32 -05:00
2a59ae0f1d vim-patch:8.1.2270: "gf" is not tested in Visual mode
Problem:    "gf" is not tested in Visual mode.
Solution:   Add Visual mode test and test errors. (Dominique Pelle,
            closes vim/vim#5197)
0208b6b771
2019-11-09 09:58:32 -05:00
805a577f71 vim-patch:8.1.2268: spell file flag zero is not recognized
Problem:    Spell file flag zero is not recognized.
Solution:   Use -1 as an error value, so that zero can be used as a valid flag
            number.
3d2a47c782
2019-11-09 09:58:32 -05:00
3e2f7baf21 vim-patch:8.1.2262: unpack assignment in function not recognized
Problem:    Unpack assignment in function not recognized.
Solution:   Skip over "[a, b]". (closes vim/vim#5051)
1e673b9eb6
2019-11-09 09:58:32 -05:00
c3cb54b5ff vim-patch:8.1.1091: MS-Windows: cannot use multi-byte chars in environment var
Problem:    MS-Windows: cannot use multi-byte chars in environment var.
Solution:   Use the wide API. (Ken Takata, closes vim/vim#4008)
f0908e6fe1
2019-11-09 09:58:32 -05:00
697b0d73a7 vim-patch:8.1.2258: may get hit-enter prompt after entering a number
Problem:    May get hit-enter prompt after entering a number. (Malcolm Rowe)
Solution:   Put back accidentally deleted lines. (closes vim/vim#5176)
dc968e7a45
2019-11-09 09:58:32 -05:00
b8a56e0986 vim-patch:8.1.2244: 'wrapscan' is not used for "gn"
Problem:    'wrapscan' is not used for "gn".
Solution:   Only reset 'wrapscan' for the first search round. (closes vim/vim#5164)
82cf7f6df7
2019-11-09 09:58:31 -05:00
5689008060 build: add shlint target for shellcheck (#11350) 2019-11-09 13:39:01 +01:00
9fb278ddea vim-patch.sh: multiline printf -> heredoc (#11351)
The following script is cut out from vim-patch.sh:

```sh
#!/usr/bin/env bash

BASENAME=vim-patch.sh

printf "\nInstructions:
To port one of the above patches to Neovim, execute this script with the patch revision as argument and follow the instructions, e.g.
'%s -p v8.0.1234', or '%s -P v8.0.1234'

NOTE: Please port the _oldest_ patch if you possibly can.
      You can use '%s -l path/to/file' to see what patches are missing for a file.
" "${BASENAME}" "${BASENAME}" "${BASENAME}"
```

The code itself should be correct, but shellcheck 0.7.0 says:

```
In /tmp/test.sh line 5:
  printf "\nInstructions:
         ^-- SC2183: This format string has 2 variables, but is passed 3 arguments.
```

We also had a problem before that a `%s` was added, but the accompanying
argument to printf was forgotten. Using a heredoc is less error-prone, since we
insert variables directly.
2019-11-08 20:47:58 +01:00
2ba212e8c2 vim-patch.sh: add missing argument
[skip ci]
2019-11-08 15:18:01 +01:00
f79369d420 Merge #11277 'doc [ci skip]' 2019-11-06 01:49:33 -08:00
9ef16a1628 doc: vim.fn, vim.call(), vim.api [ci skip] 2019-11-06 01:37:50 -08:00
c66297452c doc: file-change-detect [ci skip] 2019-11-05 21:50:48 -08:00
3e21d49836 Merge #11319 'inccommand: fix issues with modifiers and prompting' 2019-11-05 17:34:21 -08:00
4f124702c0 Simplify + inline/align comment 2019-11-05 18:56:54 +00:00
610755ff62 Merge PR #11291 from shanesmith/vim-8.1.1256-take2 2019-11-04 12:28:31 +01:00
e2b54fda72 autocmd: Fix event name casing #11332
Affects getcompletion()
2019-11-04 16:18:06 +09:00
93626b8af9 Merge pull request #10994 from bfredl/colorindex
allow pass through of :terminal palette colors with termguicolors
2019-11-03 11:07:40 +01:00
f707a7ef68 terminal: add tests for palette color forwarding 2019-11-03 10:14:58 +01:00
75ad558747 Merge #11324 from janlazo/vim-8.1.2235
vim-patch:8.1.{2235,2236}
2019-11-03 05:13:52 +09:00
1c43fb1d51 syntax: zero-init local structs
Fix https://neovim.io/doc/reports/clang/report-ee5dbd.html#EndPath
2019-11-02 14:38:28 -04:00
6c5772f7da quickfix: fix pvs/v547 error 2019-11-02 14:26:49 -04:00
4a5adae950 vim-patch:8.1.2236: ml_get error if pattern matches beyond last line
Problem:    Ml_get error if pattern matches beyond last line.
Solution:   Adjust position if needed. (Christian Brabandt, closes )
bb26596242
2019-11-02 12:21:15 -04:00
33cdff1b5c test/screen: make snapshot_util() work properly in rgb_cterm mode 2019-11-02 11:01:58 +01:00
cbaba19001 terminal: preserve support for g:terminal_color_X = "#1234ab" 2019-11-02 11:01:58 +01:00
31137e9bc7 highlight: correctly disable index attribute with combine/blend 2019-11-02 11:01:58 +01:00
08fe10010a terminal: enable pass through indexed colors to TUI 2019-11-02 11:01:58 +01:00
0cee300194 Simplify split_success logic 2019-11-02 09:31:48 +00:00
eb509dc7c5 tui: simplify branching of rgb vs cterm colors 2019-11-02 09:58:25 +01:00
63ab994fba vim-patch:8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Problem:    "C" with 'virtualedit' set does not include multi-byte char.
Solution:   Include the whole multi-byte char. (Nobuhiro Takasaki,
            closes vim/vim#5152)
77ccc00340
2019-11-01 22:29:48 -04:00
90981f5861 update_version_stamp.lua: Use NUL on Windows #11323 2019-11-02 04:54:59 +09:00
471427d045 vim-patch:8.1.2231: introduce gM command #11321
Problem:    Not easy to move to the middle of a text line.
Solution:   Add the gM command. (Yasuhiro Matsumoto, closes vim/vim#2070)
8b530c1ff9
2019-11-01 13:43:20 +09:00
98d7c7db12 Minor updates and comment format fixes
- cursel argument for qf_list_entry() changed from int to bool
- Return type of qf_list_has_valid_entries() changed from int to bool
- Unnecessary size_t casting in qf_new_list removed
- Use Doxygen-style comment blocks for functions
2019-11-01 00:25:51 -04:00
36b4191e41 Document skip_colon_white() 2019-10-31 23:21:14 +00:00
d04ab11f24 Prevent prompts during inccommand previews
For example, "Backwards range given, OK to swap (y/n)?" on each keypress.
2019-10-31 19:22:22 +00:00
d52d782389 Prevent :topleft, etc modifying the inccommand preview window 2019-10-31 19:16:52 +00:00
1f6ce1f97d Only apply 'icm' substitutions when preview was successfully opened 2019-10-31 19:16:52 +00:00
1c7aa11312 Allow multiple leading colons before and after modifiers for 'inccommand' 2019-10-31 19:16:52 +00:00
3b3d217754 Factor out skip_colon_white() 2019-10-31 19:16:52 +00:00
d4384cbbf3 Remove unnecessary expr in 'icm' test 2019-10-31 18:55:43 +00:00
efaf4732e2 lua/executor.c: use TRY_WRAP 2019-10-29 22:39:07 -07:00
c6afad78d3 man.vim: remove push_tag and simplify man#open_page 2019-10-29 18:41:30 +00:00
83b6d9f197 termdebug.vim: reset evalFromBalloonExprResult #11309
The value is used again in case of a pointer and it will cause errors then.
2019-10-28 21:05:49 -07:00
a4d48d37c1 vim-patch:8.1.1256: cannot navigate through errors relative to the cursor
Problem:    Cannot navigate through errors relative to the cursor.
Solution:   Add :cabove, :cbelow, :labove and :lbelow. (Yegappan Lakshmanan,
            closes vim/vim#4316)
3ff33114d7
2019-10-27 23:43:47 -04:00
cf7c34dea1 vim-patch:8.1.1112: duplicate code in quickfix file
Problem:    Duplicate code in quickfix file.
Solution:   Move code into functions. (Yegappan Lakshmanan, closes vim/vim#4207)
87f59b09ea
2019-10-27 23:24:54 -04:00
c222f3e006 vim-patch:8.1.1098: quickfix code duplication
Problem:    Quickfix code duplication.
Solution:   Refactor the qf_init_ext() function. (Yegappan Lakshmanan,
            closes vim/vim#4193)
95946f1209
2019-10-27 23:15:28 -04:00
e55eac92c6 vim-patch:8.1.1062: quickfix code is repeated
Problem:    Quickfix code is repeated.
Solution:   Define FOR_ALL_QFL_ITEMS(). Move some code to separate functions.
            (Yegappan Lakshmanan, closes vim/vim#4166)
a16123a666
2019-10-27 22:42:29 -04:00
5a212a96a6 Merge #11276 from h-michael/module-pattern
Use module pattern with vim/shared.lua
2019-10-27 15:43:38 -07:00
fdd243bf3b Merge #11303 from janlazo/vim-8.1.1245
vim-patch:8.1.{1245,2154}
2019-10-27 14:30:36 -07:00
31536ae003 provider/pythonx: don't assume CWD (empty string) is in path #11304
sys.path.remove("") raises ValueError if the item is missing.

https://docs.python.org/3/library/functions.html#filter:
> filter(function, iterable) is equivalent to the generator expression (item
> for item in iterable if function(item))

fixes #11293
2019-10-27 14:27:22 -07:00
d10d7aed79 vim-patch:8.1.1030: quickfix function arguments are inconsistent
Problem:    Quickfix function arguments are inconsistent.
Solution:   Pass a list pointer instead of info and index. (Yegappan
            Lakshmanan, closes vim/vim#4135)
0398e00a1b
2019-10-27 16:25:59 -04:00
7714c9e210 vim-patch:8.1.1006: repeated code in quickfix support
Problem:    Repeated code in quickfix support.
Solution:   Move code to functions. (Yegappan Lakshmanan, closes vim/vim#4091)
4aa47b28f4
2019-10-27 16:19:17 -04:00
0f93528d1f vim-patch:8.1.0532: cannot distinguish between quickfix and location list
Problem:    Cannot distinguish between quickfix and location list.
Solution:   Add an explicit type variable. (Yegappan Lakshmanan)
2d67d307ee
2019-10-27 16:19:17 -04:00
8d10241a62 vim-patch:8.1.0488: using freed memory in quickfix code
Problem:    Using freed memory in quickfix code. (Dominique Pelle)
Solution:   Add the quickfix_busy() flag to postpone deleting quickfix lists
            until it is safe. (Yegappan Lakshmanan, closes #3538)
9f84ded38b
2019-10-27 16:17:35 -04:00
f0dc110f31 vim-patch:8.1.0469: too often indexing in qf_lists[]
Problem:    Too often indexing in qf_lists[].
Solution:   Use a qf_list_T pointer. (Yegappan Lakshmanan)
108e7b422b
2019-10-27 15:33:30 -04:00
b041096ed4 vim-patch:8.1.0407: quickfix code mixes using the stack and a list pointer
Problem:    Quickfix code mixes using the stack and a list pointer.
Solution:   Use a list pointer in more places. (Yegappan Lakshmanan,
            closes vim/vim#3443)
fe15b7dfa6
2019-10-27 15:33:30 -04:00
a123050c1a vim-patch:8.1.0252: quickfix functions are too long
Problem:    Quickfix functions are too long.
Solution:   Refactor. (Yegappan Lakshmanan, closes vim/vim#2950)
de3b3677f7
2019-10-27 15:33:29 -04:00
e085cacba4 Merge pull request #11302 from bfredl/luacall
lua: add vim.fn.{func} for direct access to vimL function
2019-10-27 19:49:30 +01:00
8ee7c94a92 lua: add vim.fn.{func} for direct access to vimL function
compared to vim.api.|nvim_call_function|, this fixes some typing issues
due to the indirect conversion via the API. float values are preserved
as such (fixes #9389) as well as empty dicts/arrays.

Ref https://github.com/norcalli/nvim.lua for the call syntax
2019-10-27 17:23:17 +01:00
0f7a645f54 vim-patch:8.1.2154: quickfix window height wrong when there is a tabline
Problem:    Quickfix window height wrong when there is a tabline. (Daniel
            Hahler)
Solution:   Take the tabline height into account. (closes vim/vim#5058)
1142a31b8c
2019-10-27 11:35:11 -04:00
7c26be61bb vim-patch:8.1.1245: ":copen 10" sets height in full-height window
Problem:    ":copen 10" sets height in full-height window. (Daniel Hahler)
Solution:   Don't set the height if the quickfix window is full height.
            (closes vim/vim#4325)
36d502225c
2019-10-27 11:31:10 -04:00
f9da267373 scripts/lua2dox.lua: Remove class declaration block
Judging class definitions in the form "string.find (line, '=% s * class% (')"
must force writing class definitions in this format, but such a mechanism is Absent.
Also, Lua has no formal class in the language specification, and implements inheritance with setmetadable.
To detect this, we should have a parser for it, not a simple regular expression.
2019-10-27 11:58:28 +09:00
479c014122 Merge #11298 from janlazo/vim-8.1.2220
vim-patch:8.1.2220
2019-10-26 19:19:03 -07:00
0cf694e83e ci: do not skip before_install on lint job 2019-10-26 21:19:02 -04:00
3bee2f1604 ci: use python3 for flake8
'make pylint' fails if flake8 runs on python2.
2019-10-26 20:27:03 -04:00
c3d81a4902 vim-patch:8.1.2220: :cfile does not abort like other quickfix commands
Problem:    :cfile does not abort like other quickfix commands.
Solution:   Abort when desired. Add tests for aborting. (Yegappan Lakshmanan,
            closes vim/vim#5121)
6a0cc916bd
2019-10-26 20:23:53 -04:00
6d8fe9b3f4 lint 2019-10-26 16:21:22 -07:00
46bde66147 gen_vimdoc.py: dump API docs to msgpack #11296
Convenient for API clients who want to reuse the API docs in their own
docs. Could be used e.g. to eliminate nvim.net's own doxygen parser:
3a736232a4/src/NvimClient.APIGenerator/Docs

TODO: currently the result values are formatted as Vim help docs. We
should change the values to have structure, something like this:

    [{
      'nvim_win_get_var': [
        'line1,
        'line2',
        [ 'item1', 'item2', ... ]
      ],
      'nvim_win_set_var': [
        ...
      ],
      ...
    }]

close #11296
2019-10-26 15:31:15 -07:00
726c8c7d74 win/dist: nvim-qt v0.2.15 #11295 2019-10-26 13:18:14 -07:00
ad532d3c66 Merge #11294 from tomtomjhj/vim-8.1.2173
vim-patch:8.1.{2173,2207,2218}
2019-10-26 12:50:51 -07:00
4b5e2f7a0b tests: remove some redundant legacy tests #11028
These were turned into new-style Vim tests in cbecae46f.
2019-10-26 12:43:38 -07:00
ec5776d92d build: add -fstack-protector* to linker #11292
Needed by chromeOS.
fixes #11228
2019-10-26 12:36:26 -07:00
6dcc1d1005 vim-patch:8.1.2218: "gN" is off by one in Visual mode
Problem:    "gN" is off by one in Visual mode.
Solution:   Check moving forward. (Christian Brabandt, vim/vim#5075)
453c19257f
2019-10-27 03:35:19 +09:00
c26466ae8b vim-patch:8.1.2207: "gn" doesn't work quite right
Problem:    "gn" doesn't work quite right. (Jaehwang Jerry Jung)
Solution:   Improve and simplify the search logic. (Christian Brabandt,
            closes vim/vim#5103, closes vim/vim#5075)
edaad6e0a0
2019-10-27 03:35:19 +09:00
034077ed1c vim-patch:8.1.2173: searchit() has too many arguments
Problem:    Searchit() has too many arguments.
Solution:   Move optional arguments to a struct.  Add the "wrapped" argument.
92ea26b925
2019-10-27 03:35:19 +09:00
19ba36d0e1 Merge #11271 from h-michael/add-more-info
lua/vim.shared: improve some validation messages
2019-10-26 02:30:40 -07:00
316c29bbf3 test/pcall_err(): truncate full paths, omit linenr
ref #11271
2019-10-26 02:00:58 -07:00
996a057fb9 lua/stdlib: adjust some validation messages #11271
close #11271
2019-10-26 00:27:01 -07:00
91b831da8b Merge #11275 from janlazo/ci/nodejs
ci/nodejs: use node v10, prefer shell builtins in ci scripts
2019-10-25 22:26:15 -07:00
0b771cd9aa vim-patch:8.1.0859: handle multibyte "%v" in 'errorformat' #11285
Problem:    "%v" in 'errorformat' does handle multi-byte characters.
Solution:   Handle multi-byte characters. (Yegappan Lakshmanan, closes vim/vim#3700)
c45eb770a5
2019-10-25 22:17:21 -07:00
99aa166cb1 man.vim: never switch to non-man window #11286
In order to find if there was already an open man page, the :Man command
would cycle through each window to see if &ft=='man'. This triggers
autocmds, e.g. BufEnter, unnecessarily and can have unexpected
side-effects.

Change the logic to check each window's ft without switching to it
unless it is actually a man window.

Signed-off-by: Joshua Rubin <me@jawa.dev>
2019-10-25 09:41:22 -07:00
ec205f4b9b ci: simplify tree-sitter-cli install
Remove useless `npm link` for tree-sitter-cli.
Use powershell builtins.
2019-10-25 07:24:57 -04:00
9b22b69454 CI/Appveyor: set powershell strict mode
Set-PSDebug produces too much noise and has global scope.
Strict mode is scoped to the script context and catches errors.
2019-10-25 07:24:56 -04:00
c065b0d75f CI: bump nodejs to v10.x (LTS)
v8.x will be EOL at end of 2019.
nvm on Travis has outdated LTS aliases.
2019-10-25 07:24:56 -04:00
4f4f5ef4fd Merge #11213 from janlazo/vim-8.1.0014
vim-patch:8.1.{14,288,345,410,434,438,455}
2019-10-24 20:41:39 -07:00
ced2a38ad4 tag: fix pvs/v547 error 2019-10-24 22:40:30 -04:00
0173bdf98b man.vim: parse the section from the tag 2019-10-24 22:15:57 +01:00
2f0412e61d man.vim: :Man preserves the tag stack 2019-10-24 22:15:57 +01:00
63f0ca3263 man.vim: use 'tagfunc' instead of remapping
man#pop_tag() is also no longer used
2019-10-24 21:15:18 +01:00
ed72d9597d man.vim: pull out s:get_paths() 2019-10-24 21:15:16 +01:00
8daefa348e vim-patch:8.1.0455: checking for empty quickfix stack is not consistent
Problem:    Checking for empty quickfix stack is not consistent.
Solution:   Use qf_stack_empty(). (Yegappan Lakshmanan)
019dfe6855
2019-10-23 01:33:17 -04:00
aa8f059397 vim-patch:8.1.0438: the ex_make() function is too long
Problem:    The ex_make() function is too long.
Solution:   Split it into several functions. (Yegappan Lakshmanan)
b434ae2a1f
2019-10-23 01:33:16 -04:00
279ff23379 vim-patch:8.1.0434: copy_loclist() is too long
Problem:    copy_loclist() is too long.
Solution:   Split in multiple functions. (Yegappan Lakshmanan)
09037503ea
2019-10-23 01:33:16 -04:00
8257d49ff6 vim-patch:8.1.0410: the ex_copen() function is too long
Problem:    The ex_copen() function is too long.
Solution:   Refactor to split off two functions. (Yegappan Lakshmanan)
476c0db002
2019-10-23 01:33:16 -04:00
f3d6d8750b vim-patch:8.1.0345: cannot get the window id associated with the location list
Problem:    Cannot get the window id associated with the location list.
Solution:   Add the "filewinid" argument to getloclist(). (Yegappan
            Lakshmanan, closes vim/vim#3202)
c9cc9c78f2
2019-10-23 01:33:16 -04:00
5e02bd071e vim-patch:8.1.0288: quickfix code uses cmdidx too often
Problem:    Quickfix code uses cmdidx too often.
Solution:   Add is_loclist_cmd(). (Yegappan Lakshmanan)
396659592f
2019-10-23 01:33:16 -04:00
6dceaf3361 vim-patch:8.1.0014: qf_init_ext() is too long
Problem:    qf_init_ext() is too long.
Solution:   Split it into multiple functions. (Yegappan Lakshmanan,
            closes vim/vim#2939)
6053f2d29a
2019-10-23 01:33:15 -04:00
53b025887e Merge #11261 from janlazo/vim-8.1.2185
vim-patch:8.1.{2185,2188,2190,2197}
2019-10-22 21:09:45 -07:00
9e4db2ef50 Merge #11199 from bobrippling/vim-8.1.1228
vim-patch:8.1.{1099,1228,1962} add 'tagfunc'
2019-10-22 20:27:35 -07:00
c2fc4255f9 runtime: Use module pattern with vim/shared.lua
It's a bit cumbersome for us to add an export target every time we define a new function.
It's also cumbersome to care about the order of definition when creating a new function by referring to other functions in the module.
2019-10-23 10:50:42 +09:00
3b6b528ea9 vim-patch:8.1.1962: leaking memory when using tagfunc()
Problem:    Leaking memory when using tagfunc().
Solution:   Free the user_data. (Dominique Pelle, closes vim/vim#4886)
55008aad50
2019-10-22 20:13:02 +01:00
194f7bface vim-patch:8.1.1228: not possible to process tags with a function
Problem:    Not possible to process tags with a function.
Solution:   Add tagfunc() (Christian Brabandt, Andy Massimino, closes vim/vim#4010)
45e18cbdc4
2019-10-22 20:13:02 +01:00
e284b7233f Perform HASHTAB_ITER bookkeeping before user-code
The `HASHTAB_ITER` logic keeps track of how many entries in the hash
table are left to visit, decrementing this on each iteration of the
loop. This was previously decremented at the end of the loop body:

```c
size_t hi##todo_ = hi##ht_->ht_used;
for (hashitem_T *hi = hi##ht_->ht_array; hi##todo_; hi++) {
  if (!HASHITEM_EMPTY(hi)) {
    {
      <user code, macro-inserted>
    }
    hi##todo_--; // <--- important decrement here
  }
}
```

This meant that if the body of the loop (substituted in via macro
expansion) contained a `continue` statement, we'd skip decrementing our
counter, meaning we'd iterate too many times over the hash table,
usually leading to an out of bounds read beyond the hash table's
memory, or uninitialised/null pointers from unused hash table slots.

Decrementing `hi##todo` before the arbitrary loop body protects us from
this, and has no adverse side-effects since only the macro code can (or
should) use this variable.

Before this commit, no code within `HASHTAB_ITER()` contained a
`continue`, meaning this bug was left dormant and the fix has a very
minimal chance of introducing any bugs.
2019-10-22 19:55:55 +01:00
c067efa696 vim-patch:8.1.2197: ExitPre autocommand may cause accessing freed memory
Problem:    ExitPre autocommand may cause accessing freed memory.
Solution:   Check the window pointer is still valid. (closes vim/vim#5093)
34ba06b6e6
2019-10-21 07:34:06 -04:00
13a6878d18 vim-patch:8.1.2190: syntax test fails on Mac
Problem:    Syntax test fails on Mac.
Solution:   Limit the window size to 20 rows.
83e9a1ce75
2019-10-21 07:34:05 -04:00
60415a5d3a vim-patch:8.1.2188: build error for missing define
Problem:    Build error for missing define.
Solution:   Add missing change.
2b78ab5d0c

These "WILD_" macros are used in earlier vim patches.
2019-10-21 07:34:05 -04:00
f4cbe96488 vim-patch:8.1.2185: syntax test fails
Problem:    Syntax test fails.
Solution:   Add missing file patch.
bbfd1562ae
2019-10-21 07:34:05 -04:00
02393a0c74 ci/install.sh: pin treesitter to v0.15.9 #11266
When "tree-sitter test" is executed, query test is also executed, but "tree-sitter-c" does not have query test yet, so cli version that does not include query test execution To use.

ref e14e285a10
2019-10-20 22:53:00 -07:00
2e4465e058 vim-patch:8.1.2168: heredoc not skipped in if-block #11265
Problem:    Heredoc assignment not skipped in if block.
Solution:   Check if "skip" is set.

b1ba9abcb3

Fixes https://github.com/neovim/neovim/issues/11264
2019-10-20 17:17:25 -07:00
6fd6f4683d TUI/thread: guard env map from potential race with unibilium #11259
unibi_from_term calls getenv internally, so exclusive control is required.
2019-10-20 15:47:08 -07:00
019c8d13dd build/doc/CI: remove/update quickbuild references #11258 2019-10-19 18:04:08 -07:00
06a6828f01 Merge #11211 from jbradaric/vim-8.1.1585
vim-patch:8.1.{1585,1625,1723,1729}
2019-10-19 15:23:14 -07:00
93fe30593b ex_echo: fix check for got_int #11225
It needs to return to not output any remaining parts.

Followup to https://github.com/neovim/neovim/pull/10926
Ref: https://github.com/neovim/neovim/issues/10923
2019-10-19 14:45:27 -07:00
029b828693 Merge #11249 from janlazo/vim-8.1.2151
vim-patch:8.1.{2151,2152,2161,2162,2175,2177,2178}
2019-10-19 14:17:22 -07:00
d89ec55c45 test/functional: retry/Screen: failure instead of error #11173
- Running out of retries, or unexpected screen state should make the
  test FAIL, not ERROR.
- Uses levels to report the location of the caller.
- Improve message with retry-failure (formatting).

Before:

    [ RUN      ] test: 103.53 ms ERR
    test/functional/helpers.lua:388:
    retry() attempts: 1
    test/functional/ui/screen.lua:587: Row 1 did not match.
    Expected:
      |*X^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |
    Actual:
      |*^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |

    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.

    stack traceback:
            test/functional/helpers.lua:388: in function 'retry'
            test/functional/test_spec.lua:24: in function <test/functional/test_spec.lua:23>

After:

    [ RUN      ] test: 105.22 ms FAIL
    test/functional/test_spec.lua:24: stopping after 1 retry() attempts.
    test/functional/test_spec.lua:25: Row 1 did not match.
    Expected:
      |*X^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |
    Actual:
      |*^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |

    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.

    stack traceback:
            test/functional/helpers.lua:389: in function 'retry'
            test/functional/test_spec.lua:24: in function <test/functional/test_spec.lua:23>
2019-10-19 14:15:07 -07:00
3de4dc539a vim-patch:8.1.2180: Error E303 is not useful when 'directory' is empty (#11257)
Problem:    Error E303 is not useful when 'directory' is empty.
Solution:   Skip the error message. (Daniel Hahler, vim/vim#5067)
00e192becd
2019-10-19 14:11:31 -07:00
68b0873c45 vim-patch:8.1.2182: test42 seen as binary by git diff #11256
Problem:    Test42 seen as binary by git diff.
Solution:   Add .gitattributes file.  Make explicit that 'cpo' does not
            contain 'S'. (Daniel Hahler, closes vim/vim#5072)
5b39d7adb0
2019-10-19 11:31:50 -07:00
d27fc08257 vim-patch:8.1.2178: accessing uninitialized memory in test
Problem:    Accessing uninitialized memory in test.
Solution:   Check if there was a match before using the match position.
            (Dominique Pelle, closes vim/vim#5088)
15ee567809
2019-10-19 11:59:09 -04:00
437fe261ab vim-patch:8.1.2177: Dart files are not recognized
Problem:    Dart files are not recognized.
Solution:   Add a filetype rule. (Eugene Ciurana, closes vim/vim#5087)
afbdb905c3
2019-10-19 11:55:32 -04:00
1e4a9f9993 vim-patch:8.1.2175: meson files are not recognized
Problem:    Meson files are not recognized.
Solution:   Add the meson filetype. (Liam Beguin , Nirbheek Chauhan,
            closes vim/vim#5056)  Also recognize hollywood.
c3bf7b56f2
2019-10-18 23:23:14 -04:00
6c6abd11f7 vim-patch:8.1.2151: state test is a bit flaky
Problem:    State test is a bit flaky.
Solution:   Add to the list of flaky tests.
3c8cd4a1dc
2019-10-18 23:19:55 -04:00
7ba26ef3c0 vim-patch:8.1.2162: popup resize test is flaky
Problem:    Popup resize test is flaky. (Christian Brabandt)
Solution:   Add the function to the list of flaky tests.
4e03933726
2019-10-18 23:19:55 -04:00
c54a7e586b vim-patch:8.1.2161: mapping test fails
Problem:    Mapping test fails.
Solution:   Run the test separately.
4bd88d568a
2019-10-18 23:19:55 -04:00
0e0d4a7b4c vim-patch:8.1.2152: problems navigating tags file on MacOS Catalina
Problem:    Problems navigating tags file on MacOS Catalina.
Solution:   Use fseek instead of lseek. (John Lamb, fixes vim/vim#5061)
27fc8cab22
2019-10-18 23:19:54 -04:00
175ca82ca7 tests: let_spec: enable "multibyte env var to child process" (#11233) 2019-10-18 20:41:24 +02:00
84aa86afb7 build: do not build test fixtures by default (#11230)
- tty-test is also used on Windows
- FUNCTIONALTEST_PREREQS: add printenv-test
2019-10-18 16:32:56 +02:00
4bbad54817 tests: fix non-controversial misuse of pending (#11247)
Ref: https://github.com/neovim/neovim/pull/11184
2019-10-18 04:46:30 +02:00
0785f8e8b1 vim-patch:8.1.2140: "gk" and "gj" do not work correctly in number column #11208
Problem:    "gk" and "gj" do not work correctly in number column.
Solution:   Allow for a negative "curswant". (Zach Wegner, closes vim/vim#4969)
ceba3dd518
2019-10-17 01:24:23 -07:00
94bda2fec8 Merge #11215 from erw7/vim-8.1.0084
vim-patch:8.1.{84,85,361}
2019-10-17 01:19:30 -07:00
913d01bb03 vim-patch:8.1.2096: too many #ifdefs #11229
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_COMMENTS.
8c96af9c05

Fixes https://github.com/vim/vim/issues/4972.
2019-10-17 00:44:10 -07:00
c5c06665ed scripts/vim-patch.sh: lazily update Vim source (#11207)
This gets done only initially, for `-l`, and when a commit cannot be found.

Also provide more compact instructions with `-l` / `show_vimpatches`.
2019-10-16 15:44:38 +02:00
932edf4f33 tests: tui_spec: fix waiting for terminal to be ready (#11232)
The screen would have '-- TERMINAL --' already initially.

Related to flakiness of "TUI FocusGained/FocusLost in terminal-mode".
2019-10-15 20:50:51 +02:00
2e14dffbb4 deps: pass LDFLAGS+=-static (#11138)
This is required when `build_old_libs=no` is used in `libtool`.

Fixes https://github.com/neovim/neovim/issues/11198
2019-10-14 15:16:58 +02:00
d0efc1c906 mac: fix "tags file not sorted" bug on Catalina (#11222)
I/O in Catalina is currently known to be broken. This commit works around a pesky bug and also makes the code more consistent by removing the mix of C file and standard I/O.

Fixes https://github.com/neovim/neovim/issues/11196
2019-10-14 13:58:41 +02:00
8add4cb8fd vim-patch 8.1.0361: remote user not used for completion
Problem:    Remote user not used for completion. (Stucki)
Solution:   Use $USER too. (Dominique Pelle, closes #3407)
6b0b83f768
2019-10-14 15:07:10 +09:00
ba082885d2 Merge pull request #11206 from bfredl/testattr
tests/refactor: make screen.ui use "linegrid" representation internally
2019-10-13 23:43:06 +02:00
5cf6beb221 scripts/vim-patch.sh -l: display commit subjects
Closes https://github.com/neovim/neovim/pull/11182.
2019-10-13 23:14:33 +02:00
cc0d725230 tests/ui: completely delete "attr_ignore" feature
All existing usages are ad-hoc/random/lazyness. Generating attribute
specifications is not hard since four years, just do it always.
2019-10-13 22:10:42 +02:00
4987311fb5 tests/ui: remove unnecessary screen:detach()
It is perfectly fine and expected to detach from the screen just by
the UI disconnecting from nvim or exiting nvim. Just keep detach() in
screen_basic_spec, to get some coverage of the detach method itself.

This avoids hang on failure in many situations (though one could argue
that detach() should be "fast", or at least "as fast as resize",
which works in press-return already).

Never use detach() just to change the size of the screen, try_resize()
method exists for that specifically.
2019-10-13 22:10:42 +02:00
a330129a28 tests/ui: cleanup illegitimate usages of "attr_ignore"
"attr_ignore" is an anti-pattern, with snapshot_util()
just include all the highlights already.
2019-10-13 22:10:42 +02:00
5a85699425 tests/ui: make screen.lua use "linegrid" representation internally
PR #8221 took a short-cut when implementing the tests: screen.lua would
translate the linegrid highlight ids back into the old per-cell
attribute description.

Apart from cleaning up technical debt, this enables to check both rgb
and cterm colors in the same expect(), which previously was needlessly
restricted to ext_hlstate tests only.
2019-10-13 22:10:42 +02:00
76f548a476 vim-patch:8.1.1729: heredoc with trim not properly handled in function
Problem:    Heredoc with trim not properly handled in function.
Solution:   Allow for missing indent. (FUJIWARA Takuya, closes vim/vim#4713)
ecaa75b4ce
2019-10-13 11:54:54 +02:00
3b894b1cb1 vim-patch:8.1.1723: heredoc assignment has no room for new features
Problem:    Heredoc assignment has no room for new features. (FUJIWARA Takuya)
Solution:   Require the marker does not start with a lower case character.
            (closes vim/vim#4705)
2458200729
2019-10-13 11:54:54 +02:00
fcc24d0df3 vim-patch:8.1.1625: script line numbers are not exactly right
Problem:    Script line numbers are not exactly right.
Solution:   Handle heredoc and continuation lines better. (Ozaki Kiichi,
            closes vim/vim#4611, closes vim/vim#4511)
bc2cfe4672
2019-10-13 11:54:54 +02:00
b89e970cfb vim-patch 8.1.0085: no test for completing user name and language
Problem:    No test for completing user name and language.
Solution:   Add tests. (Dominique Pelle, closes #2978)
5f8f2d378a
2019-10-13 17:48:01 +09:00
14c611ed77 vim-patch 8.1.0084: user name completion does not work on MS-Windows
Problem:    User name completion does not work on MS-Windows.
Solution:   Use NetUserEnum() to get user names. (Yasuhiro Matsumoto)
828c3d7083
2019-10-13 17:34:08 +09:00
6c012b0624 vim-patch:8.1.1585: :let-heredoc does not trim enough
Problem:    :let-heredoc does not trim enough.
Solution:   Trim indent from the contents based on the indent of the first
            line.  Use let-heredoc in more tests.
e7eb92708e
2019-10-13 00:03:27 +02:00
dd49a130ff vim-patch:8.1.1099: the do_tag() function is too long
Problem:    The do_tag() function is too long.
Solution:   Factor parts out to separate functions.  Move simplify_filename()
            to a file where it fits better. (Andy Massimino, closes vim/vim#4195)
b4a6020ac6
2019-10-12 12:17:10 +01:00
9af0fe529d recovery mode (-r/-L): use headless_mode (#11187)
Fixes https://github.com/neovim/neovim/issues/11181.
2019-10-11 19:17:11 +02:00
401398bc4b vim-patch:8.1.2125: fnamemodify() fails when repeating :e
Problem:    Fnamemodify() fails when repeating :e.
Solution:   Do not go before the tail. (Rob Pilling, closes vim/vim#5024)
b189295b72
2019-10-10 22:33:42 -07:00
5f60861f5a fnamemodify: fix handling of :r after :e #11165
- Test fnamemodify()
- Test handling of `expand("%:e:e:r")`.
- Fix :e:e:r on filenames with insufficiently many extensions

During `fnamemodify()`, ensuring that we don't go before the filename's
tail is insufficient in cases where we've already handled a ":e"
modifier, for example:

```
"path/to/this.file.ext" :e:e:r:r
         ^    ^-------- *fnamep
         +------------- tail
```

This means for a ":r", we'll go before `*fnamep`, and outside the bounds
of the filename. This is both incorrect and causes neovim to exit with
an allocation error.

We exit because we attempt to calculate `s - *fnamep` (line 23948).
Since `s` is before `*fnamep`, we caluclate a negative length, which
ends up being interpreted as an amount to allocate, causing neovim to
exit with ENOMEM (`memory.c:xmalloc`).

We must instead ensure we don't go before `*fnamep` nor `tail`.
The check for `tail` is still relevant, for example:

```
"path/to/this.file.ext" :r:r:r
 ^       ^------------- tail
 +--------------------- *fnamep
```
Here we don't want to go before `tail`.

close #11165
2019-10-10 22:33:42 -07:00
a7fc2f3f64 test: "!:&" works with powershell #11201
Removed 'echo' alias because it does not behave like POSIX echo.
2019-10-10 21:30:20 -07:00
b772b86d2b Remove "highbright bold" conversion. Fixes #11190
When using TUI host terminal should take care of this (regardless
if 'termguicolors' is active or not). For GUI the behavior doesn't make
sense (GUI should display bold attr as bold always).
2019-10-10 23:59:59 +02:00
6768c43e21 update_version_stamp: redirect stderr on first try, --first-parent #11186
Avoid noise during builds:

> fatal: No annotated tags can describe '417449f468c4ba186954f6295b3338fb55ee7b4a'.
> However, there were unannotated tags: try --tags.

This might be useful in general, but is expected to not happen - and
falling back is OK then.  The fallback command would still display
errors then.

It also uses `--first-parent`, which is important for when a release
branch gets merged back.
2019-10-10 01:38:15 -07:00
51f2826f61 doc: update shellquote for powershell #11122
shellquote is not treated like shellxquote for non-quote values.
2019-10-10 01:16:02 -07:00
f2ad93168b third-party: upgrade libvterm to 0.1.2 (#11177) 2019-10-09 19:44:44 +02:00
db9f68f98d ci: AppVeyor: coverage for Lua (Windows) (#10426) 2019-10-09 03:07:42 +02:00
7e4b744b64 ci: OpenBSD: enable functionaltest (#11178) 2019-10-08 17:36:58 +02:00
3b3a409781 Merge #11077 'vim-patch:8.1.{1354,1356,1362,1588}' 2019-10-07 21:51:04 -07:00
7faa6c41c8 cmake: only set LUA_PRG with successful check (#11172)
This is relevant for when using `USE_BUNDLED_LUAJIT=ON` with
`USE_BUNDLED_LUAROCKS=OFF`, and then building without the necessary modules
being installed/activated there yet: it would check the other (system) "lua"
interpreters also, and in case all failed keep the `LUA_PRG` in the cache for
the last failed entry - making it not re-check the previous ones on the next
build (after you might have activated your custom LuaRocks installation).

Only setting LUA_PRG if the check was successful handles the case better where
it is configured already - we should not try to re-configure it then.
2019-10-07 17:42:40 +02:00
0586a4b512 vim-patch:8.1.1588: in :let-heredoc line continuation is recognized
Problem:    In :let-heredoc line continuation is recognized.
Solution:   Do not consume line continuation. (Ozaki Kiichi, closes vim/vim#4580)
e96a2498f9
2019-10-07 14:14:13 +02:00
c84b39150f vim-patch:8.1.1362: code and data in tests can be hard to read
Problem:    Code and data in tests can be hard to read.
Solution:   Use the new heredoc style. (Yegappan Lakshmanan, closes vim/vim#4400)
c79745a82f
2019-10-07 14:14:13 +02:00
b5ac11139e vim-patch:8.1.1356: some text in heredoc assignment ends the text
Problem:    Some text in heredoc assignment ends the text. (Ozaki Kiichi)
Solution:   Recognize "let v =<<" and skip until the end.
8471e57026
2019-10-07 14:14:13 +02:00
b1ada8ec21 vim-patch:8.1.1354: getting a list of text lines is clumsy
Problem:    Getting a list of text lines is clumsy.
Solution:   Add the =<< assignment. (Yegappan Lakshmanan, closes vim/vim#4386)
f5842c5a53
2019-10-07 14:14:13 +02:00
dfed0e60d7 Merge pull request #11154 from blueyed/bump-tree-sitter
ci: upgrade tree-sitter from 0.15.2 to 0.15.9
2019-10-07 13:34:23 +02:00
6ea49d8c76 ci: use cluacov for better performance (#11152) 2019-10-07 13:01:14 +02:00
23ba875b82 Merge #11170 from janlazo/vim-8.1.2120
vim-patch:8.1.2120
2019-10-06 18:52:38 -07:00
97cdfdcde2 Remove dead code 2019-10-06 21:22:02 -04:00
09232958ff vim-patch:8.1.2120: some MB_ macros are more complicated than necessary
Problem:    Some MB_ macros are more complicated than necessary. (Dominique
            Pelle)
Solution:   Simplify the macros.  Expand inline.
1614a14901
2019-10-06 21:11:38 -04:00
8f20c50caa ci: submit_coverage: run luacov actually (#11169)
Apparently this got lost with #11127 / 77a551b65.
2019-10-07 00:44:54 +02:00
c8fe2a8d23 test/old: add test_fnamemodify.vim (#11168)
Moved to a new-style test in vim/vim@610cc1b9b (v7.4.1652).

Ref: https://github.com/neovim/neovim/pull/11165#issuecomment-538785588
2019-10-06 23:35:52 +02:00
e9b420dba5 lint 2019-10-06 22:55:24 +02:00
7a3602378f ci: upgrade tree-sitter from 0.15.2 to 0.15.9
tree-sitter-c is still at 0.15.2 though.
2019-10-06 22:55:11 +02:00
2b08dd8f06 tests: retry: "wait() evaluates the condition on given interval" (#11155)
Ref: https://github.com/neovim/neovim/issues/11137
2019-10-06 22:47:40 +02:00
e452988960 tests/functional: keep $TMPDIR in env (#11163) 2019-10-06 22:26:54 +02:00
93bceac9bd Merge #11157 from janlazo/vim-8.1.2113
vim-patch:8.1.{59, 586, 2113}
2019-10-06 12:32:27 -07:00
d1abd6513e vim-patch:8.1.0586: :digraph output is not easy to read
Problem:    :digraph output is not easy to read.
Solution:   Add highlighting for :digraphs. (Marcin Szamotulski, closes vim/vim#3572)
            Also add section headers for :digraphs!.
eae8ae1b2b
2019-10-06 09:43:39 -04:00
b007e5d882 vim-patch:8.1.0059: displayed digraph for "ga" wrong with 'encoding' "cp1251"
Problem:    Displayed digraph for "ga" wrong with 'encoding' "cp1251".
Solution:   Convert from 'encoding' to "utf-8" if needed. (closes vim/vim#3015)
bc5020aa4d
2019-10-06 09:34:47 -04:00
55007180a3 doc: Fix TEST_FILTER example #11158 2019-10-06 02:21:06 -07:00
fe074611cd vim-patch:8.1.1371: cannot recover from a swap file #11081
Problem:    Cannot recover from a swap file.
Solution:   Do not expand environment variables in the swap file name.
            Do not check the extension when we already know a file is a swap
            file.  (Ken Takata, closes 4415, closes vim/vim#4369)
99499b1c05
2019-10-05 20:35:48 -07:00
1396cc9abb version.c: update [ci skip] #10981
vim-patch:8.0.0934: change to struts.h missing in patch
vim-patch:8.0.1176: job_start() does not handle quote and backslash correctly
vim-patch:8.0.1492: memory leak in balloon_split()
vim-patch:8.0.1582: in the MS-Windows console mouse movement is not used
vim-patch:8.0.1619: Win32 GUI: crash when winpty is not installed
vim-patch:8.0.1624: options for term_dumpdiff() and term_dumpload() not implemented
vim-patch:8.0.1665: when running a terminal from the GUI 'term' is not useful
vim-patch:8.0.1666: % argument in ch_log() causes trouble
vim-patch:8.0.1685: can't set ANSI colors of a terminal window
vim-patch:8.0.1711: term_setsize() is not implemented yet
vim-patch:8.0.1722: cannot specify a minimal size for a terminal window
vim-patch:8.0.1725: terminal debugger doesn't handle command arguments
vim-patch:8.0.1742: cannot get a list of all the jobs
vim-patch:8.0.1798: MS-Windows: file considered read-only too often
vim-patch:8.0.1835: print document name does not support multi-byte

vim-patch:8.1.0080: can't see the breakpoint number in the terminal debugger
vim-patch:8.1.0156: MS-Windows compiler warning
vim-patch:8.1.0226: too many #ifdefs
vim-patch:8.1.0722: cannot build without the virtualedit feature
vim-patch:8.1.0745: compiler warnings for signed/unsigned string
vim-patch:8.1.0752: one more compiler warning for signed/unsigned string
vim-patch:8.1.2025: MS-Windows: Including shlguid.h causes problems for msys2
vim-patch:8.1.2027: MS-Windows: problem with ambiwidth characters
vim-patch:8.1.2033: cannot build with tiny features
vim-patch:8.1.2049: cannot build tiny version
vim-patch:8.1.2061: MS-Windows GUI: ":sh" crashes when trying to use a terminal
vim-patch:8.1.2075: get many log messages when waiting for a typed character
vim-patch:8.1.2078: build error with +textprop but without +terminal
vim-patch:8.1.2084: Amiga: cannot get the user name
vim-patch:8.1.2086: missing a few changes for the renamed files
vim-patch:8.1.2088: renamed libvterm mouse.c file not in distributed file list
vim-patch:8.1.2090: not clear why channel log file ends
vim-patch:8.1.2101: write_session_file() often defined but not used
vim-patch:8.1.2102: can't build with GTK and FEAT_GUI_GNOME
vim-patch:8.1.2112: build number for ConPTY is outdated

The following `if_pyth` patch seems to be N/A. In `~/.local/`, python 2 and 3 have their own subfolders in `~/.local/include/` and `~/.local/lib/`. `PYTHONUSERBASE` is enough to make the user modules work (on my machine) for the legacy tests.
vim-patch:8.0.1451: difficult to set the python home directories properly

The following patch requires `set compatible` and unsupported `cpoptions`:
vim-patch:8.1.1331: test 29 is old style
2019-10-05 20:13:47 -07:00
5581ffac74 vim-patch:8.1.2113: ":help expr-!~?" only works after searching
Problem:    ":help expr-!~?" only works after searching.
Solution:   Escape "~" after "expr-". (closes vim/vim#5015)
9ca250855b
2019-10-05 11:17:30 -04:00
402afb0895 Makefile: use $TMPDIR below src/nvim/testdir (#11153)
This makes it ignored/cleaned automatically.
It was made absolute in 8821579ba, but to the root back then.
2019-10-04 22:10:16 +02:00
b4ea09cc06 Fix potential deadlock #11151
ELOG may call os_getenv and os_setenv internally. In that case, a
deadlock occurs.
2019-10-04 08:18:24 -07:00
77a551b657 ci: coverage for Lua (no Windows, using luacov) (#11127) 2019-10-04 16:09:42 +02:00
a341eb6087 win_line: update w_last_cursorline always
Vim patch 8.1.0856 (54d9ea6) caused a performance regression in Neovim,
when `set conceallevel=1 nocursorline` was used, since then due to
refactoring in 23c71d5 `w_last_cursorline` would never get updated
anymore.

Adds/uses `redrawdebug+=nodelta` for testing this.

Fixes https://github.com/neovim/neovim/issues/11100.
Closes https://github.com/neovim/neovim/pull/11101.
2019-10-04 08:48:57 +02:00
cd73a0342a tests: tui_spec: improve/merge OptionSet/deferred
Closes https://github.com/neovim/neovim/pull/11129.
2019-10-04 08:39:16 +02:00
382391bb2d health: provider: skip checks with g:loaded_X_provider = 0 (#11147)
The Python provider was special (via [1]), and would continue to do
checks with `0` being set explicitly even.
This was fixed in #11044 (45447e3b6), ref: #11040.

This extends it to use the same method with all providers.

1: https://github.com/neovim/neovim/pull/8047
2019-10-04 08:16:30 +02:00
c3ae5e1375 test/old: align with Vim #11096 2019-10-03 00:32:14 -07:00
8d68a37c5a refactor: wrap common plines() usage in plines_win_full() #11141 2019-10-02 23:06:05 -07:00
f96d1e6bc4 tui: fix handling of bg response after suspend (#11145)
`tui_terminal_after_startup` gets called right after resuming from
suspending (via `Ctrl-z`) already (not delayed as with the startup
itself), and would set `waiting_for_bg_response` to false then directly.
This results in the terminal response not being processed then anymore,
and leaking into Neovim itself.

This changes it to try 5 times always, which means that it typically
would stop after a few characters of input from the user typically, e.g.
with tmux, which does not send a reply.

While it might be better to have something based on the time (e.g. only
wait for max 1s), this appears to be easier to do.

Fixes regression in 8a4ae3d.
2019-10-03 08:04:24 +02:00
30479417e8 Merge #11087 from janlazo/vim-8.1.0010
vim-patch:8.1.{10,230,315,330,514,517,518,1327,1347,1758,2072,2074,2091,2095,2103}
2019-10-02 22:43:59 -07:00
b069e9b20f tests: unit: NVIM_TEST_TRACE_LEVEL: default to 0 #11144
Traces are not useful normally (unless debugging/fixing tests), but only add
overhead.  Disable them by default.
2019-10-02 22:41:57 -07:00
3d3c783fea ci: Travis: simplify 32bit build (#11093)
- `CMAKE_SYSTEM_LIBRARY_PATH` should not be used, and is a
  semicolon-separated list anyway [1]

1: https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_LIBRARY_PATH.html
2019-10-03 05:40:25 +02:00
4518f230fa vim-patch:8.1.0330: the qf_add_entries() function is too long
Problem:    The qf_add_entries() function is too long.
Solution:   Split in two parts. (Yegappan Lakshmanan)
6f6ef7c195
2019-10-02 00:52:22 -04:00
0c1be45ea0 shell: improve displaying of pulse (#11130)
- output "[...]" to indicate throttling is being used, instead of just
  an empty line
- go to beginning of line after displaying the pulse, so that following
  output is displayed over it
2019-10-02 06:26:57 +02:00
333dc3d138 Fix flaky test: tui_spec: increase timeout (#11134)
Meant to fix:

    [  ERROR   ] test/functional/terminal/tui_spec.lua @ 925: TUI FocusGained/FocusLost in terminal-mode
    test/functional/ui/screen.lua:587: Row 6 did not match.
    Expected:
      |{1:r}eady $                                           |
      |[Process exited 0]                                |
      |                                                  |
      |                                                  |
      |                                                  |
      |*gained                                            |
      |{3:-- TERMINAL --}                                    |
    Actual:
      |{1:r}eady $                                           |
      |[Process exited 0]                                |
      |                                                  |
      |                                                  |
      |                                                  |
      |*:terminal                                         |
      |{3:-- TERMINAL --}                                    |

    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.

    stack traceback:
    	test/functional/ui/screen.lua:587: in function '_wait'
    	test/functional/ui/screen.lua:370: in function 'expect'
    	test/functional/terminal/tui_spec.lua:934: in function <test/functional/terminal/tui_spec.lua:925>

I've thought about adding this, but it might not be really relevant, and
slows down the tests a bit (and a warning "warning: Screen test
succeeded immediately" with another test):

```diff
diff --git i/test/functional/terminal/tui_spec.lua w/test/functional/terminal/tui_spec.lua
index ada073c4e..4bc2ab4e0 100644
--- i/test/functional/terminal/tui_spec.lua
+++ w/test/functional/terminal/tui_spec.lua
@@ -818,6 +818,11 @@ describe('TUI FocusGained/FocusLost', function()
       ..'", "-u", "NONE", "-i", "NONE", "--cmd", "set noswapfile noshowcmd noruler"]')
     feed_data(":autocmd FocusGained * echo 'gained'\n")
     feed_data(":autocmd FocusLost * echo 'lost'\n")
+    -- Wait for autocommand to be registered.
+    retry(nil, nil, function()
+      feed_data(":autocmd FocusLost\n")
+      screen:expect{any="         echo 'lost'"}
+    end)
     feed_data("\034\016")  -- CTRL-\ CTRL-N
   end)
```
2019-10-02 04:56:22 +02:00
ada2ec4416 vim-patch:8.1.0315: helpgrep with language doesn't work properly
Problem:    Helpgrep with language doesn't work properly. (Takuya Fujiwara)
Solution:   Check for the language earlier. (Hirohito Higashi)
c631f2df62
2019-10-01 22:27:45 -04:00
efef797126 vim-patch:8.1.2103: wrong error message if "termdebugger" is not executable
Problem:    wrong error message if "termdebugger" is not executable.
Solution:   Check if "termdebugger" is executable and give a clear error
            message. (Ozaki Kiichi, closes vim/vim#5000)  Fix indents.
18223a592e
2019-10-01 22:27:45 -04:00
655085204e vim-patch:8.1.0230: directly checking 'buftype' value
Problem:    Directly checking 'buftype' value.
Solution:   Add the bt_normal() function. (Yegappan Lakshmanan)
91335e5a67
2019-10-01 22:27:45 -04:00
8b67c8f8c6 vim-patch:8.1.2095: leaking memory when getting item from dict
Problem:    Leaking memory when getting item from dict.
Solution:   Also free the key when not evaluating.
a893194d91
2019-10-01 22:27:44 -04:00
74947203af vim-patch:8.1.2091: double free when memory allocation fails
Problem:    Double free when memory allocation fails. (Zu-Ming Jiang)
Solution:   Use VIM_CLEAR() instead of vim_free(). (closes vim/vim#4991)
0f1c6708fd
2019-10-01 22:27:44 -04:00
56c860ac4a quickfix: fix pvs/v547 errors 2019-10-01 22:27:44 -04:00
8732cce315 vim-patch:8.1.2074: test for SafeState autocommand is a bit flaky
Problem:    Test for SafeState autocommand is a bit flaky.
Solution:   Add to list of flaky tests.
0d0c3ca007
2019-10-01 22:27:44 -04:00
1f4c9da9c6 test: fix screen assertions 2019-10-01 22:27:44 -04:00
90c2abc53f vim-patch:8.1.1347: fractional scroll position not restored after closing window
Problem:    Fractional scroll position not restored after closing window.
Solution:   Do restore fraction if topline is not one.
bd2d68c2f4
2019-10-01 22:27:44 -04:00
6ed20ff25c vim-patch:8.1.1327: unnecessary scroll after horizontal split
Problem:    Unnecessary scroll after horizontal split.
Solution:   Don't adjust to fraction if all the text fits in the window.
            (Martin Kunev, closes vim/vim#4367)
a9b2535f44
2019-10-01 22:27:43 -04:00
e8144d204c vim-patch:8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Problem:    Test_window_split_edit_bufnr() fails on AppVeyor.
Solution:   Disable the failing part for now.
8617b40159
2019-10-01 22:27:43 -04:00
14f3287b98 vim-patch:8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Problem:    Test_window_split_edit_alternate() fails on AppVeyor.
Solution:   Disable the failing part for now.
d42333d8e9
2019-10-01 22:27:43 -04:00
17e96d96ba vim-patch:8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Problem:    CTRL-W ^ does not work when alternate buffer has no name.
Solution:   Use another method to split and edit the alternate buffer. (Jason
            Franklin)
1bbb619483
2019-10-01 22:27:43 -04:00
8d0bc3c189 vim-patch:8.1.1758: count of g$ not used correctly when text is not wrapped
Problem:    Count of g$ not used correctly when text is not wrapped.
Solution:   Do use the count. (Christian Brabandt, closes vim/vim#4729, closes vim/vim#4566)
d5c8234517
2019-10-01 22:27:43 -04:00
24c4d4e125 vim-patch:8.1.2072: "gk" moves to start of line instead of upwards
Problem:    "gk" moves to start of line instead of upwards.
Solution:   Fix off-by-one error. (Christian Brabandt, closes vim/vim#4969)
03ac52fc02
2019-10-01 22:27:43 -04:00
0253f0cd92 vim-patch:8.1.0010: efm_to_regpat() is too long
Problem:    efm_to_regpat() is too long.
Solution:   Split off three functions. (Yegappan Lakshmanan, closes vim/vim#2924)
6bff719f7e
2019-10-01 22:27:42 -04:00
8e25cf3881 patch_terminfo_bugs: TERM=xterm with non-xterm: ignore smglr (#11132)
"smglr" was added for TERM=xterm recently to the terminfo database,
which causes display issues with terminals that use `TERM=xterm` by
default for themselves, although not supporting it.

This patch makes "smglr" to be ignored then.

Fixes https://github.com/neovim/neovim/issues/10562
2019-10-02 04:07:10 +02:00
b7d6caaa03 Fix redraw regression with w_p_cole in visual mode
Fixes https://github.com/neovim/neovim/issues/11024, regressed in 23c71d51.
Closes https://github.com/neovim/neovim/pull/11120.
2019-10-02 03:51:46 +02:00
30ae60e7ca Fix/revisit git-describe enhancement (#11124)
* Fix/keep massaging git-describe result

Ref: https://github.com/neovim/neovim/pull/11117#issuecomment-536416223

* build: revisit generation of version from Git

Fixes "make clean && make", where "auto/versiondef.h" would be missing
since b18b84d - because BYPRODUCTS are apparently removed when cleaning.

This includes the following improvements/changes:

- do not run git-describe during CMake's configure phase just for
  reporting
- do not print with changed Git version (too noisy, simplifies code)

* Move to src/nvim (included before config) for easier flow

* fallback to describe always, write empty include file

* update_version_stamp.lua: use prefix always
2019-10-02 03:45:59 +02:00
ac32426b94 build: get rid of warnings with cmake --debug-output (#11131) 2019-10-02 03:44:57 +02:00
8a4ae3d664 tui: improve handle_background_color: short-circuit (#11067)
* handle_background_color: short-circuit if handled already

* Unit tests for handle_background_color

* set waiting_for_bg_response to false in tui_terminal_after_startup
  By then it should have been received.
2019-09-30 22:00:55 +02:00
7e46fcaf23 Merge pull request #11121 from bfredl/invalidcell
screen: don't crash on invalid cells being recomposed (tui_raw_line assert)
2019-09-30 20:32:59 +02:00
dd26bd5974 screen: don't crash on invalid grid cells being recomposed 2019-09-30 19:05:54 +02:00
dc52458522 third-party: upgrade libluv: 1.30.0-0 => 1.30.1-1 (#11092)
Changes: https://github.com/luvit/luv/compare/1.30.0-0...1.30.1-1
2019-09-30 12:55:47 +02:00
179c46a016 provider#pythonx: resolve/expand exe from host var (#11047)
This reverts part of ade88fe4c [1].

This is required for `let g:python3_host_prog = 'python'` etc, where it
should get picked up from PATH.

Without this it would show:

```
  - INFO: pyenv: Path: /home/user/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/user/.pyenv
  - INFO: Using: g:python3_host_prog = "python"
  - ERROR: "python" was not found.
  - INFO: Executable: Not found
  - ERROR: Detected pip upgrade failure: Python executable can import "pynvim" but not "neovim": python
    - ADVICE:
      - Use that Python version to reinstall "pynvim" and optionally "neovim".
          pip3 uninstall pynvim neovim
          pip3 install pynvim
          pip3 install neovim  # only if needed by third-party software
```

Note that it additionally causes a weird error
("Detected pip upgrade failure"), due to `s:check_bin` emptying
`python_exe` (because the non-absolute file not being readable), and
`provider#pythonx#DetectByModule('pynvim', a:version)` from 75593e6fce
then just getting the value from the host var again (without actual
checks).
This is implicitly fixed via this patch now (because it is skipped), but
could need some improvement in this regard probably.

With this patch it resolves it (for a virtualenv where pynvim is not
made available intentionally):
```
  - INFO: pyenv: Path: /home/daniel/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/daniel/.pyenv
  - INFO: Using: g:python3_host_prog = "python"
  - WARNING: $VIRTUAL_ENV exists but appears to be inactive. This could lead to unexpected results.
    - ADVICE:
      - If you are using Zsh, see: http://vi.stackexchange.com/a/7654
  - INFO: Executable: /home/daniel/.pyenv/shims/tmp-system-deoplete.nvim-f205aF/python
  - ERROR: Command error (job=11, exit code 1): `'/home/daniel/.pyenv/shims/tmp-system-deoplete.nvim-f205aF/python' -c 'import sys; sys.path.remove(""); import neovim; print(neovim.__file__)'` (in '/home/daniel/.dotfiles/vim/plugged/deoplete.nvim')
    Output: Traceback (most recent call last):  File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim'
    Stderr: Traceback (most recent call last):  File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim'
  - INFO: Python version: 3.7.4
  - INFO: pynvim version: unable to load neovim Python module
  - ERROR: pynvim is not installed.
    Error: unable to load neovim Python module
    - ADVICE:
      - Run in shell: pip3 install pynvim

```

Note: this appears to display the error twice via "Output:" and
"Stderr:".

1: https://github.com/neovim/neovim/pull/8784
2019-09-30 12:52:04 +02:00
b0f5441c5e bundle: upgrade LuaJIT to latest v2.1 (#10321) 2019-09-30 12:50:22 +02:00
b18b84df5e build: run git-describe for dev version during build (#11117)
This avoids invoking CMake after a new commit, which might take 15s on
some systems.

Skipped on CMake < 3.2.0 (missing BYPRODUCTS support).

Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
2019-09-30 00:10:29 +02:00
ce637d0ef1 Merge pull request #11115 from bfredl/wildmenumode
cmdline: wildmenumode() should be true with wildoptions+=pum
2019-09-29 15:55:18 +02:00
0a2a1e241f cmake: use LibFindMacros for utf8proc (#11114)
Also update doc.
2019-09-29 04:44:02 +02:00
34d55f8607 terminfo_start: keep first flushing of ui buffer (#11118)
Initially done in 3626d2107 (#11074, for #11062), it was reverted then
in 445f2f409 (#11083, which added flushing later).

But it is still required here to avoid the reporting of the background
response with urxvt/kitty (`nvim -u NONE -cq`).
Apparently I've tested this not enough with 445f2f409 (probably only within tmux).
2019-09-29 03:06:36 +02:00
0636b25f28 cmdline: wildmenumode() should be true with wildoptions+=pum 2019-09-28 21:00:27 +02:00
e933426299 Merge pull request #10124 from bfredl/tree-sitter-api
Tree-sitter step 1: vendor runtime lib + add lua API
2019-09-28 18:35:02 +02:00
9fa850991d tree-sitter: improve and cleanup tests 2019-09-28 17:46:25 +02:00
c844f986d4 tree-sitter: use "module" pattern in lua source 2019-09-28 17:46:25 +02:00
d5a69eb076 tree-sitter: handle node equality 2019-09-28 17:46:25 +02:00
3ffcb477ef tree-sitter: start docs 2019-09-28 17:46:25 +02:00
e0d6228978 tree-sitter: use "range" instead of "point_range" consistently in lua API 2019-09-28 17:46:25 +02:00
f86a2c33a2 tree-sitter: simplify editing using the new old_byte_size parameter 2019-09-28 17:46:25 +02:00
06ee45b9b1 tree-sitter: fix lint, delete "demo" plugin (replaced by functional tests) 2019-09-28 17:46:25 +02:00
167a1cfdef tree-sitter: improve parser API (shared parser between plugins) 2019-09-28 14:55:43 +02:00
d697841a9d tree-sitter: cleanup tree refcounting 2019-09-28 14:55:43 +02:00
d24dec596c tree-sitter: inspect language 2019-09-28 14:55:43 +02:00
a88a9f128e tree-sitter: add some more API 2019-09-28 14:55:43 +02:00
c1dc1bedba tree-sitter: style 2019-09-28 14:55:43 +02:00
a361e09cc5 tree-sitter: use standard luaL_newmetatable and luaL_checkudata pattern 2019-09-28 14:55:43 +02:00
c8f861b739 tree-sitter: rename tree_sitter => treesitter for consistency 2019-09-28 14:55:43 +02:00
4ea5e63aa8 tree-sitter: add basic testing on ci
build tree-sitter c parser on ci for testing purposes
2019-09-28 14:55:43 +02:00
afba23099f tree-sitter: support pre-registration of languages 2019-09-28 14:55:43 +02:00
1e9e2451be tree-sitter: objectify API 2019-09-28 14:55:43 +02:00
005b6d638c tree-sitter: split tree-sitter lua interface from demo code 2019-09-28 14:55:43 +02:00
c07e1e8696 tree-sitter: cleanup build code 2019-09-28 14:55:43 +02:00
b871100be7 Create BuildUtf8proc.cmake and FindUtf8proc.cmake
Using advanced search and replace technology
2019-09-28 14:31:03 +02:00
0e0beef85e tree-sitter: load parsers as .so files 2019-09-28 14:31:03 +02:00
cd10096386 tree-sitter: initial tree-sitter support 2019-09-28 14:31:03 +02:00
8ff2f193bb tree-sitter: change vendored tree-sitter to use nvim memory management 2019-09-28 14:31:03 +02:00
3bddf05023 tree-sitter: vendor tree-sitter runtime
tree-sitter/tree-sitter commit 7685b7861ca475664b6ef57e14d1da9acf741275

Included files are:
lib/include/tree-sitter/*.h
lib/src/*.[ch]
LICENSE
2019-09-28 14:30:48 +02:00
0d9a3c86a1 vim-patch:8.1.2083: multi-byte chars do not work properly with "%.*S" in printf() (#11106)
Problem:    Multi-byte chars do not work properly with "%.*S" in printf().
Solution:   Use mb_ptr2cells(). Daniel Hahler, closes vim/vim#4989)
ce0fac2897
2019-09-28 00:32:22 +02:00
fe9d54f418 doc: contrib/local.mk.example: include ENABLE_LTO (#11097)
Using it takes 30+ additional seconds for me with a ccache-enabled build
(43s vs. 12s).

While it certainly makes sense to use DEBUG during development,
bisecting etc, it should be made clearer what causes this.
2019-09-26 23:43:49 +02:00
298da52fdc Merge pull request #10907 from jszakmeister/add-freebsd-sourcehut-support
build: add support for building for FreeBSD under Sourcehut
2019-09-26 05:35:12 -04:00
54c66e636a Fix two more flaky tests (#11095)
* mode_spec: retry with increasing matchtime

`matchtime=2` might still be too low (with luacov on AppVeyor).

    [  ERROR   ] test/functional\ui\mode_spec.lua @ 47: ui mode_change event works in insert mode
    test\functional\ui\screen.lua:587: mode
    Expected objects to be the same.
    Passed in:
    (string) 'insert'
    Expected:
    (string) 'showmatch'
    Hint: full state of "mode":
      "insert"

Followup to fe60013fb.
ref #10941
Initially regressed in 7ed2122622

``

* ui/screen_basic_spec: set timeoutlen=10000

This fixes the test on slow CI.

Ref: https://ci.appveyor.com/project/neovim/neovim/builds/27600387/job/t468h2b3w9lwtlm5#L10930
2019-09-26 07:37:51 +02:00
b52ae0e8ba build: add support for building for FreeBSD under Sourcehut [skip ci] 2019-09-25 19:55:49 -04:00
cb25207171 vim-patch:8.0.0914: highlight attributes are always combined (#10256)
Problem:    Highlight attributes are always combined.
Solution:   Add the 'nocombine' value to replace attributes instead of
            combining them. (scauligi, closes vim/vim#1963)
0cd2a94a40

Closes https://github.com/neovim/neovim/pull/10256.
2019-09-26 00:50:54 +02:00
2621f4455d Merge pull request #10978 from blueyed/update-libuv
third-party: update libuv to v1.32.0
2019-09-25 11:52:41 +02:00
0571145c40 paste: fix handling of "<" in cmdline (#11094)
Fixes https://github.com/neovim/neovim/issues/11088.
2019-09-25 09:15:33 +02:00
70827ea1fa test/functional/preload.lua: _set_fmode for Windows 2019-09-25 05:47:15 +02:00
bb6b1267e7 Revert "win/os_env_exists(): workaround libuv bug #10734"
This reverts commit 278c5d452c.
2019-09-25 05:47:12 +02:00
227ef71621 third-party: update libuv to v1.31.0 2019-09-25 05:45:54 +02:00
db6b4b677d tests: busted: nvim handler: display durations always (#11075)
This shows them also with test failures/errors, where it is useful to
see how long the test took (for flaky failures running into timeout).
2019-09-25 02:20:32 +02:00
81b19df5f2 cmake/GetCompileFlags: include CMAKE_C_COMPILER_ARG1 (#11091)
This is used internally (e.g. on Travis) for 32-bit builds (`-m32`).
2019-09-25 00:09:23 +02:00
0ab7da8561 timer_spec: fix/harden flaky tests (#11080)
Those are flaky when using luacov (which causes reproducible slowness).

E.g.:

    [  ERROR   ] test/functional\eval\timer_spec.lua @ 105: timers can invoke redraw in blocking getchar() call
    test\functional\ui\screen.lua:587: Row 3 did not match.
    Expected:
      |ITEM 1                                  |
      |ITEM 2                                  |
      |*{1:~                                       }|
      |{1:~                                       }|
      |{1:~                                       }|
      |^                                        |
    Actual:
      |ITEM 1                                  |
      |ITEM 2                                  |
      |*ITEM 3                                  |
      |{1:~                                       }|
      |{1:~                                       }|
      |^                                        |
2019-09-24 08:55:27 +02:00
2476a97ced tui_spec: improve "TUI paste: exactly 64 bytes" (#11086)
Doing the screen test first might give insights about a possible
(flaky?) failure, where it looks like "feed_data" is processed out of
order:

    [  ERROR   ] test/functional/terminal/tui_spec.lua @ 561: TUI paste: exactly 64 bytes #10311
    test/functional/helpers.lua:388:
    retry() attempts: 490
    test/functional/terminal/tui_spec.lua:66: Expected objects to be the same.
    Passed in:
    (table: 0x44042de8) {
     *[1] = ' endzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz' }
    Expected:
    (table: 0x41d6e568) {
     *[1] = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz end' }
    stack traceback:
            test/functional/helpers.lua:388: in function 'retry'
            test/functional/terminal/tui_spec.lua:63: in function 'expect_child_buf_lines'
            test/functional/terminal/tui_spec.lua:569: in function <test/functional/terminal/tui_spec.lua:561>

Ref: https://github.com/neovim/neovim/pull/11083#issuecomment-534375201
Build log: https://travis-ci.org/neovim/neovim/jobs/588749739#L5597
2019-09-24 08:35:29 +02:00
445f2f4096 tui: flush ui buffer in tui_terminal_after_startup (#11083)
This avoids having a dummy event to tickle the main loop.

Confirmed using `nvim -u NONE -c 'au FocusGained * q'` in tmux (with
`:set -g focus-events on`): without the flushing it would only exit
after pressing a key.

Moves the flushing done recently in 3626d2107.
`nvim -u NONE -cq` is still working (i.e. consuming the response for the
terminal background query itself), and the flickering mentioned in
3626d2107 is reduced again.

Reverts part of bfb21f3e0 (#7729).
2019-09-24 08:34:00 +02:00
6d213593ed vim-patch:8.0.1754: ex_helpgrep() is too long #11084
Problem:    ex_helpgrep() is too long.
Solution:   Refactor the function. (Yegappan Lakshmanan, closes vim/vim#2766)
2225ebb486
2019-09-23 22:28:04 -07:00
d9032308fb vim-patch:8.0.1812: refactor qf_jump_to_usable_window() #11078
Problem:    The qf_jump_to_usable_window() function is too long.
Solution:   Split it in parts. (Yegappan Lakshmanan, closes vim/vim#2891)
7a2b0e55e9
2019-09-22 18:56:31 -07:00
3626d2107e terminfo_start: flush buffer #11074
This aligns with `terminfo_stop`, which also flushes the buffer
after disabling things.

This ensures Neovim gets the response to the terminal background query
before exiting (`nvim -u NONE -cq` with e.g. urxvt or kitty).

Caveats:
* With kitty this causes some "flickering", likely since the alternate
  screen is being setup with `nvim -u NONE -cq`, whereas it would not be
  processed otherwise before quitting (as with the background query).
* tmux after this patch may print ^[[I (CSI I / FocusGained) after
  `nvim -u NONE -cq`.

Fixes https://github.com/neovim/neovim/issues/11062
2019-09-22 12:51:55 -07:00
fb26c38434 Merge #11076 from blueyed/fix-fold-patches
Fix fold patches: vim-patch:8.1.2052, vim-patch:8.1.2059
fix #11002
2019-09-22 12:32:46 -07:00
6c3d34e4df vim-patch:8.1.2059: fix for "x" deleting a fold has side effects
Problem:    Fix for "x" deleting a fold has side effects.
Solution:   Fix it where the fold is included.
56ebbabea1
2019-09-22 20:11:04 +02:00
97b82553e0 vim-patch:8.1.2052: using "x" before a closed fold may delete that fold
Problem:    Using "x" before a closed fold may delete that fold.
Solution:   Do not translate 'x' do "dl". (Christian Brabandt, closes vim/vim#4927)
7a9bd7c1e0
2019-09-22 20:11:04 +02:00
6807779c68 tests: make 'win_update redraws lines properly' more readable (#11068) 2019-09-22 14:58:38 +02:00
ed11721b6b tests: unit: fix preprocess: pass -m32 for 32bit ABI (#11073) 2019-09-22 14:57:44 +02:00
bb90e41ee2 Merge pull request #11049 from bfredl/rulermsg
screen: missing redraw/highlight for ruler in message area
2019-09-22 12:14:07 +02:00
f316916758 screen: missing redraw/highlight for ruler in message area 2019-09-22 09:38:52 +02:00
028d76e5d5 env: use putenv_s for LC_ALL, LANG, etc. #11050
Problem:  ":lang messages en_US.UTF-8" no longer overrides the language
          detected from the environment (at startup).
Solution: In os_setenv, special-case "LC_ALL", "LANG", et al. to use
          putenv_s instead of uv_os_setenv.

fixes #11045
2019-09-22 00:02:28 -07:00
c534ab8447 Merge #11034 from zwegner/precedes
Fix "precedes" listchar behavior in wrap mode
2019-09-21 23:48:08 -07:00
1654932498 vim-patch:8.1.2060: "precedes" in 'listchars' not used properly
(Credit: Zach Wegner, https://github.com/neovim/neovim/pull/11034)

Problem:    "precedes" in 'listchars' not used properly.
Solution:   Correctly handle the "precedes" char in list mode for long lines.
bffba7f704
2019-09-21 22:13:55 -07:00
18e5869f56 Fix "precedes" listchar behavior in wrap mode
Previously, the "precedes" character would be rendered on every row
when w_skipcol > 0 (i.e., when viewing a single line longer than the
entire screen), instead of just on the first row. Make sure to only
render it on the first row in this case.

Add a test for this behavior.

Fix documentation for the "precedes" character, which erroneously
stated that it was only active when wrap mode was off.
2019-09-21 22:09:52 -07:00
45447e3b64 checkhealth: skip python checks if intentionally disabled #11044
close #11040
2019-09-21 16:17:22 -07:00
ad0f97f412 vim-patch:8.1.2055: profile: adjust line format #11058
Problem:    Not easy to jump to function line from profile.
Solution:   Use "file:99" instead of "file line 99" so that "gf" works.
            (Daniel Hahler, closes vim/vim#4951)
181d4f58cc
2019-09-21 14:18:56 -07:00
fd82ce4a3a Merge #11060 from janlazo/vim-8.1.1783
vim-patch:8.0.{1109,1529,1539,1621,1733,1771,1776},8.1.{1783,2054,2058}
2019-09-21 14:07:50 -07:00
b3e56957f8 vim-patch:8.1.0460: assert_fails() message argument #11051
Problem:    assert_fails() does not take a message argument
Solution:   Add the argument.
1307d1c003
2019-09-21 14:03:46 -07:00
111d34849a vim-patch:8.0.1621: using invalid default value for highlight attribute
Problem:    Using invalid default value for highlight attribute.
Solution:   Use zero instead of -1.
6185903e3d
2019-09-21 11:07:59 -04:00
eb3888a322 vim-patch:8.0.1529: assert_equalfile() does not close file descriptors
Problem:    Assert_equalfile() does not close file descriptors. (Coverity)
Solution:   Close the file descriptors.
3049418f3d
2019-09-21 08:43:08 -04:00
2a7ffc6567 vim-patch:8.0.1776: in tests, when WaitFor() fails it doesn't say why
Problem:    In tests, when WaitFor() fails it doesn't say why.
Solution:   Turn a few more WaitFor() into WaitForAssert().
0e9d1ae321
2019-09-21 08:43:07 -04:00
3878b0822e vim-patch:8.0.1771: in tests, when WaitFor() fails it doesn't say why
Problem:    In tests, when WaitFor() fails it doesn't say why. (James McCoy)
Solution:   Add WaitForAssert(), which produces an assert error when it fails.
50182fa84e
2019-09-21 08:43:07 -04:00
7cffc87868 vim-patch:8.0.1733: incomplete testing for completion fix
Problem:    Incomplete testing for completion fix. (Lifepillar)
Solution:   Add a test with CTRL-P.
bad0ce7b26
2019-09-21 08:43:07 -04:00
ca11662515 vim-patch:8.0.1539: no test for the popup menu positioning
Problem:    No test for the popup menu positioning.
Solution:   Add a screendump test for the popup menu.
6bb2cdfe60
2019-09-21 08:43:07 -04:00
b853b6e4ea vim-patch:8.0.1109: timer causes error on exit from Ex mode
Problem:    Timer causes error on exit from Ex mode. (xtal8)
Solution:   save and restore the ex_pressedreturn flag. (Christian Brabandt,
            closes vim/vim#2079)
f5291f301e
2019-09-21 08:43:07 -04:00
42a0513095 vim-patch:8.1.2058: function for ex command is named inconsistently
Problem:    Function for ex command is named inconsistently.
Solution:   Rename do_marks() to ex_marks().
4bd782339e
2019-09-21 08:43:06 -04:00
1c71a3c657 vim-patch:8.1.2054: compiler test for Perl may fail
Problem:    Compiler test for Perl may fail.
Solution:   Accept any error line number. (James McCoy, closes vim/vim#4944)
cebfcffa40
2019-09-21 08:43:06 -04:00
690cd4f012 vim-patch:8.1.1783: MS-Windows: compiler test may fail when using %:S
Problem:    MS-Windows: compiler test may fail when using %:S.
Solution:   Reset 'shellslash'.
dff2adc8dd
2019-09-21 08:43:06 -04:00
d6f658e38f Merge pull request #11069 from bfredl/virtualcol
screen: fix vcol counting with virtual text.
2019-09-21 10:40:41 +02:00
828a6e7568 screen: fix vcol counting with virtual text. Fixes #9941 2019-09-21 09:39:10 +02:00
afd576ee94 Merge pull request #11057 from blueyed/test-indent
Vim patches for indent tests
2019-09-19 00:12:45 +02:00
660b452440 vim-patch:8.1.2056: "make test" for indent files doesn't cause make to fail
Problem:    "make test" for indent files doesn't cause make to fail.
Solution:   Exit the script with ":cquit". (Daniel Hahler, closes vim/vim#4949)
cd67059c0c
2019-09-18 22:59:13 +02:00
0e75a9eead Update runtime/indent/testdir to latest Vim runtime
Several runtime updates ignored the non-existing files.
2019-09-18 22:59:13 +02:00
48b2d21d5e vim-patch:8.1.1213: "make clean" in top dir does not cleanup indent test output
Problem:    "make clean" in top dir does not cleanup indent test output.
Solution:   Clean the indent test output.  Do not rely on the vim executable
            for that. (closes vim/vim#4307)
e13a3901ca
2019-09-18 22:46:47 +02:00
10c050caf9 vim-patch:8.1.0599: without the +eval feature the indent tests don't work
Problem:    Without the +eval feature the indent tests don't work.
Solution:   Skip the body of the tests.
eeed665b0e
2019-09-18 22:38:37 +02:00
865aaa031a vim-patch:8.1.0576: indent script tests pick up installed scripts
Problem:    Indent script tests pick up installed scripts.
Solution:   Use current runtime indent scripts.
30700cd5ff
2019-09-18 22:38:15 +02:00
b466f0e114 vim-patch:8.1.0545: when executing indent tests user preferences interfere
Problem:    When executing indent tests user preferences interfere.
Solution:   Add "--clean".
dc2f73a698
2019-09-18 22:37:54 +02:00
7f59f5b104 vim-patch:8.1.0496: no tests for indent files
Problem:    No tests for indent files.
Solution:   Add a mechanism for running indent file tests.  Add a first test
            for Vim indenting.
c0fe4978f2
2019-09-18 22:37:25 +02:00
1070c092c7 win_update: fix redraw regression (#11027)
Before 6e9ea5adc `win_ins_lines` would return `FAIL` for `i/line_count == 0`.

Handle this by checking it in the outer `if`.

Ref: https://github.com/neovim/neovim/commit/6e9ea5ad#commitcomment-35084669
2019-09-18 18:22:38 +02:00
d478542110 health#provider: fix duplicated output/stderr (#11048)
Ref: https://github.com/neovim/neovim/pull/11047#issuecomment-532268826
2019-09-18 18:21:44 +02:00
618045685b Merge #11035 from janlazo/vim-8.0.1523
vim-patch:8.0.{1523,1770}
2019-09-17 21:49:45 -07:00
8db9e82e3e vim-patch:8.0.1770: assert functions don't return anything
Problem:    Assert functions don't return anything.
Solution:   Return non-zero when the assertion fails.
65a5464985
2019-09-16 23:42:44 -04:00
792c290343 vim-patch:8.0.1523: cannot write and read terminal screendumps
Problem:    Cannot write and read terminal screendumps.
Solution:   Add term_dumpwrite(), term_dumpread() and term_dumpdiff().
            Also add assert_equalfile().
d96ff16511
2019-09-16 21:36:46 -04:00
0b71bb73e8 tests: improve error message with literat "~" directory (#11032) 2019-09-17 00:39:33 +02:00
4b2d7bb5ea tests: fix flaky 'scrollback' option deletes lines (only) if necessary (#11003)
Using `screen:expect` with the complete grid appears to fix its
flakiness.

Fixes https://github.com/neovim/neovim/issues/10723.
2019-09-16 19:17:07 +02:00
4df38ec9df server_requests_spec: fix assertion, pass Lua paths via args (#10875)
This makes it pick up the nvim Luarocks module properly when not
installed via third-party.
2019-09-16 19:16:39 +02:00
8f3d0276ee release.sh [ci skip] 2019-09-15 23:08:40 -07:00
60e0000c5d nvim.appdata.xml [ci skip] 2019-09-15 19:44:11 -07:00
f9d1e788af CI/AppVeyor: revert whitelist
revert 6b028ec5f2 #10746

This seems to skip tags also, which breaks our release automation.
From the AppVeyor logs:

    2019-09-15 17:25:00.232 Warning Commit "1f76c4af" of branch "master" skipped as commit message contains either "[skip ci]" or "[ci skip]" or "[skip appveyor]"
    2019-09-15 17:20:24.152 Warning Commit "baa5263b" skipped as branch "stable" is not in white-list
    2019-09-15 17:20:03.163 Warning Commit "6cb5ffc0" skipped as branch "release-0.4" is not in white-list
    2019-09-15 17:20:02.977 Warning Commit "baa5263b" skipped as branch "v0.4.1" is not in white-list
    2019-09-15 16:35:38.810 Warning Commit "31956372" of branch "master" skipped as commit message contains either "[skip ci]" or "[ci skip]" or "[skip appveyor]"
    2019-09-15 16:28:35.237 Warning Commit "e2cc5fe0" skipped as branch "stable" is not in white-list
    2019-09-15 16:28:17.814 Information Build version 31489 created
    2019-09-15 16:28:16.364 Warning Commit "e2cc5fe0" skipped as branch "v0.4.0" is not in white-list
2019-09-15 17:36:17 -07:00
c410440edc fix api_level_6.mpack
This was generated incorrectly in the 0.4.1 release, fixed in the 0.4.1
release.
2019-09-15 17:28:42 -07:00
1f76c4af13 nvim.appdata.xml [ci skip] 2019-09-15 17:24:41 -07:00
3195637252 release.sh [ci skip] 2019-09-15 16:35:22 -07:00
9915b5497b version bump 2019-09-15 16:19:49 -07:00
e2cc5fe09d NVIM v0.4.0
This release represents ~2700 commits since v0.3.4, the previous
non-maintenance release.  Besides the highlights listed below, this
release features vast improvements to documentation, internal subsystems
and test/CI infrastructure, and 700+ patches merged from Vim.

FEATURES:

New API functions:
  nvim_create_buf: create various kinds of buffers
  nvim_get_context, nvim_load_context
    8e6b0a73c9 #10619 API: Context: save/restore/inspect editor state
  nvim_input_mouse: perform mouse actions
  nvim_open_win: create floating windows (and external, for supporting UIs)
  nvim_paste: paste text at cursor
  nvim_put: put text at cursor
  nvim_select_popupmenu_item: perform popupmenu actions
  nvim_set_keymap: create/delete mappings
  nvim_set_vvar: set v: variables
  nvim_ui_pum_set_height
  nvim_ui_try_resize_grid
  nvim_win_close: close windows
  nvim_win_get_config: get window configuration
  nvim_win_set_config: reconfigure windows

New UI events:
  redraw.grid_destroy
  redraw.hl_group_set
    8a3f8589a3 #10504 UI/highlight: expose builtin highlight groups using hl_group_set event
  redraw.msg_clear
  redraw.msg_history_show
  redraw.msg_ruler
  redraw.msg_set_pos
  redraw.msg_show
  redraw.msg_showcmd
  redraw.msg_showmode
  redraw.win_close
  redraw.win_external_pos
  redraw.win_float_pos
  redraw.win_hide
  redraw.win_pos

API
f5c56f03bb #9170 API/Lua: nvim_buf_attach: support Lua callback
82d48c0dab #9896 API: emit nvim_error_event on failed async request
b9ad12e6c2 #9992 UI/nvim_ui_attach(): add `override` option
3d1ed7c959 #9993 UI/ext_messages: learn more message kinds
8ed54bbec3 #9547 proper multiline error message for rpcrequest, API wrappers

Lua
This release introduces "Nvim-Lua standard library". See ":help lua-stdlib".
89d7e24891 #9463 Lua stdlib: vim.inspect, string functions
8e941c59ec #9740 Lua: generate documentation from docstrings
1cbe014569 #9301 lua/stdlib: Introduce vim.shared
c83926cd0a #10123 Lua: introduce vim.loop (expose libuv event-loop)
81e1dbca99 #10120 Lua: vim.schedule(cb)
1f54f68732 #10688 Lua: minimal UTF-16 support needed for LSP
6fb0020df4 #10513 Lua encoding support
    c0993ed343 Lua: support getting UTF-32 and UTF-16 sizes of replaced text
    b0e26199ec Lua: add {old_byte_size} to on_lines buffer change event

UI:
- The Nvim 0.3.4 UI protocol introduced line-based updates instead of
  legacy char-based updates. Nvim 0.4 continues to evolve the UI
  protocol. See ":help ui". Legacy UI clients are supported. See
  ":help api-contract".
9a1675b065 #6619 Floating windows
  - Can be (re)positioned, anchored, external.
  - Are real windows showing real buffers. No shortcuts, hacks, or compromises.
  - Support all features and API of normal windows, plus more.
6427894d89 #8455 Multigrid: "windows drawn on separate grids"
  - Windows are logically isolated internally.
  - Windows are sent to UIs as distinct objects, so that UIs can control
    layout instead of being stuck with the classic TUI layout.
  - Per-window font-size, dimenions, line-spacing.
  - Compositor: Internal subsystem for composing grids.
3855204f58 #6917 UIEnter, UILeave
788bcbba24 #9923 ui: ":syn blend=", 'winblend'
7cf7c0a0b8 #9575 ui: 'redrawdebug' option for flexible debugging of redrawing
5c836d2ef8 #9607 wildoptions=pum (enabled by default)
37f8df8824 #9571 UI: 'pumblend' option for semi-transparent popupmenu
c403a95a52 #9446 Visual: highlight char-at-cursor
  - Traditionally Vim's visual selection does "reverse mode", which
    perhaps conflicts with the non-blinking block cursor. But
    'guicursor' defaults to a vertical bar for selection=exclusive, and
    this confuses users who expect to see the text highlighted.

:terminal
fc27dc98d7 #8550 autocmds: TermEnter, TermLeave
d13803f64f #9810 keymap, terminal: more keycodes
3b56f59532 #9535 :terminal : Fix F1-F4 key codes
2d4a37ebab #10370 :ls : show "R", "F" for terminal-jobs
fd0fd752c8 #9966 terminal: swap priority of terminal, editor highlights
7bb858c39c #9494 libvterm 0.1

TUI
3afb397407 syntax, TUI: support "strikethrough"
ccbcd390d4 #9408 TUI: "title stacking" unconditionally
298608f88c #9509 TUI: detect background color, set bg=dark/light
42f492ac99 #9097 TUI: handle Smulx extension capability (extended underline)
424ddd01f5 #10205 TUI: support rgba background detection
9b4383261a #9601 TUI: italics in tmux, Terminal.app
f6fb370b1b #9793 keymap: support more (keypad) keycodes
3340e08bec #9423 TUI: Konsole DECSCUSR fixup

:checkhealth
d0fd66ba82 health/provider.vim: check curl HTTPS support
c38862acea #10490 checkhealth: try yarn if npm is missing
43356a43d0 #9929 health: check if tmux enabled true colors
ec5a4d862d #9548 checkhealth: validate locale

providers (clipboard, python, etc.):
96be8a2c4d #10161 Allow reloading providers (useful for UIs/clients)
db3c797c6b #9487 provider: improve error message if provider is missing

Various:
36762a00a8 #9295 signs: support multiple columns
801fe799ff #10382 eval: wait() (wait for any condition)
9df3a676e7 #10400 MsgArea highlight; message grid
a9bea8c104 #10790 keymap: allow modifiers to multibyte chars, like <m-ä>
25e0a449bb #10878 #4448 paste: redesign (10x+ faster pasting; extensible vim.paste Lua hook)
ef5037e7f6 #9706 autocmd: introduce "++once" feature
175398f216 #9616 add CompleteChanged autocmd
7fcf2f926f #9717 TextYankPost: add v:event["inclusive"]
3a699a790c #8364 termdebug.vim plugin
ca1ce59025 #9709 performance: use os_copy to create backups
ed0e96cd28 man.vim: set 'linebreak'
70f6939fd4 #9564 events: add "Signal" event
f89d0d8230 #9568 inccommand: auto-disable if folding is slow

FIXES:

41bb68b8e8 #10584 process_stop: uv: do not close stdin first/explicitly
e50aa2a6c6 #10117 normal: Don't exit CTRL-O mode after processing K_EVENT
95fa71c6d2 #9504 :recover : Fix crash on non-existent *.swp
5a836d4767 #9507 screen: don't unconditionally clear messages on window scroll
149dcbf2c7 #10021 channel: refactor events, prevent recursive invocation of events
d19ff73b39 #10107 Fix multiple c_CTRL-D showing statusline
b65a7b7f66 #10103 Fix wildmode=list,full and display+=msgsep interaction
0be6d3c86f #9634 fsync: Ignore ENOTSUP. Fix writing to SMB.
b247c6fd22 #10025 kbtree: pointer UB and unitialized value fixes
018e0d5a19 #9643 API/buffer-updates: always detach on buf-reload
400ee59247 #9961 API: fix cursor position when lines are added
769f44e918 #9911 win/defaults: Use "…/nvim-data/site" in 'runtimepath'
83d571653b #9911 spellfile.vim: store files in stdpath('data')
8dbf23181a #9887 RPC: conform message-id type to msgpack-RPC spec
5f996e36d1 #9894 options: properly reset directories on 'autochdir'
4c4a570156 #9807 various CursorMoved fixes
943bedfc86 #9853 event-loop: do not set CA_COMMAND_BUSY
9d207fd876 #9693 dictwatcheradd(): support b:changedtick
2d50bf3498 #9789 mac: fix locale detection
c5631338b1 #9754 :mksession : restore tab-local working directories
092e7e6c60 #9703 #9703 executable(): return false if user is not owner
11a481f711 #9686 env var fixes/improvements
8e54847fdf #9666 #7920 os/env: Fix completion of multibyte env var names
519382646b #10468 Fix is_executable_in_path() on Windows
8eaa452073 #9516 win: exepath(), executable() fixes
f55c1e4233 #10544 reltimefloat(): allow negative result
b08dc3ec19 #10561 win: jobstart(), system(): $PATHEXT-resolve exe
7cc2b723d4 #10392 TextYankPost: spurious/too-early dispatch during delete
6e01ed6a4c OpenBSD: stop jobs/processes properly
58dd5fcc01 #10522 jobstop(): close channel before process_stop()
83632022f8 #10959 improved resize behavior (all UIs)
c6eb1f42be #10830 API: fix nvim_command_output buffer overflow
cbfd18c85a #10763 startup: handle 'guicursor' after user config
b8f2436feb #10915 jobwait(): fix race if job exits quickly
2fafed6bb8 #10765 clipboard: handle/avoid SIGTERM with previous owner
8aca932aa0 #9954 clipboard: setreg("*") with clipboard=unnamed
3f10c5b533 #9480 performance: clipboard/macOS: assume that pbcopy works
48efafc81c #10398 screen: disable redrawing inside VimResized
5e4b93a38f #10389 API/Lua: make nvim_execute_lua use native lua floats, not special tables
8c6f5b7f92 #9934 Spurious quote mark in command line when typing <C-R>
a8a38f3465 Lua 5.2/5.3 compat

:terminal
47b7b471fa #10700 :terminal : update buffer when switching tabpage
5225c1ec30 #9605 terminal: Fix potential invalid local 'scrollback'
894f6bee54 #8325 :terminal : set topline based on window height
8171e96b96 #9551 Improve :terminal resize
d928b036dc #9856 :stopinsert should leave terminal-mode
3f71218505 #9926 :terminal : fix: Using `:stopinsert` while in normal mode
5020daa6e5 #9883 ui/terminal: make terminal state redraw like any other state

TUI:
9f19e8d29d #9443 TUI: Do not disable BCE for builtin terminfos
a4076e5dcf #9474 win/TUI: fix text overrides line numbers
533d4a36ec #9645 TUI: do not resize host-terminal on startup
b51e5d8b8d #9688 tui_tk_ti_getstr: handle weird value
1f5eac1115 #10785 TUI: fix data-race during resize

CHANGES:

9697c7f56a #8194 fix menu_get()
7f2e43c637 #9520 improve Lua error messages
c2343180d7 #9526 Remove jemalloc
baf93d9606 #9581 UI: always use concrete colors for default_colors_set
91688b4883 #9563 defaults: set 'scrollback' to -1 by default
bb24fec333 #10136 defaults: exclude "S" from 'shortmess'
ddd0eb6f51 #8540 startup: -es/-Es (silent/batch mode): skip swapfile
35362495c9 #9805 jumplist: avoid extra tail entry
939d9053bd #10573 channels: reflect exit due to signals in exit status code
45c34bd84a #10689 :doautocmd : Never show "No matching autocommands"
fb19aeeb33 #9110 API: make nvim_win_set_option() set window-global, not buffer-local
abfc8b3257 #10778 emsg_multiline: log Vim errors
06d9cc734b #10657 exists("$FOO"): return false for empty env var
6616d1d3e5 #10743 win/env: Vim-compat: Empty string deletes env var
7d664837e1 #10662 win: expand nested env var in $HOME
2816bc8620 #8349 edit.c: Disable indent during completion
58f505dc74 #9829 startup: remove TUI init special-case
    Historically Vim/Nvim does backflips to handle input and show messages
    before a UI is available. This logical contradiction was already fixed
    for remote UIs (#9024 c236e80cf3). Fixing it also for the TUI avoids
    problems on Windows, simplifies the logic, and avoids races like #9959.
2019-09-15 12:38:40 -07:00
45f23ef9d6 Merge pull request #11025 from bfredl/doublescroll
compositor: avoid transmitting invalid lines on double scroll
2019-09-15 16:53:43 +02:00
b9d035a39c Merge pull request #11026 from janlazo/vim-8.1.0220
vim-patch:8.1.0220
2019-09-15 15:55:50 +02:00
a0f13095aa compositor: avoid transmitting invalid lines on double scroll
This happens in an operation which both increases topline and also
inserts new lines somewhere in the remaining are. So before drawing any
line, win_update() is performing two grid_scroll operations.

===
A
B
C
D
E^
F
===

Consider that new line will be inserted after line E and screen also
scrolled up to line C. First the topline will be adjusted (x is the
scrolling region, ! invalid/empty space created by the scroll):

===
C   x
D   x
E^  x
F   x
!   x
!   x
===

and then space is inserted for the new line

===
C
D
E^
!   x
F   x
!   x
===

The problem is that we are now assuming that any invalid area ! created
by a scroll is filled with actual contents (by win_line etc) before it
is scrolled again. But in this case the last invalid line ! gets
scrolled. Ideally we should make win_update smarter and just scroll
valid lines for the later scroll (it is just wasteful to scroll the
larger area anyway), but for the 0.4 releasejust make
the compositor ignore such an invalid line (as it will get overdrawn
anyway later).
2019-09-15 15:30:48 +02:00
36a1670151 test/old: detect user modules for python,ruby
Set the environment variables before changing $HOME
so that python,ruby can find user modules not in $HOME.

Reference:
- 7be7ec98a2
- https://github.com/neovim/neovim/issues/10270#issuecomment-531516948
2019-09-15 08:26:54 -04:00
c65dd2d114 vim-patch:8.1.0220: Ruby converts v:true and v:false to a number
Problem:    Ruby converts v:true and v:false to a number.
Solution:   Use Qtrue and Qfalse instead. (Masataka Pocke Kuwabara,
            closes vim/vim#3259)
d84b26a03b

nvim does not support v:none.
2019-09-15 07:41:08 -04:00
86e819d492 Merge #11021 from justinmk/ctx-rename-buflist
API: Context: "opts" param, et al.
2019-09-14 19:53:33 -07:00
ffdf8c4c12 Context: rename "buflist" => "bufs"
Given the other type names "jumps", "vars", etc., the name "buflist"
is somewhat unintuitive.
2019-09-14 18:57:35 -07:00
f2c75ef9b4 API: nvim_get_context: "opts" param
Since the parameter is already non-primitive, make it an `opts` map
instead of just a list, in case we want to extend it later.
2019-09-14 18:57:35 -07:00
2e0e592ea2 release.sh: bump nvim.appdata.xml 2019-09-14 17:54:16 -07:00
db550ac995 Merge #11020 from janlazo/vim-8.1.0289
vim-patch:8.0.{1134,1148},8.1.{212,289,2028}
fix #10270
2019-09-14 16:02:15 -07:00
fc27dc98d7 autocmds: TermEnter, TermLeave #8550
fix #8428
2019-09-14 15:54:19 -07:00
cccfc1b603 test/old: skip python-bindeval tests 2019-09-14 17:53:52 -04:00
ce3d9503b2 vim-patch:8.1.0212: preferred cursor column not set in interfaces
Problem:    Preferred cursor column not set in interfaces.
Solution:   Set w_set_curswant when setting the cursor. (David Hotham,
            closes vim/vim#3060)
53901442f3

This contains test_ruby changes only.
test_python changes were ported before.
2019-09-14 17:46:07 -04:00
7be7ec98a2 ci/travis: install pynvim outside of $HOME
This runs the python tests on Travis.
WIP: skip failing python tests
2019-09-14 17:30:22 -04:00
67bede0b27 test/old: skip failing ruby tests
These tests didn't pass in https://github.com/neovim/neovim/pull/9245
2019-09-14 17:05:04 -04:00
232cce9abe vim-patch:8.0.1448: segfault with exception inside :rubyfile command
Problem:    Segmentation fault when Ruby throws an exception inside :rubyfile
            command.
Solution:   Use rb_protect() instead of rb_load_protect(). (ujihisa,
            closes vim/vim#2147, greywolf, closes vim/vim#2512, vim/vim#2511)
37badc898b
2019-09-14 16:34:16 -04:00
c971a231e2 vim-patch:8.0.1134: superfluous call to syn_get_final_id()
Problem:    Superfluous call to syn_get_final_id().
Solution:   Remove it. (Ken Takata)
76301956f0
2019-09-14 16:12:38 -04:00
1a718f4fae vim-patch:8.1.2028: options test script does not work
Problem:    Options test script does not work.
Solution:   Use optiondefs.h for input.
d9b0d83b13
2019-09-14 13:07:58 -04:00
27fd4f31fd vim-patch:8.1.0289: cursor moves to wrong column after quickfix jump
Problem:    Cursor moves to wrong column after quickfix jump.
Solution:   Set the curswant flag. (Andy Massimino, closes vim/vim#3331)
2dfcef4c08
2019-09-14 12:31:47 -04:00
8c88d98df9 vim-patch:8.1.2023: no test for synIDattr() returning "strikethrough" (#11018)
Problem:    No test for synIDattr() returning "strikethrough".
Solution:   Extend the synIDattr() test. (Jaskaran Singh, closes vim/vim#4929)
dcb2b9cb08
2019-09-14 16:32:38 +02:00
9cf8cf605d Merge #11015 from justinmk/getdigits
getdigits: introduce `strict`, `def` parameters
2019-09-13 19:32:06 -07:00
6aae0e7c94 lint 2019-09-13 19:29:25 -07:00
3344cffe7b getdigits: introduce strict, def parameters
Problem:
During a refactor long ago, we changed the `getdigits_*` familiy of
functions to abort on overflow.  But this is often wrong, because many
of these codepaths are handling user input.

Solution:
Decide at each call-site whether to use "strict" mode.

fix #5555
2019-09-13 19:29:25 -07:00
0a24a2c314 rename: getdigits_safe => try_getdigits 2019-09-13 19:13:00 -07:00
427cf16e44 vim-patch:8.1.0719: too many #ifdefs [ci skip] #11016
Problem:    Too many #ifdefs.
Solution:   Always build with the +visualextra feature.
870ba5f6dc
2019-09-13 18:30:23 -07:00
4cee0e0731 vim-patch:8.1.2026: possibly using uninitialized memory #11013
Problem:    Possibly using uninitialized memory.
Solution:   Check if "dict" is NULL. (closes vim/vim#4925)
dbec74907e
2019-09-13 16:31:56 -07:00
5a3c86205f test: fix failure on Windows (allow ".exe")
ref 77594d55f7
2019-09-13 16:31:21 -07:00
4b7d8e6b87 win/dist: nvim-qt v0.2.14 #11008 2019-09-13 15:56:02 -07:00
77594d55f7 startup: fail if --embed with -es/-Es #10753
Closes https://github.com/neovim/neovim/issues/10031
2019-09-13 15:15:59 -07:00
3afb397407 syntax, TUI: support "strikethrough"
fix #3436

Includes:
vim-patch:8.0.1038: strike-through text not supported
2019-09-13 14:46:19 -07:00
35341b34b8 Merge #11007 from janlazo/vim-8.0.1772
vim-patch:8.0.1772,8.1.{248,259,261,267}
2019-09-13 14:38:16 -07:00
5f95b35c7a vim-patch:8.1.0267: no good check if restoring quickfix list worked
Problem:    No good check if restoring quickfix list worked.
Solution:   Let qf_restore_list() return OK/FAIL. (Yegappan Lakshmanan)
90f1e2b7bc
2019-09-13 02:15:33 -04:00
47357270ae vim-patch:8.1.0261: Coverity complains about a negative array index
Problem:    Coverity complains about a negative array index.
Solution:   When qf_id2nr() cannot find the list then don't set qf_curlist.
38efd1d17a
2019-09-13 01:41:01 -04:00
fba9c72495 vim-patch:8.1.0259: no test for fixed quickfix issue
Problem:    No test for fixed quickfix issue.
Solution:   Add a test.  Clean up the code a bit. (Yegappan Lakshmanan)
3f347e4716
2019-09-13 00:47:30 -04:00
4ef9ad0514 vim-patch:8.1.0248: duplicated quickfix code
Problem:    duplicated quickfix code.
Solution:   Move the code to a function.
8d8a65e389
2019-09-13 00:35:14 -04:00
8ba492e4e2 vim-patch:8.0.1772: quickfix: mixup of FALSE and FAIL, returning -1
Problem:    Quickfix: mixup of FALSE and FAIL, returning -1.
Solution:   Use FAIL and INVALID_QFIDX. (Yegappan Lakshmanan)
29ce409bfc
2019-09-13 00:14:04 -04:00
3855204f58 Merge #6917 'UIEnter, UILeave' 2019-09-12 17:45:33 -07:00
492ac04f7e UIEnter/UILeave: fire for embedder UI, builtin TUI
Before this, --embed UIs (without --headless) would not trigger UIEnter.

For TUI, maybe UIEnter isn't useful, but:
- It is less "surprising"/special.
- Makes documentation simpler.
- When TUI becomes a coprocess, it will happen anyway.
2019-09-12 17:04:05 -07:00
589f612adf rename: UIAttach/UIDetach => UIEnter/UILeave
"enter"/"leave" is more conventional for Vim events, and
"attach"/"detach" distinction does not gain much.
2019-09-12 17:04:05 -07:00
44d45e29ea API/nvim_list_uis(): include "chan" field for TUI
Even though it's always zero currently, it's less confusing if all UIs
have the same fields.
2019-09-12 17:04:05 -07:00
6dd56d0902 UIAttach, UIDetach
doc: ginit.vim, gvimrc
fix #3656
2019-09-12 17:04:05 -07:00
e9cf515888 UIAttach, UIDetach 2019-09-12 15:52:54 -07:00
426399c2c4 Merge #10999 from janlazo/clang_pvs2 2019-09-12 14:56:50 -07:00
500c344790 lint 2019-09-12 01:47:56 -04:00
e3c67755b8 fixup! cursor_shape: check if modep is nonnull 2019-09-11 22:29:50 -04:00
6508215b5c Remove excess <stdint.h> 2019-09-11 22:27:45 -04:00
11fe132dd9 tests: fix system_spec when run with clipboard manager (#10956)
* tests: move os_kill to functional helpers

* tests: fix system_spec when run with clipboard manager

Replaces "xclip" with a dedicated helper program.

Fixes: https://github.com/neovim/neovim/issues/4900#issuecomment-501866842
2019-09-12 03:26:35 +02:00
108763171f build: dependencies: specify minimum libvterm (#10997)
libvterm now advertises a version number, so we can specify the minimum
required version.  And this is necessary because there were breaking
changes in its API.

ref 2a590e2293
ref https://github.com/neovim/neovim/issues/10991
2019-09-12 03:25:25 +02:00
b78be5bd08 rename: SplitEvent => MulticastEvent #10989
"Multicast" is perhaps a more conventional name for the concept.
"One-shot" is the conventional name for how the event is (currently)
scheduled.
2019-09-11 15:39:23 -07:00
7652904f79 eval: wait(): always spin up dummy-timer #10990
This avoids getting "stuck".  If user actually _wants_ to get stuck
forever, they could use `:sleep` or specify a really big `interval`.
2019-09-11 12:56:46 -07:00
c8223e1618 Merge #10995 'paste: fix paste in terminal mode' 2019-09-11 12:45:28 -07:00
ffa029ad1c paste: fix paste in terminal mode 2019-09-11 20:12:29 +02:00
6aed19b2bb Merge #10986 'doc' 2019-09-11 00:17:31 -07:00
06bfb07e35 doc
fix #10127
fix #5972
2019-09-11 00:10:27 -07:00
1adbdb397d doc: nvim_ui_pum_set_height [ci skip] 2019-09-10 23:27:00 -07:00
b735583377 Merge #10969 from janlazo/clang_pvs 2019-09-10 20:15:44 -07:00
2ed7cda8cd spell: assert nonull pointers 2019-09-10 22:19:49 -04:00
b8a338ee6a cursor_shape: check if modep is nonnull 2019-09-10 22:19:49 -04:00
f81619aafe regexp: assert nonnull pointer for regnext() 2019-09-10 21:54:05 -04:00
4a6ab3494a quickfix: fix pvs/v547 warning 2019-09-10 21:54:04 -04:00
7bb858c39c Merge pull request #9494 from leonerd/leonerd/vterm-color-struct
Changes for new VTermColor struct (libvterm 0.1)
2019-09-10 21:25:47 +02:00
e11dd1110f terminal: fix rgb rendering of palette colors
simplify handling of default colors

nvim is always true color internally, remove ui_rgb_attached() check.

Fix "runtime termguicolors" test. The test actually reflected broken behavior
in (parent) nvim: nvim_ui_set_option("rgb", true) was not respected by existing
:terminal instances, so all 16-palette colors became dark blue.
2019-09-10 20:12:01 +02:00
0bb466f0fc lint / test grouping 2019-09-10 20:09:38 +02:00
d57250ae64 Changes for new VTermColor struct 2019-09-10 20:09:38 +02:00
2a590e2293 bump libvterm to 0.1 + memleak patch 2019-09-10 20:09:37 +02:00
477113d1ae vim-patch:8.0.1309: cannot use 'balloonexpr' in a terminal #10983
(Port some refactoring, but ignore "balloon" changes.)

Problem:    Cannot use 'balloonexpr' in a terminal.
Solution:   Add 'balloonevalterm' and add code to handle mouse movements in a
            terminal. Initial implementation for Unix with GUI.
51b0f3701e
2019-09-09 21:23:44 -07:00
a2c98a2938 Merge #10982 from janlazo/vim-8.0.0937
vim-patch:8.0.{937,941}
2019-09-09 18:24:47 -07:00
a84366439f vim-patch:8.0.0941: existing color schemes don't like StatusLineTerm
Problem:    Existing color schemes don't work well with StatusLineTerm.
Solution:   Don't use "reverse", use fg and bg colors.  Also add
            StatusLineTermNC.
05fbfdcda4
2019-09-09 20:33:18 -04:00
66e7a6c9fd vim-patch:8.0.0937: user highlight groups not adjusted for terminal
Problem:    User highlight groups are not adjusted for StatusLineTerm.
Solution:   Combine attributes like for StatusLineNC.
bce4f62d30
2019-09-09 20:28:01 -04:00
0809533b88 Merge #10546 'doc' 2019-09-09 14:42:20 -07:00
853683e72a provider: has("python3_dynamic") et al. #10980
Vim added more flags for testing yet more dimensions of its Python
situation.  Handle those in eval_has_provider().

vim-patch:8.0.1436: not enough information about what Python version may work
Problem:    Not enough information about what Python version may work.
Solution:   Add "python_compiled", "python3_compiled", "python_dynamic" and
            "python3_dynamic" values for has().

ref: https://github.com/neovim/neovim/pull/10942#issuecomment-529479500
2019-09-09 10:54:07 -07:00
e5d5fc0857 doc/API/lua: detaching Lua buffer callbacks 2019-09-09 10:52:12 -07:00
a3849abc31 doc: StatusLineTerm, StatusLineTermNC
N/A:
vim-patch:8.0.0941: existing color schemes don't like StatusLineTerm
vim-patch:8.0.0937: user highlight groups not adjusted for terminal
vim-patch:8.0.0825: not easy to see that a window is a terminal window
2019-09-09 10:52:12 -07:00
456f1d4bdd doc: |api-fast| [ci skip] 2019-09-09 10:52:12 -07:00
225941ddd0 version.c: update [ci skip] #10961
vim-patch:8.1.1680: the command table is not well aligned
vim-patch:8.1.1994: MS-Windows: cannot build with eval but without cscope
vim-patch:8.1.2002: version number 2000 missing
vim-patch:8.1.2003: MS-Windows: code page 65001 is not recognized
vim-patch:8.1.2006: build failure with huge features but without channel feature
vim-patch:8.1.2015: terminal altscreen test still fails sometimes
vim-patch:8.1.2016: terminal altscreen test now fails on MS-Windows

`beval` patches are N/A now. See https://github.com/neovim/neovim/pull/10942#issuecomment-528029830
vim-patch:8.0.1366: 1ad022a9b8
vim-patch:8.1.0444: unnecessary check for NULL pointer
vim-patch:8.1.0652: freeing memory for balloon eval too early
vim-patch:8.1.1302: v:beval_text is not tested in Visual mode
vim-patch:8.1.1648: MS-Windows: build error with normal feaures
vim-patch:8.1.1650: warning for using uninitialized variable
vim-patch:8.1.1654: GUI: screen updates from 'balloonexpr' are not displayed
vim-patch:8.1.1708: Coverity warns for using uninitialized variable
2019-09-09 10:03:59 -07:00
4b2a2c332c doc: eliminate msgpack_rpc.txt [ci skip]
- Migrate msgpack_rpc.txt into api.txt, develop.txt.
- fix #10740: Remove warning about "avoid hardcoding the type codes".
2019-09-09 09:53:19 -07:00
81c3fa6c9d doc 2019-09-09 09:53:19 -07:00
05c668f684 paste: fix normal-mode paste by different approach #10976
Forcing insert-mode after the first paste-chunk seems to work, as an
alternative to a9e2bae0eb (insert-before-cursor).

NB: Dot-repeat needs to match the original action.  Since a9e2bae0eb
changed paste to insert-before-cursor, dot-repeat must also. But that
makes dot-repeat unpleasant/unusual.
2019-09-09 08:29:49 -07:00
9e0ce1a158 Merge #10973 'vim-patch:8.1.1197' 2019-09-08 20:58:36 -07:00
8dde9b58e5 vim-patch:8.1.1197: when starting with multiple tabs file messages is confusing
Problem:    When starting with multiple tabs file messages is confusing.
Solution:   Set 'shortmess' when loading the other tabs. (Christian Brabandt)
c75e812623
2019-09-08 23:16:54 -04:00
74c362cec0 Merge #10975 'paste: fix various bugs' 2019-09-08 18:40:46 -07:00
a9e2bae0eb paste: insert before cursor always
Inserting "after" the cursor in Normal-mode, for big paste-streams, is
not reliable: sometimes the text "after" the cursor ends up in the
middle of the pasted text.  Maybe the cursor position is not updated?

To avoid weird behavior, always paste "before".  Maybe nvim_put() or
vim.paste() can be fixed more properly later.
2019-09-08 16:42:11 -07:00
acd2729573 paste: do not clobber msg area for small pastes 2019-09-08 15:37:32 -07:00
0dea44f93c paste/cmdline: discard all chunks after first line
Problem:  If multiple paste "chunks" are streamed, chunks after the
          first line are pasted into the buffer.
Solution: Check for cmdline-mode for all chunks in a paste-stream.
2019-09-08 15:37:32 -07:00
ccd947ca4a vim-patch:8.0.0970: passing invalid highlight id #10972
(We don't implement StatusLineTerm{NC}, but this patch seems generally relevant.)

Problem:    if there is no StatusLine highlighting and there is StatusLineNC
            or StatusLineTermNC highlighting then an invalid highlight id is
            passed to combine_stl_hlt(). (Coverity)
Solution:   Check id_S to be -1 instead of zero.
d6a7b3e6bb
2019-09-08 15:10:18 -07:00
d91f4cd7d0 paste: reset 'paste' option immediately #10974
- Workaround #10966: 'paste' option is not always reset.
- In any case there's not much reason to wait until phase=3, because
  pasting in cmdline-mode skips lines after the first line (thus the
  `:set paste .. :set nopaste` dance happens only ~once).
2019-09-08 14:58:47 -07:00
77a93957d3 Merge pull request #10777 from glacambre/fix_10042
ex_getln.c: fix <S-Tab> not triggering Pmenu when wildoptions=pum
2019-09-08 22:42:24 +02:00
554566ccea vim-patch:8.1.2007: no test for what 8.1.1926 fixes #10970
Problem:    No test for what 8.1.1926 fixes.
Solution:   Add a test case.
fca068b977
2019-09-08 12:22:55 -07:00
958ca938b4 ex_getln.c: fix <S-Tab> not triggering pum when wildoptions=pum (#10042)
Some of the logic that was present for <Tab> was missing from <S-Tab>.

Closes https://github.com/neovim/neovim/issues/10042.
2019-09-08 20:47:22 +02:00
288526ae73 Merge pull request #10475 from erw7/fix-ext-popupmenu
Fix some keys not working in ext_popupmenu
2019-09-08 20:42:32 +02:00
83632022f8 Merge pull request #10959 from bfredl/resizequeue
fix crash on :!tmux split, redraw after resize in pager
2019-09-08 16:50:45 +02:00
c705e3fb0b update tests for new resize behavior (resize at pager, but not at :!cmd) 2019-09-08 15:24:14 +02:00
19993bca4a rpc: allow handling of nvim_ui_try_resize at the pager
This makes external UI behave consistenly with TUI w.r.t resizes.
Which will be needed anyway as TUI will use the external UI protocol
soon.
2019-09-08 15:24:14 +02:00
bf9ff5148a messages: redraw after resize in pager
note: does not "return" space at the bottom to the caller
2019-09-08 15:24:14 +02:00
f72c7b0b3a messages: batch draw :map 2019-09-08 15:24:14 +02:00
e6b7613e89 refactor: allow us to process a child queue only while waiting on input 2019-09-08 15:24:14 +02:00
fa90f6cdaa tests: fix flaky "TUI FocusGained/FocusLost in terminal-mode" #10754
* longer timeout with first expect
* Wait for :term to be ready

Failure seen on quickbuild (note the "retry() attempts: 1"):

    09:41:07,627  INFO  - # test/functional/terminal/tui_spec.lua @ 437: TUI FocusGained/FocusLost in terminal-mode
    09:41:07,627  INFO  - not ok 2976 - TUI FocusGained/FocusLost in terminal-mode
    09:41:07,627  INFO  - # test/functional/terminal/tui_spec.lua @ 437
    09:41:07,627  INFO  - # Failure message: ./test/functional/helpers.lua:403:
    09:41:07,627  INFO  - # retry() attempts: 1
    09:41:07,627  INFO  - # ./test/functional/ui/screen.lua:579: Row 1 did not match.
    09:41:07,627  INFO  - # Expected:
    09:41:07,627  INFO  - # |*{1:r}eady $ |
    09:41:07,627  INFO  - # |[Process exited 0] |
    09:41:07,627  INFO  - # | |
    09:41:07,627  INFO  - # | |
    09:41:07,627  INFO  - # | |
    09:41:07,627  INFO  - # |gained |
    09:41:07,628  INFO  - # |{3:-- TERMINAL --} |
    09:41:07,628  INFO  - # Actual:
    09:41:07,628  INFO  - # |*{1: } |
    09:41:07,628  INFO  - # |{4:~ }|
    09:41:07,628  INFO  - # |{4:~ }|
    09:41:07,628  INFO  - # |{4:~ }|
    09:41:07,628  INFO  - # |{5:[No Name] }|
    09:41:07,628  INFO  - # | |
    09:41:07,628  INFO  - # |{3:-- TERMINAL --} |
    09:41:07,628  INFO  - #
    09:41:07,628  INFO  - # To print the expect() call that would assert the current screen state, use
    09:41:07,628  INFO  - # screen:snapshot_util(). In case of non-deterministic failures, use
    09:41:07,628  INFO  - # screen:redraw_debug() to show all intermediate screen states.
    09:41:07,628  INFO  - # stack traceback:
    09:41:07,628  INFO  - #     ./test/functional/helpers.lua:403: in function 'retry'
    09:41:07,628  INFO  - #     test/functional/terminal/tui_spec.lua:441: in function <test/functional/terminal/tui_spec.lua:437>
2019-09-07 22:40:38 -07:00
55b1126a22 Add nvim_ui_pum_set_height to api 2019-09-08 12:25:49 +09:00
3dbd94dafa Merge #10963 from janlazo/vim-8.1.1988
vim-patch:8.0.1550,8.1.{1716,1988}
2019-09-07 19:28:15 -07:00
dd7355358e Merge #10962 from justinmk/vim-088e8e344352
vim-patch: runtime updates
2019-09-07 19:22:33 -07:00
6692c0958f shada: initialize jumplist before search pattern (#10964)
Since 8b8ecf4, the shada module loads files in the jumplist to properly
clear duplicates. This can trigger some autocommands, which in turn
saves and restores search and substitute patterns, freeing the previous
strings in "spats" which are held in "wms" as well (heap-use-after-free).
To avoid this, initialize the jumplist in "wms" before search patterns.
2019-09-07 18:02:29 -07:00
15459f9255 vim-patch:8.1.1716: old style comments are wasting space
Problem:    Old style comments are wasting space
Solution:   Use new style comments in option header file.
ab0a789808
2019-09-07 13:09:15 -04:00
4add2f4f89 vim-patch:8.0.1550: various small problems in source files
Problem:    Various small problems in source files.
Solution:   Fix the problems.
792f0e3659
2019-09-07 10:35:09 -04:00
a96b3677c6 vim-patch:8.1.1988: :startinsert! does not work the same way as "A"
Problem:    :startinsert! does not work the same way as "A".
Solution:   Use the same code to move the cursor. (closes vim/vim#4896)
8d3b51084a
2019-09-06 23:27:14 -04:00
8f2557ad19 vim-patch:06fe74aef726
Runtime files update.
06fe74aef7
2019-09-06 18:44:52 -07:00
0430a1ba88 vim-patch:56c860c315c5
Update runtime files.
56c860c315
2019-09-06 18:35:06 -07:00
c044ea0909 vim-patch:088e8e344352
Update runtime files.
088e8e3443
2019-09-06 18:30:35 -07:00
158b78062e Merge #10932 'test: Eliminate expect_err' 2019-09-06 18:16:57 -07:00
7e1c959861 test: Eliminate expect_err
Eliminate `expect_err` in favor of `pcall_err` + `eq` or `matches`.
2019-09-06 17:19:07 -07:00
af946046b9 test: Rename meth_pcall to pcall_err
- Rename `meth_pcall`.
- Make `pcall_err` raise an error if the function does not fail.
- Add `vim.pesc()` to treat a string as literal where a Lua pattern is
  expected.
2019-09-06 17:19:07 -07:00
638f2b6dee termdebug.vim: use style=minimal in popups #10904
- line numbers weren't hidden (which means the variable is cut off, as the number column isn't considered when calculating the width of the float).
- spurious duplicate line to disable signcolumn, and nonumber was indeed missed when porting the original implementation to Neovim.
2019-09-06 14:48:03 -07:00
1f119d4153 version.c: update [ci skip] #10942
vim-patch:8.0.0396: 'balloonexpr' only works synchronously
vim-patch:8.0.0932: terminal may not use right characters for BS and Enter
vim-patch-8.0.0934: change to struts.h missing in patch
vim-patch:8.0.0956: scrolling in a terminal window has flicker
vim-patch:8.0.0976: cannot send lines to a terminal job
vim-patch:8.0.1002: unnecessarily updating screen after timer callback
vim-patch:8.0.1096: terminal window in Normal mode has wrong background
vim-patch:8.0.1097: background color wrong if job changes background color
vim-patch:8.0.1102: terminal window does not use Normal colors
vim-patch:8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
vim-patch:8.0.1309: cannot use 'balloonexpr' in a terminal
vim-patch:8.0.1312: balloon_show() only works in terminal when compiled with GUI
vim-patch:8.0.1318: terminal balloon only shows one line
vim-patch:8.0.1320: popup test fails on GUI-only build
vim-patch:8.0.1321: can't build huge version with Athena
# VIM_SERVERNAME is NA because we will have NVIM env var:
vim-patch:8.0.1330: MS-Windows: job in terminal can't get back to Vim
vim-patch:8.0.1346: crash when passing 50 char string to balloon_split()
vim-patch:8.0.1810: buffer of a terminal only updated in Terminal-Normal mode
vim-patch:8.0.1815: crash with terminal window and with 'lazyredraw' set
vim-patch:8.0.1842: popup menu inside terminal window isn't cleared

vim-patch:8.1.1973: cannot build without the quickfix feature
vim-patch:8.1.1974: Coverity warns for using pointer as array
vim-patch:8.1.1975: MS-Windows GUI responds slowly to timer
vim-patch:8.1.1976: Travis log always shows test output
vim-patch:8.1.1990: cannot build with eval but without cscope
vim-patch:8.1.1991: still cannot build with eval but without cscope
2019-09-06 14:42:31 -07:00
16b64c339e build: rename CMake find modules for LibFindMacros #10928
We are using "LIBFOO" prefixes for `LIBFOO_INCLUDE_DIRS` etc, and
therefore need to use this for the PREFIX with LibFindMacros also, so
that `"${${PREFIX}_FIND_VERSION}"` gets handled there properly.

The alternative would be to either manually handle/set the upper/mixed case
variants of those variable additionally, which is not as easy.

Keeping the existing names is useful for packagers.

Before this the version requirements with
`find_package(Unibilium 2.0 REQUIRED)` was not handled (a49cf5126), and
it prepares for using a required version with libvterm
(initially/wrongly ported in 1896c72a5).
2019-09-06 14:39:41 -07:00
754ea8d27e runtime: :TOhtml workaround for missing 'vts' option #10960
Hot fix for 0.4
This commit should be reverted when &vts option is added.

close #10831
2019-09-06 12:10:46 -07:00
8db62ac57d build: cmake: GetCompileFlags: include CMAKE_C_FLAGS (#10957)
Calls `GetCompileFlags` from `src/nvim` directory, to include
`--coverage` (and any others).
2019-09-06 20:36:05 +02:00
fd4636f1b9 Merge pull request #10930 from bfredl/pagerthrottle
fixes for pager glitches and crashes
2019-09-06 20:28:26 +02:00
837f31c0b4 test: properly test missing clears after scroll
NB: happened to be irrelevant to the present failure, which
only occured with the compositor and not exteral UI for some reason
2019-09-06 19:39:26 +02:00
1fc6489f30 test: add tests for pager glitches and crashes 2019-09-06 19:38:27 +02:00
5c8a57da81 messages: fix crashes with scrollback 2019-09-06 19:38:07 +02:00
72d7099abd messages: fix missing MsgArea highlighting on/after "-- more --" message 2019-09-06 19:38:07 +02:00
d04a43fcaf messages: fix cut lines in scrollback upon overflow 2019-09-06 19:12:41 +02:00
fd8b00bacd tests: do_rmdir(): improve error handling #10955 2019-09-06 09:19:57 -07:00
1dab52f878 vim-patch:8.0.1332: enhance quickfix highlighting #10259
Problem:    Highlighting in quickfix window could be better. (Axel Bender)
Solution:   Use the qfSeparator highlight item. (Yegappan Lakshmanan)
93a32e2ec4

This adds `syn_name2attr` already (from previous patch 8.0.1123,
vim/vim@1b9645de3).
2019-09-06 09:17:24 -07:00
64caeb13e6 stdpaths_get_xdg_var: consider empty env vars #10953
Without this "sysinit uses VIM if XDG_CONFIG_DIRS unset" fails with an
existing `/etc/xdg/nvim/sysinit.vim` file, because `XDG_CONFIG_DIRS=` is
not considered, but the default ("/etc/xdg") used then.
2019-09-06 09:05:30 -07:00
fecbafb29e build: fail with CLANG_TSAN + USE_GCOV #10958
This is better than skipping it silently.
2019-09-06 08:41:04 -07:00
1a783b5ad6 screen: redrawdebug=nothrottle 2019-09-06 09:48:57 +02:00
8b06231612 Merge #10869 'vim-patch:8.1.{0309,0362,0365,0515,1946}' 2019-09-05 14:10:32 -07:00
096212d52c test/wildmode_spec: fix flaky test (#10947)
* test/wildmode_spec: fix flaky test

a00eb23c27 fixed one race, but not this one:

    [  ERROR   ] test/functional/ui/wildmode_spec.lua @ 84: 'wildmenu' is preserved during :terminal activity
    test/functional/ui/screen.lua:587: Row 1 did not match.
    Expected:
      |*                         |
      |                         |
      |                         |
      |define  jump  list  >    |
      |:sign define^             |
    Actual:
      |*0: !terminal_output!     |
      |                         |
      |                         |
      |define  jump  list  >    |
      |:sign define^             |
    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.
    stack traceback:
            test/functional/ui/screen.lua:587: in function '_wait'
            test/functional/ui/screen.lua:370: in function 'expect'
            test/functional/ui/wildmode_spec.lua:22: in function 'expect_stay_unchanged'
            test/functional/ui/wildmode_spec.lua:92: in function <test/functional/ui/wildmode_spec.lua:84>

* fixup! test/wildmode_spec: fix flaky test
2019-09-05 10:22:27 -07:00
81eb0d3644 vim-patch:8.1.0561: MSCV error format has changed #10952
This was marked as NA, but maybe we want the Windows-specific
default 'errorformat'?

9719568533
2019-09-05 10:20:46 -07:00
607d610d06 test/shada_spec: avoid exit_event race #10951
Doing clear() multiple times in quick succession provokes the
`exit_event` race described in #8813.

- Avoid it by removing unnecessary reset() call.
- Replace unnecessary nested describe() blocks with it() blocks.

ref d4a0b6c4e1
2019-09-05 09:48:34 -07:00
79ea47d478 Merge pull request #10451 from bfredl/floatbuf
anchor float to buffer position
2019-09-05 12:50:38 +02:00
dd18cc4b40 fixup! test/wildmode_spec: fix flaky test 2019-09-04 19:03:01 -07:00
93deb1a062 test/wildmode_spec: fix flaky test
a00eb23c27 fixed one race, but not this one:

    [  ERROR   ] test/functional/ui/wildmode_spec.lua @ 84: 'wildmenu' is preserved during :terminal activity
    test/functional/ui/screen.lua:587: Row 1 did not match.
    Expected:
      |*                         |
      |                         |
      |                         |
      |define  jump  list  >    |
      |:sign define^             |
    Actual:
      |*0: !terminal_output!     |
      |                         |
      |                         |
      |define  jump  list  >    |
      |:sign define^             |
    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.
    stack traceback:
            test/functional/ui/screen.lua:587: in function '_wait'
            test/functional/ui/screen.lua:370: in function 'expect'
            test/functional/ui/wildmode_spec.lua:22: in function 'expect_stay_unchanged'
            test/functional/ui/wildmode_spec.lua:92: in function <test/functional/ui/wildmode_spec.lua:84>
2019-09-04 17:26:40 -07:00
632ee8d2ed Merge #10946 from justinmk/vim-patchhhh
vim-patch:8.1.1498,8.1.1501: b:changedtick
2019-09-04 17:03:57 -07:00
d5162afa2a anchor float to buffer position
vim-patch:8.1.1645: cannot use a popup window for a balloon
2019-09-04 23:57:02 +02:00
d401539012 vim-patch:8.1.1501: new behavior of b:changedtick not tested
Problem:    New behavior of b:changedtick not tested.
Solution:   Add a few test cases. (Daniel Hahler)
260addf795
2019-09-04 21:21:28 +02:00
83c5701fe6 vim-patch:8.1.1498: ":write" increments b:changedtick even though nothing changed
Problem:    ":write" increments b:changedtick even though nothing changed.
            (Daniel Hahler)
Solution:   Only increment b:changedtick if the modified flag is reset.
c024b46678
2019-09-04 21:21:28 +02:00
d7aea13fee tests: scrollback_spec: use shell-test instead of awk (#10914)
Ref: #10804
Ref: b64af88
2019-09-04 20:01:38 +02:00
bd1158f3ab version.c: update [ci skip] #10308
vim-patch:8.0.1671: crash when passing non-dict argument as env to job_start()
vim-patch 8.1.1669: Travis: test results section is closed even when failed
vim-patch:8.1.0424: test output is very verbose, loading CI log is slow (vim/vim@e76d7a6)
N/A: only for sign icons (gvim, ref: #10834)
vim-patch:8.1.1587: redraw problem when sign icons in the number column
vim-patch:8.1.1910: redrawing too much when toggling 'relativenumber'
vim-patch:8.0.0910: cannot create a terminal in the current window
vim-patch:8.0.0912: cannot run a job in a hidden terminal
vim-patch:8.0.0916: cannot specify properties of window for terminal open
vim-patch:8.0.0917: MS-Windows:CTRL-C handling in terminal window is wrong
vim-patch:8.0.0918: cannot get terminal window cursor shape or attributes
vim-patch:8.0.0960: job in terminal does not get CTRL-C
vim-patch:8.0.1000: cannot open a terminal without running a job in it
vim-patch:8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
vim-patch:8.0.1051: cannot run terminal with spaces in argument
vim-patch:8.0.1060: when imstyle is one, mapping <Left> breaks preediting
vim-patch:8.0.1074: ":term NONE" does not work on MS-Windows
vim-patch:8.0.1113: can go to Insert mode from Terminal-Normal mode
vim-patch:8.0.1170: using termdebug results in 100% CPU time
vim-patch:8.0.1174: Mac Terminal.app has wrong color for white
vim-patch:8.0.1194: actual fg and bg colors of terminal are unknown
vim-patch:8.0.1203: terminal window mistreats composing characters
vim-patch:8.0.1240: MS-Windows: term_start() does not support environment
vim-patch:8.0.1244: search test does not work correctly on MS-Windows
vim-patch:8.0.1264: terminal debugger gets stuck in small window
vim-patch:8.0.1276: key lost when window closed in exit callback
vim-patch:8.0.1295: cannot automatically get a server name in a terminal
vim-patch:8.0.1297: +autoservername does not show enabled on MS-Windows
vim-patch:8.0.1319: can't build GUI on MS-Windows
vim-patch:8.0.1341: 'imactivatefunc' test fails on MS-Windows
vim-patch:8.0.1344: using 'imactivatefunc' in the GUI does not work
vim-patch:8.0.1349: options test fails when using Motif or GTK GUI
vim-patch:8.0.1436: not enough information about what Python version may work
vim-patch:8.0.1440: terminal window: some vterm responses are delayed
vim-patch:8.0.1452: terminal test fails on some systems
vim-patch:8.0.1453: terminal test fails on some slow terminals
vim-patch:8.0.1527: screen dump test fails on MS-Windows
vim-patch:8.0.1551: on Mac 'maxmemtot' is set to a weird value
vim-patch:8.0.1568: can't build on older Mac, header file is missing
vim-patch:8.0.1572: Mac: getting memory size doesn't work everywhere
vim-patch:8.0.1596: no autocommand specifically for opening a terminal window
vim-patch:8.0.1599: no error message when gdb does not support debugger
vim-patch:8.0.1604: paste test may fail if $DISPLAY is not set
vim-patch:8.0.1612: need to close terminal after shell stopped
vim-patch:8.0.1641: job in terminal can't communicate with Vim
vim-patch:8.0.1647: terminal API may call any user function
vim-patch:8.0.1655: outdated gdb message in terminal debugger unclear
vim-patch:8.0.1671: crash when passing non-dict argument as env to job_start()
vim-patch:8.0.1713: terminal debugger doesn't handle arguments
vim-patch:8.0.1759: memory leak from duplicate options
vim-patch:8.0.1797: terminal window is redrawn too often
vim-patch:8.0.1850: todo items in source code not visible for users

vim-patch:8.1.0055: complete test has wrong order of arguments
vim-patch:8.1.0081: the terminal debugger doesn't adjust to changed 'background'
vim-patch:8.1.0100: terminal debugger: error when setting a watch point
vim-patch:8.1.0195: terminal debugger commands don't always work
vim-patch:8.1.0196: terminal debugger error with .gdbinit file
vim-patch:8.1.0359: no clue what test failed when using a screendump twice
vim-patch:8.1.0371: argument types for select() may be wrong
vim-patch:8.1.0382: some make programs can't handle "xdiff/../"
vim-patch:8.1.0423: MS-Windows: using dup-close for flushing a file
vim-patch:8.1.0445: setting 'term' does not store location for termcap options
vim-patch:8.1.0451: Win32 console: keypad keys don't work
vim-patch:8.1.0457: win32 console: key mappings don't work
vim-patch:8.1.0462: when using ConPTY Vim can be a child process
vim-patch:8.1.0465: client-server test fails
vim-patch:8.1.0481: when "Terminal" highlight is reverted cursor doesn't show
vim-patch:8.1.0486: can't build in MS-Windows
vim-patch:8.1.0491: if a terminal dump has CR it is considered corrupt
vim-patch:8.1.0525: terminal test skips part on Windows
vim-patch:8.1.0526: running out of signal stack in RealWaitForChar
vim-patch:8.1.0561: MSCV error format has changed
vim-patch:8.1.0580: invalid memory access when using text properties
vim-patch:8.1.0590: when a job ends the closed channels are not handled
vim-patch:8.1.0591: channel sort test is flaky
vim-patch:8.1.0603: the :stop command is not tested
vim-patch:8.1.0611: crash when using terminal with long composing characters
vim-patch:8.1.0618: term_getjob() does not return v:null as documented
vim-patch:8.1.0625: MS-Windows: terminal test fails in white console
vim-patch:8.1.0631: test for :stop fails on Arch
vim-patch:8.1.0647: MS-Windows: balloon_show() does not handle wide characters
vim-patch:8.1.0657: get error for using regexp recursively
vim-patch:8.1.0659: build failure without the sign feature
vim-patch:8.1.0666: text property test fails
vim-patch:8.1.0692: if a buffer was deleted a channel can't write to it
vim-patch:8.1.0693: channel test fails sometimes
vim-patch:8.1.0705: :colorscheme isn't tested enough
vim-patch:8.1.0708: third argument for redrawWinline() is always FALSE
vim-patch:8.1.0724: build for MinGW fails
vim-patch:8.1.0731: JS encoding does not handle negative infinity
vim-patch:8.1.0760: no proper test for using 'termencoding'
vim-patch:8.1.0774: VMS build is missing the blob file
vim-patch:8.1.0778: terminal test fails on MS-Windows
vim-patch:8.1.0780: terminal test fails on Mac
vim-patch:8.1.0781: build error when using if_xcmdsrv.c
vim-patch:8.1.0782: Win32: cursor blinks when Vim is not active
vim-patch:8.1.0795: cannot build without popup menu
vim-patch:8.1.0796: MS-Windows 7: problem with named pipe on channel
vim-patch:8.1.0799: calling deleted function; test doesn't work on Mac
vim-patch:8.1.0812: Unicode 16 feature is not useful
vim-patch:8.1.0823: not sufficient testing of xxd
vim-patch:8.1.0827: missing dependency in Makefile
vim-patch:8.1.0831: xxd test fails if man page has dos fileformat
vim-patch:8.1.0835: GUI build fails on MS-Windows
vim-patch:8.1.0847: may use terminal after it was cleaned up
vim-patch:8.1.0848: cannot build with Ruby 1.8
vim-patch:8.1.0860: debug lines left in the code
vim-patch:8.1.0861: building with MinGW and static libc doesn't work
vim-patch:8.1.0866: build file dependencies are outdated
vim-patch:8.1.0867: cannot build Python interface with Python 2.4
vim-patch:8.1.0871: build error when building with Ruby 2.6.0
vim-patch:8.1.0872: confusing condition
vim-patch:8.1.0889: MS-Windows: a channel write may hang
vim-patch:8.1.0898: a messed up rgb.txt can crash Vim
vim-patch:8.1.0900: ConPTY many crash with 32-bit build
vim-patch:8.1.0904: USE_LONG_FNAME never defined
vim-patch:8.1.0915: fsync() may not work properly on Mac
vim-patch:8.1.0919: compiler warnings
vim-patch:8.1.0920: in Terminal-Normal mode job output messes up the window
vim-patch:8.1.0921: terminal test sometimes fails; using memory after free
vim-patch:8.1.0922: terminal scrollback test is flaky
vim-patch:8.1.0923: terminal dump diff swap does not update file names
vim-patch:8.1.0924: terminal scrollback test still flaky
vim-patch:8.1.0925: terminal scrollback test still still flaky
vim-patch:8.1.0931: vtp_working included in GUI build but unused
vim-patch:8.1.0960: when using ConPTY garbage collection has undefined behavior
vim-patch:8.1.0961: Mac: fsync may fail sometimes
vim-patch:8.1.0964: cannot see in CI why a screenshot test failed
vim-patch:8.1.0981: pasting in terminal insufficiently tested
vim-patch:8.1.0982: update_cursor() called twice in :shell
vim-patch:8.1.0993: ch_read() may return garbage if terminating NL is missing
vim-patch:8.1.1018: window cleared when entering Terminal-Normal twice
vim-patch:8.1.1024: stray log calls in terminal code
vim-patch:8.1.1051: not all ways to switch terminal mode are tested
vim-patch:8.1.1080: when a screendump test fails, moving the file is a hassle
vim-patch:8.1.1102: Win32 exe file contains unused code
vim-patch:8.1.1121: test for term_gettitle() was disabled
vim-patch:8.1.1128: getwinpos() test does not work on MS-Windows
vim-patch:8.1.1129: when making a new screendump test have to create the file
vim-patch:8.1.1132: getwinpos() test fails on MS-Windows
vim-patch:8.1.1141: terminal winpos test fails with very large terminal
vim-patch:8.1.1162: incorrect coverage information; typo in color name
vim-patch:8.1.1168: not all screen update code of terminal is executed in tests
vim-patch:8.1.1170: terminal ANSI color test does not cover all colors
vim-patch:8.1.1172: cursor properties were not fully tested
vim-patch:8.1.1330: using bold attribute in terminal changes the color
vim-patch:8.1.1505: running "make clean" twice gives errors
vim-patch:8.1.1572: compiler warnings with tiny build
vim-patch:8.1.1576: compiler warning for unused argument
vim-patch:8.1.1592: may start file dialog while exiting
vim-patch:8.1.1594: may still start file dialog while exiting
vim-patch:8.1.1595: MS-Windows with VIMDLL: colors wrong in console
vim-patch:8.1.1605: Vim may delay processing messages on a json channel
vim-patch:8.1.1616: build failure with gcc on Amiga
vim-patch:8.1.1618: Amiga-like systems quickly run out of stack
vim-patch:8.1.1621: Amiga: time.h included twice
vim-patch:8.1.1627: header file contains mixed comment style
vim-patch:8.1.1633: cannot generate prototypes with X11 but without GUI
vim-patch:8.1.1635: warnings for unused variables in small version
vim-patch:8.1.1643: sign placement is wrong when 'foldcolumn' is set
vim-patch:8.1.1644: sound test does not work on Travis
vim-patch:8.1.1647: build error with GTK and hangulinput feature
vim-patch:8.1.1653: ubsan warns for possibly passing NULL pointer
vim-patch:8.1.1658: debug statements included in patch
vim-patch:8.1.1661: cannot build with +textprop but without +balloon_eval
vim-patch:8.1.1662: cannot build uninstal.exe with some version of MinGW
vim-patch:8.1.1664: GUI resize may cause changing Rows at a bad time
vim-patch:8.1.1669: Travis: test results section is closed even when failed
vim-patch:8.1.1670: sign column not always properly aligned
vim-patch:8.1.1685: missing file in distributed file list
vim-patch:8.1.1688: old makefiles are no longer useful
vim-patch:8.1.1691: diff test fails on some systems
vim-patch:8.1.1696: MSVC: link command line is too long
vim-patch:8.1.1697: cannot build with MSVC
vim-patch:8.1.1698: Appveyor build with MSVC fails
vim-patch:8.1.1701: Appveyor build with MSVC fails puts progress bar in log
vim-patch:8.1.1702: compiler warning for uninitialized variable
vim-patch:8.1.1706: typo in #ifdef
vim-patch:8.1.1721: build failure with normal features without netbeans interface
vim-patch:8.1.1735: can't build with tiny features
vim-patch:8.1.1744: build error without the conceal feature
vim-patch:8.1.1777: useless checks for job feature in channel test
vim-patch:8.1.1781: Amiga: no builtin OS readable version info
vim-patch:8.1.1788: missing changes in proto file
vim-patch:8.1.1792: the vgetorpeek() function is too long
vim-patch:8.1.1794: tests are flaky
vim-patch:8.1.1815: duplicating info for internal functions
vim-patch:8.1.1817: github contribution text is incomplete
vim-patch:8.1.1825: allocating more memory than needed for extended structs
vim-patch:8.1.1830: Travis does not report error when tests fail
vim-patch:8.1.1836: inaccurate memory estimate for Amiga-like OS
vim-patch:8.1.1847: suspend test is failing
vim-patch:8.1.1848: 'langmap' is not used for CTRL-W command in terminal
vim-patch:8.1.1873: cannot build tiny version
vim-patch:8.1.1876: proto file missing from distribution
vim-patch:8.1.1885: comments in libvterm are inconsistent
vim-patch:8.1.1889: Coverity warns for using a NULL pointer
vim-patch:8.1.1894: not checking for out-of-memory of autoload_name()
vim-patch:8.1.1896: compiler warning for unused variable
vim-patch:8.1.1898: crash when out of memory during startup
vim-patch:8.1.1916: trying to allocate negative amount of memory closing popup
vim-patch:8.1.1942: shadow directory gets outdated when files are added
vim-patch:8.1.1948: mouse doesn't work in Linux console

The following is N/A because of https://github.com/neovim/neovim/pull/10565:
vim-patch:8.1.0537: ui_breakcheck() may be called recursively

vim-patch:8.1.1833
This was merged in Neovim before Vim.

vim-patch:8.1.1479: change included for debugging only
This is N/A iff vim-patch:8.1.0424 is N/A. https://github.com/neovim/neovim/pull/10308#issuecomment-504716053

82d52b229d makes `src/testdir/test_paste.vim` patches N/A.
vim-patch:8.0.0233: paste test fails in the GUI
vim-patch:8.1.1307: cannot reconnect to the X server after it restarted

`bufIsChangedNotTerm` is N/A because of neovim/neovim@2929dbf223
vim-patch:8.0.1382: get "no write since last change" message if terminal is open

vim-patch:8.1.1483 was merged without merging the older patches first so I assume that the following patches are N/A:
vim-patch:8.0.1578: no test for :popup in terminal
2019-09-04 08:37:24 -07:00
7023131223 Log signals handled in deadly_signal (#10939) 2019-09-04 16:44:06 +02:00
3468a466ed Merge #10934 from janlazo/vim-8.0.1752
vim-patch:8.0.{1752,1844},8.1.0145
2019-09-04 07:19:17 -07:00
fe60013fb9 test/mode_spec: increase 'matchtime' to fix flaky
fix #10941
regressed by 7ed2122622
2019-09-04 07:06:12 -07:00
540360a775 test: is_os() #10933
- Move os_name() up to "global helpers".
- Rename it to is_os().
- Make it depend on uname() instead of a running Nvim instance.
2019-09-04 06:58:04 -07:00
9cc8064864 netrw.vim: workaround gx bug #10938
ref vim/vim#4738
2019-09-04 06:51:01 -07:00
e7e2c8d7ff Merge pull request #10926 from blueyed/fix-echon-q
Check got_int in msg_multiline_attr with ex_echo
2019-09-04 15:31:56 +02:00
ac6fd11fa1 only check got_int with ex_echo
Ref: https://github.com/neovim/neovim/pull/10926#discussion_r320706446
2019-09-04 13:30:11 +02:00
4556bb90fa move test 2019-09-04 13:13:39 +02:00
e867ac3e52 Check got_int in msg_multiline_attr
Fixes quitting the pager using `q`.

Fixes https://github.com/neovim/neovim/issues/10923.
2019-09-04 10:50:26 +02:00
1838f6ba76 vim-patch:8.1.0145: test with grep is failing on MS-Windows
Problem:    Test with grep is failing on MS-Windows.
Solution:   Skip the test.
851332ea9c
2019-09-04 02:45:57 -04:00
9d50d033bc vim-patch:8.0.1844: superfluous quickfix code, missing examples
Problem:    Superfluous quickfix code, missing examples.
Solution:   Remove unneeded code.  Add a few examples.  Add a bit more
            testing. (Yegappan Lakshmanan, closes vim/vim#2916)
78ddc06bdd
2019-09-04 02:05:25 -04:00
d3f1eb3024 vim-patch:8.1.1946: memory error when profiling a function without a script ID
Problem:    Memory error when profiling a function without a script ID.
Solution:   Check for missing script ID.  (closes vim/vim#4877)
163588005d
2019-09-04 14:48:21 +09:00
7876f4f218 vim-patch:8.0.1752: qf_set_properties() is to long
Problem:    qf_set_properties() is to long.
Solution:   Refactor the function.  Define INVALID_QFIDX. (Yegappan
            Lakshmanan, closes vim/vim#2812)
a2aa8a2b22
2019-09-04 01:34:18 -04:00
9db60b06a1 vim-patch:8.1.0515: reloading a script gives errors for existing functions
Problem:    Reloading a script gives errors for existing functions.
Solution:   Allow redefining a function once when reloading a script.
ded5f1bed7
2019-09-04 13:40:05 +09:00
e4a4786241 vim-patch:8.1.0365: function profile doesn't specify where it was defined
Problem:    Function profile doesn't specify where it was defined.
Solution:   Show the script name and line number.
4c7b08f640
2019-09-04 13:40:05 +09:00
0e11a106c5 vim-patch:8.1.0309: profiling does not show a count for condition lines
Problem:    Profiling does not show a count for condition lines.  (Daniel
            Hahler)
Solution:   Count lines when not skipping. (Ozaki Kiichi, closes #2499)
7feb35e778
2019-09-04 13:40:05 +09:00
2926a36d91 [squash] Fix errors when porting 2019-09-04 13:40:05 +09:00
4f6df65f02 Change test because maparg was changed to also return lnum 2019-09-04 13:40:04 +09:00
a2e48b556b vim-patch:8.1.0362: cannot get the script line number when executing a function
Problem:    Cannot get the script line number when executing a function.
Solution:   Store the line number besides the script ID. (Ozaki Kiichi,
            closes vim/vim#3362)  Also display the line number with ":verbose set".
f29c1c6aa3
2019-09-04 13:40:04 +09:00
38806f23ed test: enable "exit event follows stdout, stderr" [ci skip] #10929
- Update the test to work with changes since it was originally written.
- Keep the test pending() because it still fails:

      Expected objects to be the same.
      Passed in:
      (table: 0x50ce9e38) {
        [1] = {
          [1] = 'notification'
          [2] = 'stderr'
          [3] = {
            [1] = 0
            [2] = {
              [1] = '' } } }
       *[2] = {
          [1] = 'notification'
          [2] = 'stdout'
         *[3] = {
            [1] = 0
           *[2] = {
             *[1] = '' } } }
        [3] = {
          [1] = 'notification'
          [2] = 'exit'
          [3] = {
            [1] = 0
            [2] = 143 } } }
      Expected:
      (table: 0x50ce9870) {
        [1] = {
          [1] = 'notification'
          [2] = 'stderr'
          [3] = {
            [1] = 0
            [2] = {
              [1] = '' } } }
       *[2] = {
          [1] = 'notification'
          [2] = 'stdout'
         *[3] = {
            [1] = 0
           *[2] = {
             *[1] = 'abcdef' } } }
        [3] = {
          [1] = 'notification'
          [2] = 'stdout'
          [3] = {
            [1] = 0
            [2] = {
              [1] = '' } } } }
2019-09-03 10:25:27 -07:00
8b8ecf44f2 shada/context: fully remove jumplist duplicates #10898
- Always load files when cleaning up jumplist.
  - For Shada: avoids writing duplicate entries, which happens when you read
    from a shada file with duplicate entries (merging the jumplist while
    writing sometimes produces duplicate entries, bug?) and then write right
    away (i.e.: without any `:jumps`, `getjumplist()`, or any jump movement,
    that is: nothing that calls `cleanup_jumplist` with `loadfiles == true`).
  - For Context: avoids non-idempotent behavior for the same reason (i.e.:
    first call to `shada_encode_jumps` does not remove duplicate entries).

- Do not set pcmark when dumping jumplist for Context.
  - Retrieving current Context shouldn't add an entry to the jumplist
    (which will be removed by a subsequent `cleanup_jumplist` anyway, i.e.:
    tail entry matching current position), just act like `getjumplist` for
    instance.
2019-09-03 10:18:24 -07:00
b8f2436feb Merge #10915 'jobwait(): fix race if job exits quickly' 2019-09-03 08:40:54 -07:00
6242bac904 f_jobwait: cleanup 2019-09-03 16:14:29 +02:00
58318af718 jobwait(): fix race if job exits before waiting on it
Problem:  If a job exits while waiting on another job, the on_exit
          handler is queued but f_jobwait() skips it.
Solution: Always do process_wait(), so that handlers are run during
          f_jobwait().

fix #8302

Test case:
    $ BUSTED_ARGS="--repeat=2000 --no-keep-going" TEST_FILE=test/functional/core/job_spec.lua TEST_FILTER=waiting make functionaltest

Failure example (macOS CI):
    FAILED  test/functional/core/job_spec.lua: jobs jobwait will run callbacks while waiting
    test/functional/core/job_spec.lua:606: Expected objects to be the same.
    Passed in:
    (table: 0x1be77c80) {
      [1] = 'notification'
      [2] = 'wait'
     *[3] = {
       *[1] = 3 } }
    Expected:
    (table: 0x1be77d10) {
      [1] = 'notification'
      [2] = 'wait'
     *[3] = {
       *[1] = 4 } }
    stack traceback:
      test/functional/core/job_spec.lua:606: in function <test/functional/core/job_spec.lua:583
2019-09-03 16:14:29 +02:00
a00eb23c27 test/wildmode_spec: fix flaky test
[  ERROR   ] test/functional\ui\wildmode_spec.lua @ 84: 'wildmenu' is preserved during :terminal activity
    test\functional\ui\screen.lua:587: Row 1 did not match.
    Expected:
      |*:sign                    |
      |*define    place          |
      |*jump      undefine       |
      |*list      unplace        |
      |*:sign ^                   |
    Actual:
      |*0: !terminal             |
      |*                         |
      |*^                         |
      |*~                        |
      |*                         |
    stack traceback:
        test\functional\ui\screen.lua:587: in function '_wait'
        test\functional\ui\screen.lua:370: in function 'expect'
        test/functional\ui\wildmode_spec.lua:22: in function 'expect_stay_unchanged'
        test/functional\ui\wildmode_spec.lua:103: in function <test/functional\ui\wildmode_spec.lua:84>
2019-09-03 16:14:29 +02:00
7233433f65 test/job_spec: improve visibility of flaky test
Test sometimes fails on macOS CI:

    FAILED  test/functional/core/job_spec.lua: jobs jobwait will run callbacks while waiting
    test/functional/core/job_spec.lua:606: Expected objects to be the same.
    Passed in:
    (table: 0x1be77c80) {
      [1] = 'notification'
      [2] = 'wait'
     *[3] = {
       *[1] = 3 } }
    Expected:
    (table: 0x1be77d10) {
      [1] = 'notification'
      [2] = 'wait'
     *[3] = {
       *[1] = 4 } }
    stack traceback:
      test/functional/core/job_spec.lua:606: in function <test/functional/core/job_spec.lua:583

Change the test to check if all jobs are starting, not only exiting.
2019-09-03 16:14:29 +02:00
03be64ce2a Merge #10921 from janlazo/vim-8.0.1768
vim-patch:8.0.{1768,1806},8.1.{46,1063}
2019-09-03 04:49:30 -07:00
dcc8fcf0b9 tests: assert:set_parameter('TableFormatLevel', 100) #10925
luassert uses 3 by default, which is often not enough.

Instead of documenting how to increase it, let's use a more fitting
(sane) default of 100 levels.
2019-09-03 04:29:49 -07:00
d000f02bc0 vim-patch.sh: fix "unbound variable" error with Bash < 4.4 [ci skip] (#10917)
Ref: https://github.com/neovim/neovim/pull/10888#issuecomment-526774032
2019-09-03 10:12:02 +02:00
7199f0b3b3 vim-patch:8.1.1063: insufficient testing for wildmenu completion
Problem:    Insufficient testing for wildmenu completion.
Solution:   Extend the test case. (Dominique Pelle, closes vim/vim#4182)
37db642083
2019-09-03 00:07:23 -04:00
c0cb7585cc vim-patch:8.1.0046: loading a session file fails if 'winheight' is big
Problem:    Loading a session file fails if 'winheight' is a big number.
Solution:   Set 'minwinheight' to zero at first.  Don't give an error when
            setting 'minwinheight' while 'winheight' is a big number.
            Fix using vertical splits. Fix setting 'minwinwidth'.
            (closes vim/vim#2970)
1c3c10492a
2019-09-02 19:54:06 -04:00
02f126a275 vim-patch:8.0.1806: InsertCharPre causes problems for autocomplete
Problem:    InsertCharPre causes problems for autocomplete. (Lifepillar)
Solution:   Check for InsertCharPre before calling vpeekc(). (Christian
            Brabandt, closes vim/vim#2876)
39de952577
2019-09-02 18:40:56 -04:00
07b209b1fe vim-patch:8.0.1768: SET_NO_HLSEARCH() used in a wrong way
Problem:    SET_NO_HLSEARCH() used in a wrong way.
Solution:   Make it a function. (suggested by Dominique Pelle,
            closes vim/vim#2850)
451fc7b954
2019-09-02 18:40:56 -04:00
6434a0bf99 Merge pull request #10920 from bfredl/asyncfail
api: make try_end clean-up after an exception properly.
2019-09-02 23:02:58 +02:00
7e07efaff4 api: make try_end clean-up after an exception properly. Fixes #10809
Otherwise `force_abort` will cause an emsg() higher on the stack
to be converted to an exception, even though it is outside any
try/catch.
2019-09-02 23:01:16 +02:00
d3c17d50d8 Merge #10918 from janlazo/vim-8.0.1697
vim-patch:8.0.{1697,1729}
2019-09-02 11:28:12 -07:00
4a60818071 vim-patch:8.0.1729: no comma after last enum item
Problem:    No comma after last enum item.
Solution:   Add a few commas to check if this works for all compilers.  Also
            add a few // comments.
ea3ece405a
2019-09-02 12:19:10 -04:00
55c66d6c19 vim-patch:8.0.1697: various tests are still a bit flaky
Problem:    Various tests are still a bit flaky.
Solution:   Increase the default wait time to five seconds.
769e9d21ac
2019-09-02 12:00:33 -04:00
cb339ca0fb Merge pull request #10913 from bfredl/nomsgsep
screen: fixes for `set display-=msgsep`, fixes #10912
2019-09-02 13:32:25 +02:00
66f4e8aee0 screen: initialize screen properly with early set display-=msgsep
Currently `nvim -u NORC --cmd "set display-=msgsep"` will still allocate the
message grid and remove it just afterwards. While inefficient, we must
make sure update_screen() re-validates the default_grid completely when
this happens.

Fix some invalid logic: don't reallocate msg_grid on resize when the grid is not
used.

Elide a too early ui_flush() on startup, which caused an invalid cursor
position to be used.
2019-09-02 12:39:03 +02:00
099445cc07 Merge #10804 'CI/OpenBSD: functional tests' 2019-09-01 22:56:41 -07:00
7bb029eeef vim-patch:8.0.0858: check if job terminal is running #10908
Problem:    Can exit while a terminal is still running a job.
Solution:   Consider a buffer with a running job like a changed file.
eb44a68b42
2019-09-01 22:54:49 -07:00
ead39d6ce6 test/uname(): always lowercase 2019-09-01 22:49:33 -07:00
7d20907724 test/OpenBSD: skip some tests
Temporary workaround to unblock CI for OpenBSD.
2019-09-01 22:49:33 -07:00
605f05f635 test: shell-test.c: flush all streams 2019-09-01 22:49:33 -07:00
78ec7981c8 screen.lua: dump payload on handler failure
For debugging failures like:

    test/functional/helpers.lua:240: test/functional/ui/screen.lua:898:
    bad argument #1 to 'unpack' (table expected, got number)

    test/functional/helpers.lua:240: test/functional/ui/screen.lua:708:
    attempt to index local 'item' (a number value)

ref #10804
2019-09-01 22:49:33 -07:00
c062149d5b test: "can have two timers": retry()
ref #10768
2019-09-01 22:49:33 -07:00
b64af88c84 CI/OpenBSD: run functional tests
Adapt some tests for OpenBSD:

- scrollback_spec:
  - seq(1) is not available on OpenBSD: we'd use jot(1).
  - Instead use a (hopefully) portable awk(1) snippet.
- channels_spec
- job_spec
- tui_spec
2019-09-01 22:49:33 -07:00
299331490e API: nvim_buf_set_lines: handle 'nomodifiable' #10910 2019-09-01 22:04:20 -07:00
5f23a3dbcf vim-patch:8.0.1653: screen dump is made too soon (#10911)
Problem:    Screen dump is made too soon.
Solution:   Wait until the ruler is displayed. (Ozaki Kiichi, closes vim/vim#2755)
1834d37396
2019-09-02 06:24:34 +02:00
d1bed81ad8 PVS/V547: Expression is always false
ll_get_or_alloc_list() never fails because OOM is an abort condition.
2019-09-02 04:50:22 +02:00
fb19aeeb33 API: make nvim_win_set_option() set window-global, not buffer-local #9110
NB: the `!(flags & SOPT_GLOBAL)` exception is for 'statusline'.
Because `:set statusline=...` sets the global value for _all_ windows,
`:setlocal` is the best we can do there. This is a one-of-a-kind option
that doesn't work like any other option.
2019-09-01 19:38:50 -07:00
b10d703213 Merge #10896 'paste: one undo-block' 2019-09-01 19:12:13 -07:00
8560bafc6c paste: redraw at end
Attempt to fix test failure since 976c6667e1 removed per-chunk redraw:

  ERROR test/functional/terminal/tui_spec.lua: TUI paste: cmdline-mode inserts 1 line
  test/functional/terminal/tui_spec.lua:367: in function <test/functional/terminal/tui_spec.lua:360
  Expected:
    |*foo                                               |
    |*                                                  |
    |{4:~                                                 }|
    |{4:~                                                 }|
    |{5:[No Name] [+]                                     }|
    |:"line 1{1:"}                                         |
    |{3:-- TERMINAL --}                                    |
  Actual:
    |*                                                  |
    |*{4:~                                                 }|
    |{4:~                                                 }|
    |{4:~                                                 }|
    |{5:[No Name] [+]                                     }|
    |:"line 1{1:"}                                         |
    |{3:-- TERMINAL --}                                    |
2019-09-02 03:34:01 +02:00
976c6667e1 paste: one undo-block per stream
- All "chunks" in a paste-stream should form a single undo-block. Side
  effect of 7a85792884 was to create an undo-block for each chunk.
- Also: remove old :redraw force logic, irrelevant after 7a85792884.
2019-09-02 02:27:13 +02:00
938be1e0ab vim-patch:8.0.1534: C syntax test fails in gvim #10909
Problem:    C syntax test fails when using gvim
Solution:   Force running in a terminal.  Check that 'background' is correct
            even when $COLORFGBG is set.
b7ea7cb8e4
2019-09-01 17:00:50 -07:00
801fe799ff Merge pull request #10382 from abdelhakeem/waituntil
eval: add wait()
2019-09-01 23:27:18 +02:00
b447bdb68c fixup! eval: add wait() test 2019-09-01 21:17:14 +02:00
2d3f39c729 eval: add wait() test 2019-09-01 21:17:14 +02:00
7844501c2b eval: add wait()
closes #10362
2019-09-01 21:17:14 +02:00
9df3a676e7 Merge pull request #10400 from bfredl/msg_grid
Dedicated message grid.
2019-09-01 20:25:36 +02:00
2f37c24348 Merge #10733 from justinmk/test-fixes
test: use shell-test (avoid system shell)
2019-09-01 11:13:29 -07:00
78a2bbaa4b Merge #10906 from janlazo/vim-8.0.1241
vim-patch:8.0.{1241,1246,1260}
2019-09-01 10:11:10 -07:00
14615f7f67 screen: add some documentation of internals of msg_grid implementation 2019-09-01 18:53:55 +02:00
2c1749ce44 test: assert_alive() 2019-09-01 09:03:46 -07:00
f63d952ca2 test: use shell-test (avoid system shell) 2019-09-01 09:03:46 -07:00
641c5b3f08 test/inccommand_spec: avoid indeterminism
- Use shell-test.c to avoid the squishiness of system shells.
- Use screen:expect_unchanged() to avoid hardcoded (brittle) test.

Fails correctly if 5020daa6e5 is reverted (remove terminal_check(),
restore redraw() in refresh_timer_cb()):

    [  ERROR   ] test/functional/ui/inccommand_spec.lua @ 2550: :substitute with inccommand during :terminal activity
    test/functional/helpers.lua:402:
    retry() attempts: 2
    test/functional/ui/screen.lua:579: Row 8 did not match.
    Expected:
      |foo bar baz                   |
      |bar baz fox                   |
      |bar foo baz                   |
      |{15:~                             }|
      |{15:~                             }|
      |{15:~                             }|
      |{11:[No Name] [+]                 }|
      |*26: xxx                       |
      |27: xxx                       |
      |28: xxx                       |
      |29: xxx                       |
      |30: xxx                       |
      |                              |
      |{10:term                          }|
      |:%s/foo/ZZZ^                   |
    Actual:
      |foo bar baz                   |
      |bar baz fox                   |
      |bar foo baz                   |
      |{15:~                             }|
      |{15:~                             }|
      |{15:~                             }|
      |{11:[No Name] [+]                 }|
      |*107: xxx                      |
      |108: xxx                      |
      |109: xxx                      |
      |110: xxx                      |
      |111: xxx                      |
      |                              |
      |{10:term                          }|
      |:%s/foo/ZZZ^                   |
2019-09-01 09:03:46 -07:00
53b7f60805 vim-patch:8.1.0141: :cexpr no longer jumps to the first error #10901
Problem:  :cepxr no longer jumps to the first error.
Solution: Use the quickfix list identifier. (Yegappan Lakshmanan)

Fixes https://github.com/neovim/neovim/issues/10895
2019-09-01 08:46:07 -07:00
57327bb483 vim-patch:8.0.1217: remote eval to inspect vars in :debug #10903
Problem:    Can't use remote eval to inspect vars in debug mode.
Solution:   Don't discard the call stack in debug mode. (closes vim/vim#2237, vim/vim#2247)
d99388ba85
2019-09-01 08:42:47 -07:00
8a187aee8c vim-patch:8.0.1260: using global variables for WaitFor()
Problem:    Using global variables for WaitFor().
Solution:   Use a lambda function instead.  Don't check a condition if
            WaitFor() already checked it.
ab8b1c14a3
2019-09-01 11:33:17 -04:00
8495e50273 vim-patch:8.0.1246: popup test has an arbitrary delay
Problem:    Popup test has an arbitrary delay.
Solution:   Wait for the ruler to show. (James McCoy)
b315876efa
2019-09-01 11:28:48 -04:00
8e1adedb26 vim-patch:8.0.1241: popup test is flaky
Problem:    Popup test is flaky. (James McCoy)
Solution:   Increase the wait time. (Dominique Pelle)
89c394faca
2019-09-01 11:27:51 -04:00
e04b9e7c78 test/ui: update tests for new msg_grid implementation 2019-09-01 15:55:10 +02:00
b51ba122c1 screen: use dedicated message grid
add proper msg_set_pos event, delet win_scroll_over_*

make compositor click through unfocusable grids

add MsgArea attribute for the message/cmdline area, and add docs and tests
2019-09-01 15:55:10 +02:00
9cec097ffa batch draw :ls 2019-09-01 13:21:40 +02:00
27786df6a3 test/ui: make screen:expect() print full state when height does not match 2019-09-01 13:21:40 +02:00
e29b89ca54 vim-patch:8.1.1950: using NULL pointer after an out-of-memory (#10902)
Problem:    Using NULL pointer after an out-of-memory.
Solution:   Check for NULL pointer. (Dominique Pelle, closes vim/vim#4881)
4bbfb0f3cc
2019-08-31 21:34:25 +02:00
25e0a449bb Merge pull request #10878 from bfredl/pastedefer
TUI: defer nvim_paste event properly
2019-08-31 11:18:35 +02:00
2c605d1f22 tui/input: remove "cancel paste" logic which should be redundant 2019-08-31 09:20:24 +02:00
dff06a90e4 api: make nvim_put support "\022{NUM}" regtype as returned by getregtype() 2019-08-31 09:20:24 +02:00
f8b5d6e124 events: loop_schedule() is unclear, rename it loop_schedule_fast() 2019-08-31 09:20:24 +02:00
7a85792884 tui/input: defer nvim_paste properly.
Otherwise cursor and redraw code for normal and insert mode will not run. The
"tickle" workaround was used for this instead, and can now be removed.

The builtin vim.lua got the name
[string "-- Nvim-Lua stdlib: thevimmodule (:help l..."]
in error messages. Fix it to something reasonable.
2019-08-31 09:20:24 +02:00
8a03acb8da vim-patch:8.1.1947: when executing one test the report doesn't show it #10893
Problem:    When executing one test the report doesn't show it.
Solution:   Adjust the regexp. (Daniel Hahler, closes vim/vim#4879)
60b1bcfe92
2019-08-30 22:48:46 +02:00
16c289f217 vim-patch:8.1.1941: getftype() test fails on Mac #10894
Problem:    getftype() test fails on Mac.
Solution:   Skip /dev/fd/.
ad5db44c01
2019-08-30 22:47:28 +02:00
6024fb5267 vim-patch:cb00f0393 (#10892)
Add missing test file.
cb00f03933
2019-08-30 18:47:42 +02:00
ab560739ac vim-patch:8.0.0930: terminal buffers are stored in the viminfo file (#10889)
Problem:    Terminal buffers are stored in the viminfo file while they can't
            be useful.
Solution:   Skip terminal buffers for file marks and buffer list
e62780543f
2019-08-30 18:46:54 +02:00
e03a4f965e scripts/vim-patch.sh: massage args for git-log [ci skip] (#10888)
Replace "src/nvim/" => "src/".
Replace ".*/.vim-src/" => "".

This allows to use tab completion based on existing files in Neovim's
source, or via .vim-src.

Previously you would have to typically remove the "nvim/" part manually
yourself.
2019-08-30 16:46:29 +02:00
dd025a18c1 vim-patch:8.1.0950: using :python sets 'pyxversion' even when not executed (#10891)
Problem:    Using :python sets 'pyxversion' even when not executed.
Solution:   Check the "skip" flag. (Shane Harper, closes vim/vim#3995)
14816ad6e5
2019-08-30 16:43:21 +02:00
1ab442db90 vim-patch:8.1.0212: preferred cursor column not set in interfaces (#10890)
Problem:    Preferred cursor column not set in interfaces.
Solution:   Set w_set_curswant when setting the cursor. (David Hotham,
            closes vim/vim#3060)
53901442f3
2019-08-30 16:42:19 +02:00
06e693cdc9 Merge #10884 'API: nvim_paste: add crlf parameter' 2019-08-30 09:15:43 +02:00
f5fd699c52 test: vim.paste() cancel 2019-08-30 08:33:14 +02:00
b6192a9920 API: nvim_paste: add crlf parameter 2019-08-30 08:33:14 +02:00
4b8a16153e tests: check_logs: improve error message (#10887)
Before:

    [  ERROR   ] test/functional/helpers.lua @ 812: after_each
    test/helpers.lua:156: assertion failed!
    stack traceback:
            test/helpers.lua:156: in function 'check_logs'
            test/functional/helpers.lua:816: in function <test/functional/helpers.lua:812>
2019-08-30 08:26:55 +02:00
7d53887352 Merge pull request #10855 from blueyed/out_data_decide_throttle
Revisit out_data_decide_throttle
2019-08-30 07:46:24 +02:00
56e570f8af Merge #10886 from janlazo/vim-8.1.1938
vim-patch:8.1.{233,1938}
2019-08-30 07:42:57 +02:00
bf85023005 shell-test: remove REP_NODELAY, less delay with REP
REP_NODELAY was added because REP delayed too much.  This changes REP to
only add a delay on every 100th line instead.

This helps to cover the additional pulse steps with
out_data_decide_throttle, which would have required to change
REP_NODELAY anyway.
2019-08-30 07:12:46 +02:00
b3ab7ba1d6 Revisit out_data_decide_throttle
Pulse every 0.1s only.

This makes `!yes` look much better (less busy).
2019-08-30 07:12:46 +02:00
7732976918 tests: fix Test_tagfiles: use Vim's 'tags' (#10883)
When run via `test_alot.vim` `Test_tagfiles` gets run after `set tags&`,
and might therefore pick up "tags" from Neovim's source directory.

This patch makes it use Vim's default always (which is different from
Neovim's).
2019-08-30 07:10:21 +02:00
7ad1d00eaa vim-patch:8.1.1937: errors when using javascriptreact #10885
Problem:    Errors when using javascriptreact.
Solution:   Use ":runtime" instead of ":source". (closes vim/vim#4875)
4fb15c6476
2019-08-30 06:57:44 +02:00
97c1775646 vim-patch:8.1.0233: "safe" argument of call_vim_function() is always FALSE
Problem:    "safe" argument of call_vim_function() is always FALSE.
Solution:   Remove the argument.
ded27a1feb
2019-08-30 00:24:46 -04:00
f575b71449 vim-patch:8.1.1938: may crash when out of memory
Problem:    May crash when out of memory.
Solution:   Initialize v_type to VAR_UNKNOWN. (Dominique Pelle, closes vim/vim#4871)
c507a2d164
2019-08-29 20:48:01 -04:00
9f81acc076 paste: break lines at CR, CRLF #10877
Some terminals helpfully translate \n to \r.

fix #10872
ref #10223
2019-08-29 23:45:02 +02:00
00d46f6328 Fix test/busted/outputHandlers/TAP.lua (#10881)
Extending the original TAP handler was not working as expected.
This adds a new function for displaying the log.

Ref: https://github.com/neovim/neovim/pull/10876
2019-08-29 22:11:51 +02:00
0ec80d5f64 vim-patch:8.1.0193: terminal debugger buttons don't always work (#10874)
Problem:    Terminal debugger buttons don't always work. (Dominique Pelle)
Solution:   Set 'cpo' to its default value.
ca4cc018ad
2019-08-29 02:19:38 +02:00
71a9653194 third-party: remove msvc-compat/unistd.h (#10465)
This was upstreamed into unibilium.
2019-08-29 01:05:47 +02:00
6cc76194b2 tests: use runtime from build for doc/tags with :help (#10479)
This is better practice in general, and allows to remove the "helptags
ALL" hacks.

Ref: https://github.com/neovim/neovim/issues/8824
Ref: https://github.com/neovim/neovim/commit/f1b67c3453c

* Makefile: fix dependencies with regard to helptags

- use the file as the main target to avoid unnecessary triggering
- use "make oldtest" on Travis to ensure it gets built
2019-08-28 22:47:54 +02:00
1d59575450 vim-patch:8.0.0303: shift_delete_registers() #10868
Problem:    Bracketed paste does not work in Visual mode.
Solution:   Delete the text before pasting
a1891848d9
2019-08-28 11:37:18 +02:00
82d52b229d Merge #4448 'paste: redesign'
fix #3447
fix #3566
fix #7066
fix #7212
fix #7273
fix #7455
fix #10415

NA vim-patches:
vim-patch:8.1.1198
vim-patch:8.1.0224
vim-patch:8.0.1299
vim-patch:8.0.0569
vim-patch:8.0.0303
vim-patch:8.0.0296
vim-patch:8.0.0244
vim-patch:8.0.0238
vim-patch:8.0.0232
vim-patch:8.0.0231
vim-patch:8.0.0230
vim-patch:8.0.0210
2019-08-28 01:56:02 +02:00
3c9c64d9dd doc: man.vim #10817
ref #10808
2019-08-28 01:38:58 +02:00
3157baed83 API: TRY_WRAP() for "abort-causing non-exception errors"
- Introduce TRY_WRAP() until we have an *architectural* solution.
  - TODO: bfredl idea: prepare error-handling at "top level" (nv_event).
- nvim_paste(): Revert luaeval() hack (see parent commit).
  - With TRY_WRAP() in nvim_put(), 'nomodifiable' error now correctly
    "bubbles up".
2019-08-28 00:55:13 +02:00
09cbd6769b vim-patch:8.1.1932: ml_get errors after append() #10866
Problem:  Ml_get errors after using append(). (Alex Genco)
Solution: Do not update the cursor twice.

d20070274c

fix #10847
2019-08-27 23:50:55 +02:00
46aa254bf3 paste: handle 'nomodifiable'
- nvim_paste(): Marshal through luaeval() instead of nvim_execute_lua()
  because the latter seems to hide some errors.
- Handle 'nomodifiable' in `nvim_put()` explicitly.
- Require explicit `false` from `vim.paste()` in order to "cancel",
  otherwise assume true ("continue").
2019-08-27 23:37:15 +02:00
17f768ee9e clang/"null pointer dereference" #10864 2019-08-27 22:28:42 +02:00
87389c6a57 paste: make vim.paste() "public" 2019-08-27 22:14:52 +02:00
ed60015266 paste: handle vim.paste() failure
- Show error only once per "paste stream".
- Drain remaining chunks until phase=3.
- Lay groundwork for "cancel".
- Constrain semantics of "cancel" to mean "client must stop"; it is
  unrelated to presence of error(s).
2019-08-27 22:13:45 +02:00
4344ac1111 paste: tickle cursor
HACK: The cursor does not get repositioned after the paste completes.
Scheduling a dummy event seems to fix it.

Test case:
0. Revert this commit.
1. Paste some text in Normal-mode.
2. Notice the cursor is still in the cmdline area.
2019-08-27 22:13:45 +02:00
5b41070c63 paste: implement redo (AKA dot-repeat)
- Normal-mode redo idiom(?): prepend "i" and append ESC.
- Insert-mode only needs AppendToRedobuffLit().
- Cmdline-mode: only paste the first line.
2019-08-27 22:13:45 +02:00
bfc5a18f4b paste: insert text "before" cursor in Insert-mode 2019-08-27 22:13:45 +02:00
eacc70fb3e API: nvim_paste 2019-08-27 22:13:45 +02:00
c95f5d166f paste: workaround typeahead race
Workaround this failure:

    [  ERROR   ] test/functional/terminal/tui_spec.lua @ 192: TUI paste: exactly 64 bytes
    test/functional/helpers.lua:403:
    retry() attempts: 478
    test/functional/terminal/tui_spec.lua:201: Expected objects to be the same.
    Passed in:
    (table: 0x47cd77e8) {
     *[1] = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz endz' }
    Expected:
    (table: 0x47cd7830) {
     *[1] = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz end' }

This happens because `curwin->w_cursor.col` is sometimes decremented at
the end of `do_put`... because the editor is in Normal-mode instead of
the expected Insert-mode.

Caused by "typeahead race" (#10826): there may be queued input in the
main thread not yet processed, thus the editor mode (`State` global)
will be "wrong" during paste. Example: input "i" followed immediately by
a paste sequence:

    i<start-paste>...<stop-paste>
    ^
     "i" does not get processed in time, so the editor is in
     Normal-mode instead of Insert-mode while handling the paste.

Attempted workarounds:
- vim.api.nvim_feedkeys('','x',false) in vim._paste()
- exec_normal() in tinput_wait_enqueue()
- LOOP_PROCESS_EVENTS(&main_loop,…,0) in tinput_wait_enqueue()

ref #10826
2019-08-27 21:19:10 +02:00
5ae6849517 paste: phases, dots
- Send `phase` parameter to the paste handler.
- Redraw at intervals and when paste terminates.
- Show "..." throbber during paste to indicate activity.
2019-08-27 21:19:10 +02:00
93e5f0235b API: nvim_put: "follow" parameter 2019-08-27 21:19:10 +02:00
613296936b API: nvim_put: always PUT_CURSEND
Fixes strange behavior where sometimes the buffer contents of a series
of paste chunks (vim._paste) would be out-of-order.

Now the tui_spec.lua screen-tests are much more reliable. But they still
sometimes fail because of off-by-one cursor (caused by "typeahead race"
resulting in wrong mode; fixed later in this patch-series).
2019-08-27 21:19:10 +02:00
1fdae25b2b test/tui_spec: connect to child session 2019-08-27 21:19:10 +02:00
517bf99ddb API: nvim_put: Avoid "N more lines" message 2019-08-27 21:19:10 +02:00
0221a9220a paste: edge-case: handle EOL at end-of-buffer
This is "readfile()-style", see also ":help channel-lines".
2019-08-27 21:19:10 +02:00
d303790ee7 paste: test 2019-08-27 21:19:10 +02:00
5a2894d677 paste: use nvim_put() 2019-08-27 21:19:10 +02:00
e1177be363 API: nvim_put #6819 2019-08-27 21:19:10 +02:00
9e25a36467 API: nvim_put #6819: try to fix Insert, Visual 2019-08-27 21:19:10 +02:00
4cc56905cb API: nvim_put #6819 2019-08-27 21:19:10 +02:00
f99caa755c paste: use chansend() in Terminal-mode 2019-08-27 21:19:10 +02:00
abd55be19a paste: fixup tests 2019-08-27 21:19:10 +02:00
4389401a7c paste: abort paste if handler does not return true 2019-08-27 21:19:10 +02:00
68ea9a7c8a TUI/paste: always flush on paste mode-change
Flush input before entering, not only when leaving, paste mode. Else
there could be pending input which will erroneously be sent to the paste
handler.
2019-08-27 21:19:10 +02:00
6d277f43a2 TUI/paste: define paste function as Lua builtin
- Define in Lua so that it is compiled-in (available with `-u NONE`).

TODO: Eventually we will want a 'pastefunc' option or some other way to
override the default paste handler.
2019-08-27 21:19:10 +02:00
7df566060c lua/stdlib: cleanup 2019-08-27 21:19:10 +02:00
0a4ef38e43 log: log_key() 2019-08-27 21:19:10 +02:00
9a92ba88dd TUI/paste: push bytes directly (avoid libtermkey) 2019-08-27 21:19:10 +02:00
ZyX
75663aaf0f TUI/paste: collect data, invoke user callback #4448 2019-08-27 21:19:10 +02:00
21f0f7bca5 paste: WIP #4448 2019-08-27 21:19:10 +02:00
a851090dec build: third-party: enable CXX language earlier (#10862)
This is required for `CMAKE_CXX_COMPILER` to be set already, not only
after including third-party/cmake/BuildGperf.cmake.

Closes https://github.com/neovim/neovim/pull/10860.
Ref: 31f879983f
2019-08-27 20:55:11 +02:00
4cedc8444e Merge #10858 from janlazo/vim-8.1.1930
vim-patch:8.1.{1930,1931}
2019-08-27 09:27:03 +02:00
41ec296640 vim-patch:8.1.1931: syntax test fails
Problem:    Syntax test fails.
Solution:   Add new javascriptreact type to completions.
ea7a08a53e
2019-08-26 19:51:43 -04:00
f667a0e02a vim-patch:8.1.1930: cannot recognize .jsx and .tsx files
Problem:    Cannot recognize .jsx and .tsx files.
Solution:   Recognize them as javascriptreact and typescriptreact.
            (closes vim/vim#4830)
92852cee3f
2019-08-26 19:51:26 -04:00
f3cb529774 clang/"dereference of null pointer" #10856
In edit.c insert_execute calls ins_compl_addfrommatch
2019-08-26 20:22:39 +02:00
7d56c90dff timer_spec: shorter timeout with "doesn't mess up the cmdline" (#10769)
It was increased in dd21cd2a4 to avoid flakiness, but takes 1s then always.

This specifies a shorter timeout again, uisng `load_adjust`.
2019-08-26 14:21:01 +02:00
6a21fe9fd1 vim-patch:8.1.1923: some source files are not in a normal encoding (#10852)
Problem:    Some source files are not in a normal encoding.
Solution:   Convert hangulin.c from euc-kr to utf-8 and digraph.c from latin1
            to utf-8. (Daniel Hahler, closes vim/vim#4731)
4119309d70
2019-08-26 12:22:21 +02:00
b069a20910 runnvim.sh: lint (shellcheck) (#10851) 2019-08-26 12:21:53 +02:00
b12b01a828 Merge pull request #10850 from blueyed/option-alias
findoption_len: treat viminfo/viminfofile as aliases
2019-08-26 10:23:12 +02:00
f790799474 third-party: use neovim/unibilium (#10677)
Ref: https://github.com/neovim/neovim/issues/10302
Fixes https://github.com/neovim/neovim/issues/9071.
2019-08-26 10:21:08 +02:00
233597152a vim-patch:8.1.1790: :mkvimrc is not tested
Problem:    :mkvimrc is not tested.
Solution:   Add a test.
8750026a7f
2019-08-26 09:39:00 +02:00
b2d6a6891e findoption_len: treat viminfo/viminfofile as aliases
Ref: https://github.com/neovim/neovim/pull/10672#issuecomment-524716824
2019-08-26 09:39:00 +02:00
ebc3070b7d vim-patch:8.1.1926: redraw cursorline after putting line above #10849
Problem:    Cursorline not redrawn when putting a line above the cursor.
Solution:   Redraw when the curor line is below a change. (closes vim/vim#4862)
c2b97643a8
2019-08-26 04:17:34 +02:00
e3e0574cb3 Merge pull request #10841 from janlazo/vim-7.4.1407
vim-patch:7.4.1407,8.1.1111
2019-08-25 21:04:17 +02:00
bec2336231 vim-patch:8.1.1913: not easy to compute the space on the command line (#10845)
Problem:    Not easy to compute the space on the command line.
Solution:   Add v:echospace. (Daniel Hahler, closes vim/vim#4732)
37f4cbd46f
2019-08-25 20:53:17 +02:00
c8fc285db6 Merge #10840 from janlazo/vim-8.1.1757
vim-patch:8.1.{1757,1924}
2019-08-25 09:13:49 +02:00
2e621553c0 teardown: fix win_free_all() heap-use-after-free #10839
Fixes #10838
2019-08-25 09:11:22 +02:00
66c06dad62 vim-patch:8.1.1924: using empty string for current buffer is unexpected
Problem:    Using empty string for current buffer is unexpected.
Solution:   Make the argument optional for bufname() and bufnr().
a8eee21e75
2019-08-24 21:18:15 -04:00
1dc088ea7d vim-patch:8.1.1111: it is not easy to check for infinity
Problem:    It is not easy to check for infinity.
Solution:   Add isinf(). (Ozaki Kiichi, closes vim/vim#3787)
fda1bff39f
2019-08-24 17:02:05 -04:00
01b5499eea vim-patch:7.4.1407
Problem:    json_encode() does not handle NaN and inf properly. (David
            Barnett)
Solution:   For JSON turn them into "null".  For JS use "NaN" and "Infinity".
            Add isnan().
f1b6ac7229
2019-08-24 15:56:17 -04:00
4fedef51b0 vim-patch:8.1.1757: text added with appendbufline() isn't displayed
Problem:    Text added with appendbufline() to another buffer isn't displayed.
Solution:   Update topline. (partly by Christian Brabandt, closes vim/vim#4718)
2984666291
2019-08-24 14:04:20 -04:00
34e4166673 vim-patch:8.0.1236: Mac features are confusing #10837
Problem:    Mac features are confusing.
Solution:   Make feature names more consistent, add "osxdarwin". Rename
            feature flags, cleanup Mac code. (Kazunobu Kuriyama, closes vim/vim#2178)
d057301b1f
2019-08-24 09:04:08 +02:00
82aaac5baa Merge #10833 from janlazo/vim-8.1.0037
vim-patch:8.0.1386,8.1.{37,39,187}
2019-08-23 19:39:04 +02:00
2a1887c2df vim-patch:8.1.0187: getwininfo() and win_screenpos() return different numbers
Problem:    getwininfo() and win_screenpos() return different numbers.
Solution:   Add one to "wincol" and "winrow" from getwininfo().
7132ddc101
2019-08-23 07:46:51 -04:00
c58054c231 vim-patch:8.0.1386: cannot select modified buffers with getbufinfo()
Problem:    Cannot select modified buffers with getbufinfo().
Solution:   Add the "bufmodified" flag. (Yegappan Lakshmanan, closes vim/vim#2431)
8e6a31df81
2019-08-23 07:46:51 -04:00
7e6a2f2bed vim-patch:8.1.0039: cannot easily delete lines in another buffer
Problem:    Cannot easily delete lines in another buffer.
Solution:   Add deletebufline().
d79a26219d
2019-08-23 07:46:51 -04:00
9358979d09 vim-patch:8.1.0037: cannot easily append lines to another buffer
Problem:    Cannot easily append lines to another buffer.
Solution:   Add appendbufline().
ca851593a6
2019-08-23 07:46:51 -04:00
79ea7709b7 Merge #9163 'fix crash wiping buffer after getbufinfo()' 2019-08-23 10:31:35 +02:00
c6eb1f42be API: fix nvim_command_output buffer overflow (#10830)
Fixes https://github.com/neovim/neovim/issues/10829.
2019-08-22 10:07:54 +02:00
ed28668392 vim-patch:8.1.1897: may free memory twice when out of memory (#10827)
Problem:    May free memory twice when out of memory.
Solution:   Check that backslash_halve_save() returns a different pointer.
            (Dominique Pelle, closes vim/vim#4847)
f1552d07d7
2019-08-22 06:49:33 +02:00
bb50eadc84 Merge pull request #10815 from blueyed/vim-8.1.1483
vim-patch:8.1.1483: skipped tests are not properly listed
2019-08-22 06:37:05 +02:00
42f492ac99 tui: handle Smulx extension capability (extended underline) (#9097)
This was added to ncurses terminfo for vte and tmux.

Ref: https://github.com/tmux/tmux/issues/1492#issuecomment-427675180

Assumes color support is available when extended underline is supported.

Ref: https://github.com/tmux/tmux/issues/1492#issuecomment-427803984
2019-08-22 06:36:39 +02:00
86d88076ce -u NONE for no syntax highlighting 2019-08-22 05:06:30 +02:00
376d394981 vim-patch:8.1.1893: script to summarize test results can be improved
Problem:    Script to summarize test results can be improved.
Solution:   Use "silent" for substitute to avoid reporting number of matches.
            Remove duplicate "set nocp". (Daniel Hahler, closes vim/vim#4845)
f1e0544d41
2019-08-22 05:06:30 +02:00
356f5fc6e2 vim-patch:8.1.1478: still an error when running tests with the tiny version
Problem:    Still an error when running tests with the tiny version.
Solution:   Do not try reading test.log
18250e291a
2019-08-22 05:06:30 +02:00
6970225af6 vim-patch:8.1.1477: test summary fails in the tiny version
Problem:    Test summary fails in the tiny version.
Solution:   set 'nocompatible'.
c7500f9cb5
2019-08-22 05:06:30 +02:00
542fbb34a1 vim-patch:8.1.1488: summary of tests has incorrect failed count
Problem:    Summary of tests has incorrect failed count.
Solution:   Add to the failed count instead of setting it. (Christian Brabandt)
150f0550f4
2019-08-22 05:06:30 +02:00
72f453d149 vim-patch:8.1.1476: no statistics displayed after running tests
Problem:    No statistics displayed after running tests.
Solution:   Summarize the test results. (Christian Brabandt, closes vim/vim#4391)
            Also make it possible to report a skipped file.
9c0cec65f8

Removes our custom no-inits from `$(RUN_VIMTEST)`, since we have
`$(NO_INITS)` now also.
2019-08-22 05:06:30 +02:00
9e24bbb52f vim-patch:8.1.1483: skipped tests are not properly listed
Problem:    Skipped tests are not properly listed.
Solution:   Throw a "Skipped" exception instead of using ":finish" or ":return".
5d30ff1964

Skips quite some (N/A) tests.

vim-patch:8.1.0503: missing change to diff test (included in cf1ffa916)
2019-08-22 05:06:30 +02:00
77729b0800 vim-patch:8.1.0811: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, the final chapter.
30276f2beb
2019-08-22 05:06:30 +02:00
3223dedfc3 test: fix problem of breaking user's viminfo (#10824)
Vim turns on 'compatible' as a side effect of using the -u command line
option. As a result, viminfo is not used. But that is not the case with
neovim. neovim requires the -i command line option to avoid breaking
user's viminfo.
2019-08-22 05:06:14 +02:00
86c182c9df Merge #10823 from janlazo/vim-8.1.1124 2019-08-21 23:43:01 +02:00
fc12ada4f1 ci: AppVeyor: exitIfFailed with old tests (#10187) 2019-08-21 21:54:03 +02:00
450a68b7cc vim-patch:8.1.0888: the a: dict is not immutable as documented (#10819)
Problem:    The a: dict is not immutable as documented.
Solution:   Make the a:dict immutable, add a test. (Ozaki Kiichi, Yasuhiro
            Matsumoto, closes vim/vim#3929)
31b816042f
2019-08-21 20:17:09 +02:00
396772c73b edit: add nonnull func attribute 2019-08-21 01:16:32 -04:00
332d844e5e edit: compl_started,compl_used_match are bool 2019-08-21 01:16:32 -04:00
3c28d75652 vim-patch:8.1.1124: insert completion flags are mixed up
Problem:    Insert completion flags are mixed up.
Solution:   Clean up flags use of ins_compl_add() and cp_flags.
d9eefe3155
2019-08-21 01:16:31 -04:00
0e8ee37efd Merge pull request #10821 from blueyed/asan
tests: improve escaping of special chars, forward all sanitizer options
2019-08-21 03:21:50 +02:00
e5b2423fa1 fixup! test/functional/helpers.lua: env: forward also TSAN_OPTIONS/MSAN_OPTIONS 2019-08-21 02:44:27 +02:00
3bf0d54bc1 test/functional/helpers.lua: env: forward also TSAN_OPTIONS/MSAN_OPTIONS 2019-08-21 02:39:10 +02:00
d993ec5db8 src/nvim/testdir/runnvim.vim: improve escaping of non-printables 2019-08-21 02:39:10 +02:00
47e27a4f5b tests: support msg with global_helpers.ok (#10820)
Ref: https://github.com/neovim/neovim/pull/10768#discussion_r315904175

Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
2019-08-21 02:32:20 +02:00
7adea68c1e oldtest: windows: revert setting shellslash individually (#10189)
* Revert "oldtests: win: shellslash for cdpath,tags,:find"

This reverts commit 6245b4873d.

* Revert "oldtests: set shellslash for ":cd" test"

This reverts commit eba1ebafe5.

* Revert "oldtests: set shellslash in Test_shellescape()"

This reverts commit e428fc4b52.

* Revert "fixup! vim-patch:8.0.1782: no simple way to label quickfix entries"

This reverts commit ac1fbc2860.

* Revert "test/old: pass Test_statusline on Windows"

This reverts commit 6efa3bff09.

* Revert "oldtests: set shellslash for Test_non_zero_arg"

This reverts commit 42e1e2495c.

* Revert "oldtests: set shellslash in Test_true_false_arg()"

This reverts commit 8bd194f98a.

* Remove unnecessary set shellslash

Since #10679 no longer requires individual set shellslash, it is removed.


Co-Authored-By: erw7 <erw7.github@gmail.com>
2019-08-20 22:01:58 +02:00
09397e5d05 Merge pull request #10768 from blueyed/tests-shorter-timers
tests: timer_spec: lower timeout, avoids flakiness
2019-08-20 20:22:55 +02:00
2755403429 Merge pull request #10818 from blueyed/minor
Minor: .gitignore, improve test assertion message
2019-08-20 20:18:10 +02:00
e097e4704b win: stream: reset tty stream on close
This was overlooked in 8072f085d2.

Analogous to 8a782f1699.

fix #10668
ref 8072f085d2 #9884
ref 8a782f1699 #2377
2019-08-20 20:14:13 +02:00
222717c95c tests: screen: notification_cb: improve assertion message 2019-08-20 19:24:57 +02:00
6bb24b45f8 .gitignore: src/nvim/testdir/*.tlog 2019-08-20 19:24:55 +02:00
7ed2122622 test/functional/ui/mode_spec: improve "ui mode_change event" (#10816)
Set a shorter `&matchtime` (instead of asserting the default), and do
not sleep - `screen:expect` will do that (wait for it).
2019-08-20 17:43:13 +02:00
b2c354bb07 tests: screen: notification_cb: improve assertion message 2019-08-20 04:54:29 +02:00
9e04e19574 tests: timer_spec: lower timeout, avoids flakiness
Inspired by quickbuild failure, where `g:val` was increased already:

    20:07:04,227 INFO  - not ok 1164 - timers works with repeat two
    20:07:04,227 INFO  - # test/functional/eval/timer_spec.lua @ 36
    20:07:04,227 INFO  - # Failure message: test/functional/eval/timer_spec.lua:38: Expected objects to be the same.
    20:07:04,227 INFO  - # Passed in:
    20:07:04,227 INFO  - # (number) 1
    20:07:04,227 INFO  - # Expected:
    20:07:04,227 INFO  - # (number) 0
    20:07:04,227 INFO  - # stack traceback:
    20:07:04,227 INFO  - #     test/functional/eval/timer_spec.lua:38: in function <test/functional/eval/timer_spec.lua:36>

Uses a pattern of `eq()`ing `timer_start` and `g:val` in the same `eval`
call, and decreases timeouts in general.

Improves runtime from ~5s to <2s.
2019-08-20 04:54:28 +02:00
57e19ea846 Merge pull request #10814 from janlazo/vim-8.1.1887
vim-patch:8.1.{1887,1890}
2019-08-20 04:52:56 +02:00
ec9b57cb6e vim-patch:8.1.1890: ml_get error when deleting fold marker
Problem:    Ml_get error when deleting fold marker.
Solution:   Check that the line number is not below the last line.  Adjust the
            fold when deleting the empty line.  (Christian Brabandt,
            closes vim/vim#4834)
9a4a8c4d59
2019-08-19 21:32:24 -04:00
419c946f03 vim-patch:8.1.1887: the +cmdline_compl feature is not in the tiny version
Problem:    The +cmdline_compl feature is not in the tiny version.
Solution:   Graduate the +cmdline_compl feature.
0a52df50a0
2019-08-19 20:14:42 -04:00
7fa49627e5 src/nvim/README: revisit sanitizer section [ci skip] (#10780) 2019-08-20 02:05:36 +02:00
46cb85691c Merge pull request #10626 from janlazo/test/enable
Windows: enable more tests
2019-08-19 13:21:17 +02:00
47d679c0c2 tests: win: enable buffer focus test 2019-08-18 21:40:27 -04:00
cb11de18a2 test: win: enable WinEnter terminal test 2019-08-18 21:40:27 -04:00
a5b915e56c test: win: enable output_spec test 2019-08-18 21:40:26 -04:00
2963533fe1 Unreserve :X #10807
closes #10806
2019-08-18 19:28:13 +02:00
ce9367c254 CI/AppVeyor: revert "skip MSVC_32 for non-PR" [skip travis] #10805
Revert commit bfbc1a7872.

The nightly release job is failing:
https://travis-ci.org/neovim/bot-ci/builds/569687794

- We need the MSVC artifact on master so that our nightly job can publish it.
- Saving time on master is low-priority because most CI activity is from PRs.
2019-08-18 17:26:20 +02:00
9bbac874f9 Merge pull request #10798 from bfredl/multifix
multigrid: fixes
2019-08-18 13:52:59 +02:00
628f8f3dfd ui: transmit "blend=" property of highlight attributes 2019-08-18 13:52:32 +02:00
d351f1c871 Merge #10679 from erw7/fix-oldtest-on-windows 2019-08-18 13:31:28 +02:00
c5efa9c352 Merge #10800 from janlazo/vim-8.1.1870
vim-patch:8.1.{1679,1839,1870}
2019-08-18 13:05:17 +02:00
b7ce589cb8 CI/OpenBSD: run oldtest #10797
- Test_libcall_libcallnr: pass libc name to dlopen.
2019-08-18 12:44:05 +02:00
3453a2ccb0 Change to use v:progpath instead of constant [skip ci] 2019-08-18 10:54:48 +09:00
454adf15db vim-patch:8.1.1839: insufficient info when test fails because of screen size
Problem:    Insufficient info when test fails because of screen size.
Solution:   Report the detected screen size.
0b5dc64446
2019-08-17 18:32:40 -04:00
eb3ec78c63 vim-patch:8.1.1679: test using SwapExists autocommand file may fail
Problem:    Test using SwapExists autocommand file may fail.
Solution:   Remove the SwapExists autocommand.
eaa49e40d7
2019-08-17 18:22:56 -04:00
0a1807ea25 vim-patch:8.1.1870: using :pedit from a help file sets help filetype
Problem:    Using :pedit from a help file sets the preview window to help
            filetype. (Wang Shidong)
Solution:   Do not set "keep_help_flag". (closes vim/vim#3536)
026587b35c
2019-08-17 18:11:05 -04:00
6b2d67eb59 test/ui: properly test win_hide by explicitly marking hidden grids 2019-08-17 21:46:11 +02:00
3397b8c51a ui: use Window type in win_pos consistently with win_float_pos
Also check invalid positional arguments to screen:expect()
2019-08-17 20:52:08 +02:00
e2ccf47b5e Merge #10794 from janlazo/vim-8.1.1857
vim-patch:8.1.{1857,1858,1860}
2019-08-17 08:49:05 +02:00
cc903210c9 Fix test failure on Windows [skip travis] 2019-08-17 14:44:52 +09:00
44b3488db2 Change value of cpo [skip travis]
set cpo+=S was added because the test failed because the cpo value
was different from vim(See #10730).
2019-08-17 12:29:42 +09:00
737074c8bf Remove test52
Test52 does nothing on UNIX. And vim on Windows performs mbyte-conversion
between Unicode and code page using Windows API(See :h mbyte-conversion).
Test52 seems to be testing its functionality. In neovim, the conversion
function by Windows API has been removed. Therefore, there is no point
in doing this test.
2019-08-17 12:29:09 +09:00
861a7604d4 Change test execution conditions
Since neovim needs iconv to process cp932, it changes the test execution
condition.
2019-08-17 12:29:09 +09:00
619f136075 Add target fixff to testdir/Makefile
In Windows, since conversion of the line feed code is necessary, porting
fixff target from Make_mingw.mak of vim.
2019-08-17 12:29:09 +09:00
505d5fb960 Fix get_path_cutoff() on Windows
Fix an issue where the result of get_path cutoff() was incorrect when
using set shellslash.
2019-08-17 12:29:09 +09:00
d7b642cadb Remove code that is no longer needed by set shellslash 2019-08-17 12:29:09 +09:00
03bba32565 Change to set shellslash to test under same conditions as vim 2019-08-17 12:29:09 +09:00
ae95a62675 vim-patch:8.1.1860: map timeout test is flaky
Problem:    Map timeout test is flaky.
Solution:   Add test to list of flaky tests.  Increase timeout.
ea94c85516
2019-08-16 21:23:25 -04:00
0455af00e6 vim-patch:8.1.1858: test for multi-byte mapping fails on some systems
Problem:    Test for multi-byte mapping fails on some systems.
Solution:   Test in another way.
2f710afe7f
2019-08-16 21:21:58 -04:00
4aa3473b88 vim-patch:8.1.1857: cannot use modifier with multi-byte character
Problem:    Cannot use modifier with multi-byte character.
Solution:   Allow using a multi-byte character, although it doesn't work
            everywhere.
c8fd33d18b
2019-08-16 21:20:34 -04:00
e56f62e9a7 vim-patch:8.1.1854: now another timer test is flaky #10791
Problem:    Now another timer test is flaky.
Solution:   Add test to list of flaky tests.
973d5304a4
2019-08-16 22:06:58 +02:00
282ffc840d CI/OpenBSD: Initial sourcehut dispatch file #10792
Does only the build step for now, some tests fail currently.
2019-08-16 22:04:49 +02:00
bfbc1a7872 CI/AppVeyor: skip MSVC_32 for non-PR builds [skip travis] #10786
It was run for the PR already, and we can save the ~25min it takes with
merged PRs then - given that there is only one parallel job on AppVeyor
this should help to reduce the queue size.
2019-08-16 20:13:31 +02:00
a9bea8c104 Merge pull request #10790 from bfredl/metamb
keymap: allow modifiers to multibyte chars, like <m-ä>
2019-08-16 19:56:37 +02:00
6fe2d24cef keymap: allow modifiers to multibyte chars, like <m-ä> 2019-08-16 19:54:34 +02:00
1f5eac1115 Merge #10785 from bfredl/tui_start
TUI: do not use "starting" global mutated by main thread
2019-08-16 10:23:05 +02:00
66528f2475 vim-patch:8.1.1852: timers test is flaky #10788
Problem:    Timers test is flaky.
Solution:   Accept a larger count.  Add test to list of flaky tests.
7e6feb9eeb
2019-08-16 10:11:03 +02:00
812ed53724 Merge #10783 from erw7/debug-job-spec
fix #10762 flaky 'jobstop() kills entire process tree #6530'
2019-08-16 10:10:10 +02:00
85edb33fd1 Change to output status on failure 2019-08-16 13:37:44 +09:00
e82fc20f23 windows: ok(#children >= 3 and #chidlen <= 5)
Depending on the version of Windows, conhost.exe may not be included in
the child process.
2019-08-16 13:34:53 +09:00
ae60172106 windows: ok(#children >= 4 and #children <= 5) 2019-08-16 13:24:44 +09:00
1852dfdf9a Merge pull request #10784 from blueyed/improve-version-compile-flags
Improve compile options/definitions with sanitizer builds (for --version).
2019-08-15 22:06:56 +02:00
e79ea696a2 Remove TSan suppression config [skip appveyor] 2019-08-15 21:58:51 +02:00
abfc8b3257 emsg_multiline: log Vim errors (#10778) 2019-08-15 20:18:09 +02:00
8109690530 TUI: do not use "starting" global mutated by main thread 2019-08-15 19:50:13 +02:00
18fb4dcbf9 src/nvim/CMakeLists.txt: use compile options/definitions
This includes `-fsanitize=thread` etc in the output of `--version`.
2019-08-15 19:44:00 +02:00
28219534eb get_compile_flags: also look at target properties 2019-08-15 19:42:46 +02:00
6261d2658f Merge #10761 from justinmk/win-utf-libuv-align
utf8_to_utf16, utf16_to_utf8: align with libuv
2019-08-15 09:32:18 +02:00
eb9f3308bc CI/travis: git clone -q #10781
https://docs.travis-ci.com/user/customizing-the-build/#git-clone-quiet
2019-08-15 08:55:22 +02:00
975be7e5dc build/win: fix warnings
../src/nvim/os/fs.c: In function 'os_can_exe':
  ../src/nvim/os/fs.c:247:27: warning: passing argument 1 of 'is_executable_ext' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    247 |     if (is_executable_ext(name, abspath)) {
        |                           ^~~~
  In file included from ../src/nvim/os/fs.c:36:
  src/nvim/auto/os/fs.c.generated.h:7:38: note: expected 'char *' but argument is of type 'const char *'
      7 | static _Bool is_executable_ext(char *name, char **abspath) FUNC_ATTR_NONNULL_ARG(1);
        |                                ~~~~~~^~~~
  ../src/nvim/os/fs.c: In function 'os_resolve_shortcut':
  ../src/nvim/os/fs.c:1183:56: warning: conversion from 'size_t' {aka 'const long long unsigned int'} to 'int' may change value [-Wconversion]
   1183 |     const int conversion_result = utf8_to_utf16(fname, len, &p);
        |                                                        ^~~
  ../src/nvim/os/fs.c:1211:19: warning: declaration of 'conversion_result' shadows a previous local [-Wshadow]
   1211 |         const int conversion_result = utf16_to_utf8(wsz, -1, &rfname);
        |                   ^~~~~~~~~~~~~~~~~
  ../src/nvim/os/fs.c:1183:15: note: shadowed declaration is here
   1183 |     const int conversion_result = utf8_to_utf16(fname, len, &p);
        |               ^~~~~~~~~~~~~~~~~
2019-08-15 00:28:41 +02:00
c9a0875ea8 os/: remove redundant define 2019-08-15 00:28:41 +02:00
07cc72ad5d utf16_to_utf8: align with libuv
- take a size parameter
- return libuv error code
- handle error in caller only (avoid redundant messages)

53995a3825
4c945f4936
2019-08-15 00:28:41 +02:00
8727f7a6a4 utf8_to_utf16: align with libuv
- take a size parameter
- always NUL-terminate the result
- return libuv error code
- handle error in caller only (avoid redundant messages)

53995a3825
4c945f4936
2019-08-15 00:28:41 +02:00
fc60d92795 tests: skip "API nvim_parse_expression" on MSVC_32 (#10773)
Only "API nvim_parse_expression works with &opt" is flaky, but easier to
skip all of "API nvim_parse_expression".

Ref: https://github.com/neovim/neovim/issues/10241
2019-08-14 23:57:45 +02:00
7d92c391a1 Merge pull request #10774 from bfredl/miminal_fdc
api: nvim_win_open() style="minimal" should disable 'foldcolumn'
2019-08-14 23:54:08 +02:00
9bf3fab60b Merge pull request #10779 from blueyed/ci-homebrew-no-update
ci: fix Travis
2019-08-14 23:21:41 +02:00
ae31de32ee build: TSan: add src/.tsan-suppressions
Uses runtime suppressions instead of a blacklist, which can only ignore
whole files/functions.

Ref: https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
Ref: https://github.com/neovim/neovim/pull/10591#issuecomment-521248233
2019-08-14 23:17:53 +02:00
7c0ae06664 ci: Travis: build.sh: use cat "-vet" for osx
Fixes:

    cat: illegal option -- A
    usage: cat [-benstuv] [file ...]

Broken in 5cc45bb41.

squash! ci: Travis: build.sh: use cat "-vET" for osx  [skip appveyor]

cat -vet
2019-08-14 23:17:42 +02:00
48b43352b0 pyxversion: fix logic error #10759
Do not incorrectly prefer python2 if python3 is working.
fixes #10758
2019-08-14 22:36:43 +02:00
ab842fb8b8 ci: Travis: homebrew: update=false [skip appveyor]
It is disabled by default, and the docs mention that it slows builds
down [1].  It took 165s in https://travis-ci.org/neovim/neovim/jobs/572000615.

1: https://docs.travis-ci.com/user/installing-dependencies/#installing-packages-on-macos
2019-08-14 22:16:34 +02:00
ebcb9adcc4 clang/"null pointer dereference" #10776
assert(curbuf) in ins_compl_get_exp
2019-08-14 20:50:30 +02:00
5cc45bb419 ci: Travis: check logs for TSan also (#10775)
Uses `cat -A` with early "*San" check:
This prints terminal escape sequences as-is (for debugging), and does
not cause (display) issues with the Travis log.

Ref: https://github.com/neovim/neovim/pull/10591#issuecomment-521248233
2019-08-14 18:27:08 +02:00
0c952c1c8b Merge pull request #10757 from bfredl/compfix
compositor: handle invalid screen positions after resize gracefully
2019-08-14 15:52:11 +02:00
f9f238b21a api: nvim_win_open() style="minimal" should disable 'foldcolumn' 2019-08-14 14:49:27 +02:00
ba0aaf012a compositor: handle invalid screen positions after resize gracefully
The screen resize logic needs to be refactored to be simpler and more
deterministic. Until then, we need to handle attempts to draw outside of the
screen size gracefully, just like the old vim code did.

fixes #9989
2019-08-14 13:11:20 +02:00
5ad67af3c1 Merge #10763 from justinmk/startup-guicursor
startup: handle 'guicursor' after user config
2019-08-14 11:28:39 +02:00
2fafed6bb8 clipboard: handle/avoid SIGTERM with previous owner #10765
Fixes regression due to signal being reported with exit status.
ref #10573 939d9053bd
ref https://github.com/neovim/neovim/issues/7054#issuecomment-520282429
2019-08-14 09:58:52 +02:00
8fda095b6d tests: fix/improve "jobwait returns -1 when timed out" #10767
There was a longer timeout for Windows already, but unlike stated in
51d42917f it is not a worst-case, but gets waited for always.

The test is only about "-1" on timeout, so reduce it to this.

Fixes:

    16:33:19,309 INFO  - not ok 627 - jobs jobwait with timeout argument will return -1 if the wait timed out
    16:33:19,309 INFO  - # test/functional/core/job_spec.lua @ 707
    16:33:19,309 INFO  - # Failure message: test/functional/core/job_spec.lua:714: Expected objects to be the same.
    16:33:19,309 INFO  - # Passed in:
    16:33:19,309 INFO  - # (table: 0x0db1a3f0) {
    16:33:19,309 INFO  - #   [1] = 'notification'
    16:33:19,309 INFO  - #   [2] = 'wait'
    16:33:19,309 INFO  - #  *[3] = {
    16:33:19,309 INFO  - #    *[1] = {
    16:33:19,309 INFO  - #      *[1] = -1
    16:33:19,309 INFO  - #       [2] = -1 } } }
    16:33:19,309 INFO  - # Expected:
    16:33:19,309 INFO  - # (table: 0x0db1a480) {
    16:33:19,309 INFO  - #   [1] = 'notification'
    16:33:19,309 INFO  - #   [2] = 'wait'
    16:33:19,309 INFO  - #  *[3] = {
    16:33:19,309 INFO  - #    *[1] = {
    16:33:19,309 INFO  - #      *[1] = 4
    16:33:19,309 INFO  - #       [2] = -1 } } }
    16:33:19,309 INFO  - # stack traceback:
    16:33:19,309 INFO  - # 	test/functional/core/job_spec.lua:714: in function <test/functional/core/job_spec.lua:707>
2019-08-14 09:08:25 +02:00
7668f04392 tests: include timer_start in duration #10772
This should not make much of a difference, but increases the timeout
when `load_factor` is used slightly.
2019-08-14 08:59:06 +02:00
a690bf8116 mksession: use exists(':tcd'), not has('nvim') #10770
Since recent vim versions also support :tcd, check for the actual
availability of the command, rather than has('nvim').
2019-08-14 08:45:54 +02:00
c285ebfa73 vim-patch:8.1.0456: running test hangs when the input file is being edited (#10764)
Problem:    Running test hangs when the input file is being edited.
Solution:   Use a SwapExists autocommand to ignore editing the test script.
d8f27b30d6
2019-08-14 01:56:59 +02:00
f2377e3575 tests: use larger timeout with "timers can be stopped from the handler" (#10760)
Seen on quickbuild:

    23:01:01,289 INFO  - not ok 1172 - timers can be stopped from the handler
    23:01:01,289 INFO  - # test/functional/eval/timer_spec.lua @ 154
    23:01:01,289 INFO  - # Failure message: test/functional/eval/timer_spec.lua:166: Expected objects to be the same.
    23:01:01,289 INFO  - # Passed in:
    23:01:01,289 INFO  - # (number) 3
    23:01:01,289 INFO  - # Expected:
    23:01:01,289 INFO  - # (number) 0
    23:01:01,289 INFO  - # stack traceback:
    23:01:01,289 INFO  - # 	test/functional/eval/timer_spec.lua:166: in function <test/functional/eval/timer_spec.lua:154>

Log: http://neovim-qb.szakmeister.net/build/24288
Ref: https://github.com/neovim/neovim/pull/10364
2019-08-14 00:44:32 +02:00
02c52a18f5 style 2019-08-13 22:22:47 +02:00
cbfd18c85a startup: handle 'guicursor' after user config
If parse_shape_opt() is done before user config, the TUI may cause
unwanted changes to the terminal cursor which cannot later be undone
(see #4396).

fix #10750
2019-08-13 22:19:00 +02:00
c649e18131 Merge pull request #10752 from blueyed/vim-8.0.1179 2019-08-13 22:16:41 +02:00
db41d02e48 vim-patch:8.1.1842: test listed as flaky should no longer be flaky
Problem:    Test listed as flaky should no longer be flaky.
Solution:   Remove Test_popup_and_window_resize from the list of flaky tests.
            (Daniel Hahler, close vim/vim#4807)
9570aacdb8
2019-08-13 22:15:54 +02:00
4e6c596431 vim-patch:8.0.1179: Test_popup_and_window_resize() does not always pass
Problem:    Test_popup_and_window_resize() does not always pass.
Solution:   Do not use $VIMPROG, pass the Vim executable in the vimcmd file.
            (Ozaki Kiichi, closes vim/vim#2186)
631820536e

vim-patch:8.0.1526: no test using a screen dump yet

Problem:    No test using a screen dump yet.
Solution:   Add a test for C syntax highlighting.  Add helper functions.
da65058a9c

NOTE: uses modified `GetVimProg()` (which is used with skipped tests only
(mostly because of `!has('terminal')`)).

Vim uses a 'vimcmd' file, while Nvim uses `$NVIM_TEST_ARGX` environment
variables.

Ref: https://github.com/vim/vim/pull/4806
2019-08-13 22:15:54 +02:00
947bd293c9 clang/"null pointer dereference" #10755 2019-08-13 20:52:25 +02:00
5e1acd412b vim-patch:8.1.1843: might be freeing memory that was not allocated (#10756)
Problem:    Might be freeing memory that was not allocated.
Solution:   Have next_fenc() set the fenc_alloced flag. (closes vim/vim#4804)
f077db2423
2019-08-13 16:46:26 +02:00
90e44ecf11 build: link libraries by full path (for luv.so) (#10661)
Use "luv" as imported library to work around "-lluv" being used due to
missing SONAME.

Fixes https://github.com/neovim/neovim/issues/10407.
Ref: https://gitlab.kitware.com/cmake/cmake/issues/19578
Ref: https://github.com/NixOS/nixpkgs/issues/64400#issuecomment-516557253
2019-08-12 18:22:02 +02:00
a336a05e7e testdir/test_popup.vim: sync/align with Vim (#10751) 2019-08-12 17:10:48 +02:00
2037028b50 ex_getln.c: fix compute_cmdrow() not resetting lines_left (#10749)
Before this commit, when `inccomand` was set to `nosplit`, multi-line
substitutions collapsed the command-line.

This happened because when ex_getln.c:cursorcmd() computed a msg_row, it
was given a cmdline_row one line too high. This happened because
message.c:msg_puts_display() was supposed to decrement cmdline_row but
didn't, because of the `msg_no_more && lines_left == 0` check placed
just before the decrementation part in msg_puts_display's while loop.

Every time msg_puts_display writes a line, it decreases `lines_left` (a
variable used to know how many lines are left for prompts). Since
redrawcommandline() did not reset `lines_left` between calls to
msg_puts_display, every time a character was pressed, `lines_left` was
decremented. This meant that once the user pressed COLUMNS+ROWS numbers
of characters, `lines_left` would reach 0 and prevent msg_row from being
decremented.

It makes sense to fix setting `lines_left` to `cmdline_row` in
`compute_cmdrow` ; after all, computing where the command line row
should be placed is equivalent to computing how many `lines_left` of
output there are left.

Closes #8254.
2019-08-12 14:21:15 +02:00
ad4eb18e43 Merge #10098 'win: fix msg_puts_printf()' 2019-08-12 02:42:13 +02:00
71378a4030 free_buffer: rework b:changedtick handling #9163
- Re-enable Test_BufLeave_Wipe. 66f5e5c7d7

This is my (probably-wrong) application of Zyx's suggestion in #9163:

> free_buffer_stuff() already removes changedtick. It is better to
> make `free_options` a flag variable and avoid calling
> buf_init_changedtick() based on some flag there: current workflow
> looks weird as it first removes `b:changedtick`, then re-adds it
> by calling buf_init_changedtick(), then remove again.

> Also based on my understanding it looks logical to not remove
> `b:changedtick`, but to *replace* it with something allocated if
> needed based on examining reference count before calling
> `unref_var_dict`. Because now you have key disappearing from
> dictionary for no good reason.

Patch-By: Nikolai Aleksandrovich Pavlov <kp-pav@yandex.ru>
2019-08-12 02:17:49 +02:00
feee862064 vim-patch:8.0.1193: crash when wiping buffer after getbufinfo()
Problem:    Crash when wiping out a buffer after using getbufinfo().
            (Yegappan Lakshmanan)
Solution:   Remove b:changedtick from the buffer variables.

(Note: The test changes in vim-patch:8.0.1193 were already included.)
2019-08-12 02:17:49 +02:00
48dc6344d6 Merge pull request #10745 from blueyed/vim-8.1.1461
vim-patch:8.1.1461 / vim-patch:8.1.1462
2019-08-11 20:35:31 +02:00
6b028ec5f2 ci: AppVeyor: branches: only: master (#10746)
Only build PRs for master, and not other branches on the main repo, e.g.
when reverting via GitHub's UI.
2019-08-11 20:30:27 +02:00
ef1c100174 rebuild [skip travis] 2019-08-11 15:36:09 +02:00
6616d1d3e5 win/env: Vim-compat: Empty string deletes env var #10743
- Windows: `set FOO=` deletes environment variable FOO, and there is no
  way to set empty string expect by calling the API.
- Vim-compatible: `:let $FOO=""` deletes the environment variable.
- See also Test_WindowsHome().

ref: https://github.com/neovim/neovim/pull/10657#issuecomment-516368089
2019-08-11 15:32:07 +02:00
2193e68837 vim-patch:8.1.1462: MS-Windows: using special character requires quoting
Problem:    MS-Windows: using special character requires quoting.
Solution:   Add quotes. (Ken Takata)
c974022c31
2019-08-11 13:24:17 +02:00
143b02c573 vim-patch:8.1.1461: tests do not run or are not reliable on some systems
Problem:    Tests do not run or are not reliable on some systems.
Solution:   Use "findstr" instead of "grep" on MS-Windows. Clear
            PROMPT_COMMAND in the terminal test. Delete temp file. Wait for
            output after executing a debug command. (Yegappan Lakshmanan,
            closes vim/vim#4479)
ddd3308782

Ignored changes to testdir/test_terminal.vim.
2019-08-11 13:23:30 +02:00
0a98765b44 test_source.vim: move Test_source_sandbox 2019-08-11 13:23:30 +02:00
7d664837e1 win: expand nested env var #10662
Vim-compatible behavior for a Windows edge case.
2019-08-11 09:51:00 +02:00
e5d388f23a clang/"Argument with 'nonnull' attribute passed null" #10739
Problem:  In screen.c grid_char_needs_redraw clang warns
          that grid->chars could be NULL

Solution: Suggested by bfredl. Add explicit check
          grid->chars != NULL in grid_put_linebuf
          similar to grid_puts_len
2019-08-11 09:47:49 +02:00
c190415dc2 Merge pull request #10738 from bfredl/cmdwinclose
api/window: disallow closing non-current window in cmdwin state
2019-08-10 21:21:13 +02:00
d8d3719941 Merge #10737 from blueyed/vim-8.1.0911
vim-patch:8.1.0911: tag line with Ex command cannot have extra fields
2019-08-10 18:35:00 +02:00
67664c74f8 api/window: disallow closing non-current window in cmdwin state 2019-08-10 17:41:31 +02:00
ac395411cd testdir/test_taglist.vim: move Test_tagsfile_without_trailing_newline
Align with Vim.  Added in a79c0c8f7.
2019-08-10 17:21:47 +02:00
4109ee8ef4 vim-patch:8.1.0911: tag line with Ex command cannot have extra fields
Problem:    Tag line with Ex command cannot have extra fields.
Solution:   Recognize |;" as the end of the command. (closes vim/vim#2402)
943e9639a9
2019-08-10 17:21:18 +02:00
5f243fc68a API: nvim_win_close: Fix closing cmdline-window #10087 2019-08-10 13:41:35 +02:00
278c5d452c win/os_env_exists(): workaround libuv bug #10734
os_env_exists() fails on MSVC build:
    os_env_exists:104: uv_os_getenv(EMPTY_VAR) failed: -4094 UNKNOWN

- Revert 396a3945c4
- HACK: Windows: return TRUE if uv_os_getenv() returns UV_UNKNOWN, until
  libuv bug is fixed: https://github.com/libuv/libuv/issues/2413

ref 396a3945c4 (r34642361)
2019-08-10 11:48:36 +02:00
0062c65ba8 test/cmdline_spec: adjust "no-op"
(<Cmd>0<cr> is not really a no-op, it moves the cursor.)

Attempt to avoid flaky test:

    test/functional/ui/cmdline_spec.lua @ 830
    Failure message: ./test/functional/ui/screen.lua:579: Row 2 did not match.
    Expected:
    |                         |
    |*{1:~                        }|
    |{3:                         }|
    |:012345678901234567890123|
    |456789^                   |
    Actual:
    |                         |
    |*{3:                         }|
    |:012345678901234567890123|
    |:012345678901234567890123|
    |456789^                   |

    ./test/functional/ui/screen.lua:579: in function '_wait'
    ./test/functional/ui/screen.lua:367: in function 'expect'
    test/functional/ui/cmdline_spec.lua:841: in function <test/functional/ui/cmdline_spec.lua:830>

ref https://github.com/neovim/neovim/pull/10171#issuecomment-520134344
ref #10171
2019-08-10 11:46:26 +02:00
396a3945c4 test/environ_spec: Windows treats empty as undefined
ref #10657
2019-08-10 01:43:37 +02:00
43a8242cd5 vim-patch:8.1.1458: crash when using gtags #10704
Problem:    Crash when using gtags. (issue vim/vim#4102)
Solution:   Check for negative row or col in screen_puts_len(). (Christian
            Brabandt)
0b4c9eddb5
2019-08-10 00:21:52 +02:00
06d9cc734b exists(): return false for empty env var #10657
Fixes https://github.com/neovim/neovim/issues/3266
close #10657
2019-08-09 23:42:03 +02:00
5aa97937e7 Merge #10706 from janlazo/vim-8.1.1465
vim-patch:8.1.{1465,1467}
2019-08-09 23:32:23 +02:00
e2d6e67bbc Merge pull request #10171 from blueyed/vim-8.1.1318
vim-patch:8.1.1318: code for text changes is in a "misc" file
2019-08-09 19:25:56 +02:00
939d9053bd channels: reflect exit due to signals in exit status code (#10573)
Uses `128 + term_signal` in case of exit due to a signal.

Fixes https://github.com/neovim/neovim/issues/10571.
2019-08-09 15:34:06 +02:00
fa0c677a63 tests/functional: expect_msg_seq: use load_adjust (#10727)
Regardless of the comment "Big timeout for ASAN/valgrind" it would use
10s by default already.
This changes it to use `load_adjust`, which itself is only computed on
CI now, and outside of any tests - since it has side effects when being
used the first time!

The failure seen on AppVeyor:

    [ RUN      ] jobs can get the pid value using getpid: ERR
    test\functional\helpers.lua:167:
    ==============================================================================
    got 0 messages (ignored 0), expected 1
    stack traceback:
            test\functional\helpers.lua:167: in function 'expect_msg_seq'
            test/functional\core\job_spec.lua:288: in function <test/functional\core\job_spec.lua:281>

Log: https://ci.appveyor.com/project/neovim/neovim/builds/26537324/job/y1io66fbx399q7h6?fullLog=true#L6554
2019-08-09 15:32:38 +02:00
642e7daed5 Merge #9782 from janlazo/vim-8.1.0199
vim-patch:8.1.{199,200}
2019-08-09 12:00:47 +02:00
3c0d637592 clang/"Null passed as a nonnull parameter" #10718 2019-08-09 11:24:30 +02:00
8a56bd944a Merge #10708 'remove DYNAMIC_ICONV'
closes #3457
2019-08-09 11:19:37 +02:00
47b7b471fa :terminal : update buffer when switching tabpage #10700
fix #10696
2019-08-09 10:37:08 +02:00
a48896c6e7 vim-patch:8.1.1540: cannot build without +eval #10729
Problem:    Cannot build without the +eval feature.
Solution:   Define ex_const if needed.
0abb4273f6
2019-08-09 10:28:15 +02:00
4bb728dfa0 test: Minimize shada/helpers.lua #10728 2019-08-09 10:23:57 +02:00
480794146f f_spellbadword: set len=0 for non-found word
`len` is used with `list_append_string` later, and should reflect the
length of `word` (i.e. 0 when not setting word / breaking above).

Ref: neovim/neovim#9782 (comment)
2019-08-08 21:40:29 -04:00
d1ce15f696 vim-patch:8.1.0200: spellbadword() not tested
Problem:    spellbadword() not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3235)
872e451e8c
2019-08-08 21:31:20 -04:00
18888c15fc vim-patch:8.1.0199: spellbadword() does not check for caps error
Problem:    spellbadword() does not check for caps error. (Dominique Pelle)
Solution:   Adjust capcol when advancing.
66ab916935
2019-08-08 21:31:20 -04:00
25fff17d19 Merge pull request #10688 from bfredl/utf16lib
lua: minimal UTF-16 support needed for LSP
2019-08-09 00:00:55 +02:00
1f54f68732 lua: minimal UTF-16 support needed for LSP 2019-08-08 20:10:14 +02:00
ce628e1187 vim-patch:8.1.1824: crash when correctly spelled word is very long (#10725)
Problem:    Crash when correctly spelled word is very long. (Ben Kraft)
Solution:   Check word length before copying. (closes vim/vim#4778)
5bcc5a1ff9
2019-08-08 17:23:25 +02:00
e4bd31dbac tests: use module pattern with test/functional/helpers.lua (#10724) 2019-08-08 16:03:25 +02:00
0288ba6e38 build: Makefile: use _opt_pylint [ci skip] (#10720)
A separate rule it clearer, and allows for `make --keep-going lint` in
general later.

Ref: https://github.com/neovim/neovim/pull/10714
2019-08-08 16:02:59 +02:00
38a3af5dff tests: output_spec: use shell-test REP_NODELAY (#10726)
Fix flaky "shell command :! throttles shell-command output greater than ~10KB:":

    [ RUN      ] shell command :! throttles shell-command output greater than ~10KB:
    warning: Screen changes were received after the expected state. This indicates
    indeterminism in the test. Try adding screen:expect(...) (or wait()) between
    asynchronous (feed(), nvim_input()) and synchronous API calls.
      - Use screen:redraw_debug() to investigate; it may find relevant intermediate
        states that should be added to the test to make it more robust.
      - If the purpose of the test is to assert state after some user input sent
        with feed(), adding screen:expect() before the feed() will help to ensure
        the input is sent when Nvim is in a predictable state. This is preferable
        to wait(), for being closer to real user interaction.
      - wait() can trigger redraws and consequently generate more indeterminism.
        Try removing wait().

    ERR
    test/functional/ui/screen.lua:579: Failed to match any screen lines.
    Expected (anywhere): "
    %."
    Actual:
      |XXXXXXXXXX 591                                    |
      |XXXXXXXXXX 592                                    |
      |XXXXXXXXXX 593                                    |
      |XXXXXXXXXX 594                                    |
      |                                                  |
      |                                                  |
      |{3:-- TERMINAL --}                                    |
    stack traceback:
            test/functional/ui/screen.lua:579: in function '_wait'
            test/functional/ui/screen.lua:367: in function 'expect'
            test/functional/ui/output_spec.lua:63: in function <test/functional/ui/output_spec.lua:53>

Log: https://travis-ci.org/neovim/neovim/jobs/569082705#L5355
(gcc-functionaltest-lua)
2019-08-08 16:02:28 +02:00
2e01e7ce8a build/MSVC: Fix HAVE_ICONV_H #10697
Problem: HAVE_ICONV_H is not true in MSVC
Solution: Since iconv.h does not exist in the standard include directory
in MSVC, CMAKE_REQUIRED_INCLUDES must be set.

Note: This will be unnecessary after #10708.
2019-08-08 12:06:02 +02:00
1896c72a54 build: port FindLibVterm to LibFindMacros (#10395) 2019-08-08 06:39:18 +02:00
6ebe476675 build: clean up / remove X_USE_STATIC (#10713)
This was discouraged (as an option) in 5b5d353151 [1], not enabled/used by
default, and not working according to the comment in local.mk.example.

Taken out of https://github.com/neovim/neovim/pull/10395.

1: https://github.com/neovim/neovim/pull/2465
2019-08-07 22:19:55 +02:00
0167c2e0c9 ci: AppVeyor: fix upload of coverage for oldtest (#10721)
This was not working due to having another `python` in the PATH then.

Ref: https://ci.appveyor.com/project/neovim/neovim/builds/26492761/job/dspm40v5l2v6gn40?fullLog=true#L15955
2019-08-07 22:09:18 +02:00
564838159e lint 2019-08-07 14:21:23 +02:00
e269c1028b remove !has_mbyte branches
Ref: https://github.com/neovim/neovim/pull/10171#discussion_r292437832
2019-08-07 14:21:23 +02:00
0e3b9ea74d includes 2019-08-07 14:21:23 +02:00
aa6aa732e9 move ins_char 2019-08-07 14:21:23 +02:00
dfe8cab0c1 lint 2019-08-07 14:21:23 +02:00
f7fac33a1f move del_lines 2019-08-07 14:21:23 +02:00
41fa6079b2 lint/sync: truncate_line 2019-08-07 14:21:23 +02:00
be08d52e11 move truncate_line 2019-08-07 14:21:23 +02:00
33e6cffb9b lint/sync: open_line 2019-08-07 14:21:23 +02:00
2f225886b0 move open_line 2019-08-07 14:21:23 +02:00
b706b1f049 move copy_indent (from nvim's indent.c) 2019-08-07 14:21:23 +02:00
e454dce5e4 move del_bytes 2019-08-07 14:21:23 +02:00
0b3ee2e8ac move del_char, del_chars 2019-08-07 14:21:23 +02:00
75598927f2 move ins_str 2019-08-07 14:21:23 +02:00
c0f71ef826 move ins_char_bytes 2019-08-07 14:21:23 +02:00
664b6adebe move ins_bytes, ins_bytes_len 2019-08-07 14:21:23 +02:00
1117592f64 move unchanged 2019-08-07 14:21:23 +02:00
f717deea06 move changed_lines 2019-08-07 14:21:23 +02:00
b353d8599b move deleted_lines, deleted_lines_mark, changed_lines_buf 2019-08-07 14:21:23 +02:00
83d35e62f2 move appended_lines_mark 2019-08-07 14:21:23 +02:00
d9f2d53239 move appended_lines 2019-08-07 14:21:23 +02:00
c2cd9178ca remove inserted_bytes (comes via text properties, v8.1.0678) 2019-08-07 14:21:23 +02:00
ac6671946a move changedOneline, changed_bytes 2019-08-07 14:21:23 +02:00
53210c16d1 move changed_common 2019-08-07 14:21:23 +02:00
0e5314f56e move changed_int/changed_internal 2019-08-07 14:21:23 +02:00
a822b3e547 move changed 2019-08-07 14:21:23 +02:00
2a421e52e4 move change_warning 2019-08-07 14:21:23 +02:00
e8cd2bcf37 header 2019-08-07 14:21:23 +02:00
4a8a87c3a9 orig src/nvim/change.c 2019-08-07 14:21:23 +02:00
e4395e8e47 vim-patch:3f86ca0faa29cb862f876a97f87790f3a46a3858
Add missing files from patch 8.1.1318
3f86ca0faa
2019-08-07 14:21:23 +02:00
3a0505f83e vim-patch:8.1.1318: code for text changes is in a "misc" file
Problem:    Code for text changes is in a "misc" file.
Solution:   Move the code to change.c.
ec28d1516e
2019-08-07 14:21:23 +02:00
1d6e368159 Fix lualint: remove unused var 2019-08-07 14:20:23 +02:00
935ae63a48 cmakelists: fixed tests to avoid clang warnings (#10705)
* clang/"dead assignment"
* clang/"Uninitialized argument value"
2019-08-07 12:49:33 +02:00
4f148edd75 tests: more cleanup of plugin/shada_spec
Ref: https://github.com/neovim/neovim/pull/10701/commits/330a6713#r311005754
Closes https://github.com/neovim/neovim/pull/10710.
2019-08-07 12:47:21 +02:00
95e1ce24e8 build: lint: fix exit with optional pylint
Ref: https://github.com/neovim/neovim/pull/10714#issuecomment-518932355
2019-08-07 12:27:59 +02:00
d75fc87dec Merge pull request #10703 from ngortheone/clang_dead2
clang/"dead assignment": suppessed getchar.c

Possibly invalid, read on line 1972:
if (keylen >= 0 && keylen <= typebuf.tb_len) {
2019-08-07 10:27:07 +02:00
6fb0020df4 Merge pull request #10513 from bfredl/bytecount
api/lua: add {byte_count} parameter to line region change event
2019-08-06 20:25:46 +02:00
c0993ed343 lua: support getting UTF-32 and UTF-16 sizes of replaced text 2019-08-06 20:24:36 +02:00
dc1359bf8e Fix list_features to include space after first feature (#10711)
Regressed in e134cc9d4a: the use of list_in_columns was not adding a
space after the first features, because we do not start on a new line:

> Features: -acl+iconv +tui

This moves all the related code to `list_features`, and just joins them
with spaces.
2019-08-06 18:55:14 +02:00
8218d474fa build: move pylint to Makefile, optional with "make lint" (#10714)
This avoids errors when using "make lint", but "flake8" is not
available.  We do not want to install it then via third-party.
On CI "make pylint" is used explicitly.
2019-08-06 18:53:51 +02:00
e85b4e749e tests: unit.helpers: provide string with write errors (#10715)
This might help to have more information in case of errors, like
mentioned in https://github.com/neovim/neovim/commit/eec529cf9e.
2019-08-06 17:42:32 +02:00
b0e26199ec lua: add {old_byte_size} to on_lines buffer change event 2019-08-06 17:01:47 +02:00
d6f15ccc3c remove DYNAMIC_ICONV 2019-08-06 12:44:22 +09:00
11a6dac8c9 vim-patch:8.1.1467: cscope test fails
Problem:    Cscope test fails.
Solution:   Update expected text.
d6ec1730ba
2019-08-05 22:41:51 -04:00
ce7bcdec23 vim-patch:8.1.1465: allocating wrong amount of memory
Problem:    Allocating wrong amount of memory. (Yegappan Lakshmanan)
Solution:   Use sizeof() for right type of struct.
a37833dbd7
2019-08-05 22:40:48 -04:00
067a39ba85 Merge #10701 from justinmk/test-fixes
test: Eliminate plugin/helpers.lua
2019-08-06 01:36:01 +02:00
a29358dc58 Merge #10655 'environ(), getenv(), setenv()'
close #10655
2019-08-06 01:23:49 +02:00
d55b12ea50 f_environ: cleanup/refactor
- use os_getenvname_at_index / os_getenv
- f_getenv: empty (*p == NUL) is not null (undefined)
2019-08-06 01:23:11 +02:00
fd66ad2262 vim-patch:8.1.1305: there is no easy way to manipulate environment variables
Problem:    There is no easy way to manipulate environment variables.
Solution:   Add environ(), getenv() and setenv(). (Yasuhiro Matsumoto,
            closes vim/vim#2875)
691ddeefb5
2019-08-06 01:17:32 +02:00
b09e03c64d clang/"dead assignment": screen.c #10702
Suppress the warning.

mb_c and mb_l describe a char together, they are not independent variables. The
coupled assignments are good practice to avoid future confusion, even if the
current code doesn't use an assigned value.
2019-08-06 00:53:54 +02:00
512f24f71d clang/"dead assignment": suppessed
To ensure consistency and avoid possible errors in the code
the assigment is considered to be legit.
2019-08-05 18:40:31 -04:00
f6c9412436 test/mbyte_spec: skip broken test on QuickBuild
Forgot `return` in eec529cf9e.
2019-08-06 00:28:00 +02:00
330a6713bf test: Eliminate plugin/helpers.lua 2019-08-05 23:55:57 +02:00
7086751c5e vim-patch:8.1.1439: ga_grow(): 1.5x growth rate #10699
Problem:    Json_encode() is very slow for large results.
Solution:   In the growarray use a growth of at least 50%. (Ken Takata,
            closes vim/vim#4461)
c47ed44be7
2019-08-05 23:42:41 +02:00
f5d1e0e7b1 Merge pull request #10690 from bfredl/lua_print
lua: laundry list (crashes and additions)
2019-08-05 13:59:40 +02:00
88938634e7 lua: add vim.in_fast_event() to check if we are in a luv callback 2019-08-05 13:57:24 +02:00
e6d77993d1 lua: do not crash on syntax error in debug.debug() 2019-08-05 13:19:44 +02:00
d3a7bdefb0 lua: immediate-callback safe print() 2019-08-05 13:19:44 +02:00
51440204e7 Merge #10695 from justinmk/test-fixes
test: various fixes
2019-08-05 10:17:37 +02:00
d4a0b6c4e1 test/man_spec: remove plugin_helpers.reset()
The call to plugin_helpers.reset() is redundant with the clear() call
above it.  Probably just a copy-paste mistake.

Avoids exit_event race #8813.

Helped-by: Björn Linse <bjorn.linse@gmail.com>
2019-08-05 04:51:49 +02:00
eec529cf9e test/mbyte_spec: skip broken test on QuickBuild
14:13:04,119 INFO  - # ./test/unit/helpers.lua @ 760: mbyte utf_char2bytes for chars 0xa000 - 0xafff
    14:13:06,307 WARN  - E908: using an invalid value as a String
      /usr/home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/.deps/usr/bin/luajit:
      ./test/unit/helpers.lua:459: write() error: 32: Broken pipe
    14:13:06,308 WARN  - stack traceback:
    14:13:06,308 WARN  - 	[C]: in function 'throw'
    14:13:06,308 WARN  - 	...quests-automated/.deps/usr/share/lua/5.1/busted/core.lua:149: in function 'error'
    14:13:06,308 WARN  - 	...ts-automated/.deps/usr/share/lua/5.1/luassert/assert.lua:171: in function 'assert'
    14:13:06,308 WARN  - 	./test/unit/helpers.lua:459: in function 'write'
    14:13:06,308 WARN  - 	./test/unit/helpers.lua:626: in function 'hook'
    14:13:06,308 WARN  - 	./test/unit/helpers.lua:574: in function <./test/unit/helpers.lua:557>
    14:13:06,308 WARN  - 	[C]: in function 'type'
    14:13:06,308 WARN  - 	...d/.deps/usr/share/lua/5.1/busted/outputHandlers/base.lua:57: in function 'copyElement'
    14:13:06,308 WARN  - 	...d/.deps/usr/share/lua/5.1/busted/outputHandlers/base.lua:66: in function 'format'
    14:13:06,308 WARN  - 	...d/.deps/usr/share/lua/5.1/busted/outputHandlers/base.lua:172: in function 'fn'
    14:13:06,308 WARN  - 	...-requests-automated/.deps/usr/share/lua/5.1/mediator.lua:103: in function 'publish'
    14:13:06,308 WARN  - 	...quests-automated/.deps/usr/share/lua/5.1/busted/core.lua:201: in function 'safe'
    14:13:06,308 WARN  - 	...quests-automated/.deps/usr/share/lua/5.1/busted/core.lua:312: in function 'execute'
    14:13:06,308 WARN  - 	...sts-automated/.deps/usr/share/lua/5.1/busted/execute.lua:58: in function 'execute'
    14:13:06,308 WARN  - 	...ests-automated/.deps/usr/share/lua/5.1/busted/runner.lua:197: in function <...ests-automated/.deps/usr/share/lua/5.1/busted/runner.lua:11>
    14:13:06,308 WARN  - 	./.deps/usr/lib/luarocks/rocks/busted/2.0.0-1/bin/busted:3: in main chunk
    14:13:06,308 WARN  - 	[C]: at 0x004041a0
    14:13:06,323 WARN  - Terminated
    14:13:06,325 INFO  - Executing post-execute action...
    14:13:06,526 INFO  - Checking step execute condition...
    14:13:06,526 INFO  - Step execute condition satisfied, executing...
    14:13:06,706 INFO  - Executing pre-execute action...
    14:13:06,706 INFO  - Running step...
2019-08-05 04:19:36 +02:00
94afc201bc test: isCI(): add "name" parameter 2019-08-05 04:02:41 +02:00
c516586dc3 tests: fix flaky "TermClose … fast-exiting terminal job stops"
This extra retry() was removed (at my suggestion) in 5b94a2977a, but
it is probably needed: jobwait(…, timeout=0) could return while
channel_process_exit_cb() is still queued (so TermClose event didn't
fire yet).

    20:46:21,288 INFO  - not ok 547 - TermClose event triggers when fast-exiting terminal job stops
    20:46:21,288 INFO  - # test/functional/autocmd/termclose_spec.lua @ 20
    20:46:21,288 INFO  - # Failure message: ./test/functional/helpers.lua:98: Vim:E121: Undefined variable: g:test_termclose
    20:46:21,288 INFO  - # stack traceback:
    20:46:21,288 INFO  - # 	./test/functional/helpers.lua:98: in function 'eval'
    20:46:21,288 INFO  - # 	test/functional/autocmd/termclose_spec.lua:25: in function <test/functional/autocmd/termclose_spec.lua:20>
2019-08-05 03:52:17 +02:00
6871445dfe vim-patch:8.1.1383: warning for size_t/int mixup (#10694)
Problem:    Warning for size_t/int mixup.
Solution:   Change type. (Mike Williams)
d33a764123
2019-08-05 03:35:46 +02:00
45c34bd84a :doautocmd : Never show "No matching autocommands" #10689
The message is useless, it doesn't even mention the event name.

vim_dev discussion:
https://groups.google.com/forum/#!msg/vim_dev/RTbq58TMq9w/Xr4rSoUTCgAJ

ref: https://github.com/vim/vim/issues/4300
2019-08-05 03:33:45 +02:00
01ddb39699 vim-patch:8.1.1311: test: abort autocmd with exception #10692
Problem:    Aborting an autocmd with an exception is not tested.
Solution:   Add a test.  Also shows how to abort a command by throwing an
            exception.
23b5139234
2019-08-05 01:54:17 +02:00
a724209b5a vim-patch:8.1.1251: test completion of mapping keys #10691
Problem:    No test for completion of mapping keys.
Solution:   Add a test.  Also clean up the code.
2cb9f02532
2019-08-05 01:12:35 +02:00
4c35e6fe67 Makefile: only use pattern rules with BUILD_TYPE=Ninja (#10687)
While not doing any harm with "Unix Makefiles", they do not work there
as-is.  Therefore just do not use them then.

Followup to #10366 (7f6ff829a).
2019-08-04 17:13:04 +02:00
05712d4b20 runtime/matchit.vim: workaround broken 'packpath'
fix #10680
2019-08-04 16:49:10 +02:00
96be8a2c4d Merge #10161 from equalsraf/tb-clipboard-reload
Support "reload" of providers
2019-08-04 15:52:56 +02:00
2141dc2262 provider: check #Call() if g:loaded_xx_provider=2 2019-08-04 13:23:46 +02:00
e952b7fc2f health.vim: check has("debug") 2019-08-04 13:23:46 +02:00
5e6a08f2e6 provider: skip non-provider has() feature-names
We don't want to retry autoload sourcing (slow) for every random has()
query that finds it way to eval_call_provider().
2019-08-04 13:23:46 +02:00
241956720d provider: g:loaded_xx_provider=2 means "enabled and working"
Value of 1 cannot be used, because users might set that in their vimrc
to _disable_ a provider, which would confuse :checkhealth and has().
2019-08-04 13:23:46 +02:00
66938b928c provider: decide status by g:loaded_xx_provider 2019-08-04 13:23:46 +02:00
2cfe4748e5 provider: let providers decide their status
Instead of deciding provider status in eval_has_provider, move the
decision to the provider Vim scripts.

Previously, provider loading worked as follows:

1. eval_has_provider() verified provider availability by searching for
   the provider#providername#Call function and cached this verificaion as a static
   variable for some providers
2. providers short-circuited on loading to prevent the definition of the
   Call function (with the exception of the node provider that did not)

This commit changes the expected interface between nvim and its
providers to facilitate provider reloading, by splitting the
verification of the provider from the availability of the Call function.

eval_has_provider() now checks for a provider#providername#enabled
variable. It is up to the provider script to set this to 0 or 1
accordingly. eval_call_provider() remains unchanged.

All providers hosting a Call function were updated to respect this.

The clipboard provider now has a Reload function to reload the
provider.
2019-08-04 13:23:46 +02:00
2860453c4f doc: update 'shellredir' advice for powershell #10686
Encoding can be utf8, unicode, utf32.
User can choose to omit '-Encoding' to default to 'unicode'.

'ascii' encoding corrupts the following file:
https://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html

Inspect 'foo.txt' with the following code after downloading the file.

Get-Content -Encoding UTF8 UTF-8-demo.html | Out-File -Encoding ascii foo.txt
2019-08-04 11:32:17 +02:00
0bb1008e7f Merge #10683 from janlazo/vim-8.1.1796
vim-patch:8.1.{1237,1796}
2019-08-03 19:14:47 +02:00
5dd860fd73 vim-patch:8.1.1237: error for using "compl", reserved word in C++
Problem:    Error for using "compl", reserved word in C++.
Solution:   Rename to "complp". (suggestion by Ken Takata)
52111f8231
2019-08-03 12:38:50 -04:00
01b2dac727 vim-patch:8.1.1796: :argdo is not tested
Problem:    :argdo is not tested
Solution:   Add a test.
72e1b39111
2019-08-03 11:38:52 -04:00
a49cf51269 build: require unibilium>=2.0 (#10681)
* build: require unibilium>=2.0

This also ports FindUnibilium to LibFindMacros, which was planned
anyway, and makes the version check easier.

With an older Unibilium our fallback code in `terminfo_from_builtin`
will not work (because it assumes the new data structures from 2.0.0 [1]),
and nvim would crash later because of `ut` being NUL.

1: 42f3cdd284
2019-08-03 15:20:28 +02:00
ae27406db2 ci: Travis: move gcc-functionaltest-lua to 2nd stage (#10682)
Ref: https://github.com/neovim/neovim/pull/10673#issuecomment-517733843
2019-08-03 14:55:27 +02:00
7e8dbb5958 Merge #10678 from janlazo/vim-8.1.1187
vim-patch:8.1.{1187,1761,1762,1775}
2019-08-03 13:59:41 +02:00
620a906406 vim-patch:8.1.1775: error message may be empty in filetype test
Problem:    Error message may be empty in filetype test.
Solution:   Use v:exception instead. (Daniel Hahler, closs vim/vim#4744)
eee9f65b2a
2019-08-02 19:51:04 -04:00
12fe0cf5f9 vim-patch:8.1.1762: some filetype rules are in the wrong place
Problem:    Some filetype rules are in the wrong place.
Solution:   Move to the right place.  Add a few more tests.
c273405188
2019-08-02 19:48:32 -04:00
d827a750f7 vim-patch:8.1.1761: filetype "vuejs" causes problems for some users
Problem:    Filetype "vuejs" causes problems for some users.
Solution:   Rename to "vue".
4248111497
2019-08-02 19:46:34 -04:00
cdd8540a20 vim-patch:8.1.1187: cannot recognize Pipfile
Problem:    Cannot recognize Pipfile.
Solution:   Use existing filetypes. (Charles Ross, closes vim/vim#4280)
3a4c53ba51
2019-08-02 19:44:37 -04:00
24fb7eefaa terminfo_start: use unibi_from_term, skip without TERM (#10670)
This is clearer/more explicit and avoids potential mismatch between what unibilium thinks vs what Nvim thinks.

For reference: e3b16d6219/uniutil.c (L203-L211)
2019-08-02 19:39:29 +02:00
a270c33b3a Merge #10675 from justinmk/vim-runtime
fix #10572
2019-08-02 19:22:23 +02:00
e2e220256e runtime/optwin.vim: missing 'previewpopup' feature
test_options.vim fails, so we need to disable this until the feature is
implemented.
2019-08-02 16:41:18 +02:00
df636003bf doc: remove "{not available ...}" noise 2019-08-02 16:36:42 +02:00
9bc4f275b3 vim-patch:5477506a9f01
Update runtime files.
5477506a9f

NA:
vim-patch:2a9c9f6d89f1 "undo extra changes in src/Makefile"
2a9c9f6d89
2019-08-02 16:20:23 +02:00
7c19a4e518 vim-patch:85850f3a5ef9
Update runtime files
85850f3a5e
2019-08-02 16:20:22 +02:00
1e4e890a76 vim-patch:396e829fa355
Update runtime files
396e829fa3
2019-08-02 16:20:22 +02:00
0d852bdc69 vim-patch:6c1e1570b134
Update runtime files
6c1e1570b1
2019-08-02 16:20:22 +02:00
bd23fefb39 vim-patch:12ee7ff00b91
Update runtime files
12ee7ff00b
2019-08-02 16:20:22 +02:00
ad9b781bba vim-patch:773a97c254d0
Update runtime files - Add typescript syntax and indent.
773a97c254
2019-08-02 16:20:22 +02:00
0414a33868 vim-patch:61da1bfa6c6b
Update runtime files.
61da1bfa6c
2019-08-02 16:20:22 +02:00
c6e4a29ad2 vim-patch:7dd64a3e57d2
Update runtime files.
7dd64a3e57
2019-08-02 16:20:22 +02:00
4ea8323667 vim-patch:68e6560b84f1
Update runtime files.
68e6560b84
2019-08-02 16:20:22 +02:00
bf6919f26b cleanup 2019-08-02 16:20:22 +02:00
1aedb9ed00 ci: Travis: move coverage job to first stage (#10673)
This swaps it with "gcc-32bit".
It is better to have the "coverage" job run than "gcc-32bit" in case of
flaky build failures - especially on master, since otherwise no base
coverage is available for future PRs.
2019-08-02 15:48:32 +02:00
7cf0119c68 Merge #10666 from justinmk/vim-runtime
vim-patch: runtime updates
2019-08-02 15:10:04 +02:00
b92a5bc3c4 Merge #10664 from janlazo/vim-8.1.1780
vim-patch:8.1.{1374,1780}
2019-08-02 06:01:46 +02:00
532ee54a42 vim-patch:a6c27c47ddf0
Update runtime files
a6c27c47dd
2019-08-01 23:27:26 +02:00
f379eac1ef vim-patch:911ead126903
Update runtime files
911ead1269

NA: vim-patch:602abeb20fb7
2019-08-01 23:12:33 +02:00
4d830ca31b vim-patch:62e1bb4a111e
Update runtime files.
62e1bb4a11

NA: vim-patch:496555fd1821
2019-08-01 22:58:20 +02:00
7f5402899b vim-patch:62e1bb4a111e
Update runtime files.
62e1bb4a11
2019-08-01 22:52:56 +02:00
31a5ec23eb vim-patch:723dd946f948
Update runtime files.
723dd946f9
2019-08-01 22:52:42 +02:00
2cdbbe50a4 vim-patch:63b74a8362b1
Update runtime files.
63b74a8362
2019-08-01 22:48:28 +02:00
41fe644124 vim-patch:26967617a30e
Update runtime files.
26967617a3

NA: vim-patch:55d81cd2a15d
2019-08-01 22:44:59 +02:00
a14fc7b159 vim-patch:f6b401090e81
Update runtime files
f6b401090e
2019-08-01 22:26:04 +02:00
47b4eb110d vim-patch:4c92e75dd4dd
Update runtime files.
4c92e75dd4

vim-patch:c854898881c0
Revert change accidentally included in runtime file updates.  Closes vim/vim#3998.
c854898881
2019-08-01 16:51:53 +02:00
87140f234a Merge #10646 'vim-patch: runtime patches' 2019-08-01 16:43:14 +02:00
5342342426 runtime: move matchit.vim to /pack/dist/opt/
Align matchit.vim with upstream Vim. We don't want to maintain a fork of
matchit.vim; our small changes should be sent to
https://github.com/chrisbra/matchit
2019-08-01 15:43:53 +02:00
1f6c9fd822 stream: log unwritten bytes, if any #10663 2019-08-01 15:26:22 +02:00
41bb68b8e8 process_stop: uv: do not close stdin first/explicitly #10584
- process_stop: do not close stdin explicitly. The "close stdin" step was from
  aa9cb48, before we fixed/reworked the SIGTERM timing logic. So it's probably
  outdated / no longer needed.
- win: jobstop: exit_code 15
   GetExitCodeProcess appears to return the used signal.
   https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getexitcodeprocess

ref #10573
2019-08-01 13:55:06 +02:00
c708567262 fileio: port hotfix from patch 8.1.1379
Patch 8.1.1379 includes a change to a test, added in Patch 8.1.0815.
Patch 8.1.0815 includes runtime doc changes to Blob.
Neovim does not support Blobs yet.
2019-08-01 04:35:23 -04:00
7995a5e964 vim-patch:8.1.1374: check for file changed triggers too often
Problem:    Check for file changed triggers too often.
Solution:   Don't use "b_p_ar" when it is negative.
c97582b029
2019-08-01 04:29:39 -04:00
28946c285b lint 2019-08-01 04:20:35 -04:00
309296545c vim-patch:8.1.1780: warning for file no longer available is repeated
Problem:    Warning for file no longer available is repeated every time Vim is
            focused. (Brian Armstrong)
Solution:   Only give the message once. (closes vim/vim#4748)
674e2bde6e
2019-07-31 21:49:36 -04:00
65578693b2 Merge #10654 from ngortheone/clang/npd_helptags_one
clang/"null pointer dereference": ex_cmds.c
2019-07-31 07:22:12 +02:00
208f56d3b9 ci: Travis: improve/revisit caching (#10358)
- use CACHE_NVIM_DEPS_DIR

- do not cache pip
  This is handled through http caches in general/better, and it is not
  used much anyway.

- do not cache DEPS_DOWNLOAD_DIR
  Built deps are cached, downloads are not needed then.

- display ccache stats before clearing

- do not cache ccache stats

- improve output of `du` (do not list pages of output for "/home/travis/.cache/go-build")
2019-07-30 23:21:12 +02:00
6fc0a9f557 lint: helptags_one 2019-07-30 16:58:28 -04:00
6e01ed6a4c vim-patch:8.1.0572: stopping a job does not work properly on OpenBSD
Problem:    Stopping a job does not work properly on OpenBSD.
Solution:   Do not use getpgid() to check the process group of the job
            processs ID, always pass the negative process ID to kill().
            (George Koehler, closes vim/vim#3656)
76ab4fd619

Ref: https://github.com/neovim/neovim/issues/9704
Ref: https://github.com/neovim/neovim/issues/10182#issuecomment-514450069
Closes https://github.com/neovim/neovim/pull/10660
2019-07-30 18:41:38 +02:00
da87b67812 tests: runnvim.vim: do not call jobstop() (#10659)
It should be done for timeouts only (-1, not != -1), but the job is
stopped via `:bwipeout!` already also in that case.

Fixes E900 with timing out tests:

    "test_xxx.tlog" "test_xxx.tlog" [New] 183L, 13375C written
    Error detected while processing function Main:
    line   37:
    E900: Invalid channel id================================================================================
2019-07-30 15:08:05 +02:00
7f6ff829aa Makefile: use pattern rules for build/.deps [ci skip] (#10366)
This allows for `make build/bin/nvim`,
`make build/src/nvim/auto/funcs.generated.h` etc.
2019-07-30 13:53:33 +02:00
be6bf75d79 Merge pull request #10656 from blueyed/minor
Minor: align test, fix comment/usage
2019-07-30 11:45:41 +02:00
b117754a8b gen_eval.lua: use correct name in usage 2019-07-30 10:37:41 +02:00
08ed3d6523 tests: use Vim's version for patch 8.1.0005
Not sure what happened in daca22f5b / #8821, but Vim used assert_match /
no expand in vim/vim@d19b23415 (8.1.0005) already.
2019-07-30 10:35:44 +02:00
213b6b5c28 vim-patch: handle tags, pass through git-log options (#10140)
* scripts/vim-patch.sh: fall back to "origin" for remote

Without this, it would fail e.g. with a locally cloned repo of Neovim.

* scripts/vim-patch.sh: assign_commit_details: handle tags  [ci skip]

- Handle "v" prefix from Vim tags.
- Exit in case of error therein already.

* -l/-L: pass through git-log options  [ci skip]

This allows for only listing missing patches for a given Vim file:

> scripts/vim-patch.sh -L src/edit.c
2019-07-30 07:45:59 +02:00
35ec60f73a Merge pull request #10648 from blueyed/autopep8
ci: py: flake8 fixes
2019-07-30 07:32:47 +02:00
11ed7377f9 clang/"null pointer dereference": ex_cmds.c 2019-07-29 22:56:59 -04:00
d651710de1 ci: pylint target via flake8
Ref: https://github.com/neovim/neovim/pull/10631#issuecomment-515756591
2019-07-29 22:14:23 +02:00
d7b04ae7a7 py: flake8 fixes 2019-07-29 22:14:23 +02:00
97ce776e7b scripts: autopep8 2019-07-29 22:14:23 +02:00
bae02eb396 Merge #10645 from janlazo/vim-8.1.0999
vim-patch:8.1.{1005,1041,1049,1052,1053,1086,1394}
2019-07-29 20:59:38 +02:00
62b5f25b6b vim-patch:94688b8a2a1f
Add missing matchit file.
94688b8a2a
2019-07-29 20:50:07 +02:00
57fa9add79 vim-patch:314dd79cac2a
Update runtime files.
314dd79cac
2019-07-29 20:50:07 +02:00
b5cb6c743a vim-patch:2a953fcf107d
Updated runtime files.
2a953fcf10
2019-07-29 20:50:07 +02:00
6fed505100 vim-patch:d09091d4955c
Update runtime files.
d09091d495
2019-07-29 20:50:07 +02:00
ef1f1907cc vim-patch:4c05fa08c973
Update runtime files
4c05fa08c9
2019-07-29 20:50:07 +02:00
4cab90ad8c vim-patch:c8c884926750
Update runtime files.
c8c8849267
2019-07-29 20:50:07 +02:00
b3d4e2d6dc vim-patch:c33181c44ccb
Ignore output files from indent tests.
c33181c44c
2019-07-29 20:50:07 +02:00
aa680f6acb vim-patch:9d87a37ee9d8
Update runtime files.
9d87a37ee9
2019-07-29 20:50:07 +02:00
c8f34a9a3e vim-patch:d47d52232bf2
Update runtime files.
d47d52232b
2019-07-29 20:50:07 +02:00
ab2cfd24e7 vim-patch:b730f0c7ba36
Update runtime files
b730f0c7ba
2019-07-29 20:50:07 +02:00
28a681d37d vim-patch:f0d58efc9dc4
Update runtime files.
f0d58efc9d
2019-07-29 20:50:07 +02:00
80dda68926 vim-patch:ba3ff539303c
Update runtime files
ba3ff53930
2019-07-29 20:50:07 +02:00
f64486b6b6 vim-patch:790c18bfa5df
Update runtime files
790c18bfa5
2019-07-29 20:50:07 +02:00
6e03f87e09 Merge #10615 'vim-patch:8.1.0053'
fix #10604
2019-07-29 20:43:44 +02:00
454902d663 PVS/V507: suppress false positive #10647
The pointer does not outlive the value in local scope as it gets
reassigned immediately after scope.
2019-07-29 19:57:16 +02:00
ea14d8d493 vim-patch:8.1.0053 use typval_T in the caller of call_vim_function
Problem:	unreliable types for complete function arguments
Solution:	fix argument type for functions w/ unreliable type conversion(Ozaki Kiichi)
vim/vim#2993
2019-07-29 19:56:02 +02:00
696334181f build/macOS: enable fallthrough attribute #10653 2019-07-29 19:51:49 +02:00
d6b31721bf vim-patch:8.1.1086: too many curly braces
Problem:    Too many curly braces.
Solution:   Remove curly braces where they are not needed. (Hirohito Higashi,
            closes vim/vim#3982)
abab0b0fdd

Neovim code style requires the opposite.
Add curly braces to minimize lint errors when applying Vim patches.
2019-07-28 23:44:36 -04:00
b388f46266 buffer: add attributes to pure functions 2019-07-28 22:19:11 -04:00
01e3690ca8 vim-patch:8.1.1049: when user tries to exit with CTRL-C message is confusing
Problem:    When user tries to exit with CTRL-C message is confusing.
Solution:   Only mention ":qa!" when there is a changed buffer. (closes vim/vim#4163)
a84a3dd663

vim-patch:8.1.1052: test for CTRL-C message sometimes fails

Problem:    test for CTRL-C message sometimes fails
Solution:   Make sure there are no changed buffers.
553e5a5c56

vim-patch:8.1.1053: warning for missing return statement

Problem:    Warning for missing return statement. (Dominique Pelle)
Solution:   Add return statement.
d6c3f1fa2b
2019-07-28 22:19:11 -04:00
4c50f0dc76 vim-patch:8.1.1041: test for Arabic no longer needed
Problem:    Test for Arabic no longer needed.
Solution:   Remove the test for something that was intentionally left out.
295e3ba31f
2019-07-28 22:05:51 -04:00
00e882e6f6 vim-patch:8.1.1394: not restoring t_F2 in registers test
Problem:    Not restoring t_F2 in registers test.
Solution:   Assign to &t_F2 instead of t_F2. (Andy Massimino, closes vim/vim#4434)
a5e44600eb
2019-07-28 22:05:51 -04:00
c53e78e125 vim-patch:8.1.1005: test fails because t_F2 is not set
Problem:    Test fails because t_F2 is not set.
Solution:   Add try-catch.
55d81cd2a1
2019-07-28 22:05:51 -04:00
3cf4b0d5e5 Merge #10641 from ngortheone/pvs/V560_6
pvs/V560: part of conditional expression is always false
2019-07-29 03:37:17 +02:00
1c74c7c446 lint: makemap
* if braces
* spaces
* post increments
* comment style
2019-07-28 21:10:49 -04:00
ed5f891e83 pvs/V560: part of conditional expression is always false
makemap: same condition is used to skip outer loop cycle
2019-07-28 20:48:44 -04:00
caa8c06bae vim-patch:8.1.1138: add CompleteChanged #10644
(This was originally a Neovim patch, but this commit merges some changes
from the Vim patch.)

d7f246c68c
2019-07-29 02:36:46 +02:00
505f47403b vim-patch:8.1.0017: shell command completion has duplicates #10616
Problem:    Shell command completion has duplicates. (Yegappan Lakshmanan)
Solution:   Use a hash table to avoid duplicates. (Ozaki Kiichi, closes vim/vim#539, closes vim/vim#2733)
62fe66f251
2019-07-29 01:25:54 +02:00
16727dcf1e clang/"dead assignments" #10620
Also revert possibly-wrong change in f_sign_getplaced() from
652be3cb00.
2019-07-29 00:52:24 +02:00
Jit
7cc2b723d4 TextYankPost: spurious/too-early dispatch during delete #10392
Problem: delete-with-register dispatches TextYankPost before updating yank registers
Solution: Add flag to op_yank().

Fixes #10225
2019-07-29 00:50:11 +02:00
4213492231 Merge #10643 from janlazo/vim-8.1.1765
vim-patch:8.1.{990,992,1765}
2019-07-29 00:34:47 +02:00
00d915d021 PVS/V547: expression is always true/false #10640
Functions marked with FUNC_ATTR_NONNULL_RET do not return NULL.
Remove redundant checks.
2019-07-29 00:11:54 +02:00
b457a58e34 vim-patch:8.1.0990: floating point exception with "%= 0" and "/= 0"
Problem:    Floating point exception with "%= 0" and "/= 0".
Solution:   Avoid dividing by zero. (Dominique Pelle, closes vim/vim#4058)
e21c1580b7
2019-07-28 17:19:20 -04:00
f5b5f60b86 PVS/V512: memcpy overflow/underflow #10642
problem:  bfredl: pvs thinks the type of the pointed
          at item is too small.
solution: refactored address calculation.
2019-07-28 23:05:18 +02:00
98d389ce55 vim-patch:8.1.1765: get(func, dict, def) does not work properly
Problem:    get(func, dict, def) does not work properly.
Solution:   Handle NULL dict better. (Takuya Fujiwara, closes vim/vim#4734)
f91aac5e3e
2019-07-28 16:11:54 -04:00
fe2ada7375 PVS/V560: condition is always false #10638
* shorten_buf_name: condition inside outer if-branch with inverse condition
2019-07-28 21:28:53 +02:00
3b82c075b3 vim-patch:8.0.1753: fix various warnings #10639
vim-patch:8.0.1753: various warnings from a static analyser
Problem:    Various warnings from a static analyser
Solution:   Remove unneeded conditions.
1c17ffa461
2019-07-28 21:26:17 +02:00
6953e151bb context: shada_encode_regs(): init WriteMergerState #10637
- Check shada_pack_xx() result, abort on failure.
- Use xcalloc() to zero-initialize `wms`, fixes below ASAN failure.

ASAN failure (running vim_spec.lua in a loop):

    ../src/nvim/shada.c:1773:13: runtime error: load of value 224, which is not a valid value for type 'bool'
    SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/nvim/shada.c:1773:13

Adding an explicit check just before the ASAN failed line:

    case kSDItemRegister: {
      if (*((int *)(void *)&entry.data.reg.is_unnamed) != 1
          && *((int *)(void *)&entry.data.reg.is_unnamed) != 0) {
        abort();

    (gdb) p entry.data.reg
    +p entry.data.reg
    $5 = {name = 49 '1', type = kMTLineWise, contents = 0x60200000c250, is_unnamed = true, contents_size = 1, width = 0, additional_data = 0x0}
    (gdb) p *((uint8_t *)(void *)&entry.data.reg.is_unnamed)
    +p *((uint8_t *)(void *)&entry.data.reg.is_unnamed)
    $7 = 2049
2019-07-28 19:39:03 +02:00
cfa2759df6 PVS/V560: expression is always false/true #10623 2019-07-28 17:58:24 +02:00
10fd5ae277 vim-patch:7.4.2213: runtime parts with EndOfBuffer port #10635
Problem:    Cannot highlight the "~" lines at the end of a window differently.
Solution:   Add the EndOfBuffer highlighting. (Marco Hinz, James McCoy)
58b853460a

Includes minor doc parts from 7.4.1304 for runtime/doc/eval.txt.
2019-07-28 13:27:03 +02:00
48884ac3b3 ci: Travis: no need for asan_symbolize (#10627)
Having llvm-symbolizer in the $PATH is enough.

- check_logs: remove log after displaying it
  Otherwise it would be displayed/symbolized again and again.

E.g. in https://api.travis-ci.org/v3/job/564477704/log.txt.
2019-07-28 11:48:54 +02:00
05fa1cb3f4 src/clint.py: flake8 fixes [ci skip] (#10631) 2019-07-28 11:48:24 +02:00
256608a13b vim-patch:b1c9198af (#10634)
Vim 8.1 release

Update version number and information.  Fix a couple of tests.
b1c9198afb
2019-07-28 11:48:07 +02:00
b5c44b66eb Merge #10628 from notomo/vim-8.1.1759 2019-07-28 11:15:30 +02:00
f4942a63f9 build/tests: remove pre/uv.h #10531
Initially done in 28e59cb22, but does not appear to be necessary
anymore.

Uses UV_EEXIST directly, just like UV_ENOENT.
2019-07-28 11:10:22 +02:00
e0f2c36667 PVS/V560: condition is always true #10630
earlier condition leads to short-circuit of the loop
2019-07-28 11:08:41 +02:00
ce59a70f5b PVS/V560: condition is always true #10624
* before changed line status variable is set to RA_FAIL in 2 places
line 3816 and 3826, both lead to short-circuit of the loop, making
comparing it to RA_FAIL useless

close #10624
2019-07-28 10:59:44 +02:00
5b47ee5b7a pvs/V560: part of conditional expression is always true (#10629)
Since timed_out is pointer to int  condition timed_out != NULL && timed_out makes no sense as both are effectively the same thing. Most likely the first check was meant to guard the dereference of the second.
Wrong import of Vim patch (8.0.0643).
2019-07-28 05:16:14 +02:00
32a6b5601b Fix clint error 2019-07-28 09:22:46 +09:00
08c7e206cc vim-patch:8.1.1759: no mode char for terminal mapping from maparg()
Problem:    No mode char for terminal mapping from maparg().
Solution:   Check for TERMINAL mode. (closes vim/vim#4735)
14371ed697
2019-07-28 08:00:52 +09:00
dedcd3ad1e vim-patch:8.1.0053 use typval_T in the caller of call_vim_function
Problem:	unreliable types for complete function arguments
Solution:	fix argument type for functions w/ unreliable type conversion(Ozaki Kiichi)
vim/vim#2993
2019-07-28 00:19:41 +02:00
7f5a113f65 vim-patch:8.1.1748: :args output is not aligned (#10625)
Problem:    :args output is not aligned.
Solution:   Output a line break after the last item in a row.
74da39373c

vim-patch:8.1.1750: depending on the terminal width :version may miss a line break

Problem:    Depending on the terminal width :version may miss a line break.
Solution:   Add a line break when needed.
8a5c29aee9

vim-patch:8.1.1760: extra line break for wrapping output of :args

Problem:    Extra line break for wrapping output of :args.
Solution:   Avoid the extra line break. (Daniel Hahler, closes vim/vim#4737)
9800bfe0fc
2019-07-27 23:48:32 +02:00
8e6b0a73c9 Merge #10619 'API: context' 2019-07-27 22:56:05 +02:00
b6278bbf12 API: Context: save/restore 2019-07-27 22:14:58 +02:00
0e23ee3cc7 vim-patch:8.1.0956: context:0 in 'diffopt' #10622
Problem:    Using context:0 in 'diffopt' does not work well.
Solution:   Make zero context do the same as one line context. (closes vim/vim#4005)
b9ddda6c2d
2019-07-27 20:33:33 +02:00
691deca2e8 eval: context: add ctx-family functions 2019-07-27 16:36:56 +02:00
a80f691a6a API: Context 2019-07-27 16:36:56 +02:00
411a06c8b6 API: Context 2019-07-27 16:36:57 +02:00
0364e47ccb vim-patch:8.1.53 use typval_T in the caller of call_vim_function
Problem:	unreliable types for complete function arguments
Solution:	fix argument type for functions w/ unreliable type conversion(Ozaki Kiichi)
vim/vim#2993
2019-07-27 16:25:33 +02:00
997601d966 ci: AppVeyor: DEPS_BUILD_DIR is not a CMake variable [ci skip] (#10613)
Fixes:

> CMake Warning:
> Manually-specified variables were not used by the project:
>
>   DEPS_BUILD_DIR
2019-07-27 11:55:17 +02:00
7be85ed0f5 ci: Travis: single osx job [ci skip] (#10614)
The "osx" jobs are the slowest ones, and often still flaky.

I think it is good enough to have a single one there (since they only use
different compilers).
This should improve build times in general (with multiple running
builds, since we're using less jobs per build), and also make flaky job
failures less likely.
2019-07-27 11:50:44 +02:00
0b4123668a ci: Travis: gcc-9: use gcov-9 (#10609) 2019-07-27 02:04:49 +02:00
709e87792f tests: test_arglist.vim: align with Vim [ci skip] (#10612)
This just moves the test to where it is in Vim.
2019-07-27 01:47:12 +02:00
af01b347d8 Merge #10606 'vim-patch:8.1.0404' 2019-07-27 01:33:58 +02:00
e1a5c29b93 ci: Travis: remove clang-tsan from allowed failures [skip ci] (#10591)
While it still might be flaky sometimes, it is far better than the
osx jobs in general, and due to it being allowed to fail, we are not
getting aware of more recent (flaky) issues due to building tags during
make-install, which might indicate a more generic problem.
2019-07-27 01:32:02 +02:00
809613c952 Merge pull request #10580 from blueyed/tests-cat
tests: use "cat" also on Windows
2019-07-27 00:59:27 +02:00
53d1801b49 tests: win: fix "cat" with PowerShell
Ref: https://github.com/neovim/neovim/pull/10580#issuecomment-514884092
2019-07-26 21:45:24 +02:00
2906c702f9 tests: use "cat" also on Windows
Fixes https://github.com/neovim/neovim/issues/10574.

Keeps 'can be called recursively' pending for now, see
https://github.com/neovim/neovim/pull/10580#issuecomment-515295571.
2019-07-26 21:45:00 +02:00
2b731a388a vim-patch:8.1.1747: unused variables #10605
Problem:    Compiler warning for unused variables. (Tony Mechelynck)
Solution:   Add #ifdef.
fbfb757d4c
2019-07-26 11:21:44 +02:00
0fb05b2c7d Revert "vim-patch:8.1.0430: Xargadd file left behind after running test"
This reverts commit ce1b4f95fe.
2019-07-26 05:19:05 -04:00
cbda383efe vim-patch:8.1.0404: accessing invalid memory with long argument name
Problem:    Accessing invalid memory with long argument name.
Solution:   Use item_count instead of checking for a terminating NULL.
            (Dominique Pelle, closes vim/vim#3444)
e961cba3cb
2019-07-26 05:19:05 -04:00
b42bfa599b Merge #10589 'os/fs: introduce os_fopen()' 2019-07-26 11:18:19 +02:00
2731080212 cleanup: remove mch_fopen in favor of os_fopen 2019-07-25 22:32:23 +02:00
bb3a0099c6 os/fs: introduce os_fopen()
Windows: Using fopen() directly may need UTF-16 filepath conversion. To
achieve that, os_fopen() goes through os_open().

fix #10586
2019-07-25 22:32:23 +02:00
8a9c9a9963 PVS/V768: do use enum as bool #10582
Fix win_draw_end invocation, pass HLF symbol explicitly.
2019-07-25 21:57:58 +02:00
36622014c6 Merge #10596 'vim-patch:8.1.{899,903,905,907,908,910,913,1746}'
close #9930
close #10051
2019-07-25 12:00:08 +02:00
0925afcfcf regexp: add function attributes 2019-07-25 03:34:26 -04:00
98fcf66b7a vim-patch:8.1.0913: CI crashes when running out of memory
Problem:    CI crashes when running out of memory.
Solution:   Apply 'maxmempattern' also to new regexp engine.
688b3983d8
2019-07-25 03:02:22 -04:00
52488ea6fb vim-patch:8.1.0910: crash with tricky search pattern
Problem:    Crash with tricky search pattern. (Kuang-che Wu)
Solution:   Check for runnning out of memory. (closes vim/vim#3950)
15bbd6ec87
2019-07-25 02:39:24 -04:00
fb059a1741 vim-patch:8.1.0907: CI tests on AppVeyor are failing
Problem:    CI tests on AppVeyor are failing.
Solution:   Reduce the recursiveness limit for regexp.
5382f12c91
2019-07-25 02:21:32 -04:00
a77e5b3606 vim-patch:8.1.0905: complicated regexp causes a crash
Problem:    Complicated regexp causes a crash. (Kuang-che Wu)
Solution:   Limit the recursiveness of addstate(). (closes vim/vim#3941)
5567ad48b6
2019-07-25 02:04:32 -04:00
8e490b98cc regexp: use fixed types to avoid overflow 2019-07-24 21:50:16 -04:00
33ce6a7f62 Checks for overflow when parsing string to int 2019-07-24 21:43:04 -04:00
43f4e5d5be vim-patch:8.1.0908: can't handle large value for %{nr}v in regexp
Problem:    Can't handle large value for %{nr}v in regexp. (Kuang-che Wu)
Solution:   Give an error if the value is too large. (closes vim/vim#3948)
9403a2168d
2019-07-24 21:43:04 -04:00
9ea449085d vim-patch:8.1.1746: ":dl" is seen as ":dlist" instead of ":delete"
Problem:    ":dl" is seen as ":dlist" instead of ":delete".
Solution:   Do not use cmdidxs2[] if the length is 1. (closes vim/vim#4721)
94f82cbacf
2019-07-24 21:43:04 -04:00
80487b59c9 vim-patch:8.1.0903: struct uses more bytes than needed
Problem:    Struct uses more bytes than needed.
Solution:   Reorder members of regitem_S. (Dominique Pelle, closes vim/vim#3936)
beb7574d6b
2019-07-24 19:46:09 -04:00
2385039623 vim-patch:8.1.0899: no need to check restricted mode for setwinvar()
Problem:    No need to check restricted mode for setwinvar().
Solution:   Remove check_restricted().
e0fb7d1e38
2019-07-24 19:46:09 -04:00
d1faf900b1 coverage: use "cd" with gcovr (#10594)
This makes the invocation compatible for the upcoming gcovr 4.2 release,
and is the correct way of invoking it.

Ref: https://github.com/gcovr/gcovr/commit/a782972#commitcomment-34420728
2019-07-25 01:11:17 +02:00
b8fcf62da9 vim-patch:8.1.1740: exepath() doesn't work for "bin/cat" (#10556)
Problem:    Exepath() doesn't work for "bin/cat".
Solution:   Check for any path separator. (Daniel Hahler, closes vim/vim#4724,
            closes vim/vim#4710)
d08b8c4c04

Fixes https://github.com/neovim/neovim/issues/10554.
2019-07-24 22:23:00 +02:00
3566267e75 vim-patch:8.1.1738: testing lambda with timer is slow (#10590)
Problem:    Testing lambda with timer is slow.
Solution:   Do not test timer accuracy, only that it works. (Daniel Hahler,
            closes vim/vim#4723)
9bc4dde45d
2019-07-24 19:47:41 +02:00
8404e8df20 third-party: download: retry (#10599)
This is meant to handle the common case of failing to download
libtermkey:

    FAILED: cd /home/travis/build/neovim/neovim/deps-downloads/libtermkey && /usr/local/cmake-3.12.4/bin/cmake -DPREFIX=/home/travis/nvim-deps/build -DDOWNLOAD_DIR=/home/travis/build/neovim/neovim/deps-downloads/libtermkey -DURL=http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.21.1.tar.gz -DEXPECTED_SHA256=cecbf737f35d18f433c8d7864f63c0f878af41f8bd0255a3ebb16010dc044d5f -DTARGET=libtermkey -DUSE_EXISTING_SRC_DIR=OFF -P /home/travis/build/neovim/neovim/third-party/cmake/DownloadAndExtractFile.cmake && /usr/local/cmake-3.12.4/bin/cmake -E touch /home/travis/nvim-deps/build/src/libtermkey-stamp/libtermkey-download
    -- file: /home/travis/build/neovim/neovim/deps-downloads/libtermkey/libtermkey-0.21.1.tar.gz
    -- downloading...
         src='http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.21.1.tar.gz'
         dst='/home/travis/build/neovim/neovim/deps-downloads/libtermkey/libtermkey-0.21.1.tar.gz'
         timeout='none'
    CMake Error at /home/travis/build/neovim/neovim/third-party/cmake/DownloadAndExtractFile.cmake:77 (message):
      error: downloading
      'http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.21.1.tar.gz' failed
        status_code: 6
        status_string: "Couldn't resolve host name"
        log: Curl_ipv4_resolve_r failed for www.leonerd.org.uk
      Couldn't resolve host 'www.leonerd.org.uk'
      Closing connection 0

Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
2019-07-24 19:11:27 +02:00
431cf56e2f ci: RunTests: ensure that the logfile gets displayed (#10597)
This is meant to help with test failures where e.g. `busted` itself might
crash or get killed.

Ref: https://github.com/neovim/neovim/issues/10182#issuecomment-514450069
2019-07-24 18:12:55 +02:00
06547cdfc0 sign: REMOVE FEAT_SIGN_ICONS, dead code #10595 2019-07-24 12:17:53 +02:00
451f6046b0 tests: AppVeyor: fix test/functional/ex_cmds/arg_spec.lua (#10598)
For unknown reasons it does not have the trailing space in `:args`
output there anymore:

    [  FAILED  ] test/functional\ex_cmds\arg_spec.lua @ 11: :argument does not restart :terminal buffer
    test/functional\ex_cmds\arg_spec.lua:25: Expected objects to be the same.
    Passed in:
    (string) '
    [term://.//4552:C:\Windows\system32\cmd.exe]'
    Expected:
    (string) '
    [term://.//4552:C:\Windows\system32\cmd.exe] '
    stack traceback:
            test/functional\ex_cmds\arg_spec.lua:25: in function <test/functional\ex_cmds\arg_spec.lua:11>

The test is not about that though, and this can be made less strict by
using `trim()`.  The new test in `test_arglist.vim` for no trailing
newline is OK, and contains trailing spaces.  So this is likely due to
the length of it exceeding the column width already.
2019-07-24 09:31:46 +02:00
733e1a0e73 vim-patch:8.1.1737: :args command that outputs one line gives more prompt
Problem:    :args command that outputs one line gives more prompt.
Solution:   Only output line break if needed. (Daniel Hahler, closes vim/vim#4715)
949f1989cb

Closes https://github.com/neovim/neovim/pull/10147.
2019-07-24 06:14:12 +02:00
e134cc9d4a vim-patch:8.0.1738: ":args" output is hard to read
Problem:    ":args" output is hard to read.
Solution:   Make columns with the names if the output is more than one line.
5d69da462f

vim-patch:8.0.1740: warning for signed-unsigned incompatibility

Problem:    Warning for signed-unsigned incompatibility.
Solution:   Change type from "char *" to "char_u *". (John Marriott)
405dadb63e

Removes ported legacy test that was re-added later.
Ref: https://github.com/neovim/neovim/pull/10147#issuecomment-512609513
2019-07-24 06:09:28 +02:00
8fc93241d6 tests: fix/improve Screen:expect_unchanged (#10577)
Do not sleep before collecting initial state.

Ref: https://github.com/neovim/neovim/pull/10550#issuecomment-513670205
2019-07-24 02:50:24 +02:00
b59a1f7b52 ci: restore accidentally removed config (#10592) 2019-07-24 02:16:09 +02:00
f08d10a0df tests: re-enable "tab drag in tabline to the left moves tab left" (#10588)
Ref: https://github.com/neovim/neovim/pull/4874
2019-07-24 02:12:19 +02:00
5cccfa7c5a Merge #10558 from erw7/fix-text-overrides-line-number2
Windows: Fix text overrides line number
2019-07-23 19:20:07 +02:00
465a0a3c09 env: invalid pointer after os_setenv() #10558 2019-07-23 11:45:38 +02:00
f6e779d939 win/TUI: workaround libuv LF => CRLF conversion #10558
Replace cud1 with \x1b[B because \n is CRLF on Windows (due to libuv).

fix #9461
2019-07-23 11:45:38 +02:00
0d5f629208 Revert "vim-patch:8.0.1723: using one item array size declaration is misleading" (#10583)
This reverts commit 315076a26d.
2019-07-23 05:37:20 +02:00
4aabe4a0d5 build: GetBinaryDeps: move include, fix doc (#10579) 2019-07-22 20:50:30 +02:00
d7274f2417 shell-test: fix REP for count larger than uint8_t (#10581) 2019-07-22 20:49:45 +02:00
324dc0dbc0 PVS/V1019: "readability" warning #10566 2019-07-22 19:45:59 +02:00
1e2af5e39d tests: make TERM=interix test pending (#10576)
Ref: https://github.com/neovim/neovim/issues/10179
Ref: https://github.com/neovim/neovim/pull/9494
2019-07-22 18:49:37 +02:00
184b87ee31 build: fix gcc warnings #10568
gcc version 8.3.0 (Debian 8.3.0-6)

    ../src/nvim/ex_docmd.c: In function ‘commands_array’:
    ../src/nvim/ex_docmd.c:10192:36: warning: ‘%ld’ directive output may be truncated writing between 1 and 19 bytes into a region of size 10 [-Wformat-truncation=]
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
                                        ^~~
    ../src/nvim/ex_docmd.c:10192:37: note: format string is defined here
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
    ../src/nvim/ex_docmd.c:10192:36: note: directive argument in the range [0, 9223372036854775807]
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
                                        ^~~
    ../src/nvim/ex_docmd.c:10192:9: note: ‘snprintf’ output between 2 and 20 bytes into a destination of size 10
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/nvim/ex_docmd.c:10205:36: warning: ‘%ld’ directive output may be truncated writing between 1 and 19 bytes into a region of size 10 [-Wformat-truncation=]
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
                                        ^~~
    ../src/nvim/ex_docmd.c:10205:37: note: format string is defined here
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
    ../src/nvim/ex_docmd.c:10205:36: note: directive argument in the range [0, 9223372036854775807]
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
                                        ^~~
    ../src/nvim/ex_docmd.c:10205:9: note: ‘snprintf’ output between 2 and 20 bytes into a destination of size 10
             snprintf(str, sizeof(str), "%" PRId64, (int64_t)cmd->uc_def);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/nvim/spell.c: In function ‘did_set_spelllang’:
    ../src/nvim/spell.c:1631:61: warning: ‘%s’ directive output may be truncated writing up to 254 bytes into a region of size 84 [-Wformat-truncation=]
                    "autocmd VimEnter * call spellfile#LoadFile('%s')|set spell",
                                                                 ^~
    ../src/nvim/spell.c:2063:25:
             spell_load_lang(lang);
                             ~~~~                                 
    ../src/nvim/spell.c:1630:7: note: ‘snprintf’ output between 57 and 311 bytes into a destination of size 128
           snprintf(autocmd_buf, sizeof(autocmd_buf),
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    "autocmd VimEnter * call spellfile#LoadFile('%s')|set spell",
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    lang);
                    ~~~~~
    ../src/nvim/window.c: In function ‘win_rotate’:
    ../src/nvim/window.c:1780:22: warning: ‘wp2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       wp2->w_pos_changed = true;
                          ^
    ../src/nvim/window.c:1779:22: warning: ‘wp1’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       wp1->w_pos_changed = true;
2019-07-22 12:38:14 +02:00
39549159fe vim-patch:8.1.0706: introduce :redrawtabline #10570
Problem:    Tabline is not always redrawn when something that is used in
            'tabline' changes.
Solution:   Add ":redrawtabline" so that a plugin can at least cause the
            redraw when needed.
e12bab3144
2019-07-22 12:25:07 +02:00
f8684bf6b9 build: remove -Wno-array-bounds workaround #10484
Might not be necessary anymore, at least it is fine on gcc 9.1, and
since the bug is still open/unresolved, something else might have fixed
it.

Ref: 4b81f627c
Ref: #7083
2019-07-22 12:22:53 +02:00
66149ecffe test/helpers: improve pattern with module functions (#10421)
Benefits:

- less lines, especially less results when grepping
- makes it clearer what is exported
2019-07-22 01:13:11 +02:00
8d66b6091b vim-patch:8.1.1724: too much overhead checking for CTRL-C #10564
Problem:    Too much overhead checking for CTRL-C while processing text.
Solution:   Increase BREAKCHECK_SKIP.  Remove the difference for when built
            with the GUI. (suggested by Andy Massimino, closes vim/vim#4708)
b4fe0eb4b4
2019-07-21 23:30:56 +02:00
27fb8933f5 Merge #10561 from justinmk/os_can_exe
jobstart(), system(): use $PATHEXT-resolved exe
2019-07-21 22:58:39 +02:00
1fde79eedf os_can_exe: remove char_u 2019-07-21 20:51:37 +02:00
b08dc3ec19 win: jobstart(), system(): $PATHEXT-resolve exe
Windows: In order for jobstart(['foo']), system(['foo']) to find
"foo.cmd", we must replace "foo" with "foo.cmd" before sending `argv` to
process_spawn().

Rationale: jobstart([…]), system([…]) "executable" semantics should be
consistent with the VimL executable() function.

fix #9569
related: #10554
2019-07-21 20:51:37 +02:00
9d0f8224c9 Merge #10555 from janlazo/vim-8.1.1720
vim-patch:8.1.{856,1720}
2019-07-21 14:40:32 +02:00
a63b95b315 move: assert nonnull wp pointer 2019-07-20 19:51:32 -04:00
54d9ea61ab vim-patch:8.1.0856: when scrolling a window the cursorline is not always updated
Problem:    When scrolling a window other than the current one the cursorline
            highlighting is not always updated. (Jason Franklin)
Solution:   Call redraw_for_cursorline() after scrolling.  Only set
            w_last_cursorline when drawing the cursor line.  Reset the lines
            to be redrawn also when redrawing the whole window.
bbb5f8d4c2
2019-07-20 19:34:06 -04:00
526dbcafd1 vim-patch:8.1.1720: crash with very long %[] pattern
Problem:    Crash with very long %[] pattern. (Reza Mirzazade farkhani)
Solution:   Check for reg_toolong. (closes vim/vim#4703)
2a5b52758b
2019-07-20 17:28:45 -04:00
d20bbc8022 vim-patch:8.1.0789: session sets v:errmsg #10553
Problem:    Sourcing a session sets v:errmsg.
Solution:   Use "%argdel" instead of "argdel *". (Jason Franklin)
555de4e3b2
2019-07-20 19:06:17 +02:00
b764120ee7 test: shell-test.c: "REP" command: flush, wait 1ms #10552
Typically most shell output is the result of non-trivial work, so it
would not blast stdout instantaneously.  To more closely simulate that
typical scenario, change `shell-test REP` to wait 1 millisecond between
iterations.
2019-07-20 18:07:04 +02:00
02e7ef4978 Merge #10550 'screen.lua: expect_unchanged()' 2019-07-20 15:49:49 +02:00
d19d9e4d9e screen.lua: always print keyword-args snapshot 2019-07-20 14:25:07 +02:00
6b45e12d67 screen.lua: expect_unchanged(), get_snapshot()
Factor `get_snapshot()` out of `print_snapshot()`, so that callers can
get a table (for use with `expect()`) instead of the string form.

Try to use this to fix indeterminism in `searchhl_spec.lua`.
  - Since the screen state is collected by `screen:expect_unchanged()`,
    we don't need a deterministic initial state (which would then be
    hardcoded into the test). This allows us to check "did anything
    change in the last N ms?" rather than "did anything change compared
    to a hardcoded screen-state?"
  - This may end up fruitless, because `expect_unchanged()` depends on
    timing to wait for an initial "current state".
2019-07-20 14:25:07 +02:00
7935f6ce35 vim-patch:8.1.0754: preferred column when setting 'cursorcolumn' #10549
Problem:    Preferred column is lost when setting 'cursorcolumn'.
Solution:   Change option flag to P_RWINONLY. (Takayuki Kurosawa,
            closes vim/vim#3806)
177ab9e026
2019-07-20 14:12:56 +02:00
643ba06d4d test: shell-test.c: flush stdout for REP #10548
fix #10534
2019-07-20 12:52:33 +02:00
7f66fdb54d [RFC]vim-patch:8.1.{749,1715} #10545
* vim-patch:8.1.1715: emoji characters are seen as word characters for spelling

Problem:    Emoji characters are seen as word characters for spelling. (Gautam
            Iyer)
Solution:   Exclude class 3 from word characters.
06e6377009

* vim-patch:8.1.0749: error message contains garbage

Problem:    Error message contains garbage. (Dominique Pelle)
Solution:   Use correct pointer to failed expression.
6acc79f5d4
2019-07-20 10:48:45 +02:00
f55c1e4233 reltimefloat(): allow negative result #10544
For "backwards" duration, reltimefloat() should return negative value
like its counterpart reltimestr().

ref bab24a88ab
ref 06af88cd72
ref #10521
fix #10452
2019-07-20 10:46:09 +02:00
afef973262 doc [ci skip] #10383
- test/README.md: document luassert `TableFormatLevel`
- CONTRIBUTING.md: absorb parts of the old "Development tips" wiki page
2019-07-19 21:32:04 +02:00
d5f7099be2 Merge pull request #10541 from bfredl/conversion_getln
refactor: enable -Wconversion for ex_getln.c and use int for Rows/Columns
2019-07-19 20:15:03 +02:00
7e4fd045f9 PVS/V1026: possible overflow in a loop #10529
* pvs/V1026: possible overflow in a loop
* refactor: char_u -> uint8_t
* lint
* remove unused if branch: enc_utf8 is always true
2019-07-19 19:41:57 +02:00
1745e59ac1 Merge #10543 'PVS/V560' 2019-07-19 19:39:46 +02:00
f42bb50392 lint 2019-07-19 12:31:34 -04:00
f1127a33f1 pvs/V560: A part of conditional expression is always true
wp->w_p_list is checked earlier in the same composite if condition
2019-07-19 11:06:40 -04:00
91bbd07417 pvs/V560: A part of conditional expression is always true
c == '\000' is always true because of the if branch it is already in
2019-07-19 10:58:31 -04:00
aa28e070e9 refactor: use int for Columns and Rows 2019-07-19 15:57:19 +02:00
75928101f8 refactor: enable -Wconversion for ex_getln.c 2019-07-19 15:56:38 +02:00
a46fe2e615 option_defs.h: fix incorrect definition #10542 2019-07-19 15:17:31 +02:00
6614543316 test: Force $TEST_FILE to relative path [ci skip] #10535
- Always force TEST_PATH to a relative path.
- Eliminate rel_test_path. (The code simplification is worth the extra
  subdirectory below Xtest_tmpdir/.)
2019-07-19 13:51:18 +02:00
d4e93fedf1 vim-patch:8.1.0740: Tcl test fails (#10540)
Problem:    Tcl test fails.
Solution:   When the argument is empty don't give an error, instead rely on
            the error reporting higher up.
8309b0559d
2019-07-19 11:46:22 +02:00
281d422e71 Merge #10368 from janlazo/vim-8.0.1164
vim-patch:8.0.{755,1146,1164}
2019-07-19 00:39:50 +02:00
572ecdfeed Merge #10052 from janlazo/vim-8.1.0729
vim-patch:8.1.{729,732}
2019-07-19 00:36:56 +02:00
a04e0c8db2 Revert "Downgrade to clang-4.0 to avoid false-positive warnings from clang" [skip appveyor] (#10487)
This reverts commit 2cbac719c3.
2019-07-18 08:49:37 +02:00
ba7ec994ae pvs/V1037: two case branches doing the same thing (#10527) 2019-07-18 03:12:45 +02:00
9412dcb6ae PVS/V1037: suppress warning #10526
* Case branches are semantically different.
* Lint
2019-07-18 03:10:45 +02:00
fdfdc0a228 vim-patch:8.1.0732: cannot build without the eval feature
Problem:    Cannot build without the eval feature.
Solution:   Make a copy of the sourced file name.
ea56e167c8
2019-07-17 20:27:08 -04:00
aa681df25f vim-patch:8.1.0729: there is a SourcePre autocommand event but not a SourcePost
Problem:    There is a SourcePre autocommand event but not a SourcePost.
Solution:   Add the SourcePost autocommand event. (closes vim/vim#3739)
2b6185287a
2019-07-17 20:23:05 -04:00
3d356c14df ci: Travis: use gcc9 with gcov job [skip appveyor] (#10480)
* ci: Travis: use gcc-9 in gcov job

* ci: Travis: use CCACHE_CPP2=1

This is required to avoid warnings with newer gcc/clang.

Follow-up to: https://github.com/neovim/neovim/pull/10533
2019-07-18 01:27:05 +02:00
8499e18615 PVS/V1037: suppress warning #10528
Despite the PVS warning, we do not want to conflate these
cases, they are semantically different.
2019-07-18 01:20:59 +02:00
452ec4ed31 PVS/V1037: redundant switch-case branches #10519
Suppress the warning, the branches are semantically different.
2019-07-18 00:20:06 +02:00
4fc91fe365 tests: fix "system() … prints verbose information" (#10532)
It would previously fail with `set shell=sh` (no slash).

For the test itself we can just use a non-existing (fake) shell, because
it is only about the verbose output.

Ref: https://github.com/neovim/neovim/issues/9330
2019-07-17 23:05:04 +02:00
353b3852fd ci: Travis: ccache: use CCACHE_HASHDIR [skip appveyor]
This is the default since ccache 3.3, but Travis has 3.2.4.

This fixes compiler warnings from macros with later clang/gcc.

Using CCACHE_HASHDIR=1 fixes ccache v3.2.4, but CCACHE_NOHASHDIR=1 does
not break v3.7.1. The real issue/fix appears to be
ccache/ccache@284e3a0, and using the hashdir option seems to only work
around this.

Unblocks https://github.com/neovim/neovim/pull/10480, and
https://github.com/neovim/neovim/pull/10487.

Ref: https://github.com/ccache/ccache/commit/6d9cb3dfdd9
Closes https://github.com/neovim/neovim/pull/10533.
2019-07-17 19:41:19 +02:00
b41507927b build: fix handling of install prefix with CMAKE_EXTRA_FLAGS (#10530)
Append `CMAKE_INSTALL_PREFIX` to any given `CMAKE_EXTRA_FLAGS` always.

Regressed in 5031e3298.

Fixes https://github.com/neovim/neovim/issues/10524.
2019-07-17 16:38:11 +02:00
58dd5fcc01 jobstop(): close channel before process_stop() #10522
fix #9799
regression of #7081
Helped-by: Björn Linse <bjorn.linse@gmail.com>

Problem: :UpdateRemotePlugins (which calls rpcstop()) sometimes crashes:

    remote/host: python3 host registered plugins []
    nvim: ../src/nvim/event/wstream.c:78:
      _Bool wstream_write(Stream *, WBuffer *): Assertion `!stream->closed' failed.
    Aborted (core dumped)

  Order of events (channel 163, see logs below):

    1. Channel's in-stream (0x2ba86c0) is **closed** by `f_rpcstop`..`process_stop`.
    2. `receive_msgpack` parses the channel out-stream (0x2ba8860)
    3. Invokes "nvim_command_output" API method.
    4. Writes result to the **closed** in-stream  => **abort**

  - af993da435 (`receive_msgpack`) tried to hack around same/similar issue.
  - Hack was removed in 5215e3205a.

Solution: in jobstop(), close the channel before process_stop().

Log:

    DEBUG 2019-07-16T20:54:12.191 25159 stream_close:96: closing Stream: 0x2b01a90
    DEBUG 2019-07-16T20:54:12.210 25159 process_spawn:124: new: pid=28407 argv=[/usr/bin/python3]
    DEBUG 2019-07-16T20:54:12.210 25159 rpc_start:72: rpc ch 163 in-stream=0x2ba86c0 out-stream=0x2ba8860
    INFO  2019-07-16T20:54:12.210 25159 channel_create_event:199: new channel 163 (function <SNR>61_on_exit[4]..<SNR>60_job_exit_cb[101]..<SNR>60_decrement_job_count[8]..remote#host#UpdateRemotePlugins[6]..<SNR>31_RegistrationCommands[15]..remote#host#Require[10]..provider#pythonx#Require[13]..provider#Poll:3) : {"id": 163, "client": {}, "mode": "rpc", "stream": "job"}
    DEBUG 2019-07-16T20:54:12.211 25159 log_server_msg:729: RPC ->ch 163: [request]  [0, 1, "poll", []]
    DEBUG 2019-07-16T20:54:12.355 25159 receive_msgpack:227: ch 163: parsing 21 bytes from msgpack Stream: 0x2ba8860
    DEBUG 2019-07-16T20:54:12.355 25159 log_client_msg:766: RPC <-ch 163: [request]  [0, 1, "vim_get_api_info", []]
    DEBUG 2019-07-16T20:54:12.355 25159 RPC: <-ch 163: invoke nvim_get_api_info
    DEBUG 2019-07-16T20:54:12.357 25159 log_server_msg:729: RPC ->ch 163: [response] [1, 1, nil, [163, {"version"=>{"major"=>0, "minor"=>4, }, ...
    DEBUG 2019-07-16T20:54:12.377 25159 receive_msgpack:227: ch 163: parsing 85 bytes from msgpack Stream: 0x2ba8860
    DEBUG 2019-07-16T20:54:12.377 25159 log_client_msg:766: RPC <-ch 163: [request]  [0, 2, "nvim_eval", ["((&number||&relativenumber) ? &numberwidth : 0) + &foldcolumn"]]
    DEBUG 2019-07-16T20:54:12.377 25159 handle_request:359: RPC: scheduled nvim_eval
    DEBUG 2019-07-16T20:54:12.377 25159 log_client_msg:766: RPC <-ch 163: [response] [1, 1, nil, "ok"]
    DEBUG 2019-07-16T20:54:12.378 25159 log_server_msg:729: RPC ->ch 163: [request]  [0, 2, "specs", ["/home/vagrant/.config/nvim/rplugin/python3/__pycache__"]]
    DEBUG 2019-07-16T20:54:12.378 25159 RPC: <-ch 163: invoke nvim_eval
    DEBUG 2019-07-16T20:54:12.379 25159 log_server_msg:729: RPC ->ch 163: [response] [1, 2, nil, 0]
    DEBUG 2019-07-16T20:54:12.379 25159 receive_msgpack:227: ch 163: parsing 5 bytes from msgpack Stream: 0x2ba8860
    DEBUG 2019-07-16T20:54:12.379 25159 log_client_msg:766: RPC <-ch 163: [response] [1, 2, nil, 0]
    DEBUG 2019-07-16T20:54:12.380 25159 log_server_msg:729: RPC ->ch 163: [request]  [0, 3, "specs", ["/home/vagrant/.config/nvim/rplugin/python3/foo.py"]]
    DEBUG 2019-07-16T20:54:12.380 25159 receive_msgpack:227: ch 163: parsing 79 bytes from msgpack Stream: 0x2ba8860
    DEBUG 2019-07-16T20:54:12.380 25159 log_client_msg:766: RPC <-ch 163: [request]  [0, 3, "nvim_command", ["redir =>a |exe "sil sign place buffer=".bufnr('')|redir end"]]
    DEBUG 2019-07-16T20:54:12.381 25159 handle_request:359: RPC: scheduled nvim_command
    DEBUG 2019-07-16T20:54:12.381 25159 RPC: <-ch 163: invoke nvim_command
    DEBUG 2019-07-16T20:54:12.381 25159 log_server_msg:729: RPC ->ch 163: [response] [1, 3, nil, nil]
    DEBUG 2019-07-16T20:54:12.381 25159 receive_msgpack:227: ch 163: parsing 5 bytes from msgpack Stream: 0x2ba8860
    DEBUG 2019-07-16T20:54:12.381 25159 log_client_msg:766: RPC <-ch 163: [response] [1, 3, nil, 0]
    DEBUG 2019-07-16T20:54:12.382 25159 stream_close:95: trace:
      log_callstack at /home/vagrant/neovim/build/../src/nvim/log.c:256
      stream_close at /home/vagrant/neovim/build/../src/nvim/event/stream.c:95
      stream_may_close at /home/vagrant/neovim/build/../src/nvim/event/stream.c:111
      process_stop at /home/vagrant/neovim/build/../src/nvim/event/process.c:230
      f_jobstop at /home/vagrant/neovim/build/../src/nvim/eval.c:12231
      f_rpcstop at /home/vagrant/neovim/build/../src/nvim/eval.c:14533
      call_func at /home/vagrant/neovim/build/../src/nvim/eval.c:6564
      get_func_tv at /home/vagrant/neovim/build/../src/nvim/eval.c:6304
      ex_call at /home/vagrant/neovim/build/../src/nvim/eval.c:2903
      do_one_cmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:2249
      do_cmdline at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:593
      call_user_func at /home/vagrant/neovim/build/../src/nvim/eval.c:22666
      call_func at /home/vagrant/neovim/build/../src/nvim/eval.c:6550
      get_func_tv at /home/vagrant/neovim/build/../src/nvim/eval.c:6304
      eval7 at /home/vagrant/neovim/build/../src/nvim/eval.c:4407
      eval6 at /home/vagrant/neovim/build/../src/nvim/eval.c:4104
      eval5 at /home/vagrant/neovim/build/../src/nvim/eval.c:3985
      eval4 at /home/vagrant/neovim/build/../src/nvim/eval.c:3688
      eval3 at /home/vagrant/neovim/build/../src/nvim/eval.c:3606
      eval2 at /home/vagrant/neovim/build/../src/nvim/eval.c:3537
      eval1 at /home/vagrant/neovim/build/../src/nvim/eval.c:3464
      eval0 at /home/vagrant/neovim/build/../src/nvim/eval.c:3424
      ex_let_const at /home/vagrant/neovim/build/../src/nvim/eval.c:1604
      ex_let at /home/vagrant/neovim/build/../src/nvim/eval.c:1546
      do_one_cmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:2249
      do_cmdline at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:593
      call_user_func at /home/vagrant/neovim/build/../src/nvim/eval.c:22666
      call_func at /home/vagrant/neovim/build/../src/nvim/eval.c:6550
      get_func_tv at /home/vagrant/neovim/build/../src/nvim/eval.c:6304
      ex_call at /home/vagrant/neovim/build/../src/nvim/eval.c:2903
      do_one_cmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:2249
      do_cmdline at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:593
      do_ucmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:5803
      do_one_cmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:2243
      do_cmdline at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:593
      call_user_func at /home/vagrant/neovim/build/../src/nvim/eval.c:22666
      call_func at /home/vagrant/neovim/build/../src/nvim/eval.c:6550
      get_func_tv at /home/vagrant/neovim/build/../src/nvim/eval.c:6304
      ex_call at /home/vagrant/neovim/build/../src/nvim/eval.c:2903
      do_one_cmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:2249
      do_cmdline at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:593
      call_user_func at /home/vagrant/neovim/build/../src/nvim/eval.c:22666
      call_func at /home/vagrant/neovim/build/../src/nvim/eval.c:6550
      get_func_tv at /home/vagrant/neovim/build/../src/nvim/eval.c:6304
      ex_call at /home/vagrant/neovim/build/../src/nvim/eval.c:2903
      do_one_cmd at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:2249
      do_cmdline at /home/vagrant/neovim/build/../src/nvim/ex_docmd.c:593
      call_user_func at /home/vagrant/neovim/build/../src/nvim/eval.c:22666
      call_func at /home/vagrant/neovim/build/../src/nvim/eval.c:6550
      callback_call at /home/vagrant/neovim/build/../src/nvim/eval.c:17917
      channel_callback_call at /home/vagrant/neovim/build/../src/nvim/channel.c:675
      on_channel_event at /home/vagrant/neovim/build/../src/nvim/channel.c:581
      multiqueue_process_events at /home/vagrant/neovim/build/../src/nvim/event/multiqueue.c:147
      nv_event at /home/vagrant/neovim/build/../src/nvim/normal.c:7987
      normal_execute at /home/vagrant/neovim/build/../src/nvim/normal.c:1133
      state_enter at /home/vagrant/neovim/build/../src/nvim/state.c:73
      normal_enter at /home/vagrant/neovim/build/../src/nvim/normal.c:462
      main at /home/vagrant/neovim/build/../src/nvim/main.c:570
      ?? ??:0
      _start at ??:?
    DEBUG 2019-07-16T20:54:12.417 25159 stream_close:96: closing Stream: 0x2ba86c0
    INFO  2019-07-16T20:54:12.417 25159 os_proc_tree_kill:96: sending SIGTERM to process group: -28407
    DEBUG 2019-07-16T20:54:12.417 25159 receive_msgpack:227: ch 163: parsing 31 bytes from msgpack Stream: 0x2ba8860
    DEBUG 2019-07-16T20:54:12.417 25159 log_client_msg:766: RPC <-ch 163: [request]  [0, 4, "nvim_command_output", ["echo a"]]
    DEBUG 2019-07-16T20:54:12.417 25159 handle_request:359: RPC: scheduled nvim_command_output
    DEBUG 2019-07-16T20:54:12.424 25159 RPC: <-ch 163: invoke nvim_command_output
    DEBUG 2019-07-16T20:54:12.424 25159 log_server_msg:729: RPC ->ch 163: [response] [1, 4, [0, "Vim(echo):E121: Undefined variable: a"], nil]
    ERROR 2019-07-16T20:54:12.424 25159 wstream_write:78: xxx stream=0x2ba86c0
    DEBUG 2019-07-16T20:54:12.425 25159 wstream_write:79: trace:
      log_callstack at /home/vagrant/neovim/build/../src/nvim/log.c:256
      wstream_write at /home/vagrant/neovim/build/../src/nvim/event/wstream.c:82
      channel_write at /home/vagrant/neovim/build/../src/nvim/msgpack_rpc/channel.c:407
      request_event at /home/vagrant/neovim/build/../src/nvim/msgpack_rpc/channel.c:383
      multiqueue_process_events at /home/vagrant/neovim/build/../src/nvim/event/multiqueue.c:147
      nv_event at /home/vagrant/neovim/build/../src/nvim/normal.c:7987
      normal_execute at /home/vagrant/neovim/build/../src/nvim/normal.c:1133
      state_enter at /home/vagrant/neovim/build/../src/nvim/state.c:73
      normal_enter at /home/vagrant/neovim/build/../src/nvim/normal.c:462
      main at /home/vagrant/neovim/build/../src/nvim/main.c:570
      ?? ??:0
      _start at ??:?
2019-07-17 11:13:57 +02:00
f96dec4a2c vim-patch:8.1.0715: superfluous redraw_win_later() #10523
Problem:    Superfluous call to redraw_win_later().
Solution:   Remove the call.
6f7e555f74
2019-07-17 11:08:44 +02:00
34c6e5beaf tests: move "busted" dir to "test" (#10518)
* tests: move "busted" dir to "test"

It is used for outputHandlers only, and clearly belongs to the tests.
Use the full module name with the `-o` option to `busted` then for
clarity.

* luacheck

* test/busted/outputHandlers/TAP.lua: use/extend upstream
2019-07-16 22:02:50 +02:00
3a1d3e9ef1 tests: shell-test: use count for REP (#10514)
Also fix V576: use width specification

> Incorrect format. Consider checking the third actual argument of the
> 'sscanf' function. It's dangerous to use string specifier without width
> specification. Buffer overflow is possible.
2019-07-16 21:35:53 +02:00
bab24a88ab viml/profile: revert proftime_T to unsigned type #10521
- reltimestr(): Produce negative value by comparing the unsigned
  proftime_T value to INT64_MAX.

https://github.com/neovim/neovim/issues/10452#issuecomment-511155132
1. The interfaces of nearly all platforms return uint64_t. INT64_MAX is
   only half of that.
2. Low-level interfaces like this typically define that there is no
   fixed starting point. The only guarantees are that it's (a)
   monotonically increasing at a rate that (b) matches real time.

ref 06af88cd72
fix #10452
2019-07-16 20:10:08 +02:00
f31f2d0b22 PVS/V1028: cast operands, not the result #10505 2019-07-16 20:03:08 +02:00
1eea2d236f Merge #10500 from ngortheone/pvs/V1028_misc1 2019-07-16 20:01:50 +02:00
56bc0a8bed PVS/V108: cast operands, not the result #10501 2019-07-16 19:58:30 +02:00
b53b3f7dac Merge #10493 from ngortheone/pvs/V1028_getchar_918 2019-07-16 19:56:30 +02:00
b35ad86024 Merge #10391 from janlazo/vim-8.1.0495
vim-patch:8.1.{495,505,531,533,583,623,630,641,686,715,833,1012,1221,1651}
2019-07-16 19:52:23 +02:00
b9a2b3f014 PVS/V1028: cast operands, not the result #10503 2019-07-16 19:50:01 +02:00
96e87c5a63 lint 2019-07-16 08:32:09 -04:00
6262d82d2f pvs/V1028: cast operands, not the result 2019-07-16 08:28:50 -04:00
583c35714c Merge #10520 'PVS/V1037: redundant case-branches' 2019-07-16 11:32:35 +02:00
6316247da3 PVS/V1028: cast operands, not the result #10502 2019-07-16 11:23:58 +02:00
8a3f8589a3 Merge pull request #10504 from bfredl/hl_def
highlight: expose builtin highlight groups using hl_group_set event
2019-07-16 10:17:29 +02:00
6aab5715c5 third-party: busted 2.0.0-0 (#10517) 2019-07-16 09:15:50 +02:00
64f4ee39aa vim-patch:8.1.0715: superfluous call to redraw_win_later()
Problem:    Superfluous call to redraw_win_later().
Solution:   Remove the call.
6f7e555f74
2019-07-15 23:07:41 -04:00
bf919454eb vim-patch:8.1.0686: when 'y' is in 'cpoptions' yanking for the clipboard changes redo
Problem:    When 'y' is in 'cpoptions' yanking for the clipboard changes redo.
Solution:   Do not use the 'y' flag when "gui_yank" is TRUE. (Andy Massimino,
            closes vim/vim#3760)
5823f84dd0
2019-07-15 23:07:29 -04:00
5be40b9aad vim-patch:8.1.0641: no check for out-of-memory when converting regexp
Problem:    No check for out-of-memory when converting regexp.
Solution:   Bail out when lalloc() returns NULL. (John Marriott)
c57463c9c6
2019-07-15 23:07:29 -04:00
eace147bb0 vim-patch:8.1.0630: "wincmd p" does not work after using an autocmd window
Problem:   "wincmd p" does not work after using an autocmd window.
Solution:   Store "prevwin" in aco_save_T. (Christian Brabandt, closes vim/vim#3690)
a42df5934b
2019-07-15 23:07:29 -04:00
e95945a157 vim-patch:8.1.0623: iterating through window frames is repeated
Problem:    Iterating through window frames is repeated.
Solution:   Define FOR_ALL_FRAMES. (Yegappan Lakshmanan)
3d1491ed23
2019-07-15 23:07:29 -04:00
1c2cfdba88 vim-patch:8.1.0583: using illogical name for get_dict_number()/get_dict_string()
Problem:    Using illogical name for get_dict_number()/get_dict_string().
Solution:   Rename to start with dict_.
8f66717a1f
2019-07-15 23:07:29 -04:00
066ef812c2 vim-patch:8.1.1651: suspend test is flaky on some systems
Problem:    Suspend test is flaky on some systems.
Solution:   Wait for the shell prompt to show. (Yee Cheng Chin, closes vim/vim#4632)
9992244226
2019-07-15 23:07:29 -04:00
71018924fc vim-patch:8.1.0533: screendump tests can be flaky
Problem:    Screendump tests can be flaky.
Solution:   Add VerifyScreenDump to the pattern of flaky tests.
447f6ce8bd
2019-07-15 23:07:29 -04:00
5b8d378923 vim-patch:8.1.0531: flaky tests often fail with a common error message
Problem:    Flaky tests often fail with a common error message.
Solution:   Add a pattern to match an error message indicating a flaky test.
dbc0d2163a
2019-07-15 23:07:29 -04:00
9108256ad4 vim-patch:8.1.1012: memory leak with E461
Problem:    Memory leak with E461.
Solution:   Clear the typeval. (Dominique Pelle, closes vim/vim#4111)
ab89d7ab89
2019-07-15 23:07:29 -04:00
df6354c223 vim-patch:8.1.0833: memory leak when jumps output is filtered
Problem:    Memory leak when jumps output is filtered.
Solution:   Free the filtered name. (Dominique Pelle, closes vim/vim#3869)
d93090f41f
2019-07-15 23:07:29 -04:00
d27175aa28 vim-patch:8.1.1221: filtering does not work when listing marks
Problem:    Filtering does not work when listing marks.
Solution:   Implement filtering marks. (Marcin Szamotulski, closes vim/vim#3895)
ad6dc49a75
2019-07-15 23:07:29 -04:00
5d933310c8 vim-patch:8.1.0505: filter command test may fail if helplang is not set
Problem:    Filter command test may fail if helplang is not set.
Solution:   Set 'helplang' for the test. (James McCoy, closes vim/vim#3591)
bd9a0c611c
2019-07-15 23:07:28 -04:00
263d62f628 vim-patch:8.1.0495: :filter only supports some commands
Problem:    :filter only supports some commands.
Solution:   Add :filter support for more commands. (Marcin Szamotulski,
            closes vim/vim#2856)
f86db78fed
2019-07-15 23:07:28 -04:00
9a5183f22d lint 2019-07-15 21:34:15 -04:00
31d256892e pvs/V1037: two case-branches perform the same action 2019-07-15 21:32:53 -04:00
990f99658b viml/profile: cast os_hrtime() result
Temporary measure to avoid QuickBuild CI failure:

    8:42:54,702 INFO  - Executing post-execute action...
    18:42:54,702 ERROR - Step 'master>buildall>build-node?testNode=freebsd-64>build-and-run-tests>build-and-run-tests-parameterized?buildType=Release>configure-neovim-and-build-nvim' is failed: Failed to run command: mkdir -p build/Release && cd build/Release && cmake -G "Unix Makefiles" -DBUSTED_OUTPUT_TYPE=TAP -DMIN_LOG_LEVEL=3 -DCMAKE_BUILD_TYPE=Release -DTRAVIS_CI_BUILD=ON ../.. && gmake VERBOSE=1 nvim unittest-prereqs functionaltest-prereqs
    Command return code: 2
    Command error output: /usr/home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/profile.c:70:27: error: implicit conversion changes signedness: 'proftime_T' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion]
    STRICT_ADD(os_hrtime(), nsec, &rv, int64_t);
    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
    /usr/home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/assert.h:150:26: note: expanded from macro 'STRICT_ADD'
    do { *(c) = (t)((a) + (b)); } while (0)
    ^
    1 error generated.
    gma...
2019-07-16 02:47:50 +02:00
0156e6b810 PVS/V781: suppress false positive #10516 2019-07-16 02:30:31 +02:00
ec81cfb406 PVS/V1028: cast operands, not the result #10496 2019-07-16 02:27:25 +02:00
8df20ff562 lint 2019-07-15 20:10:35 -04:00
dc0d021d9f pvs/V1028: cast operands, not the result 2019-07-15 19:59:41 -04:00
b06f29318d Fix missing CursorHoldI events (#3758)
Fixes https://github.com/neovim/neovim/issues/3757.
2019-07-16 01:35:43 +02:00
046deeeaa1 PVS/V1028: cast operands, not the result #10507 2019-07-16 01:01:12 +02:00
de3e2f051e PVS/V1028: cast operands, not the result #10498
The + 1 can be removed. It was used for current_screenline, which
now is dedicated linebuf_char buffer.
2019-07-16 00:55:10 +02:00
31f879983f third-party: use CXX only for BuildGperf (#10512)
This allows to build deps without g++ when not using the bundled gperf.

> make deps DEPS_CMAKE_FLAGS='-DUSE_BUNDLED_GPERF=0'
2019-07-15 22:27:29 +02:00
519382646b Fix is_executable_in_path() on Windows (#10468)
* Fix problem that 1byte extra memory was allocated in is_executable_in_path

* Revert "Revert "tests: executable_spec: enable pending test #10443" (#10454)"

This reverts commit 13fbeda0e5.
2019-07-15 17:39:34 +02:00
be949d6c9d build: propagate sysroot to C++ deps (gperf) #10491 2019-07-15 11:34:45 +02:00
63ecfc97ef PVS/V590: redundant condition #10510 2019-07-15 10:52:38 +02:00
5a32db9ad4 PVS/V547: expression is always false #10511 2019-07-15 10:47:35 +02:00
78f36fcf8c PVS/V1028: cast operands, not the result #10508
fix #10508
2019-07-14 22:16:44 +02:00
47d53d66bd PVS/V1028: cast operands, not the result #10508 2019-07-14 21:03:06 +02:00
37e7e7d56d gitignore: ignore idea/clion (#10494) 2019-07-14 20:50:17 +02:00
c38862acea checkhealth: try yarn if npm is missing #10490
fixes #10489
2019-07-14 20:48:53 +02:00
452112ae38 PVS/V1028 ugrid.c:76 (#10495)
* code review
2019-07-14 15:46:07 +02:00
857b29bdd8 highlight: expose builtin highlight groups using hl_group_set event 2019-07-14 13:26:40 +02:00
1e47e3f599 Merge pull request #10497 from bfredl/synlist
messages: fix missing newlines in execute("syn list").
2019-07-14 13:11:56 +02:00
4c6e62d056 syntax: refactor syn_list_header to not use magic value 2019-07-14 09:31:49 +02:00
c2b3cc970c syntax: fix missing newlines in execute("syn list"). fixes #10467 2019-07-14 09:31:45 +02:00
b3140fa594 gitignore: ignore idea/clion 2019-07-13 12:38:16 -04:00
6f944d36cf Merge pull request #10492 from bfredl/blend_doublewidth
floats: fix 'winblend' on top of doublewidth chars.
2019-07-13 16:09:25 +02:00
cb9e0a051f floats: fix 'winblend' on top of doublewidth chars.
The interaction between 'winblend' and doublewidth chars in the background
does not look very good. But check no chars get incorrectly placed
at least.

Also check that hidden EndOfBuffer region (from style="minimal") blends
correctly.
2019-07-13 14:27:06 +02:00
4013f67053 viml/profile: revert gettimeofday() #10488
e2ce5ff9d6 was proven to be bogus, so revert it.

close #10328
ref #10356
ref #10452
2019-07-13 12:37:58 +02:00
e1fae8f1fe Merge #10435 from Shougo/vim-8.1.1610 2019-07-13 12:36:32 +02:00
06826139e1 PVS/V547: dead code #10459 2019-07-13 12:30:52 +02:00
4731027447 tests: use vim.inspect (#10485)
The inspect modules is vendored as `vim.inspect`, and therefore it makes
sense to use this in tests also.

Ref: https://github.com/neovim/neovim/issues/6580
Ref: https://github.com/neovim/neovim/commit/bb3aa824b
2019-07-13 00:50:52 +02:00
108eb4201f vim-patch:8.1.1660: assert_fails() inside try/catch #10472
Problem:    Assert_fails() does not fail inside try/catch.
Solution:   Set trylevel to zero. (Ozaki Kiichi, closes vim/vim#4639)
7780e5c1c5
2019-07-13 00:09:05 +02:00
e682d799fa build: fix check_c_compiler_flag for -Wno-… (#10483)
`check_c_compiler_flag(-Wno-doesnotexist …)` is successful always,
apparently for all "no-" prefixes.

Therefore check for the flag itself (without "no-" prefix).

I am seeing a warning if the source fails to compile:

> cc1: warning: unrecognized command line option ‘-Wno-meh’

Which is turned into an error with `-Werror`:

> cc1: error: unrecognized command line option ‘-Wno-meh’ [-Werror]

But when it compiles successfully, there is no warning/error.

gcc (GCC) 9.1.0.
2019-07-12 22:42:44 +02:00
ec66d2eecd oldtest: more compact output with "clean" target (#10477)
Previously it would be displayed across multiple lines (with the escaped
newlines), while this makes it display in a single line.
2019-07-12 15:15:15 +02:00
dd94165f4e pvscheck.sh: Remove --verbose flag #10473
pvscheck.sh gives error:
    Flag could not be matched: verbose
2019-07-12 11:36:19 +02:00
6eab3b9250 vim-patch:8.1.1173: suspend test has duplicated lines (#10466)
Problem:    Suspend test has duplicated lines.
Solution:   Use a function.
a8356bc173
2019-07-11 12:20:36 +02:00
777cc6f98a ci: AppVeyor: do not install unibilium system-wide (#10464)
Initially added in 685ca180f, but gets built via third-party anyway by now.
2019-07-10 17:28:35 +02:00
564d415d20 build: BuildLuv: set/pass WITH_LUA_ENGINE (#10449)
Ref: https://github.com/neovim/neovim/pull/10438
2019-07-09 21:55:01 +02:00
c515b5c1f1 scripts/stripdecls.py #10458
Remove the `only_static = False` which clobbers the `--static`
CLI argument.
2019-07-09 20:06:52 +02:00
03a0226221 build: LibUV: required version: 1.28.0 (#10456)
For uv_gettimeofday.
2019-07-09 18:55:16 +02:00
7cf7c0a0b8 Merge pull request #9575 from bfredl/redrawdebug
ui: implement better redrawdebug for the compositor
2019-07-09 17:56:30 +02:00
48a5897ec4 bundle: update libuv: v1.29.1 => v1.30.0 (#10365)
- fs: fix uv_fs_copyfile if same src and dst
- build, core, unix: add support for Haiku
- unix: make uv_cwd() report UV_ENOBUFS
- unix: make uv_fs_read() fill all buffers
2019-07-09 15:45:43 +02:00
0da7b67ef9 Merge pull request #10457 from bfredl/dwfloat
compositor: handle float overlapping left half of doublewidth char
2019-07-09 15:42:02 +02:00
2c2f160a27 ui: add 'redrawdebug' option for flexible debugging of redrawing 2019-07-09 15:13:24 +02:00
4af1ada9ef compositor: handle float overlapping left half of doublewidth char 2019-07-09 14:46:58 +02:00
06af88cd72 viml/reltime(): allow negative result #10453
- define proftime_T as signed integer
- profile_sub(): allow negative result

closes #10452
2019-07-09 12:08:54 +02:00
652be3cb00 eval.c: clang/"Dead assignment" #10446 2019-07-09 12:06:14 +02:00
13fbeda0e5 Revert "tests: executable_spec: enable pending test #10443" (#10454)
This reverts commit b53c483a4a.
2019-07-09 11:46:23 +02:00
42bdccdf6c Merge pull request #10234 from bfredl/resizefloat
window: allow resize wincmds for floats
2019-07-08 19:50:43 +02:00
d11a146516 window: allow resize wincmds for floats 2019-07-08 19:45:57 +02:00
c07f266c5b tests: ex_terminal_spec: add test for previous leak (#10450)
Closes https://github.com/neovim/neovim/pull/4766.
2019-07-08 18:42:52 +02:00
44e150bd46 ci: Travis: use minimum supported CMake in one job (#10445) 2019-07-08 12:53:43 +02:00
71e0768e08 make all *.h linguist-language as C file #10442 2019-07-08 10:51:41 +02:00
524fe6205d Merge pull request #10090 from bfredl/floatpopup
api/window: add style="minimal" flag to disable unwanted UI features for simple floats
2019-07-07 21:35:55 +02:00
28a86608a8 CI: improve gcov handling #10404
- Move __gcov_flush to process_spawn, for more reliable coverage
  tracking of subprocesses
- Travis: use GCOV_ERROR_FILE
- codecov: use "-X fix" to skip "fixing" uploaded coverage data; it
  should be handled by codecov's backend instead.
- AppVeyor: no $PATH mangling, which breaks with the improved coverage tracking
  due to missing .dll in PATH.
2019-07-07 21:09:37 +02:00
ef3e32d57e api/window: add style="minimal" flag to nvim_open_win() 2019-07-07 20:52:15 +02:00
38342d75f6 ci: fix/improve Travis cache handling [skip appveyor] (#10412)
This is meant to not fall back to using the cache for the "master"
target branch, for release pull requests (targeting not "master").

(Travis builds the cache key based on all (explicit) job environment
variables)
2019-07-07 18:07:01 +02:00
b53c483a4a tests: executable_spec: enable pending test #10443
Should hopefully work now after efc6d9951b.
2019-07-07 13:05:52 +02:00
eb2509aef9 build: fix GetCompileFlags for CMake #10444
Ref: https://github.com/neovim/neovim/pull/10363#issuecomment-508916959
2019-07-07 13:01:38 +02:00
8c8961d9a2 vim-patch:8.0.1164: changing StatusLine highlight does not always work
Problem:    Changing StatusLine highlight while evaluating 'statusline' may
            not change the status line color.
Solution:   When changing highlighting while redrawing don't cause another
            redraw. (suggested by Ozaki Kiichi, closes vim/vim#2171, closes vim/vim#2120)
65ed136844
2019-07-06 09:34:00 -04:00
6012e4a52c vim-patch:8.0.1146: redraw when highlight is set with same names
Problem:    Redraw when highlight is set with same names. (Ozaki Kiichi)
Solution:   Only free and save a name when it changed. (closes vim/vim#2120)
452030e530
2019-07-06 09:31:39 -04:00
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
1b99aa8c53 Merge #10394 from janlazo/vim-8.1.1614
vim-patch:8.1.{1614,1632,1634,1639}
2019-07-06 12:33:51 +02:00
b7ca478e10 func_clear_items: use XFREE_CLEAR #10436
Follow-up to https://github.com/neovim/neovim/pull/10428#discussion_r300813498
2019-07-06 12:22:20 +02:00
b9474b0641 Fix lint failed 2019-07-06 17:51:02 +09:00
85164b28cb Fix errors 2019-07-06 17:18:25 +09:00
5f7e0531c1 vim-patch:8.1.1611: bufadd() reuses existing buffer without a name
Problem:    Bufadd() reuses existing buffer without a name.
Solution:   When the name is empty always create a new buffer.
892ae723ab
2019-07-06 17:11:27 +09:00
3f6346b732 vim-patch:8.1.1610: there is no way to add or load a buffer without side effects
Problem:    There is no way to add or load a buffer without side effects.
Solution:   Add the bufadd() and bufload() functions.
15e248e37f
2019-07-06 17:09:56 +09:00
6f924880c7 vim-patch:8.1.1639: changing an autoload name into a file name is inefficient
Problem:    Changing an autoload name into a script file name is inefficient.
Solution:   Remember the last replaced #. (Ozaki Kiichi, closes vim/vim#4618)
28fc247f8d
2019-07-05 22:13:27 -04:00
255d189089 vim-patch:8.1.1634: terminal test fails when term_getansicolors() is missing
Problem:    Terminal test fails when term_getansicolors() is missing.
            Diff test fails without +rightleft.  (Dominique Pelle)
Solution:   Check if term_getansicolors() is supported. (closes vim/vim#4597)
981d9dc8f3
2019-07-05 21:26:47 -04:00
18ce2d3039 vim-patch:8.1.1632: build with EXITFREE but without +arabic fails
Problem:    Build with EXITFREE but without +arabic fails.
Solution:   Rename the function and adjust #ifdefs. (closes vim/vim#4613)
48ac671fe5
2019-07-05 21:26:46 -04:00
8062e6ff88 vim-patch:8.1.1614: 'numberwidth' can only go up to 10
Problem:    'numberwidth' can only go up to 10.
Solution:   Allow up to 20. (Charlie Stanton, closes vim/vim#4584)
f8a0712655
2019-07-05 21:26:46 -04:00
3c860e25e9 vim-patch:8.1.0229: crash when dumping profiling data #10428
Problem:    Crash when dumping profiling data.
Solution:   Reset flag indicating that initialization was done.
79c2ad50b8
2019-07-05 22:00:28 +02:00
7535f843cd termdebug.vim: vertical layout #10424 2019-07-05 20:45:26 +02:00
48efafc81c Merge pull request #10398 from bfredl/resizeautocmd
screen: disable redrawing inside VimResized
2019-07-05 20:27:01 +02:00
e7d49dcfb3 Merge pull request #10293 from bfredl/hi_msg
highlight: show "hi Group" message correctly when not using the screen
2019-07-05 18:08:40 +02:00
51a451570d screen: disable redrawing inside VimResized
Note: test doesn't fail on master. I cannot reproduce the glitches with
-u NONE, probably it requires interfering events. But add some coverage
for these checks at least.
2019-07-05 16:58:53 +02:00
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
0d82aaf586 build: FindLibIntl: fix warning about CMP0075 (#10427)
* build: FindLibIntl: fix warning about CMP0075

The common pattern elsewhere to set this only during the check, and here
it was not unset, resulting in a warning later (on Alpine 3.10):

    -- Found Iconv
    -- Looking for pthread.h
    CMake Warning (dev) at /usr/share/cmake/Modules/CheckIncludeFile.cmake:80 (message):
      Policy CMP0075 is not set: Include file check macros honor
      CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
      details.  Use the cmake_policy command to set the policy and suppress this
      warning.

      CMAKE_REQUIRED_LIBRARIES is set to:

        /usr/lib/libintl.so

      For compatibility with CMake 3.11 and below this check is ignoring it.
    Call Stack (most recent call first):
      /usr/share/cmake/Modules/FindThreads.cmake:105 (CHECK_INCLUDE_FILE)
      CMakeLists.txt:482 (find_package)
    This warning is for project developers.  Use -Wno-dev to suppress it.

    -- Looking for pthread.h - found

* build: remove lists / REMOVE_ITEM around check_c_source_compiles
2019-07-05 12:19:13 +02:00
7836925c3b Merge pull request #10425 from blueyed/luarocks-build
BuildLuarocks.cmake: use ROCKS_DIR
2019-07-05 12:18:23 +02:00
c67315c7b5 BuildLuarocks: improve comments
I found it often irritation to see the same comment about "DEPENDS"
there all the time.  This uses the LuaRocks rock name as a comment
instead (which is hard to parse from the recipe), moves the note about
DEPENDS to the top (extended), and fixes/aligns some whitespace.
2019-07-05 04:10:30 +02:00
8eac3f63a2 BuildLuarocks.cmake: use ROCKS_DIR
With LuaRocks 3 it will include the version, and this will make the
upgrade easier then.
It also makes sense to factor this out in general for clarity already.

Pulled out of https://github.com/neovim/neovim/pull/10292.
2019-07-05 03:55:08 +02:00
84c1d3aede .gitignore 2019-07-04 21:11:29 +02:00
68c594b10c tests: loop_spec: retry (#10413)
Flaky test (osx):

    [  FAILED  ] ...is/build/neovim/neovim/test/functional/lua/loop_spec.lua @ 23: vim.loop timer
    ...is/build/neovim/neovim/test/functional/lua/loop_spec.lua:56: Expected objects to be the same.
    Passed in:
    (number) 0
    Expected:
    (number) 2
    stack traceback:
            ...is/build/neovim/neovim/test/functional/lua/loop_spec.lua:56: in function <...is/build/neovim/neovim/test/functional/lua/loop_spec.lua:23>

It was bumped from sleeping for 20ms to 50ms in d33aaa0f5f already.
2019-07-04 16:42:10 +02:00
0c639e8777 build: use -fdiagnostics-color=always with Ninja (#10419)
"auto" does not work, since Ninja does not appear as a TTY to gcc/clang,
but handles stripping escape codes itself when output is not to a TTY.

Ref: https://github.com/ninja-build/ninja/blob/ca041d88f4d6/src/build.cc#L158-L169
2019-07-04 15:24:33 +02:00
05a17e419a tests: fix flaky ':digraphs displays digraphs' (#10406) 2019-07-04 15:22:59 +02:00
5835398152 Merge pull request #10414 from blueyed/luacheck
Improve luacheck integration, fix more issues.
2019-07-04 15:21:44 +02:00
f668f0afb2 build: FindLuaJit: handle luajit-2.1 include path suffix (#10418) 2019-07-04 15:19:25 +02:00
fd8d26a713 third-party: fix warning with (un)bundled libtermkey/unibilium (#10416)
Fixes warning with:

> cmake -S third-party -B .deps -DUSE_BUNDLED=OFF -DUSE_BUNDLED_UNIBILIUM=0 -DUSE_BUNDLED_LIBTERMKEY=1
> The dependency target "unibilium" of target "libtermkey" does not exist.
2019-07-04 15:17:59 +02:00
efc6d9951b win,fs.c: Fix is_executable_ext #10209
Fix issue that increment expression is executable and pointer ext
pointing out of the buffer, if the pointer ext points to the terminating
NUL.

* Change termination condition judgment to one place
* Change first condition judgment
Change to not evaluate *(ext -1) in the first condition judgment.

* Change to use copy_option_part instead of STRLCPY
2019-07-04 14:45:51 +02:00
32361a1245 Improve luacheck setup [skip appveyor]
- Move .luacheckrc to root, add read_globals=vim
- Simplify lualint target, run it on all lua files
- Lint preload.lua, but ignore W211
- Remove testlint target, included in lualint (and lint)
- Clean up .luacheckrc
2019-07-04 12:29:54 +02:00
571b2c5e7b Fix luacheck errors for all Lua source files 2019-07-04 06:59:44 +02:00
99b870d61c build: bundle: clean binary dir with new downloads (#10411)
This is required to (re)build e.g. libluv when the version changes
(which triggers a new download).

With `make deps`, changing the `LUV_URL`/`LUV_SHA256`, and `make deps` again:

Before:

> Up-to-date: /home/daniel/Vcs/neovim/.deps/usr/lib/libluv.a

After:

> Installing: /home/daniel/Vcs/neovim/.deps/usr/lib/libluv.a

See with https://github.com/neovim/neovim/pull/10358 - where .deps
contained libluv 1.29, the merge updates it to 1.30, but then it failed
to link because `libluv.a` is considered to be up-to-date (after
downloading the new version).

Note that header files get installed, since they have the original time
stamp, but `libluv.a` is being generated (does not use the timestamp
from the archive here, but needs to get rebuild).

It could be argued that the build system of the included project should
catch/handle this, but it seems to be good practice to clean the binary
/ build dir with a new download to start from scratch.

Ref: https://gitlab.kitware.com/cmake/cmake/issues/19452

Also fixes cmake/BuildLuv / luv-static: use name with -DTARGET for
download command, and pass (shared) `SRC_DIR` explicitly instead.
2019-07-04 02:37:29 +02:00
f6298aba82 tests: shell-test: add INTERACT mode (#10405)
Use it to improve ls_spec: it should not use the user's real shell for
performance and other reasons.
2019-07-03 22:49:13 +02:00
0dc73b87f1 tests: executable_spec: keep assertion (#10408)
It was moved to become pending in 18127f64c, but the assertion should be
kept.
2019-07-03 12:56:03 +02:00
e48257e63e tests: fix/improve "TUI background color" tests (#10229)
- Ensure the opposite of the expected bg is active.
- Improves performance: 1.2s instead of 4.5s.
2019-07-03 03:37:19 +02:00
d42bbf363e ci: Travis: do not close fold on failure [skip ci]
This makes it easier to inspect the test failure, without having to open
two folds (typically), and scrolling around.
2019-07-03 00:43:22 +02:00
61790c7b3c build: Fix rule of build/.ran-third-party-cmake #10402
In order that `$(DEPS_BUILD_DIR)/Makefile` exists under parallel make
2019-07-03 00:25:49 +02:00
5b94a2977a tests: fix flaky "TermClose event triggers when fast-exiting terminal job stops" (#10377)
[  ERROR   ]...neovim/neovim/test/functional/autocmd/termclose_spec.lua @ TermClose event triggers when fast-exiting terminal job stops
    test/functional/helpers.lua:96: Vim(call):E900: Invalid channel id

    stack traceback:
            test/functional/helpers.lua:96: in function 'request'
            test/functional/helpers.lua:254: in function 'command'
            ...neovim/neovim/test/functional/autocmd/termclose_spec.lua:23: in function <...neovim/neovim/test/functional/autocmd/termclose_spec.lua:20>
2019-07-02 22:44:11 +02:00
1c45ba462b tests: fix flaky "terminal (with fake shell) with not arguments …" (#10401)
`retry()` would only try it three times (waiting for 20ms in between),
despite the large timeout.

Fixes https://github.com/neovim/neovim/issues/10265.
2019-07-02 19:31:36 +02:00
66f7e8e8e6 Merge pull request #10397 from bfredl/cmdcleanup
cmdline: remove local variables i and j from command_line_state
2019-07-02 18:17:25 +02:00
2afaf175f1 cmdline: remove local variables i and j from command_line_state 2019-07-02 10:19:39 +02:00
097f85ae6c defaults: wildoptions=pum,tagfile #10384
ref #6289
2019-07-01 23:59:24 +02:00
ff95e62ff8 test/old: pass Test_recover_root_dir on Windows (#10207)
* Revert "oldtests: win: keep set dir=/"

This reverts commit 714e0f8bf0.

* test/old: set swap directory to non-existent drive

Appveyor uses Administrator user so it can write anywhere in C:\\.
Neovim creates a directory for the swap file
if the directory does not exist.
D:\\ is the backup/recovery drive so use F:\\ invoke error E303.
2019-07-01 21:51:00 +02:00
5e4b93a38f Merge pull request #10389 from bfredl/luafloat
api/lua: make nvim_execute_lua use native lua floats, not special tables
2019-07-01 20:28:00 +02:00
6c5a6ab92d vim-patch:8.1.0452: MS-Windows: not finding intl.dll #10388
Problem:    MS-Windows: not finding intl.dll.
Solution:   Also find intl.dll next to libintl.dll. (Ken Takata)
7554c548a4
2019-07-01 20:14:00 +02:00
6d2b11d76c Merge pull request #10387 from bfredl/wildpos
cmdline: correct the column position of wildoptions=pum popupmenu
2019-07-01 19:50:17 +02:00
6ee05536ca api/lua: make nvim_execute_lua use native lua floats, not special tables
Rationale: the purpose of nvim_execute_lua is to simply call lua code with lua
values. If a lua function expects a floating point value, it should be enough
to specify a float as argument to nvim_execute_lua.

However, make sure to preserve the existing roundtripping behavior of
API values when using `vim.api` functions. This is covered by existing
lua/api_spec.lua tests.
2019-07-01 18:44:58 +02:00
b98d1cf68b cmdline: correct the column position of wildoptions=pum popupmenu
- position might get invalid with "longest" match
- position might be wrong when completed pattern ends in "/"
2019-07-01 18:24:00 +02:00
740fb337dd build: fix warning with passively available libintl (#10380)
Since 0364f51 it would display a warning.
2019-07-01 03:32:52 +02:00
6e06f4795a build: LibLUV: update required version [ci skip] (#10381)
Required after d33aaa0f5.

Does not really make a difference, since the VERSION is not handled with
our FindLibLUV (due to missing pkg-config information
(https://github.com/luvit/luv/issues/354)).
2019-07-01 03:26:05 +02:00
10a533e9d4 Merge pull request #10316 from bfredl/cb_safety
luv callbacks: throw error on deferred methods instead of crashing
2019-06-30 16:03:58 +02:00
3b504e7c8d fileio.c: eliminate set_file_time() #10357
Introduce os_file_settime(), remove cruft.
2019-06-30 16:00:35 +02:00
fdd8dcae01 man.vim: Handle ANSI escape sequences with ":" #10267
closes #10267
2019-06-30 15:25:49 +02:00
99f24dfbed make vim.loop == require'luv'
This avoids initializing libluv a second time if a plugin invokes
require'luv'. It is probably not an issue, but better to be safe.
2019-06-30 15:16:32 +02:00
d33aaa0f5f libluv: use luv_set_callback to control callback execution
Disable the use of deferred API functions in a fast lua callback
Correctly display error messages from a fast lua callback
2019-06-30 13:13:08 +02:00
7030d7daf1 rename: FUNC_API_ASYNC => FUNC_API_FAST 2019-06-30 11:33:01 +02:00
0480e991d2 :digraphs : check for CTRL-C less often #10376
No need to do this so frequently.
2019-06-30 02:33:50 +02:00
72ae0a6e5e Makefile: CMAKE_INSTALL_PREFIX: skip parsing CMAKE_EXTRA_FLAGS if set (#10374)
Fixes:

>  Recursive variable 'CMAKE_EXTRA_FLAGS' references itself (eventually).  Stop.
2019-06-30 01:29:10 +02:00
0364f517bb build: update cmake/LibFindMacros.cmake (#10355)
Source: d6b5e94625/LibFindMacros.cmake
2019-06-30 01:12:38 +02:00
75be0f0bbb Makefile: move all target to the top [ci skip] #10375
Fixes "make: Nothing to be done for 'checkprefix'." after 5031e3298.
2019-06-30 00:13:53 +02:00
2ef6f28e11 doc [ci skip] #10177
ref #10278 #10279 #10353
2019-06-30 00:09:45 +02:00
52fced6090 build: update some test dependencies (#10339)
* build: update some test dependencies

* luacheck ignores

* BuildLua: add ${BUSTED} to depends for ${BUSTED_LUA}

This is required to rebuild it when busted gets updated.
2019-06-29 22:25:00 +02:00
9875372607 build: FindLibLUV: use PkgConfig (#10359)
Apparently forgotten in c83926cd0.

- Also LIMIT_SEARCH was never used.
- Also add LIBLUV_DEFINITIONS, as used with other Find modules.
2019-06-29 21:49:49 +02:00
5031e32986 Makefile: revisit/improve checkprefix handling (#10348)
Main improvement: do not error out, but re-run CMake in case
CMAKE_INSTALL_PREFIX changed, and only check it for "install".

- only look at CMAKE_EXTRA_FLAGS via shell if not empty
- add CMAKE_INSTALL_PREFIX to CMAKE_EXTRA_FLAGS (not CMAKE_FLAGS), to
  override it being set in CMAKE_EXTRA_FLAGS from local.mk
- use an empty "checkprefix" target if CMAKE_INSTALL_PREFIX is not
  provided
- skip checking of cached value without build/.ran-cmake; it will be run
  then anyway
- only use it with "install" target; it is only relevant there
- do not error, but re-run CMake (by removing the stamp file)
2019-06-29 21:48:40 +02:00
2d4a37ebab :ls : show "R", "F" for terminal-jobs #10370
This matches Vim behavior. From `:help :ls` :

    R    a terminal buffer with a running job
    F    a terminal buffer with a finished job
    ?    a terminal buffer without a job: `:terminal NONE`

TODO: implement `:terminal NONE`.

ref #10349
2019-06-29 21:03:38 +02:00
c207095445 build: CMake: do not set CMP0059 to old (#10363)
Keeps using add_definitions for compatibility with older CMake.

Newer CMake (3.12) would have `add_compile_definitions`, but it is not
required, since `add_defitions` was meant to be used for
compile/preprocessor definitions initially anyway.

Ref: https://github.com/neovim/neovim/pull/4389
2019-06-29 20:37:48 +02:00
39ba35b38d cmake/RunTests.cmake: fix TEST_TAG/TEST_FILTER [ci skip] #10371
Followup to f1f9a2f97.
The mentioned example there did not work after all, likely due to
changing quoting during PR review.
2019-06-29 19:15:48 +02:00
e9f1bdabb8 tests: fix flaky "timers can be stopped from the handler" (#10364)
Seen on Travis (osx):

    [ RUN      ] timers can be stopped from the handler: FAIL
    .../build/neovim/neovim/test/functional/eval/timer_spec.lua:167: Expected objects to be the same.
    Passed in:
    (number) 2
    Expected:
    (number) 3
    stack traceback:
            .../build/neovim/neovim/test/functional/eval/timer_spec.lua:167: in function <.../build/neovim/neovim/test/functional/eval/timer_spec.lua:153>
2019-06-29 17:53:09 +02:00
e2ce5ff9d6 viml/profile: switch to uv_gettimeofday() #10356
Performance of high-resolution time (clock_gettime via uv_hrtime) is
expensive on some systems.  For profiling VimL, syntax, etc., we don't
care about nanosecond-precision and monotonicity edge-cases, so avoid
uv_hrtime().

closes #10328

From the uv__hrtime() source:
0cdb4a5b4b/src/unix/linux-core.c (L442-L462)

    /* Prefer CLOCK_MONOTONIC_COARSE if available but only when it has
     * millisecond granularity or better.  CLOCK_MONOTONIC_COARSE is
     * serviced entirely from the vDSO, whereas CLOCK_MONOTONIC may
     * decide to make a costly system call.
     */

This micro-benchmark (Debug build) shows negligible differences on my
system:

    #include <sys/time.h>
    ...

    proftime_T tm = profile_start();
    int trials = 999999;
    int64_t t = 0;
    struct timeval tv;
    for (int i = 0; i < trials; i++) {
      t += gettimeofday(&tv,NULL);
    }
    tm = profile_end(tm);
    ILOG("%d trials of gettimeofday: %s", trials, profile_msg(tm));
    tm = profile_start();
    for (int i = 0; i < trials; i++) {
      t += os_hrtime();
    }
    tm = profile_end(tm);
    ILOG("%d trials of os_hrtime: %s", trials, profile_msg(tm));
    tm = profile_start();
    for (int i = 0; i < trials; i++) {
      t += os_utime();
    }
    tm = profile_end(tm);
    ILOG("%d trials of os_utime: %s", trials, profile_msg(tm));
    ILOG("%zu", t);
2019-06-29 16:39:22 +02:00
23a9794920 Merge #10369 from janlazo/vim-8.0.1202
vim-patch:8.0.{1202,1259}
2019-06-29 13:51:50 +02:00
489d3b084f vim-patch:8.0.1259: search test can be flaky
Problem:    Search test can be flaky.
Solution:   Use WaitFor() instead of a delay.  Make it possible to pass a
            funcref to WaitFor() to avoid the need for global variables.
            (James McCoy, closes vim/vim#2282)
13deab8d08
2019-06-28 23:53:28 -04:00
bddc4dc0ed vim-patch:8.0.1238: incremental search only shows one match
Problem:    Incremental search only shows one match.
Solution:   When 'incsearch' and and 'hlsearch' are both set highlight all
            matches. (haya14busa, closes vim/vim#2198)
2e51d9a097
2019-06-28 23:47:16 -04:00
805d6e450a vim-patch:8.0.1202: :wall gives an errof for a terminal window
Problem:    :wall gives an errof for a terminal window. (Marius Gedminas)
Solution:   Don't try writing a buffer that can't be written. (Yasuhiro
            Matsumoto, closes vim/vim#2190)
059db5c29f
2019-06-28 22:22:59 -04:00
c696fcdcaa build: remove patch: luv-Add-missing-definitions-for-MinGW [skip travis] #10360
Added in 4ae7acd15 initially, but seems to not be necessary anymore,
and/or should be send upstream otherwise.
2019-06-28 13:19:47 +02:00
6765bbc651 build: CMake: remove usage of USE_BUNDLED_X in main project (#10354)
The variables are not meant to be defined there really, but only with
the third-party project.

Using them, e.g. with the following, would actually result in libvterm
not being found then:

    make CMAKE_EXTRA_FLAGS="-DUSE_BUNDLED_LIBVTERM=ON" \
      DEPS_CMAKE_FLAGS="-DUSE_BUNDLED=OFF -DUSE_BUNDLED_LIBVTERM=ON"

In https://github.com/neovim/neovim/pull/6357 they were renamed to
`USE_BUNDLED_X` from `X_USE_BUNDLED`, but the above reasoning applies
to the old names, too.

Internally `CMAKE_PREFIX_PATH` is used to add the built/bundled third
party packages for `find_package`, so there is no reason to e.g. query
the values via `load_cache` for example from the third-party project.
2019-06-28 02:02:19 +02:00
9f64e4b73f Merge #10349 from janlazo/vim-8.0.0935
vim-patch:8.0.{935,1013,1100,1119}
2019-06-27 22:31:51 +02:00
35b959c600 CMakeLists: remove/cleanup passing of CMAKE_SYSTEM_NAME (#10351)
Just set it from `${CMAKE_HOST_SYSTEM_NAME}` directly, instead of passing it
from the main CMake file (CMAKE_SYSTEM_NAME defaults to it, but is empty
in script mode).

Initially added in 9ce81f7b2, but then even used with unrelated commands
(that do not use RunTests.cmake, e.g. 221f6fffa).
2019-06-27 20:14:00 +02:00
31dbc6f63e build: BuildLua: fix check for mingw [skip ci] (#10352) 2019-06-27 20:11:45 +02:00
04f559dc05 ci: AppVeyor: GCOV_ERROR_FILE: head/tail [skip ci] (#10335) 2019-06-27 14:38:33 +02:00
d555e44219 vim-patch:8.0.1120: :tm means :tmap instead of :tmenu
Problem:    :tm means :tmap instead of :tmenu. (Taro Muraoka)
Solution:   Move the new entry below the old entry. (closes vim/vim#2102)
63c4e8a198
2019-06-27 07:59:49 -04:00
2b400daca3 vim-patch:8.0.1100: stuck in redraw loop when 'lazyredraw' is set
Problem:    Stuck in redraw loop when 'lazyredraw' is set.
Solution:   Don't loop on update_screen() when not redrawing. (Yasuhiro
            Matsumoto, closes vim/vim#2082)
072412ed45
2019-06-26 21:49:29 -04:00
58cf81914d vim-patch:8.0.1013: terminal window behaves different from a buffer with changes
Problem:    A terminal window with a running job behaves different from a
            window containing a changed buffer.
Solution:   Do not set 'bufhidden' to "hide".  Fix that a buffer where a
            terminal used to run is listed as "[Scratch]".
e561a7e2fa
2019-06-26 20:51:18 -04:00
59b35d6a10 vim-patch:8.0.0935: cannot recognize a terminal buffer in :ls output
Problem:    Cannot recognize a terminal buffer in :ls output.
Solution:   Use R for a running job and F for a finished job.
304b64c9e6
2019-06-26 20:39:24 -04:00
a924650d98 Makefile: fix regression with "make functionaltest-lua" (#10346)
Regressed in 69eb4fa0c.
2019-06-26 22:44:48 +02:00
c62690ccc4 ci: Travis: upgrade OSX images (10.1 => 10.2) (#10319)
* ci: Travis: upgrade OSX images (10.1 => 10.2)

* ci: nvim-deps: use `cp -a`  [skip appveyor]

Symlinks should be preserved.

Ref: https://github.com/neovim/neovim/pull/10319#issuecomment-505410132
2019-06-26 20:06:40 +02:00
ac013d7147 Merge pull request #10342 from bfredl/apisandbox
eval/api: don't allow the API to be called in the sandbox
2019-06-26 11:59:08 +02:00
469726d3c5 Merge #10340 from janlazo/vim-8.1.1593
vim-patch:8.0.1688,8.1.1593
2019-06-26 11:01:10 +02:00
8b263c7a68 Merge pull request #10344 from bfredl/extcmdredraw
cmdline: remove invalid cmdline_show event when aborting mapping
2019-06-26 10:47:18 +02:00
48b4ecc96d Merge pull request #10343 from bfredl/scrollblend
compositor: handle scrolling of blended window
2019-06-26 10:07:54 +02:00
4bf05ba399 cmdline: remove invalid cmdline_show event when aborting mapping 2019-06-26 09:16:17 +02:00
2a2d288228 compositor: handle scrolling of blended window 2019-06-26 08:37:36 +02:00
619a86cb1e eval/api: don't allow the API to be called in the sandbox.
Identifying and maintaining a "secure" subset of the API would be too
much busywork. So just disable the entire thing.
2019-06-26 08:19:57 +02:00
2d6c91ab99 vim-patch:8.0.1688: some macros are used without a semicolon
Problem:    Some macros are used without a semicolon, causing auto-indent to be
            wrong.
Solution:   Use the do-while(0) trick. (Ozaki Kiichi, closes vim/vim#2729)
6f4700233f
2019-06-26 00:05:29 -04:00
62c7fcbdab vim-patch:8.1.1593: filetype not detected for C++ header files without extension
Problem:    Filetype not detected for C++ header files without extension.
Solution:   Recognize the file by the Emacs file mode. (Dmitry Ilyin,
            closes vim/vim#4593)
6a7af8e2db
2019-06-25 21:20:26 -04:00
10c983fabe build: Makefile: fix distclean [ci skip] (#10336)
Do not run CMake in build before deleting it unnecessarily:

    % make distclean
    test -d build && ninja -C build clean || true
    ninja: Entering directory `build'
    [0/1] Re-running CMake...
2019-06-25 19:51:28 +02:00
788bcbba24 Merge pull request #9923 from bfredl/floatblend
blending of floating windows, override individual attributes with ":hi Group blend="
2019-06-25 18:36:07 +02:00
b0c1e2ab5a api: make nvim__inspect_cell support multiple grids 2019-06-25 18:08:21 +02:00
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
3e6f06f5d2 build: use main cmake modules with third-party (#10330)
This is meant to make it possible to use `find_package(LuaJit)` etc with
the third-party CMake project in general.

Followup to https://github.com/neovim/neovim/pull/10297/files#r296439576.
2019-06-25 17:34:28 +02:00
e13ae7cae6 ci: revisit/fix coverage uploading (#10201)
* Add ci/common/submit_coverage.sh, used with Travis and AppVeyor

* use gcovr, with coverage.xml for better branch coverage reporting, and
  easier processing of gcov files in general

* codecov: use flags again, with `uname -s` additionally
  Ref: https://github.com/neovim/neovim/pull/10227#issuecomment-502923543

* remove now unused parsers.gcov config from codecov.yml
2019-06-25 15:35:33 +02:00
027ebb23da Merge #10329 from janlazo/vim-8.1.0437
vim-patch:8.0.1535,8.1.{198,437,1342}
2019-06-25 13:58:48 +02:00
ace7e4e11b vim-patch:8.1.1342: using freed memory when joining line with text property
Problem:    Using freed memory when joining line with text property.
Solution:   Use already computed length.
787880a86d
2019-06-25 00:23:00 -04:00
56a96d8f82 vim-patch:8.0.1535: C syntax test still fails when using gvim
Problem:    C syntax test still fails when using gvim.
Solution:   Clear Normal cterm highlighting instead of setting it.
6acadda8d6
2019-06-24 23:44:54 -04:00
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
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
615fc68263 Merge #10323 from janlazo/vim-8.1.1055
vim-patch:8.0.{1479,1480,1482},8.1.1055
2019-06-25 02:37:50 +02:00
79450f2da9 Merge #10250 from blueyed/vim-8.0.1039
vim-patch:8.0.{10{39,53,55},1274}: cannot change a line in not current buffer
2019-06-25 02:36:07 +02:00
8cd87af8d6 Merge pull request #10290 from janlazo/vim-8.1.0086
vim-patch:8.1.{86,347}
2019-06-25 01:56:10 +02:00
5ae57b7e57 health.vim: check shada file #10327
closes #1202
2019-06-25 01:31:41 +02:00
8c7e41f596 [RFC] vim-patch:8.1.1365,8.1.1366,8.1.1367,8.1.1368,8.1.1382,8… (#10309)
[RFC] vim-patch:8.1.1365,8.1.1366,8.1.1367,8.1.1368,8.1.1382,8.1.1401
2019-06-24 12:08:57 -04:00
8d4a655ace build: CMake: remove LUAROCKS_VERSION (#10317)
This is not necessary and avoids confusion.
2019-06-24 18:04:57 +02:00
f2e3849100 Merge #10313 from rhysd/const-patches
vim-patch:8.1.1539,8.1.1543,8.1.1554 for :const from Vim
2019-06-24 14:27:31 +02:00
6cb4460207 lint 2019-06-24 06:46:01 -04:00
280938d932 vim-patch:8.1.1401: misspelled mkspellmem as makespellmem
Problem:    Misspelled mkspellmem as makespellmem.
Solution:   Drop duplicate help entry, fix test. (Naruhiko Nishino, Ken
            Takata, closes vim/vim#4437)
076073950c
2019-06-24 06:46:01 -04:00
d265054394 vim-patch:8.1.1382: error when editing test file
Problem:    Error when editing test file.
Solution:   Remove part of modeline.
3020a87cb1
2019-06-24 06:46:01 -04:00
f9694de9f1 vim-patch:8.1.1368: modeline test fails with python but without pythonhome
Problem:    Modeline test fails with python but without pythonhome.
Solution:   Correct test argument.
e09244ee35
2019-06-24 06:46:01 -04:00
2db189f57c vim-patch:8.1.1367: can set 'modelineexpr' in modeline
Problem:    can set 'modelineexpr' in modeline.
Solution:   Add P_SECURE flag.
7e800c6047
2019-06-24 06:46:00 -04:00
1e4673d167 vim-patch:8.1.1366: using expressions in a modeline is unsafe
Problem:    Using expressions in a modeline is unsafe.
Solution:   Disallow using expressions in a modeline, unless the
            'modelineexpr' option is set.  Update help, add more tests.
110289e781
2019-06-24 06:45:55 -04:00
45bb1757bf vim-patch:8.1.1365: source command doesn't check for the sandbox
Problem:    Source command doesn't check for the sandbox. (Armin Razmjou)
Solution:   Check for the sandbox when sourcing a file.
5357552140
2019-06-24 06:41:57 -04:00
433c136a8a build: luarocks: fall back to luajit (#10297)
This regressed in 204ec6337.

Currently it would detect/use lua5.3 from the system, but in general
luajit is / should be preferred.

Noticed this due to nvim-client failing to build with Lua 5.3
(https://github.com/neovim/lua-client/pull/43).
2019-06-24 08:48:54 +02:00
93297cfc6f tests: busted: do not use "--lua" (#10303)
The feature is very rudimentary [1], and causes problems when not using
bundled deps, where it might then fail to find `busted.runner` due to
this.

E.g. with "-DUSE_BUNDLED=OFF -DUSE_BUNDLED_LUAROCKS=ON":
`.deps/usr/bin/busted` contains `exec '/usr/bin/luajit' -e …`, i.e. it
run luajit with adjusted lpath etc.
But using `--lua /usr/bin/luajit` then causes this `busted` wrapper to
be replaced with just `/usr/bin/luajit`, i.e. it is missing the adjusted
lpath then.

1: 9eb6c9cf93
2019-06-24 08:47:02 +02:00
ed2d651b50 vim-patch:8.0.1482: using feedkeys() does not work to test completion
Problem:    Using feedkeys() does not work to test Insert mode completion.
            (Lifepillar)
Solution:   Do not check for typed keys when executing :normal or feedkeys().
            Fix thesaurus completion not working when 'complete' is empty.
02ae9b4a93
2019-06-24 00:09:28 -04:00
28456e96f3 os: close library even if uv_dlopen() fails 2019-06-23 23:23:33 -04:00
87d6b1eccb vim-patch:8.1.0347: some tests fail on Solaris
Problem:    Some tests fail on Solaris.
Solution:   Skip writefile test. Fix path to libc.so. Improve test for Turkish
            case change. (Libor Bukata, Bjorn Linse, closes vim/vim#3403)
f1c118be93
2019-06-23 23:20:29 -04:00
d4de2cd7c7 vim-patch:8.1.0086: no tests for libcall() and libcallnr()
Problem:    No tests for libcall() and libcallnr().
Solution:   Add tests. (Dominique Pelle, closes vim/vim#2982)
1ceebb4efc
2019-06-23 23:20:29 -04:00
162bc62f56 vim-patch:8.0.1480: patch missing change
Problem:    Patch missing change.
Solution:   Add missing change.
0562532c2e
2019-06-23 22:23:50 -04:00
287f7a46a4 vim-patch:8.0.1479: insert mode completion state is confusing
Problem:    Insert mode completion state is confusing.
Solution:   Move ctrl_x_mode into edit.c.  Add CTRL_X_NORMAL for zero.
bc0e9adae9
2019-06-23 22:23:50 -04:00
69eb4fa0c5 build: Makefile: handle "rm -rf .deps" (#10305)
- make `build/.ran-third-party-cmake` depend on `$(DEPS_BUILD_DIR)`.
  It still creates `build` there as a side-effect, which does not
  belong there really, but is OK for now.

- add an explicit target for `$(DEPS_BUILD_DIR)` (".deps"), only with
  USE_BUNDLED=1  (the default).

This makes it easier to rebuild deps cleanly, by using `rm -rf .deps; make`.
2019-06-24 04:13:57 +02:00
c4739345fe build: luajit: do not disable jit (#10318)
This was added in 4c92a0bac to help with debugging, but could also have been
just moved there instead of disabling it manually (which was done due to
issues on Travis with OSX).

Since the JIT is the main feature of luajit, we should not disable it,
especially not during compile time.
2019-06-24 04:11:33 +02:00
f96a2dabac bundle: upgrade LuaJIT to latest v2.0 commit (#10320)
Changes: 7dbf0b05f1..61464b0a5b
2019-06-24 04:11:04 +02:00
3dcf2d5c16 vim-patch:8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Problem:    CTRL-G U in Insert mode doesn't work to avoid splitting the undo
            sequence for shift-left and shift-right.
Solution:   Also check dont_sync_undo for shifted cursor keys. (Christian
            Brabandt)
75bf3d22f4
2019-06-23 20:50:37 -04:00
3e8bc4a13f eval.c: Fix clint errors and typo in comment of ex_const() 2019-06-24 09:35:56 +09:00
7d604a1e61 Merge #10294 from janlazo/vim-8.0.1239
vim-patch:8.0.1239,8.1.{112,125,165,166,167,169,181,242,270,272,747,850,853,1519}
2019-06-24 02:35:25 +02:00
3d5a800278 vim-patch:8.1.1554: docs and tests for :const can be improved
Problem:    Docs and tests for :const can be improved.
Solution:   Improve documentation, add a few more tests. (Ryuichi Hayashida,
            closes vim/vim#4551)
1c196e7b17
2019-06-24 09:31:30 +09:00
bd0615590b vim-patch:8.1.1543: const test fails with small features
Problem:    Const test fails with small features.
Solution:   Don't unlet non-existing variables.
b6e3b88ec8
2019-06-24 09:31:12 +09:00
1c90c19f62 vim-patch:8.1.1539: not easy to define a variable and lock it
Problem:    Not easy to define a variable and lock it.
Solution:   Add ":const".
9937a05543
2019-06-24 09:30:51 +09:00
fa3db26f10 eval: assert VAR_LIST branch in filter_map() 2019-06-23 19:11:01 -04:00
9fd4a0b526 getchar: Handle incomplete <Paste> in typeahead buffer #10311
<Paste> is a 3-byte sequence and the beginning one or two bytes can appear at
the very end of the typeahead buffer. When this happens, we were exiting from
`vgetorpeek()` instead of reading more characters to see the complete sequence.

I think this should fix #7994 -- at least partially. Before this change, when I
paste exactly 64 characters into a freshly booted instance, I get what I pasted
plus the literal text "<Paste>" at the end. Nvim also stays in nopaste mode.
The attached test case fails in this manner without the code change.

Fix #7994
2019-06-24 00:28:04 +02:00
4653b5943f vim-patch:8.1.0747: map() with a bad expression doesn't give an error
Problem:    map() with a bad expression doesn't give an error. (Ingo Karkat)
Solution:   Check for giving an error message. (closes vim/vim#3800)
ce9d50df07
2019-06-23 18:17:10 -04:00
2813c83ea1 vim-patch:8.1.1519: 'backupskip' may contain duplicates
Problem:    'backupskip' may contain duplicates.
Solution:   Add the P_NODUP flag. (Tom Ryder)
06e2c81f6d
2019-06-23 18:17:10 -04:00
6558e02b95 vim-patch:8.1.0853: options test fails on Mac
Problem:    Options test fails on Mac.
Solution:   Remove a trailing slash from $TMPDIR.
cbbd0f6578
2019-06-23 18:17:09 -04:00
ca6b42d7fd vim-patch:8.1.0850: test for 'backupskip' is not correct
Problem:    Test for 'backupskip' is not correct.
Solution:   Split the option in parts and use expand(). (Michael Soyka)
98ad1e17c3
2019-06-23 18:17:09 -04:00
25f99dde94 vim-patch:8.1.0272: options test fails if temp var ends in slash
Problem:    Options test fails if temp var ends in slash. (Tom Briden)
Solution:   Check for optional slash. (closes vim/vim#3308)
f53c692240
2019-06-23 18:17:09 -04:00
450d9e6bdf vim-patch:8.1.0270: checking for a Tab in a line could be faster
Problem:    Checking for a Tab in a line could be faster.
Solution:   Use strchr() instead of strrchr(). (closes vim/vim#3312)
b31a3acce1
2019-06-23 18:17:09 -04:00
1935cc2639 vim-patch:8.1.0242: Insert mode completion may use an invalid buffer pointer
Problem:    Insert mode completion may use an invalid buffer pointer.
Solution:   Check for ins_buf to be valid. (closes vim/vim#3290)
02ab97709d
2019-06-23 18:17:09 -04:00
3a49fa8f8b vim-patch:8.1.0169: calling message_filtered() a bit too often
Problem:    Calling message_filtered() a bit too often.
Solution:   Only call message_filtered() when filtering is already false.
a9defadb8f
2019-06-23 18:17:09 -04:00
bb02ca6def vim-patch:8.1.0167: lock flag in new dictitem is reset in many places
Problem:    Lock flag in new dictitem is reset in many places.
Solution:   Always reset the lock flag.
c89d4b3530
2019-06-23 18:17:09 -04:00
98801ec7ae vim-patch:8.1.0166: using dict_add_nr_str() is clumsy
Problem:    Using dict_add_nr_str() is clumsy.
Solution:   Split into two functions. (Ozaki Kiichi, closes vim/vim#3154)
e0be167a80
2019-06-23 18:17:09 -04:00
ff244a1309 vim-patch:8.1.0165: :clist output can be very long
Problem:    :clist output can be very long.
Solution:   Support filtering :clist entries. (Yegappan Lakshmanan)
4cde86c2ef
2019-06-23 18:17:09 -04:00
f99e314da0 ops: refactor swapchar() to return bool 2019-06-23 18:17:09 -04:00
3abffe7015 vim-patch:8.1.0125: virtual edit replace with multi-byte fails at end of line
Problem:    Virtual edit replace with multi-byte fails at end of line. (Lukas
            Werling)
Solution:   use ins_char() to add the character. (Christian Brabandt,
            closes vim/vim#3114)  Rename PCHAR() to PBYTE() to avoid mistakes like
            this.
630afe889a
2019-06-23 18:17:09 -04:00
f0d6695e7c vim-patch:8.1.0181: memory leak with trailing characters in skip expression
Problem:    Memory leak with trailing characters in skip expression.
Solution:   Free the return value.
a43ebe9454
2019-06-23 18:17:08 -04:00
6eae28f090 eval: require nonnull func args to pass ASAN build 2019-06-23 18:17:08 -04:00
efdc0f6a69 vim-patch:8.1.0112: no error when using bad arguments with searchpair()
Problem:    No error when using bad arguments with searchpair().
Solution:   Add error messages.
3dddb09c98
2019-06-23 18:17:08 -04:00
8bc365c886 lint 2019-06-23 18:17:08 -04:00
83ef740e15 vim-patch:8.0.1239: cannot use a lambda for the skip argument to searchpair()
Problem:    Cannot use a lambda for the skip argument to searchpair().
Solution:   Evaluate a partial, funcref and lambda. (LemonBoy, closes vim/vim#1454,
            closes vim/vim#2265)
48570488f1
2019-06-23 18:17:08 -04:00
0bdeec8ef0 screen: Adjust buffer sizes for multiple sign columns #10314
* screen: Fix to draw signs with combining characters.
The buffer size for signs can be too small, because the upper length
limit of a sign can be 56 bytes. If combining characters are only two
bytes in size, this reduces to 32 bytes.

* screen: Adjust buffer size to maximal sign column count
2019-06-24 00:01:01 +02:00
9ce34050e5 Makefile: fix trailing space in BUILD_CMD #10312
Only append flag for verbosity with ninja if non-empty.

Fixes the trailing space with `ninja  -C .deps`.
2019-06-23 15:25:29 +02:00
de2e51439e build: tests: build luv rock also with USE_BUNDLED_LUV=0 (#10307)
Followup to https://github.com/neovim/neovim/pull/10291
Ref: https://github.com/neovim/neovim/issues/10289
2019-06-23 04:17:13 +02:00
098fd36235 version.c: update [ci skip] #10115
vim-patch:8.0.0908: cannot set terminal size with options
vim-patch:8.0.0909: channel test fails
vim-patch:8.0.0920: cursor wrong after switching altscreen in terminal
vim-patch:8.0.0923: crash in GUI when terminal job exits
vim-patch:8.0.0924: terminal window not updated after using term_sendkeys()
vim-patch:8.0.0926: when job in terminal window ends topline is wrong
vim-patch:8.0.0927: if a terminal job sends a blank title "running" is not shown
vim-patch:8.0.0929: :term without argument does not work
vim-patch:8.0.0936: mode() returns wrong value for a terminal window
vim-patch:8.0.0938: scrolling in terminal window is inefficient
vim-patch:8.0.0939: Test_terminal_env is flaky
vim-patch:8.0.0940: Test_terminal_scrape_multibyte is flaky
vim-patch:8.0.0942: using freed memory with ":terminal"
vim-patch:8.0.0943: MS-Windows: Test_terminal_scrape_multibyte may fail
vim-patch:8.0.0957: a terminal job can deadlock when sending many keys
vim-patch:8.0.0958: terminal test fails on Windows when winpty dll is missing
vim-patch:8.0.0959: build failure on MS-Windows
vim-patch:8.0.0963: terminal test fails on MacOS
vim-patch:8.0.0964: channel write buffer does not work with poll()
vim-patch:8.0.0965: not restoring cursor shape after it was set in a terminal
vim-patch:8.0.0968: crash when switching terminal modes
vim-patch:8.0.0973: initial info about blinking cursor is wrong
vim-patch:8.0.0977: cannot send lines to a terminal job on MS-Windows
vim-patch:8.0.0978: writing to terminal job is not tested
vim-patch:8.0.0979: terminal noblock test fails on MS-Windows
vim-patch:8.0.0981: cursor in terminal window blinks by default
vim-patch:8.0.0982: cannot use a terminal when 'encoding' is non-utf8 multi-byte
vim-patch:8.0.0984: terminal blinking cursor not correct in the GUI
vim-patch:8.0.0985: libvterm has its own idea of character width
vim-patch:8.0.0987: terminal: second byte of double-byte char wrong
vim-patch:8.0.0990: with DBCS 'encoding' wrong pasting register into terminal
vim-patch:8.0.0991: using wrong character conversion for DBCS
vim-patch:8.0.0992: terminal title is wrong when 'encoding' is DBCS
vim-patch:8.0.0994: MS-Windows: cursor in terminal blinks undesirably
vim-patch:8.0.0995: terminal tests fail on Mac
vim-patch:8.0.1009: Xterm cursor blinking status may be inverted
vim-patch:8.0.1011: terminal test fails with Athena and Motif
vim-patch:8.0.1015: missing update to terminal test
vim-patch:8.0.1034: sending buffer lines to terminal doesn't work on MS-Windows
vim-patch:8.0.1036: ++eof argument for terminal only available on MS-Windows
vim-patch:8.0.1049: shell on Mac can't handle long text
vim-patch:8.0.1052: term_start() does not allow in_io, out_io and err_io options
vim-patch:8.0.1054: terminal test fails on MS-Windows
vim-patch:8.0.1057: terminal scrape test waits too long
vim-patch:8.0.1058: terminal redirection test is flaky
vim-patch:8.0.1070: terminal test is flaky on Mac
vim-patch:8.0.1075: MS-Windows: mouse does not work in terminal
vim-patch:8.0.1076: term_start() does not take callbacks
vim-patch:8.0.1080: memory leak for eof_chars terminal option and buffer name
vim-patch:8.0.1081: memory leak for the channel write queue
vim-patch:8.0.1083: leaking memory in input part of channel
vim-patch:8.0.1087: Test_terminal_cwd is flaky
vim-patch:8.0.1095: terminal multibyte escrape test is flaky
vim-patch:8.0.1101: channel write fails if writing to log fails
vim-patch:8.0.1103: converting cterm color fails for grey ramp
vim-patch:8.0.1106: terminal colors wrong on an MS-Windows console
vim-patch:8.0.1116: terminal test fails on MS-Windows
vim-patch:8.0.1117: Test_terminal_no_cmd hangs on MS-Windows with GUI
vim-patch:8.0.1126: endless resize when terminal showing in two buffers
vim-patch:8.0.1131: not easy to trigger an autocommand for new terminal window
vim-patch:8.0.1149: libvterm colors differ from xterm
vim-patch:8.0.1167: Motif: typing in terminal window is slow
vim-patch:8.0.1173: terminal window is not redrawn after CTRL-L
vim-patch:8.0.1177: in a terminal window the popup menu is not cleared
vim-patch:8.0.1213: setting 'mzschemedll' has no effect
vim-patch:8.0.1261: program in terminal window gets NL instead of CR
vim-patch:8.0.1277: terminal window CR-NL conversions may cause problems
vim-patch:8.0.1286: occasional crash when using a channel
vim-patch:8.0.1296: checking the same condition twice
vim-patch:8.0.1315: build still fails on Mac
vim-patch:8.0.1316: build still still fails on Mac
vim-patch:8.0.1317: accessing freed memory in term_wait()
vim-patch:8.0.1323: mouse events in a terminal window may cause endless loop
vim-patch:8.0.1328: trouble when using ":term ++close" with autocmd
vim-patch:8.0.1340: MS-Windows: cannot build GUI without IME
vim-patch:8.0.1342: cannot build with Motif and multi-byte
vim-patch:8.0.1347: MS-Windows: build broken by misplaced curly
vim-patch:8.0.1359: libvterm ANSI colors can not always be recognized
vim-patch:8.0.1360: the Terminal highlighting doesn't work in a terminal
vim-patch:8.0.1362: terminal window colors wrong when using Terminal highlighting
vim-patch:8.0.1368: cannot drag status or separator of new terminal window
vim-patch:8.0.1376: cursor in terminal not always updated
vim-patch:8.0.1381: ch_readraw() waits for NL if channel mode is NL
vim-patch:8.0.1429: crash when calling term_start() with empty argument
vim-patch:8.0.1430: crash when term_start() fails
vim-patch:8.0.1462: missing yet another file in patch
vim-patch:8.0.1476: screen isn't always updated right away
vim-patch:8.0.1477: redraw flicker when moving the mouse outside of terminal window
vim-patch:8.0.1484: reduntant conditions
vim-patch:8.0.1515: BufWinEnter event fired when opening hidden terminal
vim-patch:8.0.1521: Shift-Tab does not work in a terminal window
vim-patch:8.0.1533: libterm doesn't support requesting fg and bg color
vim-patch:8.0.1537: xxd does not skip NUL lines when using ebcdic
vim-patch:8.0.1542: terminal screen dump does not include cursor position
vim-patch:8.0.1546: using feedkeys() in a terminal may trigger mappings
vim-patch:8.0.1552: may leak file descriptors when executing job
vim-patch:8.0.1576: Perl VIM::Buffers() does not find every buffer
vim-patch:8.0.1594: :conform qall not tested with active terminal window
vim-patch:8.0.1598: cannot select text in a terminal with the mouse
vim-patch:8.0.1605: terminal test is a bit flaky
vim-patch:8.0.1611: CTRL-W in system terminal does not go to job
vim-patch:8.0.1615: term_dumpload() does not use the right colors
vim-patch:8.0.1623: terminal kill tests are flaky
vim-patch:8.0.1628: channel log doesn't mention exiting
vim-patch:8.0.1629: Mac: getpagesize() is deprecated
vim-patch:8.0.1631: testing with Vim running in terminal is a bit flaky
vim-patch:8.0.1632: in a terminal dump NUL and space are different
vim-patch:8.0.1636: no test for term_dumpload() and term_dumpdiff()
vim-patch:8.0.1637: no test for term_dumpdiff() options argument
vim-patch:8.0.1638: popup test fails depending on environment variable
vim-patch:8.0.1640: Test_cwd() is flaky
vim-patch:8.0.1642: running Vim in terminal fails with two windows
vim-patch:8.0.1643: terminal API tests fail
vim-patch:8.0.1644: terminal API tests still fail
vim-patch:8.0.1645: test for terminal response to escape sequence may fail
vim-patch:8.0.1648: resource fork tool doesn't work on Python 3
vim-patch:8.0.1652: term_dumpwrite() does not output composing characters
vim-patch:8.0.1656: no option to have xxd produce upper case variable names
vim-patch:8.0.1657: crash when reading a channel
vim-patch:8.0.1662: showing dump diff doesn't mention both file names
vim-patch:8.0.1664: test failure because of not allocating enough space
vim-patch:8.0.1667: terminal window tests are flaky
vim-patch:8.0.1670: terminal window tests are still a bit flaky
vim-patch 8.0.1671: crash when passing non-dict argument as env to job_start()
vim-patch:8.0.1673: terminal window tests are still a bit flaky
vim-patch:8.0.1680: memory allocated by libvterm is not profiled
vim-patch:8.0.1681: the format attribute fails with MinGW
vim-patch:8.0.1684: ml_get errors when using terminal window for shell command
vim-patch:8.0.1690: not easy to run one test with gvim instead of vim
vim-patch:8.0.1691: xxd test sometimes fails
vim-patch:8.0.1694: terminal API test is a bit flaky
vim-patch:8.0.1695: xxd test not run on MS-Windows
vim-patch:8.0.1703: in the tutor 'showcmd' is not set
vim-patch:8.0.1709: some non-C89 code may slip through
vim-patch:8.0.1714: term_setsize() does not give an error in a normal buffer
vim-patch:8.0.1715: terminal buffer can be 1 more than 'terminalscroll' lines
vim-patch:8.0.1716: test for term_setsize() does not give a good error message
vim-patch:8.0.1718: terminal scrollback test fails on MS-Windows
vim-patch:8.0.1720: when a timer is running a terminal window may not close
vim-patch:8.0.1721: no test for using the 'termsize' option
vim-patch:8.0.1724: declarations cannot be halfway a block
vim-patch:8.0.1728: condition always false, useless code
vim-patch:8.0.1746: MS-Windows: channel tests fail
vim-patch:8.0.1761: job in terminal window with no output channel is killed
vim-patch:8.0.1762: terminal debug logging is a bit complicated
vim-patch:8.0.1775: MS-Windows: warning for unused variable
vim-patch:8.0.1780: test fails because Vim in a terminal uses wrong 'encoding'
vim-patch:8.0.1795: lose contact with jobs when :gui forks
vim-patch:8.0.1796: GUI: click on tab fails when the focus is in a terminal
vim-patch:8.0.1801: MS-Windows: redirecting terminal output does not work
vim-patch:8.0.1802: MS-Windows: terminal test fails
vim-patch:8.0.1814: crash with terminal window and with 'lazyredraw' set
vim-patch:8.0.1818: lines remove from wrong buffer when using terminal window
vim-patch:8.0.1820: terminal window redirecting stdout does not show stderr
vim-patch:8.0.1821: cursor in terminal window moves when pressing CTRL-W
vim-patch:8.0.1823: test for terminal stdout redirection is flaky
vim-patch:8.0.1830: switching to Terminal-Normal mode does not redraw
vim-patch:8.0.1838: cursor in wrong pos when switching to Terminal-Normal mode
vim-patch:8.0.1841: HP-UX does not have setenv()
vim-patch:8.0.1846: Python interface is incompatible with lldb
vim-patch:8.0.1848: 'termwinscroll' does not work properly

vim-patch:8.1.0013: using freed memory when changing terminal cursor color
vim-patch:8.1.0015: cursor color wrong when closing a terminal window
vim-patch:8.1.0016: possible crash in term_wait()
vim-patch:8.1.0026: terminal test fails with very tall terminal
vim-patch:8.1.0029: terminal test fails on MS-Windows when "wc" exists
vim-patch:8.1.0031: terminal test aucmd_on_close if flaky
vim-patch:8.1.0033: keys to stop Vim in terminal are wrong
vim-patch:8.1.0076: command getting cleared with CTRL-W : in a terminal window
vim-patch:8.1.0082: in terminal window, typing : at more prompt, inserts ':'
vim-patch:8.1.0088: terminal test for stdout and stderr is a bit flaky
vim-patch:8.1.0094: help text "usage:" is not capatalized
vim-patch:8.1.0106: build fails when HAVE_DATE_TIME is undefined
vim-patch:8.1.0171: typing CTRL-W n in a terminal window causes ml_get error
vim-patch:8.1.0182: Unicode standard was updated
vim-patch:8.1.0210: still a few K&R function declarations
vim-patch:8.1.0227: spaces instead of tabs in makefile
vim-patch:8.1.0238: 'buftype' is cleared when using ":term ++hidden cat"
vim-patch:8.1.0243: using :term ++close ++hidden closes a window
vim-patch:8.1.0263: channel log doesn't show part of channel
vim-patch:8.1.0283: missing test dump
vim-patch:8.1.0326: screen dump does not consider NUL and space equal
vim-patch:8.1.0329: using inputlist() during startup results in garbage
vim-patch:8.1.0358: crash when using term_dumpwrite() after the job finished
vim-patch:8.1.0520: screen diff test sometimes fails
vim-patch:8.1.0530: channel and terminal tests that start a server can be flaky
vim-patch:8.1.0600: channel test is flaky
vim-patch:8.1.0626: MS-Windows: no resize to fit parent when using --windowid
vim-patch:8.1.0633: crash when out of memory while opening a terminal window
vim-patch:8.1.0712: MS-Windows build instructions are a bit outdated
vim-patch:8.1.0766: various problems when using Vim on VMS
vim-patch:8.1.0785: depending on the configuration some functions are unused
vim-patch:8.1.0821: xxd "usage" output and other arguments not tested
vim-patch:8.1.0854: xxd does not work with more than 32 bit addresses
vim-patch:8.1.0855: cannot build xxd with MSVC 10
vim-patch:8.1.0893: terminal test is a bit flaky
vim-patch:8.1.0966: one terminal test is flaky
vim-patch:8.1.1125: libvterm does not handle the window position report
vim-patch:8.1.1169: writing coverage info in a separate dir is not needed
vim-patch:8.1.1464: only 4-digit rgb termresponse is recognized
vim-patch:8.1.1468: the generated desktop files may be invalid
vim-patch:8.1.1480: desktop file check doesn't run on CI
vim-patch:8.1.1481: length for two-digit rgb termresponse is off by one
vim-patch:8.1.1482: no test for wincol() depending on the 'number' option
vim-patch:8.1.1487: older msgfmt cannot generate proper .desktop file
vim-patch:8.1.1500: wrong shell command when building with VIMDLL and "! in 'go'
vim-patch:8.1.1503: sound test fails on Travis
vim-patch:8.1.1504: sound test still fails on Travis
vim-patch:8.1.1506: syntax error in Travis config
vim-patch:8.1.1507: sound test still fails on Travis
vim-patch:8.1.1512: ch_evalexpr() hangs when used recursively
vim-patch:8.1.1514: MS-Windows: wrong shell command with ! in 'guioptions'
vim-patch:8.1.1529: libcanberra is linked with even when not used
vim-patch:8.1.1531: clipboard type name is inconsistent
vim-patch:8.1.1532: build fails
vim-patch:8.1.1533: GUI build fails on Mac
vim-patch:8.1.1556: command for failing screenshot does not include directory
vim-patch:8.1.1557: compiler warning for unused variables in tiny version
vim-patch:8.1.1566: error message when terminal closes in another tab
vim-patch:8.1.1578: MS-Windows: pathdef.c should depend on build options
vim-patch:8.1.1582: cannot build with +textprop but without +timers

vim-patch:8.0.0947: entering terminal using C-O C-W C-W goes to Insert mode
vim-patch:8.1.1490: when a single test fails the exit code is not set
vim-patch:8.1.1492: MS-Windows: when "!" is in 'guioptions' ":!start" fails
vim-patch:8.0.1162: shared script for tests cannot be included twice
vim-patch:8.1.1530: Travis config is not optimal
2019-06-23 02:31:19 +02:00
bc10a15ea7 tests: fix "api nvim_get_proc_children returns child process ids" (#10296)
There might be an existing job already - maybe due to some other test,
but in this case there was only one failure in the test run.

```
[----------] Running tests from C:/projects/neovim/test/functional\api\proc_spec.lua
  [ RUN      ] api nvim_get_proc_children returns child process ids: ERR
  test\functional\helpers.lua:392:
  retry() attempts: 450
  C:/projects/neovim/test/functional\api\proc_spec.lua:22: Expected objects to be the same.
  Passed in:
  (number) 2
  Expected:
  (number) 1

  stack traceback:
  	test\functional\helpers.lua:392: in function 'retry'
  	C:/projects/neovim/test/functional\api\proc_spec.lua:21: in function <C:/projects/neovim/test/functional\api\proc_spec.lua:17>
```

https://ci.appveyor.com/project/neovim/neovim/builds/25461215/job/8ns204v6091iy9rs?fullLog=true#L2672
2019-06-22 15:29:39 +02:00
f1f9a2f97b tests: improve RunTests.cmake (#10239)
- allow for passing in BUSTED_ARGS via env
- quote values of TEST_TAG/TEST_FILTER

  Previously TEST_FILTER="'foo bar'" was required.

This allows for:

    make functionaltest TEST_FILE=test/functional/terminal/tui_spec.lua \
      BUSTED_ARGS="--no-keep-going --shuffle" \
      TEST_FILTER="TUI background color handles"

* RunTests.cmake: BUILD_DIR for Xtest files, isolated TMPDIR

Assume relative path for given TEST_PATH.
2019-06-22 06:44:52 +02:00
058a8ed6ec build: USE_BUNDLED_LUV=0 with USE_BUNDLED_LUAROCKS=1 #10291
Fixes https://github.com/neovim/neovim/issues/10289
2019-06-22 03:43:31 +02:00
aa090f9801 cmake: fix usage of find_package_handle_standard_args (#10288)
The package argument is case sensitive, which is important to handle
X_FIND_REQUIRED properly, i.e. error out early if it is not found:

    CMake Error at /usr/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
      Could NOT find Unibilium (missing: UNIBILIUM_LIBRARY UNIBILIUM_INCLUDE_DIR)

Otherwise it would continue until:

    CMake Error: The following variables are used in this project, but they
    are set to NOTFOUND.
    Please set them or make sure they are set and tested correctly in the
    CMake files:
    UNIBILIUM_INCLUDE_DIR (ADVANCED)

Quickly checked via `rg 'find_package_handle_standard|find_package.*REQUIRED' -I | sort`.

Ref: https://gitlab.kitware.com/cmake/cmake/issues/19413
2019-06-21 03:48:46 +02:00
e28a7a366d CI/Travis: restore ASAN build to first stage #10274
* ci: Travis: move ASAN build to first stage again
  Ref: https://github.com/neovim/neovim/pull/10238#issuecomment-503556762
* rename stages
* move gcov to second stage, restore order
2019-06-20 01:51:41 +02:00
954df0ea03 Merge #10245 from janlazo/vim-8.0.1723
vim-patch:8.0.{1723,1726,1735},8.1.{73,74}
2019-06-19 23:46:43 +02:00
487eaf8d45 CI: use -m to invoke pip #10275
Also install "pynvim" instead of "neovim".

Ref: https://github.com/neovim/neovim/pull/10228#discussion_r295266859
2019-06-19 20:28:37 +02:00
3f48b3a92f Update argc(),argv() based on 8.1.0493 2019-06-19 01:36:01 -04:00
516eb9bf9d test/old: run test_arglist
Run failing tests, added in vim-patch:8.1.0493.
2019-06-19 01:36:01 -04:00
5c2feb690e vim-patch:8.1.0074: crash when running quickfix tests
Problem:    Crash when running quickfix tests.
Solution:   Do not alloc a new location list when checking for the reference
            to be still valid.
d6b01a2d38
2019-06-19 01:36:00 -04:00
a6707f5791 vim-patch:8.1.0073: crash when autocommands call setloclist()
Problem:    Crash when autocommands call setloclist(). (Dominique Pelle)
Solution:   If the quickfix list changes then don't jump to the error.
0366c0161e
2019-06-19 01:36:00 -04:00
8bea8d7b47 vim-patch:8.0.1726: older MSVC doesn't support declarations halfway a block
Problem:    Older MSVC doesn't support declarations halfway a block.
Solution:   Move the declaration back to the start of the block.
df2c774ded
2019-06-19 01:36:00 -04:00
315076a26d vim-patch:8.0.1723: using one item array size declaration is misleading
Problem:    Using one item array size declaration is misleading.
Solution:   Instead of using "[1]" and actually using a larger array, use
            "[]".  This is to verify that this C99 feature works for all
            compilers.
f3a411783c

The following patch is N/A because Neovim requires C99.
vim-patch:8.0.1735: flexible array member feature not supported by HP-UX
2019-06-19 01:36:00 -04:00
352d5a9713 ci: Travis: move gcov job to baseline (no allowed failures) (#10238)
* ci: Travis: move gcov job to baseline (no allowed failures)

* ci: Travis: use two stages only

Moves CLANG_SANITIZER=ASAN_UBSAN to second stage.
2019-06-19 01:20:09 +02:00
59b2b1c955 tests: oldtests: mark Test_cursorhold_insert as flaky [ci skip] (#10264)
Fails often on CI (OSX), e.g.:

```
1 FAILED:
Found errors in Test_cursorhold_insert():
function RunTheTest[37]..Test_cursorhold_insert line 9: Expected 1 but got 0
```

> Compiler: clang Xcode: xcode10.1 C

The test could be adjusted to re-try the timer a few times, but I do not
think it's really worth it currently, and that the test should be marked
as flaky instead.
2019-06-19 01:19:20 +02:00
c6ce40bf37 ci: Travis: simplify/improve Python/pip setup (#10228)
* ci/before_install.sh: do not (try to) upgrade pip

  It is not necessary usually (for our use case(s)), and rather good to
  have this (implicitly) pinned.

* Simplify/improve Python info output

* Use pyenv-global to activate/use Python 2.7/7.7

* simplify pip-install of neovim, also for osx
2019-06-18 20:13:47 +02:00
149dcbf2c7 Merge pull request #10021 from bfredl/chanevent
channel: refactor events, prevent recursive invocation of callbacks
2019-06-18 13:58:14 +02:00
d4938743e6 channel: refactor events, prevent recursive invocation of events 2019-06-18 10:49:38 +02:00
25e04c1d98 gcov: use __gcov_flush instead of __gcov_dump (#10260)
This restores missing coverage again.

Move it to process_spawn in os/pty_process_unix.c, since it seems to
break printargs-test on Windows/AppVeyor otherwise (#10248).
2019-06-18 06:31:57 +02:00
d0e1417254 vim-patch:8.0.1274: setbufline() fails when using folding
Problem:    setbufline() fails when using folding.
Solution:   Set "curwin" if needed. (Ozaki Kiichi, closes vim/vim#2293)
0c4dc88a63
2019-06-18 00:51:08 +02:00
d43cf02186 vim-patch:8.0.1055: bufline test hangs on MS-Windows
Problem:    Bufline test hangs on MS-Windows.
Solution:   Avoid message for writing file.  Source shared.vim when running
            test individually.
11aa62f8f9
2019-06-18 00:21:52 +02:00
8db93d0d83 vim-patch:8.0.1053: setline() does not work on startup
Problem:    setline() does not work on startup. (Manuel Ortega)
Solution:   Do not check for ml_mfp to be set for the current buffer.
            (Christian Brabandt)
9d954207e2
2019-06-18 00:18:52 +02:00
9485061baa vim-patch:8.0.1039: cannot change a line in not current buffer
Problem:    Cannot change a line in a buffer other than the current one.
Solution:   Add setbufline(). (Yasuhiro Matsumoto, Ozaki Kiichi, closes vim/vim#1953)
b31cf2bb0b
2019-06-17 23:43:26 +02:00
4946751906 Merge #10224 from blueyed/fix-Test_tagfiles
tests: fix Test_tagfiles: use Vim's 'tags' setting
2019-06-17 12:08:56 -07:00
5edced0a86 Merge pull request #10186 from blueyed/fix-cd
ci: minor improvements
2019-06-17 20:55:02 +02:00
bd3242a70f ci: Travis: skip lint job with "\[skip.lint\]" 2019-06-17 02:00:58 +02:00
185fc775b9 ci: Travis: ccache: use --zero-stats
This makes it display actual results in before_cache then, and it seems
like it is not necessary to keep stats across builds.
2019-06-17 02:00:58 +02:00
755e94801f ci: AppVeyor: use fast_finish=true 2019-06-17 02:00:58 +02:00
3dab5f625f ci/build.ps1: add comment for PATH mangling with old tests 2019-06-17 02:00:58 +02:00
b98b1168d8 ci: Travis: remove obsolete cmake file
Added in f65614fb1, forgot to be removed in 55682710a.
2019-06-17 02:00:58 +02:00
04d03b0cbc ci/common/test.sh: fix some issues reported by shellcheck 2019-06-17 02:00:58 +02:00
c6602df015 vim-patch:8.1.1546: in some tests 'tags' is set but not restored
Problem:    In some tests 'tags' is set but not restored. (Daniel Hahler)
Solution:   Restore 'tags'. (closes vim/vim#4535)
0331faf712
2019-06-16 19:51:12 +02:00
3d8e8cb889 tests: fix Test_tagfiles: use Vim's 'tags' setting
Otherwise it might fail with an existing `tags` file upwards, e.g. in
neovim's source directory (which should be rather common).
2019-06-16 19:51:12 +02:00
d32b92e265 vim-patch:8.0.1845: various comment updates needed, missing white space (#10203)
Problem:    Various comment updates needed, missing white space.
Solution:   Update comments, add white space.
259f26ac2d

Ignored (partly) applied patch for src/nvim/po/it.po.
2019-06-16 19:49:23 +02:00
491a3210a9 vim-patch:8.1.1003: playing back recorded key sequence mistakes key code (#10155)
Problem:    Playing back recorded key sequence mistakes key code.
Solution:   Insert a <Nop> after the <Esc>. (closes vim/vim#4068)
6edbbd8114
2019-06-16 19:48:46 +02:00
d792d4ec06 Merge pull request #10236 from janlazo/vim-8.1.1545
vim-patch:8.0.{1516,1549},8.1.{0044,1545}
2019-06-16 17:52:38 +02:00
3d6e48a941 Merge pull request #10150 from bfredl/extcount
make msg_advance and search_count not crash with ext_messages, fixes #10069
2019-06-16 12:34:27 +02:00
e39d217592 messages: fix crash with msg_advance when using ext_messages 2019-06-16 11:31:35 +02:00
41f31ca90d messages: support shortmess-=S in ext_messages 2019-06-16 11:07:29 +02:00
cb01925eb4 vim-patch:8.0.1549: various small problems in test files
Problem:    Various small problems in test files.
Solution:   Include small changes.
5d7ead3bc8
2019-06-15 22:24:59 -04:00
b837c56576 vim-patch:8.0.1516: errors for job options are not very specific
Problem:    Errors for job options are not very specific.
Solution:   Add more specific error messages.
b3292fa2d3
2019-06-15 22:14:29 -04:00
c6c5754a86 vim-patch:8.1.0044: if a test function exists Vim this may go unnoticed
Problem:    If a test function exists Vim this may go unnoticed.
Solution:   Check for a test funtion quitting Vim.  Fix tests that did exit
            Vim.
8903676d3d

Restore test_assert.vim to run Test_zz_quit_detected().
2019-06-15 21:48:27 -04:00
1abfeff978 vim-patch:8.1.1545: when the screen is to small there is no message about that
Problem:    When the screen is to small there is no message about that.
            (Daniel Hahler)
Solution:   Do not use :cquit. (closes vim/vim#4534)
45aa07d3c1
2019-06-15 21:48:27 -04:00
5a96161e86 ci: AppVeyor: ensure that win32 feature is set (#10216)
[skip travis]

Closes https://github.com/neovim/neovim/pull/10232.

Co-authored-by: Jan Edmund Lazo <jan.lazo@mail.utoronto.ca>
2019-06-16 02:33:47 +02:00
b60c986a49 vim-patch:8.0.1245: when WaitFor() has a wrong expression it just waits a second (#10233)
Problem:    When WaitFor() has a wrong expression it just waits a second,
            which goes unnoticed. (James McCoy)
Solution:   When WaitFor() times out throw an exception.  Fix places where the
            expression was wrong.
3e1c617d49
2019-06-15 18:56:55 +02:00
5d5e16c2ed ci: Travis: add baseline stage [skip appveyor] (#10226)
This moves the 4 fastest jobs there, effectively resulting in a separate
OSX stage then.

Travis typically runs 4/5 jobs in parallel, so this avoids a) running the
slower OSX builds if there are problems already, and b) will start other
builds already earlier (e.g. after the lint job finished).
2019-06-15 18:46:51 +02:00
26a9d2cef1 ci: codecov: do not use flags [ci skip] (#10227)
Using flags results in timeouts on their end when viewing reports, and
is a known issue since months already.
2019-06-15 18:34:00 +02:00
d3d25f957d Dump gcov coverage in process_spawn (#10230)
Fixes https://github.com/neovim/neovim/pull/3926#issuecomment-502343527.
2019-06-15 18:30:04 +02:00
2f1a653a84 Merge pull request #10231 from bfredl/bufcb_end
api/lua: add on_detach to nvim_buf_attach
2019-06-15 15:59:45 +02:00
64cdf9f78a api/lua: add on_detach to nvim_buf_attach 2019-06-15 13:19:12 +02:00
93f8c2793c ci: AppVeyor: fix cov job, remove duplicate non-cov one (#10217)
* ci: AppVeyor: set GCOV_ERROR_FILE

This prevents the warnings/errors to be spilled into test results,
causing them to fail them, e.g.:

    [  FAILED  ] C:/projects/neovim/test/functional\core\main_spec.lua @ 97: Command-line option -s errors out when trying to use nonexistent file with -s
    C:/projects/neovim/test/functional\core\main_spec.lua:98: Expected objects to be the same.
    Passed in:
    (string) 'Cannot open for reading: "Xtest-functional-core-main-s.nonexistent": no such file or directory
    profiling:C:\projects\neovim\build/src/nvim/CMakeFiles/nvim.dir/buffer.c.gcda:Data file mismatch - some data files may have been concurrently updated without locking support
    '
    Expected:
    (string) 'Cannot open for reading: "Xtest-functional-core-main-s.nonexistent": no such file or directory
    '

    stack traceback:
            C:/projects/neovim/test/functional\core\main_spec.lua:98: in function <C:/projects/neovim/test/functional\core\main_spec.lua:97>

For reference, the locking appears to have been reworked for gcc 9.1 [1].

1: https://github.com/gcc-mirror/gcc/commit/56621355b

helpers.clear: keep GCOV_ERROR_FILE in environment

* ci: AppVeyor: remove MINGW_64 config (used with cov now)

Also:

- run MINGW_64-gcov first, and with PRs, since it provides coverage.
2019-06-14 13:39:57 +02:00
fdbb5a8f72 Merge #10208 from janlazo/vim-8.0.0931
vim-patch:8.0.{931,933,953}
2019-06-14 04:38:41 -07:00
18b031ea1d vim-patch:8.0.0953: get "no write since last change" error in terminal window
Problem:    Get "no write since last change" error in terminal window.
Solution:   Use another message when closing a terminal window. Make ":quit!"
            also end the job.
f5be7cd016
2019-06-13 22:40:12 -04:00
6efa3bff09 test/old: pass Test_statusline on Windows 2019-06-13 19:39:55 -04:00
47a5456670 vim-patch:8.0.0933: terminal test tries to start GUI when it's not possible
Problem:    Terminal test tries to start GUI when it's not possible.
Solution:   Check if the GUI can run. (James McCoy, closes vim/vim#1971)
9f0139a2a8
2019-06-13 19:39:55 -04:00
e6a1bea1eb vim-patch:8.0.0931: getwininfo() does not indicate a terminal window
Problem:    getwininfo() does not indicate a terminal window.
Solution:   Add "terminal" to the dictionary.
69905d108b
2019-06-13 19:39:55 -04:00
a0496e3b76 Merge pull request #10221 from bfredl/showcmd_cursor
screen: showcmd should never move the cursor
2019-06-13 22:30:50 +02:00
dd21cd2a4d tests: increase timeout with "timers doesn't mess up the cmdline" (#10212)
This might be required on (slower) CI.

    [ RUN      ] timers doesn't mess up the cmdline: ERR
    test/functional/ui/screen.lua:562: expected intermediate screen state before final screen state
    stack traceback:
            test/functional/ui/screen.lua:562: in function '_wait'
            test/functional/ui/screen.lua:366: in function 'expect'
            .../build/neovim/neovim/test/functional/eval/timer_spec.lua:221: in function <.../build/neovim/neovim/test/functional/eval/timer_spec.lua:199>

Ref: https://travis-ci.org/neovim/neovim/jobs/544974506#L3861
2019-06-13 22:11:33 +02:00
21cf4b0ce6 screen: showcmd should never move the cursor
Also restore the symmetry between grid_puts_line_start and
grid_puts_line_flush.
2019-06-13 20:22:37 +02:00
cc4d463cad Merge pull request #10202 from blueyed/vim-8.0.1704
vim-patch:8.0.1704: 'backupskip' default doesn't work for Mac

Also aligns tests from two previous patched to the ones in upstream.
2019-06-13 14:20:51 +02:00
424ddd01f5 tui: support rgba background detection (#10205)
Fixes https://github.com/neovim/neovim/issues/10159.
2019-06-13 14:14:41 +02:00
66613ace48 vim-patch:8.0.1704: 'backupskip' default doesn't work for Mac
Problem:    'backupskip' default doesn't work for Mac.
Solution:   Use "/private/tmp". (Rainer Müller, closes vim/vim#2793)
b8e22a053b
2019-06-13 00:28:16 +02:00
5db3be092a tests: align tests in test_options to Vim (moved) 2019-06-12 23:08:27 +02:00
6f27f5ef91 main: do event_init before early_init #10183
Fixes https://github.com/neovim/neovim/issues/10172

* move log_init to event_init
* move init_signs to end of early_init
2019-06-12 14:22:42 +02:00
babcf641ef Merge #10192 from janlazo/vim-8.0.1689
vim-patch:8.0.1689,8.1.0213
2019-06-12 08:21:31 +02:00
22d58ab664 vim-patch:8.1.0213: CTRL-W CR does not work properly in a quickfix window
Problem:    CTRL-W CR does not work properly in a quickfix window.
Solution:   Split the window if needed. (Jason Franklin)
0a08c63da1
2019-06-12 00:22:16 -04:00
005316ae41 vim-patch:8.0.1689: no tests for xxd
Problem:    No tests for xxd.
Solution:   Add a test. (Christian Brabandt)
29f9ed20b4
2019-06-11 22:31:21 -04:00
f8d0e41b28 Merge #10163 from blueyed/vim-8.1.1292
vim-patch:8.1.1292: invalid command line arguments not tested
2019-06-11 14:01:09 +02:00
432f69fc09 vim-patch:8.1.1211: test user command code #10162
Problem:    Not all user command code is tested.
Solution:   Add more tests.
e61e548dd6
2019-06-11 13:56:15 +02:00
304861e0ee adjust tests for nvim 2019-06-11 12:52:17 +02:00
76506ca0a3 vim-patch:8.1.1292: invalid command line arguments not tested
Problem:    Invalid command line arguments not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#4346)
ba9ea91beb
2019-06-10 18:10:15 +02:00
6fe430f582 local.mk.example: add example for -Werror [ci skip] #10178 2019-06-10 17:20:41 +02:00
ce90a19abd TUI: set os/input.c:global_fd to input->in_fd #10174
Problem: When we changed startup to wait for the TUI (like a remote UI),
         we forgot to set os/input.c:global_fd.  That used to be done by
         input_start().

Solution: Initialize os/input.c:global_fd before initializing libtermkey
          (termkey_new_abstract) so that tui_get_stty_erase() and
          friends can inspect the correct fd.

fixes #10134
close #10174
2019-06-10 16:43:52 +02:00
04e2ba85b1 doc [ci skip] #10129
- document lua vim.loop #10123
2019-06-10 15:53:42 +02:00
c83926cd0a lua: introduce vim.loop (expose libuv event-loop) #10123
Co-authored-by: Andrey Popp <8mayday@gmail.com>

closes #9546
closes #10084
2019-06-10 14:13:18 +02:00
3e58e60568 vim-patch:8.0.1278: Add the "k" flag in 'guioptions' #10175
Problem:    GUI window always resizes when adding/removing a scrollbar,
            toolbar, etc.
Solution:   Add the 'k' flag in 'guioptions' to keep the GUI window size and
            change the number of lines/columns instead. (Ychin, closes vim/vim#703)
8ac441576f
2019-06-10 12:18:59 +02:00
7612dd3f8a Merge #10173 from janlazo/vim-8.0.1756
vim-patch:8.0.1756,8.1.1509
2019-06-09 22:52:03 +02:00
84ba37fbcb lint 2019-06-09 16:25:10 -04:00
aecbbb0b11 vim-patch:8.1.1509: cmdline_row can become negative, causing a crash
Problem:    Cmdline_row can become negative, causing a crash.
Solution:   Make sure cmdline_row does not become negagive. (closes vim/vim#4102)
954bb06363
2019-06-09 16:12:51 -04:00
1ce28d7d9b vim-patch:8.0.1756: GUI: after prompting for a number the mouse shape is wrong
Problem:    GUI: after prompting for a number the mouse shape is sometimes
            wrong.
Solution:   Call setmouse() after setting "State". (Hirohito Higashi,
            closes vim/vim#2709)
73658317ba
2019-06-09 16:02:35 -04:00
6c96c3b3f5 search_stat: show "??/?" dual in right-to-left case #10170
Co-Authored-By: James McCoy <jamessan@jamessan.com>
2019-06-09 19:59:44 +02:00
b397a3f397 Merge #10142 from blueyed/vim-1fbfe7c48
vim-patch:8.1.013{0,1}
2019-06-09 16:20:09 +02:00
b74da2ff3e vim-patch.sh: git-for-each-ref: use strip [ci skip] #10169
- It is a synonym for lstrip, which works with older Git versions also
  (2.7.4, Ubuntu Xenial).
- exit in case of errors from git-foreach-ref
- msg_err: echo to stderr

Ref: https://github.com/neovim/neovim/pull/10165#issuecomment-500164356
2019-06-09 16:13:06 +02:00
a2bb63c182 vim-patch.sh: improve performance with -l [ci skip] #10165
Down to < 1s now also (without get_vim_sources).
2019-06-09 16:01:18 +02:00
2fbeea8326 Change to not test msg_puts_pirntf() in unix CI 2019-06-09 19:02:52 +09:00
6cbcca775e Change to use VV_PROGPATH instead os_exepath() 2019-06-09 19:01:08 +09:00
da8f7141ce Add msg_puts_printf() test for multibyte characters 2019-06-09 13:29:51 +09:00
1fbc01f4ab Fix problems with message catalog directory
- In appimage, the message catalog is not used because there is no
  message catalog in LOCALE_INSTALL_DIR. Therefore, change to
  exepath/../share/locale instead of LOCALE_INSTALL_DIR.
- The old vim style($runtime/lang) is no longer used. Thus all relevant
  code is removed.
2019-06-09 13:28:10 +09:00
2d6e440877 Remove display_erros()
do_shell() in Nvim uses the Nvim UI, not the tty directly, so
display_errors() is not necessary anymore.
2019-06-09 13:28:10 +09:00
f66ffc64f6 Remove USE_MCH_ERRMSG
USE_MCH_ERRMSG has never been defined, so the dead code has been removed.
2019-06-09 13:28:10 +09:00
6fad1736fb Change mch_errmsg and mch_msg from macro to function 2019-06-09 13:28:10 +09:00
53551d823e Add test for #7967 2019-06-09 13:28:10 +09:00
9609f327da Fix garbled problem with msg_puts_printf on Windows 2019-06-09 13:27:54 +09:00
0b4c53fc23 vim-patch:8.0.1305: writefile() never calls fsync() #10153
Problem:    Writefile() never calls fsync().
Solution:   Follow the 'fsync' option with override to enable or disable.
7567d0b115
2019-06-09 00:12:28 +02:00
93afb34712 vim-patch:8.1.1191: test debug commands #10158
Problem:    Not all debug commands are covered by a test.
Solution:   Add more tests. (Yegappan Lakshmanan, closes vim/vim#4282)
0fdd943595
2019-06-09 00:10:33 +02:00
bf3e12ac85 vim-patch:8.1.0769: :stop is covered in two tests #10157
Problem:    :stop is covered in two tests.
Solution:   Remove Test_stop_in_terminal().  Make other test exit Vim cleanly.
            (Ozaki Kiichi, closes vim/vim#3814)
3020ccb113
2019-06-09 00:09:35 +02:00
644a725725 Merge #10135 from janlazo/vim-8.1.0406
vim-patch:8.1.{406,409,417,426}

close #10148
2019-06-09 00:08:44 +02:00
3dd31b2b65 vim-patch:8.1.1491: fix skipping after exception #10164
Problem:    When skipping over code after an exception was thrown expression
            evaluation is aborted after a function call. (Ingo Karkat)
Solution:   Do not fail if not executing the expression. (closes vim/vim#4507)
6064073841
2019-06-08 19:57:54 +02:00
7d70166e77 vim-patch:8.1.0131: :profdel is not tested
Problem:    :profdel is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3123)
1fbfe7c48c
2019-06-08 16:40:32 +02:00
7823b35781 vim-patch:8.1.0130: ":profdel func" does not work if func was called already
Problem:    ":profdel func" does not work if func was called already.
            (Dominique Pelle)
Solution:   Reset uf_profiling and add a flag to indicate initialization was
            done.
ad64809610
2019-06-08 16:40:32 +02:00
0206f279ba vim-patch:8.1.0426: accessing invalid memory in SmcOpenConnection()
Problem:    Accessing invalid memory in SmcOpenConnection().
Solution:   Reduce size of errorstring by one. (Dominique Pelle, closes vim/vim#3469)
4841a7ccae
2019-06-08 10:25:12 -04:00
b868f87310 test/old: ignore defaults.vim assertion 2019-06-08 10:25:12 -04:00
a64e0e6a58 vim-patch:8.1.0417: several command line arguments are not tested
Problem:    Several command line arguments are not tested.
Solution:   Add tests for -m, -M, -R and -Vfile. (Dominique Pelle,
            closes vim/vim#3458)
036b09ca78
2019-06-08 10:25:12 -04:00
a597ea7bcc vim-patch:8.1.0409: startup test fails on MS-Windows
Problem:    Startup test fails on MS-Windows.
Solution:   Do the Arabic test in silent Ex mode.  Loosen the check for -V2.
4b1c9a91b5
2019-06-08 10:25:12 -04:00
de16b6dc7a vim-patch:8.1.0406: several command line arguments are not tested
Problem:    Several command line arguments are not tested.
Solution:   Add tests for -A, -F, -H, -p and -V. (Dominique Pelle,
            closes vim/vim#3446)
9e81db9742
2019-06-08 10:25:12 -04:00
b398b1eedd vim-patch.sh: use --no-backup-if-mismatch [ci skip] #10156 2019-06-08 15:06:16 +02:00
a11fb248ef vim-patch:8.1.0830: test leaves directory behind #10152
Problem:    Test leaves directory behind on MS-Windows.
Solution:   Close buffer before deleting directory.
e3d0654544
2019-06-08 14:57:20 +02:00
d646fe73ac vim-patch:8.1.1199: no test for :abclear #9936
Problem:    No test for :abclear.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#4292)
8485be4e49
2019-06-08 14:53:32 +02:00
d486ea37b2 Merge #10151 from blueyed/vim-8.1.0807
vim-patch:8.1.{0807,0813}
2019-06-08 14:46:16 +02:00
766657320a vim-patch.sh: improve patching [ci skip] #10154
(fuzz, unified, exit)

Fixes https://github.com/neovim/neovim/issues/10143
2019-06-08 14:42:17 +02:00
230e75b63f Merge #10149 from blueyed/vim-8.1.0430
vim-patch:8.1.{0430,0529}
2019-06-08 14:19:35 +02:00
bf16b14f46 vim-patch.sh: improve performance #10137
`vim-patch.sh -L`: down to ~0.5s from ~85s.
`vim-patch.sh -l`: down to ~6s from ~90s.

    % diff old new:
    193c193
    <   • v8.0.1366
    ---
    >   • v8.0.1367
    354d353
    <   • v8.0.1738

This is due to duplicate tags for Vim commits
(https://github.com/vim/vim/issues/4510):

  - vim/vim@1ad022a9b: tagged as v8.0.1367, v8.0.1366
  - vim/vim@5d69da462: tagged as v8.0.1739, v8.0.1738
2019-06-08 14:18:35 +02:00
25ec0c8805 vim-patch.sh: fix shellcheck issues [ci skip] #10138 2019-06-08 14:02:30 +02:00
192460e6b6 vim-patch:8.1.0813: FileChangedShell not sufficiently tested
Problem:    FileChangedShell not sufficiently tested.
Solution:   Add a more comprehensive test case.
0566e891f7
2019-06-08 13:59:19 +02:00
40dee0c82e vim-patch:8.1.0807: session test fails on MS-Windows
Problem:    Session test fails on MS-Windows.
Solution:   Don't try creating file with illegal name.
9e79ccbe9c
2019-06-08 13:55:13 +02:00
7810c7ab76 vim-patch:8.1.0529: flaky test sometimes fails in different ways
Problem:    Flaky test sometimes fails in different ways.
Solution:   When the second run gives a different error, try running the test
            again, up to five times.
f77af0e613
2019-06-08 13:49:56 +02:00
ce1b4f95fe vim-patch:8.1.0430: Xargadd file left behind after running test
Problem:    Xargadd file left behind after running test.
Solution:   Delete the file. (Dominique Pelle)
d339828b4b
2019-06-08 13:46:16 +02:00
faec6fcc6a Merge #10141 from blueyed/vim-8.0.1335
vim-patch:8.0.{1335,1339,1744}
2019-06-08 13:09:35 +02:00
78df9eb51d vim-patch:1ebff3dc9 #10144
patch 8.1.0158: GUI: input() fails if CTRL-C was pressed before

Problem:    GUI: input() fails if CTRL-C was pressed before. (Michael Naumann)
Solution:   call vpeekc() to drop the CTRL-C from the input stream.
1ebff3dc93
2019-06-08 13:02:26 +02:00
7d542b5900 Test_writefile_sync_dev_stdout: use s for sync explicitly 2019-06-08 10:56:06 +02:00
b6eeb40d19 vim-patch:9980b37a80
patch 8.0.1744: on some systems /dev/stdout isn't writable

Problem:    On some systems /dev/stdout isn't writable.
Solution:   Skip test if writing is not possible. (James McCoy, closes vim/vim#2830)
9980b37a80
2019-06-08 10:56:06 +02:00
5972ff0056 vim-patch:83799a7b7
patch 8.0.1339: no test for what 8.0.1335 fixes

Problem:    No test for what 8.0.1335 fixes.
Solution:   Add a test. (Yasuhiro Matsumoto, closes vim/vim#2373)
83799a7b74
2019-06-08 10:53:48 +02:00
17528fff0c vim-patch:291a9d15e
patch 8.0.1335: writefile() using fsync() may give an error.

Problem:    Writefile() using fsync() may give an error for a device.
            (Yasuhiro Matsumoto)
Solution:   Ignore fsync() failing. (closes vim/vim#2373)
291a9d15ed

N/A: Neovim ignores EINVAL already in `file_fsync`
(https://github.com/neovim/neovim/blob/93dc59b1149/src/nvim/os/fileio.c#L232)
2019-06-08 10:52:45 +02:00
bb24fec333 defaults: exclude "S" from 'shortmess' #10136
ref #6289
2019-06-07 23:11:28 +02:00
f6f9e4a231 Merge #10114 from erw7/vim-8.1.1270
vim-patch:8.1.{0629,1270,1271,1283,1288,1289,1350,1375,1390,1475}
2019-06-07 21:28:53 +02:00
d583b7c2fa Merge #10128 from janlazo/vim-8.0.1384
vim-patch:8.0.{1384,1412,1414,1669,1702,1784},8.1.0060
2019-06-07 13:15:48 +02:00
e653f39f4f vim-patch:8.0.1702: leaking memory when autocommands make quickfix list invalid
Problem:    Leaking memory when autocommands make a quickfix list invalid.
Solution:   Call FreeWild(). (Yegappan Lakshmanan)
ee5b94a8ec
2019-06-06 22:43:48 -04:00
bb4e0deaf9 vim-patch:8.1.0060: crash when autocommands delete the current buffer
Problem:    Crash when autocommands delete the current buffer. (Dominique
            Pelle)
Solution:   Check that autocommands don't change the buffer.
600323b4ef
2019-06-06 22:43:48 -04:00
7d345a7294 vim-patch:8.0.1784: gvim test gets stuck in dialog
Problem:    Gvim test gets stuck in dialog.
Solution:   Rename the file used.
bc7845da93
2019-06-06 22:43:47 -04:00
fb2b0fa5ba vim-patch:8.0.1669: :vimgrep may add entries to the wrong quickfix list
Problem:    :vimgrep may add entries to the wrong quickfix list.
Solution:   Use the list identifier. (Yegappan Lakshmanan)
e1bb879f49
2019-06-06 22:43:47 -04:00
0234d579a7 vim-patch:8.0.1414: accessing freed memory in :lfile.
Problem:    Accessing freed memory in :lfile.
Solution:   Get the current window after executing autocommands. (Yegappan
            Lakshmanan, closes vim/vim#2473)
14a4deb064
2019-06-06 22:43:47 -04:00
427140048b vim-patch:8.0.1412: using free memory using setloclist()
Problem:    Using free memory using setloclist(). (Dominique Pelle)
Solution:   Mark location list context as still in use when needed. (Yegappan
            Lakshmanan, closes vim/vim#2462)
1223744849
2019-06-06 22:43:47 -04:00
773c488140 vim-patch:8.0.1384: not enough quickfix help; confusing winid
Problem:    Not enough quickfix help; confusing winid.
Solution:   Add more examples in the help. When the quickfix window is not
            present, return zero for getqflist() with 'winid'. Add more tests
            for jumping to quickfix list entries. (Yegappan Lakshmanan, closes
            vim/vim#2427)
74240d3feb
2019-06-06 22:43:47 -04:00
2a4e8a427e vim-patch:8.1.1475: search string not displayed when 'rightleft' is set
Problem:    Search string not displayed when 'rightleft' is set.
Solution:   Clear the right part of the old text. (closes vim/vim#4488, closes vim/vim#4489)
db294adc65
2019-06-07 09:32:49 +09:00
5263828614 vim-patch:8.1.1375: without "TS" in 'shortmess' get a hit-enter prompt often
Problem:    Without "TS" in 'shortmess' get a hit-enter prompt often.
Solution:   Always truncate the search message.  Also avoid putting it in the
            message history. (closes vim/vim#4413)
984f031fb0
2019-06-07 09:01:38 +09:00
8e8c7d7544 vim-patch:8.1.1470: new doublewidth Unicode character U32FF #10126
Problem:    New Unicode character U32FF missing from double-width table.
Solution:   Add the character.
6d718c4c38
2019-06-06 11:35:23 +02:00
3305769eae Merge pull request #10120 from bfredl/lua_schedule
Add lua function vim.schedule(cb) to defer callbacks to main loop
2019-06-05 11:49:39 +02:00
b684bd05b5 lua: docs and tests for vim.schedule 2019-06-05 10:46:22 +02:00
81e1dbca99 lua: add vim.schedule(cb)
This executes Lua callback on main loop's event queue so that nvim API
is safe to call.
2019-06-05 10:42:23 +02:00
ec671c7048 vim-patch:8.1.1390: search stats are off when using count or offset
Problem:    Search stats are off when using count or offset.
Solution:   Recompute the stats when needed. (Masato Nishihata, closes vim/vim#4410)
8f46e4c4bd
2019-06-05 10:08:45 +09:00
2d567ac47e vim-patch:8.1.1350: "W" for wrapping not shown when more than 99 matches
Problem:    "W" for wrapping not shown when more than 99 matches.
Solution:   Adjust check for length. (Masato Nishihata, closes vim/vim#4388)
dc6855af97
2019-06-05 09:57:38 +09:00
68202520c6 vim-patch:8.1.1289: may not have enough space to add "W" to search stats
Problem:    May not have enough space to add "W" to search stats.
Solution:   Reserve a bit more space. (Christian Brabandt)
b6cb26ffe1
2019-06-05 09:57:37 +09:00
287fc076e1 vim-patch:8.1.1288: search stats don't show for mapped command
Problem:    Search stats don't show for mapped command.
Solution:   Remove SEARCH_PEEK from searchit flags.  Add a test. (Christian
            Brabandt)
9ce3fa828d
2019-06-05 09:57:37 +09:00
e8ca281d3b vim-patch:8.1.1283: delaying half a second after the top-bot message
Problem:    Delaying half a second after the top-bot message.
Solution:   Instead of the delay add "W" to the search count.
c7a10b35de
2019-06-05 09:57:25 +09:00
6cee73195f vim-patch:8.1.1271: compiler warnings for use of STRNCPY()
Problem:    Compiler warnings for use of STRNCPY(). (John Marriott)
Solution:   Use mch_memmove() instead of STRNCPY().
b3de6c4a76
2019-06-05 09:55:09 +09:00
777c2a25ce vim-patch:8.1.1270: cannot see current match position
Problem:    Cannot see current match position.
Solution:   Show "3/44" when using the "n" command and "S" is not in
            'shortmess'. (Christian Brabandt, closes vim/vim#4317)
9dfa313919
2019-06-05 09:54:52 +09:00
16ee24082f Merge pull request #10117 from bfredl/ctrl-o_event
normal: Don't exit CTRL-O mode after processing K_EVENT
2019-06-04 15:23:40 +02:00
3adb8a10b1 Merge pull request #9170 from bfredl/lua_cb
lua callbacks for nvim_buf_attach
2019-06-04 14:54:44 +02:00
e50aa2a6c6 normal: Don't exit CTRL-O mode after processing K_EVENT 2019-06-04 13:59:43 +02:00
f5c56f03bb api: allow nvim_buf_attach from lua using callbacks 2019-06-04 13:45:20 +02:00
db415bde5f version.c: update [ci skip] #10072
vim-patch:8.0.0803
vim-patch:8.0.0816: crash when using invalid buffer number
vim-patch:8.0.0817: cannot get the terminal line at the cursor
vim-patch:8.0.0818: cannot get the cursor position of a terminal
vim-patch:8.0.0821: cannot get the title and status of a terminal window
vim-patch:8.0.0863: a remote command does not work in the terminal window
vim-patch:8.0.0864: cannot specify the name of a terminal
vim-patch:8.0.0867: job and channel in a dict value not quoted
vim-patch:8.0.0869: job output is sometimes not displayed in a terminal
vim-patch:8.0.0870: mouse escape codes sent to terminal unintentionally
vim-patch:8.0.0874: can't build with terminal feature
vim-patch:8.0.0877: using CTRL-\ CTRL-N in terminal is inconsistent
vim-patch:8.0.0882: term_scrape() and term_getline() require two arguments
vim-patch:8.0.0884: can't specify the wait time for term_wait()
vim-patch:8.0.0885: terminal window scrollback is stored inefficiently
vim-patch:8.0.0887: can create a logfile in the sandbox
vim-patch:8.0.0892: when opening a terminal the pty size doesn't always match
vim-patch:8.0.0893: cannot get the scroll count of a terminal window
vim-patch:8.0.0896: cannot close a terminal window when the job ends
vim-patch:8.0.0898: can't use the alternate screen in a terminal window
vim-patch:8.0.0899: function name mch_stop_job() is confusing
vim-patch 8.0.0909: channel test fails
vim-patch:8.0.0913: MS-Windows: CTRL-C kills shell in terminal window

vim-patch:8.1.0216: part of file not indented properly
vim-patch:8.1.0784: messy indent in if statement
vim-patch:8.1.1409: Coverity warns for using uninitialized memory
vim-patch:8.1.1415: build error in MS-Windows GUI
vim-patch:8.1.1454: build failure without the conceal feature
vim-patch:8.1.1457: cannot reuse a buffer when loading a screen dump
2019-06-04 09:25:23 +02:00
2ae5427b3c Merge #10113 from janlazo/vim-8.0.1518
vim-patch:8.0.1518,8.1.{2,804}
2019-06-04 09:20:59 +02:00
58f505dc74 Merge #9829 'startup: remove TUI init special-case'
fixes #7967
fixes #9959

Historically Vim/Nvim does backflips to handle input and show messages
before a UI is available. This logical contradiction was already fixed
for remote UIs (#9024 c236e80cf3). Fixing it also for the TUI avoids
problems on Windows, simplifies the logic, and avoids races like #9959.

- Move ui_builtin_start() to the same position as embedded_mode
  remote_ui_wait_for_attach().
- If stdin is redirected, save the original `stdin` and replace fd
  0 with tty before calling `ui_builtin_start()`.
2019-06-04 09:14:45 +02:00
5f41ca4013 vim-patch:8.1.0002: :stopinsert changes the message position
Problem:    :stopinsert changes the message position.
Solution:   Save and restore msg_col and msg_row in clearmode(). (Jason
            Franklin)
2abad54ced
2019-06-03 23:18:16 -04:00
233a173226 vim-patch:8.1.0804: crash when setting v:errmsg to empty list
Problem:    Crash when setting v:errmsg to empty list. (Jaon Franklin)
Solution:   Separate getting value and assigning result.
4b9e91f0ba
2019-06-03 23:12:23 -04:00
485972dd64 vim-patch:8.1.0629: "gn" selects the wrong text with a multi-line match
Problem:    "gn" selects the wrong text with a multi-line match.
Solution:   Get the end position from searchit() directly. (closes vim/vim#3695)
5d24a2257e
2019-06-04 09:53:55 +09:00
7ad621b6d9 vim-patch:8.0.1518: error messages suppressed after ":silent! try"
Problem:    Error messages suppressed after ":silent! try". (Ben Reilly)
Solution:   Restore emsg_silent before executing :try. (closes vim/vim#2531)
2be5733152
2019-06-03 20:11:29 -04:00
4719fdb3a4 main.c: Change to use redraw_later(VALID) 2019-06-04 08:49:27 +09:00
89c2747eed Fix issue where test fails 2019-06-04 08:49:27 +09:00
e4c85c362d [skip appveyor] Fix clint issue 2019-06-04 08:49:26 +09:00
402b4e8fbe main.c: Change TUI to initialize like GUI 2019-06-04 08:47:52 +09:00
5fced444bb tui/input.c: Fix problem when stdin is not TTY 2019-06-04 08:47:51 +09:00
fcf6bfd360 main.c: fixes #7967 2019-06-04 08:41:11 +09:00
16b1e8f9c0 Merge #9338 from janlazo/vim-8.1.0569
vim-patch:8.1.{569,571}
2019-06-04 00:14:49 +02:00
49733df939 Merge #9338 'vim-patch:8.1.{569,571}' 2019-06-03 22:56:43 +02:00
dc4fa0b24d Merge #10109 from erw7/fix-screenchar-on-headless-mode
ref #9338
2019-06-03 22:45:00 +02:00
c06504687d msg_puts_attr_len: check default_grid.chars if headless
Nvim might call `msg_puts_attr_len` before the screen buffers are allocated.
2019-06-03 22:41:48 +02:00
27b684b83f Fix screenchar() problem in headless mode
In the case of the headless mode, screenchar() does not operate normally
because it is not output to the internal screen. Change output to stderr
and internal screen to fix it.
2019-06-03 22:41:48 +02:00
4841c46e33 Merge pull request #10112 from bfredl/noautobuf
api/buffer: avoid spurios Buf[Win]Enter in nvim_buf_set_lines
2019-06-03 14:36:21 +02:00
7ac3c311ee api/buffer: create new buffers in the "opened" state
Otherwise vim will think that ml_append() needs to "enter" the buffer,
which emits unexpected autocommands.

ref https://github.com/vim-airline/vim-airline/issues/1930
2019-06-03 13:54:03 +02:00
3273e39db6 Merge pull request #10107 from gelguy/c_ctrl_d
Fix multiple <C-D> showing statusline on previous completion list
2019-06-03 12:10:28 +02:00
3d24bb48e7 test: don't detach screen just to change the size 2019-06-03 11:23:10 +02:00
c96aed2ba7 Add test 2019-06-03 11:14:07 +02:00
d19ff73b39 Fix multiple c_CTRL-D showing statusline 2019-06-03 11:14:07 +02:00
559401ebe5 oldtests: set laststatus=1 2019-06-03 00:12:01 -04:00
f0078c26c2 functionaltests: fix new execute() tests 2019-06-03 00:12:01 -04:00
5a4e7af77d update functional test for "places cursor correctly #6035" 2019-06-03 00:12:01 -04:00
73a2922413 UI: Fix wrong msg_col after execute()
closes #6035
closes #9250
2019-06-03 00:12:01 -04:00
7443da6f6e vim-patch:8.1.0571: non-silent execute() resets display column to zero
Problem:    Non-silent execute() resets display column to zero.
Solution:   Keep the display column as-is.
446e7a3cd3
2019-06-03 00:12:01 -04:00
8de5d64169 vim-patch:8.1.0569: execute() always resets display column to zero
Problem:    Execute() always resets display column to zero. (Sha Liu)
Solution:   Don't reset it to zero, restore the previous value. (closes vim/vim#3669)
10ccaa17ec
2019-06-03 00:12:01 -04:00
f046f3a239 build: fix some warnings
../src/nvim/event/rstream.c:119:44: warning: format specifies type 'void *' but the argument has type 'Stream *' (aka 'struct stream *') [-Wformat-pedantic]
          DLOG("Closing Stream (%p): %s (%s)", stream,
                                ~~             ^~~~~~
    ../src/nvim/event/stream.c:95:30: warning: format specifies type 'void *' but the argument has type 'Stream *' (aka 'struct stream *') [-Wformat-pedantic]
      DLOG("closing Stream: %p", stream);
                            ~~   ^~~~~~
    ../src/nvim/msgpack_rpc/channel.c:71:72: warning: format specifies type 'void *' but the argument has type 'Stream *' (aka 'struct stream *') [-Wformat-pedantic]
        DLOG("rpc ch %" PRIu64 " in-stream=%p out-stream=%p", channel->id, in, out);
                                           ~~                              ^~
    ../src/nvim/msgpack_rpc/channel.c:71:76: warning: format specifies type 'void *' but the argument has type 'Stream *' (aka 'struct stream *') [-Wformat-pedantic]
        DLOG("rpc ch %" PRIu64 " in-stream=%p out-stream=%p", channel->id, in, out);
                                                         ~~                    ^~~
    ../src/nvim/msgpack_rpc/channel.c:226:28: warning: format specifies type 'void *' but the argument has type 'Stream *' (aka 'struct stream *') [-Wformat-pedantic]
           channel->id, count, stream);
                               ^~~~~~
2019-06-03 00:21:20 +02:00
c0134660ab test: avoid some boilerplate 2019-06-03 00:08:32 +02:00
40218d1180 Make sure msg_clear is sent after confirm message (#10065) 2019-06-02 23:38:19 +02:00
8a33cb32ba Merge #10086 'vim-patch:8.1.{902,1114}' 2019-06-02 23:32:28 +02:00
Jit
b65a7b7f66 [RDY] Fix wildmode=list,full and display+=msgsep interaction (#10103)
* Fix wildmode=list and display+=msgsep interaction
* Add test to check ext_messages behaviour is unchanged
2019-06-02 21:38:34 +02:00
cbe45a303e Merge #10104 from justinmk/dep-libuv
deps: update to libuv v1.29.1
2019-06-02 16:52:12 +02:00
370ad05229 deps: update to libuv v1.29.1
Fixes #10101
See also 0ac1363599

Notable changes since v1.26.0:

- v1.27.0
  - linux: use statx() to obtain file birth time
- v1.28.0
  - unix,win: add uv_gettimeofday()
  - unix,win: add uv_fs_{open,read,close}dir()
  - unix: fix uv_interface_addresses()
  - fs: remove macOS-specific copyfile(3) fixes neovim/neovim#10101
  - unix: suppress EINTR/EINPROGRESS in uv_fs_close()
- v1.29.0
  - unix: fix race condition in uv_async_send()
  - linux: use O_CLOEXEC instead of EPOLL_CLOEXEC
  - linux: read free/total memory from /proc/meminfo
  - unix: don't assert on UV_PROCESS_WINDOWS_* flags
  - unix,win: add uv_get_constrained_memory()
- v1.29.1
  - linux: fix sscanf() overflows reading from /proc
2019-06-02 15:53:57 +02:00
2e171a6fd1 test: cleanup, reduce verbosity 2019-06-01 21:59:42 +02:00
ed24a297e5 doc [ci skip] #10097
- fix broken links (|buffered| was renamed to |channel-buffered|)
- rewrite `:h channel-lines`
2019-06-01 20:14:29 +02:00
95ece7d046 signs: fix crash in buf_addsign #10091
buf_signcols sorting breaks signlist structure.

Remove sorting in buf_signcols, because signlist is already kept
sorted and it did not correctly update the double linked list.

Fixes #10078
2019-06-01 12:03:59 +02:00
ef33500e17 Merge #10099 from janlazo/vim-8.1.1000
vim-patch:8.1.{1000,1436}
2019-06-01 11:35:41 +02:00
afcfb7bd58 vim-patch:8.1.1436: writefile test fails when run under /tmp
Problem:    Writefile test fails when run under /tmp.
Solution:   Adjust 'backupskip. (Kenta Sato, closes vim/vim#4462)
c28cb5b16d
2019-06-01 01:18:48 -04:00
2d002100b3 lint 2019-06-01 00:37:36 -04:00
a51f24fda3 vim-patch:8.1.1000: indenting is off
Problem:    Indenting is off.
Solution:   Make indenting consistent and update comments. (Ozaki Kiichi,
            closes vim/vim#4079)
fd731b0e31
2019-06-01 00:15:02 -04:00
c6cd6081b8 Merge #10083 from janlazo/vim-8.0.0785
vim-patch:8.0.0785
2019-05-29 10:49:02 +02:00
bfc44a91ac vim-patch:8.1.1114: confusing overloaded operator "." for string concatenation
Problem:    Confusing overloaded operator "." for string concatenation.
Solution:   Add ".." for string concatenation.  Also "let a ..= b".
0f248b006c
2019-05-29 12:54:42 +09:00
f3dc63a6ff lint 2019-05-28 23:17:09 -04:00
d46aaa0746 vim-patch:8.1.0902: incomplete set of assignment operators
Problem:    Incomplete set of assignment operators.
Solution:   Add /=, *= and %=. (Ozaki Kiichi, closes vim/vim#3931)
ff697e6cef
2019-05-29 12:05:56 +09:00
18c2ae7284 vim-patch:8.0.0785: wildcards are not expanded for :terminal
Problem:    Wildcards are not expanded for :terminal.
Solution:   Add FILES to the command flags. (Yasuhiro Matsumoto, closes vim/vim#1883)
            Also complete commands.
67883b4909
2019-05-28 23:03:02 -04:00
f8f63393c1 vim-patch:8.1.1411: fix divide by zero #10073
Problem:    Coverity warns for divide by zero.
Solution:   Make sure width is larger than zero.
7833dab73c
2019-05-28 12:15:38 +02:00
c423ec65dc version.c: update [ci skip] (#9875)
vim-patch:8.0.0514: script for creating cmdidxs can be improved
vim-patch:8.0.0715
vim-patch:8.0.0754: terminal window does not support colors
vim-patch:8.0.0755: terminal window does not have colors in the GUI
vim-patch:8.0.0760: terminal window colors wrong with 'termguicolors'
vim-patch:8.0.0769: build problems with terminal on MS-Windows
vim-patch:8.0.0775: in a terminal the cursor is updated too often
vim-patch:8.0.0777: compiler warnings with 64 bit compiler
vim-patch:8.0.0779: :term without an argument uses empty buffer name
vim-patch:8.0.0781: MS-Windows: memory leak when using :terminal
vim-patch:8.0.0783: job of terminal may be freed too early
vim-patch:8.0.0784: job of terminal may be garbage collected
vim-patch:8.0.0787: cannot send CTRL-W command to terminal job
vim-patch:8.0.0788: MS-Windows: cannot build with terminal feature
vim-patch:8.0.0789: splitting terminal window has resizing problems
vim-patch:8.0.0793: using wrong terminal name for terminal window
vim-patch:8.0.0798: no highlighting in a terminal window with a finished job
vim-patch:8.0.0800
vim-patch:8.0.0801: terminal window title says "running" after job exits
vim-patch:8.0.0807: terminal window can't handle mouse buttons
vim-patch:8.0.0813: cannot use a terminal window while the job is running
vim-patch:8.0.0815: terminal window not correctly updated
vim-patch:8.0.0819: cursor not positioned in terminal window
vim-patch:8.0.0820: GUI: cursor in terminal window lags behind
vim-patch:8.0.0823: cannot paste text into a terminal window
vim-patch:8.0.0824: in Terminal mode the cursor and screen gets redrawn
vim-patch:8.0.0826: cannot use text objects in Terminal mode
vim-patch:8.0.0827: Coverity: could leak pty file descriptor
vim-patch:8.0.0829: job running in terminal can't communicate with Vim
vim-patch:8.0.0832: terminal function arguments are not consistent
vim-patch:8.0.0833: terminal test fails
vim-patch:8.0.0836: can abandon a terminal buffer after making a change
vim-patch:8.0.0838: buffer hangs around whem terminal window is closed
vim-patch:8.0.0839: cannot kill a job in a terminal with CTRL-C
vim-patch:8.0.0841: term_getline() may cause a crash
vim-patch:8.0.0842: using slave pty after closing it
vim-patch:8.0.0845: MS-Windows: missing semicolon in terminal code
vim-patch:8.0.0846: cannot get the name of the pty of a job
vim-patch:8.0.0848: using multiple ch_log functions is clumsy
vim-patch:8.0.0849: crash when job exit callback wipes the terminal
vim-patch:8.0.0850: MS-Windows: error message while starting up may be broken
vim-patch:8.0.0852: MS-Windows: possible crash when giving a message on startup
vim-patch:8.0.0854: no redraw after terminal was closed
vim-patch:8.0.0855: MS-Windows: can't get tty name of terminal
vim-patch:8.0.0856: MS-Windows: terminal job doesn't take options
vim-patch:8.0.0857: terminal test fails on MS-Windows
vim-patch:8.0.0859: NULL pointer access when term_free_vterm called twice
vim-patch:8.0.0860: side effects when channel appends to a buffer
vim-patch:8.0.0868: cannot specify the terminal size on the command line
vim-patch:8.0.0873: in terminal cannot use CTRL-\ CTRL-N to start Visual mode
vim-patch:8.0.0888: compiler warnings with 64 bit build
vim-patch:8.0.0889: gcc gives warnings for uninitialized variables
vim-patch:8.0.0891: uninitialized memory use with empty line in terminal
vim-patch:8.0.0897: wrong error message for invalid term_finish value
vim-patch:8.0.0905: MS-Windows: broken multi-byte characters in the console
vim-patch:8.0.0907: with cp932 font names might be misinterpreted
vim-patch:8.0.0911: terminal test takes too long
vim-patch:8.0.0928: MS-Windows: passing arglist to job has escaping problems
vim-patch:8.0.0945: 64-bit compiler warnings
vim-patch:8.0.0949: winpty.dll name is fixed
vim-patch:8.0.0952: has('terminal') does not check existence of dll file
vim-patch:8.0.1028: MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set
vim-patch:8.0.1061: Coverity: no check for NULL command
vim-patch:8.0.1063: Coverity warns for NULL check and array use
vim-patch:8.0.1064: Coverity warns for leaking resource
vim-patch:8.0.1138: click in window toolbar starts Visual mode
vim-patch:8.0.1266: Test_swap_directory was commented out
vim-patch:8.0.1348: make testclean deletes script file on MS-Windows
vim-patch:8.0.1499: out-of-memory situation not correctly handled
vim-patch:8.0.1501: out-of-memory situation not correctly handled
vim-patch:8.0.1524: compiler warnings for uninitialized variables
vim-patch:8.0.1532: compiler warnings without termguicolors feature
vim-patch:8.0.1607: --clean loads user settings from .gvimrc
vim-patch:8.0.1626: compiler warning for possible loss of data
vim-patch:8.0.1654: warnings for conversion of void to function pointer
vim-patch:8.0.1661: warnings from 64 bit compiler
vim-patch:8.0.1676: no compiler warning for wrong printf format
vim-patch:8.0.1677: no compiler warning for wrong format in vim_snprintf()
vim-patch:8.0.1687: 64 bit compiler warnings
vim-patch:8.0.1773: dialog messages are not translated
vim-patch:8.0.1803: warning for uninitialized variable
vim-patch:8.0.1824: Coverity warns for variable that may be uninitialized
vim-patch:8.0.1827: compiler warning for signed/unsigned char pointers

vim-patch:8.1.0023: gcc 8.1 warns for use of strncpy()
vim-patch:8.1.0054: compiler warning for using %ld for "long long"
vim-patch:8.1.0645: Coverity warns for possible use of NULL pointer
vim-patch:8.1.0704: building with Ruby 2.6 gives compiler warnings
vim-patch:8.1.0721: conceal mode is not sufficiently tested
vim-patch:8.1.0725: conceal mode is not completely tested
vim-patch:8.1.0730: compiler warning for get_buf_arg() unused
vim-patch:8.1.0744: compiler warnings for signed/unsigned strings
vim-patch:8.1.0762: compiler warning
vim-patch:8.1.0763: nobody is using the Sun Workshop support
vim-patch:8.1.0773: not all crypt code is tested
vim-patch:8.1.0787: compiler warning for unused function
vim-patch:8.1.0791: a few compiler warnings on VMS
vim-patch:8.1.0801: MinGW: no hint that tests fail because of small terminal
vim-patch:8.1.0838: compiler warning for type conversion
vim-patch:8.1.0962: building with MinGW and static libs doesn't work
vim-patch:8.1.1145: compiler warning for unused function
vim-patch:8.1.1146: in MS-Windows console colors in a terminal window are wrong
vim-patch:8.1.1147: desktop file translations are requiring manual updates
vim-patch:8.1.1149: building desktop files fails with older msgfmt
vim-patch:8.1.1150: generating desktop files not tested on Travis
vim-patch:8.1.1151: build fails when using shadow directory
vim-patch:8.1.1152: compiler warning with VS2019
vim-patch:8.1.1154: getting a newer msgfmt on Travis is too complicated
vim-patch:8.1.1158: json encoded string is sometimes missing the final NUL
vim-patch:8.1.1159: MS-Windows: with a silent (un)install $VIM/_vimrc is removed
vim-patch:8.1.1161: unreachable code
vim-patch:8.1.1163: codecov does not report all the coverage information
vim-patch:8.1.1174: cannot build with Ruby 1.8
vim-patch:8.1.1182: some function prototypes are outdated
vim-patch:8.1.1183: typos in VisVim comments
vim-patch:8.1.1196: parallel build may fail
vim-patch:8.1.1198: bracketed paste may remain active after Vim exists
vim-patch:8.1.1208: links to repository use wrong file name
vim-patch:8.1.1215: "make clean" does not remove generated src/po files
vim-patch:8.1.1217: MS-Windows: no space reserved for font quality name
vim-patch:8.1.1220: build fails on MS-Windows
vim-patch:8.1.1222: build still fails on MS-Windows
vim-patch:8.1.1225: cannot create a pty to use with :terminal on FreeBSD
vim-patch:8.1.1227: duplicate entries in the generate .desktop files
vim-patch:8.1.1229: warning for posix_openpt() not declared
vim-patch:8.1.1233: cannot build tiny version
vim-patch:8.1.1238: MS-Windows: compiler warning for sprintf() format
vim-patch:8.1.1239: key with byte sequence containing CSI does not work
vim-patch:8.1.1240: runtime desktop files are overwritten by build
vim-patch:8.1.1243: compiler warnings for incomplete switch statement
vim-patch:8.1.1246: cannot handle negative mouse coordinate from urxvt
vim-patch:8.1.1255: building desktop files fails on FreeBSD
vim-patch:8.1.1257: MSVC: name of object directory now always right
vim-patch:8.1.1258: the "N files to edit" message can not be surpressed
vim-patch:8.1.1262: cannot simulate a mouse click in a test
vim-patch:8.0.1270: mismatching file name with Filelist
vim-patch:8.1.1273: compiler warning in direct write code
vim-patch:8.1.1277: missing screenshot update
vim-patch:8.1.1282: running make in src/po leaves LINGUAS file behind
vim-patch:8.1.1287: cannot build with +eval but without +mouse
vim-patch:8.1.1290: .hgignore and .gitignore are either distributed or in git
vim-patch:8.1.1294: MS-Windows: Some fonts return wrong average char width
vim-patch:8.0.1298: missing test file
vim-patch:8.1.1301: when compiled with VIMDLL some messages are not shown
vim-patch:8.1.1304: MS-Windows: compiler warning for unused value
vim-patch:8.1.1314: MSVC makefile is not nicely indented
vim-patch:8.1.1315: there is always a delay if a termrequest is never answered
vim-patch:8.1.1317: output from Travis can be improved
vim-patch:8.1.1322: Cygwin makefile is not nicely indented
vim-patch:8.1.1323: 'mouse' option is reset when using GPM mouse
vim-patch:8.1.1324: stray comma in VMS makefile
vim-patch:8.1.1339: installer needs to product name et al.
vim-patch:8.1.1361: Python setuptools don't work with Python 3
vim-patch:8.1.1369: get E484 when using system() during GUI startup
vim-patch:8.1.1370: not using the new github feature for donations
vim-patch:8.1.1377: MS-Windows GUI uses wrong shell command for bash
vim-patch:8.1.1380: MS-Windows building VIMDLL with MSVC: SUBSYSTEM is not set
vim-patch:8.1.1381: MS-Windows: missing build dependency
vim-patch:8.1.1397: build fails in tiny version
vim-patch:8.1.1398: duplicate line in MSVC build file
vim-patch:8.1.1404: cannot change the patch level when building with NSIS
vim-patch:8.1.1153 does not exist or was suppose to be
                   9a419ffb93
                   which is N/A.
vim-patch:8.0.0732: when updating a buffer modeless selection is lost
vim-patch:8.0.0764: 'termkey' does not work yet (already implemented in #1820)
vim-patch:8.0.0766: option test fails with +terminal feature (also about termkey, #1820)
2019-05-28 01:00:56 +02:00
69b3d5acd3 Merge #10068 from janlazo/vim-8.1.0020
vim-patch:8.1.{20,995,1077}
2019-05-27 12:01:35 +02:00
3c3b7844b9 lint 2019-05-26 21:50:37 -04:00
b2a11515b2 vim-patch:8.1.1077: reg_executing() is reset by calling input()
Problem:    reg_executing() is reset by calling input().
Solution:   Implement a more generic way to save and restore reg_executing.
            (Ozaki Kiichi, closes vim/vim#4192)
9a2c091a74
2019-05-26 20:58:57 -04:00
2393611588 vim-patch:8.1.0995: a getchar() call resets the reg_executing() result
Problem:    A getchar() call while executing a register resets the
            reg_executing() result.
Solution:   Save and restore reg_executing. (closes vim/vim#406
f0fab3046c
2019-05-26 20:55:44 -04:00
21f160746a vim-patch:8.1.0020: cannot tell whether a register is executing or recording
Problem:    Cannot tell whether a register is being used for executing or
            recording.
Solution:   Add reg_executing() and reg_recording(). (Hirohito Higashi,
            closes vim/vim#2745)  Rename the global variables for consistency.  Store
            the register name in reg_executing.
0b6d911e5d
2019-05-26 20:24:11 -04:00
fb4d5a1846 UI/ext_messages: restore kind=quickfix #10067
Accidentally removed in 34f9e72af9.
ref #6201
2019-05-27 00:01:41 +02:00
1ca84897a0 Merge #10059 from jerdna-regeiz/vim-8.1.0614
vim-patch:8.1.0614,8.1.0632,8.1.0644,8.1.0658,8.1.0660,8.1.0669,8.1.0673,8.1.0679,8.1.0697,8.1.0701,8.1.0702,8.1.0709,8.1.0717,8.1.0750,8.1.0767,8.1.0772,8.1.0039
2019-05-26 20:59:28 +02:00
Jit
0bbaef8a99 UI/cmdline: check if redraw is needed after K_EVENT, K_COMMAND #9804
fixes #8490
2019-05-26 19:52:30 +02:00
80f40f0203 lint 2019-05-26 19:32:32 +02:00
0b9e57aca1 Skipping Test_sign_memfailures (unsupported memory checks) 2019-05-26 19:32:32 +02:00
897431c486 Fix out of bounds read in sign_group_ref 2019-05-26 19:32:32 +02:00
237cecd81b vim-patch:8.1.0039: cannot easily delete lines in another buffer
Problem:    Cannot easily delete lines in another buffer.
Solution:   Add deletebufline().
d79a26219d
2019-05-26 19:32:32 +02:00
8df9213d1b Resolved compile warnings & fixed lot of style related to sign api 2019-05-26 19:32:32 +02:00
51563b70d7 Allow multiple signs of same type in one line (matching vim behaviour)
This partly rolls back 36762a00a8,
but it matches vim behaviour (covered with recent tests - oldtest).
2019-05-26 19:32:32 +02:00
7d43943e4e Fixed ordering of signs to align vim and neovim behaviour 2019-05-26 19:32:32 +02:00
f2341164c6 Changed sign_mark_adjust behaviour to match vim
Vim does not delete/free signs if they are placed on lines which get
deleted. In case of undo it does make a difference as in vim the sign
will be still available.
2019-05-26 19:32:32 +02:00
93e18e698e vim-patch:8.1.0772: the sign_define_by_name() function is too long
Problem:    The sign_define_by_name() function is too long.
Solution:   Split it into smaller functions. (Yegappan Lakshmanan,
            closes vim/vim#3819)
0314236aab
2019-05-26 19:32:32 +02:00
fb4cf05e44 vim-patch:8.1.0767: when deleting lines at the bottom signs are misplaced
Problem:    When deleting lines at the bottom signs are misplaced.
Solution:   Properly update the line number of signs at the end of a buffer
            after a delete/undo operation. (Yegappan Lakshmanan, closes vim/vim#3798)
c771bf9016
2019-05-26 19:32:32 +02:00
c5f3dbab35 vim-patch:8.1.0750: when the last sign is deleted the signcolumn may remain
Problem:    When the last sign is deleted the signcolumn may not be removed
            even though 'signcolumn' is "auto".
Solution:   When deleting the last sign redraw the buffer. (Dominique Pelle,
            closes vim/vim#3803, closes vim/vim#3804)
8144acbec3
2019-05-26 19:32:32 +02:00
fa07cc215d vim-patch:8.1.0717: there is no function for the ":sign jump" command
Problem:    There is no function for the ":sign jump" command.
Solution:   Add the sign_jump() function. (Yegappan Lakshmanan, closes vim/vim#3780)
6b7b7190aa
2019-05-26 19:32:32 +02:00
e09f3baed8 vim-patch:8.1.0709: windows are updated for every added/deleted sign
Problem:    Windows are updated for every added/deleted sign.
Solution:   Do not call update_debug_sign().  Only redraw when the line with
            the sign is visible.  (idea from neovim vim/vim#9479)
27a472c32e
2019-05-26 19:32:32 +02:00
f43900f686 vim-patch:8.1.0702: ":sign place" only uses the current buffer
Problem:    ":sign place" only uses the current buffer.
Solution:   List signs for all buffers when there is no buffer argument.
            Fix error message for invalid buffer name in sign_place().
            (Yegappan Lakshmanan, closes vim/vim#3774)
b589f95b38
2019-05-26 19:32:32 +02:00
35fbb4e1ca vim-patch:8.1.0701: sign message not translated and inconsistent spacing
Problem:    Sign message not translated and inconsistent spacing.
Solution:   Add _() for translation.  Add a space. (Ken Takata)  Also use
            MSG_BUF_LEN instead of BUFSIZ.
d730c8e297
2019-05-26 19:32:32 +02:00
e70609cfac vim-patch:8.1.0697: ":sign place" requires the buffer argument
Problem:    ":sign place" requires the buffer argument.
Solution:   Make the argument optional.  Also update the help and clean up the
            sign test. (Yegappan Lakshmanan, closes vim/vim#3767)
b328cca254
2019-05-26 19:32:32 +02:00
54c4567564 vim-patch:8.1.0679: sign functions do not take buffer argument as documented
Problem:    Sign functions do not take buffer argument as documented.
Solution:   Use get_buf_tv(). (Yegappan Lakshmanan, closes vim/vim#3755)
2cbc1a02cb
2019-05-26 19:32:32 +02:00
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
ce021baea0 vim-patch:8.1.0669: the ex_sign() function is too long
Problem:    The ex_sign() function is too long.
Solution:   Refactor the function.  Add a bit more testing. (Yegappan
            Lakshmanan, closes vim/vim#3745)
a355652ea5
2019-05-26 19:32:31 +02:00
88720c626e vim-patch:8.1.0660: sign_cleanup() may leak memory
Problem:    sign_cleanup() may leak memory.
Solution:   Free the group name before returning.  Add a few more tests.
            (Yegappan Lakshmanan)
1ea88a3e12
2019-05-26 19:32:31 +02:00
09c236ba5c vim-patch:8.1.0658: deleting signs and completion for :sign is insufficient
Problem:    Deleting signs and completion for :sign is insufficient.
Solution:   Add deleting signs in a specified or any group from the current
            cursor location.  Add group and priority to sign command
            completion. Add tests for different sign unplace commands. Update
            help text.  Add tests for sign jump with group. Update help for
            sign jump. (Yegappan Lakshmanan, closes vim/vim#3731)
7d83bf4f2b
2019-05-26 19:32:31 +02:00
3ee55edd2e vim-patch:8.1.0644: finding next sign ID is inefficient
Problem:    Finding next sign ID is inefficient.
Solution:   Add next_sign_id. (Yegappan Lakshmanan, closes vim/vim#3717)
6436cd83f9
2019-05-26 19:32:31 +02:00
4f844c587c vim-patch:8.1.0632: using sign group names is inefficient
Problem:    Using sign group names is inefficient.
Solution:   Store group names in a hash table and use a reference to them.
            Also remove unnecessary use of ":exe" from the tests.  (Yegappan
            Lakshmanan, closes vim/vim#3715)
7a2d9892b7
2019-05-26 19:32:31 +02:00
fb9abd7d99 vim-patch:8.1.0614: placing signs can be complicated
Problem:    Placing signs can be complicated.
Solution:   Add functions for defining and placing signs.  Introduce a group
            name to avoid different plugins using the same signs. (Yegappan
            Lakshmanan, closes vim/vim#3652)
162b71479b
2019-05-26 19:32:31 +02:00
fc7861f0fa Merge #9897 from janlazo/vim-8.0.0683 2019-05-26 18:44:35 +02:00
aabda31d54 Merge pull request #9547 from bfredl/rpc_multiline_err
messages: use proper multiline errors for rpcrequest and API wrappers
2019-05-26 18:11:49 +02:00
2b4c0181ba Merge #10064 from janlazo/vim-8.1.0211
vim-patch:8.1.{211,307}
2019-05-26 16:33:10 +02:00
52215f5752 doc/API: document indexing behavior #10058
close #10058
2019-05-26 16:15:20 +02:00
8ed54bbec3 messages: use proper multiline error message for rpcrequest and API wrappers 2019-05-26 15:42:16 +02:00
58d6e2d3cc lint 2019-05-26 07:27:50 -04:00
f60af8694b vim-patch:8.1.0307: there is no good way to get the window layout
Problem:    There is no good way to get the window layout.
Solution:   Add the winlayout() function. (Yegappan Lakshmanan)
0f6b4f06de
2019-05-26 07:27:50 -04:00
08aa9b0023 vim-patch:8.1.0211: expanding a file name "~" results in $HOME
Problem:    Expanding a file name "~" results in $HOME. (Aidan Shafran)
Solution:   Change "~" to "./~" before expanding. (closes vim/vim#3072)
00136dc321
2019-05-25 20:36:01 -04:00
55419a6904 Merge #10063 from janlazo/vim-8.1.0205
vim-patch:8.1.{205,206,208,506,546,547,751}
2019-05-25 23:45:00 +02:00
68de7e7244 test/old: remove duplicates, run test_tabpage.vim 2019-05-25 16:49:31 -04:00
06d9fa2e0c vim-patch:8.1.0751: some regexp errors are not tested
Problem:    Some regexp errors are not tested.
Solution:   Add a test function.
6057ed4720
2019-05-25 16:33:18 -04:00
f2f625c984 vim-patch:8.1.0547: modeline test with keymap still fails
Problem:    Modeline test with keymap still fails.
Solution:   Check that the keymap feature is available for the failure assert.
3067a4dd0d
2019-05-25 15:41:25 -04:00
55a88bcb1e vim-patch:8.1.0546: modeline test with keymap fails
Problem:    Modeline test with keymap fails.
Solution:   Check that the keymap feature is available.
4ace6ab7e7
2019-05-25 15:40:47 -04:00
b41ebe3e81 vim-patch:8.1.0506: modeline test fails when run by root
Problem:    Modeline test fails when run by root.
Solution:   Set 'modeline' for the test. (James McCoy, closes vim/vim#3592)
9691f82f86

N/A patches:

vim-patch:8.1.0208: file left behind after running individual test
2019-05-25 15:23:26 -04:00
0422cbae6b vim-patch:8.1.0206: duplicate test function name
Problem:    Duplicate test function name.
Solution:   Rename both functions.
cd96eef3a8
2019-05-25 15:20:55 -04:00
e664c2a158 vim-patch:8.1.0205: invalid memory access with invalid modeline
Problem:    Invalid memory access with invalid modeline.
Solution:   Pass pointer limit. Add a test. (closes vim/vim#3241)
9cf4b5005f
2019-05-25 15:18:31 -04:00
e0348c610c vim-patch:8.1.0817: test ":=" command #10062
Problem:    ":=" command is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3859)
99531a7604
2019-05-25 20:52:34 +02:00
5d6a18f238 Merge #10061 from janlazo/vim-8.1.0188
vim-patch:8.1.{188,317}
2019-05-25 18:41:52 +02:00
e6c48ecef2 Fix memfile_test.c path 2019-05-25 12:20:56 -04:00
6fae460867 vim-patch:8.1.0317: Cscope test fails when using shadow directory
Problem:    Cscope test fails when using shadow directory.
Solution:   Resolve symlink in Vim. (James McCoy, closes vim/vim#3364)
320bf2d85e
2019-05-25 12:00:21 -04:00
bf10cdfcc0 vim-patch:8.1.0188: no test for ":cscope add"
Problem:    No test for ":cscope add".
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3212)
2196bca737
2019-05-25 11:59:52 -04:00
5e048baa5f Allow 3 beeps per half a second 2019-05-25 11:15:24 -04:00
2f023f40b2 Merge #10046 from justinmk/xfree
refactor: introduce XFREE_CLEAR()
2019-05-25 14:49:43 +02:00
eddd1bff3e clint: remove CheckAltTokens()
- These "alternative tokens" keywords are for C++, not C.
- The check sometimes has false positives, e.g. `compl` is a variable
  name in edit.c
2019-05-25 13:55:39 +02:00
51a59a0f62 lint 2019-05-25 13:51:30 +02:00
138110e082 vim-patch:8.0.0683: visual bell flashes too quickly
Problem:    When using a visual bell there is no delay, causing the flash to
            be very short, possibly unnoticeable.  Also, the flash and the
            beep can lockup the UI when repeated often.
Solution:   Do the delay in Vim or flush the output before the delay. Limit the
            bell to once per half a second. (Ozaki Kiichi, closes vim/vim#1789)
2e147caa14
2019-05-25 05:27:17 -04:00
c4f56c4134 kvec.h: kv_destroy: reinitialize after free 2019-05-25 10:29:56 +02:00
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
a9d7ec4587 refactor: introduce XFREE_CLEAR()
Unfortunately we cannot indiscriminately replace xfree() with
XFREE_CLEAR(), because comparing pointers after freeing them is a common
pattern. Example in `tv_list_remove_items()`:

    xfree(li);
    if (li == item2) {
      break;
    }

Instead we can do it selectively/explicitly.

ref #1375
2019-05-25 10:01:17 +02:00
4769deb36a doc #10017
- gen_vimdoc.py: fancy "bullet"
- rework `:help channel-callback`
- rename `:help buffered` to `:help channel-buffered`
2019-05-25 10:00:41 +02:00
d51f132cb1 Merge #10054 from janlazo/vim-8.1.1373
vim-patch:8.0.{1208,1220},8.1.{1171,1373}
2019-05-24 11:43:51 +02:00
f1464d0d80 vim-patch:8.1.1171: statusline test could fail in large terminal
Problem:    Statusline test could fail in large terminal.
Solution:   Make the test work on a huge terminal. (Dominique Pelle,
            closes vim/vim#4255)
316c16797a
2019-05-24 02:08:42 -04:00
4ed654d9e8 vim-patch:8.0.1220: skipping empty statusline groups is not correct
Problem:    Skipping empty statusline groups is not correct.
Solution:   Also set group_end_userhl. (itchyny)
235dddf1f4
2019-05-24 02:07:37 -04:00
83c9d1df1b vim-patch:8.0.1208: 'statusline' drops empty group with highlight change
Problem:    'statusline' drops empty group with highlight change.
Solution:   Do not drop an empty group if it changes highlighting. (Marius
            Gedminas, closes vim/vim#2228)
6b89dbb55f
2019-05-24 01:24:14 -04:00
9c43743945 lint 2019-05-23 20:07:37 -04:00
b87a1db5ac vim-patch:8.1.1373: "[p" in Visual mode puts in wrong line
Problem:    "[p" in Visual mode puts in wrong line.
Solution:   Call nv_put() instead of duplicating the functionality.
            (closes vim/vim#4408)
0ab190c057
2019-05-23 19:50:52 -04:00
66d127957e Merge #10049 'vim-patch:8.1.0293' 2019-05-22 11:59:04 +02:00
55fa966a92 vim-patch:8.1.1363: ":vert options" #10048
Problem:    ":vert options" does not make a vertical split.
Solution:   Pass the right modifiers in $OPTWIN_CMD. (Ken Takata,
            closes vim/vim#4401)
e0b5949a3b
2019-05-22 11:09:25 +02:00
7905f5df99 vim-patch:8.1.0293: checks for type of stack is cryptic
Problem:    Checks for type of stack is cryptic.
Solution:   Define IS_QF_STACK() and IS_LL_STACK(). (Yegappan Lakshmanan)
4d77c65a9e
2019-05-22 04:14:35 +02:00
62d5137c83 Merge #10038 from janlazo/vim-8.0.1514
vim-patch:8.0.{1514,1519},8.1.1360
2019-05-21 14:46:19 +02:00
1de77bbcec cleanup: remove HAVE_SELINUX #10040
We never define HAVE_SELINUX, and no one has asked for it.
So remove the dead code.
2019-05-21 11:15:10 +02:00
7187020783 vim-patch:8.1.1360: buffer left 'nomodifiable' after :substitute
Problem:    Buffer left 'nomodifiable' after :substitute. (Ingo Karkat)
Solution:   Save the value of 'modifiable' earlier' (Christian Brabandt,
            closes vim/vim#4403)
80341bcd89
2019-05-20 22:48:19 -04:00
7c979f972e vim-patch:8.0.1519: getchangelist() does not use argument as bufname()
Problem:    Getchangelist() does not use argument as bufname().
Solution:   Use get_buf_tv(). (Yegappan Lakshmanan, closes vim/vim#2641)
341a64c9ca
2019-05-20 19:07:15 -04:00
ca1ce59025 Merge #9709 'fileio: use os_copy to create backups'
ref #8288
2019-05-21 01:06:31 +02:00
5b04a4fa09 lua/shared: share trim() impl 2019-05-20 23:46:56 +02:00
646c3423dd fileio: set group of backup file
Restores code removed in #9709.

uv_fs_copyfile() copies the perm bits but not the group name.
https://github.com/libuv/libuv/pull/1547

ref #9709
ref #8288
2019-05-20 22:50:44 +02:00
7cc01c704c Merge #9709 'fileio: use os_copy to create backups'
ref #8288
2019-05-20 22:33:19 +02:00
783aa6b507 vim-patch:8.0.1514: getting the list of changes is not easy
Problem:    Getting the list of changes is not easy.
Solution:   Add the getchangelist() function. (Yegappan Lakshmanan,
            closes vim/vim#2634)
07ad816525
2019-05-20 13:33:59 -04:00
b9ba1295b4 runtime/termdebug.vim: handle "\n" as linebreaks #10037
Note: use "set print pretty" in gdb
Fixes #10020
2019-05-20 12:47:13 +02:00
60710dee82 Merge #10033 from janlazo/vim-8.0.1082
vim-patch:8.0.{1082,1497,1498,1513},8.1.{901,1357,1358}
2019-05-20 10:42:31 +02:00
7ea350456d vim-patch:8.1.1358: cannot enter character with a CSI byte
Problem:    Cannot enter character with a CSI byte.
Solution:   Only check "gui.in_use" when VIMDLL is defined. (Ken Takata,
            closes vim/vim#4396)
386b43e594
2019-05-19 23:35:28 -04:00
91c1737de6 vim-patch:8.1.1357: test 37 is old style
Problem:    Test 37 is old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes vim/vim#4398)
999dc14644
2019-05-19 23:15:47 -04:00
bd885d878f lint 2019-05-19 23:15:47 -04:00
854073f1db vim-patch:8.1.0901: index in getjumplist() may be wrong
Problem:    Index in getjumplist() may be wrong. (Epheien)
Solution:   Call cleanup_jumplist() earlier. (Yegappan Lakshmanan,
            closes vim/vim#3941)
57ee2b6e0b
2019-05-19 23:15:47 -04:00
4aad4c0533 vim-patch:8.0.1513: the jumplist is not always properly cleaned up
Problem:    The jumplist is not always properly cleaned up.
Solution:   Call fname2fnum() before cleanup_jumplist(). (Yegappan Lakshmanan)
4867974137
2019-05-19 23:15:47 -04:00
d6d9596b38 vim-patch:8.0.1498: getjumplist() returns duplicate entries
Problem:    Getjumplist() returns duplicate entries. (lacygoill)
Solution:   Call cleanup_jumplist(). (Yegappan Lakshmanan)
a7e18d237f
2019-05-19 23:15:47 -04:00
41828a7302 vim-patch:8.0.1497: getting the jump list requires parsing the output of :jumps
Problem:    Getting the jump list requires parsing the output of :jumps.
Solution:   Add getjumplist(). (Yegappan Lakshmanan, closes vim/vim#2609)
4f50588ba3
2019-05-19 23:15:47 -04:00
83aed410b6 vim-patch:8.0.1082: tests fail when run under valgrind
Problem:    Tests fail when run under valgrind.
Solution:   Increase waiting times.
9d18961323
2019-05-19 23:15:46 -04:00
8c842b39ba Merge #10034 from frangio/vim-8.1.1352 2019-05-20 00:19:44 +02:00
766cc60337 eval.c: add has("osx") for apple 2019-05-19 17:03:58 -03:00
16cac1d5f5 vim-patch:8.1.1353: undo test fails on Mac
Problem:    Undo test fails on Mac.
Solution:   Expect "private" on the Mac.
2b39d806f0
2019-05-19 17:03:58 -03:00
5c13f368c6 lint 2019-05-19 21:26:33 +02:00
8b3c0b87ff vim-patch:8.1.1352: undofile() reports wrong name
Problem:    Undofile() reports wrong name. (Francisco Giordano)
Solution:   Clean up the name before changing path separators. (closes vim/vim#4392,
            closes vim/vim#4394)
e9ebc9a91c
2019-05-19 15:31:23 -03:00
8e941c59ec Merge #9740 from KillTheMule/luadoc 2019-05-19 18:45:21 +02:00
fab81cfb04 lua/shared: share more stuff
Leave trim() in vim.lua, because gen_vimdoc.py needs at least one
function in there, else it gets confused...
2019-05-19 18:31:40 +02:00
e4c2d85c77 lua/shared: share deepcopy() with test/*
deepcopy() was duplicated in test/helpers.lua
2019-05-19 17:58:54 +02:00
e628c011bf gen_vimdoc.py: support lua/shared.lua module [ci skip] 2019-05-19 17:30:20 +02:00
53576dfb35 Document the vim.lua functions 2019-05-18 22:01:14 +02:00
b102c11e38 gen_vimdoc.py: get Lua docs via lua2dox.lua #9740 2019-05-18 22:01:14 +02:00
974b43fd79 Merge #10028 from janlazo/vim-8.1.1345
vim-patch:8.1.{1325,1345,1348,1349}
2019-05-18 21:53:20 +02:00
1cbe014569 Merge #9301 'runtime/lua' 2019-05-18 21:50:57 +02:00
9d7aaf7149 lua/shared: move table util funcs to vim.shared
Use `tbl_` prefix for all table-util functions. Specify in the function
docstring if it expects a list-like or map-like table.
2019-05-18 21:07:30 +02:00
aa610690bf genappimage.sh: migrate to linuxdeploy #10027
generate_type2_appimage is unmaintained, and lacks a way to rename the appimage file.

fix #9893
2019-05-18 20:38:19 +02:00
d07a6e2b45 vim-patch:8.1.1349: if writing runs into conversion error backup file is deleted
Problem:    If writing runs into a conversion error the backup file is
            deleted. (Arseny Nasokin)
Solution:   Don't delete the backup file is the file was overwritten and a
            conversion error occurred. (Christian Brabandt, closes vim/vim#4387)
cf0bfd9ade
2019-05-18 14:12:08 -04:00
f286af170d vim-patch:8.1.1348: running tests may cause the window to move
Problem:    Running tests may cause the window to move.
Solution:   Correct the reported window position for the offset with the
            position after ":winpos".  Works around an xterm bug.
f8191c5f07
2019-05-18 13:39:23 -04:00
a33010d1e1 vim-patch:8.1.1325: cannot build with +eval but without +channel and +timers
Problem:    Cannot build with +eval but without +channel and +timers. (John
            Marriott)
Solution:   Adjust #ifdef for get_callback().
97b0075b0d
2019-05-18 12:21:06 -04:00
3574126b89 vim-patch:8.1.1345: stuck in sandbox with ":s/../\=Function/gn"
Problem:    Stuck in sandbox with ":s/../\=Function/gn".
Solution:   Don't skip over code to restore sandbox. (Christian Brabandt)
6349e9411f
2019-05-18 12:11:11 -04:00
e8beea204b kbtree.h: assert valid range #10022
ref #10012
2019-05-18 16:21:33 +02:00
fd04877eb0 test: remove use of require('test.helpers')
The test.functional.helpers and test.unit.helpers modules now include
all of the public functions from test.helpers, so there is no need to
separately require('test.helpers').
2019-05-18 15:48:13 +02:00
7669fc1e9b test: share implementation of testdir/load.vim
Also, don't compute load factor unless load_adjust() was called, it
slows down the test suite.

ref #9292
2019-05-18 15:48:13 +02:00
bba75eb184 lua/stdlib: Introduce vim.shared
This is where "pure functions" can live, which can be shared by Nvim and
test logic which may not have a running Nvim instance available.

If in the future we use Nvim itself as the Lua engine for tests, then
these functions could be moved directly onto the `vim` Lua module.

closes #6580
2019-05-18 15:48:13 +02:00
2b87485c22 test: Extend {unit,functional}.helpers with global helpers
Automatically include all "global helper" util functions in the
unit.helpers and functional.helpers and modules.  So tests don't need to
expicitly do:

    local global_helpers = require('test.helpers')
2019-05-18 14:51:01 +02:00
8e22c4510e Merge pull request #10025 from bfredl/bufhl_fixes
kbtree: pointer UB and unitialized value fixes
2019-05-18 14:33:14 +02:00
b247c6fd22 kbtree: pointer UB and unitialized value fixes
- don't underflow itr->p pointer (C standard only allows one past the end, not
  one before the beginning)
- make sure itr->p->i is always initialized (even when not used)
- don't rely on `NULL < &object` (likely UB)
2019-05-18 13:37:57 +02:00
5625c7d8e1 vim-patch:8.1.1338: fix hang when concealing wide char #10023
Problem:    Hang when concealing the '>' shown for a wide char that doesn't
            fit in the last cell.
Solution:   Put back the pointer when the '>' is not going to be displayed.
            (closes vim/vim#4377)
0ebe12be86
2019-05-18 10:18:48 +02:00
9420a2127f runtime/termdebug.vim #10015
* bugfix
* use NormalFloat for floating window background
* use floating window by default
* correctly use nvim_open_win()
* use nvim_win_set_option to set window local option
* use nvim_buf_set_option for buffer options
* renamed augroup to nvim_termdebug_close_hover to be consistent with
nvim_terminal_... augroup
2019-05-16 21:58:07 +02:00
3a699a790c runtime/termdebug.vim #8364
* commit 36257d0f97b396467bef7a5937befd894fb23e31
Author: Kwon-Young Choi <kwon-young.choi@hotmail.fr>
Date:   Sat May 5 16:57:45 2018 +0200

    Port of the termdebug.vim plugin to neovim terminal feature.
    For neovim compatibility,
    The vim specific calls were replaced with neovim specific calls:
      term_start -> term_open
      term_sendkeys -> jobsend
      term_getline -> getbufline
      job_info && term_getjob -> using linux command ps to get the tty

    fix1: forgot to port EndDebug callback to neovim

    fix2: use nvim_get_chan_info to get pty of job
          remove the use of communication buffer by using jobstart instead
          of termopen

    fix3: get gdbbuf using nvim_get_chan_info

* cleaned up if has('nvim') to remove vim support.
added neovim floating window support for expression evaluation

* improvred documentation, cleaned up vim menu code, fixed bug when
floating window feature is not available
2019-05-16 11:21:05 +02:00
94f78ccf89 Merge pull request #9883 from bfredl/termredraw
make terminal state redraw like any other state
2019-05-14 13:39:00 +02:00
5020daa6e5 ui/terminal: make terminal state redraw like any other state
Previously, ordinary redraws were missing from terminal mode. Instead,
there was an async callback that invoked update_screen() on terminal
data regardless of mode (as if :redraw! was invoked by a timer).

This created some issues:

- async changes to an unrelated ordinary buffer were not always redrawn in
  terminal mode
- screen cursor position was not properly updated in terminal mode (partial
  fix, will be properly fixed in a follow up PR)
- ad-hoc logic was needed for interaction with special states such as
  inccommand or horizontal wildmenu.

Instead redraw terminal mode just like any other state. This disables forced
redraws in cmdline mode, which were inconisent which async changes to
normal buffers (which are not redrawn in cmdline mode).
2019-05-14 12:54:39 +02:00
9e0982a1a2 Merge pull request #9985 from bfredl/shenanigans
Fix aucmd_win issues: crashes and redrawing errors.
2019-05-13 23:24:14 +02:00
74751117eb autocmd: fixes and tests for autocmd window issues
- redraw! in an invisible buffer rendered the screen unusable.
- storing the autocmd window handle and using it in API function could lead
  to crashes. Unregister the handle when the window is not active.
2019-05-13 20:32:04 +02:00
e882460e52 Merge #10003 from justinmk/api-keymap
API/nvim_set_keymap: minor cleanup
2019-05-13 09:03:14 +02:00
60aaae1c86 API/nvim_set_keymap: remove mode-shortname aliases
Reduce the API surface-area a bit. No need to have aliases for a mode.
ref #9924
2019-05-12 13:27:07 +02:00
f35d233e07 API/nvim_set_keymap: minor cleanup
ref #9924
2019-05-12 13:04:48 +02:00
fbf2c414ad API: nvim_set_keymap, nvim_del_keymap #9924
closes #9136

- Treat empty {rhs} like <Nop>

- getchar.c: Pull "repl. MapArg termcodes" into func
  The "preprocessing code" surrounding the replace_termcodes calls needs
  to invoke replace_termcodes, and also check if RHS is equal to "<Nop>".
  To reduce code duplication, factor this out into a helper function.

  Also add an rhs_is_noop flag to MapArguments; buf_do_map_explicit
  expects an empty {rhs} string for "<Nop>", but also needs to distinguish
  that from something like ":map lhs<cr>" where no {rhs} was provided.

- getchar.c: Use allocated buffer for rhs in MapArgs
  Since the MAXMAPLEN limit does not apply to the RHS of a mapping (or
  else an RHS that calls a really long autoload function from a plugin
  would be incorrectly rejected as being too long), use an allocated
  buffer for RHS rather than a static buffer of length MAXMAPLEN + 1.

- Mappings LHS and RHS can contain literal space characters, newlines, etc.

- getchar.c: replace_termcodes in str_to_mapargs
  It makes sense to do this; str_to_mapargs is, intuitively, supposed to
  take a "raw" command string and parse it into a totally "do_map-ready"
  struct.

- api/vim.c: Update lhs, rhs len after replace_termcodes
  Fixes a bug in which replace_termcodes changes the length of lhs or rhs,
  but the later search through the mappings/abbreviations hashtables
  still uses the old length value. This would cause the search to fail
  erroneously and throw 'E31: No such mapping' errors or 'E24: No such
  abbreviation' errors.

- getchar: Create new map_arguments struct
  So that a string of map arguments can be parsed into a more useful, more
  portable data structure.

- getchar.c: Add buf_do_map function
  Exactly the same as the old do_map, but replace the hardcoded references
  to the global `buf_T* curbuf` with a function parameter so that we can
  invoke it from nvim_buf_set_keymap.

- Remove gettext calls in do_map error handling
2019-05-12 11:44:48 +02:00
24f9dd73d5 test/channels_spec: cleanup
- Remove stray print()
- Use uname() instead of system('uname')
2019-05-12 00:43:28 +02:00
ab7d9ae193 Merge #9993 from justinmk/ui-message-kinds
UI/ext_messages: learn more message kinds
2019-05-12 00:11:57 +02:00
a0f775c4d3 doc 2019-05-11 23:42:55 +02:00
3d1ed7c959 UI/ext_messages: learn more message kinds
ref #6201
2019-05-11 23:42:55 +02:00
7c9d4d971c vim-patch:8.1.0543: fix memory leak #10001
Problem:    Coverity warns for leaking memory and using wrong struct.
Solution:   Free pointer when allocation fails. Change "boff" to "loff".
            (closes vim/vim#3634)
4e303c8ba8
2019-05-11 21:53:59 +02:00
da3c0e4962 Merge #9994 from janlazo/vim-8.1.1306
vim-patch:8.1.{1306,1312}
2019-05-11 12:48:26 +02:00
c82c5d7570 vim-patch:8.1.1312: Coverity warning for using uninitialized variable
Problem:    Coverity warning for using uninitialized variable.
Solution:   Clear exarg_T.
4ca41534b7
2019-05-09 23:16:17 -04:00
92f39762af vim-patch:8.1.1306: Borland support is outdated and doesn't work
Problem:    Borland support is outdated and doesn't work.
Solution:   Remove Borland support, there are other (free) compilers
            available. (Thomas Dziedzic, Ken Takata, closes vim/vim#4364)
eae1b91fea
2019-05-09 20:27:11 -04:00
a541c681f6 runtime/tutor [ci skip] #9990 2019-05-09 23:32:57 +02:00
d818135e3f Merge #9992 from justinmk/ui-upgrade
UI/nvim_ui_attach(): add "override" option
2019-05-09 23:31:30 +02:00
b9ad12e6c2 UI/nvim_ui_attach(): add override option
Before now, Nvim always degrades UI capabilities to the lowest-common
denominator. For example, if any connected UI has `ext_messages=false`
then `ext_messages=true` requested by any other connected UI is ignored.

Now `nvim_ui_attach()` supports `override=true`, which flips the
behavior: if any UI requests an `ext_*` UI capability then the
capability is enabled (and the legacy behavior is disabled).

Legacy UIs will be broken while a `override=true` UI is connected, but
it's useful for debugging: you can type into the TUI and observe the UI
events from another connected (UI) client. And the legacy UI will
"recover" after the `override=true` UI disconnects.

Example using pynvim:

    >>> n.ui_attach(2048, 2048, rgb=True, override=True, ext_multigrid=True, ext_messages=True, ext_popupmenu=True)
    >>> while True: n.next_message();
2019-05-09 22:27:41 +02:00
b6ad206024 Merge pull request #9987 from janlazo/vim-8.1.0865
vim-patch:8.1.{865,1299}
2019-05-09 11:15:19 +02:00
98398ff93f vim-patch:8.1.1299: "extends" from 'listchars' is used when 'list' is off
Problem:    "extends" from 'listchars' is used when 'list' is off. (Hiroyuki
            Yoshinaga)
Solution:   Only use the "extends" character when 'list' is on. (Hirohito
            Higashi, closes vim/vim#4360)
a5c6a0b6c7
2019-05-08 21:46:37 -04:00
924f1173cb vim-patch:8.1.0865: when 'listchars' only contains "nbsp:X" it does not work
Problem:    When 'listchars' only contains "nbsp:X" it does not work.
Solution:   Set extra_check when lcs_nbsp is set. (Ralf Schandl, closes vim/vim#3889)
895d966e34
2019-05-08 21:05:10 -04:00
8330cc22af vim-patch:8.1.1205: BufReadPre may move the cursor #9980
Problem:    A BufReadPre autocommand may cause the cursor to move.
Solution:   Restore the cursor position after executing the autocommand,
            unless the autocommand moved it. (Christian Brabandt,
            closes vim/vim#4302, closes vim/vim#4294)
a68e595909
2019-05-08 18:01:21 +02:00
d36ef9339f vim-patch:8.1.1293: MSVC files are no longer useful #9982
Problem:    MSVC files are no longer useful for debugging.  Newer Visual
            Studio versions cannot read them.
Solution:   Delete the files. (Ken Takata, closes vim/vim#4357)
fda9784dc9
2019-05-08 11:44:04 +02:00
bc395b4fd4 Merge #9979 from janlazo/vim-8.0.0876
vim-patch:8.0.{876,1144},8.1.0133
2019-05-07 11:42:21 +02:00
4423759d03 vim-patch:8.0.1144: using wrong #ifdef for computing length
Problem:    Using wrong #ifdef for computing length.
Solution:   use BACKSLASH_IN_FILENAME instead of COLON_IN_FILENAME. (Yasuhiro
            Matsomoto, closes vim/vim#2153)
0b05e491b4
2019-05-07 03:43:47 -04:00
32059526de lint 2019-05-07 03:24:37 -04:00
f4e5cd200a vim-patch:8.1.0133: tagfiles() can have duplicate entries
Problem:    tagfiles() can have duplicate entries.
Solution:   Simplify the filename to make checking for duplicates work better.
            Add a test. (Dominique Pelle, closes vim/vim#2979)
46577b5e54
2019-05-07 03:21:26 -04:00
400ee59247 API: fix cursor position when lines are added #9961
Restore code removed in #9674.
2019-05-07 09:17:37 +02:00
f76792a10b vim-patch:8.0.0876: backslashes and wildcards in backticks don't work
Problem:    MS-Windows: Backslashes and wildcards in backticks don't work.
Solution:   Do not handle backslashes inside backticks in the wrong place.
            (Yasuhiro Matsumoto, closes vim/vim#1942)
39d21e3c30
2019-05-07 03:03:28 -04:00
b3adfa03b7 Merge #9978 from janlazo/vim-8.1.1285
vim-patch:8.1.{1284,1285,1286}
2019-05-07 08:38:18 +02:00
ac1fbc2860 fixup! vim-patch:8.0.1782: no simple way to label quickfix entries 2019-05-06 22:35:45 -04:00
b5539c2044 vim-patch:8.1.1284: detecting *.tmpl as htmlcheetah is outdated
Problem:    Detecting *.tmpl as htmlcheetah is outdated.
Solution:   Use the generic name "template". (closes vim/vim#4348)
d136221129
2019-05-06 22:35:45 -04:00
53d99b9657 vim-patch:8.1.1286: running tests leaves XTest_tabpage_cmdheight file behind
Problem:    Running tests leaves XTest_tabpage_cmdheight file behind.
Solution:   Delete the right file. (closes vim/vim#4350)
4fa06870e5
2019-05-06 22:35:45 -04:00
210d803777 vim-patch:8.1.1285: test17 is old style
Problem:    Test17 is old style.
Solution:   Turn into new style test. (Yegappan Lakshmanan, closes vim/vim#4347)
f0ab01f6d8
2019-05-06 22:35:45 -04:00
5a714c53f2 Merge #9977 from justinmk/pvs 2019-05-06 23:59:43 +02:00
d83a7dc687 Merge #9798 'aucmd_prepbuf: Use floating window' 2019-05-06 23:10:16 +02:00
df9059d1a8 appdata: Include more info #9974
- Configuring the translation domain allows calculating and showing the translation states of each language
- OARS gives Neovim a nice ‘safe for children’ badge
- Releases allow displaying release info/update frequency
2019-05-06 22:11:59 +02:00
b0e3b5cf2e aucmd_win: use a floating window 2019-05-06 16:31:58 +02:00
91547a80b6 lint 2019-05-06 10:02:15 +02:00
e7a8908b11 PVS/V781: "maxlen" variable checked after use
False positive.
2019-05-06 10:02:08 +02:00
fe299a82a6 PVS/V547: Expression is always true
Since 67bac681ea (see msg_multiline_attr()) msg_clr_eos() is always
called.
2019-05-06 10:02:00 +02:00
a52e93dfd8 PVS/V547: Expression is always false 2019-05-06 10:01:57 +02:00
c08ca29649 PVS/V547: Expression is always false 2019-05-06 10:01:49 +02:00
5faed57ac7 PVS/V571: condition was already verified 2019-05-06 08:59:13 +02:00
4658e9c1d9 vim-patch:8.0.1750: crash clearing location list #9968
Problem:    Crash when clearing loccation list in autocommand.
Solution:   Check if "qi" equals "ql_info". (Yegappan Lakshmanan)
3b9474b4ad
2019-05-05 23:18:47 +02:00
4b65a0059a test: cleanup
Avoid hyper-granularity. Don't need subdirectories for every little
thing.
2019-05-05 23:01:35 +02:00
8a1880f041 Merge #9972 from janlazo/vim-8.1.1249
vim-patch:8.1.{613,1046,1249}
2019-05-05 20:04:35 +02:00
9d6c205a33 Merge #9842 from mhinz/vim-8.0.1782
vim-patch:8.0.{1353,1389,1406,1420,1432,1500,1569,1634,1678,1727,1782,1805,1831}
2019-05-05 20:01:27 +02:00
fb02e9f1e9 vim-patch:8.1.1046: the "secure" variable is used inconsistently
Problem:    the "secure" variable is used inconsistently. (Justin M. Keyes)
Solution:   Set it to one instead of incrementing.
82b033eff8
2019-05-05 11:40:19 -04:00
9c6476d81e vim-patch:8.1.0613: when executing an insecure function the secure flag is stuck
Problem:    When executing an insecure function the secure flag is stuck.
            (Gabriel Barta)
Solution:   Restore "secure" instead of decrementing it. (closes vim/vim#3705)
48f377a476
2019-05-05 11:38:21 -04:00
5f903a1648 lint 2019-05-05 14:05:26 +02:00
720cb36cea doc: update setqflist() 2019-05-05 14:05:25 +02:00
1eda387951 tests: adjust to latest Vim patches 2019-05-05 14:05:25 +02:00
daa82cbf69 vim-patch:8.0.1831: sometimes the quickfix title is incorrectly prefixed with ':'
Problem:    Sometimes the quickfix title is incorrectly prefixed with ':'.
Solution:   Prepend the colon in another way. (Yegappan Lakshmanan)

8b62e31003
2019-05-05 13:46:20 +02:00
446bfdd49f vim-patch:8.0.1805: qf_parse_line() is too long
Problem:    qf_parse_line() is too long.
Solution:   Split it in parts.  Properly handle vim_realloc() failing.
            (Yegappan Lakshmanan)

18cebf4417
2019-05-05 13:46:20 +02:00
e6c21c4bc0 vim-patch:8.0.1782: no simple way to label quickfix entries
Problem:    No simple way to label quickfix entries.
Solution:   Add the "module" item, to be used instead of the file name for
            display purposes. (Martin Szamotulski)

d76ce85266
2019-05-05 13:46:19 +02:00
ce0e083094 vim-patch:8.0.1727: qf_get_properties() function is too long
Problem:    qf_get_properties() function is too long.
Solution:   Refactor the code. (Yegappan Lakshmanan)

353eeeaca2
2019-05-05 13:46:19 +02:00
ced3598a96 vim-patch:8.0.1678: errorformat "%r" implies "%>"
Problem:    Errorformat "%r" implies "%>". (Jan Gosmann)
Solution:   Jump to before setting fmt_ptr. (Yegappan Lakshmanan)

e333e79f9b
2019-05-05 13:46:19 +02:00
98a8187764 vim-patch:8.0.1634: the ex_vimgrep() function is too long
Problem:    The ex_vimgrep() function is too long.
Solution:   Split it in smaller functions. (Yegappan Lakshmanan)

75b0a888e4
2019-05-05 13:46:19 +02:00
f75c48146a vim-patch:8.0.1569: warning for uninitialized variable from gcc
Problem:    Warning for uninitialized variable from gcc.
Solution:   Initialize the variable.

28ada699c1
2019-05-05 13:44:50 +02:00
0673b0d251 test/old: set shellslash in Test_finddir 2019-05-04 23:09:25 -04:00
246807b8f4 test/old: enable Test_normal01_keymodel
It works now.
2019-05-04 08:26:41 -04:00
49b0d41c3c vim-patch:8.1.1249: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (Christian Brabandt)
c6b1cc967f
2019-05-03 23:15:06 -04:00
624dbfdd44 vim-patch:8.0.1500: possible NULL pointer dereference
Problem:    Possible NULL pointer dereference. (Coverity)
Solution:   Check for the pointer not being NULL.

0549a1e184
2019-05-04 01:40:11 +02:00
06b70bf1d6 vim-patch:8.0.1432: after ":copen" can't get the window-ID of the quickfix window
Problem:    After ":copen" can't get the window-ID of the quickfix window.
            (FalacerSelene)
Solution:   Make it work without a quickfix list.  Add a test. (Yegappan
            Lakshmanan)

2ec364e94d
2019-05-04 01:40:11 +02:00
dc5f4a3cc2 vim-patch:8.0.1420: accessing freed memory in vimgrep
Problem:    Accessing freed memory in vimgrep.
Solution:   Check that the quickfix list is still valid. (Yegappan Lakshmanan)

3c09722600
2019-05-04 01:40:10 +02:00
37d666bc80 vim-patch:8.0.1406: difficult to track changes to a quickfix list
Problem:    Difficult to track changes to a quickfix list.
Solution:   Add a "changedtick" value. (Yegappan Lakshmanan)

b254af312d
2019-05-04 01:40:00 +02:00
6d314484d4 vim-patch:8.0.1389: getqflist() items are missing if not set
Problem:    getqflist() items are missing if not set, that makes it more
            difficult to handle the values.
Solution:   When a value is not available return zero or another invalid
            value. (Yegappan Lakshmanan)

a6d4849c71
2019-05-03 23:36:51 +02:00
f3b88013a8 vim-patch:8.0.1353: QuickFixCmdPost is not used consistently
Problem:    QuickFixCmdPost is not used consistently.
Solution:   Invoke QuickFixCmdPost consistently after QuickFixCmdPre.
            (Yegappan Lakshmanan)

1ed2276fd5
2019-05-03 23:36:47 +02:00
6891d8aeca Merge #9970 from janlazo/vim-8.1.0794
vim-patch:8.0.1708,8.1.{369,794,1242}
2019-05-03 11:03:49 +02:00
96a8b0ab78 vim-patch:8.1.0369: continuation lines cannot contain comments
Problem:    Continuation lines cannot contain comments.
Solution:   Support using "\ .
67f8ab8299
2019-05-03 02:08:18 -04:00
4b287119fe vim-patch:8.0.1708: mkdir with 'p' flag fails on existing directory
Problem:    Mkdir with 'p' flag fails on existing directory, which is
            different from the mkdir shell command.
Solution:   Don't fail if the directory already exists. (James McCoy,
            closes vim/vim#2775)
78a16b0f2a
2019-05-03 00:55:56 -04:00
56bae9b7d9 lint 2019-05-02 22:47:04 -04:00
049321c357 vim-patch:8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Problem:    No cmdline redraw when tabpages have different 'cmdheight'.
Solution:   redraw the command line when 'cmdheight' changes when switching
            tabpages. (closes vim/vim#4321)
0fef0aeb1c
2019-05-02 22:43:02 -04:00
31755783e3 vim-patch:8.1.0794: white space before " -Ntabmove" causes problems
Problem:    White space before " -Ntabmove" causes problems.
Solution:   Skip whitespace. (Ozaki Kiichi, closes vim/vim#3841)
82a12468bd
2019-05-02 22:40:10 -04:00
9d58a58980 Merge #9966 from justinmk/te-hl
terminal: swap priority of terminal, editor highlights
2019-05-02 22:52:28 +02:00
660fe979c1 terminal.c: remove unnecessary macro 2019-05-02 21:59:15 +02:00
49c51f839b ex_getln: fix statusline redraw logic #9967
fixes #9908
2019-05-02 11:38:21 +02:00
fd0fd752c8 terminal: swap priority of terminal, editor highlights
closes #9964
2019-05-02 09:56:22 +02:00
53cef34f16 Merge #9946 from justinmk/doc 2019-05-01 00:22:17 +02:00
c11e618133 gen_vimdoc.py: support <pre> preformatted text [ci skip] 2019-05-01 00:18:49 +02:00
afd947e0c3 doc [ci skip]
ref #9886
2019-05-01 00:18:43 +02:00
e22c475156 Merge #9951 'vim-patch:8.1.0519: save/restore tag stack' 2019-04-30 23:41:34 +02:00
8342b4486b Merge #9957 from janlazo/vim-8.0.1263
vim-patch:8.0.{1263,1265,1267}
2019-04-30 12:24:56 +02:00
0e7048ae05 lint 2019-04-30 05:13:06 -04:00
c3edbf813a vim-patch:8.0.1267: Test_swap_group may leave file behind
Problem:    Test_swap_group may leave file behind.
Solution:   Add a try/finally.
5842a748be
2019-04-29 20:59:51 -04:00
3a8ebda10a vim-patch:8.0.1265: swap test not skipped when there is one group
Problem:    Swap test not skipped when there is one group.
Solution:   Convert list to string for the message.
ad7dac85c3
2019-04-29 20:48:18 -04:00
0cecf9f121 vim-patch:8.0.1263: others can read the swap file if a user is careless
Problem:    Others can read the swap file if a user is careless with his
            primary group.
Solution:   If the group permission allows for reading but the world
            permissions doesn't, make sure the group is right.
5a73e0ca54
2019-04-29 20:47:49 -04:00
63526f2eee Merge #9956 from justinmk/vim-8.1.1231
vim-patch:8.1.1231, swap-related patches
2019-04-30 01:26:33 +02:00
aac731c22b vim-patch:8.1.0642: swapinfo() leaks memory
Problem:    swapinfo() leaks memory.
Solution:   Avoid allocating the strings twice.
e6fdf79980
2019-04-29 22:41:16 +02:00
a01246c275 lint 2019-04-29 21:37:22 +02:00
7032562faf vim-patch:8.1.1234: swap file test fails on MS-Windows
Problem:    Swap file test fails on MS-Windows.
Solution:   Only compare the tail of the file names.
701df4eb64
2019-04-29 21:22:55 +02:00
7f8f6ac8d7 test/old: skip Test_swapfile_delete() until "blob" is merged 2019-04-29 21:22:55 +02:00
8cf7daaaa8 verb_msg: remove char_u 2019-04-29 21:22:55 +02:00
3033b5a70a vim-patch:8.1.1231: asking about existing swap file unnecessarily
Problem:    Asking about existing swap file unnecessarily.
Solution:   When it is safe, delete the swap file.  Remove
            HAS_SWAP_EXISTS_ACTION, it is always defined. (closes vim/vim#1237)
67cf86bfff

N/A:
vim-patch:8.1.1232
vim-patch:8.1.1233
vim-patch:8.1.1236
2019-04-29 21:22:55 +02:00
04f0bc97b7 vim-patch:8.1.0401: can't get swap name of another buffer
Problem:    Can't get swap name of another buffer.
Solution:   Add swapname(). (Ozaki Kiichi, closes vim/vim#3441)
110bd60985
2019-04-29 21:19:45 +02:00
035a41c218 vim-patch:8.1.0325: strings in swap file may not be NUL terminated
Problem:    Strings in swap file may not be NUL terminated. (Coverity)
Solution:   Limit the length of the used string.
7c60505e10
2019-04-29 21:19:45 +02:00
3a92040b44 vim-patch:8.1.0316: swapinfo() test fails on Travis
Problem:    swapinfo() test fails on Travis.
Solution:   Handle a long host name. (Ozaki Kiichi, closes vim/vim#3361)
            Also make the version check flexible. (James McCoy)
4c5765bc47
2019-04-29 21:19:45 +02:00
39e3783c69 vim-patch:8.1.0314: add swapinfo() "dirty" item
Problem:    Build failure without the +eval feature. (Brenton Horne)
Solution:   Add #ifdef.  Also add the "dirty" item.
47ad5656e1
2019-04-29 21:19:45 +02:00
24b7462b3c vim-patch:8.1.0313: information about a swap file is unavailable
Problem:    Information about a swap file is unavailable.
Solution:   Add swapinfo(). (Enzo Ferber)
00f123a565
2019-04-29 19:55:42 +02:00
a0d723db55 vim-patch:8.0.1563: getwinposx() timeout #9955
Problem:    Timeout of getwinposx() can be too short. (lilydjwg)
Solution:   Add getwinpos(). (closes vim/vim#2689)
3f54fd319f
2019-04-29 11:53:44 +02:00
8aca932aa0 clipboard: setreg("*") with clipboard=unnamed #9954
Helped-by: Björn Linse <bjorn.linse@gmail.com>
fix #5646
2019-04-28 21:06:24 +02:00
fb6ff2a593 lint 2019-04-28 19:58:13 +01:00
c76c798bf6 vim-patch:8.1.0843: memory leak when running "make test_cd" #9944
closes #9921
reverts f0a702d116

Problem:    Memory leak when running "make test_cd".
Solution:   Free the stack element when failing. (Dominique Pelle,
            closes vim/vim#3877)
e0de2164f6
2019-04-28 16:54:00 +02:00
33b20ce7de tui:cursor_goto(): remove dead code #9952
fix #9918
ref dbc25f5a87

Before 7ede14d191 the UGRID_FOREACH_CELL loop was never entered,
because it expanded to an always-false condition.
From build/src/nvim/auto/tui/tui.i:
    do {
      UCell *row_cells = (grid)->cells[grid->row];
      for (int col = grid->col; col < col; col++) {
        UCell *cell = row_cells + col;
        (void)(cell);
        {
          print_cell(ui, cell);
        };
      }
    } while (0);

After 7ede14d191 issue #9918 was reported.

    $ ./build/bin/nvim -Nu NONE +'colo evening'
    :h<tab>  " causes cursor to change colors

Since the code was dead before 7ede14d191, just remove it.
2019-04-28 16:19:36 +02:00
fbd6666a06 runtime/Tutor: define highlights as "default" #9947 2019-04-28 12:55:38 +02:00
924dd6f14a vim-patch:8.1.0519: cannot save and restore the tag stack
Problem:    Cannot save and restore the tag stack.
Solution:   Add gettagstack() and settagstack(). (Yegappan Lakshmanan,
            closes vim/vim#3604)
f49cc60aa8
2019-04-28 11:37:19 +01:00
8072f085d2 win: stream_init() issue with tty on Windows #9884
ref #9825
2019-04-28 11:46:48 +02:00
cf80fd9e02 Merge #9911 from justinmk/win-site-data
win/defaults: Use "…/nvim-data/site" in 'runtimepath'
2019-04-28 09:16:02 +02:00
070d9261b6 test/old: remove test16 (#9949)
Vim replaced it with a test in test_gui.vim, N/A for Neovim.
2019-04-28 08:55:13 +02:00
769f44e918 win/defaults: Use "…/nvim-data/site" in 'runtimepath'
On Windows we store non-config data in "$XDG_DATA_HOME/nvim-data". But
the "…/site" items in 'runtimepath' did not correctly point to that
location, they used "…/nvim/site".

Fix the init logic to use  "…/nvim-data/site".

closes #9910
2019-04-28 00:27:07 +02:00
f86f0a8bc7 vim-patch:8.1.1214: old style tests #9948
Problem:    Old style tests.
Solution:   Move tests from test14 to new style test files. (Yegappan
            Lakshmanan, closes vim/vim#4308)
c6b37db1ba
2019-04-27 21:45:53 +02:00
83d571653b spellfile.vim: store files in stdpath('data')
ref b9b2fb7d5d #6664 #6272
2019-04-27 21:34:54 +02:00
1039e0621d doc/API #9916 2019-04-27 17:28:18 +02:00
920ec8181b Merge #9915 'test: clear(): args_rm param' 2019-04-27 17:11:34 +02:00
698c4f662d test: clear(): remove opts.headless parameter
Callers can instead specify `args_rm={'--headless'}`.

TODO: should `nvim_argv` have "--headless" by default? Need to inspect
      some uses of spawn(nvim_argv) ...
2019-04-27 16:31:26 +02:00
17291642bd test: clear(): args_rm parameter 2019-04-27 16:19:40 +02:00
f0a7e3fc9a test: 'shadafile' default
ref 773bdd41ec
2019-04-27 16:19:40 +02:00
e5b53381a2 Merge #9942 from janlazo/vim-8.1.0837
vim-patch:8.1.{837,1180,1194,1203,1207,1209}
2019-04-27 14:27:55 +02:00
16cc3cf9eb test/old: remove test.out files
Do this for new-style tests too, because they run after the old-style
tests which don't clean up their temp files.

Reverts ebd251c
2019-04-27 11:07:26 +02:00
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
66d86d8bdb vim-patch:8.1.1207: some compilers give warning messages
Problem:    Some compilers give warning messages.
Solution:   Initialize variables, change printf() argument. (Christian
            Brabandt, closes vim/vim#4305)
1f3601e92e
2019-04-27 00:00:51 -04:00
2e339807ac vim-patch:8.1.1180: Vim script debugger tests are old style
Problem:    Vim script debugger tests are old style.
Solution:   Turn into new style tests. (Yegappan Lakshmanan, closes vim/vim#4259)
113bf0672b
2019-04-26 23:40:29 -04:00
ebd251cdf0 oldtests: pass Test_ReadWrite_Autocmds() 2019-04-26 23:40:29 -04:00
18fddad48b vim-patch:8.1.1203: some autocmd tests are old style
Problem:    Some autocmd tests are old style.
Solution:   Turn the tests into new style. (Yegappan Lakshmanan, closes vim/vim#4295)
69ea587289
2019-04-26 07:05:55 -04:00
7d90b90d63 vim-patch:8.1.1194: typos and small problems in source files
Problem:    Typos and small problems in source files.
Solution:   Small fixes.
ad3ec76bb8
2019-04-26 07:01:18 -04:00
ed6c7fbf0b vim-patch:8.1.0837: timer interrupting cursorhold and mapping not tested
Problem:    Timer interrupting cursorhold and mapping not tested.
Solution:   Add tests with timers. (Ozaki Kiichi, closes vim/vim#3871)
26d982185e
2019-04-26 00:02:12 -04:00
9d77a07686 vim-patch:8.0.1510: cannot assert beep #9938
Problem:    Cannot test if a command causes a beep.
Solution:   Add assert_beeps().
b48e96f61c
2019-04-25 14:31:33 +02:00
24a9516ff4 Merge #9906 from janlazo/vim-8.0.0647
vim-patch:8.0.{647,768,797,1085,1092,1107,1133,1408}
2019-04-24 11:23:32 +02:00
8c6f5b7f92 Spurious quote mark in command line when typing <C-R> (#9934)
Remove <C-R> special char after reading following chars
2019-04-24 10:41:07 +02:00
37c7c964ae vim-patch:8.0.1408: crash in setqflist()
Problem:    Crash in setqflist().
Solution:   Check for string to be NULL. (Dominique Pelle, closes vim/vim#2464)
a0ca7d002d
2019-04-23 00:03:48 -04:00
439bbe00ec vim-patch:8.0.0768: terminal window status shows "[Scratch]"
Problem:    Terminal window status shows "[Scratch]".
Solution:   Show "[Terminal]" when no title was set. (Yasuhiro Matsumoto)
            Store the terminal title that vterm sends and use it.  Update the
            special buffer name.  (closes vim/vim#1869)
2155441460
2019-04-23 00:03:48 -04:00
3bc8639c1a vim-patch:8.0.0797: finished job in terminal window is not handled
Problem:    Finished job in terminal window is not handled.
Solution:   Add the scrollback buffer.  Use it to fill the buffer when the job
            has ended.
d85f271bf8
2019-04-23 00:03:48 -04:00
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
b8128aee02 vim-patch:8.0.1107: terminal debugger jumps to non-existing file
Problem:    Terminal debugger jumps to non-existing file.
Solution:   Check that the file exists.  Add an option to make the Vim wide
            wide. Fix removing highlight groups.
38baa3e634
2019-04-23 00:03:47 -04:00
e6f22d0fdd vim-patch:8.0.1092: terminal debugger can't evaluate expressions
Problem:    Terminal debugger can't evaluate expressions.
Solution:   Add :Evaluate and K.  Various other improvements.
45d5f26d11
2019-04-23 00:03:47 -04:00
9e9015ee23 vim-patch:8.0.1085: terminal debugger can't set breakpoints
Problem:    The terminal debugger can't set breakpoints.
Solution:   Add :Break and :Delete commands.  Also commands for stepping
            through code.
e09ba7bae5
2019-04-23 00:03:47 -04:00
bbc32fc831 lint 2019-04-23 00:03:47 -04:00
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
eada8f5aaa Merge pull request #9871 from justinmk/doc 2019-04-22 21:34:46 +02:00
c1887f465d gen_vimdoc.py: skip "Parameters" header if all excluded 2019-04-22 21:24:46 +02:00
d0fd66ba82 health/provider.vim: check curl HTTPS support
closes #9925
closes #9928
2019-04-22 21:05:39 +02:00
544305e802 doc: clarify -Es 2019-04-22 20:56:16 +02:00
eabe7d95f8 doc: UI 2019-04-22 20:56:16 +02:00
4d97abe805 doc 2019-04-22 20:56:16 +02:00
43356a43d0 health: check if tmux enabled true colors (#9929)
References https://github.com/neovim/neovim/issues/7764
2019-04-20 19:02:19 +02:00
3f71218505 Merge pull request #9926 from glacambre/fix_9889
Fix #9889: stopinsert prohibiting terminal mode
2019-04-20 10:46:20 +02:00
b3fd83a0ea Reset stop_insert_mode in terminal_enter rather than terminal_check
Problem: Using `:stopinsert` while in normal mode in a terminal buffer
prevents neovim from entering insert mode.

Solution: Move `stop_insert_mode = false` from terminal_check to
terminal_enter to be consistent with edit.c, as suggested by bfredl in
 #9889.

Closes https://github.com/neovim/neovim/issues/9889.
2019-04-20 10:41:46 +02:00
477e1a8648 vim-patch:8.1.1177: .ts files are recognized as xml, typescript is more common (#9922)
Problem:    .ts files are recognized as xml, while typescript is more common.
Solution:   Recognize .ts files as typescript.

1a4dce7cad
2019-04-19 12:06:23 +02:00
773bdd41ec options: avoid using empty 'shadafile'
References https://github.com/neovim/neovim/pull/9907
Fixes https://github.com/neovim/neovim/issues/9912
2019-04-16 20:00:32 +02:00
aa82f8b88f vim-patch:8.0.0716: "--clean", 'shadafile' #9907
Nvim notes:
- Nvim does not support "-u DEFAULTS", that change is omitted.
- Also add 'shadafile' as an alias to 'viminfofile'.
- Deprecate 'viminfofile'.

Problem:    Not easy to start Vim cleanly without changing the viminfo file.
            Not possible to know whether the -i command line flag was used.
Solution:   Add the --clean command line argument.  Add the 'viminfofile'
            option.  Add "-u DEFAULTS".
c4da113ef9
2019-04-15 21:15:36 +02:00
987619ddd7 Merge pull request #9902 from janlazo/vim-8.0.0761
vim-patch:8.0.{761,776,1093,1112}
2019-04-15 07:11:10 +02:00
7b219c638d vim-patch:8.0.1112: can't get size or current index from quickfix list
Problem:    Can't get size or current index from quickfix list.
Solution:   Add "idx" and "size" options. (Yegappan Lakshmanan)
fc2b270cfd
2019-04-14 20:25:42 -04:00
e52f6f21a1 vim-patch:8.0.1093: various small quickfix issues
Problem:    Various small quickfix issues.
Solution:   Remove ":" prefix from title set by a user. Add the qf_id2nr().
            function. Add a couple more tests.  Update documentation.
            (Yegappan Lakshmanan)
b4d5fbabc9
2019-04-14 19:09:19 -04:00
6de1ed1ff1 vim-patch:8.0.0776: function prototypes missing without the quickfix feature
Problem:    Function prototypes missing without the quickfix feature. (Tony
            Mechelynck)
Solution:   Move non-quickfix functions to buffer.c.
f0a521f4f7
2019-04-14 19:09:19 -04:00
8f2175e7d0 vim-patch:8.0.0761: options not set properly for a terminal buffer
Problem:    Options of a buffer for a terminal window are not set properly.
Solution:   Add "terminal" value for 'buftype'.  Make 'buftype' and
            'bufhidden' not depend on the quickfix feature.
            Also set the buffer name and show "running" or "finished" in the
            window title.
1f2903c431
2019-04-14 19:09:19 -04:00
d81b510ecf Merge pull request #9904 from bryant/pass-cc-cxx-to-gperf-build
Configure gperf to build with `CMAKE_C{XX}_COMPILER`.
2019-04-14 16:55:35 +02:00
0be8fb47a4 Merge pull request #9898 from bfredl/floatwidth
windows: float config changes
2019-04-14 13:35:11 +02:00
5613310538 Build gperf with configured host compiler.
This was initially added but unused in
7e2348f2b1, which led to its accidental
removal in feee814b30.
2019-04-14 03:01:14 -07:00
6222c74235 Set host C++ compiler CMake var. 2019-04-14 03:01:14 -07:00
9ddf99172c Merge pull request #9783 from justinmk/inccommand-ignore-redraw 2019-04-14 11:25:24 +02:00
c8acbe3b62 windows: float config changes
- Allow floating windows of width 1. #9846
- For a new floating window the size must be specified. Later on we
  might try to calculate a reasonable size by buffer contents
- Remember the configured size of a window, just like its position.
- Make get_config and set_config more consistent. Handle relative='' properly in set_config.
  get_config doesn't return keys that don't make sense for a non-floating window.
- Don't use width=0 for non-changed width, just omit the key.
2019-04-14 10:12:09 +02:00
0b8fc2742b inccommand: Disable K_EVENT during preview calculation
'inccommand' invokes ex_substitute() to build its "preview". During the
brief (~millisecond) time it takes to execute that function, the buffer
is "dirty" (its contents are invalid). Events must not be handled during
this time, else they would see a temporary state which is not the true,
logical state of the buffer.

ref #9777
2019-04-14 02:22:19 +02:00
dd9554a820 inccommand: Ignore :redraw during preview
closes #9777
2019-04-14 02:22:19 +02:00
2c34a10aa2 Merge pull request #9900 from mhinz/vim-8.0.1104
vim-patch:8.0.{1104,1130}
2019-04-14 00:15:35 +02:00
a0da692fce chdir: remove unused argument #9901 2019-04-14 00:08:18 +02:00
34f9e72af9 vim-patch:8.0.1130: the qf_jump() function is still too long
Problem:    The qf_jump() function is still too long.
Solution:   Split of parts to separate functions. (Yegappan Lakshmanan)

9cb03716c9
2019-04-13 21:25:40 +02:00
ace826e685 vim-patch:8.0.1104: the qf_jump() function is too long
Problem:    The qf_jump() function is too long.
Solution:   Split of parts to separate functions. (Yegappan Lakshmanan)

ef6b8de42f
2019-04-13 21:25:40 +02:00
82d48c0dab Merge pull request #9896 from justinmk/api-async-error
API: emit nvim_error_event on failed async request
2019-04-13 19:53:09 +02:00
cfe7f896b8 Merge pull request #9895 from janlazo/vim-8.1.1156
vim-patch:8.1.{1156,1157}
2019-04-13 19:49:17 +02:00
1d27a27656 generators: fix filename typo in help message 2019-04-13 12:08:44 -04:00
7e1591e06a API: emit nvim_error_event on failed async request
We already do this for _invalid_ async requests #9300.
Now we also do it for failed invocation of valid requests.
2019-04-13 17:07:58 +02:00
5f996e36d1 options: properly reset directories on 'autochdir' (#9894)
Fixes https://github.com/neovim/neovim/issues/9892
2019-04-13 12:50:36 +02:00
09120df890 lint 2019-04-12 23:44:31 -04:00
9eb5512082 vim-patch:8.1.1157: Unicode tables are out of date
Problem:    Unicode tables are out of date.
Solution:   Update to Unicode 12. (Christian Brabandt, closes vim/vim#4240)
f9b89b4679
2019-04-12 20:07:13 -04:00
210fa1e02d vim-patch:8.1.1156: Unicode emoji and other image characters not recognized
Problem:    Unicode emoji and other image characters not recognized.
Solution:   Add ranges for musical notation, game pieces, etc. (Martin
            Tournoij, closes vim/vim#4238)
d489c9801b
2019-04-12 19:55:11 -04:00
d08692a824 options: comma-separated options don't allow duplicates (#9891)
Closes https://github.com/neovim/neovim/issues/9890
2019-04-12 16:14:01 +02:00
3b7a4f233b vim-patch:8.0.0714: cmdline redraw during timer #9835
vim-patch:8.0.0714: when a timer causes a command line redraw " goes missing
Problem:    When a timer causes a command line redraw the " that is displayed
            for CTRL-R goes missing.
Solution:   Remember an extra character to display.
a92522fbf3

vim-patch:8.0.0720: unfinished mapping not displayed when running timer
Problem:    Unfinished mapping not displayed when running timer.
Solution:   Also use the extra_char while waiting for a mapping and digraph.
            (closes vim/vim#1844)
6a77d2667e

close #9835
2019-04-12 03:20:05 +02:00
e11a9d351a Merge pull request #9887 from justinmk/chan-notif-response-id
RPC: eliminate NO_RESPONSE
2019-04-12 03:12:08 +02:00
8dbf23181a RPC: conform message-id type to msgpack-RPC spec
According to [MessagePack RPC specification](https://github.com/msgpack-rpc/msgpack-rpc),
message ID must be 32-bit unsigned integer. But Neovim implementation
uses uint64_t instead of uint32_t. This can have wrong results in the
case of large ids or a malformed request, for example:

    Actual response:   [1,18446744073709551615,[1,"Message is not an array"],null]
    Expected response: [1,4294967295,[1,"Message is not an array"],null]

The issue does not affect RPC clients written in dynamically-typed
languages like Python. Wrong type of sequence id number breaks RPC
clients written statically typed languages like C/C++/Golang: all of
them expect uint32_t as message id.
Examples:
  11268ba2be/src/msgpack/rpc/protocol.h (L27)
  https://github.com/ugorji/go/blob/master/codec/msgpack.go#L993

closes #8850
2019-04-12 02:31:46 +02:00
fd00806f01 RPC: eliminate NO_RESPONSE
Using a sentinel value in the response-id is ambiguous because the
msgpack-rpc spec allows all values (including zero/max). And clients
control the id, so we can't be sure they won't use the sentinel value.

Instead of a sentinel value, check the message type explicitly.

ref #8850
2019-04-12 02:30:31 +02:00
b4ca56d96d PVS/V595: pointer utilized before checking NULL 2019-04-12 00:41:20 +02:00
49ca20aaf3 vim-patch.sh: perf, readability #9044
closes #9044
2019-04-12 00:28:02 +02:00
ae88e46563 float: always change to valid windows (#9878)
Using `:wincmd j` and friends doesn't make much sense to a floating window. For
convenience though, any direction will simply change to the previous window.

Make sure the previous window is valid, not the current window, and not another
floating window. Change to the first window (which is never a floating window)
otherwise.
2019-04-11 20:20:17 +02:00
b358054694 Merge pull request #9880 from janlazo/vim-8.0.0725
closes #9879
2019-04-11 13:31:05 +02:00
5cf96fc141 ops: use ARRAY_SIZE macro for opchars array length 2019-04-10 22:09:59 -04:00
d8d4f05564 vim-patch:8.0.1411: reading invalid memory with CTRL-W :
Problem:    Reading invalid memory with CTRL-W :.
Solution:   Correct the command characters. (closes vim/vim#2469)
2efb323e87
2019-04-10 20:38:16 -04:00
de2e86a698 vim-patch:8.0.0725: a terminal window does not handle keyboard input
Problem:    A terminal window does not handle keyboard input.
Solution:   Add terminal_loop().  ":term bash -i" sort of works now.
938783d0ab
2019-04-10 20:34:39 -04:00
21b108fe44 vim-patch:8.1.1140: not easy to find out what neighbors a window has (#9873)
Problem:    Not easy to find out what neighbors a window has.
Solution:   Add more arguments to winnr(). (Yegappan Lakshmanan)

46ad288b9b
2019-04-10 10:16:32 +02:00
ddd0eb6f51 startup: -es/-Es (silent/batch mode): skip swapfile #8540
To use Nvim as a scripting engine the side-effects of swapfiles and user
config should be avoided by default.
2019-04-10 03:27:25 +02:00
9daa7d9978 version.c: update [ci skip]
closes #9489

vim-patch:8.0.0210: no support for bracketed paste
vim-patch:8.0.0228: pasting in xterm on the command line has PasteStart
vim-patch:8.0.0230: bracketed paste does not support line breaks
vim-patch:8.0.0506: can't build with ANSI C
vim-patch:8.0.0506: can't build with ANSI C
vim-patch:8.0.0569: ?
vim-patch:8.0.0592:
vim-patch:8.0.0693: no terminal emulator support
vim-patch:8.0.0694: building in shadow directory does not work
vim-patch:8.0.0698: crash on exit when using Python function in timer.
vim-patch:8.0.0712: the terminal implementation is incomplete
vim-patch:8.0.0713: 'termkey' option not fully implemented
vim-patch:8.0.0713: 'termkey' option not fully implemented (follow-up to vim-patch:8.0.0712)
vim-patch:8.0.0717: terminal feature precence unclear
vim-patch:8.0.0718: output of job in terminal is not displayed
vim-patch:8.0.0730: terminal feature only supports Unix-like systems
vim-patch:8.0.0738: cannot use the mouse to resize a terminal window
vim-patch:8.0.0739: terminal resizing doesn't work well.
vim-patch:8.0.0740: cannot resize a terminal window by the command
vim-patch:8.0.0742: terminal feature does not work on MS-Windows
vim-patch:8.0.0743: the 'termsize' option can be set to an invalid value
vim-patch:8.0.0744: terminal window does not use a pty
vim-patch:8.0.0745: multi-byte characters in a terminal don't display well
vim-patch:8.0.0746: when :term fails the job is not properly cleaned up
vim-patch:8.0.0747: :terminal without an argument doesn't work
vim-patch:8.0.0748: running Vim in terminal window doesn't use the right colors
vim-patch:8.0.0753: no size reports to a job running in a terminal
vim-patch:8.0.0758: possible crash when using a terminal window
vim-patch:8.0.0759: MS-Windows: terminal does not adjust size
vim-patch:8.0.0771: cursor in terminal window not always updated in GUI
vim-patch:8.0.0778: in a terminal the cursor may be hidden
vim-patch:8.0.0799: missing semicolon
vim-patch:8.0.0802: last line of terminal window has no color
vim-patch:8.0.0804: running tests fails when stdin is /dev/null
vim-patch:8.0.0812: terminal window colors shift when 'number' is set
vim-patch:8.0.0840: MS-Windows: fopen() and open() prototypes are wrong
vim-patch:8.0.0843: MS-Windows: compiler warning for signed/unsigned
vim-patch:8.0.0844: wrong function prototype because of missing static
vim-patch:8.0.0853: crash when running terminal with unknown command
vim-patch:8.0.0871: status line for a terminal window always has "[+]".
vim-patch:8.0.0872: no mouse scroll with a terminal window
vim-patch:8.0.0886: crash when using ":term ls"
vim-patch:8.0.0903: early return from test function
vim-patch:8.0.0915: wrong initialisation of global
vim-patch:8.0.0950: MS-Windows: wrong #ifdef, compiler warnings
vim-patch:8.0.0951: another wrong #ifdef
vim-patch:8.0.0969: Coverity warning for unused return value
vim-patch:8.0.1003: 64 bit compiler warning
vim-patch:8.0.1005: terminal without job updates slowly in GUI
vim-patch:8.0.1018: warnings from 64-bit compiler
vim-patch:8.0.1079: memory leak when remote_foreground() fails
vim-patch:8.0.1128: old xterm sends CTRL-X in response to t_RS
vim-patch:8.0.1132: #if condition is not portable
vim-patch:8.0.1137: cannot build with Ruby
vim-patch:8.0.1143: macros always expand to the same thing
vim-patch:8.0.1145: warning when compiling with Perl
vim-patch:8.0.1182: cannot see or change mzscheme dll name
vim-patch:8.0.1199: when 'clipboard' is "autoselectplus" star register is set
vim-patch:8.0.1299: bracketed paste does not work well in terminal window
vim-patch:8.0.1545: screen dumps not included in distribution
vim-patch:8.0.1548: screen dump test script not included in distribution
vim-patch:8.0.1658: capitalize argument not available in long form
vim-patch:8.0.1693: xxd is excluded from coverage statistics
vim-patch:8.1.0363: internal diff isn't used by default as advertised
vim-patch:8.1.0443: unnecessary static function prototypes
vim-patch:8.1.0549: netbeans test depends on README.txt contents
vim-patch:8.1.0713: images for NSIS take up too much space
vim-patch:8.1.0714: unessesary #if lines in GTK code
vim-patch:8.1.0727: compiler warning for sprintf() argument
vim-patch:8.1.0733: too many #ifdefs for the multi-byte feature
vim-patch:8.1.0764: list of distributed files is outdated
vim-patch:8.1.0776: Travis does not build a version without GUI on Linux
vim-patch:8.1.0841: travis config to get Lua on MacOS is too complicated
vim-patch:8.1.0869: Travis CI script is too complicated
vim-patch:8.1.0873: list if distributed files does not include matchit autoload
vim-patch:8.1.0886: compiler warning for NULL pointer and condition always true
vim-patch:8.1.0916: with Python 3.7 "find_module" is not made available
vim-patch:8.1.0930: typo in Makefile
vim-patch:8.1.0943: still a trace of Farsi support
vim-patch:8.1.0944: format of nbdbg() arguments is not checked
vim-patch:8.1.0946: Coveralls is not very useful
vim-patch:8.1.0947: using MSWIN before it is defined
vim-patch:8.1.0948: when built without +eval "Vim --clean" produces errors
vim-patch:8.1.0949: MS-windows defines GUI macros different than other systems
vim-patch:8.1.0952: compilation warnings when building the MS-Windows installer
vim-patch:8.1.0955: matchit autoload directory not in installer
vim-patch:8.1.0976: dosinstall still has buffer overflow problems
vim-patch:8.1.0978: blob not tested with Perl
vim-patch:8.1.0979: compiler warning for unused functions
vim-patch:8.1.0983: checking CYGWIN32 unnecessarily
vim-patch:8.1.0984: unnecessary #ifdefs
vim-patch:8.1.0987: unnecessary condition in #ifdef
vim-patch:8.1.0991: cannot build with a mix of features
vim-patch:8.1.0996: a few screendump tests fail because of scrolling
vim-patch:8.1.1008: MS-Windows: HAVE_STDINT_H only defined for non-debug version
vim-patch:8.1.1009: MS-Windows: some text is not baseline aligned
vim-patch:8.1.1010: Lua interface leaks memory
vim-patch:8.1.1014: MS-Windows: /analyze only defined for non-debug version
vim-patch:8.1.1020: compiler warning for Python3 interface
vim-patch:8.1.1021: pyeval() and py3eval() leak memory
vim-patch:8.1.1029: DirectWrite doesn't take 'linespace' into account
vim-patch:8.1.1034: too many #ifdefs
vim-patch:8.1.1039: MS-Windows build fails
vim-patch:8.1.1040: FEAT_TAG_ANYWHITE is not enabled in any build
vim-patch:8.1.1048: minor issues with tests
vim-patch:8.1.1050: blank srceen when DirectWrite failed
vim-patch:8.1.1054: not checking return value of ga_grow()
vim-patch:8.1.1057: nsis config is too complicated
vim-patch:8.1.1059: MS-Windows: PlatformId() is called unnecessarily
vim-patch:8.1.1060: MS-Windows: get_cmd_args() is no longer needed
vim-patch:8.1.1064: no test for output conversion in the GTK GUI
vim-patch:8.1.1065: no test for using and deleting menu in the GUI
vim-patch:8.1.1066: VIMDLL isn't actually used
vim-patch:8.1.1067: issues added on github are unstructured
vim-patch:8.1.1069: source README file doesn't look nice on github
vim-patch:8.1.1070: issue templates are not good enough
vim-patch:8.1.1075: function reference count wrong in Python code
vim-patch:8.1.1081: MS-Windows: cannot use some fonts
vim-patch:8.1.1092: setting 'guifont' when maximized resizes the Vim window
vim-patch:8.1.1096: MS-Windows: cannot distinguish BS and CTRL-H
vim-patch:8.1.1097: Motif build fails
vim-patch:8.1.1104: MS-Windows: not all environment variables can be used
vim-patch:8.1.1105: long escape sequences may be split up
vim-patch:8.1.1109: deleted file still in list of distributed files
vim-patch:8.1.1117: build failure without the +eval feature
vim-patch:8.1.1119: no support for Windows on ARM64
vim-patch:8.1.1126: build failure with +terminal but without tgetent
vim-patch:8.1.1135: build failure for small version
vim-patch:8.1.1138: plugins don't get notified when the popup menu changes
2019-04-10 01:46:21 +02:00
9d085c75ff vim-patch:8.0.0702: error in a timer can make Vim unusable #9826
Problem:    An error in a timer can make Vim unusable.
Solution:   Don't set the error flag or exception from a timer.  Stop a timer
            if it causes an error 3 out of 3 times.  Discard an exception
            caused inside a timer.
c577d813b7

closes #9826
2019-04-10 00:50:51 +02:00
ae2401621a ci/build.ps1: Respect CMAKE_BUILD_TYPE if provided #9869 2019-04-09 00:17:07 +02:00
d5fd0732e0 Merge pull request #9859 from jamessan/gcc-9-compound-literal
Make SHM_ALL to a variable instead of a compound literal #define
2019-04-08 21:57:43 +02:00
2a6ccfccac Merge pull request #9868 from mhinz/vim-8.1.1118
vim-patch:8.1.1118: a couple of conditions are hard to understand
2019-04-08 21:54:18 +02:00
d48362fc8d Merge pull request #9867 from mhinz/vim-8.1.1134
vim-patch:{8.0.1763,8.1.1134}
2019-04-08 21:51:05 +02:00
e6101b4963 vim-patch:8.1.1118: a couple of conditions are hard to understand
Problem:    A couple of conditions are hard to understand.
Solution:   Split the conditions into pieces. (Ozaki Kiichi)

652de23dc7
2019-04-08 21:00:31 +02:00
7381c93e2c vim-patch:8.1.1134: buffer for quickfix window is reused for another file
Problem:    Buffer for quickfix window is reused for another file.
Solution:   Don't reuse the quickfx buffer. (Yegappan Lakshmanan)

39803d82db
2019-04-08 20:02:08 +02:00
a8d0062c67 vim-patch:8.0.1763: :argedit does not reuse an empty unnamed buffer
Problem:    :argedit does not reuse an empty unnamed buffer.
Solution:   Add the BLN_CURBUF flag and fix all the side effects. (Christian Brabandt)

46a53dfc29
2019-04-08 19:59:57 +02:00
61eff5d238 lint 2019-04-08 08:02:44 -04:00
6572c995fb Remove MSVC optimization workaround for SHM_ALL 2019-04-08 07:57:18 -04:00
5a81561e7a Merge pull request #9866 from bfredl/setbufcursor
api/window: validate cursor in nvim_win_set_buf
2019-04-08 13:41:39 +02:00
344c69b66b api/window: validate cursor in nvim_win_set_buf
validate_cursor() is called regularly, but only for the current window.
When changing the buffer for a non-current window, we need to invoke it
in the context of that window.
2019-04-08 12:39:08 +02:00
11bf89e3b5 Merge #9796 from justinmk/doc 2019-04-08 03:44:00 +02:00
ce76dffda4 doc: rewrite *feature-list* 2019-04-08 03:42:21 +02:00
27cd1e07ed doc [ci skip]
- README.md: Removed waffle.io because that service is shutting down.
2019-04-08 03:42:21 +02:00
943bedfc86 event-loop: do not set CA_COMMAND_BUSY #9853
CA_COMMAND_BUSY in nv_event() was carried over from Vim nv_cursorhold()
(ref: e5165bae11). It prevents :startinsert from working during a RPC
call, so remove it.

Helped-by: glacambre <me@r4>
closes #7254
2019-04-08 02:33:00 +02:00
9da348beda Merge #9858 from justinmk/ci-win 2019-04-08 02:32:33 +02:00
b8df2c6ebd Make SHM_ALL to a variable instead of a compound literal #define
gcc-9 has [improved compliance] with the C spec for lifetime of compound
literals, tying their lifetime to block scope instead of function scope.
This makes the behavior comparable to all other automatic variables.

Using the SHM_ALL #define instantiated a compound literal local to an if
clause and assigned the address to a "char_u *".  Since the pointer was
then being used outside of the if clause, it was using an invalid
address.

[improved compliance]: https://gcc.gnu.org/gcc-9/porting_to.html#complit

Closes #9855
2019-04-07 20:00:28 -04:00
8a8213f6d4 CI/AppVeyor: remove redundant cache directive
Maybe AppVeyor gets confused by the redundant entry?

Anyway, build.ps1 generally does not affect the validity of the deps
cache.
2019-04-08 01:46:25 +02:00
45bf5bb666 CI/AppVeyor: do not cache pacman packages
pacman log says:
    Total Download Size:   17.06 MiB
So this takes very little of the quota. But it also takes only a few
seconds to install, so caching it saves little or no time.
2019-04-08 01:41:25 +02:00
7872739d3c CI/AppVeyor: print info about restored cache 2019-04-08 01:19:38 +02:00
d928b036dc :stopinsert should leave terminal-mode #9856
Problem:  Calling :stopinsert from RPC while in terminal-mode does not
          go back to normal-mode.
Solution: Implement a check() handler for state_enter(), adapted from
          insert_check().

Fix #7807
2019-04-08 01:13:43 +02:00
02aa57afa5 CI/AppVeyor: build deps out-of-tree
appveyor.yml: set cache to an absolute path.

Desperate attempt to get AppVeyor cache to work.

My assumption in a7a56293aa #9852 that that different jobs were
overwriting each other's cache is probably wrong: AppVeyor
docs/discussions hint that the cache is per-config (though I haven't
found a clear, unambiguous statement as such).
2019-04-08 01:00:47 +02:00
c5e8924f4e CI/AppVeyor: do skip-logic earlier #9854 2019-04-07 14:43:50 +02:00
a7a56293aa CI/AppVeyor: per-compiler deps cache #9852
The deps cache does not work for MSVC builds because the MINGW builds
ovewrite it.  Cache saves 10+ minutes on the build.
2019-04-07 03:54:22 +02:00
805b5f2e1e Merge #9840 from janlazo/vim-8.0.0709
vim-patch:8.0.{709,728},8.1.{135,308}
2019-04-07 03:43:36 +02:00
cf072cf223 build: fix warning 2019-04-07 01:41:41 +02:00
8376d2c4b1 vim-patch:8.1.1123: avoid filtering autocomplete
Author: roxma <roxma@qq.com>

Problem:    No way to avoid filtering for autocomplete function, causing
            flickering of the popup menu.
Solution:   Add the "equal" field to complete items. (closes vim/vim#3887)
73655cf0ca

closes #9566
2019-04-07 00:56:26 +02:00
3cd9422c4c vim-patch:8.1.1113: making an autocommand trigger once is not so easy
Problem:    Making an autocommand trigger once is not so easy.
Solution:   Add the ++once argument.  Also add ++nested as an alias for
            "nested". (Justin M. Keyes, closes vim/vim#4100)
eb93f3f0e2
2019-04-06 23:48:26 +02:00
4d6e99c949 vim-patch:8.0.0728: the terminal structure is never freed
Problem:    The terminal structure is never freed.
Solution:   Free the structure and unreference what it contains.
96ca27a0ee
2019-04-06 01:10:32 -04:00
5262a1f4b5 oldtests: win: filename cannot have " 2019-04-05 22:57:08 -04:00
eba1ebafe5 oldtests: set shellslash for ":cd" test 2019-04-05 22:57:08 -04:00
e2f845632d vim-patch:8.1.0308: a quick undo shows "1 seconds ago"
Problem:    A quick undo shows "1 seconds ago". (Tony Mechelynck)
Solution:   Add singular/plural message.
fd6100b2aa
2019-04-05 22:57:08 -04:00
ca49ae9e36 vim-patch:8.1.0135: undo message delays screen update for CTRL-O u
Problem:    Undo message delays screen update for CTRL-O u.
Solution:   Add smsg_attr_keep(). (closes vim/vim#3125)
e0429681ae
2019-04-04 19:10:31 -04:00
0baf8583ef vim-patch:8.0.0709: libvterm cannot use vsnprintf()
Problem:    Libvterm cannot use vsnprintf(), it does not exist in C90.
Solution:   Use vim_vsnprintf() instead.
8327d1df17
2019-04-04 19:10:31 -04:00
052ced4954 Merge #9845 from mhinz/vim-8.1.0494
vim-patch:8.1.0{218,493,494}
2019-04-05 00:20:44 +02:00
d608e9c950 vim-patch:8.1.0494: functions do not check for a window ID in other tabs
Problem:    Functions do not check for a window ID in other tabs.
Solution:   Also find the window ID in other than the current tab.

babfcf54ae

Fixes https://github.com/neovim/neovim/issues/9843
2019-04-04 20:24:39 +02:00
5510361a8c vim-patch:8.1.0493: argv() and argc() only work on the current argument list
Problem:    argv() and argc() only work on the current argument list.
Solution:   Add a window ID argument. (Yegappan Lakshmanan, closes vim/vim#832)

e6e3989c1b
2019-04-04 20:24:39 +02:00
6b75d9f865 vim-patch:8.1.0218: cannot add matches to another window
Problem:    Cannot add matches to another window. (Qiming Zhao)
Solution:   Add the "window" argument to matchadd() and matchaddpos().
            (closes vim/vim#3260)

95e51470f1
2019-04-04 20:24:39 +02:00
fb555c6898 coverity/183543: Null pointer dereference #9836
Window may disappear, see e7e2115de5.
2019-04-03 11:33:16 +02:00
d9de4c0efb vim-patch:8.1.1072: extending sign and foldcolumn below the text is confusing (#9816)
Problem:    Extending sign and foldcolumn below the text is confusing.
Solution:   Let the sign and foldcolumn stop at the last text line, just like
            the line number column.  Also stop the command line window leader.
            (Christian Brabandt)

8ee4c01b8c

Closes https://github.com/neovim/neovim/issues/9613
2019-04-03 10:48:47 +02:00
c395cf018d Merge #9823 from mhinz/vim-8.1.1093
vim-patch:8.1.{1093,1094,1100}
2019-04-03 00:30:24 +02:00
5134b22ac5 Merge #9831 from janlazo/vim-8.0.0681
vim-patch:8.0.0681,8.1.{118,119}
2019-04-02 22:36:45 +02:00
a79c0c8f7a vim-patch:8.1.1100: tag file without trailing newline no longer works
Problem:    Tag file without trailing newline no longer works. (Marco Hinz)
Solution:   Don't expect a newline at the end of the file.

fd700393be
2019-04-02 22:20:53 +02:00
e05a47f68b vim-patch:8.1.1094: long line in tags file causes error
Problem:    Long line in tags file causes error.
Solution:   Check for overlong line earlier. (Andy Massimino)

5209334c55
2019-04-02 22:20:53 +02:00
2a73549ee8 vim-patch:8.1.1093: support for outdated tags format slows down tag parsing
Problem:    Support for outdated tags format slows down tag parsing.
Solution:   Remove FEAT_TAG_OLDSTATIC.

96428dd4e9
2019-04-02 22:20:53 +02:00
ed8b4987b7 lint 2019-04-02 07:12:52 -04:00
8eaa452073 Merge #9516 from erw7/improve-executable-on-windows
Improve executable() and exepath() on windows
2019-04-02 12:40:36 +02:00
42e1e2495c oldtests: set shellslash for Test_non_zero_arg 2019-04-01 23:28:16 -04:00
d00e913ea6 vim-patch:8.1.0119: failing test goes unnoticed because messages is not written
Problem:    Failing test goes unnoticed because testdir/messages is not
            written.
Solution:   Set 'nomodifiable' only local to the buffer.
ec12d64909
2019-04-01 21:48:35 -04:00
773086388d vim-patch:8.1.0118: duplicate error message for put command
Problem:    Duplicate error message for put command.
Solution:   Check return value of u_save(). (Jason Franklin)
f52f9ea8f5
2019-04-01 21:48:01 -04:00
8843928e10 vim-patch:8.0.0681: unnamed register only contains the last deleted text
Problem:    Unnamed register only contains the last deleted text when
            appending deleted text to a register. (Wolfgang Jeltsch)
Solution:   Only set y_previous when not using y_append. (Christian Brabandt)
18d90b95c4
2019-04-01 21:29:59 -04:00
c7039fd0d3 test: "$PATHEXT=::" 2019-04-02 01:28:11 +02:00
35362495c9 jumplist: avoid extra tail entry #9805
fixes #9775
2019-04-02 00:50:28 +02:00
70a0a12b53 fs.c: fix is_executable_ext()
- Corresponds to the case where pathext contains a zero-length
  extension.
- Remove unnecessary break statements.
- Fix function attributes.
2019-04-02 05:08:40 +09:00
a011f8a321 Merge #9827 from justinmk/fix-warnings 2019-04-01 21:59:21 +02:00
a062d307fb [ci skip] fs.c: fix comment 2019-04-01 23:36:16 +09:00
e62f4cc122 fs.c: Move sh check of is_executable_ext to outside of loop 2019-04-01 22:14:33 +09:00
cc6d3f7903 fs.c: Simplify calling is_executable_ext 2019-04-01 20:37:10 +09:00
ece8d88b10 test/win: Remove unnecessary set shell 2019-04-01 19:47:58 +09:00
a7cc18e563 fs.c: fix is_executable_ext
- Fix the problem of checking the extension in a UNIX like shell.
- Fix the problem of not checking the existence of the file when the
  pathext contains an extension.
2019-04-01 19:29:12 +09:00
7d61b2f64f fs.c: eliminate is_extension_executable
Add this functionality to is_executable_ext() instead.
2019-04-01 03:13:11 +02:00
4b25c2b4e8 is_extension_executable: simplify check for unix-style shell
mch_expand_wildcards does it this way, it's probably good enough.
2019-04-01 03:13:11 +02:00
692b83fc92 is_extension_executable: simplify
Simplify method of determining search position of the extension.
2019-04-01 03:13:11 +02:00
70ac7c876b cleanup: PATHEXT function 2019-04-01 03:13:11 +02:00
3be5aa1a34 test/win: executable(), exepath() #9516 2019-04-01 03:13:11 +02:00
35c2ceba96 win: exepath(): append extension if omitted
fixes #9403
2019-04-01 03:13:11 +02:00
acdcae6b1e PVS/V560: expression is always true 2019-04-01 03:07:24 +02:00
cf4e14c746 clang/"null pointer dereference": insert_execute 2019-04-01 03:05:02 +02:00
e32c9f888b clang/"result is garbage/undefined": win_close
win_free_mem: set `dirp` to a dummy value.
2019-04-01 02:57:43 +02:00
6be483b6ad win: executable(): also check extension 2019-04-01 00:14:35 +02:00
519b93d236 win: executable(): fix relative path bug
Qualified (i.e. dot-prefixed) relative paths should only search CWD, not
$PATH.
2019-04-01 00:14:35 +02:00
d13803f64f keymap, terminal: more keycodes #9810
- input: recognize <kEqual>, <kComma>
- terminal.c: If we need to support function key, a change must be made
  in libvtermkey. Currently, it emulates strictly VT220 terminal, and
  returning numeric value in 'normal' mode is the expected behaviour.

closes #9810
2019-03-31 23:39:06 +02:00
f793c578bc Merge #9822 from janlazo/vim-8.1.1073
vim-patch:8.1.{1073,1074,1082,1087}
2019-03-31 20:58:36 +02:00
13f4d4fb6e vim-patch:8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Problem:    tag stack is incorrect after CTRL-T and then :tag
Solution:   Handle DT_TAG differently. (test by Andy Massimino, closes vim/vim#3944,
            closes vim/vim#4177)
7559dcef6c
2019-03-31 12:59:48 -04:00
3ae3d80bfb vim-patch:8.1.1082: "Conceal" match is mixed up with 'hlsearch' match.
Problem:    "Conceal" match is mixed up with 'hlsearch' match.
Solution:   Check that a match is found, not a 'hlsearch' item. (Andy
            Massimino, closes vim/vim#4073)
ab62c19ea0
2019-03-31 12:40:54 -04:00
be762a1b6f vim-patch:8.1.1074: Python test doesn't wipe out hidden buffer
Problem:    Python test doesn't wipe out hidden buffer.
Solution:   Wipe out the buffer. (Ben Jackson, closes vim/vim#4189)
bfd3603670
2019-03-31 12:40:54 -04:00
c5db02d792 vim-patch:8.1.1073: space in number column is on wrong side with 'rightleft' set
Problem:    Space in number column is on wrong side with 'rightleft' set.
Solution:   Move the space to the text side.  Add a test.
e73f911c53
2019-03-31 12:40:54 -04:00
157034bd6c Merge #9812 from janlazo/vim-8.0.1153 2019-03-31 16:32:23 +02:00
4c4a570156 Merge #9807 from mhinz/window-local-last-cursormoved 2019-03-31 15:13:38 +02:00
f772117b55 eval: diff_hlID() and hlID() return same id 2019-03-31 09:01:40 -04:00
1782550bfe vim-patch:8.0.1153: no tests for diff_hlID() and diff_filler()
Problem:    No tests for diff_hlID() and diff_filler().
Solution:   Add tests. (Dominique Pelle, closes vim/vim#2156)
97fbc404fc
2019-03-31 08:31:38 -04:00
11f03ee3f3 vim-patch:8.1.1095: win: executable() on very long name #9820
Problem:    MS-Windows: executable() fails on very long filename.
Solution:   (Ken Takata, closes vim/vim#4015)
8662189736
2019-03-31 13:29:16 +02:00
9e52255de2 autocmd: rename MenuPopupChanged to CompleteChanged #9819 2019-03-31 01:15:41 +01:00
c76494d8b7 vim-patch:8.0.0705: check did_throw before discarding exception #9808
Problem:    Crash when there is an error in a timer callback. (Aron Griffis,
            Ozaki Kiichi)
Solution:   Check did_throw before discarding an exception.  NULLify
            current_exception when no longer valid.
cae24be4a8
2019-03-30 22:28:19 +01:00
2bdc7cac8b vim-patch:8.1.1088: height of quickfix window not retained with vertical split (#9818)
Problem:    Height of quickfix window not retained with vertical split.
Solution:   Use frame_fixed_height() and frame_fixed_width(). (Hongbo Liu,
            closes vim/vim#4013, closes vim/vim#2998)
9e1e358d37

closes #3608
2019-03-30 22:20:08 +01:00
104a40463a vim-patch:8.0.0629: set starting earlier
The patch is N/A but we include it for consistency.
closes #9814

---
Problem:    Checking for ambigous width is not working. (Hirohito Higashi)
Solution:   Reset "starting" earlier.
6b1da3312e
2019-03-30 22:18:18 +01:00
1ae52a3bba complete_info(): fix null reference 2019-03-30 22:16:17 +01:00
fb33bae02d vim-patch:8.1.0045: popup test isn't run completely
Problem:    Popup test isn't run completely.
Solution:   Remove "finish".  Clean up function definitions.
ae0f30b761
2019-03-30 22:16:11 +01:00
a8783012e4 Merge #9815 'vim-patch:8.1.1068: complete_info()' 2019-03-30 21:30:16 +01:00
6feb9cb09d docs: explicitly state return value on success 2019-03-30 18:15:08 +01:00
2bf18e7843 test: move trim to global helpers 2019-03-30 18:14:20 +01:00
2d63b6d2c1 vim-patch:8.1.1068: cannot get all the information about current completion
Problem:    Cannot get all the information about current completion.
Solution:   Add complete_info(). (Shougo, Hirohito Higashi, closes vim/vim#4106)
fd133323d4
2019-03-30 22:24:35 +09:00
33d4c38131 cursormoved: add tests for CursorMoved 2019-03-29 10:58:53 +01:00
e2839d9633 cursormoved: always trigger CursorMoved when entering window 2019-03-29 10:58:53 +01:00
357f95a77e cursormoved: make global last_cursormoved window-local
Fixes https://github.com/neovim/neovim/issues/9755
2019-03-29 10:58:53 +01:00
dfb7f6b349 Merge #9792
fixes #9791
closes #9792
2019-03-29 03:29:50 +01:00
842e6fb92f fixup: use vim_snprintf, ASCII_ISALNUM
ASCII_ISALNUM is part of vim-patch:8.1.0540
2019-03-29 03:28:15 +01:00
b22ca804dd lint 2019-03-29 03:28:15 +01:00
f6fb370b1b keymap: add more (keypad) keycodes #9793
- K_KORIGIN instead of K_KCENTER: This name is similar to what is used
  by xev. Alternative could be K_KBEGIN as hinted here:
  https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys
  But I find Begin and Home too similar, and it might induced some
  confusion. The naming looked related to some old keyboard
  configuration.

- keymap.c: alias KPPeriod to kDel instead of kPoint.
  This might seems weird, but this is actually the behaviour that should
  be expected. libtermkey produces "KPPeriod" when num lock is off. To
  fix this would need to change this name in termkey.

closes #9780
closes #9793
2019-03-29 01:11:57 +01:00
33f99431dc Merge #9803 from janlazo/vim-8.0.0504
Benchmarked using RelWithDebInfo build and the `:Time` command from
https://github.com/tpope/vim-scriptease .

    :Time for i in range(0,99999)|call exists(':abbreviate')|endfor

- before (8698830cbd):   0.431 seconds
- after (63025a1d65): 0.345 seconds
- Vim 8.1.1005 : 0.361 seconds
2019-03-28 21:48:50 +01:00
c933378b9b vim-patch:8.1.0544: setting 'filetype' in a modeline causes an error
Problem:    Setting 'filetype' in a modeline causes an error (Hirohito
            Higashi).
Solution:   Don't add the P_INSECURE flag when setting 'filetype' from a
            modeline.  Also for 'syntax'.
916a818cea
2019-03-28 18:12:30 +02:00
ebfff8e802 vim-patch:8.1.0540: may evaluate insecure value when appending to option
Problem:    May evaluate insecure value when appending to option.
Solution:   Set the secure flag when changing an option that was previously
            set insecurely.  Also allow numbers for the characters from
            'spelllang' that are used for LANG.vim.
247bb7e43b
2019-03-28 18:12:30 +02:00
5eaa455479 vim-patch:8.1.0539: cannot build without the sandbox
Problem:    Cannot build without the sandbox.
Solution:   Set the secure option instead of using the sandbox.  Also restrict
            the characters from 'spelllang' that are used for LANG.vim.
            (suggested by Yasuhiro Matsumoto)
82e8c92ebe
2019-03-28 18:12:30 +02:00
63025a1d65 gen_ex_cmds.lua: build the command table
Lua port of create_cmdidxs.vim from 8.0.0572

N/A:
vim-patch:8.0.0572: building the command table requires Perl

Problem:    Building the command table requires Perl.
Solution:   Use a Vim script solution. (Dominique Pelle, closes vim/vim#1641)
6de5e12601
2019-03-28 07:56:21 -04:00
76204da1f8 Merge #9802 from janlazo/vim-8.1.0887 2019-03-28 12:32:41 +01:00
07a5c9d4f0 vim-patch:8.0.0506: can't build with ANSI C
Problem:    Can't build with ANSI C.
Solution:   Move declarations to start of block.
6c0c1e8052
2019-03-27 23:43:17 -04:00
c3158e230d vim-patch:8.0.0504: looking up an Ex command is a bit slow
Problem:    Looking up an Ex command is a bit slow.
Solution:   Instead of just using the first letter, also use the second letter
            to skip ahead in the list of commands. Generate the table with a
            Perl script. (Dominique Pelle, closes vim/vim#1589)
e5e0fbcd42
2019-03-27 23:43:16 -04:00
4b96002533 vim-patch:8.1.1061: when substitute string throws error, substitute happens anyway
Problem:    When substitute string throws error, substitute happens anyway.
Solution:   Skip substitution when aborting. (closes vim/vim#4161)
0e97b94875
2019-03-27 21:35:02 -04:00
2894d04b19 vim-patch:8.1.0887: the 'l' flag in :subsitute is sticky
Problem:    The 'l' flag in :subsitute is sticky.
Solution:   Reset the flag. (Dominique Pelle, closes vim/vim#3925)
9474716d39
2019-03-27 21:32:51 -04:00
2470c88291 Merge #9794 from janlazo/vim-8.0.1528 2019-03-27 11:09:54 +01:00
bf2ad145e3 vim-patch:8.1.0528: various typos in comments
Problem:    Various typos in comments.
Solution:   Fix the typos.
c4568ab37e
2019-03-26 23:59:01 -04:00
c95fdcd127 vim-patch:8.0.1528: dead code found
Problem:    Dead code found.
Solution:   Remove the useless lines. (CodeAi, closes vim/vim#2656)
81226e0310
2019-03-26 23:59:01 -04:00
281c011d44 gen_help_html.py [ci skip] 2019-03-27 00:50:38 +01:00
127e13f53e doc, lint 2019-03-26 22:56:09 +01:00
be676eccf1 Merge #9600 'doc, gen_vimdoc.py' 2019-03-26 21:36:33 +01:00
bec4066033 gen_vimdoc.py: render nested lists, etc [ci skip]
- render_node() is now the main rendering function: it traverses a node
  and builds the Vim help text recursively.
- render_para() is weird and ugly, it is the entry-point for rendering
  the help text for one docstring'd function.
2019-03-26 21:33:06 +01:00
eeb19a346a doc: mention "pynvim" module rename
closes #9764
2019-03-26 21:17:12 +01:00
d614c7932c doc: move ui-wildmenu to deprecated.txt [ci skip] 2019-03-26 19:55:33 +01:00
fbaee922d1 doc [ci skip]
closes #9719
2019-03-26 19:55:33 +01:00
2d50bf3498 mac: do not use libintl_setlocale() (#9789)
gettext contains libintl.h. That header file defines a macro that replaces
`setlocale` by `libintl_setlocale`. That function eventually calls the original
`setlocale()` from Apple's libc, but is known to make it fail.

Mac users with gettext from Homebrew can easily reproduce this:

    #include <stdio.h>
    #include <locale.h>
    #include <libintl.h>

    int main(void) {
      setlocale(LC_ALL, "");
      printf("locale: %s\n", setlocale(LC_CTYPE, NULL));
    }

Compile and run it:

    cc -I/usr/local/opt/gettext/include -L/usr/local/opt/gettext/lib -lintl -o test test.c && ./test

When $LC_CTYPE is set to a valid value like UTF-8, it should output:

    locale: UTF-8

But it does not. It returns C anyway. Remove libintl.h and recompile and you get
the expected UTF-8.

Fixes https://github.com/neovim/neovim/issues/9787
2019-03-26 11:42:25 +01:00
3441423481 tui/input.c: rename functions
- Rename the module prefix to "tinput_" instead of "term_input".
- Some of the private functions were confusing, for example
  enqueue_input() calls input_enqueue() in another module.
- It is helpful for discussion, documentation, and stacktraces if
  functions (even private) are globally unique.
2019-03-25 23:25:30 +01:00
36762a00a8 signs: support multiple columns #9295
closes #990
closes #9295

- Support for multiple auto-adjusted sign columns.
  With this change, having more than one sign on a line, and with the
  'auto' setting on 'signcolumn', extra columns will shown automatically
  to accomodate all the existing signs.

  For example, suppose we have this view:

   5147             }
   5148
   5149             return sign->typenr;
   5150         }
   5151     }
   5152     return 0;
   5153 }
   5154

  We have GitGutter installed, so it tells us about modified lines that
  are not commmited. So let's change line 5152:

     5147             }
     5148
     5149             return sign->typenr;
     5150         }
     5151     }
   ~ 5152     return 0;
     5153 }
     5154

  Now we add a mark over line 5152 using 'ma' in normal mode:

      5147             }
      5148
      5149             return sign->typenr;
      5150         }
      5151     }
  a ~ 5152     return 0;
      5153 }
      5154

  Previously, Vim/Nvim would have picked only one of the signs,
  because there was no support for having multiple signs in a line.

- Remove signs from deleted lines.
  Suppose we have highlights on a group of lines and we delete them:

   +     6 use std::ops::Deref;
   --+   7 use std::borrow::Cow;
   --+   8 use std::io::{Cursor};
         9 use proc_macro2::TokenStream;
        10 use syn::export::ToTokens;
   --+  11 use std::io::Write;
   >>   12 use std::ops::Deref;

  Without this change, these signs will momentarily accumulate in
  the sign column until the plugins wake up to refresh them.

  + --+ --+ --+ >>  6

  Discussion: It may be better to extend the API a bit and allow this
  to happen for only certain types of signs. For example, VIM marks
  and vim-gitgutter removal signs may want to be presreved, unlike
  line additions and linter highlights.

- 'signcolumn': support 'auto:NUM' and 'yes:NUM' settings
- sort signs according to id, from lowest to highest. If you have
  git-gutter, vim-signature, and ALE, it would appear in this order:
  git-gutter - vim-signature - ALE.
- recalculate size before screen update
- If no space for all signs, prefer the higher ids (while keeping the
  rendering order from low to high).
- Prevent duplicate signs. Duplicate signs were invisible to the user,
  before using our extended non-standard signcolumn settings.
- multi signcols: fix bug related to wrapped lines.
  In wrapped lines, the wrapped parts of a line did not include the extra
  columns if they existed. The result was a misdrawing of the wrapped
  parts. Fix the issue by:
    1. initializing the signcol counter to 0 when we are on a wrap boundary
    2. allowing for the draw of spaces in that case.
2019-03-25 02:17:47 +01:00
f705ed22fd Merge #9776 from janlazo/vim-8.1.0177 2019-03-24 12:55:41 +01:00
0920c6ca81 Merge pull request #9772 from gelguy/float-inccommand
floating-window.c: fix crash when using inccommand
2019-03-24 08:49:02 +01:00
a9df3fa5d2 test: make first attempt at some kind of test 2019-03-24 00:21:26 +01:00
4e49e44259 Update to restore layout only for non-floating windows 2019-03-23 22:14:03 +01:00
2a618e0ad0 Update test 2019-03-23 22:14:03 +01:00
31fa064c68 floating-window.c: fix crash when using inccommand 2019-03-23 22:14:03 +01:00
b3b8910c48 Merge pull request #9763 from bfredl/prevfloat
window: don't crash when closing two floats in a row
2019-03-23 22:13:57 +01:00
ae49e8da58 window: don't crash when closing two floats in a row
prevwin can be set to the current window. Then we can't jump to it
after closing a float.
2019-03-23 20:12:37 +01:00
a73e0e8e77 vim-patch:8.1.1045: E315 ml_get error when using Python and hidden buffer
Problem:    E315 ml_get error when using Python and hidden buffer.
Solution:   Make sure the cursor position is valid. (Ben Jackson,
            closes vim/vim#4153, closes vim/vim#4154)
63dbfd33c1
2019-03-23 14:56:34 -04:00
ca71c82196 vim-patch:8.1.0538: evaluating a modeline might invoke using a shell command
Problem:    Evaluating a modeline might invoke using a shell command. (Paul
            Huber)
Solution:   Set the sandbox flag when setting options from a modeline.
5958f95a40
2019-03-23 08:09:27 -04:00
6b3775bbe2 vim-patch:8.1.0189: function defined in sandbox not tested
Problem:    Function defined in sandbox not tested.
Solution:   Add a text.
d90a144eda
2019-03-23 01:26:13 -04:00
b5582d1b32 vim-patch:8.1.0177: defining function in sandbox is inconsistent
Problem:    Defining function in sandbox is inconsistent, cannot use :function
            but can define a lambda.
Solution:   Allow defining a function in the sandbox, but also use the sandbox
            when executing it. (closes vim/vim#3182)
93343725b5
2019-03-23 01:25:33 -04:00
3e78319ac6 help: ignore snapshotted window if invalid (#9774)
Nvim doesn't expect a window-changing command on an created-window event.

    autocmd WinNew * wincmd p
    help help

- A snapshot for window 1000 is created.
- The window is split and the cursor changes to the new window 1001.
- The autocmd kicks in and switches back to 1000.
- The help buffer is opened.
- On closing the help window 1000, it tries to go back to the snapshotted window
  which is... 1000.
- wp1000->w_buffer == NULL
- w_buffer is used by check_cursor()
- 🧨 -> 💥

Fixes https://github.com/neovim/neovim/issues/9773
2019-03-23 00:23:39 +01:00
3edf7fc64f api: ignore floating windows for laststatus=1 (#9771)
ONE_WINDOW considers all windows whereas one_window() ignores floating windows.

Fixes https://github.com/neovim/neovim/issues/9768
2019-03-22 17:17:33 +01:00
fa6ed5f759 Merge #9769 from janlazo/vim-8.1.1025 2019-03-21 19:35:30 +01:00
ea538f8799 vim-patch:8.1.1026: unused condition
Problem:    Unused condition. (Coverity)
Solution:   Remove the condition.  Also remove unused #define.
d00e024d9f
2019-03-21 07:55:48 -04:00
5c97bfb1e2 vim-patch:8.1.1025: checking NULL pointer after addition
Problem:    Checking NULL pointer after addition. (Coverity)
Solution:   First check for NULL, then add the column.
64c8ed366d
2019-03-21 07:44:52 -04:00
c5631338b1 :mksession : restore tab-local working directories #9754 2019-03-21 11:53:38 +01:00
8698830cbd doc #9751
closes #9750
2019-03-20 12:44:06 +01:00
f282324e1b test: add more debuggings tips [ci skip] (#9761)
Mention the common press-enter issue and how to visualize the screen.
2019-03-19 17:44:35 +01:00
24d7513dc4 vim-patch:8.1.0384: sign ordering #9758
Problem:    Sign ordering depends on +netbeans feature.
Solution:   Also order signs without +netbeans. (Christian Brabandt,
            closes vim/vim#3224)
8aeb504fc6
2019-03-19 12:42:17 +01:00
6f7b81bd6d vim-patch:8.1.{0849,1001}: 'cursorline' highlight #9757
- Lua test correctly fails when 8.1.0849 is reverted.
- 8.1.1001 bug does not manifest in Neovim.

vim-patch:8.1.0849: cursorline highlight is not always updated
Problem:    Cursorline highlight is not always updated.
Solution:   Set w_last_cursorline when redrawing.  Fix resetting cursor flags
            when using the popup menu.
c07ff5c60a

vim-patch:8.1.1001: Visual area not correct when using 'cursorline'
Problem:    Visual area not correct when using 'cursorline'.
Solution:   Update w_last_cursorline also in Visual mode. (Hirohito Higashi,
            closes vim/vim#4086)
8156ed3755
2019-03-19 12:24:41 +01:00
ad3b312cf5 build: do not pass empty CMAKE_INSTALL_PREFIX
ref #9748
ref #9743
2019-03-19 02:51:33 +01:00
5beb3b8ee5 test: example_spec.lua 2019-03-19 01:37:48 +01:00
a077f53914 Merge #9749 from janlazo/vim-8.1.1017 2019-03-19 00:03:23 +01:00
14bfa0c578 vim-patch:8.1.0775: matching too many files as zsh
Problem:    Matching too many files as zsh. (Danek Duvall)
Solution:   Be more specific with zsh filetype patterns.
2bf60b3001
2019-03-17 20:49:27 -04:00
fb95bb38b5 vim-patch:8.1.0771: some shell filetype patterns end in a star
Problem:    Some shell filetype patterns end in a star.
Solution:   Make sure that patterns not ending in a star are preferred.
147e7d0cab
2019-03-17 20:38:55 -04:00
8394bf676b vim-patch:8.1.1017: off-by-one error in filetype detection
Problem:    Off-by-one error in filetype detection.
Solution:   Also check the last line of the file.
493fbe4abe
2019-03-17 20:35:03 -04:00
29d6993ccd build: pass CMAKE_INSTALL_PREFIX explicitly #9748
On some (but not all) systems this works implicitly.

fixes #9743
2019-03-17 23:35:56 +01:00
f3e7815e61 Merge #9747 from janlazo/vim-8.1.0858 2019-03-17 22:12:39 +01:00
d86c816f8c vim-patch:8.1.0048: vim_str2nr() on numbers close to max #9744
Problem:    vim_str2nr() does not handle numbers close to the maximum.
Solution:   Check for overflow more precisely. (Ken Takata, closes vim/vim#2746)
07ccf7ce7f
2019-03-17 22:08:01 +01:00
94d933aa7e oldtests: use LoadAdjust() on timer test 2019-03-17 15:13:19 -04:00
027a2157d3 Merge pull request #9746 from bfredl/wildkeys
cmdline: revert <down> and <up> mappings for wildoptions=pum
2019-03-17 19:24:36 +01:00
536be31a19 vim-patch:8.1.0858: 'indentkeys' and 'cinkeys' defaults are different
Problem:    'indentkeys' and 'cinkeys' defaults are different.
Solution:   Make them the same, update docs. (close vim/vim#3882)
ce655743ba
2019-03-17 12:27:34 -04:00
16d607929d cmdline: revert <down> and <up> mappings for wildoptions=pum
These confict with navigation mappings.  Better leave them to the user to
reverse them for now for users that want it.
2019-03-17 16:17:23 +01:00
9ef8d0d6b0 Merge pull request #9726 from mhinz/nvim_win_get_config
Closes #9723
2019-03-17 02:34:50 +01:00
7c38994ff2 aucmd_prepbuf: also restore prevwin #9741
bisected to f5d5da3917

Other test steps:

    nvim -u NORC
    :terminal tree /    " Produces lots of output
    :edit somefile.txt
    :vsplit
    :vsplit
    <c-w>l
    <c-w>l
    <c-w>h
    <c-w>p
2019-03-17 02:09:06 +01:00
32998731bf vim-patch:8.1.1011: indent from autoindent not removed #9742
Problem:    Indent from autoindent not removed from blank line. (Daniel Hahler)
Solution:   Do not reset did_ai when text follows. (closes vim/vim#4119)
2ba4238818
2019-03-17 00:46:15 +01:00
d8316f2a1b clipboard: Always copy as plain text in Wayland #9737
`wl-copy` by default tries to determine the mime type of a copied bit of
text. From the [readme](https://github.com/bugaevc/wl-clipboard):

> wl-copy automatically infers the type of the copied content by running
> xdg-mime(1) on it.

So copying a Ruby script from Nvim may store it in the Wayland clipboard
as mime-type `application/x-ruby`.

This is a small reproduction without Nvim:

    $ cat test.rb
    #!/usr/bin/env ruby
    puts 'hello world'
    $ cat test.rb | wl-copy
    $ wl-paste --list-types
    application/x-ruby

This commit fixes that by telling wl-copy that all text copied from
Nvim has the mime type `text/plain`.

    $ cat test.rb | wl-copy --type text/plain
    $ wl-paste --list-types
    text/plain;charset=utf-8
2019-03-16 22:55:24 +01:00
b557654f36 api: add tests for new code paths 2019-03-16 21:44:15 +01:00
5c836d2ef8 Merge pull request #9607 from bfredl/wildpum
UI: deprecate redundant ext_wildmenu events and allow TUI popupmenu for cmdline
2019-03-16 20:41:10 +01:00
11a481f711 Merge #9686 'win/Lua: monkey-patch os.getenv()'
fixes #9681
2019-03-16 20:28:52 +01:00
be8ebba325 Allow using internal popupmenu or ext_popupmenu for wildmenu
Deprecate ext_wildmenu. ext_popupmenu already contains more state (anchor
position), and will allow further expansion (info about items).
2019-03-16 19:53:21 +01:00
8d00393d0c Merge #9736 from janlazo/vim-8.1.0019 2019-03-16 18:30:56 +01:00
3bad76008e oldtests: wait 200ms on mac for timer test 2019-03-16 10:40:50 -04:00
073ab7cda8 api: refactor FloatRelative usage 2019-03-16 15:34:16 +01:00
86992a7bb1 api: numerous small fixes 2019-03-16 15:02:56 +01:00
27c4b6b9bd api: update doc 2019-03-16 12:35:59 +01:00
96edbe7b1d api: add width/height to FloatConfig 2019-03-16 12:35:58 +01:00
3c88bbecb8 api: nvim_win_config() -> nvim_win_set_config() 2019-03-16 12:35:58 +01:00
98391cd6ab api: refactor FloatAnchor usage 2019-03-16 12:35:57 +01:00
cfed9a4123 api: add nvim_win_get_config() 2019-03-16 12:35:52 +01:00
175398f216 Merge pull request #9616 from chemzqm/completechange
add MenuPopupChanged autocmd
2019-03-16 10:36:54 +01:00
2ea6d3ab97 vim-patch:8.1.0019: error when defining a Lambda with index of a function result
Problem:    Error when defining a Lambda with index of a function result.
Solution:   When not evaluating an expression and skipping a function call,
            set the return value to VAR_UNKNOWN.
b4518563c7
2019-03-15 22:13:32 -04:00
b90256e6cc test: simplify TUI bg-detection test
Previous approach skipped the test if the expected value matched the
default value ("dark"). New approach always checks, but uses retry() to
ignore potentially wrong 'background' before the terminal response is
handled.
2019-03-15 05:26:41 +01:00
1baf4edbd9 Merge #9728 from justinmk/autocmd-once 2019-03-15 12:38:53 +01:00
680252aa15 vim-patch:8.1.0728: avoid breaking after single space #9733
Problem:    Cannot avoid breaking after a single space.
Solution:   Add the 'p' flag to 'formatoptions'. (Tom Ryder)
c3c3158756
2019-03-15 12:14:42 +01:00
6c375d71c3 autocmd: add MenuPopupChanged autocmd
Update src/nvim/auevents.lua

Co-Authored-By: chemzqm <chemzqm@gmail.com>
2019-03-15 04:24:41 +08:00
ced980ff17 Merge pull request #9730 from bfredl/pumfloat
compositor: fix rendering issues with floats opened after popupmenu
2019-03-14 12:22:46 +01:00
cbe4377fde vim-patch:8.1.0671: cursor in wrong column after auto-format #9729
Problem:    Cursor in the wrong column after auto-formatting.
Solution:   Check for deleting more spaces than adding. (closes vim/vim#3748)
e1e714ef0d
2019-03-14 11:23:05 +01:00
ca5f919965 compositor: fix rendering issues with floats opened after popupmenu 2019-03-14 10:43:49 +01:00
b1f25ea187 autocmd: do not show empty section after ++once handlers expire
Problem: If autocmd pattern only contained `++once` handlers, and
         all of them completed, then there would be an empty group
         displayed by `:autocmd Foo`.
Solution: Delete the pattern if all of its commands were deleted.
2019-03-14 01:30:11 +01:00
3259e45f92 autocmd: rename: "++nested", "++once"
Based on feedback from upstream:
https://github.com/vim/vim/pull/4100
2019-03-14 01:30:11 +01:00
907b480350 vim-patch:8.0.1447: still too many old style tests (#9725)
Problem:    Still too many old style tests.
Solution:   Turn a few tests into new style. (Yegappan Lakshmanan,
            closes vim/vim#2509)
cada78975e

Exclude test_shortpathname.vim.
nvim does not support 8.3 filenames on Windows.
2019-03-14 00:43:11 +01:00
9d207fd876 dictwatcheradd(): support b:changedtick #9693
fixes #6635
closes #9693
2019-03-14 00:38:56 +01:00
7fcf2f926f TextYankPost: add v:event["inclusive"] #9717 2019-03-13 03:24:09 +01:00
2af1e23278 vim-patch:8.1.0170: invalid memory use with complicated pattern #9724
Problem:    Invalid memory use with complicated pattern. (Andy Massimino)
Solution:   Reallocate the list of listids when needed. (closes vim/vim#3175)
            Remove unnecessary function prototypes.
2338c32b53
2019-03-13 03:16:22 +01:00
4f5e378124 test/CI: skip "throttles output" test on Travis macOS #9721
Travis macOS is not fast enough to run this test reliably. The test
depends on the system producing output faster than the Nvim TUI can
handle it.
2019-03-12 19:26:24 +01:00
8760816d46 Merge pull request #9722 from bfredl/float-doc2
Float docs and defaults.
2019-03-12 17:37:43 +01:00
dec3e027d9 docs: adjust the generated nvim_open_win docs
The format here is not meant to be ideal, just a backstop until
auto-generation has been fixed.
2019-03-12 17:17:58 +01:00
f9d3e69cc9 docs: update generated API docs 2019-03-12 17:17:58 +01:00
4ab0dcc4a9 docs: floating windows introduction 2019-03-12 17:17:58 +01:00
81e84f2aae floats: add NormalFloat highlight and 'nonumber' default 2019-03-12 17:17:54 +01:00
af966afaa4 window: simplify logic for entering new float 2019-03-12 12:49:11 +01:00
9312e2d06a autocmd: rename "once" => "-once" #9713
- Rename "nested" to "-nested", but continue to support "nested" for
  backwards-compatibility.
- Allow any order: "-once -nested" or "-nested -once".

ref https://github.com/neovim/neovim/pull/9706#issuecomment-471295747
2019-03-11 21:01:47 +01:00
3b63374b33 Dist: make icon a proper square (#9716)
The canvas was resized from 128x104 to 128x128 and centered via Gimp and further
optimized via optipng.

Fixes https://github.com/neovim/neovim/issues/9715
2019-03-11 21:00:12 +01:00
f4c2de4c45 style: make linter happy with fileio.c 2019-03-11 12:41:51 +01:00
b4d894c067 fs: add UV_FS_COPYFILE_FICLONE flag to os_copy 2019-03-11 11:55:58 +01:00
c0a29c3656 Merge #9708 from justinmk/tui-bg-detect 2019-03-11 09:25:39 +01:00
43184566aa TUI/background detection: hook into VimEnter event
If terminal response is received during startup, set 'background' from
a nested "one-shot" (once) VimEnter autocmd.

The previous not-so-clever "self-rescheduling" approach could cause
a long delay at startup (event-loop does not make forward progress).

fixes #9675
ref #9509
2019-03-11 08:43:27 +01:00
6db1757b53 fs: remove unecessary copybuf and os_open call 2019-03-10 20:50:56 +01:00
7a6d85a778 fs: replace another custom copy with os_copy 2019-03-10 19:52:08 +01:00
c99bff5f56 cleanup: rename menu_nable_recurse() #9707 2019-03-10 19:05:48 +01:00
8410c72b18 fs: add os_copy function that uses uv_fs_copyfile 2019-03-10 18:11:30 +01:00
ef5037e7f6 Merge #9706 from justinmk/aucmd-once 2019-03-10 13:10:09 +01:00
c12cf5bde7 autocmd: introduce "once" feature
Adds a new feature to :autocmd which sets the handler to be executed at
most one times.

Before:

    augroup FooGroup
      autocmd!
      autocmd FileType foo call Foo() | autocmd! FooGroup * <buffer>
    augroup END

After:

    autocmd FileType foo once call Foo()
2019-03-10 04:58:30 +01:00
95ce1e5408 vim-patch:8.1.1002: "gf" on URL with port number #9705
Problem:    "gf" does not always work when URL has a port number. (Jakob
            Schöttl)
Solution:   When a URL is recognized also accept ":". (closes vim/vim#4082)
cbef8e1aa1
2019-03-10 04:53:51 +01:00
092e7e6c60 Merge #9703 from erw7/fix-executable-on-unix 2019-03-09 23:23:20 +01:00
7757ce1cb8 executable(): return false if user is not owner #9703
S_IXUSR does not check ownership.  Test case:

    touch test.txt
    chmod 744 test.txt
    sudo chown root:root test.txt
    nvim -u NORC
    :echo executable('./test.txt')
2019-03-09 23:18:03 +01:00
3cb89cafe3 vim-patch:8.1.0994: fix relative cursor position #9676
Problem:    Relative cursor position is not calculated correctly.
Solution:   Always set topline, also when window is one line only.
            (Robert Webb) Add more info to getwininfo() for testing.
8fcb60f961
2019-03-09 23:12:33 +01:00
6eca56c6c5 Merge #9003 'vim-patch:8.0.1372' 2019-03-09 14:12:54 +01:00
f719247118 floating-window: fix crash setting cmdheight #9685
fixes #9680
2019-03-09 14:10:56 +01:00
c1ee5e0694 vim-patch:8.0.1372: profile log may be truncated halfway a character
Problem:    Profile log may be truncated halfway a character.
Solution:   Find the start of the character. (Ozaki Kiichi, closes vim/vim#2385)
ac112f01a6

nvim does not support "--clean" yet but "-es" should suffice for the test.
2019-03-08 21:35:03 -05:00
4352d41db0 Merge #9662 'vim-patch:8.0.{0643-0646}' 2019-03-08 13:21:11 +01:00
0355c1ed9c Merge #9695 'vim-patch:8.1.{739,826,998}' 2019-03-08 12:23:53 +01:00
e3d9945f7f vim-patch:8.1.0826: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_VIRTUALEDIT.  Adds about 10Kbyte to the code.
29ddebef40
2019-03-08 03:12:57 -05:00
8bd194f98a oldtests: set shellslash in Test_true_false_arg() 2019-03-08 02:30:22 -05:00
e428fc4b52 oldtests: set shellslash in Test_shellescape()
Value of "&shell" does not affect "shellescape()".
2019-03-08 02:12:12 -05:00
aa985f4a7c vim-patch:8.1.0739: text objects in not sufficiently tested
Problem:    Text objects in not sufficiently tested.
Solution:   Add a few more test cases. (Dominique Pelle, closes vim/vim#3795)
81b1ba4be5
2019-03-07 23:30:12 -05:00
72e304c349 vim-patch:8.1.0998: getcurpos() unexpectedly changes "curswant"
Problem:    getcurpos() unexpectedly changes "curswant".
Solution:   Save and restore "curswant". (closes vim/vim#4069)
19a66858a5
2019-03-07 22:28:30 -05:00
96e2c3945f lint: fix coding style 2019-03-08 00:08:16 +08:00
0a471e009a vim-patch:8.0.0646: the hlsearch test fails on fast systems
Problem:    The hlsearch test fails on fast systems.
Solution:   Make the search pattern slower.  Fix that the old regexp engine
            doesn't timeout properly.
0946326580
2019-03-08 00:06:28 +08:00
fbd8209286 vim-patch:8.0.0645: no error for illegal back reference in NFA engine
Problem:    The new regexp engine does not give an error for using a back
            reference where it is not allowed. (Dominique Pelle)
Solution:   Check the back reference like the old engine. (closes vim/vim#1774)
1ef9bbe215
2019-03-07 23:48:53 +08:00
570e41fc08 vim-patch:8.0.0644: the timeout for 'hlsearch' is not tested
Problem:    There is no test for 'hlsearch' timing out.
Solution:   Add a test.
5b1affefd0
2019-03-07 23:48:53 +08:00
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
5f84b1dc41 vim-patch:8.1.0935: old regexp engine may use invalid buffer #9692
Problem:    Old regexp engine may use invalid buffer for 'iskeyword' or
            uninitialized buffer pointer. (Kuang-che Wu)
Solution:   Set rex.reg_buf when compiling the pattern. (closes vim/vim#3972)
8bfd9469ce
2019-03-07 12:05:22 +01:00
b51e5d8b8d tui_tk_ti_getstr: handle weird value #9688
tigetstr (used by libtermkey/driver-ti.c) may return -1 as a pointer.
Documented in man 3 tigetstr. https://linux.die.net/man/3/tigetstr

> The tigetstr routine returns the value (char *)-1 if capname is not a string
> capability, or 0 if it is canceled or absent from the terminal description.

Fixed #9687
2019-03-07 11:42:58 +01:00
c9264e6d52 Fix os.getenv of lua on Windows
Change to use os_getenv instead of getenv because environment variable
set by uv_os_setenv can not be get with getenv.
2019-03-07 13:49:02 +09:00
980dd7c011 Merge #9638 from mhinz/update-libtermkey 2019-03-07 00:57:21 +01:00
24a56cca30 Fix environment variable on Windows
Since uv_os_setenv uses SetEnvironmentVariableW, _wenviron is no
updated. As a result, inconsistency occurs in completion of environment
variable names. Change to use GetEnvironmentStaringsW instead of
_wenviron to solve it.
2019-03-06 18:06:51 +09:00
299f32dc01 PVS/V560: window.c: fix always true condition #9682 2019-03-05 22:48:52 +01:00
5d2e4a5021 Merge #9679 from janlazo/vim-8.1.0891 2019-03-05 22:47:19 +01:00
e386e51d9e Merge pull request #9674 from bfredl/bufapi-fix
api/buffer: use aucmd_prepbuf() to manipulate invisible buffer, fix some issues
2019-03-05 19:39:15 +01:00
f5d5da3917 buffer: use aucmd_prepbuf() instead of switch_to_win_for_buf() 2019-03-05 15:05:23 +01:00
04059312b0 vim-patch:8.1.0875: not all errors of marks and findfile()/finddir() are tested
Problem:    Not all errors of marks and findfile()/finddir() are tested.
Solution:   Add more test coverage. (Dominique Pelle)
71b13e92ae
2019-03-05 00:09:30 -05:00
cbab746fd8 vim-patch:8.1.0891: substitute command inssuficiently tested
Problem:    Substitute command inssuficiently tested.
Solution:   Add more test coverage. (Dominique Pelle)
d77aa4d22e
2019-03-05 00:04:48 -05:00
7e6fce0698 PVS/V501: ui_compositor.c: identical sub-expressions #9673 2019-03-05 01:33:40 +01:00
2816bc8620 Merge #8349 from lePerdu/completion-indent-adjust 2019-03-04 00:27:18 +01:00
f288a64264 edit.c: Disable indent during completion
closes #8345
2019-03-03 23:08:08 +01:00
bcbb96e31b Merge pull request #9667 from bfredl/winclose
api: add nvim_win_close() to close window by id
2019-03-03 17:30:58 +01:00
8e54847fdf Merge #9666 'Fix completion of multibyte env var names' 2019-03-03 13:45:38 +01:00
c8f310825c api: add nvim_win_close() to close window by id 2019-03-03 13:09:43 +01:00
bb8ea83d75 test: multibyte env var names #9655 2019-03-03 11:23:12 +01:00
cef0107c14 os/env: Fix completion of multibyte env var names
fixes #9655
2019-03-03 11:22:59 +01:00
14c53e4cbe vim-patch:8.1.0971: failure to select quoted text obj moves cursor #9658
closes #9640

Problem:    Failure for selecting quoted text object moves cursor.
Solution:   Restore the Visual selection on failure. (Christian Brabandt,
            closes vim/vim#4024)
55d3bdbbe2
2019-03-03 11:04:32 +01:00
7a6da502b9 Merge pull request #6619 from bfredl/floating
Floating windows in TUI and Remote UI
2019-03-02 17:26:50 +01:00
9a1675b065 floats: implement floating windows
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
2019-03-02 16:29:50 +01:00
0aba4d825a ops.c: do_join expects count of 2 or greater #6855
test_normal.vim fails if we assert >= 2, so we only check >= 1. That at
least avoids invalid pointers.

    TEST_FILE=test_normal.res make oldtest
2019-03-02 04:52:03 +01:00
8ba484ab69 vim-patch.sh: mention URL for hub tool #9659
closes #9659
2019-03-02 03:26:11 +01:00
d44ab5fdea search.c: remove dead code #5307
has_mbyte is always true.
2019-03-02 03:13:00 +01:00
ed4132d7e9 cleanup: remove legacy enc_dbcs global #9660 2019-03-02 02:33:36 +01:00
708176aea1 screen.c: remove dead code #6609
enc_utf8, enc_dbcs, has_mbyte are always true, so the false branches are
never taken.
2019-03-02 01:23:15 +01:00
018e0d5a19 API/buffer-updates: always detach on buf-reload #9643
Independently of the 'undoreload' option and the length of the file.
closes #9642
closes #9643
2019-03-01 20:01:50 +01:00
6cd4ff2ab7 os: remove uv_translate_sys_error impl #9652
Since libuv minimum version is now v1.12, we can use libuv's impl.
2019-03-01 02:34:32 +01:00
085f0f1b1b Merge #9653 from justinmk/vim-8.1.0985 2019-03-01 02:32:13 +01:00
e7bd49d835 Merge #7920 'env: use libuv v1.12 getenv/setenv API' 2019-03-01 02:30:05 +01:00
e116b0f61f vim-patch:8.1.0973: pattern with syntax error gives threee error messages
Problem:    Pattern with syntax error gives threee error messages. (Kuang-che
            Wu)
Solution:   Remove outdated internal error.  Don't fall back to other engine
            after an error.
cd62512c55
2019-03-01 01:56:17 +01:00
ff98f61601 vim-patch:8.1.0965: search test fails
Problem:    Search test fails.
Solution:   Wait a bit longer for the 'ambiwidth' redraw.
e86ecbd922
2019-03-01 01:56:17 +01:00
1a0ee090ab vim-patch:8.1.0963: illegal memory access when using 'incsearch'
Problem:    Illegal memory access when using 'incsearch'.
Solution:   Reset highlight_match when changing text. (closes vim/vim#4022)
4a7d2d3b40
2019-03-01 01:56:17 +01:00
b183534c81 vim-patch:8.1.0968: crash when using search pattern \%Ufffffc23
Problem:    Crash when using search pattern \%Ufffffc23.
Solution:   Limit character to INT_MAX. (closes vim/vim#4009)
527a2d86fb
2019-03-01 01:56:17 +01:00
403922b1b4 test: fix isCI() for Quickbuild 2019-03-01 01:48:46 +01:00
67535b5940 test/env: multibyte env var to child process
Note: the test fails on non-Windows CI (Travis linux, Quickbuild bsd):
even on master before the env.c changes in this patch-series.
Maybe the unix part of printenv-test.c needs to be revisited.

Signed-off-by: Justin M. Keyes <justinkz@gmail.com>
2019-02-28 22:40:11 +01:00
900e96781f clint: check env functions 2019-02-28 12:48:21 +01:00
a66b1d4615 vim-patch:8.1.0985: crash with large number in regexp
Problem:    Crash with large number in regexp. (Kuang-che Wu)
Solution:   Check for long becoming negative int. (closes #)
ab350f89f9
2019-02-28 12:07:25 +01:00
89515304e4 os/env: use libuv v1.12 getenv/setenv API
- Minimum required libuv is now v1.12
- Because `uv_os_getenv` requires allocating, we must manage a map
  (`envmap` in `env.c`) to maintain the old behavior of `os_getenv` .
- free() map-items after removal. khash.h does not make copies of
  anything, so even its keys must be memory-managed by the caller.

closes #8398
closes #9267
2019-02-27 23:29:07 +01:00
1d8e768360 os_getenv, os_setenv: revert "widechar" impl
It's reported that the Windows widechar variants do automatically
convert from the current codepage to UTF16, which is very helpful. So
the "widechar" impls are a good direction.  But libuv v1.12 does that
for us, so the next commit will use that instead.

ref #8398
ref #9267
2019-02-26 22:38:52 +01:00
865584dd0c win: os_getenv(): use _wgetenv() 2019-02-25 23:47:54 +01:00
76562fa192 utf16_to_utf8: minor fixes 2019-02-25 23:47:54 +01:00
9153062095 os_setenv: use _wputenv_s; remove vestigial code #7920
_putenv_s variant was left over from 810d31a430, should have been
removed in cd5b131575.
2019-02-25 23:47:54 +01:00
533d4a36ec TUI: do not resize host-terminal on startup (#9645)
...unless the 'lines' and/or 'columns' options were set.

ref 5732340c20
fixes #5843
2019-02-25 23:30:12 +01:00
88652c49a8 vim-patch:8.1.0980: extend() insufficiently tested (#9646)
Problem:    extend() insufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#4040)
58d63a0a23
2019-02-25 11:34:55 +01:00
3b2d5317a5 vim-patch:8.1.0225: mode() does not indicate using CTRL-O from Insert mode (#9644)
Problem:    Mode() does not indicate using CTRL-O from Insert mode.
Solution:   Add "niI", "niR" and "niV" to mode() result. (closes vim/vim#3000)
612cc3888b
2019-02-24 21:44:31 +01:00
9327ea3e5a vim-patch:8.1.0959: sorting large numbers is not tested (#9641)
Problem:    Sorting large numbers is not tested and does not work properly.
Solution:   Add test.  Fix comparing lines with and without a number.
            (Dominique Pelle, closes vim/vim#4017)
a25e3d0695
2019-02-23 11:54:41 +01:00
246408621c Merge #9509 'TUI: detect background color' 2019-02-22 22:14:38 +01:00
d3dc946155 TUI: rework background-color detection
- Like Vim, use set_option_value() followed by reset_option_was_set().
- Do not use set_string_default(), so the default is predictable.
  This affects `:set bg&`.
- Wait until end-of-startup (VimEnter) to handle the response. The
  response is racey anyways, so timing is irrelevant. This allows
  OptionSet to be triggered, unlike during startup.
2019-02-22 21:15:16 +01:00
4f453830f7 Merge #9637 from justinmk/win-libuv-update
win/deps: update to (forked) libuv v1.26.0
2019-02-21 23:16:32 +01:00
27c3143466 third-party: libtermkey v0.20 -> v0.21.1
$ bzr log --line --forward -r v0.20..

372: Paul "LeoNerd" Evans 2017-03-30 {v0.20} Bumped VERSION to 0.20
373: Paul "LeoNerd" Evans 2017-04-10 [merge] Apply typo fixes from jamessan
374: Paul "LeoNerd" Evans 2017-11-29 Build termkey.pc by invoking a small shell script instead of sed'ing a template
375: Paul "LeoNerd" Evans 2018-03-29 Implement mouse key parsing (thanks Marc André Tanner <mat@brain-dump.org>)
376: Paul "LeoNerd" Evans 2019-01-02 Bugfix for infinite CPU spin on TERM=dumb, which has no terminfo key strings
377: Paul "LeoNerd" Evans 2019-02-14 Fix a couple of valgrind-cleanness errors in DEBUG mode
378: Paul "LeoNerd" Evans 2019-02-14 Fix valgrind uninitialised value warning
379: Paul "LeoNerd" Evans 2019-02-14 Remember to unibi_destroy() even if we never (lazily) loaded terminfo
380: Paul "LeoNerd" Evans 2019-02-14 Bugfix memory leak in TI driver on xterm
381: Paul "LeoNerd" Evans 2019-02-17 driver-ti.c does not need a separate TYPE_MOUSE node type since TERMKEY_TYPE_MOUSE already exists
382: Paul "LeoNerd" Evans 2019-02-17 Perform TI string lookup by iterating all the strings we care about, rather than iterating everything in the DB; that way a hook function can invent new strings
383: Paul "LeoNerd" Evans 2019-02-17 Avoid nonstandard \e sequence in unit tests (via neovim https://github.com/neovim/neovim/blob/master/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.p...
384: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 lacks <unistd.h> and S_ISFIFO()
385: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 needs help to get ssize_t
386: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <termios.h>
387: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no poll() so cannot provide termkey_waitkey()
388: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <strings.h> and needs help getting strcasecmp()
389: Paul "LeoNerd" Evans 2019-02-17 Write the version into the .pc file at 'make install' time so we don't get@VERSION@ from source
390: Paul "LeoNerd" Evans 2019-02-19 {v0.21} Bumped VERSION to 0.21
391: Paul "LeoNerd" Evans 2019-02-19 Bugfix to missing TERMIOS support
392: Paul "LeoNerd" Evans 2019-02-19 Fix offbyone buffer overflow in sprintf calculation of key names (neovim #9630)
393: Paul "LeoNerd" Evans 2019-02-19 {v0.21.1} Remove a pointless (and warny) cast

Our local patches are now part of the libtermkey repo and get removed.
2019-02-21 22:23:54 +01:00
6784ed206a win/deps: update to (forked) libuv v1.26.0
ref c59aa771a6
2019-02-21 19:43:10 +01:00
0be6d3c86f Merge #9634 'fsync: Ignore ENOTSUP. Fix writing to SMB.' 2019-02-21 19:38:24 +01:00
996916277d I/O: ignore ENOTSUP for failed fsync()
Suggested by ZyX in https://github.com/neovim/neovim/issues/6725#issuecomment-312197691 :
> There already is an exception if writing to a “device” (e.g. FIFO).
> It makes sense to ignore certain errors like ENOTSUP or EOPNOTSUPP
> since it is not something we or user can do anything about.

ref #6725
2019-02-21 02:00:51 +01:00
c59aa771a6 deps: update to libuv v1.26.0
Notable changes since v1.23.2:

- v1.26.0
  - uv_os_uname()
  - unix: don't attempt to invalidate invalid fd
    1ce6393a57
- v1.25.0
  - unix: better handling of unsupported F_FULLFSYNC (fixes #6725)
    6fc797c3fe
  - tty,win: fix Alt+key under WSL
    d2e59bb600
  - fsevents: really watch files with fsevents on macos 10.7+
    2d2af382ce
  - win: fix duplicate tty vt100 fn key
- v1.24.0
  - win,fs: retry if uv_fs_rename fails
    e94c184c7c
    - later [reverted](https://github.com/libuv/libuv/issues/2098) but may be useful reference
  - win: support more fine-grained windows hiding
    4c2dcca27b
2019-02-21 02:00:51 +01:00
0e97d3d4ee fix "E667: Fsync failed" on macOS
macOS: Try direct fsync() if F_FULLFSYNC fails.
closes #6725
ref https://github.com/vim/vim/pull/4016
vim-patch:8.1.0957

> on macOS F_FULLFSYNC fails with ENOTSUP for unsupported storage systems
> (e.g. SMB), though this is not documented in the Apple fcntl man page.

libuv fixed this in v1.25.0:
6fc797c3fe
2019-02-21 02:00:51 +01:00
40f5a6c4da man.vim: g:man_hardwrap #9633
This option allows restoring the behaviour prior to #9023.
Fixes #9583
Closes #9633
2019-02-21 00:06:26 +01:00
ece19b459c Merge #9626 from janlazo/vim-8.1.0926 2019-02-18 10:40:33 +01:00
9cf600e702 Merge #9625 from janlazo/vim-8.1.0945 2019-02-18 10:37:56 +01:00
d595ca021d vim-patch:8.1.0276: no test for 'incsearch' highlighting with :s
Problem:    No test for 'incsearch' highlighting with :s.
Solution:   Add a screendump test.
164251ff80
2019-02-17 21:59:49 -05:00
a4a024245b vim-patch:8.1.0387: no test for 'ambiwidth' detection
Problem:    No test for 'ambiwidth' detection.
Solution:   Add a test.
24839edc54
2019-02-17 21:47:12 -05:00
0735893caf vim-patch:8.1.0668: no test for overstrike mode in the command line
Problem:    No test for overstrike mode in the command line.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3742)
c0676bab92
2019-02-17 20:10:36 -05:00
486234ab3d vim-patch:8.1.0937: invalid memory access in search pattern
Problem:    Invalid memory access in search pattern. (Kuang-che Wu)
Solution:   Check for incomplete collation element. (Dominique Pelle,
            closes vim/vim#3985)
f1b57ab2ab
2019-02-17 19:37:44 -05:00
279ecaff00 vim-patch:8.1.0934: invalid memory access in search pattern
Problem:    Invalid memory access in search pattern. (Kuang-che Wu)
Solution:   Check for incomplete equivalence class. (closes vim/vim#3970)
985079c514
2019-02-17 19:35:41 -05:00
67c99ec620 vim-patch:8.1.0926: no test for :wnext, :wNext and :wprevious
Problem:    No test for :wnext, :wNext and :wprevious.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3963)
e93e5a504f
2019-02-17 19:31:57 -05:00
d8b4fb7838 lint 2019-02-17 19:14:40 -05:00
55821948cf vim-patch:8.1.0945: internal error when using pattern with NL in the range
Problem:    Internal error when using pattern with NL in the range.
Solution:   Use an actual newline for the range. (closes vim/vim#3989)  Also fix
            error message.  (Dominique Pelle)
a5483448cb
2019-02-17 19:11:16 -05:00
6b827bb664 build: checkprefix: skip if empty #9624
This regressed in 3b473bb14f:
```
% make 'CMAKE_BUILD_TYPE=RelWithDebInfo' 'CMAKE_EXTRA_FLAGS=-DCMAKE_INSTALL_PREFIX=/vim-build/neovim/neovim/master -DENABLE_JEMALLOC=OFF' 'DEPS_CMAKE_FLAGS=-DUSE_BUNDLED=OFF'

error: CMAKE_INSTALL_PREFIX '/vim-build/neovim/neovim/master' does not match cached value ''
       Run this command, then try again:
         cmake build -DCMAKE_INSTALL_PREFIX=/vim-build/neovim/neovim/master
make: *** [Makefile:169: checkprefix] Error 1
```

It was checking before for non-empty also [1].

1: https://github.com/neovim/neovim/pull/9621/files#diff-b67911656ef5d18c4ae36cb6741b7965L22
2019-02-17 21:41:42 +01:00
6bd6927656 Merge #5027 'TUI: detect background color' 2019-02-17 14:47:40 +01:00
33ce70c883 vim-patch:8.1.0932: remove Farsi support (#9622)
Problem:    Farsi support is outdated and unused.
Solution:   Delete the Farsi support.
14184a3133
2019-02-17 10:54:00 +01:00
dc9dd8d664 Merge #9593 'API: nvim_create_buf: "scratch" param' 2019-02-17 08:32:25 +01:00
5225c1ec30 terminal: Fix potential invalid local 'scrollback' (#9605)
TermOpen autocmd may set local 'scrollback' to -1, this needs to be
adjusted as in on_scrollback_option_changed().

fixes #9588 (OOM, out of memory)
2019-02-17 08:07:30 +01:00
aee29e51a6 API: nvim_create_buf: add scratch parameter
Creating a scratch buffer is a chore/ritual, and would be more
useful/common if formally exposed.
2019-02-17 06:58:03 +01:00
3b473bb14f build/Makefile: validate prefix for specific targets (#9621)
`clean` and `distclean` should not check CMAKE_INSTALL_PREFIX.
ref #9615

Helped-by: bruce-hill
2019-02-17 05:28:32 +01:00
023e832d40 vim-patch:8.1.0803: session restore: handle single quotes #9620
Problem:    Session file has problem with single quote in file name. (Jon
            Crowe)
Solution:   Use a double quoted string.  Add a test.

ad36a3588d

Fixes https://github.com/neovim/neovim/issues/9618
2019-02-17 05:00:14 +01:00
9bfd304459 Merge #9617 2019-02-16 03:35:04 +01:00
05c6c6ae08 build/Makefile: check CMAKE_INSTALL_PREFIX
closes #9615
2019-02-16 00:49:53 +01:00
4397bf5785 build/CMakeLists.txt: group related logic
- Group CMAKE_BUILD_TYPE-related logic together.
- Print the MIN_LOG_LEVEL message (in the build-log) next to the
  CMAKE_BUILD_TYPE message.
2019-02-16 00:38:20 +01:00
4031e93c45 Merge #9614 2019-02-16 00:37:35 +01:00
3d3a54f455 clang/"null pointer dereference": win_rotate 2019-02-14 05:54:42 +01:00
b7f518cbfa PVS/V1028: cast operands, not the result 2019-02-14 05:49:35 +01:00
969cc55993 vim-patch:8.1.0852: findfile() and finddir() are not properly tested (#9609)
Problem:    findfile() and finddir() are not properly tested.
Solution:   Extend the test and add more. (Dominique Pelle, closes vim/vim#3880)
ed71ed37bc
2019-02-13 08:30:30 +01:00
73dffc5053 Merge #9589 from justinmk/cterm-pumblend
UI: 'pumblend' for cterm (256-color TUI)
2019-02-12 20:22:28 +01:00
e50d0b6fc1 UI: change implementation of hl_rgb2cterm_color()
Replace the implementation cargo-culted from Vim's source with something
simpler which "seems to look better" with 'pumblend'.
2019-02-12 10:11:30 +01:00
c5173230f0 UI: 'pumblend' for cterm (256-color TUI)
hl_rgb2cterm_color, hl_cterm2rgb_color were adapted from Vim 8.1
(color2index, cterm_color2rgb).
ref: c5cd88554f
2019-02-12 09:26:06 +01:00
9b4383261a Merge #9601 from justinmk/tui-italic 2019-02-12 08:51:10 +01:00
1083c626b9 TUI: assume italics support in all xterm-likes
https://github.com/neovim/neovim/issues/9598#issuecomment-462421302
> On systems other than macOS, terminfo always has them set. It's part
> of the ANSI standard SGR codes
2019-02-12 08:09:21 +01:00
5e44a5945a Merge pull request #9603 from bfredl/reversepum
highlight: handle blending with gui=reverse and guisp attribute
2019-02-11 21:22:02 +01:00
af51ae944e highlight: handle blending with gui=reverse and guisp attributes 2019-02-11 19:38:02 +01:00
1b746c0ea9 TUI: sniff nsterm (Terminal.app) from $TERM_PROGRAM 2019-02-11 11:02:48 +01:00
ee21fe3d2a TUI: force italics in tmux
tmux users are encouraged to use "tmux-256color" instead of the old
"screen-256color". Put this in your .tmux.conf :

    if-shell 'infocmp tmux-256color' 'set -g default-terminal "tmux-256color"' 'set -g default-terminal "screen-256color"'

If default-terminal is "tmux-256color" AND tmux finds its terminfo, THEN
it will enable italics (regardless of whether the terminfo contains
sitm/ritm).

OTHERWISE tmux "emulates screen", which means it emits italics as
"reverse". That's unfortunate, but it's an acceptable compromise that
allows Nvim to support italics in tmux by default in compatible (and
increasingly-common) configurations.

Test case:

    tmux
    nvim -u NORC +'hi Comment cterm=italic' CMakeLists.txt

ref #9598
2019-02-11 10:52:30 +01:00
2beb731ed4 TUI: italics in Terminal.app (nsterm)
This is the conservative approach, requiring TERM=nsterm as recommended
at `:help $TERM`.  It won't work with Terminal.app's default of
TERM=xterm-256color, nor in tmux.

Test case:

    TERM=nsterm nvim -u NORC +'hi Comment cterm=italic' CMakeLists.txt

closes #9598
2019-02-11 10:51:52 +01:00
b3ce0019a7 Merge pull request #7466 from bfredl/ext_messages
ui: implement ext_messages to externalize all messages in msg area
2019-02-10 14:55:12 +01:00
51fc54325c ui: implement ext_messages
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
2019-02-10 13:36:46 +01:00
3ff1228f78 Merge pull request #9272 from bfredl/createbuf
api: add nvim_create_buf to create a new empty buffer.
2019-02-09 15:01:06 +01:00
c9d01ff7db doc: 'fillchars' is local to window
This was forgotten in 352811fe5 since the commit was originally meant to only
change 'listchars'.
2019-02-09 12:21:24 +01:00
891ed14f13 api: add nvim_create_buf to create a new empty buffer.
Loading existing files into a buffer is non-trivial and requires a window.
Creating an unnamed emtpy buffer is trivial and safe though, thus worth a
special case.

Change nvim_buf_set_option to use aucmd_prepbuf. This is necessary
to allow some options to be set on a not yet displayed buffer, such
as 'buftype' option.

vim-patch:7.4.1858: Add BLN_NEW to enforce buflist_new creating new buffer
2019-02-09 11:48:45 +01:00
f6faeea41c Merge pull request #9586 from bfredl/screencleanup
screen: cleanup allocation and scrolling
2019-02-07 21:41:45 +01:00
be8058cfe4 screen: cleanup allocation, clearing and validation
grid_xx functions shouldn't randomly be called when the screen is not valid.
Nvim deterministically initializes a default screen early in main(), so the
default grid can be assumed to be allocated.
2019-02-07 17:56:02 +01:00
6e9ea5adce screen: simplify scrolling code
Since the separation between internal screen and TUI, internal scroll
cannot FAIL. Delete the conditions for this.
2019-02-07 17:56:02 +01:00
fa2580f953 Merge pull request #9571 from bfredl/pum_transparent
UI: implement 'pumblend' option for semi-transparent popupmenu
2019-02-07 17:52:58 +01:00
37f8df8824 UI: implement 'pumblend' option for semi-transparent popupmenu
Why?

- Because we can.
- Because the TUI is just another GUI™
- Because it looks kinda nice, and provides useful context like 1 out of 100
  times

Complies with "don't pay for what you don't use".

Some crashes for resizing were unfolded, add tests for those.
2019-02-07 16:43:51 +01:00
ed0e96cd28 man.vim: set 'linebreak'
closes #9583
2019-02-06 22:18:34 +01:00
c9b7f0c249 Merge pull request #9581 from bfredl/alwaysrgb
UI: always use contrete colors for default_colors_set
2019-02-05 20:59:07 +01:00
baf93d9606 UI: always use contrete colors for default_colors_set
But add an escape hatch needed for external TUI, so it still can use
terminal emulator defaults.
2019-02-05 19:41:38 +01:00
36378c33c6 Merge #9560 from justinmk/Wmissing-prototypes 2019-02-04 19:40:14 +01:00
45f25f7e0b build: PRAGMA_DIAG_PUSH_IGNORE_MISSING_PROTOTYPES
On Travis CI, -Wmissing-prototypes gives strange error:

    In file included from ../src/nvim/eval.c:5965:
    /home/travis/build/neovim/neovim/build/src/nvim/auto/funcs.generated.h.gperf:215:1: error: conflicting types for 'find_internal_func_gperf'
    find_internal_func_gperf (register const char *str, register unsigned int len)
    ^
    ../src/nvim/eval.c:5962:20: note: previous declaration is here
    const VimLFuncDef *find_internal_func_gperf(register const char *str,
                   ^
2019-02-04 13:16:59 +01:00
f2c6164b04 build: -Wmissing-prototypes
ref #343

Though I don't see a strong benefit, it isn't too much of a burden, and
maybe avoids confusion in some cases.
2019-02-04 04:00:20 +01:00
4386814b04 build: set compiler options in one place
- add_definitions() is preferred to CMAKE_C_FLAGS.
2019-02-04 02:57:18 +01:00
91688b4883 options: set 'scrollback' to -1 by default #9563
Makes the 'scrollback' option more consistent (same default for all buffers) and future-proof.

- Default to -1 for all buffers, but treat it as an implementation detail.
- Document range of 1 - 100_000.
- New terminal buffer by default sets scrollback=10_000 if the global default is -1.
- Existing terminal buffer: On entering terminal-mode or on refresh, if the user explicitly did `:set[local] scbk=-1`, the local value goes to 100_000 (max). (This is undocumented on purpose. Users should work with explicit values in the range of 1-100_000.)
2019-02-04 02:53:23 +01:00
70f6939fd4 events: add "Signal" event #9564
..which gets triggered when SIGUSR1 is sent to the nvim process.

Closes #9562
2019-02-04 02:39:05 +01:00
da88278f27 Merge pull request #9579 from bfredl/pum_fix
popupmenu: fix alignment of kind and extra after #9530
2019-02-03 22:17:28 +01:00
08155e2b53 Merge #9578 'vim-patch:8.0.{1045,1073,1077,1114}' 2019-02-03 21:36:32 +01:00
81ac8e9015 popupmenu: fix alignment of kind and extra after #9530 2019-02-03 20:43:23 +01:00
01b4efe9d9 rename ui_is_external to ui_has (#9576) 2019-02-03 16:42:44 +01:00
5a40abe2d5 vim-patch:8.0.1114: default for 'iminsert' is annoying
Problem:    Default for 'iminsert' is annoying.
Solution:   Make the default always zero. (Yasuhiro Matsumoto, closes vim/vim#2071)
4cf56bbc85
2019-02-03 09:52:13 -05:00
45fadf7323 vim-patch:8.0.1077: no debugger making use of the terminal window
Problem:    No debugger making use of the terminal window.
Solution:   Add the term debugger plugin.  So far only displays the current
            line when stopped.
fe386641b0
2019-02-03 08:51:11 -05:00
c1ef241390 vim-patch:8.0.1073: may get an endless loop if 'statusline' changes a highlight
Problem:    May get an endless loop if 'statusline' changes a highlight.
Solution:   Do not let evaluating 'statusline' trigger a redraw.
ba2929b6af
2019-02-03 08:32:51 -05:00
79a0ea2bec Merge pull request #9530 from bfredl/pum_float
Implement popupmenu as a floating grid internally to reduce flicker
2019-02-02 21:27:09 +01:00
0f96a21e3f multigrid: reset win scrolling after swap message 2019-02-02 16:31:49 +01:00
bfe2435459 tests/ui: add test for popupmenu redrawing in various situations
Many of these are handled by the compositor. Check that it causes
no glitches.
2019-02-02 16:31:49 +01:00
69bdc4f072 ui/compositor: add redraws needed due to intersected doublewidth chars. 2019-02-02 16:31:49 +01:00
2405cf8255 vim-patch:8.1.0792: bad display if opening cmdline window from Insert completion 2019-02-02 16:31:49 +01:00
2c01e79dc4 Reduce pum redraws from edit.c by delaying undisplay of pum
This makes it possible for the compositor to compare the old pum with
the new position, and only clear what is necessary.
2019-02-02 16:31:49 +01:00
31cbd34d97 UI: add "compositor" layer to merge grids for TUI use in a correct way
Initially we will use this for the popupmenu, floating windows will
follow soon

NB: writedelay + compositor is weird, we need more flexible
redraw introspection.
2019-02-02 16:31:49 +01:00
29db365e4c vim-patch:8.0.1045: running tests may pollute shell history
Problem:    Running tests may pollute shell history. (Manuel Ortega)
Solution:   Make $HISTFILE empty.
6a8691d483
2019-02-02 07:38:53 -05:00
f89d0d8230 inccommand: auto-disable if folding is slow #9568
Fixes #9557
2019-02-01 01:40:01 +01:00
ada82f3482 Merge #9565 from justinmk/test 2019-01-31 22:27:12 +01:00
a494910aa1 test: adjust timer_spec 2019-01-31 22:26:32 +01:00
d4750100b0 test: improve reliability of ":terminal topline" test
- Avoid using platform-specific shell, it failed in MINGW_64 env.
- tty-test.c echos our input, which is exactly what we need for this test.
- Test fails correctly if 894f6bee54 is reverted.
2019-01-31 22:26:32 +01:00
894f6bee54 :terminal : set topline based on window height #8325
closes #8324
closes #8556
2019-01-29 03:00:48 +01:00
28f87c505d Merge #9539 "options: make 'listchars' and 'fillchars' local to window" 2019-01-28 00:45:59 +01:00
7e6980a161 doc [ci skip] (#9553) 2019-01-27 15:06:11 +01:00
8171e96b96 Merge pull request #9551 from bfredl/multiterm
Fix :terminal resizing, and some multigrid size cleanup
2019-01-27 14:15:08 +01:00
de16c0bf64 screen: simplify wp->w_lines allocation logic 2019-01-27 12:07:06 +01:00
30bd1c1e85 terminal: handle size when switching buffers in window 2019-01-27 12:07:06 +01:00
2ab70cb55c window/ui: reorganize size variables, fix terminal window size with multigrid.
wp->w_height_inner now contains the "inner" size, regardless if the
window has been drawn yet or not. It should be used instead of
wp->w_grid.Rows, for stuff that is not directly related to accessing
the allocated grid memory, such like cursor movement and terminal size
2019-01-27 12:07:06 +01:00
80b75bc99a screen: remove superfluous default_grid indirection for global size
This was changed by mistake in multigrid PR.
default_grid.Rows rather corresponds to the old screen_Rows
2019-01-27 12:07:06 +01:00
d9406f4b64 terminal: simplify sizing logic 2019-01-27 12:07:06 +01:00
f2398a766e vim-patch:8.0.0413: menu test fails on MS-Windows #8173
Problem:    Menu test fails on MS-Windows using gvim.
Solution:   First delete the English menus.
a1c8ecfda9
2019-01-27 01:35:00 +01:00
9697c7f56a Merge #8194 from justinmk/fix-menu
fix ":menu Item.SubItem", fix menu_get("foo")
2019-01-27 01:32:12 +01:00
1a3d2dbfe7 menu_get(): fix query behavior
- Return the menu properties, not only its children.
- If the {path} param is given, return only the first node. The "next"
  nodes in the linked-list are irrelevant.
2019-01-27 00:51:58 +01:00
d760e08fac menu_get(): Do not include empty items
Caused by a typo: `dict` instead of `dic`. Renamed variable to `d` to
make it less similar.
2019-01-27 00:51:58 +01:00
827ed144fb fix ":menu Item.SubItem"
:menu should print sub-menu contents. E.g. this should print the
"File.Save" submenu:

    nvim -u NORC
    :source $VIMRUNTIME/menu.vim
    :menu File.Save

Regressed in dc685387a3
Blocks #8173

menu_get() also was missing some results for some cases.
2019-01-27 00:51:58 +01:00
d63b534f31 Merge #9478 from justinmk/doc 2019-01-26 21:41:01 +01:00
cd64f5abd4 gen_api_vimdoc.py: Do not wrap on hyphens, long words
- Any long symbol is intentional and should never be hardwrapped.
- Vim help tags are often hyphenated, and hardwrapping on hyphens breaks
  the Vim help syntax parser.
2019-01-26 20:38:14 +01:00
c70c8b607f doc [ci skip] #9478
- Lua
- developer guidelines
- MAINTAIN.md
- TUI: cleanup
- TUI: mention Windows terminfo builtins
- cleanup if_pyth, redirect python-bindeval tag

Helped-by: Björn Linse <bjorn.linse@gmail.com>
Helped-by: erw7 <erw7.github@gmail.com>
2019-01-26 20:38:14 +01:00
2132bbf919 Merge #9552 from janlazo/vim-8.0.0411 2019-01-26 16:19:02 +01:00
88b0899eb4 tests: 'fcs' and 'lcs' are local to the window 2019-01-26 15:10:46 +01:00
2ae97f3d4c vim-patch:8.1.0759: showing two characters for tab is limited
Problem:    Showing two characters for tab is limited.
Solution:   Allow for a third character for "tab:" in 'listchars'. (Nathaniel
            Braun, Ken Takata, closes vim/vim#3810)

83a52171ba
2019-01-26 14:45:48 +01:00
2418aa3a4a linter: fix issues 2019-01-26 14:45:48 +01:00
df5534f576 tests: fix mouse tests that use lcs=eol:$
Previously the mouse tests set 'listchars', but not 'list'. Funnily enough, the
space, where the `$` would normally appear, would still use new highlight group.

Set 'list' for good and fix the tests accordingly.
2019-01-26 14:45:47 +01:00
352811fe5f options: make 'fillchars'/'listchars' local to window
Using 'listchars' is a nice way to highlight tabs that were included by accident
for buffers that set 'expandtab'.

But maybe one does not want this for buffers that set 'noexpandtab', so now one
can use:

    autocmd FileType go let &l:listchars .= ',tab:  '
2019-01-26 14:45:47 +01:00
64f91fa1fd vim-patch:8.0.0412: menu test fails on MS-Windows
Problem:    Menu test fails on MS-Windows.
Solution:   Use a menu entry with only ASCII characters.
5558d19432
2019-01-26 08:44:30 -05:00
1338702b2b vim-patch:8.0.0411: menu translations don't match when case is changed.
Problem:    We can't change the case in menu entries, it breaks translations.
Solution:   Ignore case when looking up a menu translation.
11dd8c1201
2019-01-26 08:43:57 -05:00
ec5a4d862d checkhealth: validate locale (#9548)
Test case:

    LANG= LC_ALL= LC_CTYPE= tmux
    nvim -u NORC +'checkhealth nvim'
2019-01-26 00:41:42 +01:00
6e6bc3b6c0 Merge pull request #9520 from bfredl/errmsg2
Lua: format multiline messages / emsgf_multiline()
2019-01-23 20:48:44 +01:00
3b56f59532 :terminal : Fix F1-F4 key codes (#9535)
fixes #9529
2019-01-23 19:51:23 +01:00
f7b174eb71 tests/lua: test for multiline error messages in lua 2019-01-23 19:34:13 +01:00
27b7813025 cleanup: reduce some duplicate code, avoid function pointers for a condition
Add 'multiline' flag to history for correct :messages output

Use larger buffer size for multiline messages. if this turns out to not
be enough, we could do size calculation like api_set_error
2019-01-23 19:34:13 +01:00
9e54778e7c Merge pull request #9538 from beeender/patch-1
Fix api doc nvim_buf_lines_event example
2019-01-22 22:09:16 +01:00
67bac681ea ex_echo: reuse code from message.c to show arg to user 2019-01-22 20:16:12 +01:00
7f2e43c637 message.c: add msg_echo_attr functions, use it for lua error messages
The added function behaves like the non-echo function but display message
in a echo-style way (i.e. tab and newline are preserved)
2019-01-22 20:15:27 +01:00
09f6b1f2cb Fix api doc nvim_buf_lines_event example
when send_buffer=true, the first nvim_buf_lines_event will come with
lastline=-1 instead of 0.
2019-01-22 11:43:44 +08:00
bfb8170d32 PVS/V1028 (rework): cast operands, not the result #9531
closes #9522
2019-01-21 23:49:58 +01:00
4cea88aa37 CI/codecov: fix invalid yaml [ci skip]
To validate:

    cat codecov.yml | curl --data-binary @- https://codecov.io/validate
2019-01-21 19:45:47 +01:00
969618ebb5 Merge #9532 from justinmk/fix-fpclassify 2019-01-21 10:08:27 +01:00
226352afcb build: Fix -Wconversion warnings for fpclassify et al
closes #8274

The parent commit tries a different approach, but that fails on Apple
Clang version:
    Apple LLVM version 10.0.0 (clang-1000.11.45.5)
    Target: x86_64-apple-darwin17.7.0
which somehow compiles the check_c_source_compiles() check, but then
complains during later compilation that __fpclassify is not defined
(regardless of "#include <math.h>").
2019-01-21 00:32:34 +01:00
c6a039d087 build: Fix -Wconversion warnings for fpclassify et al
closes #8274

- Instead of #undef and re-#define, define "xfoo" wrappers to avoid
  include-order sensitivity.
- The warnings are bogus, caused by bad interaction between glibc and
  clang 6+.
  - https://bugs.llvm.org/show_bug.cgi?id=35268
  - https://bugs.llvm.org/show_bug.cgi?id=39738
  - https://bugzilla.redhat.com/show_bug.cgi?id=1472437
2019-01-20 23:51:12 +01:00
53c0f0bba5 CI/codecov: remove "only_pulls" directive [ci skip]
Since this was added, codecov has been adding comments to every PR, even
though we have specified `comment: off`.
2019-01-20 23:10:25 +01:00
7e3300f717 Merge pull request #9526 from jamessan/remove-jemalloc
Remove support for using jemalloc instead of the system allocator
2019-01-20 13:58:38 -05:00
62254d2cc0 Merge pull request #9429 from bfredl/grid_mouse
API/UI: add nvim_input_mouse() including multigrid mouse support
2019-01-20 13:36:20 +01:00
ed6b44e1be Merge #9525 'STRICT_ADD, STRICT_SUB: Log error' 2019-01-20 12:32:41 +01:00
a2be9c7218 ui: multigrid mouse support 2019-01-20 10:32:05 +01:00
c11b79ce51 STRICT_ADD, STRICT_SUB: Log error before abort 2019-01-20 00:18:39 +01:00
dbba685c69 build: include auto/config.h explicitly
Otherwise the symbols defined in config/config.h.in may not be defined,
depending on include-order.
2019-01-20 00:18:39 +01:00
c2343180d7 Remove support for using jemalloc instead of the system allocator
There was never any investigation done to determine whether using
jemalloc was actually a net benefit for nvim.  It has been a portability
limitation and adds another factor to consider when triaging issues.
2019-01-19 18:09:52 -05:00
f2cc9e8826 pvscheck.sh: set --sourcetree-root [ci skip]
Reverts previous experiment. PVS root is working correctly, one can
observe this in the PVS-studio.err file, for example:

    /usr/local/clang-7.0.0/lib/clang/7.0.0/include/stddef.h:51:1: warning: V677 ...
    /usr/local/clang-7.0.0/lib/clang/7.0.0/include/stddef.h:132:1: warning: V677 ...
    ./src/nvim/fileio.c:1382:1: warning: V1026 ...
    ./src/nvim/fileio.c:1388:1: warning: V1026 ...

The "./src/nvim/…" paths are correctly rooted, yet PVS somehow still
thinks it should analyze "/usr/local/clang-7.0.0/…".

See also: https://stackoverflow.com/q/44906903
2019-01-19 22:13:58 +01:00
391f0c1ce7 pvscheck.sh: do not set --sourcetree-root [ci skip]
System headers should be ignored by PVS, but somehow aren't.
See also: https://stackoverflow.com/q/44906903
2019-01-19 13:04:32 +01:00
8a5c68f695 Merge #9518 from justinmk/pvs-warnings 2019-01-18 21:51:32 +01:00
e8137d263e pvscheck.sh: ignore stddef.h
This system header should be ignored by PVS.
See also: https://stackoverflow.com/q/44906903
2019-01-18 02:43:42 +01:00
ce6a5fb94b PVS/V560: expression is always true
This macro serves as a sanity-check / documentation.
2019-01-18 02:43:38 +01:00
6cd3912a51 clang/"null pointer dereference": expand_wildcards
This invariant is explained in aa39fc56f6.
2019-01-18 02:43:32 +01:00
8f9fc1f692 Merge #9508 from justinmk/pvs-warnings 2019-01-18 00:20:38 +01:00
aa39fc56f6 PVS/V1032: pointer cast to a more strictly aligned type
Rework-of: ea7491586f
Helped-by: Björn Linse <bjorn.linse@gmail.com>

- The old (Vim) use of (char_u **)"" before ea7491586f is garbage,
  which hints that this value was never used.
- The necessary condition is next to the NULL assigmnent, the pointer
  would only be started to be accessed, if the length assignment next to
  it is also changed.
2019-01-18 00:10:08 +01:00
ea7491586f PVS/V1032: pointer cast to a more strictly aligned type 2019-01-18 00:09:50 +01:00
ed171f7be2 PVS/V1028: cast operands, not the result 2019-01-18 00:09:50 +01:00
dca0da4e3f PVS/V501: diff.c: silence warning
False positive: vim_fgets has side effects.

ref 8586770e1f
2019-01-18 00:09:50 +01:00
8093cbd8e8 Merge #9292 from mhinz/xcode10 2019-01-17 23:24:03 +01:00
a8a38f3465 test: Lua 5.2/5.3 compat
close #9515
ref #9280
2019-01-17 23:06:04 +01:00
06785da5b6 ci: switch to Xcode 10.1 / macOS 10.13 2019-01-17 15:59:44 +01:00
f2e996b991 tests: load-adjust timer tests (functionaltest) 2019-01-17 15:59:23 +01:00
0afd452ef1 tests: load-adjust timer tests (oldtest) 2019-01-17 15:59:23 +01:00
9d6bffd517 tests: fix Test_help_tagjump()
The Vim version of Test_help_tagjump() tests for `:help sm?le` here. That
command got removed from Nvim, so the test was changed to check against `:help
sp?it` instead.

The new test already handled the case that on Win `:h split` would jump to the
entry for split() and on all other systems to the entry for :split.

Then this commit happened:

   bb3aa824b lua/stdlib: vim.inspect, string functions

Since then `:h split` would jump to split() for macOS as well! I'm not sure why.

Anyway, instead of adding another check for has('mac'), we change the test once
more to be more akin to the original test. Instead of testing for :smile, which
is exclusive to Vim, we check against :checkhealth, which is exclusive to Nvim.
2019-01-17 15:59:22 +01:00
7e9b99d55b Merge #5027 'TUI: detect background color' 2019-01-17 13:05:51 +01:00
279043d625 Merge pull request #9507 from bfredl/noscrollclear
screen: don't unconditionally clear messages on window scroll
2019-01-15 21:19:02 +01:00
5a836d4767 screen: don't unconditionally clear messages on window scroll
In vim, scrolling a window might mess up the cmdline. To keep it simple,
cmdline was always cleared for any window scroll. In nvim, where safe scrolling
is implemented in the TUI layer, this problem doesn't exist.

Clearing the message on scrolling, when we not do it e.g when switching tabs
is a bit weird, as the former is a much smaller context change.

A vim patch introduced the possibility to avoid the cmdlline clear for
redraws caused by async events. This case will now trivially be covered,
as the redraw is always avoided.

vim-patch:8.0.0592: if a job writes to a buffer screen is not updated
2019-01-15 19:48:49 +01:00
95fa71c6d2 :recover : Fix crash on non-existent *.swp #9504
Reverts d2944e6a29. mf_open() _can_ fail if the file does not exist.

closes #9503
closes #9504
2019-01-15 00:47:53 +01:00
387ab4f706 Merge pull request #9505 from bfredl/inspect
lua: expose full interface of vim.inspect and add test
2019-01-14 23:30:09 +01:00
3a84e5be88 lua: expose full interface of vim.inspect and add test
Implement lazy loading for vim.submodule, this would be over-engineering
for inspect only, but we expect to use this solution also for more and
larger modules.
2019-01-14 20:12:57 +01:00
89d7e24891 Merge #9463 'Lua stdlib' 2019-01-14 02:25:45 +01:00
6c02ff4747 lua/stdlib: Load runtime modules on-demand
Instead of eager-loading during plugin/* sourcing, define runtime
modules such as `vim.inspect` as lazy builtins. Otherwise non-builtin
Lua modules such as `vim.inspect` would not be available during startup
(init.vim, `-c`, `--cmd`, …).

ref #6580
ref #8677
2019-01-14 02:22:16 +01:00
bb3aa824b7 lua/stdlib: vim.inspect, string functions
ref #6580
ref #8677
2019-01-14 02:14:34 +01:00
989fbad502 Merge #9395 from pqzx/api-set-vvar 2019-01-14 02:13:39 +01:00
38b9256439 test/API: nvim_set_vvar() #9395 2019-01-14 00:50:29 +01:00
475b97e021 API: nvim_set_vvar(): set v: variables #9395
closes #9349
2019-01-14 00:42:25 +01:00
0b8c4b995a dict_set_var: check value before checking its container
- When setting a fixed/locked/readonly var, it is more relevant to
  report on the key, not its container dict. If its container dict (v:)
  is readonly, that does not mean the key itself is readonly.
- Allow modifying a "fixed" var. "fixed" only prevents deletion.
2019-01-14 00:42:25 +01:00
0d66cdc6f9 pvscheck.sh: Fix download URL #9500
- old URL redirects to https://www.viva64.com/en/pvs-studio-download/
- page now contains tgz files for macOS and Linux; the pattern must
  match only the Linux URL
2019-01-14 00:23:28 +01:00
a3d8cd3f69 Merge #9471 from justinmk/pvs-warnings 2019-01-13 23:09:59 +01:00
4cba75dab0 clang/"null pointer dereference": close_buffer
False positive: win_valid_any_tab() already checks `win != NULL`.
2019-01-13 19:57:52 +01:00
1ec0b9204b clang/"Dead assignment": screen.c
Vim 8.1 source has equivalent structure (this isn't a case of accidental
regression), but it depends on FEAT_MBYTE.
2019-01-13 19:57:52 +01:00
ddd4ed3ce5 clang/"Dead assignment" 2019-01-13 17:53:26 +01:00
94fc3e0182 clang/"null passed to nonnull arg": shada.c 2019-01-13 17:03:55 +01:00
fb7c48f2f3 clang/"null passed to nonnull arg": ex_history 2019-01-13 17:02:37 +01:00
712cf9d8f3 clang/"null passed to nonnull arg": cs_manage_matches 2019-01-13 16:55:14 +01:00
09d21f6f0b clang/"null passed to nonnull arg": expand_wildcards 2019-01-13 16:54:18 +01:00
651e82af9f clang/"Assigned garbage": parse_shape_opt
False positive, see b6c1fae6a9. Clang ignores the assert introduced in
that commit?
2019-01-13 16:39:38 +01:00
fff68dccd9 PVS/V560: expression is always true 2019-01-13 16:39:38 +01:00
61ec31cde1 release.sh 2019-01-13 15:21:24 +01:00
4e917e8731 Merge 'upstream/release-0.3' 2019-01-13 15:10:03 +01:00
7b7266430c version bump 2019-01-13 14:29:45 +01:00
ab2bbbf6c4 NVIM v0.3.4
This maintenance release fixes some issues found in v0.3.3.

FIXES:

8a7b6200fb #9487 provider: improve error message if provider is missing
44ea903ca5 #9468 checkhealth: detect broken pip
b4028056fa Windows: nvim-qt v0.2.12 (fix potential "blank screen" at startup)
2019-01-13 14:25:08 +01:00
a7fc01a532 Merge pull request #9492 from bfredl/cul_cole
redraw: share more code between cursorline and conceal redraws. Add tests for conceal cursor
2019-01-13 12:10:26 +01:00
23c71d5182 display: unify cursorline and concealcursor redraw logic
There is various places where 'conceallevel' and 'concealcursor'
necessitates additional redraws. This tries to separate the different
cases and handle each accordingly:

  - Share code with 'cursorline' for the common case: vertical move of
    cursor within the same window (concealcursor not active)
  - Improve the logic for managing 'concealcursor' and switching modes:
    test for the case where the new mode behaves differently from the
    last one.
  - Clarify the special case for horizontal movement within a line when
    'concealcursor' is active, now there is an if-statement only for this
     and not hidden in larger check mostly for the first point.
  - Keep the special case for moving between windows as is.
2019-01-13 12:08:11 +01:00
9c75929e7b test: add tests for conceal cursor movement 2019-01-13 12:08:11 +01:00
7523eb3ce4 Merge #9495 from justinmk/release-0.3
release candidate 0.3.4
2019-01-13 02:33:47 +01:00
8a7b6200fb provider: improve error message if provider is missing (#9487)
Move `has_eval_provider()` check to `eval_call_provider()` to make sure that
every code path calls it first.

Previously we would, when pynvim was missing, get a nice error message for
`:python3 1`, but not for `:py3file blah`.

Fixes https://github.com/neovim/neovim/issues/9485
2019-01-13 01:49:07 +01:00
44ea903ca5 checkhealth: detect broken pip #9468 2019-01-13 01:48:32 +01:00
b4028056fa win/dist: nvim-qt v0.2.12 2019-01-13 01:27:36 +01:00
424388c207 win/dist: nvim-qt v0.2.12 2019-01-12 23:47:05 +01:00
fe3f2ad0f9 CI/codecov: Avoid "fail" status for non-PR
Purpose of codecov is to:

1. show a web UI of lines that need coverage
2. sanity-check PRs
3. show a pretty badge on README

codecov (and/or gcov) is not reliable enough to allow it to cause
a "red" status in the `master` branch CI history.
2019-01-12 16:58:00 +01:00
88963a18de Merge pull request #9490 from bfredl/vim-patch-8.1.0726
normal/edit: add missing "need_cursor_line_redraw = false"
2019-01-12 10:10:56 +01:00
ca58c3a4f5 normal/edit: add missing "need_cursor_line_redraw = false"
vim-patch:8.1.0726: redrawing specifically for conceal feature
2019-01-12 09:22:21 +01:00
db3c797c6b provider: improve error message if provider is missing (#9487)
Move `has_eval_provider()` check to `eval_call_provider()` to make sure that
every code path calls it first.

Previously we would, when pynvim was missing, get a nice error message for
`:python3 1`, but not for `:py3file blah`.

Fixes https://github.com/neovim/neovim/issues/9485
2019-01-12 00:52:12 +01:00
8853fca1fd Merge pull request #9484 from bfredl/highlander
screen: make update_screen() the only entry point for redrawing
2019-01-11 12:30:17 +01:00
889f73e861 screen: make update_screen() the only entry point for redrawing
update_single_line() was only used for 'concealcursor'. But 'cursorline'
has very similiar characteristics (redraw both lines on move cursor
between lines) and works without its own special entry point to the
redraw subsystem.

Later on 'concealcursor' and 'cursorline' could share more logic, but for
now make the former use standard redrawWinline(). Make sure it is called
before update_screen(), so that it is immediately visible.

Get rid of update_prepare() and update_finish(), and all issues from
them and their callsites not being in sync with changes to
update_screen()
2019-01-11 10:55:43 +01:00
10f29f79f4 version.c: update [ci skip] (#9444)
vim-patch:8.0.1336: cannot use imactivatefunc() unless compiled with +xim
vim-patch:8.0.1338: USE_IM_CONTROL is confusing and incomplete

vim-patch:8.1.0646: cannot build with Ruby 2.6.0
vim-patch:8.1.0656: trying to reconnect to X server may cause problems
vim-patch:8.1.0664: configure "fail-if-missing" does not apply to enable-gui
2019-01-11 02:24:26 +01:00
8986f70bdc Merge #9468 'checkhealth: detect broken pip"' 2019-01-11 02:03:56 +01:00
99429e5f41 Merge #9481 'vim-patch:8.1.0449,8.1.0450'
closes #9481
2019-01-11 01:45:38 +01:00
56dec2a3a0 vim-patch:8.1.0450: build failure without the +fold feature
Problem:    Build failure without the +fold feature.
Solution:   Add #ifdef.
0e9deefb4f
2019-01-11 01:44:15 +01:00
bed95b37b2 vim-patch:8.1.0449: fix display of 'rnu' with folded lines #9481
Problem:    When 'rnu' is set folded lines are not displayed correctly.
            (Vitaly Yashin)
Solution:   When only redrawing line numbers do draw folded lines.
            (closes vim/vim#3484)
7701f30856

---
Explanation:
Before this patch, relative line numbers would update on a cursor
movement and overwrite fold highlighting in the line number columns.
Other operations can cause the fold highlighting to overwrite the line
number styles. Together, this causes the highlighting in the line number
columns to flicker back and forth while editing.

Test case: create `t.vim` with these contents:

    set fdm=marker rnu foldcolumn=2
    call setline(1, ["{{{1", "nline 1", "{{{1", "line 2"])

and then call `nvim -u NORC -S t.vim` and press `j`; observe that the fold
highlighting disappears.
2019-01-11 01:44:15 +01:00
3f10c5b533 clipboard/macOS: assume that pbcopy works #9480
Avoids ~30-60 ms startup cost for users of clipboard=unnamed.
2019-01-10 09:11:36 +01:00
6d8b5989bc Merge #9472 from justinmk/pvs-warnings2 2019-01-10 08:56:38 +01:00
57c7e1d4a0 vim-patch:8.1.0648: custom operators can't act upon forced motion
Problem:    Custom operators can't act upon a forced motion. (Christian
            Wellenbrock)
Solution:   Add the forced motion to the mode() result. (Christian Brabandt,
            closes vim/vim#3490)
5976f8ff00

closes #8667
closes #9476

Christian Wellenbrock:

> For (most) built in text objects it's possible to force operation on
> them to be linewise, for example by using `dVab` (`:h o_V`,
> `motion_force`). When using custom text objects (defined as mappings
> by plugins for example), this doesn't currently work.
>
> Example:
>
>     onoremap x viw
>
> Open a file with a few lines each containing some words. With the
> cursor on any word, try:
>
> 1. `dw` (builtin) deletes some characters
> 2. `dVw` (builtin) deletes linewise
> 3. `dx` (from mapping) deletes some characters
> 4. `dVx` (from mapping) deletes some characters, but should delete
>    linewise

ref: https://github.com/wellle/targets.vim/issues/214
ref: https://gitter.im/neovim/neovim?at=5b379ff7f1664406610e7483
2019-01-10 08:50:07 +01:00
1ca2c8950f Merge pull request #9479 from bfredl/redrawsign
screen: remove ad-hoc code path for redrawing signs.
2019-01-09 21:26:49 +01:00
8510d5ff86 Merge pull request #9445 from bfredl/pum_api
API: select items in popupmenu
2019-01-09 11:43:19 +01:00
fc4ca5bdd8 CMake: Feature-detect __builtin_{add,sub}_overflow 2019-01-09 10:41:17 +01:00
596f020e90 PVS/V1028: cast operands, not the result 2019-01-09 10:41:17 +01:00
6b6a4d63ec assert.h: Check overflow with STRICT_ADD, STRICT_SUB 2019-01-09 10:41:17 +01:00
a4076e5dcf win/TUI: fix text overrides line numbers #9474
fixes #9461
2019-01-09 10:40:02 +01:00
d5d8deec06 bufhl: simplify redraw logic
using changed_lines_buf was technically incorrect, as the buffer wasn't
modififed.
2019-01-09 10:30:09 +01:00
b819795661 remove dead argument of redrawWinline 2019-01-09 10:23:26 +01:00
ead222d2cd screen: avoid redrawing windows immediately when debug signs are placed. 2019-01-09 10:22:48 +01:00
ae218c108f api: select items in popupmenu 2019-01-09 10:17:48 +01:00
aadfea7159 Merge pull request #9477 from bfredl/nocmdredraw
API: don't directly call update_screen() in API functions
2019-01-09 10:06:09 +01:00
9452532036 API: don't directly call update_screen() in API functions
There is no need to call update_screen() directly in an API function,
mode input processing invokes update_screen() as needed. And if the API
call is done in a context where redraw is disabled, then redraw is
disabled for a reason. A lot of API functions are of equal semantical
strength (nvim_call_function and nvim_execute_lua can also do whatever,
nvim_command is not special), this inconsistency has no purpose.
2019-01-08 23:31:48 +01:00
eaabec459a doc: CONTRIBUTING.md 2019-01-08 22:50:43 +01:00
c8e78abaf9 pvscheck.sh: Skip install if dir exists 2019-01-08 01:30:46 +01:00
75593e6fce health/pythonx: handle "pip upgrade failure"
Reference: https://github.com/neovim/neovim/wiki/Following-HEAD#20181118
2019-01-07 23:29:46 +01:00
0ccb9704d7 vim-patch:8.1.0700: using "gt" sometimes does not redraw a tab (#9464)
Problem:    Using "gt" sometimes does not redraw a tab. (Jason Franklin)
Solution:   Always set must_redraw in redraw_all_later().
04b4e1a424

ref bf3250a8ad (r31852304)

> I fixed it in a more general way, in that if we don't find a window
> that doesn't have the redraw type set it, then it will not set
> must_redraw, even though that's clearly intended.

ref #9152
ref #9155

NA patches:
vim-patch:8.1.0698
vim-patch:8.1.0699
2019-01-07 22:33:57 +01:00
3081f60989 Merge #9466 from janlazo/vim-8.1.0696 2019-01-07 22:28:00 +01:00
eb91101a46 health/pythonx: refactor #Detect() 2019-01-07 19:58:33 +01:00
7f27e14a6e health/pythonx: refactor pyenv check 2019-01-07 19:58:33 +01:00
b5216a3e5b lint 2019-01-07 01:00:13 -05:00
5395dd6209 vim-patch:8.1.0696: when test_edit fails 'insertmode' may not be reset
Problem:    When test_edit fails 'insertmode' may not be reset and the next
            test may get stuck. (James McCoy)
Solution:   Always reset 'insertmode' after executing a test.  Avoid that an
            InsertCharPre autocommand or a 'complete' function can change the
            state. (closes vim/vim#3768)
8ad16da729
2019-01-06 20:30:38 -05:00
0c42e0e8b1 editorconfig: set default tab width to 8 (#9467)
Vim patches may include tabs in Vimscript test files.
editorconfig uses "indent_size" for tabs if "tab_width" is unset
so the user sees 2-width tabs.
2019-01-07 02:15:19 +01:00
ea7504cf8e Merge #9459 from janlazo/vim-8.1.0677 2019-01-06 13:02:40 +01:00
072448a2c9 Merge #8604 from janlazo/vim-8.0.0286 2019-01-06 12:45:37 +01:00
fba80f5edc vim-patch:8.1.0685: get_buf_tv() is named inconsistently
Problem:    get_buf_tv() is named inconsistently.
Solution:   Rename it to tv_get_buf(). (Yegappan Lakshmanan, closes vim/vim#3759)
f2d79fa92d
2019-01-05 23:10:00 -05:00
758955d1b6 vim-patch:8.1.0687: sentence text object in Visual mode is not tested
Problem:    Sentence text object in Visual mode is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3758)
6d3a1940be
2019-01-05 22:45:31 -05:00
772f4ce9f8 vim-patch:8.1.0677: look-behind match may use the wrong line number
Problem:    Look-behind match may use the wrong line number. (Dominique Pelle)
Solution:   Use the line number in regsave instead of the one in behind_pos,
            we may be looking at the previous line. (closes vim/vim#3749)
866f355814
2019-01-05 22:43:46 -05:00
f3d2d3c814 Merge #9458 from justinmk/pvs-warnings 2019-01-06 02:32:30 +01:00
624f5c8be3 vim-patch:8.1.0683: spell highlighting does not always end
Problem:    Spell highlighting does not always end. (Gary Johnson)
Solution:   Also reset char_attr when spell errors are highlighted.
637532b3c0
2019-01-05 17:29:11 -05:00
40f7ce96c3 vim-patch:8.1.0674: leaking memory when updating a single line
Problem:    Leaking memory when updating a single line.
Solution:   Do not call start_search_hl() twice.
6d5b4f566a
2019-01-05 17:29:11 -05:00
fd674c875b vim-patch:8.0.0286: not always redrawing after screen resize
Problem:    When concealing is active and the screen is resized in the GUI it
            is not immediately redrawn.
Solution:   Use update_prepare() and update_finish() from
            update_single_line().
c10f0e7cb0
2019-01-05 17:29:11 -05:00
2d1214ef46 PVS/V501: diff.c: silence warning
False positive: vim_fgets has side effects.

ref 8586770e1f
2019-01-05 23:19:23 +01:00
46fc0437ba PVS/V547: Expression is always false 2019-01-05 23:19:23 +01:00
2a325892c2 PVS/V1026: normal.c: signed integer overflow
> V1026 The 'curwin->w_curswant' variable is incremented in the loop.
> Undefined behavior will occur in case of signed integer overflow.
2019-01-05 00:52:31 +01:00
3e558468cf PVS/V547: indent.c: xmalloc() never returns NULL 2019-01-05 00:33:26 +01:00
38b4ca26b5 Merge #9454 from justinmk/pvs-warnings 2019-01-04 23:45:21 +01:00
daad3a5a79 version bump 2019-01-04 20:09:26 +01:00
2ccc716c4a NVIM v0.3.3
This maintenance release fixes some issues found in v0.3.2 .

FIXES:

a597ab8d1b #9442 Merge pull request from jamessan/revert-pynvim
    d7b3ac029c health/provider: Check for available pynvim when neovim module missing
    edeb19d5e9 python#CheckForModule: Use the given module string instead of hard-coding pynvim
    0dd89cda9c {health,provider}/python: Import the neovim, rather than pynvim, module
fc6e8a4db8 #9423 TUI: Konsole DECSCUSR fixup
2019-01-04 20:05:23 +01:00
4e23f3e180 release.sh: Format issue-numbers in descriptions [ci skip] 2019-01-04 20:05:08 +01:00
8b3113ce7a release.sh: fix exclusion pattern [ci skip]
grep support of "\s" pattern is unreliable.
2019-01-04 20:05:08 +01:00
292b1790c8 release.sh: Format issue-numbers in descriptions [ci skip] 2019-01-04 06:03:47 +01:00
e22bf529c1 release.sh: fix exclusion pattern [ci skip]
grep support of "\s" pattern is unreliable.
2019-01-04 06:03:37 +01:00
7436a62168 Merge #9451 from justinmk/build
build: fix `doc_html` target
2019-01-04 11:36:49 +01:00
58538d1210 PVS/V547: window.c: Expression is always true 2019-01-04 02:29:43 +01:00
6abdc0aeec PVS/V547: viml/parser/expressions.c: Expression is always true 2019-01-04 02:29:38 +01:00
788ade1d29 PVS/V751: tui.c, Parameter is not used
False positive. Documentation for grid_scroll says "`cols` is always
zero, reserved for future use".
2019-01-04 02:29:35 +01:00
423b6d9907 PVS/V535: shada.c: variable reassigned in inner loop
False positive: `i` is intentionally, temporarily reassigned.
See a70fde1b45 #9425
2019-01-04 02:29:31 +01:00
6a432d4a0d PVS/V547: diff.c: xmalloc() never returns NULL
Normally we consider OOM to be fatal, but the diff module has extra
functionality to handle OOM in case huge files are compared. Use
try_malloc instead of xmalloc in that case.
2019-01-04 02:29:22 +01:00
a1e97b18f1 PVS/V547: diff.c: Expression is always true 2019-01-04 02:29:17 +01:00
8586770e1f PVS/V501: diff.c: silence warning
False positive: vim_fgets has side effects.
2019-01-04 02:29:11 +01:00
6b3fa0689c build: remove cmake/GenerateHelptags.cmake.in
This file wasn't used since e1cc0fe996.  That may have been
accidental, but it's not needed anymore anyway.  Also the "Workaround
for hanging" is no longer relevant.
2019-01-04 02:25:17 +01:00
685b2028dc build: fix doc_html target
ref 24f2cc55a8 #9430
2019-01-04 02:17:23 +01:00
c403a95a52 Merge #9446 'Visual: highlight char-at-cursor' 2019-01-04 01:53:13 +01:00
37a499148f Visual: highlight char-at-cursor
Decide whether to highlight the visual-selected character under the
cursor, depending on 'guicursor' style:

- Highlight if cursor is blinking or non-block (vertical, horiz).
- Do NOT highlight if cursor is non-blinking block.

Traditionally Vim's visual selection does "reverse mode", which perhaps
conflicts with the non-blinking block cursor. But 'guicursor' defaults
to a vertical bar for selection=exclusive, and this confuses users who
expect to see the text highlighted.

closes #8983
2019-01-04 01:28:44 +01:00
e2d71d11de remove check_visual_highlight()
This check is meaningless, we assume the terminal supports reverse-mode.
2019-01-04 01:24:49 +01:00
103e021912 Merge pull request #9447 from janlazo/vim-8.1.0651
vim-patch:8.1.{651,653}
2019-01-03 07:01:19 -05:00
111e46582c vim-patch:8.1.0653: arglist test fails on MS-windows
Problem:    Arglist test fails on MS-windows.
Solution:   Only use a file name with a double quote on Unix.
3de8c2d1f0
2019-01-03 01:07:21 -05:00
8e408c95fe vim-patch:8.1.0651: :args \"foo works like :args without argument
Problem:    :args \"foo works like :args without argument.
Solution:   Fix check for empty argument. (closes vim/vim#3728)
2ac372ccee
2019-01-03 01:04:09 -05:00
0afb5fa70a Merge #9425 'build: enable -Wshadow' 2019-01-03 00:44:36 +01:00
9f19e8d29d TUI: Do not disable BCE for builtin terminfos (#9443)
Remove this vestigial hack from #7624.

Since 5a0d0286ff we blacklist BCE more surgically. And
patch_terminfo_bugs() is the more appropriate place for that.

ref 5749ecaf22
ref #4210 #4421 #7035 #7337 #7381 #7425 #7618
2019-01-02 22:31:03 +01:00
7ede14d191 UGRID_FOREACH_CELL: avoid shadowed variables 2019-01-02 21:06:37 +01:00
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
a597ab8d1b Merge pull request #9442 from jamessan/revert-pynvim
Rework Python provider/health check to use neovim module again
2019-01-02 12:14:29 -05:00
5fba815921 Merge pull request #9438 from jamessan/revert-pynvim
Rework Python provider/health check to use neovim module again
2019-01-02 11:05:13 -05:00
8f288698e4 vim-patch:8.0.0251: not easy to select Python 2 or 3 (#9173)
Problem: It is not so easy to write a script that works with both Python 2 and Python 3, even when the Python code works with both.
Solution: Add 'pyxversion', :pyx, etc. (Marc Weber, Ken Takata)

f42dd3c390
2019-01-02 14:51:03 +01:00
d7b3ac029c health/provider: Check for available pynvim when neovim module missing
Adapt the checks so we can still report when the pynvim module is
present but the neovim module is missing.
2019-01-01 20:38:28 -05:00
5a11e55358 Merge pull request #9434 from bfredl/multigrid_fixes
Multigrid: fix popupmenu position + some cleanup
2019-01-01 22:21:57 +01:00
60e3cf6247 Merge pull request #9439 from jamessan/more-fragile-tests
Mark a few more functionaltests as fragile
2019-01-01 16:07:10 -05:00
edeb19d5e9 python#CheckForModule: Use the given module string instead of hard-coding pynvim 2019-01-01 16:06:37 -05:00
e2e5a105c6 Merge pull request #9436 from jamessan/more-fragile-tests
Mark a few more functionaltests as fragile
2019-01-01 16:02:23 -05:00
0dd89cda9c {health,provider}/python: Import the neovim, rather than pynvim, module
The neovim module is available for backwards compatibility.  We should
not yet force the use of the pynvim module, since there's no other major
reason to bump the minimum supported Python client module.

Closes #9426
2019-01-01 14:15:31 -05:00
fc6e8a4db8 Merge pull request #9435 from jamessan/tui-konsole
TUI: Konsole DECSCUSR fixup (#9423)
2019-01-01 13:28:05 -05:00
2fbe28bc05 Mark "shell command :! throttles shell-command output greater than ~10KB" fragile 2019-01-01 11:27:52 -05:00
b5de158fdf Mark "feeding large chunks of input with <Paste>" fragile 2019-01-01 11:27:23 -05:00
e53e56d5e5 Mark ":substitute with inccommand during :terminal activity" fragile 2019-01-01 11:26:56 -05:00
f3260129ad TUI: Konsole DECSCUSR fixup (#9423)
Apparently Konsole's terminfo is still broken.

ref #9364
closes #9420
2019-01-01 11:18:46 -05:00
340d853585 Merge pull request #9433 from jamessan/only-lint-master
travis: Only run lint job for master branch/PRs
2019-01-01 09:23:37 -05:00
a0140da7b0 Merge pull request #9432 from jamessan/only-lint-master
travis: Only run lint job for master branch/PRs
2019-01-01 09:23:25 -05:00
cdfa395ad8 popupmenu: fix positioning with vsplits 2019-01-01 15:20:37 +01:00
57e0a578f0 travis: Only run lint job for master branch/PRs 2019-01-01 09:15:51 -05:00
4e5f5e93c2 multigrid: do all adjustment in screen.c
Adjustment will get more complex with floats, tabgrid etc,
so make it into a function.
2019-01-01 15:11:51 +01:00
83fca0ab13 travis: Run ci for release-* branches 2019-01-01 08:14:54 -05:00
cf1ef631cf Merge pull request #9431 from jamessan/bug-fix-branch-ci
travis: Run ci for release-* branches
2019-01-01 08:13:18 -05:00
fb815bd7b7 version bump 2019-01-01 08:10:13 -05:00
db36cc740e travis: Run ci for release-* branches 2019-01-01 08:06:02 -05:00
d4dc7c7509 Merge pull request #9427 from jamessan/man-fix
nvim.1: Add missing .El directive
2019-01-01 07:57:20 -05:00
24f2cc55a8 cmake: runtime: use add_custom_command for tags directly (#9430)
This avoids generating the tags files all the time, and makes `make
install` with `CMAKE_INSTALL_MESSAGE=LAZY` much more silent in general.

Using `copy_if_different` instead of `remove` + `copy_directory` might
be good on top, but is a) not really necessary anymore and b) would not
sync removed files.
For this `file(COPY` could be used, but would require to re-run cmake on
changed input files then.
2019-01-01 13:56:20 +01:00
8ff144d876 nvim.1: Add missing .El directive
$ LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z man/nvim.1 >/dev/null
    mdoc warning: A .Bl directive has no matching .El (#59)
2018-12-31 20:55:15 -05:00
3340e08bec TUI: Konsole DECSCUSR fixup (#9423)
Apparently Konsole's terminfo is still broken.

ref #9364
closes #9420
2018-12-31 22:24:21 +01:00
6427894d89 Merge pull request #8455 from UtkarshMe/grid-split
implement ext_multigrid: draw each window on a separate resizable grid.
2018-12-31 17:37:50 +01:00
c72d9ce0a6 multigrid: rename grid->ScreenLines and other grid arrays 2018-12-31 16:24:07 +01:00
c778c2e107 multigrid: API version bump 2018-12-31 16:24:07 +01:00
9a1c61456b multigrid: simplify tests 2018-12-31 16:24:07 +01:00
dc44309336 multigrid: rename to grid.row_offset and grid.requested_rows 2018-12-31 16:24:07 +01:00
1cec5542a8 multigrid: reorganize types and global varaibles 2018-12-31 16:24:07 +01:00
820c81e638 multigrid: various cleanup (types, unused parameters)
Handle the rare case of full highlight table properly
2018-12-31 16:24:07 +01:00
44b8e58f33 multigrid: add tests for multiline messages and tabs 2018-12-31 16:24:07 +01:00
ed3da23cf4 multigrid: test refactor 2018-12-31 16:24:07 +01:00
13f74635fa multigrid: doc update 2018-12-31 16:24:07 +01:00
47c053cc39 multigrid: Add multigrid documentation 2018-12-31 12:44:22 +01:00
db14d78e4f multigrid: rename event to win_pos, make grid first 2018-12-31 12:44:22 +01:00
f6f8f0ee76 multigrid: add msg_scroll_start and msg_scroll_reset events 2018-12-31 12:44:22 +01:00
c3e2e40e02 multigrid: send win_hide events when changing tabpage 2018-12-31 12:44:22 +01:00
ebe16cd9bd multigrid: add multigrid screen tests 2018-12-31 12:44:22 +01:00
1f8afe15a4 multigrid: add multigrid support to test infrastructure
make Screen explicitly tied to its session
2018-12-31 12:44:22 +01:00
f77f09ea6e multigrid: don't clear window grids on resize
Instead define that the shared top-left part of the grid is preserved.
2018-12-31 12:44:22 +01:00
ba6f9f60ad multigrid: Fix lint errors 2018-12-31 12:44:22 +01:00
8b47b56fc6 multigrid: Draw fold for the entire width of window grid 2018-12-31 12:44:22 +01:00
f241930472 multigrid: Fix rebase errors in screen.c 2018-12-31 12:44:22 +01:00
62be9f39ef multigrid: Fix sending window grid handle in ext_newline mode 2018-12-31 12:44:22 +01:00
16c3337122 multigrid: use grid-based coordinates for ext_popupmenu 2018-12-31 12:44:22 +01:00
882dd63dc7 multigrid: Fix grid allocation misses
- Clear whole grid in one go.
- Fix wrongly sent "copy" flag.
- Add clear function comment.
2018-12-31 12:44:22 +01:00
1a896bc93f multigrid: avoid allocation when not ext_multigrid.
Move grid specific functions from mbyte.c to screen.c
2018-12-31 12:44:22 +01:00
4f1dcf7c28 multigrid: Clean whole grid when it was just resized 2018-12-31 12:44:22 +01:00
0bab611a96 multigrid: Add ScreenGrid as a param to multibyte functions 2018-12-31 12:44:22 +01:00
911b731378 multigrid: Get rid of global ScreenLines and set_screengrid 2018-12-31 12:44:22 +01:00
0432e1586e multigrid: Put everything on default_grid if not ext_multigrid 2018-12-31 12:44:22 +01:00
d5754eae02 multigrid: Add win_position event
Throttle win_position events
2018-12-31 12:44:22 +01:00
01555de2da multigrid: Allow UIs to set grid size different from window size 2018-12-31 12:44:21 +01:00
f102f50ebe multigrid: Change screen_* functions to grid_* functions 2018-12-31 12:44:21 +01:00
c9b559a030 multigrid: introduce grid abstraction 2018-12-31 12:44:21 +01:00
ccbcd390d4 Merge #9408 from justinmk/tui-title-stacking
TUI: attempt "title stacking" unconditionally
2018-12-31 03:41:13 +01:00
4dd3fc4ca9 NVIM v0.3.2
Besides the "visible" improvements, this release features numerous
internal improvements to the UI/screen code and test infrastructure.

Numerous patches were merged from Vim, which are not mentioned below.

FEATURES:

07ad5d71ab clipboard: Support custom VimL functions #9304
725da1feeb #9401 win/TUI: Improve terminal/console support
7a8dadbedb #9077 startup: Use $XDG_CONFIG_DIRS/nvim/sysinit.vim if it exists
feec926633 #9299 support <cmd> mapping in more places
0653ed63a5 #9028 diff/highlight: Show underline for low-priority CursorLine
bddcbbb571 signs: Add "numhl" argument #9113
05f9c7c2f7 clipboard: support Wayland (#9230)
14ae394532 #9052 TUI: add support for undercurl and underline color
4fa3492a6f #9023 man.vim: soft (dynamic) wrap #9023

API:

8b39e4ec79 #6920 API: implement object namespaces
b1aaa0a881 API: Implement nvim_win_set_buf() #9100
8de87c7b1c #8180 API: virtual text annotations (nvim_buf_set_virtual_text)
2b9fc9a13f #8660 API: add nvim_buf_is_loaded()
    API: buf_get_lines, buf_line_count handle unloaded buffers
88f77c28e5 API: nvim_buf_get_offset_for_line
94841e5eae API/UI: #8221 ext_newgrid, ext_hlstate
    (use line-based rather than char-based updates)

UI

b5cfac0894 #8806 TUI: use BCE again more often, (smoother resizes/scrolling)
77b5e9ae25 #9315 screen: add missing status redraw when redraw_later(CLEAR) was used
5f15788dc3 TUI: clip invalid regions on resize (#8779), fixes #8774
c936ae0f36 #9193 TUI: improvements for scrolling and clearing
f20427451e #9143 UI: disable clearing almost everywhere
f4b2b66661 #9079 TUI: always use safe cursor movement after resize
d36afafc8d #9211 ui_options: also send when starting or from OptionSet
67f80d485c TUI: Avoid reset_cursor_color in old VTE #9191
e55ebae373 #9021 don't erase screen on `:hi Normal` during startup
c5790d9189 #8915 TUI: Hint wrapped lines to terminals.

FIXES:

231de72539 RPC: turn errors from async calls into notifications
907ad921bc TUI: Restore terminal title via "title stacking" (#9407)
cb76a8a95f genappimage: Unset $ARGV0 at invocation #9376
b48efd9ba7 #9347 TUI: FreeBSD: Improve support for BSD vt console
c16529afa5 TUI: Konsole 18.07.70 supports DECSCUSR (#9364)
aec096fc5b os/lang: use the correct LC_NUMERIC also for OS X
5fee0be915 provider: improve error message (#9344)
3c42d7a10a TUI: alacritty supports set_cursor_color #9353
7bff9a5de8 TUI: Alacritty supports DECSCUSR (#9048)
57acfceabe macOS: infer primary language if $LANG is empty #9345
bc132ae123 runtime/syntax: Fix highlighting of augroup contents (#9328)
715fdfee1e #9297 VimL/confirm(): Show dialog even if :silent
799d9c3215 clipboard: Prefer xclip (#9302)
6dae7776ed provider/nodejs: fix npm,yarn detection
16bc1e9c17 #9218 channel: avoid buffering output when only terminal and no callbacks are active
72fecad1ff #8804 Fix crash in lang_init() on macOS if lang_region = NULL
d581398779 ruby: detect rbenv shims for other versions (#8733)
e568ac7a68 #9123 third-party/unibilium: Fix parsing of extended capability entries
c4c74c3883 jobstart(): Fix hang on non-executable cwd #9204
1cf50cbfd9 provider/nodejs: Simultaneously query npm and yarn #9054
6c496db4b7 undo: Fix infinite loop if undo_read_byte returns EOF #2880
f8f83579ff #9034 'swapfile: always show dialog'

CHANGES:

c236e80cf3 #9024 --embed: wait for UI unless --headless
180b50dddc #9248 python: 'neovim' module was renamed to 'pynvim'
2000b6a64a #8589 VimL: Remove legacy aliases "v:errmsg", "v:shell_error", "v:this_session"
deb18a050e defaults: background=dark #2894 (#9205)
c1187d4af0 defaults: win: 'shellpipe' for cmd.exe (#8827)
2018-12-31 01:06:17 +01:00
a2ce40fae3 version bump 2018-12-31 01:06:17 +01:00
f8eae37a36 version.c: update [ci skip] (#9417) 2018-12-31 00:32:32 +01:00
82a92308c5 version.c: update [ci skip] (#9275)
vim-patch:8.0.0428: git and hg see new files after running tests
vim-patch:8.0.0429: options test does not always test everything
vim-patch:8.0.0430: options test fails or hangs on MS-Windows
vim-patch:8.0.0436: running the options test sometimes resizes the terminal
vim-patch:8.0.0488: running tests leaves an "xxx" file behind
vim-patch:8.0.0585: test_options fails when run in the GUI

vim-patch:8.1.0558: some MS-Windows instructions are outdated
vim-patch:8.1.0565: asan complains about reading before allocated block
vim-patch:8.1.0566: SGR not enabled for mintty because $TERM is "xterm"
vim-patch:8.1.0567: error for NUL byte in ScreenLines goes unnoticed
vim-patch:8.1.0568: error message for NUL byte in ScreenLines breaks Travis CI
vim-patch:8.1.0577: tabpage right-click menu never shows "Close tab"
vim-patch:8.1.0578: cannot disable arabic, rightleft and farsi in configure
vim-patch:8.1.0587: GvimExt: realloc() failing is not handled properly
vim-patch:8.1.0589: compilation error in gvimext.cpp
vim-patch:8.1.0592: the libvterm tests are not run as part of Vim tests
vim-patch:8.1.0593: illegal memory access in libvterm test
vim-patch:8.1.0594: libvterm tests fail to run on Mac
vim-patch:8.1.0595: libvterm tests are not run with coverage
vim-patch:8.1.0597: cannot run test_libvterm from the top directory
vim-patch:8.1.0598: indent tests may use the wrong Vim binary
vim-patch:8.1.0605: running make in the top directory echoes a comment 
vim-patch:8.1.0606: 'cryptmethod' defaults to a very old method
vim-patch:8.1.0607: proto files are not in sync with the source code
vim-patch:8.1.0608: coverals is not updating
vim-patch:8.1.0609: MS-Windows: unused variable, depending on the Ruby version
vim-patch:8.1.0610: MS-Windows ctags file list differs from Unix
vim-patch:8.1.0616: NSIS installer is outdated
vim-patch:8.1.0617: NSIS installer gets two files from the wrong directory
vim-patch:8.1.0620: overuling CONF_ARGS from the environment no longer works
vim-patch:8.1.0624: overuling CONF_ARGS from the environment still does not work
vim-patch:8.1.0628: Compiler warning on MS-Windows.
vim-patch:8.1.0635: Coverity complains about null pointer use
vim-patch:8.1.0637: nsis file no longer used
vim-patch:8.1.0646: cannot build with Ruby 2.6.0
2018-12-31 00:20:28 +01:00
725da1feeb Merge #9401 from justinmk/pr-win-erw7 2018-12-30 23:54:23 +01:00
92806827a9 appimage: Include metadata #9320
closes #9320
closes #9128
2018-12-30 23:02:40 +01:00
1e8d2bdc48 Merge #9335 from justinmk/doc 2018-12-30 21:17:18 +01:00
a10fdc70aa syntax/vim.vim: highlight <cmd> key 2018-12-30 21:09:39 +01:00
e83c0a267d help: Do not highlight "Nvim."
This was added in 549311db7d for some reason, it usually just looks
weird.
2018-12-30 21:09:39 +01:00
e834660b2b doc: Remove {Nvim} tag
The purpose of the {Nvim} hint was not well-defined, and its usage
inconsistent.  It's also unnecessary.

Nvim-Vim differences are centralized at:
    :help vim-differences
Removed things are centralized at:
    :help deprecated
Developer guidelines for documentation are listed at:
    :help dev-doc
2018-12-30 21:09:39 +01:00
4ba8266ab1 doc
- CMake features
2018-12-30 21:09:39 +01:00
5749ecaf22 win/TUI: ConEmu: get back_color_erase from terminfo
We already set back_color_erase in our builtin terminfo
(terminfo_defs.h:conemu_terminfo), so we don't need to set it explicitly
in patch_terminfo_bugs().
2018-12-30 20:21:37 +01:00
9ca836f893 cleanup: Remove os_term_is_nice() 2018-12-30 19:57:50 +01:00
31a508cf6c refactor: Extract os_tty_guess_term()
- Also remove feature-detection of uv_set_vterm_state(): instead, on
  Windows we always require libuv to have that function.
2018-12-30 19:57:50 +01:00
fa5182489a Merge pull request #9411 from jamessan/vim-8.1.0662
vim-patch:8.1.0662: needlessly searching for tilde in string
2018-12-30 10:05:12 -05:00
1e06c235b8 vim-patch:8.1.0662: needlessly searching for tilde in string
Problem:    Needlessly searching for tilde in string.
Solution:   Only check the first character. (James McCoy, closes vim/vim#3734)
ef0a1d5ed3
2018-12-30 09:02:35 -05:00
d442345729 Merge pull request #9409 from jamessan/vim-8.0.1469
[RFC] vim-patch:8.0.1469,8.0.1734,8.1.0353,8.1.0354
2018-12-29 20:18:36 -05:00
bebbf08c8c vim-patch:8.1.0354: packadd test fails on MS-Windows
Problem:    Packadd test fails on MS-Windows.
Solution:   Ignore difference between forward and backward slashes.
53c8a478cc
2018-12-29 16:53:09 -05:00
ce4199e8b0 vim-patch:8.1.0353: an "after" directory of a package is appended to 'rtp'
Problem:    An "after" directory of a package is appended to 'rtp', which
            will be after the user's "after" directory. ()
Solution:   Insert the package "after" directory before any other "after"
            directory in 'rtp'. (closes vim/vim#3409)
99396d4cbf
2018-12-29 16:52:25 -05:00
91f40ff284 vim-patch:8.0.1734: package directory not added to 'rtp' if prefix matches
Problem:    Package directory not added to 'rtp' if prefix matches.
Solution:   Check the match is a full match. (Ozaki Kiichi, closes vim/vim#2817)
            Also handle different ways of spelling a path.
f98a39ca57
2018-12-29 12:57:16 -05:00
e09fb6ee53 vim-patch:8.0.1469: when package path is a symlink 'runtimepath' is wrong
Problem:    When package path is a symlink adding it to 'runtimepath' happens
            at the end.
Solution:   Do not resolve symlinks before locating the position in
            'runtimepath'. (Ozaki Kiichi, closes vim/vim#2604)
2374faae11
2018-12-29 11:46:21 -05:00
a5867a24c8 TUI: attempt "title stacking" unconditionally
Rework #9407: save/restore title/icon always (for all terminals).

Works in tmux, iTerm2, xterm, and any other terminal that supports
title-stacking.

Test case (title is "foo" while running, then restored after exit):

    tmux
    nvim -u NONE +'set title titlestring=foo'
    :q

closes #4063
2018-12-29 16:12:02 +01:00
907ad921bc TUI: enter/exit alternate screen with "title stacking" (#9407)
Works in iTerm2 and xterm.

- patch_terminfo_bugs(): Add title-stacking sequences (\e[22t and
  \e[23t) to the overrides for iTerm2 and xterm.
- Note: the builtins (terminfo_defs.h) for `iterm_256colour_terminfo`
  and `xterm_256colour_terminfo` already include the sequences.

Test case (title should be "foo" after the final :q):

   TERM=iterm2 nvim -u NONE +'set title titleold=foo'
   :q
   TERM=iterm2 nvim -u NONE +'set title titlestring=zub'
   :q

closes #4063
2018-12-29 03:30:51 +01:00
dba69a1d3b update_terminfo.sh: NOLINT data arrays 2018-12-28 23:52:03 +01:00
959df5d8a5 update_terminfo.sh: Use printf instead of echo 2018-12-28 23:52:03 +01:00
4a7f6dafe9 Merge #9383 from jamessan/stdpath-rplugin
Use stdpath() to determine rplugin manifest path
2018-12-28 15:01:41 +01:00
135991712a rplugin.vim: Add migration support for Windows, nvim/ -> nvim-data/ 2018-12-27 21:07:28 -05:00
e85b911f02 test: win/TUI builtin terminfos 2018-12-28 01:46:25 +01:00
c1015121ec Merge 'upstream/master' into pr-win-erw7 2018-12-27 22:49:44 +01:00
4f030ec24e win/TUI: Fix scroll on Windows legacy console 2018-12-27 22:45:47 +01:00
fad7a26bc5 win/TUI: ConEmu: set immediate_wrap_after_last_column #9094 2018-12-27 22:42:55 +01:00
6c62f7b715 win/TUI: builtin terminfos for cygwin, conemu, et al. 2018-12-27 22:39:54 +01:00
6060301558 win/TUI: SetConsoleMode() to override libuv #9094
Use uv_set_vterm_state() to override libuv's guess.
See https://github.com/libuv/libuv/pull/1873/ for discussion.

This commit uses a terminal-detection approach based on
GetProcessImageFileNameW(...), which will be reverted in the following
commit. The approach was intended to handle the case of running in
winpty (:terminal), but we will add $NVIM env var for that.

Also add some support for ConEmu, cygwin.
2018-12-27 22:35:59 +01:00
e1876c7ad1 Merge pull request #9398 from janlazo/mac-brew-addon 2018-12-27 19:27:36 +01:00
a9b1937e5a ci: install neovim gem on macOS
High Sierra has ruby 2.3 preinstalled so neovim gem should work.
2018-12-27 09:44:54 -05:00
c926ba1dc4 ci: use homebrew addon to simplify shell scripts 2018-12-26 11:55:29 -05:00
9ac1e2db79 Merge pull request #9394 from bfredl/highsign
make vim_snprintf handle %d correctly again, fix ":sign place" output
2018-12-24 10:59:24 +01:00
357e59982d strings: make vim_snprintf handle %d correctly again
This was broken in #9369 (4680ca2)
2018-12-24 10:58:48 +01:00
e9685d9f70 vim-patch:8.1.0627: Python cannot handle function name of script-local function (#9392)
Problem:    Python cannot handle function name of script-local function.
Solution:   Use <SNR> instead of the special byte code. (Ozaki Kiichi, closes
            vim/vim#3681)
9123c0b31a
2018-12-23 13:12:59 +01:00
d2352b7b51 vim-patch:8.1.0615: get_tv function names are not consistent (#9386)
Problem:    Get_tv function names are not consistent.
Solution:   Rename to tv_get.
d155d7a851

Only a change in comments appears to be necessary.
2018-12-22 13:23:01 +01:00
05d8a46ec4 Merge pull request #9384 from bfredl/ui_option_check
test/api: verify that UI options from stable metadata are preserved
2018-12-21 14:23:35 +01:00
ac53536de1 CI/Travis: skip all refs except "master" [skip ci] 2018-12-21 11:48:32 +01:00
cf9a0799c9 CI/Travis: skip "stable" tag [skip ci] 2018-12-21 11:19:34 +01:00
8b41f429bb test/api: verify that UI options from stable metadata are preserved 2018-12-21 10:52:25 +01:00
04c382b2ac win/dist: nvim-qt v0.2.11 #9382 2018-12-21 09:38:52 +01:00
15cc17521e Use stdpath() to determine rplugin manifest path 2018-12-20 21:40:05 -05:00
87b40f7445 Merge #9280 'Lua 5.2+ compatbility' 2018-12-20 18:32:54 +01:00
127b8569e6 lint 2018-12-20 11:57:30 +01:00
221f6fffad runtime/lua/vim/compat.lua
ref #9280
Introduce the `vim.compat` module, to help environments with system Lua
5.2+ run the build/tests. Include the module implicitly in all tests.

ref #8677
legacy `vim` module:
    beep
    buffer
    command
    dict
    eval
    firstline
    lastline
    line
    list
    open
    type
    window
2018-12-20 11:57:30 +01:00
e6d0dea42b test: Lua 5.2/5.3 compat #9280
Make the code run both on Lua 5.1 (which is the default for Neovim, and
is what LuaJIT provides) and Lua 5.2+.
2018-12-20 11:57:30 +01:00
ccb005b9e0 Merge #9369 'vim-patch:8.1.0596' 2018-12-19 06:42:42 +01:00
cb76a8a95f genappimage: Unset $ARGV0 at invocation #9376
AppImage sets $ARGV0 which breaks zsh.
Hack around this in our appimage.

fixes #9341
ref https://github.com/AppImage/AppImageKit/issues/852

[ci skip]
2018-12-19 06:30:58 +01:00
1ff7b83d3c l10n: Update Ukrainian translation #9377 2018-12-19 06:02:31 +01:00
4680ca29f1 strings: use (u)int16_t for %h printf format 2018-12-16 14:52:14 -05:00
ae6848cd12 vim-patch:8.1.0596: not all parts of printf() are tested
Problem:    Not all parts of printf() are tested.
Solution:   Add a few more test cases. (Dominique Pelle, closes vim/vim#3691)
21e551cce2
2018-12-16 14:48:30 -05:00
7a8dadbedb Merge pull request #9077 from jamessan/xdg-sysinit
startup: Use $XDG_CONFIG_DIRS/nvim/sysinit.vim if it exists
2018-12-16 13:20:54 -05:00
314f6ea367 startup: Use $XDG_CONFIG_DIRS/nvim/sysinit.vim if it exists
Closes #8994
2018-12-16 12:05:47 -05:00
b48efd9ba7 Merge #9347 from justinmk/tui-bsd
TUI: detect BSD vt console
2018-12-16 14:28:17 +01:00
cffe2d4642 CI/AppVeyor: install "pynvim" python package #9371 2018-12-16 10:47:59 +01:00
3f55010cda TUI: TERM=nsterm
Treat TERM=nsterm the same way in augment_terminfo() and
patch_terminfo_bugs().

ref #9244 463d28cc80
2018-12-16 07:07:24 +01:00
ab7da4c531 TUI: detect BSD vt console
FreeBSD console sets TERM=xterm, but it does not support xterm features
like cursor-shaping. GUI terminals typically set TERM=xterm-256color, so
on FreeBSD we can guess that TERM=xterm is the degraded vt.

OpenBSD console sets TERM=vt220
https://github.com/openbsd/src/blob/master/etc/etc.amd64/ttys

NetBSD console sets TERM=vt100
https://github.com/NetBSD/src/blob/trunk/etc/etc.amd64/ttys

closes #8644
2018-12-16 07:04:02 +01:00
5e8f2048b5 Merge #9367 'vim-patch:8.1.{585,588}' 2018-12-15 14:24:17 +01:00
2aba5569a1 Merge pull request #9368 from bfredl/doublewrap
TUI: handle wrap of doublewidth chars correctly
2018-12-15 12:54:06 +01:00
8fb1fce694 TUI: handle wrap of doublewidth chars correctly 2018-12-15 09:54:25 +01:00
845973c9fe vim-patch:8.1.0588: cannot define a sign with space in the text
Problem:    Cannot define a sign with space in the text.
Solution:   Allow for escaping characters. (Ben Jackson, closes vim/vim#2967)
06b056e110
2018-12-14 22:51:12 -05:00
bcc9b9335c vim-patch:8.1.0585: undo test may fail on MS-Windows
Problem:    Undo test may fail on MS-Windows.
Solution:   Also handle lower case drive letters.
56242f2b08
2018-12-14 22:41:59 -05:00
c16529afa5 TUI: Konsole 18.07.70 supports DECSCUSR (#9364)
ref b0d3d83eca

KONSOLE_VERSION is exported as a numeric string (after removing the dots
from the version string).

ref #8300
closes #6778
closes #6798
2018-12-14 22:54:39 +01:00
aec096fc5b Merge pull request #9362 from bfredl/macnumlocale
os/lang: use the correct LC_NUMERIC also for OS X
2018-12-13 18:23:23 +01:00
7ba52c0b2b os/lang: use the correct LC_NUMERIC also for OS X 2018-12-13 17:07:12 +01:00
1cca5da05f Merge #9348 from janlazo/vim-8.0.1748
vim-patch:8.0.1748
2018-12-13 02:46:12 +01:00
af368981a7 Merge #9355 from mhinz/ruby-provider-path
provider: make :ruby provider check use same code path as :python
2018-12-13 02:40:54 +01:00
4157f4c72d ex_docmd: '/' is not a path for Cmdline* events
Code from https://github.com/neovim/neovim/pull/9348#issuecomment-446416118

autocmd_fname_full was removed in 82cd0be2ea
but Vim uses this hack for <afile> on CmdlineEnter and related events
in vim-patch:8.0.1748.
Port the hack by not treating "/" as a path for <afile> on these events.
2018-12-12 19:15:05 -05:00
0930435fc3 vim-patch:8.0.1748: CmdlineEnter command uses backslash instead of slash
Problem:    CmdlineEnter command uses backslash instead of slash.
Solution:   Don't treat the character as a file name. (closes vim/vim#2837)
a4baf5b325
2018-12-12 19:14:16 -05:00
315769ae6d test: :ruby reports E319 if provider is missing 2018-12-12 22:11:00 +01:00
5062d8e0dd provider: make :ruby provider check use same code path as :python
Prior to this change, the provider check for ruby was special-cased and now it
returns E319, like :python etc.

References #9354
2018-12-12 21:59:02 +01:00
2f3a18695e Merge pull request #7946 from bfredl/vim-8.0.1445
implement CmdlineChanged: vim-patch:8.0.1445 + nvim specific v:event stuff
2018-12-12 21:40:10 +01:00
5f82889be7 cmdline: support v:event in CmdlineChanged 2018-12-12 15:31:52 +01:00
6c602be33a vim-patch:8.0.1445: cannot act on edits in the command line
Problem:    Cannot act on edits in the command line.
Solution:   Add the CmdlineChanged autocommand event. (xtal8, closes vim/vim#2603,
            closes vim/vim#2524)

153b704e20
2018-12-12 10:25:36 +01:00
b9a441eb78 Merge #9354 from justinmk/provider-E319
provider: repurpose E319
2018-12-12 02:38:08 +01:00
61d0dfee32 provider: repurpose E319
In Vim (and some vestigial parts of Nvim) E319 was a placeholder for
ex_ni commands, i.e. commands that are only available in certain builds
of Vim.  That is obviously counter to Nvim's goals: all Nvim commands
are available on all platforms and build types (the remaining ex_ni
commands are actually just missing providers).

We need an error id for "missing provider", so it makes sense to use
E319 for that purpose.

ref #9344
ref #3577
2018-12-12 01:26:21 +01:00
2b01c3a8a8 ex_cmds: Remove various "not implemented" commands
Commands related to Netbeans, Sun Workshop, and GUI shims, were
intentionally removed and will not be implemented.
2018-12-11 23:53:27 +01:00
5fee0be915 provider: improve error message (#9344)
Executing `:python`, and similar commands that rely on `eval_call_provider()`,
while the accompanying provider it not available, leads to this error message:

    E117: Unknown function: provider#python#Call

This doesn't say much to a user. Since we introduced `:checkhealth` for this
very reason, we now point to it for further diagnosis.

Fixes #3577
2018-12-11 23:43:35 +01:00
3c42d7a10a TUI: alacritty supports set_cursor_color #9353
Feature was added in:
https://github.com/jwilm/alacritty/pull/757

closes #9353
2018-12-11 22:49:16 +01:00
57acfceabe macOS: infer primary language if $LANG is empty #9345
The macOS preferences have a section called `Language & Region`. There is always
at least one language defined, the primary language.

CFLocaleCopyPreferredLanguages() returns the languages defined in that section,
the first element being the primary language.

Use the primary language in case CFLocaleCopyCurrent() returns NULL.

In the case that the above fallback does not work either, which is very
unlikely, log the error and continue with an empty $LANG.

References #9134
2018-12-11 21:58:35 +01:00
5a90761e8a Merge pull request #9351 from bfredl/clear_attr
TUI: don't use BCE with attributes affecting background
2018-12-11 18:58:07 +01:00
ca1de71a3e TUI: don't use BCE with attributes affecting background 2018-12-11 17:20:19 +01:00
55c5185884 vim-patch:8.1.0574: 'commentstring', fold marker in C (#9339)
Problem:    'commentstring' not used when adding fold marker in C.
Solution:   Require white space before middle comment part. (mostly by
            Hirohito Higashi)
4af7259b2b
2018-12-10 03:11:56 +01:00
20620bae76 Merge #9306 'vim-patch: integrate xdiff library'
closes #1466
closes #1007
closes #1391
2018-12-09 23:07:28 +01:00
4e29810817 vim-patch:8.1.0562: parsing of 'diffopt' is slightly wrong
Problem:    Parsing of 'diffopt' is slightly wrong.
Solution:   Fix the parsing and add a test. (Jason Franklin, Christian
            Brabandt)

b6fc72851c
2018-12-09 22:19:41 +02:00
f273e43cb8 vim-patch:8.1.0513: no error for set diffopt+=algorithm:
Problem:    No error for set diffopt+=algorithm:.
Solution:   Check for missing argument. (Hirohito Higashi, closes #3598)

d0721058f4
2018-12-09 22:19:41 +02:00
89eba72792 vim-patch:8.1.0502: internal diff fails when diffing a context diff
Problem:    Internal diff fails when diffing a context diff. (Hirohito Higashi)
Solution:   Only use callback calls with one line. (closes #3581)

f080d70a82
2018-12-09 22:19:41 +02:00
8f20c22e10 vim-patch:8.1.0497: :%diffput changes order of lines
Problem:    :%diffput changes order of lines. (Markus Braun)
Solution:   Do adjust marks when using internal diff.

5f57bdcab7
2018-12-09 20:05:53 +02:00
e104228b1c vim-patch:8.1.0458: ml_get error and crash when using "do"
Problem:    Ml_get error and crash when using "do".
Solution:   Adjust cursor position also when diffupdate is not needed.
            (Hirohito Higashi)

df77cef92e
2018-12-09 19:55:08 +02:00
fe0114ec41 vim-patch:8.1.0402: the DiffUpdate event isn't triggered for :diffput
Problem:    The DiffUpdate event isn't triggered for :diffput.
Solution:   Also trigger DiffUpdate for :diffget and :diffput.

198fa066b2
2018-12-09 19:45:56 +02:00
271249a48a vim-patch:8.1.0400: using freed memory with :diffget
Problem:    Using freed memory with :diffget.
Solution:   Skip ex_diffupdate() while updating diffs. (closes #3442)

d2b58c0a2c
2018-12-09 19:45:56 +02:00
2c92a4d0c8 vim-patch:8.1.0397: no event triggered after updating diffs
Problem:    No event triggered after updating diffs.
Solution:   Add the DiffUpdated event.

e8fa05b5bc
2018-12-09 19:45:56 +02:00
b7f2c7dd1d vim-patch:8.1.0395: compiler warning on 64-bit MS-Windows
Problem:    Compiler warning on 64-bit MS-Windows.
Solution:   Add type cast. (Mike Williams)

6e272acc82
2018-12-09 19:45:56 +02:00
7b6c92eac1 vim-patch:8.1.0394: diffs are not always updated correctly
Problem:    Diffs are not always updated correctly.
Solution:   When using internal diff update for any changes properly.

e3521d9cbb
2018-12-09 19:45:56 +02:00
972ad11195 vim-patch:8.1.0393: not all white space difference options available
Problem:    Not all white space difference options available.
Solution:   Add "iblank", "iwhiteall" and "iwhiteeol" to 'diffopt'.

785fc6567f
2018-12-09 19:45:56 +02:00
72c5a9db70 vim-patch:8.1.0375: cannot use diff mode with Cygwin diff.exe
Problem:    Cannot use diff mode with Cygwin diff.exe. (Igor Forca)
Solution:   Skip over unrecognized lines in the diff output.

3b8defd0a5
2018-12-09 19:45:56 +02:00
cf1ffa9166 vim-patch:8.1.0360: using an external diff program is slow and inflexible
Problem:    Using an external diff program is slow and inflexible.
Solution:   Include the xdiff library. (Christian Brabandt)
            Use it by default.

e828b7621c

vim-patch:8.1.0360
vim-patch:8.1.0364
vim-patch:8.1.0366
vim-patch:8.1.0370
vim-patch:8.1.0377
vim-patch:8.1.0378
vim-patch:8.1.0381
vim-patch:8.1.0396
vim-patch:8.1.0432
2018-12-09 19:45:56 +02:00
67c5bc1ac0 Calm down the clinter 2018-12-09 08:07:59 +02:00
857a7312d0 doc (#9288)
- misc
- doc: `:help config`. closes #9329
- cleanup test/README.md
2018-12-09 01:31:34 +01:00
f1eb25f0c4 vim-patch:8.1.0570: 'commentstring' not used when adding fold marker (#9331)
Problem:    'commentstring' not used when adding fold marker. (Maxim Kim)
Solution:   Only use empty 'comments' middle when leader is empty. (Christian
            Brabandt, closes vim/vim#3670)
539328197c
2018-12-08 14:21:49 +01:00
bd97577954 Merge #9322 from janlazo/vim-8.1.0563
vim-patch:8.1.{563,564}
2018-12-08 01:20:21 +01:00
bc132ae123 runtime/syntax: Fix highlighting of augroup contents (#9328)
Comparing `vimCommand` from Vim's runtime/syntax/vim.vim, one can see
that "augroup" and similar commands are conspicuously missing. They are
handled specially (`vimAugroupKey`, `vimAutoCmd`).

Excluding them from the generated `vimCommand` keyword list, fixes their
highlighting.

closes #9327
2018-12-08 01:16:58 +01:00
8b9f6103bd CI/Travis: install gperf using package manager (#9325)
Install gperf using package manager instead of building it from source.
When building/installing gperf from source, its install step requires
`texi2pdf` which randomly goes missing on Travis:

    cd doc; /usr/bin/make install
    make[1]: Entering directory '/home/travis/nvim-deps/build/src/gperf/doc'
    cd . && rm -f gperf.aux gperf.toc gperf.cp gperf.fn gperf.ky gperf.pg gperf.tp gperf.vr gperf.log gperf.cps
    cd . && texi2pdf gperf.texi
    /bin/sh: 1: texi2pdf: not found

It's nice to test the "bundled" deps on Travis, but that gets enough
exercise on Windows and macOS, which are the platforms that actually
need "bundled" gperf.
2018-12-07 20:09:44 +01:00
b93670174e Merge pull request #9324 from bfredl/virtfix
api: make nvim_set_virtual_text use correct namespace counter
2018-12-07 18:49:00 +01:00
b4a04fd80c api: make nvim_buf_set_virtual_text use correct namespace counter 2018-12-07 17:31:05 +01:00
f177005447 vim-patch:8.1.0564: setting v:errors to wrong type still possible
Problem:    Setting v:errors to wrong type still possible.
Solution:   Return after giving an error message. (Christian Brabandt)
88b53fd052
2018-12-06 23:24:09 -05:00
4c4997e988 vim-patch:8.1.0563: setting v:errors to a string give confusing error
Problem:    Setting v:errors to a string give confusing error. (Christian
            Brabandt)
Solution:   Change internal error into normal error message.
74ea88c170
2018-12-06 23:21:49 -05:00
7697628345 vim-patch:8.0.1425: execute() does not work in completion of user command (#9317)
Problem:    execute() does not work in completion of user command. (thinca)
Solution:   Switch off redir_off and restore it. (Ozaki Kiichi, closes vim/vim#2492)
2095148277
2018-12-06 01:14:19 +01:00
77b5e9ae25 Merge pull request #9315 from bfredl/clear_status
screen: add missing status redraw when <c-l> was used
2018-12-05 11:54:46 +01:00
f1ce9b3be2 screen: add missing status redraw when redraw_later(CLEAR) was used 2018-12-05 10:57:43 +01:00
e509576e53 provider/lang: expand() g:foo_host_prog (#9312)
Before this commit, if user does this:
    let g:node_host_prog = '~/.nvm/versions/node/v11.3.0/bin/neovim-node-host'
the "~/" is not expanded to user's home directory.

`:help g:ruby_host_prog` suggests a path with "~/" so technically we
already claimed to support this.

closes https://github.com/neovim/node-client/issues/102
2018-12-05 00:11:28 +01:00
c07e48a900 vim-patch:8.1.0559: command line completion not sufficiently tested (#9310)
Problem:    Command line completion not sufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#3622)
b513d3079b
2018-12-04 21:39:18 +01:00
d207440f1e clipboard: Revert unused check #9309
PR #9304 added support for functions in clipboard providers. As part of
the PR I meant to move two checks in the provider code out of an if
statement into separate statements and adding additional checks for
g:clipboard attributes - as it turns out the code is wrong and it does
not implement additional checks while it adds two conditions that make
very little sense

    type(g:clipboard['copy']) #isnot# v:t_func

what would make sense would be something along the lines of

    type(g:clipboard['copy']['+']) #isnot# v:t_func

but might not be what we want either, so I'm reverting this.
2018-12-04 21:38:20 +01:00
abd32c1bb8 vim-patch:8.1.0559: command line completion not sufficiently tested
Problem:    Command line completion not sufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#3622)
b513d3079b
2018-12-03 22:48:27 -05:00
7e97587dae Merge pull request #9307 from jamessan/codecov-threshold
codecov: Tolerate a 1% drop in coverage for a PR
2018-12-03 11:22:48 -05:00
231de72539 Merge pull request #9300 from bfredl/asyncerr
rpc: fix invalid responses, turn errors from async calls into notifications
2018-12-03 13:00:41 +01:00
8b42249cdd RPC: turn errors from async calls into notifications
Previously, nvim sent a response with invalid request id (UINT64_MAX).
In functionaltests, catch unexpected error notifications in after_each().
2018-12-03 10:42:00 +01:00
131897c16b codecov: Tolerate a 1% drop in coverage for a PR 2018-12-02 23:10:58 -05:00
07ad5d71ab clipboard: Support custom VimL functions #9304
Up to now g:clipboard["copy"] only supported string values invoked as
system commands.

This commit enables the use of VimL functions instead. The function
signatures are the same as in provider/clipboard.vim. A clipboard
provider is expected to store and return a list of lines (i.e. the text)
and a register type (as seen in setreg()).

cache_enabled is ignored if "copy" is provided by a VimL function.
2018-12-03 00:07:08 +01:00
b19403e73e Merge #9291 'vim-patch:8.1.{550,551}' 2018-12-02 23:10:26 +01:00
109a792e25 Merge pull request #9303 from jamessan/cmp-0075
Unset CMAKE_REQUIRED_* after they're done being used
2018-12-01 19:39:23 -05:00
b14b2883e9 cmake: Update comment on why CMP0059 is still set to OLD 2018-12-01 17:56:03 -05:00
bb94895d52 Unset CMAKE_REQUIRED_* after they're done being used
As of CMake 3.12, check_include_files() also link the check executable
against the libraries listed in CMAKE_REQUIRED_LIBRARIES.  Therefore we
should unset the CMAKE_REQUIRED_* variables after each respective use to
avoid them unnecessarily bleeding into other checks.
2018-12-01 15:28:33 -05:00
799d9c3215 clipboard: Prefer xclip (#9302)
The order was swapped in #4150 to prefer `xsel` but there wasn't a clear
explanation.  Meanwhile, `xsel` has been neglected upstream.

Let's trying preferring `xclip` again, we've had a few reports of
problems with `xsel`.

closes #7237
ref #5853
ref #7449
2018-12-01 18:50:26 +01:00
715fdfee1e Merge #9297 from justinmk/confirm-dialog 2018-12-01 17:02:49 +01:00
30940f809b doc: deprecate inputdialog()
input() is functionally equivalent. GUI support for dialogs is implicit
and does not depend on choosing inputdialog() vs input().
2018-12-01 16:06:01 +01:00
0f00f31cbd VimL/confirm(): Show dialog even if :silent
closes #8788
related #9034
2018-12-01 16:06:01 +01:00
feec926633 Merge pull request #9299 from bfredl/ctrlx_cmd
insert: make <cmd> mapping work in completion (CTRL-X) mode
2018-12-01 14:02:08 +01:00
2271b10a8e insert: make <cmd> mapping work in completion (CTRL-X) mode 2018-12-01 10:37:46 +01:00
471129792c fixup: 30 col resize to scroll debug 2018-12-01 01:56:22 -05:00
5c3488c937 fixup: 35 col resize to scroll screen 2018-12-01 00:15:11 -05:00
2479004c13 functionaltests: vim-patch:8.1.{550,551} fix 2018-11-30 23:35:36 -05:00
f59ba0fad0 vim-patch:8.1.0551: expression evaluation may repeat an error message
Problem:    Expression evaluation may repeat an error message. (Jason
            Franklin)
Solution:   Check for the value of did_emsg when giving an error
            for the :execute command.
8ff5af9544
2018-11-30 23:35:36 -05:00
5de5507ea6 vim-patch:8.1.0550: expression evaluation may repeat an error message
Problem:    Expression evaluation may repeat an error message. (Jason
            Franklin)
Solution:   Increment did_emsg and check for the value when giving an error
            for the echo command.
76a6345433
2018-11-30 23:35:36 -05:00
a9e368a705 vim-patch:8.1.0553: it is not easy to edit a script that was sourced (#9298)
Problem:    It is not easy to edit a script that was sourced.
Solution:   Add a count to ":scriptnames", so that ":script 40" edits the
            script with script ID 40.
07dc18ffa4
2018-12-01 04:43:08 +01:00
0ce880083d test/macOS: adjust time-sensitive tests
From test_timers.vim:
    Found errors in Test_paused():
    First run:
    function RunTheTest[35]..Test_paused line 20: Expected range 0 - 100, but got 123
    Second run:
    function RunTheTest[35]..Test_paused line 20: Expected range 0 - 100, but got 106

previously: #9220

- Timer tests are less reliable on Travis CI macOS 10.12/10.13.
  ref #6829
  ref e39dade80b
  ref de13113dc1
  ref https://github.com/neovim/neovim/pull/9095#issuecomment-429603452
  > We don't guarantee that a X ms timer is triggered during Y ms sleep
  > for any X<Y, though I would expect the load to be really bad for this
  > to happen with X=10ms, Y=40ms.
2018-11-30 22:22:05 +01:00
32a30d90b4 highlight: Fix missing .rgb_sp_color in initializers (#9287)
terminal_get_line_attributes() had this bug for a long time, though it
likely had no effect visible to users.

ref #9028
ref 60f845ca55
2018-11-30 21:13:01 +01:00
b0ebf61d37 test: adjust time-sensitive tests
From test_alot.vim:
    Found errors in Test_lambda_with_timer():
    First run:
    function RunTheTest[35]..Test_lambda_with_timer line 19: Expected True but got 0
    Second run:
    function RunTheTest[35]..Test_lambda_with_timer line 19: Expected True but got 0

previously: #9220

- Timer tests are less reliable on Travis CI macOS 10.12/10.13.
  ref #6829
  ref e39dade80b
  ref de13113dc1
  ref https://github.com/neovim/neovim/pull/9095#issuecomment-429603452
  > We don't guarantee that a X ms timer is triggered during Y ms sleep
  > for any X<Y, though I would expect the load to be really bad for this
  > to happen with X=10ms, Y=40ms.
- Call test_garbagecollect_now(), as Vim does.
2018-11-30 05:25:20 +01:00
bd32d8cf95 Merge pull request #9289 from bfredl/nsclear
API: rename nvim_buf_clear_highlight to nvim_buf_clear_namespace
2018-11-29 17:47:48 +01:00
32405de7df API: rename nvim_buf_clear_highlight to nvim_buf_clear_namespace
We want a single function to clear all namespaced buffer objects. This
will later include extmarks.
2018-11-29 15:15:04 +01:00
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
98eaf60a98 TUI: set_underline_color: only support colon form #9279
Fixes https://github.com/neovim/neovim/issues/9270

---
Background info per egmontkob:
https://github.com/neovim/neovim/issues/9270#issuecomment-441979176

For undercurl, the newly invented escape sequence is `4:3` strictly with
a colon, as with a semicolon it means single underlined and italic.

For colored underline, the newly invented escape sequence `58:...` is
meant to follow the pattern of `38` and `48`. [ITU
T.416](https://www.itu.int/rec/T-REC-T.416-199303-I/en) § 13.1.8 clearly
specifies the colon only as the separator (and the well-known ECMA-48
§ 8.3.117 just points to this standard).

Using semicolon instead was/is a frequent misinterpretation of this
standard, and is commonly used in the wild – for 38 and 48. More and
more emulators are catching up and beginning to support colon, in
addition to semicolon. Semicolon is pretty fragile; in case an emulator
doesn't recognize a sequence (let's say doesn't recognize the new
extension of `58`), subsequent numbers are interpreted as other
attributes. E.g. if 256-color mode is chosen then the next numeric
parameter is `5` which turns on blinking.

So, luckily, the standard is the technically better solution, the
frequent practice of using semicolons is technically the worse.
Therefore the direction we should be going is clear.

I believe it's a fair requirement for anyone adopting colored underline
to support colons too, and it's a reasonable move from applications to
slightly push the world forward, force developers to catch up with the
recent changes, that is: 1) recognize and at least ignore
colon-delimited parameters even if they aren't supported, 2) recognize
and support colon wherever they support the nonstandard semicolon
instead.

Should you come across any terminal emulator that supports 58 with
semicolons but not with colons, I think the cleanest you can do is
report a bug against them and ignore the problem; they should fix it.

It's yet another common misunderstanding that the truecolor syntax is
`38`/`48`/`58` followed by `:2:rrr:ggg:bbb`. The wording of T.416 is
terrible, but if you read carefully, there's another parameter of
color-space-id preceding the three color channels. Assuming you don't
care about color-space-id, the syntax is `38`/`48`/`58` followed by
`:2::rrr:ggg:bbb` and of course the trailing `m`.

This is only for true-color, the 256-color format doesn't have such
a parameter, it's `38`/`48`/`58` followed by `:5:index` and the final
`m`.
2018-11-29 00:35:29 +01:00
0d1e5ec1b8 Merge #9221 from justinmk/doc 2018-11-28 03:49:17 +01:00
452cadb85a scripts/gen_help_html.py
Adapted from https://github.com/c4rlo/vimhelp/
License: MIT
2018-11-28 03:48:06 +01:00
67305ffb5d lint: src/.clang-format
Move to top level so that

    clang-format -style=file

can find it regardless of current directory.
2018-11-28 03:48:06 +01:00
519224f6bd matchit.vim: s:MultiMatch(): return Dict 2018-11-28 03:48:06 +01:00
30857030e8 doc
- develop.txt is for design/guidelines; architecture/concepts should
  live elsewhere (currently src/nvim/README.md)
- move dev-jargon to intro.txt
- replace https://neovim.io/community (deprecated) with
  https://neovim.io/#chat
- <Cmd> avoids CmdlineEnter/Leave
  https://github.com/vim/vim/issues/2889
2018-11-28 03:48:06 +01:00
cf631aaed0 diff/highlight: Fix GUI highlight for low-priority CursorLine (#9281)
ref #9028
ref 0653ed63a5
2018-11-28 03:23:10 +01:00
3348eea429 Merge pull request #9278 from liushapku/master
fix wrong winnr in getwininfo (issue: #9277)
2018-11-26 22:59:03 -05:00
3ec5351fd1 fix wrong winnr in getwininfo 2018-11-27 10:30:41 +08:00
0653ed63a5 Merge #9028 'diff/highlight: low-priority CursorLine' 2018-11-27 02:26:24 +01:00
7fdb45e0f8 preserve_exit: Ignore SIGHUP
closes #9274
ref #9028

If stdin closed then read_error_exit calls preserve_exit. Handling
SIGHUP during preserve_exit would cause a premature teardown, and
conflicts with e.g. ui_bridge_stop which waits for TUI to teardown.

Vim ignores SIGHUP in its prepare_to_exit and getout_preserve_modified
routines:

    /* Ignore SIGHUP, because a dropped connection causes a read error, which
     * makes Vim exit and then handling SIGHUP causes various reentrance
     * problems. */
    signal(SIGHUP, SIG_IGN);
2018-11-27 01:14:55 +01:00
60f845ca55 diff/highlight: Show underline for low-priority CursorLine 2018-11-27 01:14:55 +01:00
3283db4ecb diff/highlight: do not overlay low-priority CursorLine
ref #6380
2018-11-27 01:14:55 +01:00
a2d03d9b1a refactor: Rename get_term_attr_entry
Rename get_term_attr_entry to hl_get_term_attr, similar to
hl_get_syn_attr, hl_get_ui_attr.
2018-11-27 01:14:55 +01:00
271c5df416 version.c: update [ci skip] (#9171)
vim-patch:8.0.0350: not enough test coverage for Perl
vim-patch:8.0.1135: W_WINCOL() is always the same
vim-patch:8.0.1280: Python None cannot be converted to a Vim type 
vim-patch:8.0.1308: the "Reading from stdin" message may be undesired
vim-patch:8.0.1338: USE_IM_CONTROL is confusing and incomplete 
vim-patch:8.0.1343: MS-Windows: does not show colored emojis
vim-patch:8.0.1350: cannot build with +eval and -multi_byte 
vim-patch:8.0.1829: MS-Windows: script for vimdiff can't handle ! chars
vim-patch:8.0.1849: compiler warning for unused arguments, missing prototype

vim-patch:8.1.0001: the netrw plugin does not work
vim-patch:8.1.0006: syn_id2cterm_bg() may be undefined
vim-patch:8.1.0012: misplaced #endif
vim-patch:8.1.0021: clang warns for undefined behavior
vim-patch:8.1.0041: attribute "width" missing from python window attribute list
vim-patch:8.1.0051: MS-Windows: missing #endif
vim-patch:8.1.0063: Mac: NSStringPboardType is deprecated
vim-patch:8.1.0075: no Vim logo in README file
vim-patch:8.1.0077: header of README file is not nice
vim-patch:8.1.0079: superfluous space in messages
vim-patch:8.1.0102: cannot build without syntax highlighting
vim-patch:8.1.0104: can't build without the +eval feature
vim-patch:8.1.0109: new po makefile missing from distribution
vim-patch:8.1.0117: URL in install program still points to SourceForge
vim-patch:8.1.0122: translators don't always understand the maintainer message
vim-patch:8.1.0123: MS-Windows: colors are wrong after setting 'notgc'
vim-patch:8.1.0124: has('vcon') returns true even for non-win32 terminal
vim-patch:8.1.0127: build failure when disabling the session feature
vim-patch:8.1.0128: building with MinGW does not work out-of-the-box
vim-patch:8.1.0129: still some xterm-like terminals get a stray "p"
vim-patch:8.1.0137: CI does not run with TCL
vim-patch:8.1.0142: xterm and vt320 builtin termcap missing keypad keys
vim-patch:8.1.0147: compiler warning when building with Python 3.7
vim-patch:8.1.0148: memory leak when using :tcl expr command
vim-patch:8.1.0150: insufficient test coverage for Tcl
vim-patch:8.1.0152: cannot easily run individual tests on MS-Windows
vim-patch:8.1.0153: build with SHADOWDIR fails
vim-patch:8.1.0155: evim.man missing from the distribution
vim-patch:8.1.0157: old iTerm2 is not recognized, resulting in stray output
vim-patch:8.1.0160: no Danish manual translations
vim-patch:8.1.0162: Danish and German man pages are not installed
vim-patch:8.1.0163: insufficient testing for Tcl
vim-patch:8.1.0173: compiler warning on MS-Windows
vim-patch:8.1.0176: overlapping string argument for strcpy()
vim-patch:8.1.0178: warning for passing pointer to non-pointer argument
vim-patch:8.1.0179: redundant condition for boundary check
vim-patch:8.1.0180: static analysis errors in Lua interface
vim-patch:8.1.0183: Lua API changed, breaking the build
vim-patch:8.1.0185: running tests writes lua.vim even though it is not used
vim-patch:8.1.0190: Perl refcounts are wrong
vim-patch:8.1.0191: Perl test fails in 24 line terminal
vim-patch:8.1.0197: Windows GUI: title for search/replace is wrong
vim-patch:8.1.0201: newer Python uses "importlib" instead of "imp"
vim-patch:8.1.0202: :version always shows +packages
vim-patch:8.1.0203: building with Perl 5.28 fails on Windows
vim-patch:8.1.0207: need many menu translation files to cover regions
vim-patch:8.1.0209: stderr output from Ruby messes up display
vim-patch:8.1.0215: no error if configure --with-x cannot configure X
vim-patch:8.1.0217: compiler warning for variable set but not used
vim-patch:8.1.0222: errors are reported for "make install"
vim-patch:8.1.0232: Ruby error does not include backtrace
vim-patch:8.1.0234: incorrect reference counting in Perl interface
vim-patch:8.1.0236: Ruby build fails when ruby_intern is missing
vim-patch:8.1.0237: Ruby on Cygwin doesn't always work
vim-patch:8.1.0239: now Ruby build fails on other systems
vim-patch:8.1.0246: build failure without the +eval feature
vim-patch:8.1.0247: Python: error message for failing import is incorrect
vim-patch:8.1.0249: GTK: when screen DPI changes Vim does not handle it
vim-patch:8.1.0250: MS-Windows using VTP: windows size change incorrect
vim-patch:8.1.0254: cannot build on MS-Windows; unused macro HAVE_HANDLE_DROP
vim-patch:8.1.0260: no LGTM logo in README file
vim-patch:8.1.0287: MAX is not defined everywhere
vim-patch:8.1.0292: MS-Windows: the text "self-installing" confuses some users
vim-patch:8.1.0301: GTK: input method popup displayed on wrong screen.
vim-patch:8.1.0305: missing support for Lua 5.4 32 bits on Unix
vim-patch:8.1.0319: bzero() function prototype doesn't work for Android
vim-patch:8.1.0332: get Gdk-Critical error on first balloon show
vim-patch:8.1.0346: building with Aap is outdated and unused
vim-patch:8.1.0348: on Travis the slowest build is run last
vim-patch:8.1.0357: instructions for tests are outdated
vim-patch:8.1.0368: GTK code has too many #ifdefs and GTK 2.10 building fails
vim-patch:8.1.0379: build dependencies are incomplete
vim-patch:8.1.0380: "make proto" doesn't work well
vim-patch:8.1.0383: missing source file rename
vim-patch:8.1.0385: Coveralls badge doesn't update
vim-patch:8.1.0386: cannot test with non-default option value
vim-patch:8.1.0388: Coverity complains about possible NULL pointer use
vim-patch:8.1.0390: scrollbars are not tested
vim-patch:8.1.0391: building in a shadow directory fails
vim-patch:8.1.0403: header file missing from distribution
vim-patch:8.1.0405: too many #ifdefs for GTK
vim-patch:8.1.0408: MSVC: cannot use the "x64" native compiler option
vim-patch:8.1.0411: renamed file missing from distribution
vim-patch:8.1.0412: cannot build with GTK 2.4
vim-patch:8.1.0413: test output is duplicated or missing
vim-patch:8.1.0415: not actually using 16 colors with vtp
vim-patch:8.1.0418: MS-Windows: cannot separate Lua include and library dirs
vim-patch:8.1.0419: Cygwin: running cproto fails with -O2
vim-patch:8.1.0420: generating vim.lib when using ActivePerl 5.20.3 or later
vim-patch:8.1.0421: MS-Windows: Ruby path is wrong for Ruby 1.9 and later
vim-patch:8.1.0422: cannot create map file with MinGW
vim-patch:8.1.0427: MS-Windows GUI: using invalid encoded file name
vim-patch:8.1.0441: build failure without command line history
vim-patch:8.1.0467: cannot build with Mac OS X 10.5
vim-patch:8.1.0472: dosinst command has a few flaws
vim-patch:8.1.0474: directory where if_perl.c is written is inconsistent
vim-patch:8.1.0477: tiny build fails
vim-patch:8.1.0478: cannot build with perl using MinGW
vim-patch:8.1.0480: MinGW build file uses different -I flags than MVC
vim-patch:8.1.0482: MinGW "make clean" deletes all .exe files
vim-patch:8.1.0483: MinGW does not build tee.exe
vim-patch:8.1.0490: MS-Windows: doesn't handle missing glibwinpthread-1.dll
vim-patch:8.1.0492: "Edit with existing Vim" list can get long
vim-patch:8.1.0500: cleaning up in src/tee may not always work
vim-patch:8.1.0521: cannot build with +eval but without +quickfix
vim-patch:8.1.0534: MS-Windows installer uses different $HOME than Vim
vim-patch:8.1.0541: help message in dosinst.c is outdated

vim-patch:8.1.0485: term_start() does not check if directory is accessible  #9204
2018-11-26 00:29:21 +01:00
b1aaa0a881 API: Implement nvim_win_set_buf() #9100
closes #9100
2018-11-25 16:27:10 +01:00
bac9f36d42 CI/travis: Remove vestigial sudo:true
Travis now defaults to sudo:true, and sudo:false is deprecated.
ref #9258 3a9fd4327a
2018-11-25 13:28:50 +01:00
3a9fd4327a Merge #9258 'CI/travis: switch to Ubuntu 16.04' 2018-11-25 13:04:52 +01:00
2cbac719c3 Downgrade to clang-4.0 to avoid false-positive warnings from clang
* -Wtautological-compare

    error: self-comparison always evaluates to true [-Werror,-Wtautological-compare]
    for (win_T *wp = ((curtab) == curtab) ? firstwin : (curtab)->tp_firstwin; wp != ((void*)0); wp = wp->w_next) {

* -Wconversion

    error: implicit conversion loses floating-point precision: 'const float_T' (aka 'const double') to 'float' [-Werror,-Wconversion]
          do { const float_T flt_ = (tv->vval.v_float); switch ((sizeof (flt_) == sizeof (float) ? __fpclassifyf (flt_) : sizeof (flt_) == sizeof (double) ? __fpclassify (flt_) : __fpclassifyl (flt_))) { case 0: { ga_concat(gap, (char_u *)(char_u *) "str2float('nan')"); break; } case 1: { if (flt_ < 0) { ga_append(gap, '-'); } ga_concat(gap, (char_u *)(char_u *) "str2float('inf')"); break; } default: { char numbuf[NUMBUFLEN]; vim_snprintf(numbuf, ((sizeof(numbuf)/sizeof((numbuf)[0])) / ((size_t)(!(sizeof(numbuf) % sizeof((numbuf)[0]))))), "%g", flt_); ga_concat(gap, (char_u *)(char_u *) numbuf); } } } while (0);
                                                                                                   ~~~~~~~~~~~~~  ^~~~
2018-11-24 22:56:25 +01:00
02d68fbcae Remove extraneous parens to silence -Wparentheses-equality
In file included from ../src/nvim/eval/encode.c:974:
    ../src/nvim/eval/typval_encode.c.h:390:40: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
              do { if ((tv->vval.v_special == kSpecialVarTrue)) { msgpack_pack_true(packer); } else { msgpack_pack_false(packer); } } while (0);
                        ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
2018-11-24 22:56:25 +01:00
fc0aeb5f88 xenial: fix clang error messages
* Remove FUNC_ATTR_NONNULL_ALL from function without pointer arguments.

  Otherwise the ASAN build would complain:

  error: 'nonnull' attribute applied to function with no pointer arguments [-Werror,-Wignored-attributes]
  static void do_autocmd_focusgained(_Bool gained) __attribute__((nonnull));
2018-11-24 22:56:25 +01:00
2f6364ea4b travis: switch from Ubuntu 14.04 to 16.04
Travis is phasing out its support for containers, so we remove the `sudo:
false`, which will be a no-op soon.

Reference: https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration

Changes for Linux:

  - Xenial comes with libtool installed already. It only provides "libtoolize",
    though. For "libtool" we need to install libtool-bin.
2018-11-24 22:56:24 +01:00
8b39e4ec79 Merge pull request #6920 from bfredl/namespace
make namespaces explicit (intitially for bufhl and virttext)
2018-11-24 19:36:04 +01:00
01dbf0951b api: implement object namespaces
Namespaces is a lightweight concept that should be used to group
objects for purposes of bulk operations and introspection. This is
initially used for highlights and virtual text in buffers, and is
planned to also be used for extended marks. There is no plan use them
for privileges or isolation, neither to introduce nanespace-level
options.
2018-11-24 11:01:37 +01:00
108566e7b6 clipboard.vim: check for win32yank.exe #9263
Win32 allows omitting the `.exe` extension, but WSL does not.
2018-11-21 12:24:40 +01:00
684c7d9228 Merge #9261 'vim-patch:8.0.1731,8.1.0038' 2018-11-21 03:51:33 +01:00
5d22d100f2 vim-patch:8.1.0038: popup test causes Vim to exit
Problem:    Popup test causes Vim to exit.
Solution:   Disable the broken part of the test for now.
680c99b2ef
2018-11-20 21:14:50 -05:00
bebd1f9f76 vim-patch:8.0.1731: characters deleted on completion
Problem:    Characters deleted on completion. (Adrià Farrés)
Solution:   Also check the last item for the ORIGINAL_TEXT flag. (Christian
            Brabandt, closes vim/vim#1645)
e87edf3b85
2018-11-20 21:14:50 -05:00
85761dd426 CI/Travis/macOS: Fix "brew reinstall" invocation (#9259)
"-s" is "--build-from-source", an option to `brew install`.  This was
never a documented option per `brew help reinstall`.  It's not clear why
we were using this option, but it now fails the CI build.

ref https://github.com/Homebrew/brew/pull/5274
ref https://github.com/Homebrew/brew/issues/1656
2018-11-20 20:20:11 +01:00
016ebb4185 Merge #9257 'health/python: warn if pynvim upgrade failed'
Reference: https://github.com/neovim/neovim/wiki/Following-HEAD#20181118
2018-11-20 13:15:04 +01:00
f1a787d292 health/python: warn if pynvim upgrade failed
Reference: https://github.com/neovim/neovim/wiki/Following-HEAD#20181118
2018-11-20 11:33:08 +01:00
3e87f5ccf8 Merge #9256 'vim-patch:8.0.{737,1163,1165,1171,1249,1427}' 2018-11-20 11:09:44 +01:00
deb18a050e defaults: background=dark #2894 (#9205)
By historical accident, Nvim defaults to background=light. So on a dark
background, `:colorscheme default` looks completely wrong.

The "smart" logic that Vim uses is confusing for anyone who uses Vim on
multiple platforms, so rather than mimic that, pick the (hopefully) most
common default.

- Since Neovim is dark-powered, we assume most users have dark backgrounds.
- Most of the GUIs tend to have a dark background by default.

ref #6289
2018-11-20 10:52:49 +01:00
57fef7c74d health/python: slightly improve output 2018-11-20 09:59:18 +01:00
443cd04d5b provider/python: refactoring 2018-11-20 09:59:18 +01:00
54a586736b vim-patch:8.0.1171: popup test is still a bit flaky
Problem:    Popup test is still a bit flaky.
Solution:   Change term_wait() calls. (Ozaki Kiichi)
712549e04e
2018-11-19 23:46:38 -05:00
3c228e8935 vim-patch:8.0.1165: popup test is still flaky
Problem:    Popup test is still flaky.
Solution:   Add a term_wait() call. (Ozaki Kiichi)
f52c383156
2018-11-19 23:46:17 -05:00
f1d2297c5e vim-patch:8.0.1163: popup test is flaky
Problem:    Popup test is flaky.
Solution:   Add a WaitFor() and fix another.
c79977a437
2018-11-19 23:45:44 -05:00
fdc2707b41 vim-patch:8.0.1249: no error when WaitFor() gets an invalid wrong expression
Problem:    No error when WaitFor() gets an invalid wrong expression.
Solution:   Do not ignore errors in evaluationg the expression.  Fix places
            where the expression was wrong.
c20e0d5207
2018-11-19 22:32:23 -05:00
e71f43f8e7 vim-patch:8.0.0737: crash when X11 selection is very big
Problem:    Crash when X11 selection is very big.
Solution:   Use static items instead of allocating them.  Add callbacks.
            (Ozaki Kiichi)
cdb7e1b7f9
2018-11-19 21:53:39 -05:00
a5637597a6 vim-patch:8.0.1427: the :leftabove modifier doesn't work for :copen
Problem:    The :leftabove modifier doesn't work for :copen.
Solution:   Respect the split modifier. (Yegappan Lakshmanan, closes vim/vim#2496)
de04654ddc
2018-11-19 21:16:26 -05:00
e53ae88e7e vim-patch:8.1.0398: no test for -o and -O command line arguments (#9253)
Problem:    No test for -o and -O command line arguments.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3438)
8f4499b816
2018-11-19 01:38:51 +01:00
463d28cc80 TUI: support TERM=nsterm (#9244)
`:help $TERM` recommends TERM=nsterm for Terminal.app but we did not
actually support it.

NB: We don't include a builtin term for Terminal.app, presumably because
nsterm is commonly available on most systems (`infocmp nsterm`).
2018-11-18 19:58:41 +01:00
344dd2757a vim-patch:8.1.0536: file time test fails when using NFS (#9251)
Problem:    File time test fails when using NFS.
Solution:   Use three file times instead of localtim(). (James McCoy,
            closes vim/vim#3618)
addc156c38
2018-11-18 18:05:43 +01:00
180b50dddc Merge #9248 from mhinz/checkhealth/python
Rename Python package "neovim" to "pynvim"
2018-11-18 14:29:15 +01:00
00e3ba22fe Merge #9247 'vim-patch:8.1.{258,298,299,318,376}' 2018-11-18 12:35:21 +01:00
f4b4b7c132 lint 2018-11-18 00:30:16 -05:00
65a3d53cb9 vim-patch:8.1.0376: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize the variable.
c787539747
2018-11-18 00:18:52 -05:00
eab181a74e vim-patch:8.1.0318: the getftype() test may fail for char devices
Problem:    The getftype() test may fail for char devices if the file
            disappeared in between the listing and the getftype() call.
Solution:   Ignore empty result. (Ozaki Kiichi, closes vim/vim#3360)
3b3a506f57
2018-11-17 22:38:22 -05:00
2b7e58cb2c vim-patch:8.1.0299: misplaced comment
Problem:    misplaced comment
Solution:   Remove comment
142ae736d9
2018-11-17 22:23:30 -05:00
a9ae5bf36b vim-patch:8.1.0298: window resize test sometimes fails on Mac
Problem:    Window resize test sometimes fails on Mac.
Solution:   Add Test_popup_and_window_resize() to flaky tests.
46fad2ef0b
2018-11-17 22:21:25 -05:00
0c2ca48e5f doc/python: 'neovim' module was renamed to 'pynvim' 2018-11-17 17:56:34 +01:00
3ea14d5366 health/python: 'neovim' module was renamed to 'pynvim' 2018-11-17 17:56:34 +01:00
9fe472c91b vim-patch:8.1.0258: not enough testing for the CompleteDone event
Problem:    Not enough testing for the CompleteDone event.
Solution:   Add a test. (closes vim/vim#3297)
af559d2c9f
2018-11-17 08:20:22 -05:00
25356f2802 Merge pull request #9240 from jamessan/mbyte_spec-failure
unit/mbyte_spec: Run utf_char2bytes test in batches of 0xFFF characters
2018-11-15 16:25:29 -05:00
c344f4b6ae unit/mbyte_spec: Run utf_char2bytes test in batches of 0xFFF characters
Running the full 0xFFFF set of tests in one process fails on slower
architectures/when there's CPU contention.
2018-11-15 07:06:37 -05:00
d81b9d5ec5 vim-patch:8.1.0146: when $LANG is set the compiler test may fail (#9238)
Problem:    When $LANG is set the compiler test may fail.
Solution:   Unset $LANG.
f0447e89a5
2018-11-15 11:42:18 +01:00
3295083d5a vim-patch:8.1.0108: no Danish translations (#9235)
Problem:    No Danish translations.
Solution:   Add Danish message translations. (closes vim/vim#3073)  Move list of
            languages to a common makefile.
a4a2934e59
2018-11-15 03:20:07 +01:00
f6ed446817 vim-patch:8.1.0527: using 'shiftwidth' from wrong buffer for folding (#9234)
Problem:    Using 'shiftwidth' from wrong buffer for folding.
Solution:   Use "buf" instead of "curbuf". (Christian Brabandt)
0c27cbcacf
2018-11-15 02:10:05 +01:00
e14fa8569c Merge #9231 'vim-patch:8.1.{115,143,311,352}' 2018-11-14 11:27:17 +01:00
f6c6567cb1 vim-patch:8.1.0352: browsing compressed tar files does not always work
Problem:    Browsing compressed tar files does not always work.
Solution:   Use the "file" command to get the compression type.
d4a1aabe37
2018-11-13 22:33:27 -05:00
9e59fdf5f6 vim-patch:8.1.0311: filtering entries in a quickfix list is not easy
Problem:    Filtering entries in a quickfix list is not easy.
Solution:   Add the cfilter plugin. (Yegappan Lakshmanan)
8c5e0093c9
2018-11-13 21:32:00 -05:00
091ae1e63f vim-patch:8.1.0143: matchit and matchparen don't handle E363
Problem:    Matchit and matchparen don't handle E363.
Solution:   Catch the E363 error. (Christian Brabandt)
3d1d6475f9
2018-11-13 21:15:29 -05:00
24ce4c6233 vim-patch:8.1.0115: the matchparen plugin may throw an error
Problem:    The matchparen plugin may throw an error.
Solution:   Change the skip argument from zero to "0".
b7a5ab112a
2018-11-13 21:13:19 -05:00
05f9c7c2f7 clipboard: support Wayland (#9230)
Fixes #9213
2018-11-13 19:01:37 +01:00
4cc28673ee Merge #9049 from janlazo/vim-8.0.1352 2018-11-12 23:17:03 +01:00
59ded3ef29 vim-patch: add matchit doc
matchit doc is named 'pi_matchit.txt'.
2018-11-12 12:36:40 -05:00
dec38601c5 vim-patch: rename path to check_colors.vim 2018-11-12 12:36:40 -05:00
89621464fc vim-patch: move test_urls.vim out of runtime/
Rename it to check_urls.vim, similar to check-includes.py.
2018-11-12 12:36:40 -05:00
abd5b0c6c3 vim-patch:8.0.1352: dead URLs in the help go unnoticed
Problem:    Dead URLs in the help go unnoticed.
Solution:   Add a script to check URLs in the help files. (Christian Brabandt)
f38c86eb6b
2018-11-12 12:36:40 -05:00
6d8ad78237 Merge #8952 'vim-patch:8.0.1620,8.1.{96,340}' 2018-11-12 18:32:28 +01:00
21824df3c6 lint 2018-11-12 11:12:44 -05:00
8fa7b6c8af vim-patch:8.1.0096: inconsistent use of the word autocommands
Problem:    Inconsistent use of the word autocommands.
Solution:   Don't use auto-commands or "auto commands".
8c55533c6f
2018-11-12 11:11:31 -05:00
42419e5a73 vim-patch:8.0.1620: reading spell file has no good EOF detection
Problem:    Reading spell file has no good EOF detection.
Solution:   Check for EOF at every character read for a length field.
e26e0d2b83
2018-11-12 08:45:03 -05:00
e5046822c9 oldtests: skip Test_spellinfo()
nvim supports only `set encoding=utf8`.
2018-11-12 08:45:03 -05:00
208cdb84a6 vim-patch:8.1.0340: no test for :spellinfo
Problem:    No test for :spellinfo.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3394)
9049b68612
2018-11-12 08:45:03 -05:00
9f3fb66111 vim-patch:8.1.0516: :move command sets 'modified' #9224
Problem:    :move command marks buffer modified when nothing changed.
Solution:   Do not set 'modified'.  Add a test. (Jason Franklin)
ddd1f9183b
2018-11-11 19:13:14 +01:00
c936ae0f36 Merge pull request #9193 from bfredl/scrollstuff
UI/TUI: improvements and cleanups for scrolling and clearing
2018-11-11 10:53:23 +01:00
eb3b73d472 TUI: attrs -> attr_id refactor 2018-11-11 09:54:03 +01:00
520ec3dbfd UI/TUI: improvements and cleanups for scrolling and clearing
- TUI: _never_ rely on BCE for implicit clearing, only explicit commands.
- TUI: use unibi_erase_chars when possible.
- TUI: use end-exclusive ranges for invalid and cleared areas
- screen: scrolling leaves scrolled in aree undefined. This is a
  conservative change, a client assuming the old semantics will still
  behave correctly.
- screen: factor out vsep handling from line drawing. This is needed
  anyway for the multigrid refactor.
- screen: simplifications of win_do_lines
2018-11-11 09:54:03 +01:00
f8639dc99c test: adjust time-sensitive tests (#9220)
- window_split_tab_spec.lua: Put cursor at bottom of :terminal buffer so
  that it follows output.
- inccommand_spec.lua: Increase timeout to allow 2nd retry.
- Timer tests are less reliable on Travis CI macOS 10.12/10.13.
  ref #6829
  ref e39dade80b
  ref de13113dc1
  ref https://github.com/neovim/neovim/pull/9095#issuecomment-429603452
  > We don't guarantee that a X ms timer is triggered during Y ms sleep
  > for any X<Y, though I would expect the load to be really bad for this
  > to happen with X=10ms, Y=40ms.
2018-11-10 11:12:04 +01:00
18435a2534 vim-patch:8.1.0337: :file fails in quickfix command (#9215)
Problem:    :file fails in quickfix command.
Solution:   Allow :file without argument when curbuf_lock is set. (Jason
            Franklin)
379fb76b08
2018-11-09 09:33:28 +01:00
16bc1e9c17 Merge pull request #9218 from bfredl/termbuf
channel: avoid buffering output when only terminal and no callbacks are active
2018-11-08 23:48:34 +01:00
312afd8e2e channel: avoid buffering output when only terminal and no callbacks are active 2018-11-08 19:06:55 +01:00
d36afafc8d Merge pull request #9211 from bfredl/init_options
ui_options: also send when starting in --embed mode
2018-11-08 15:15:36 +01:00
348adbcc7a ui_options: also send when starting or from OptionSet
needed after #9024 to receive options from init.vim
2018-11-08 14:12:54 +01:00
c4c74c3883 jobstart(): Fix hang on non-executable cwd #9204
* os/fs.c: add os_isdir_executable()
* eval.c: fix hang on job start caused by non-executable cwd option
* channel.c: assert cwd is an executable directory
* test: jobstart() produces error when using non-executable cwd
2018-11-07 10:31:25 +01:00
769d164c70 Merge pull request #9206 from janlazo/vim-8.1.0510
vim-patch:8.1.{510,512}
2018-11-06 13:58:22 +01:00
f08869cff2 vim-patch:8.1.0511: ml_get error when calling a function with a range (#9207)
Problem:    ml_get error when calling a function with a range.
Solution:   Don't position the cursor after the last line.
9e353b5265
2018-11-06 13:49:20 +01:00
e0d6894a54 vim-patch:8.1.0512: 'helplang' default is inconsistent for C and C.UTF-8
Problem:    'helplang' default is inconsistent for C and C.UTF-8.
Solution:   Don't accept a value unless it starts with two letters.
389ab7122b
2018-11-05 21:08:23 -05:00
bd6866f90b vim-patch:8.1.0510: filter test fails when $LANG is C.UTF-8
Problem:    Filter test fails when $LANG is C.UTF-8.
Solution:   Set 'helplang' to "en" for any C language. (Christian Brabandt,
            closes vim/vim#3577)
dcd71cbaed
2018-11-05 20:08:47 -05:00
5320eb57df build: relax find_package() version spec
We need a way to say "Lua 5.1.x" is required.
"5.1 EXACT" does not match 5.1.5, so it's useless.

https://github.com/neovim/neovim/pull/9197#discussion_r230962070
2018-11-06 01:48:49 +01:00
1347f36494 Merge #9112 'doc' 2018-11-05 23:10:50 +01:00
b96730bc3b doc: API 2018-11-05 22:45:49 +01:00
72b1ce7f30 doc: fix/remove broken tag references 2018-11-05 22:45:48 +01:00
1bbbd5f0ff build: make helphtml 2018-11-05 22:45:48 +01:00
2ee4ce0639 doc: merge sponsor.txt into intro.txt
Also mention how to donate to Nvim.

closes #8603
2018-11-05 22:45:48 +01:00
f679abef3e runtime: delete rrhelper.vim 2018-11-05 22:45:48 +01:00
4de70f5b95 doc
- update standard-plugin-list. closes #8388
2018-11-05 22:45:48 +01:00
6729774143 doc: manpage
roff/mdoc reference:
http://man7.org/linux/man-pages/man7/groff_mdoc.7.html
2018-11-05 22:45:48 +01:00
6fe740c7ab test/win: window_split_tab_spec: fix retry() 2018-11-05 07:59:14 +01:00
10ef903648 test/win: window_split_tab_spec: increase retry() time
The default timeout of 10s only allows 1 retry.
2018-11-05 03:25:36 +01:00
8086db6302 Merge #9197 2018-11-05 01:15:20 +01:00
2c085257fd CI/AppVeyor: Avoid "warning" which causes non-zero retcode
ErrorActionPreference=stop will fail the script if this warning occurs.

see https://github.com/open62541/open62541/issues/2068
2018-11-05 00:35:54 +01:00
de13113dc1 test/timer_spec: relax lower-bound
Test is unreliable on macOS 10.13.  The lower-bound isn't central to the
purpose of the test, so just relax it.

ref https://github.com/neovim/neovim/pull/9095#issuecomment-429603452

> We don't guarantee that a X ms timer is triggered during Y ms sleep
> for any X<Y, though I would expect the load to be really bad for this
> to happen with X=10ms, Y=40ms.

related: #6829
2018-11-05 00:35:54 +01:00
697176fc3e test/win: retry unreliable SIGWINCH test 2018-11-04 14:24:05 +01:00
377694681c build: dependencies: specify minimum versions 2018-11-04 12:11:37 +01:00
47473b39cb vim-patch:8.1.0508: suspend test fails when run by root (#9196)
Problem:    Suspend test fails when run by root.
Solution:   Accept both '$' and '#' for the prompt. (James McCoy, closes vim/vim#3590)
0f62cf5b33
2018-11-04 11:58:22 +01:00
21fb9b2b08 vim-patch:8.1.0507: .raml files not properly detected (#9195)
Problem:    .raml files not properly detected.
Solution:   Recognize .raml as raml instead of yaml. (closes vim/vim#3594)
da1c11c641
2018-11-04 11:56:34 +01:00
67f80d485c TUI: Avoid reset_cursor_color in old VTE #9191
closes #9089
2018-11-03 21:39:48 +01:00
a6661178aa vim-patch:8.1.0504: when CTRL-C is mapped it triggers InsertLeave (#9192)
Problem:    When CTRL-C is mapped it triggers InsertLeave.
Solution:   Make CTRL-C behave the same way when typed or used in a mapping.
4dbc262764
2018-11-03 12:04:33 +01:00
87d67814e5 Merge #9184 from janlazo/vim-8.0.1758 2018-11-02 09:09:40 +01:00
48398d61e4 Merge pull request #9183 from bfredl/offset2
api: make nvim_buf_get_offset independent on platform option
2018-11-02 08:36:38 +01:00
a9b7debbbc vim-patch:8.0.1766: expanding abbreviation doesn't work
Problem:    Expanding abbreviation doesn't work. (Tooth Pik)
Solution:   Return OK instead of FALSE and FAIL instead of TRUE. (Christian
            Brabandt)
c3c3e69896
2018-11-01 23:20:06 -04:00
44c111e49f vim-patch:8.0.1758: open_line() returns TRUE/FALSE for success/failure
Problem:    open_line() returns TRUE/FALSE for success/failure.
Solution:   Return OK or FAIL.
24a2d7264f
2018-11-01 23:19:25 -04:00
c40f992e10 api: simplify nvim_buf_get_offset function 2018-11-01 22:00:40 +01:00
c45a859171 Merge #7506 'deps: update libuv' 2018-11-01 20:42:20 +01:00
f1b67c3453 test/old: Test_BufReadCmdHelp: generate helptags
Generate helptags before :help.

This only failed in the TSAN build because other builds run the Lua
tests first, which generate the helptags.

closes #8824
2018-11-01 19:17:29 +01:00
88f77c28e5 Merge pull request #9180 from bfredl/offset
api: implement nvim_buf_get_offset_for_line
2018-11-01 17:36:58 +01:00
f5671c8614 win: test: SIGWINCH is noisy #7506 2018-11-01 17:17:07 +01:00
281da0dd59 api: implement nvim_buf_get_offset_for_line
Like line2byte, but works for any buffer, and uses zero-based
indexing (API conventions).
2018-11-01 15:05:05 +01:00
11b438eb66 Merge #8378 from janlazo/win_functional_tests 2018-11-01 10:00:35 +01:00
f9fe903579 vim-patch:8.1.0501: cppcheck warns for using array index before bounds check (#9178)
Problem:    Cppcheck warns for using array index before bounds check.
Solution:   Swap the conditions. (Dominique Pelle)
a9a8e04eab
2018-11-01 09:53:46 +01:00
8480b74010 build/win: LibuvCMakeLists.txt: adapt to moved headers
Headers were moved in v1.21.0
99ae3edf28
2018-11-01 04:35:36 +01:00
8ce3d0174e ci: win: enable powershell's strict mode
Give variables a default value to pass strict mode.
$ErrorActionPreference defines the default behavior
if a powershell command fails.
If it's set to 'stop', then it aborts the script
on the first unresolved error.
This behavior extends to native programs like cmake
but do not depend on it.

https://github.com/PowerShell/PowerShell/issues/3996
2018-10-31 22:57:26 -04:00
9929af47fe ci: win: use Ninja for CMake Generator 2018-10-31 22:56:19 -04:00
7ab0e8c8dd functionaltest: enable job channel test 2018-10-31 22:55:07 -04:00
4abed17496 functionaltest: win: enable shada FileWriteCmd 2018-10-31 22:55:07 -04:00
8e44396794 functionaltest: enable buffered output tests 2018-10-31 22:55:07 -04:00
fe2e7cfdee functionaltest: enable FilterReadPre,FilterReadPost test 2018-10-31 22:55:07 -04:00
bc5fb82c6d functionaltest: win: enable diffput,diffget test 2018-10-31 22:55:07 -04:00
88974c8e66 functionaltests: win: enable gzip test
Close gzip file handles.
2018-10-31 22:54:18 -04:00
fc5dea02b6 deps: update to libuv v1.23.2
Remove libuv-overlapped.patch since UV_OVERLAPPED_PIPE was included in
libuv v1.21.0:
62a0f763a7

Notable changes since v1.12:
- 1.16.0
  - uv_os_getppid(): get parent PID
  - "win,tty: improve SIGWINCH support" (v1.15.0)
- 1.18.0
  - uv_os_getpid()
- 1.19.0
  - Windows: uv_kill() pid 0 now means "current process group", like unix.
    890eedaf59
- 1.20.0
  - unix,spawn: respect user stdio flags for new pipe
    c409b3fcff
2018-11-01 00:10:50 +01:00
b24209dcf5 provider/nodejs: handle missing stdout
ref https://github.com/neovim/neovim/issues/9001#issuecomment-434802234
2018-10-31 20:42:41 +01:00
7d61cdc334 doc: README.md (#9176) 2018-10-31 20:19:58 +01:00
61fccda197 test/old: force "-i viminfo" in $RUN_VIMTEST #9175 (#9175)
Before this change, some tests fail if the user has a local
shada/viminfo in the default $HOME location. For example:

    TEST_FILE=test_marks.res make oldtest

Ostensibly this change should not be necessary, because of this
statement in runtest.vim:

    set viminfo+=nviminfo
2018-10-31 10:23:58 +01:00
0838b00253 test/old: test_startup: fix "-u NONE" arg
Lack of whitespace caused a file named "NONE-u" to be created (because
GetVimCommand() returns a command ending with "-i NONE").
2018-10-30 20:44:30 +01:00
3159cd4503 vim-patch:8.0.1553: find digraph to insert a character #8190
Problem:    Cannot see what digraph is used to insert a character.
Solution:   Show the digraph with the "ga" command. (Christian Brabandt)
5f73ef8d20

close #8190
2018-10-30 19:47:59 +01:00
500345aea2 Merge #9172 from justinmk/vim-d473c8c10126 2018-10-30 01:01:29 +01:00
18ce6c9063 vim-patch:2c64ca1802b2
Update runtime files
2c64ca1802
2018-10-30 00:05:25 +01:00
17c26d0dcf vim-patch:95bafa296ae9
Update runtime files.
95bafa296a
2018-10-30 00:02:22 +01:00
7d2fbb9012 vim-patch:93a1df2c205c
Update runtime files.
93a1df2c20
2018-10-29 23:57:24 +01:00
11bcd48fda vim-patch:20aac6c11269
Update runtime files.
20aac6c112
2018-10-29 23:55:45 +01:00
2c7ed420d9 vim-patch:fc65cabb15d0
Update runtime files.
fc65cabb15

---

vim-patch:8.0.1279: initializing menus can be slow
Problem:    Initializing menus can be slow, especially when there are many
            keymaps, color schemes, etc.
Solution:   Do the globbing for runtime files lazlily. (Ken Takata)
2018-10-29 23:54:15 +01:00
f5406dfe77 Merge #9164 from justinmk/vim-a2a80162deb1
vim-patch: runtime updates
2018-10-29 17:47:27 +01:00
6d1827aebc runtime/optwin.vim: feature-check 'pw' option
Option not implemented yet.
2018-10-29 10:24:01 +01:00
228bc4c416 vim-patch:d473c8c10126
Update runtime files.
d473c8c101
2018-10-29 10:01:44 +01:00
4f67f5ba6e vim-patch:d2855f5454c5
Update runtime files.
d2855f5454
2018-10-29 09:57:24 +01:00
07fdbba9d0 vim-patch:91f84f6e11cd
Update runtime files.
91f84f6e11
2018-10-29 09:55:07 +01:00
877d5c8be7 vim-patch:a9604e614517
Update runtime files.
a9604e6145
2018-10-29 09:50:08 +01:00
d252be36e2 vim-patch:b477af2260d9
Update runtime files.
b477af2260
2018-10-29 09:46:34 +01:00
de682a4f9e vim-patch:fd35811ca528
Update runtime files, add Danish translations.
fd35811ca5
2018-10-29 09:43:50 +01:00
5a022c71e4 vim-patch:6dc819b1299e
Updated runtime and language files.
6dc819b129
2018-10-29 09:39:48 +01:00
884ac81135 vim-patch:675e8d6adb88
Update runtime files.
675e8d6adb

---

NA:
vim-patch:ffd112edc6a8
Fix missing patch number.
ffd112edc6
2018-10-29 09:37:13 +01:00
93a85bdd8a vim-patch:d2f3a8b87873
Update runtime files.
d2f3a8b878
2018-10-29 09:32:29 +01:00
9da951ad47 vim-patch:0b0f0992d46e
Update runtime files.
0b0f0992d4
2018-10-29 09:29:17 +01:00
633ae523f5 vim-patch:2f01889055f1
Runtime file and translation updates.
2f01889055
2018-10-29 09:26:43 +01:00
835161490d vim-patch:7c63fbc46e21
Updated runtime files.
7c63fbc46e
2018-10-29 09:23:30 +01:00
460a52dbbf vim-patch:eb3dc87f0139
Updated runtime files
eb3dc87f01
2018-10-29 09:22:31 +01:00
bee8a0ae8c vim-patch:7db25fed5de1
Update runtime files.
7db25fed5d
2018-10-29 09:21:00 +01:00
c05b0d8ec7 vim-patch:85eee130f44a
Update runtime files.
85eee130f4
2018-10-29 09:17:43 +01:00
875a1bcf0a vim-patch:15142e27aaaf
Update runtime files and translations
15142e27aa
2018-10-29 09:17:35 +01:00
9ef01272b2 vim-patch:7dda86f2ff35
Update runtime files.
7dda86f2ff
2018-10-29 08:30:39 +01:00
a1e822fbc6 vim-patch:51ad4eaa22e1
Update runtime files
51ad4eaa22

---

NA:
vim-patch:6176697203b0
2018-10-29 08:26:47 +01:00
e2fb230c3a vim-patch:ab943431d8fc
Update runtime files
ab943431d8
2018-10-29 06:50:47 +01:00
5c4a421735 vim-patch:98ef233e14fa
Update runtime files. Convert a couple of help files to utf-8.
98ef233e14
2018-10-29 06:44:02 +01:00
c7513368f0 vim-patch:b5b7562475ad
Update runtime files.
b5b7562475

---

NA patch (Nvim does not ship with spell files):
vim-patch:3ad8772ef02e
Include Serbian spell input files
3ad8772ef0
2018-10-29 06:38:10 +01:00
fb8f822d9c Merge #9015 2018-10-29 06:17:29 +01:00
17a5dde8d3 vim-patch:22f1d0e35eb0
Updated runtime files.

Add Serbian translations and spell checking.
22f1d0e35e
2018-10-28 14:18:21 +01:00
733b4ce033 vim-patch:7254067ee970
Update runtime files.
7254067ee9
2018-10-28 14:07:58 +01:00
1a51524ad5 vim-patch:40962ec9c0e7
Update runtime files.
40962ec9c0
2018-10-28 14:05:14 +01:00
8d743d02f2 vim-patch:df980db69b83
update a few runtime files
df980db69b

Note: omit hl-Terminal, Nvim has its own way of highlighting :terminal.
2018-10-28 14:01:46 +01:00
dae1213e57 vim-patch:f0b03c4e98f8
Update runtime files
f0b03c4e98

Note: haskell changes were included in 942f3587c3
2018-10-28 13:57:08 +01:00
b9a6df58cc vim-patch:4697399e8c80
move netrw back to the previous version
4697399e8c
2018-10-28 13:50:36 +01:00
f29c2fc4a8 vim-patch:461fe50fea24
patch 8.0.1367: terminal test hangs, executing abcde

Problem:    terminal test hangs, executing abcde. (Stucki)
Solution:   Rename abcde to abxde.
461fe50fea
2018-10-28 13:48:54 +01:00
542513fd8a vim-patch:a2a80162deb1
Update runtime files.
a2a80162de
2018-10-28 13:48:02 +01:00
cf93b5e9f9 version.c: update [ci skip] (#9162) 2018-10-28 13:09:10 +01:00
b659841570 version.c: update [ci skip] #8474
close #8474

vim-patch:8.0.0264: memory error reported by ubsan
vim-patch:8.0.0340: not checking return valud of dict_add()
vim-patch:8.0.0346: Vim relies on limits.h to be included indirectly
vim-patch:8.0.0361: GUI initialisation is not sufficiently tested
vim-patch:8.0.0365: might free a dict item that wasn't allocated
vim-patch:8.0.0367: types in include files may be inconsistent
vim-patch:8.0.0369: a few options are not defined, depending on features
vim-patch:8.0.0372: more options are not always defined
vim-patch:8.0.0386: tiny build has a problem with generating the options test
vim-patch:8.0.0392: GUI test fails with Athena and Motif
vim-patch:8.0.0395: testing the + register fails with Motif
vim-patch:8.0.0422: Python test fails with Python 3.6
vim-patch:8.0.0425: build errors when building without folding
vim-patch:8.0.0432: "make shadow" creates an invalid link
vim-patch:8.0.0476: missing change to main.c
vim-patch:8.0.0526: Coverity complains about possible negative value
vim-patch:8.0.0540: building unit tests fails
vim-patch:8.0.0556: getting window position fails if GUI and term possible
vim-patch:8.0.0563: crash when getting the window position in tmux
vim-patch:8.0.0567: call for requesting color and ambiwidth is too early
vim-patch:8.0.0569: bracketed paste is still enabled in a shell command
vim-patch:8.0.0587: configure check for return value of tgetent skipped
vim-patch:8.0.0588: job_stop() often assumes the channel will be closed
vim-patch:8.0.0610: the screen is redrawn when default 'background' is detected
vim-patch:8.0.0611: the screen is not redrawn after sending t_u7
vim-patch:8.0.0620: checking for HAVE_GTK_MULTIHEAD is not needed
vim-patch:8.0.0626: in the GUI the cursor may flicker
vim-patch:8.0.0628: cursor disappears after silent mapping
vim-patch:8.0.0631: can't build with Perl 5.26
vim-patch:8.0.0637: crash when using some version of GTK 3
vim-patch:8.0.0639: the cursor position is set when editing a new commit message
vim-patch:8.0.0649: when opening a help file the filetype is set several times
vim-patch:8.0.0653: the default highlight for QuickFixLine is not good
vim-patch:8.0.0690: compiler warning on non-Unix system
vim-patch:8.0.0691: compiler warning without the linebreak feature
vim-patch:8.0.0696: .inc files missing in git
vim-patch:8.0.0719: build failure without +terminal feature
vim-patch:8.0.0729: the help for the terminal configure option is wrong
vim-patch:8.0.0731: cannot build the terminal feature on MS-Windows
vim-patch:8.0.0741: cannot build with HPUX
vim-patch:8.0.0750: OpenPTY missing in non-GUI build
vim-patch:8.0.0751: OpenPTY missing with some combination of features
vim-patch:8.0.0752: build fails on MS-Windows
vim-patch:8.0.0763: libvterm can be improved
vim-patch:8.0.0770: compiler warning for missing field initializer
vim-patch:8.0.0772: other stdbool.h dependencies in libvterm
vim-patch:8.0.0773: mixing 32 and 64 bit libvterm builds fails
vim-patch:8.0.0774: build failure without the multi-byte feature
vim-patch:8.0.0790: MSVC compiler warning for strncpy in libvterm
vim-patch:8.0.0795: terminal feature does not build with older MSVC
vim-patch:8.0.0808: cannot build with terminal feature and DEBUG defined
vim-patch:8.0.0809: MS-Windows: tests hang
vim-patch:8.0.0811: MS-Windows: test_expand_dllpath fails
vim-patch:8.0.0822: Test_with_partial_callback is a tiny bit flaky
vim-patch:8.0.0834: can't build without the client-server feature
vim-patch:8.0.0865: cannot build with channel but without terminal feature
vim-patch:8.0.0866: Solaris also doesn't have MIN and MAX
vim-patch:8.0.0875: crash with weird command sequence
vim-patch:8.0.0880: Travis uses an old Ubuntu version
vim-patch:8.0.0901: asan suppress file missing from distribution
vim-patch:8.0.0919: cursor color isn't set on startup
vim-patch:8.0.0921: terminal window cursor shape not supported in the GUI
vim-patch:8.0.0946: using PATH_MAX does not work well on some systems
vim-patch:8.0.0954: /proc/self/exe might be a relative path
vim-patch:8.0.0966: build failure without terminal feature
vim-patch:8.0.0967: using a terminal may cause the cursor to blink
vim-patch:8.0.0972: compiler warnings for unused variables
vim-patch:8.0.0980: Coverity warning for failing to open /dev/null
vim-patch:8.0.0986: terminal feature always requires multi-byte feature
vim-patch:8.0.0988: warning from Covscan about using NULL pointer
vim-patch:8.0.0993: sometimes an xterm sends an extra CTRL-X
vim-patch:8.0.0996: Mac: t_RS is echoed on the screne in Terminal.app
vim-patch:8.0.0997: Libvterm and Terminal.app not regognized from termresponse.
vim-patch:8.0.1008: slow updating of terminal window in Motif
vim-patch:8.0.1010: build failure without termresponse feature
vim-patch:8.0.1014: old compiler doesn't know uint32_t
vim-patch:8.0.1016: gnome terminal echoes t_RC
vim-patch:8.0.1021: older Gnome terminal still echoes t_RC
vim-patch:8.0.1026: GTK on-the-spot input has problems
vim-patch:8.0.1027: more terminals can't handle requesting cursor mode
vim-patch:8.0.1030: MS-Windows: wrong size computation in is_cygpty()
vim-patch:8.0.1033: detecting background color does not work in screen
vim-patch:8.0.1042: without the syntax feature highlighting doesn't work
vim-patch:8.0.1047: buffer overflow in Ruby
vim-patch:8.0.1059: older Gnome terminal returns smaller version number
vim-patch:8.0.1062: Coverity warnings in libvterm
vim-patch:8.0.1065: not all macro examples are included
vim-patch:8.0.1066: some terminals can't handle requesting cursor mode
vim-patch:8.0.1068: vandyke SecureCRT terminal can't handle cursor mode request
vim-patch:8.0.1069: still get CTRL-X sometimes
vim-patch:8.0.1071: putty-color and cygwin-color are not recognized
vim-patch:8.0.1094: using ssh from Terminal.app runs into xterm incompatibility
vim-patch:8.0.1110: FORTIFY_SOURCE from Perl causes problems
vim-patch:8.0.1111: syntax error in configure when using Perl
vim-patch:8.0.1118: FEAT_WINDOWS adds a lot of #ifdefs
vim-patch:8.0.1136: W_WIDTH() is always the same
vim-patch:8.0.1152: encoding of error message wrong in Cygwin terminal
vim-patch:8.0.1155: Ruby command triggers a warning
vim-patch:8.0.1157: compiler warning on MS-Windows
vim-patch:8.0.1159: typo in #ifdef
vim-patch:8.0.1166: :terminal doesn't work on Mac High Sierra
vim-patch:8.0.1175: build failure without +termresponse
vim-patch:8.0.1192: MS-Windows: terminal feature not enabled by default
vim-patch:8.0.1195: can't build on MS-Windows
vim-patch:8.0.1198: older compilers don't know uint8_t
vim-patch:8.0.1211: cannot reorder tab pages with drag & drop
vim-patch:8.0.1247: not easy to find Debian build info
vim-patch:8.0.1248: stray + in README file
vim-patch:8.0.1255: duplicate badge README file
vim-patch:8.0.1256: typo in configure variable vim_cv_tgent
vim-patch:8.0.1258: 'ttymouse' is set to "sgr" even though it's not supported
vim-patch:8.0.1269: effect of autocommands on marks is not tested
vim-patch:8.0.1272: warnings for unused variables in tiny build
vim-patch:8.0.1273: old test file remaining
vim-patch:8.0.1303: 'ttymouse' is not set to "sgr" for Terminal.app and Iterm2
vim-patch:8.0.1306: ASAN error stack trace is not useful
vim-patch:8.0.1310: cproto generates errors because of missing type
vim-patch:8.0.1322: textformat test isn't run
vim-patch:8.0.1324: some xterm sends different mouse move codes
vim-patch:8.0.1325: more tests are not run
vim-patch:8.0.1327: new proto file missing from distribution
vim-patch:8.0.1337: typo in #ifdef
vim-patch:8.0.1369: MS-Windows: drawing underline slow, mFallbackDC not updated
vim-patch:8.0.1380: using "vim -r swapfile" the hit-enter prompt is misplaced.
vim-patch:8.0.1394: cannot intercept a yank command
vim-patch:8.0.1415: warning for unused function without timers feature
vim-patch:8.0.1424: the timer_pause test is flaky on Travis
vim-patch:8.0.1437: pkg-config doesn't work with cross compiling
vim-patch:8.0.1456: timer test on travis Mac is still flaky
vim-patch:8.0.1467: libvterm doesn't handle illegal byte sequence correctly
vim-patch:8.0.1478: unnecessary condition
vim-patch:8.0.1504: Win32: the screen may be cleared on startup
vim-patch:8.0.1506: new version of HP NonStop (Tandem) doesn't like a header
vim-patch:8.0.1532: compiler warnings without termguicolors feature
vim-patch:8.0.1556: may not parse the t_RS response correctly
vim-patch:8.0.1564: too many #ifdefs
vim-patch:8.0.1565: can't build Mac version without GUI
vim-patch:8.0.1566: too many #ifdefs
vim-patch:8.0.1567: cannot build Win32 GUI without IME
vim-patch:8.0.1571: can't build without GUI
vim-patch:8.0.1573: getwinpos(1) may cause response to be handled as command
vim-patch:8.0.1580: FEAT_CURSORBIND and FEAT_SCROLLBIND are unused
vim-patch:8.0.1581: cannot build Win32 GUI without +eval
vim-patch:8.0.1583: using C99 comment
vim-patch:8.0.1584: using C99 in Mac file gives compiler warning messages
vim-patch:8.0.1585: enabling beval_term feature in Win32 GUI
vim-patch:8.0.1586: imactivatefunc does not work on non-GUI Mac
vim-patch:8.0.1597: autocommand events are not sorted
vim-patch:8.0.1603: cannot build with +terminal but without +menu
vim-patch:8.0.1606: singular/plural variants not translated
vim-patch:8.0.1608: Win32: directx not enabled by default
vim-patch:8.0.1610: cannot build without GUI
vim-patch:8.0.1613: warning for unused variable in tiny build
vim-patch:8.0.1614: "make tags" doesn't include libvterm
vim-patch:8.0.1618: color Grey50 is missing in the compiled-in table
vim-patch:8.0.1625: test_quotestar is flaky when run in GTK GUI
vim-patch:8.0.1627: compiler warning for visibility attribute not supported
vim-patch:8.0.1635: undefining _POSIX_THREADS causes problems with Python 3
vim-patch:8.0.1639: libvterm code lags behind master
vim-patch:8.0.1646: MS-Windows: executable contains unreferenced functions
vim-patch:8.0.1650: too many #ifdefs
vim-patch:8.0.1659: scroll events not recognized for some xterm emulators
vim-patch:8.0.1663: cannot build without multi-byte feature
vim-patch:8.0.1674: libvterm can't handle an OSC string split
vim-patch:8.0.1675: unused macro argument in libvterm
vim-patch:8.0.1679: compiler warning for printf format
vim-patch:8.0.1683: Python upgrade breaks Vim when defining PYTHON_HOME
vim-patch:8.0.1686: Python does not work when configuring with specific dir
vim-patch:8.0.1692: Python may not work when using statically linked library
vim-patch:8.0.1696: coverage statistics don't work
vim-patch:8.0.1698: coverage statistics don't work on coveralls
vim-patch:8.0.1699: leftover stuff for Python 1.4
vim-patch:8.0.1700: coverage statistics still don't work on coveralls
vim-patch:8.0.1701: can disable COLOR_EMOJI with MSVC but not MinGW
vim-patch:8.0.1710: building with Ruby fails
vim-patch:8.0.1717: C89 check causes too much trouble
vim-patch:8.0.1719: cannot specify which Python executable configure should use
vim-patch:8.0.1730: no configure check for the used C99 features
vim-patch:8.0.1736: check for C99 features is incomplete
vim-patch:8.0.1737: fchown() used when it is not supported
vim-patch:8.0.1739: MS-Windows with msys2 cannot build Ruby statically
vim-patch:8.0.1741: MS-Windows with msys2 cannot build Ruby statically
vim-patch:8.0.1749: VMS: 100% CPU use, redefining mch_open() fails
vim-patch:8.0.1751: #ifdef causes bad highlighting
vim-patch:8.0.1755: MS-Windows: high unicode char received as two utf-16 words
vim-patch:8.0.1757: unnecessary changes in libvterm
vim-patch:8.0.1760: wrong number of arguments to vms_read()
vim-patch:8.0.1764: lgtm considers tutor.es to be EcmaScript
vim-patch:8.0.1785: missing symbol in Win32 small build
vim-patch:8.0.1788: tool to check a color scheme is not installed
vim-patch:8.0.1791: using uint8_t does not work everywhere
vim-patch:8.0.1813: Windows installer doesn't install terminal debugger
vim-patch:8.0.1825: might use NULL pointer when out of memory
vim-patch:8.0.1840: getwinpos() is not tested

vim-patch:8.0.0216: decoding js style json may fail
vim-patch:8.0.1391: encoding empty string to JSON sometimes gives "null"
vim-patch:8.0.1602: crash in parsing JSON
vim-patch:8.1.0343: #9041
2018-10-28 12:56:15 +01:00
e101cdb3d7 vim-patch:8.1.0498: /etc/gitconfig not recognized at a gitconfig file
Problem:    /etc/gitconfig not recognized at a gitconfig file.
Solution:   Add pattern to filetype detection. (closes vim/vim#3568)
d474686a09
2018-10-27 19:54:52 -04:00
b920412306 vim-patch:8.1.0484: some file types are not recognized
Problem:    Some file types are not recognized.
Solution:   Update the file type detection.
38654503b0
2018-10-27 19:53:17 -04:00
f1f036740a vim-patch:8.0.1465: python2 and python3 detection not tested
Problem:    Python2 and python3 detection not tested. (Matej Cepl)
Solution:   Add test for detecting python2 and python3.  Also detect a script
            using "js" as javascript.
4bc0bed536
2018-10-27 19:53:17 -04:00
5ec671d541 vim-patch:8.0.1458: filetype detection test does not check all scripts
Problem:    Filetype detection test does not check all scripts.
Solution:   Add most scripts to the test
ddb349369d
2018-10-27 19:53:17 -04:00
a71a180df9 vim-patch:8.0.1457: clojure now supports a shebang line
Problem:    Clojure now supports a shebang line.
Solution:   Detect clojure script from the shebang line. (David Burgin,
            closes vim/vim#2570)
8fd2ffc530
2018-10-27 19:53:17 -04:00
43c88bb58c vim-patch:8.0.1438: filetype detection test not updated for change
Problem:    Filetype detection test not updated for change.
Solution:   Update the test.
0479e910c4
2018-10-27 19:53:17 -04:00
112a5b76e6 man.vim: lowercase title when invoked as $MANPAGER
man#init_pager() guesses the ref by the heading, which is usually
uppercase, so we don't know the correct casing. But lowercase is more
common, so use that for the buffer name instead of uppercase.

ref #9156
2018-10-26 02:50:21 +02:00
4d7c7f96dd Merge pull request #9149 from bfredl/virt_cul
screen: show virt_text when 'cursorline' is set
2018-10-25 21:24:06 +02:00
d214e33e78 doc/:Man: "!" is special in some shells
ref https://github.com/neovim/neovim/issues/9156#issuecomment-433156463
2018-10-25 20:51:59 +02:00
edbe020bcb Merge pull request #9155 from bfredl/tabredraw
UI: add missing redraw after enter_tabpage
2018-10-25 19:03:40 +02:00
6994cc4d1a UI: add missing redraw after enter_tabpage
redraw_all_later() isn't guaranteed to update must_redraw after
switching tab, we must do it ourselves.

fixes #9152
2018-10-25 17:46:58 +02:00
c48c9828c3 screen.c: remove redundant wp->w_hl_attr_normal 2018-10-25 09:30:48 +02:00
662abd8451 screen: fix glitches with nvim_buf_set_virtual_text
- virtual text disappeared when 'cursorline' was set
- virtual text was shifted when emtpy line was visually selected.
2018-10-25 09:30:48 +02:00
c03a0f5fc8 man.vim: avoid duplicate buffers, E95
Before this commit, man#init_pager() always tries to scrape the manpage
name and set the buffer name. That's much less important than avoiding
duplicate buffers and E95. And it doesn't seem to be necessary, usually.

Steps to reproduce:

    $ export MANPAGER="nvim -c 'set ft=man' -"
    $ man sleep
    :Man sleep

    Error detected while processing function man#init_pager:
    line   15:
    E95: Buffer with this name already exists

    :ls!
    1  h-  "man://SLEEP(1)"               line 4
    2 %a-  "man://sleep(1)"               line 1
2018-10-25 04:09:53 +02:00
5fbc2eeac5 CI/Travis/macOS: use default Travis-provided python/pip
Despite #9095, `brew upgrade python` broke again, somehow.

We should not bother attempting to force a python version. Instead use
whatever python Travis provides on the macOS image.
2018-10-23 02:01:12 +02:00
6dae7776ed Merge #9145 'CI, nodejs fixes' 2018-10-22 21:52:51 +02:00
f20427451e Merge pull request #9143 from bfredl/nuclear
disable clearing almost everywhere, cleanup screen.c dead code
2018-10-22 14:53:45 +02:00
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
afd1d412fa auevents.lua: keep events in alphabetical order 2018-10-22 01:30:29 +02:00
b23759b4d7 provider/nodejs: fix npm,yarn detection
For each package manager,
1. Check if they are executable before starting a job.
2. Check if the job opts are set before checking the job status
   TODO: Validate the job id.

Prioritize npm because it's faster than yarn.
Reindent the code to 2-space indent.
2018-10-22 01:30:28 +02:00
db6521a560 test: fix/speedup scrollback_spec
- fix: Use "set PROMPT=$" trick to satisfy screen:expect{any='%$'}
- speedup: Use cmd.exe instead of powershell.
2018-10-22 01:30:28 +02:00
a7b17d4b3e CI/AppVeyor: invalidate .deps if build.ps1 changes 2018-10-22 01:28:02 +02:00
57ff96be8e CI/AppVeyor: fix MSBuild hack for functional tests
PR #9087 changed the error string by removing 'Running', breaking the
MSBuild hack detecting failure for functional tests. If stdout or stderr
has a line with 'functional tests failed with error', fail the build.
2018-10-22 01:28:02 +02:00
565bbd1485 Merge #9146 from justinmk/fix-warnings 2018-10-21 23:48:43 +02:00
11ae6f418d fix warning: null arg passed to 'nonnull' param
Found by clang scan-build 5.0
2018-10-21 23:25:02 +02:00
902ca26856 fix warning: null arg passed to 'nonnull' param
Found by clang scan-build 5.0
2018-10-21 23:24:59 +02:00
f97496a21c fix warning: "Assigned value is garbage"
clang scan-build noticed that find_command() may bitmask `eap->flags`.
cmd_can_preview() only uses `ea.cmdidx`, but let's fix the warning...

Found by clang scan-build 5.0
2018-10-21 23:24:54 +02:00
2afebc4e5f fix warning: "Dead assignment"
`tv` is passed to the TYPVAL_ENCODE_CONV_FUNC_BEFORE_* macros, which
don't appear to actually use that parameter.

Found by clang scan-build 5.0
2018-10-21 23:24:50 +02:00
a8422818a7 fix warning: null pointer dereference
Found by clang scan-build 5.0
2018-10-21 23:24:46 +02:00
e0f6f46c1b fix warning: garbage/uninitialized value
According to clang scan-build, `fromcol` could be uninitialized at line
2645.

Found by clang scan-build 5.0
2018-10-21 23:24:40 +02:00
863dbbb3d4 fix warning: "Uninitialized argument"
clang scan-build thinks os_system() could set `do_profiling` flag.

Found by clang scan-build 5.0
2018-10-21 23:24:21 +02:00
25bc656988 Merge pull request #9144 from bfredl/ui_event_compat
api/ui: verify compatibility of UI events
2018-10-21 22:01:50 +02:00
bcab880bb6 api/ui: verify compatibility of UI events 2018-10-21 20:36:52 +02:00
f895b47d3f man.vim: :Man! operates on buffer contents (#9139)
mandoc may not handle quoted MANPAGER arguments correctly. E.g. with
    export MANPAGER='nvim -u NORC -c "set ft=man"'
mandoc treats `"set` and `ft=man"'` as separate tokens.

To workaround that, provide :Man! so that MANPAGER can avoid quoting.

closes #9120
2018-10-21 17:38:25 +02:00
b227a3c8d3 Merge #9141 from justinmk/pvs 2018-10-21 17:01:14 +02:00
bbd8f4e9a4 tui.c: Fix ext.set_underline_color for !has_colon_rgb
PVS/V523: The 'then' statement is equivalent to the 'else' statement.
2018-10-20 23:09:49 +02:00
92f98b5bdf screen.c: Fix PVS/V560: condition is always false 2018-10-20 23:09:49 +02:00
1cf50cbfd9 provider/nodejs: Simultaneously query npm and yarn #9054
ref #9001

Instead of serially querying npm and yarn for neovim, start both as a
job and then wait for a successful result from either.
2018-10-18 20:32:44 +02:00
edcf640f59 Merge #9130 'build: Fix for macOS 10.14/mojave'
fix #9050

Q: (from From #7891)
  > It turns out there's a difference between executing
  > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
  > and /usr/bin/clang. CMake was picking up the former and with that it left off
  > a key include path. Why?

A: /usr/bin/clang is a shim that uses libxcselect/libxcrun under the hood.
   $ otool -L /usr/bin/clang
   /usr/bin/clang:
    /usr/lib/libxcselect.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)

From https://macops.ca/developer-binaries-on-os-x-xcode-select-and-xcrun/ :
  > this shim binary loads functions in libxcselect.dylib that can locate the
  > path to the real binary, depending on how the system has been configured. One
  > part of this process is to check whether this path contains
  > usr/lib/libxcrun.dylib, and the xcrun tool, in which case it will invoke
  > xcrun to run the binary.
  > ...
  > (If all of this isn’t yet enough indirection for you, /usr/bin/xcrun itself
  > is a shim, and so libxcselect.dylib contains code to detect whether the
  > executed xcrun is a shim. Look for the __xcrun_shim segment in the __DATA
  > section output by the command: pagestuff /usr/bin/xcrun -a.)
2018-10-18 01:28:17 +02:00
3059516e8a Merge #9086 'vim-patch:8.1.0448' 2018-10-18 00:47:30 +02:00
31f63c8d55 build/macOS: provide SDK path to deps compiler
otherwise, system headers cannot be found on Mojave
they were moved from /usr/include to SDK path
2018-10-17 16:26:28 +03:00
913588466d build/macOS: fix luajit install step
prevent luajit to assigning default value to MACOSX_DEPLOYMENT_TARGET
ref #9050
2018-10-17 16:26:19 +03:00
aff64b3a52 Merge #9124 'vim-patch:8.0.1672' 2018-10-17 09:51:09 +02:00
9642903dea test: Improve 008_autocommands_spec reliability (#9129)
Sometimes 008_autocommands_spec fails like this:

    [ RUN      ] autocommands that delete and unload buffers: BufUnload, VimLeave: -- Output to stderr:
    CMake Error at /home/travis/build/neovim/neovim/cmake/RunTests.cmake:53 (message):
      functional tests failed with error: 1

The final :quit + wait() is a race. Use command() instead, which is
synchronous.  Use command('silent! ...') everywhere else too, because
it's clearer instead of feeding input and clearing the expected errors
with CTRL-L.
2018-10-17 09:24:45 +02:00
2d531d296f Merge #9131 from janlazo/vim-8.0.0670 2018-10-17 08:13:09 +02:00
e311b019a1 Merge pull request #6930 from bfredl/expectfix
tests: detect and fix fragile sceen tests, and mark intentional unchanged expect():s
2018-10-16 23:34:11 +02:00
090008f311 vim-patch:8.0.1067: try/catch in timer does not prevent it from being stopped
Problem:    Using try/catch in timer does not prevent it from being stopped.
Solution:   Reset the exception context and use did_emsg instead of
            called_emsg.
e723c42836
2018-10-16 00:03:13 -04:00
7d7691e85f vim-patch:8.0.0670: can't use input() in a timer callback
Problem:    Can't use input() in a timer callback. (Cosmin Popescu)
Solution:   Reset vgetc_busy and set timer_busy. (Ozaki Kiichi, closes vim/vim#1790,
            closes vim/vim#1129)
1e8e14552e
2018-10-15 21:22:43 -04:00
6476d081be test/old: stub CanRunVimInTerminal() 2018-10-16 00:26:01 +02:00
ee94eecbd4 vim-patch:8.1.0448: cursorline not removed when using 'cursorbind'
Problem:    Cursorline not removed when using 'cursorbind'. (Justin Keyes)
Solution:   Store the last cursor line per window. (closes vim/vim#3488)
4a5abbd613
2018-10-16 00:15:09 +02:00
c8810a51a3 tests: improve robustness of immediate successes in screen tests 2018-10-15 20:13:11 +02:00
8fd092f3ff vim-patch:8.1.0476: memory leaks in test_escaped_glob (#9127)
Problem:    Memory leaks in test_escaped_glob.
Solution:   Avoid failure when running the shell, use the sandbox.
a2aad02830
2018-10-14 16:23:46 -07:00
9c2d5f1a33 functionaltest: map error does not cancel prompt 2018-10-14 09:08:56 -04:00
e568ac7a68 Merge pull request #9123 from jamessan/unibilium-parsing-fix
third-party/unibilium: Fix parsing of extended capability entries
2018-10-13 22:11:58 -04:00
e7ba325298 vim-patch:8.0.1672: error during completion causes command to be cancelled
Problem:    Error during completion causes command to be cancelled.
Solution:   Reset did_emsg before waiting for another character. (Tom M.)
72532d354e
2018-10-13 21:47:41 -04:00
399864157b third-party/unibilium: Fix parsing of extended capability entries
In the 20180331 release, the format was slightly changed:

> 20180331
>         + improve terminfo write/read by modifying the fourth item of the
>           extended header to denote the number of valid strings in the extended
>           string table (prompted by a comment in unibilium's sources).

Since the number of valid string capabilities is not necessarily the
same as extstrslen, it's not possible to sanity check the total number
of items up front anymore.
2018-10-13 20:24:02 -04:00
c9baaa9200 Merge #9095 'CI/travis/macOS: fix missing pip3' 2018-10-13 15:59:49 -07:00
aa87dd2b89 Merge #9122 from janlazo/vim-8.1.0473 2018-10-13 14:40:16 -07:00
78418e17e9 CI/travis/macOS: silence non-error messages from homebrew
Reduces the log size by 11% (1100/9670 lines).
2018-10-13 23:34:49 +02:00
3d2493a3fd CI/travis/macOS: use "sudo rm" to remove cores
After bumping Travis macOS to 10.13, it now hangs at:

    + check_core_dumps --delete quiet
    + local del=
    + test --delete = --delete
    + del=1
    + shift
    + local app=quiet
    + test osx = osx
    ++ find /cores/ -type f -print
    + local 'cores=/cores//core.554
    /cores//core.641
    /cores//core.801'
    + test -z '/cores//core.554
    /cores//core.641
    /cores//core.801'
    + local core
    + for core in '$cores'
    + test 1 = 1
    + print_core quiet /cores//core.554
    + local app=quiet
    + local core=/cores//core.554
    + test quiet = quiet
    + echo 'Found core /cores//core.554'
    Found core /cores//core.554
    + return 0
    + rm /cores//core.554
    override r--------  root/admin for /cores//core.554?

The cores are always present on the Travis macOS 10.13 image! Hilarious.
2018-10-13 23:34:49 +02:00
e39dade80b test: adjust timer tests
Timer tests are less reliable on Travis CI macOS 10.12 (most egregious).
Also somewhat on 10.13.
2018-10-13 23:34:49 +02:00
12376cc01c memline: process_still_running is bool 2018-10-13 17:16:42 -04:00
726baefdf7 vim-patch:8.1.0473: user doesn't notice file does not exist when swap file does
Problem:    User doesn't notice file does not exist when swap file does.
Solution:   Add a note that the file cannot be found.  Make the "still
            running" notice stand out.
d6105cb408
2018-10-13 17:13:47 -04:00
0995f460fb CI/travis/macOS: fix missing pip3
homebrew or Travis changed something, now `pip3` isn't in $PATH.
`ls /usr/local/opt/python/libexec/bin` confirmed this, no matter what
brew reinstall/relink/upgrade are used.

Bumping the macOS image to 10.12 or 10.13 makes the problem go away.

    ==> Processing gcc49 formula rename to gcc@4.9
    ==> Unlinking gcc49
    ==> Moving gcc49 versions to /usr/local/Cellar/gcc@4.9
    ==> Relinking gcc@4.9
    Warning: gcc@4.9 is outdated!
    To avoid broken installations, as soon as possible please run:
      brew upgrade
    Or, if you're OK with a less reliable fix:
      brew upgrade gcc@4.9
    python info:
      Python 2.7.12
      Python 2.7.12
      ci/before_install.sh: line 18: python3: command not found
      pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
      pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
      ci/before_install.sh: line 21: pip3: command not found
      pyenv versions:
      * system (set by /Users/travis/.pyenv/version)
    Upgrade Python 3.
    To restore the stashed changes to /usr/local/Homebrew run:
      'cd /usr/local/Homebrew && git stash pop'
    ==> Caveats
    Python has been installed as
      /usr/local/bin/python3
    Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
    `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
      /usr/local/opt/python/libexec/bin
    If you need Homebrew's Python 2.7 run
      brew install python@2
    Pip, setuptools, and wheel have been installed. To update them run
      pip3 install --upgrade pip setuptools wheel
    You can install Python packages with
      pip3 install <package>
    They will install into the site-package directory
      /usr/local/lib/python3.7/site-packages
    See: https://docs.brew.sh/Homebrew-and-Python
    ==> Summary
    º  /usr/local/Cellar/python/3.7.0: 8,864 files, 153.8MB, built in 6 minutes 32 seconds
    ...
    Upgrade Python 3 pip.
    ci/before_install.sh: line 30: pip3: command not found
    travis_time🔚0d23f522:start=1538818824750644000,finish=1538819451424021000,duration=626673377000
    The command "ci/before_install.sh" failed and exited with 127 during .
    Your build has been stopped.
    /Users/travis/.travis/job_stages: line 373: shell_session_update: command not found

    ==> Processing gcc49 formula rename to gcc@4.9
    ==> Unlinking gcc49
    ==> Moving gcc49 versions to /usr/local/Cellar/gcc@4.9
    ==> Relinking gcc@4.9
    Warning: gcc@4.9 is outdated!
    To avoid broken installations, as soon as possible please run:
      brew upgrade
    Or, if you're OK with a less reliable fix:
      brew upgrade gcc@4.9
    python info:
      Python 2.7.12
      Python 2.7.12
      ci/before_install.sh: line 18: python3: command not found
      pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
      pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
      ci/before_install.sh: line 21: pip3: command not found
      pyenv versions:
      * system (set by /Users/travis/.pyenv/version)
    Upgrade Python 3.
    To restore the stashed changes to /usr/local/Homebrew run:
      'cd /usr/local/Homebrew && git stash pop'
    ==> Caveats
    Python has been installed as
      /usr/local/bin/python3
    Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
    `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
      /usr/local/opt/python/libexec/bin
    If you need Homebrew's Python 2.7 run
      brew install python@2
    Pip, setuptools, and wheel have been installed. To update them run
      pip3 install --upgrade pip setuptools wheel
    You can install Python packages with
      pip3 install <package>
    They will install into the site-package directory
      /usr/local/lib/python3.7/site-packages
    See: https://docs.brew.sh/Homebrew-and-Python
    ==> Summary
    º  /usr/local/Cellar/python/3.7.0: 8,864 files, 153.8MB, built in 6 minutes 32 seconds
    ...
    Upgrade Python 3 pip.
    ci/before_install.sh: line 30: pip3: command not found
    travis_time🔚0d23f522:start=1538818824750644000,finish=1538819451424021000,duration=626673377000
    The command "ci/before_install.sh" failed and exited with 127 during .
    Your build has been stopped.
    /Users/travis/.travis/job_stages: line 373: shell_session_update: command not found
2018-10-13 22:33:01 +02:00
d14283c7a0 Merge #9118 2018-10-13 21:07:54 +02:00
717e2db274 Revert "vim-patch:8.0.0971: 'winptydll' missing from :options"
Revert f4e2df4527.
We don't support 'winptydll' and probably don't have any reason to.
2018-10-13 21:06:26 +02:00
79a11ecfd3 Merge pull request #9121 from bfredl/virt_invalid
API: make nvim_buf_set_virtual_text handle invalid chars
2018-10-13 20:15:28 +02:00
824f36a980 vim-patch:8.0.1590: padding in list type wastes memory (#9119)
Problem:    Padding in list type wastes memory.
Solution:   Reorder struct members to optimize padding. (Dominique Pelle,
            closes vim/vim#2704)
1a84024037
2018-10-13 10:56:20 -07:00
bddcbbb571 signs: Add "numhl" argument #9113
close #9113
ref #9040
2018-10-13 19:39:56 +02:00
3d84cf6ff4 api: make nvim_buf_set_virtual_text handle invalid chars
Clients are supposed to supply only valid text, but if it is
invalid, translate it rather than messing up the screen
2018-10-13 16:37:17 +02:00
8bbb28b973 Merge pull request #8968 from ckelsel/vim-8.0.0685
[RFC] vim-patch:8.0.0685
2018-10-12 22:04:39 -04:00
64b44018fa vim-patch:8.0.1843: entry for 'wrap' in options window is wrong
Problem:    Entry for 'wrap' in options window is wrong. (John Little)
Solution:   Make the change apply locally.
8776889b5b
2018-10-12 21:55:53 -04:00
3736f14896 vim-patch:8.0.1547: undo in the options window makes it empty
Problem:    Undo in the options window makes it empty.
Solution:   Set 'undolevels' while filling the buffer. (Yasuhiro Matthew,
            closes vim/vim#2645)
9c474b2773
2018-10-12 21:52:33 -04:00
f4e2df4527 vim-patch:8.0.0971: 'winptydll' missing from :options
Problem:    'winptydll' missing from :options.
Solution:   Add the entry.
0aed9a2e2e
2018-10-12 21:49:22 -04:00
aeda13cfdf vim-patch:8.0.0685: when conversion fails written file may be truncated
Problem:    When making backups is disabled and conversion with iconv fails
            the written file is truncated. (Luo Chen)
Solution:   First try converting the file and write the file only when it did
            not fail. (partly by Christian Brabandt)
e6bf655bc4
2018-10-12 19:49:14 -04:00
4c780d663f Merge pull request #9114 from nono/vim-2f0584910c0e
vim-patch:2f0584910c0e
2018-10-12 15:39:36 -04:00
b26411bacd Merge pull request #9117 from nono/vim-25a6e8a769aa
vim-patch:25a6e8a769aa
2018-10-12 15:39:07 -04:00
b5e3fec621 vim-patch:2f0584910c0e
Update runtime files
2f0584910c
2018-10-12 21:33:13 +02:00
942f3587c3 vim-patch:25a6e8a769aa
Small runtime update
25a6e8a769
2018-10-12 21:28:32 +02:00
167b72a647 vim-patch:8.0.1489: there is no easy way to get the global directory (#9109)
Problem:    There is no easy way to get the global directory, esp. if some
            windows have a local directory.
Solution:   Make getcwd(-1) return the global directory. (Andy Massimino,
            closes vim/vim#2606)
5459129af2
2018-10-12 21:25:00 +02:00
15a71338e3 Merge #8902 'doc' 2018-10-12 17:44:44 +02:00
fb043f8ea3 Merge pull request #9096 from nono/vim-7f2e9d7c9cdf
vim-patch:7f2e9d7c9cdf
2018-10-11 22:24:52 -04:00
e52293757a doc: manpage: formatting, update --headless 2018-10-11 19:32:44 +02:00
ea12efa66b doc: mouse: cleanup, fixup
- Much of the mouse chatter in gui.txt and term.txt is redundant; other
  parts are outdated or irreleveant to Nvim.
- Fix default value of 'mousemodel' for Windows
2018-10-11 19:32:44 +02:00
ab69944978 doc/develop.txt: brevity
design-flexible and design-multi-platform sections are "obvious" by now
(and covered in much of our other resources) and I've never seen it
referenced in any discussion.
2018-10-11 19:32:44 +02:00
b12c20e466 doc: emphasize that "python" means "python 2" 2018-10-11 19:32:44 +02:00
b11f5aa119 doc: xdg, MAINTAIN.md, channel-id, job control
- tutor: emphasize K
2018-10-11 19:32:31 +02:00
384770556b Merge #9106 from janlazo/vim-8.0.1837
vim-patch:8.0.1837
2018-10-11 08:58:43 +02:00
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
0cd786b905 lint 2018-10-10 23:26:26 -04:00
25baeb39e3 vim-patch:8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Problem:    One character cmdline abbreviation not triggered after '<,'>.
Solution:   Skip over the special range. (Christian Brabandt, closes vim/vim#2320)
5e3423d192
2018-10-10 23:24:38 -04:00
e17e21e4cf vim-patch:8.1.0468: MS-Windows: filter command with pipe character fails (#9101)
Problem:    MS-Windows: Filter command with pipe character fails. (Johannes
            Riecken)
Solution:   Find the pipe character outside of quotes. (Yasuhiro Matsumoto,
            closes vim/vim#1743, closes vim/vim#3523)
0664089ecc
2018-10-10 11:32:21 +02:00
8c7c8f5962 Merge #8954 from janlazo/vim-8.0.1423 2018-10-10 11:20:43 +02:00
0394cb23e9 lint 2018-10-09 21:55:35 -04:00
c2e7f39528 vim-patch:8.0.1423: error in return not caught by try/catch
Problem:    Error in return not caught by try/catch.
Solution:   Call update_force_abort(). (Yasuhiro Matsomoto, closes vim/vim#2483)
fabaf753e2
2018-10-09 21:38:33 -04:00
f4b2b66661 Merge pull request #9079 from bfredl/tui_cursor
TUI cursor fixes: avoid memory errors after resize with invalid cursor position
2018-10-09 12:21:17 +02:00
2c680a5854 vim-patch:8.0.1779: deleting in a block selection causes problems (#9099)
Problem:    Deleting in a block selection causes problems.
Solution:   Check the length of the line before adding bd.textcol and
            bd.textlen. (Christian Brabandt, closes vim/vim#2825)
35e802e713
2018-10-09 09:04:51 +02:00
85e8fd96f4 Merge #9098 'vim-patch:8.1.{459,463,466}' 2018-10-09 09:02:26 +02:00
f181efdeaf vim-patch:8.1.0466: autocmd test fails
Problem:    Autocmd test fails.
Solution:   Do call inchar() when flushing typeahead.
6a2633b00b
2018-10-08 21:14:07 -04:00
573567aef6 vim-patch:8.1.0463: "simalt ~x" in .vimrc blocks swap file prompt
Problem:    "simalt ~x" in .vimrc blocks swap file prompt.
Solution:   Flush buffers before prompting. (Yasuhiro Matsumoto,
            closes vim/vim#3518, closes vim/vim#2192)
798184cc67
2018-10-08 17:58:35 -04:00
c64d6702e5 vim-patch:8.1.0459: Test_executable fails when there is a dog in the system
Problem:    Test_executable fails when there is a dog in the system.
Solution:   Rename the dog. (Hirohito Higashi)
a05a0d325c
2018-10-08 16:35:46 -04:00
05cbe0da30 Merge #9092 from janlazo/vim-8.0.1807 2018-10-08 21:04:46 +02:00
1892d28c60 oldtests: win: fix executable() assertions
Windows has "Read and execute" permission via ACL
but nvim and libuv do not support ACL.
Windows does not support the executable bit in chmod-style permissions
but it is safe to assume that if the file exists and is readable,
then it is most likely executable.
This means that win.ini and shell32.dll are "executable"
because they exist, are readable, and are in PATH.

PATHEXT does not affect the executable permission of a file;
it exists to run files on the shell while omitting the file extension.
Assume that PATHEXT is intended for cmd.exe only
because powershell can execute powershell files (ie. *.ps1)
without changing PATHEXT or related cmd.exe environment variable.

In the future, nvim should check the outputs of 'assoc' and 'ftype',
cmd.exe internal commands, or check the registry.
Powershell can be used for ACL if C++/C# API is too difficult to use.
2018-10-08 12:34:24 -04:00
512e0caae2 Merge #9036 'func_attr_printf' 2018-10-07 19:36:01 +02:00
6a29a7bfb0 vim-patch:7f2e9d7c9cdf
Update runtime files.
7f2e9d7c9c
2018-10-07 17:35:24 +02:00
f25f42bf03 vim-patch:8.1.0453: MS-Windows: executable() is not reliable
Problem:    MS-Windows: executable() is not reliable.
Solution:   Use $PATHEXT properly. (Yasuhiro Matsumoto, closes vim/vim#3412)
8295666dc2
2018-10-07 10:30:29 -04:00
2c84421de2 src/nvim/eval.c
src/nvim/eval/typval.c
src/nvim/fileio.c
src/nvim/main.c
src/nvim/regexp_nfa.c
src/nvim/spellfile.c

changed some EMSG[..] Macros to emsgf
2018-10-07 12:24:29 +02:00
f95e0ae926 build: adjust some messages (#9087) 2018-10-06 18:45:34 +02:00
ab3a4a4896 vim-patch:8.1.0454: resolve() was not tested with a symlink cycle
Problem:    resolve() was not tested with a symlink cycle.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3513)
2610990709
2018-10-06 11:42:15 -04:00
22804c66a5 vim-patch:8.0.1807: function to set terminal name is too long
Problem:    Function to set terminal name is too long.
Solution:   Refactor the function.  Fix typo in test.
69e056915c
2018-10-06 11:36:12 -04:00
6fe9a12268 Merge #9090 'clint.py: --stdin-filename' 2018-10-06 15:17:52 +02:00
075dc42fb2 test: replace wait() with pre-assertion in assert_term_colors 2018-10-06 11:36:09 +02:00
1bf83ea8e1 TUI: delete "first-row" workaround after resize
This was caused by cursor position being invalid right
after tui_grid_resize, which is now fixed
2018-10-06 11:36:08 +02:00
cc305213d7 TUI: always use safe cursor movement after resize
The old code could lead to a memory error in the following situation:

0. The previous cursor position was row 50 since before, on a grid
larger than 50 rows.
1. grid_resize changes the grid height to 40, and invalidly assumes the
resize moved the physical cursor to row 0
2. Some event used a operation that could move the cursor (such as clear), and
then reset the cursor to the "true" position row 50 (pointless after #8221, but
I forgot to remove it)
3. raw_line/cheap_to_print is invoked, and tries to inspect the grid at
row 50 (memory error)
4. grid_cursor_goto would have been called at this point, and set a
valid cursor position 0-39.
2018-10-06 11:29:51 +02:00
1e7eb20c91 clint: add support for --stdin-filename 2018-10-05 23:14:14 +02:00
2351b931dd clint: use fileinput for stdin
Fixes handing of "-" on Python 3:

    Traceback (most recent call last):
      File "…/Vcs/neovim/src/clint.py", line 3625, in <module>
        main()
      File "…/Vcs/neovim/src/clint.py", line 3618, in main
        ProcessFile(filename, _cpplint_state.verbose_level)
      File "…/Vcs/neovim/src/clint.py", line 3464, in ProcessFile
        'replace').read().split('\n')
      File "/usr/lib/python3.7/codecs.py", line 701, in read
        return self.reader.read(size)
      File "/usr/lib/python3.7/codecs.py", line 500, in read
        data = self.bytebuffer + newdata
    TypeError: can't concat str to bytes
2018-10-05 23:13:44 +02:00
39ad99b594 TUI: check libvte version for undercurl support #9088
Support was added in https://github.com/GNOME/vte/commit/efaf8f3c.

Fixes #9083
2018-10-05 14:54:04 +02:00
c05982cf35 vim-patch.sh: Skip Vim screen-dump files 2018-10-05 09:51:38 +02:00
c1c5c4f8e4 vim-patch:8.1.0440: remove() with a range not sufficiently tested (#9076)
Problem:    remove() with a range not sufficiently tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3497)
2bfddfc508
2018-10-04 18:40:59 +02:00
79b358facd Merge #9078 from janlazo/vim-8.0.1832 2018-10-04 11:43:56 +02:00
94e585944d Merge pull request #9081 from jamessan/embed-crash
Fix crash if --embed is used more than once
2018-10-03 10:04:54 -04:00
eb7b2c7912 Fix crash if --embed is used more than once 2018-10-03 07:29:08 -04:00
c0d835764f vim-patch:8.1.0047: no completion for :unlet $VAR
Problem:    No completion for :unlet $VAR.
Solution:   Add completion. (Jason Franklin)
1983401088
2018-10-02 22:47:47 -04:00
07fbdf4acc vim-patch:8.0.1832: cannot use :unlet for an environment variable
Problem:    Cannot use :unlet for an environment variable.
Solution:   Make it work.  Use unsetenv() if available.
            (Yasuhiro Matsumoto, closes vim/vim#2855)
137374fd65
2018-10-02 20:44:48 -04:00
65206714bc TUI: fix support for undercurl/underline color #9080 2018-10-03 00:35:25 +02:00
14ae394532 Merge pull request #9052 from blueyed/undercurl
tui: add support for undercurl and colored underline
2018-10-02 15:10:47 +02:00
171c80e227 Merge pull request #9064 from bfredl/uidoc
UI: rename ext_newgrid to ext_linegrid and add --embed UI startup recommendations
2018-10-02 10:55:47 +02:00
bab3b0ad45 ui: reserve the right to split a screen redraw into multiple batches. 2018-10-02 10:52:37 +02:00
43823acae2 ui: rename ext_newgrid to ext_linegrid 2018-10-01 21:24:15 +02:00
b98af01260 ui: update docs for safe startup procedure 2018-10-01 21:24:15 +02:00
c4006a621e tui: add support for undercurl and underline color
Fixes https://github.com/neovim/neovim/issues/7479.
2018-10-01 16:22:26 +02:00
8ac44984c4 Revert "TUI: terminfo_start: use unibi_from_term directly"
If $TERM is not defined then unibi_from_term() would crash.

Reverts 3bdc34d065.
ref #9072
2018-10-01 00:42:19 +02:00
e2647366c9 Merge pull request #9073 from blueyed/vim-patch-ff
vim-patch.sh: use --ff with git-pull
2018-09-30 18:36:19 -04:00
c2f337ce97 vim-patch.sh: use --ff with git-pull
I have `merge.ff = no` in my Git config to not use fast-forward merges
by default, but when updating the Vim sources it should not cause a
merge commit.

[ci skip]
2018-09-30 21:05:26 +02:00
3bdc34d065 TUI: terminfo_start: use unibi_from_term directly (#9072)
Avoids redundant call to `getenv("TERM")`.

Ref: e3b16d6219/uniutil.c (L203-L211)
2018-09-30 20:39:45 +02:00
3999aa755e man.vim: set $MANWIDTH=999
On some systems, mandoc disallows $MANWIDTH greater than 1000.
E.g. FreeBSD:
b7d613ae8a/contrib/mandoc/manpath.c (L312)

closes #9065
2018-09-30 18:35:19 +02:00
6c496db4b7 undo: Fix infinite loop if undo_read_byte returns EOF #2880
Problem:  Corrupt(?) persistent undofile leads to an infinite loop.
Solution: Break out of loop if undo_read_byte returns EOF (cf.
          u_read_undo() which does this too).

backtrace from lldb (@ a743297be2):

    Process 70700 stopped
    * thread 1: tid = 0x147d2d1, 0x00007fff8c8facd7 libsystem_pthread.dylib`__mtx_droplock + 209, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
        frame 0: 0x00007fff8c8facd7 libsystem_pthread.dylib`__mtx_droplock + 209
    libsystem_pthread.dylib`__mtx_droplock + 209:
    -> 0x7fff8c8facd7:  movq   %rcx, -0x50(%rbp)
       0x7fff8c8facdb:  movq   %r8, -0x58(%rbp)
       0x7fff8c8facdf:  movq   %rdx, -0x68(%rbp)
       0x7fff8c8face3:  movq   %r14, -0x60(%rbp)
    (lldb) bt
    * thread 1: tid = 0x147d2d1, 0x00007fff8c8facd7 libsystem_pthread.dylib`__mtx_droplock + 209, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
      * frame 0: 0x00007fff8c8facd7 libsystem_pthread.dylib`__mtx_droplock + 209
        frame 1: 0x00007fff8c8fab4e libsystem_pthread.dylib`pthread_mutex_unlock + 63
        frame 2: 0x00007fff915da2a4 libsystem_c.dylib`getc + 63
        frame 3: 0x000000010e6194b9 nvim`undo_read_byte(bi=0x00007fff5181a838) + 25 at undo.c:1553
        frame 4: 0x000000010e619685 nvim`unserialize_uhp(bi=0x00007fff5181a838, file_name=0x000000000f2e8060) + 421 at undo.c:840
        frame 5: 0x000000010e618abb nvim`u_read_undo(name=0x0000000000000000, hash=0x00007fff5181af80, orig_name=0x000000000f370dd0) + 1579 at undo.c:1363
        frame 6: 0x000000010e4a8db9 nvim`readfile(fname=0x000000000f370dd0, sfname=0x000000000f370dd0, from=0, lines_to_skip=0, lines_to_read=2147483647, eap=0x00007fff5181b6a0, flags=1) + 21017 at fileio.c:
    1961
        frame 7: 0x000000010e3ecc8b nvim`open_buffer(read_stdin=0, eap=0x00007fff5181b6a0, flags=0) + 603 at buffer.c:153
    ...

closes #2879
closes #2880
2018-09-30 17:54:24 +02:00
84fcba9b01 editorconfig: Fix charset name #9070
According to
https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
the possible values of the charset property are "latin1", "utf-8",
"utf-16be", "utf-16le", or "utf-8-bom" (case insensitive), not "utf_8"

It breaks https://github.com/sgur/vim-editorconfig/ for example.
2018-09-30 17:02:19 +02:00
4c57169745 dialog_changed: Remove mistaken assert #9069
It fails with `nvim -u NONE -c 'set modified' -c 'confirm q'`.

Introduced in 3dffc842f (vim-patch:8.0.0983), but the Vim patch [1] does not
have this assertion.

NULL gets handled in `dialog_msg` [2].

1: 3f9a1ff141
2: c6d36b97ba/src/nvim/ex_docmd.c (L9704-L9705)
2018-09-30 15:47:02 +02:00
c6d36b97ba Merge #9067 from janlazo/vim-8.0.1485 2018-09-30 14:48:29 +02:00
9dcd5bd9c5 vim-patch:8.1.0067: syntax highlighting not working when re-entering a buffer
Problem:    Syntax highlighting not working when re-entering a buffer.
Solution:   Do force executing autocommands when not called recursively.
a5616b0136
2018-09-30 02:58:34 -04:00
6a680548ec vim-patch:8.1.0066: nasty autocommand causes using freed memory
Problem:    Nasty autocommand causes using freed memory. (Dominique Pelle)
Solution:   Do not force executing autocommands if the value of 'syntax' or
            'filetype' did not change.
c3ffc9b8d3
2018-09-30 02:51:04 -04:00
33ef959814 vim-patch:8.1.0068: nasty autocommands can still cause using freed memory
Problem:    Nasty autocommands can still cause using freed memory.
Solution:   Disallow using setloclist() and setqflist() recursively.
2f82ca7d79
2018-09-30 02:06:43 -04:00
cf7e351c24 lint 2018-09-29 22:11:50 -04:00
458a6f58b6 globals: arg_had_last is bool 2018-09-29 16:53:55 -04:00
63b1a7d0cf vim-patch:8.0.1485: weird autocmd may cause arglist to be changed recursively
Problem:    Weird autocmd may cause arglist to be changed recursively.
Solution:   Prevent recursively changing the argument list. (Christian
            Brabandt, closes vim/vim#2472)
9e33efd152
2018-09-29 16:45:51 -04:00
6e146d4132 test: check_cores(): Fix tmp dir exclusion (#9061)
tmpdir_get() may be an absolute path, but we invoke glob() with
a relative `initial_path`.

That can lead to this error:

    [  ERROR   ] test/functional/helpers.lua @ 752: after_each
    test/helpers.lua:95: cannot open ./Xtest-tmpdir/nvim8jKCjR: No such file or directory
    stack traceback:
            test/helpers.lua:95: in function 'glob'
            test/helpers.lua:273: in function 'check_cores'
            test/functional/helpers.lua:757: in function <test/functional/helpers.lua:752>
2018-09-28 08:58:22 +02:00
b09f173d93 vim-patch:8.1.0416: sort doesn't report deleted lines (#9062)
Problem:    Sort doesn't report deleted lines.
Solution:   Call msgmore(). (Christian Brabandt, closes vim/vim#3454)
b0e982bf05
2018-09-28 08:56:54 +02:00
64a8a8fd22 Merge pull request #9056 from bfredl/tui_repr
TUI code simplification and dead code elimination
2018-09-27 12:59:31 +02:00
33887206b9 Merge #9060 from janlazo/vim-8.1.0120 2018-09-27 10:47:37 +02:00
ba17bcfefc vim-patch:8.1.0435: cursorline highlight not removed in some situation (#9059)
Problem:    Cursorline highlight not removed in some situation. (Vitaly
            Yashin)
Solution:   Reset last_cursorline when resetting 'cursorline'. (Christian
            Brabandt, closes vim/vim#3481)
8c63e0ec31
2018-09-27 10:33:39 +02:00
a1976c7390 man.vim: Start at the top #9023
fixes #9057
2018-09-27 10:08:31 +02:00
96a34daab7 lint 2018-09-27 03:17:36 -04:00
edb26f2c65 tui: eliminate scrolling region data structure
The scrolling region is always local to a single grid_scroll event, use
local variables and parameters instead.

The invocation of reset_scroll_region in grid_resize is cargo-culted to use
margin reset under exactly the same circumstances, not sure if it is necessary
though.
2018-09-27 08:50:48 +02:00
25e6d37705 vim-patch:8.1.0120: buffer 'modified' set even when :sort has no changes
Problem:    Buffer 'modified' set even when :sort has no changes.
Solution:   Only set 'modified' when lines are moved. (Jason Franklin)
dc9e955fb0
2018-09-26 21:32:45 -04:00
1b8939d233 tui: eliminate grid->attrs, use indexed cell->attr
remove dead ugrid_put
2018-09-26 19:30:21 +02:00
fc18fad74f Merge #9053 from janlazo/vim-8.1.0433 2018-09-26 08:13:21 +02:00
c6350e4150 vim-patch:8.1.0436: can get the text of inputsecret() with getcmdline()
Problem:    Can get the text of inputsecret() with getcmdline(). (Tommy Allen)
Solution:   Don't return the text.
ee91c33570
2018-09-25 23:13:29 -04:00
28ac4a99f2 vim-patch:8.1.0433: mapping can obtain text from inputsecret()
Problem:    Mapping can obtain text from inputsecret(). (Tommy Allen)
Solution:   Disallow CTRL-R = and CTRL-\ e when using inputsecret().
31cbadf74b
2018-09-25 23:09:51 -04:00
8240b8b596 terminal: Redraw statusline on title change #8973
The statusline may incorporate b:term_title, so redraw it when that
title changes.

Introduce a new function status_redraw_buf to redraw windows associated
with the current buffer.
2018-09-25 08:47:48 +02:00
7862c3ae3e Merge #9047 from jamessan/log-crash 2018-09-25 08:07:51 +02:00
7bff9a5de8 TUI: Alacritty supports DECSCUSR (#9048)
Alacritty may set TERM to"alacritty" or "alacritty-direct" if it finds its terminfo.
2018-09-25 07:54:25 +02:00
d59bf058ab log: Assert that we haven't started freeing memory before logging
This is to catch situations like the previous commit, which somehow
avoided detection by any of the CI builds.
2018-09-24 22:56:24 -04:00
1bd916df35 os_unix: Log exit code before freeing all memory
When building with -DEXITFREE, the ILOG call would result in a crash
trying to access VV_PROGPATH, which had already been released:

    (gdb) bt
    #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
    #1  0x00007f8f761082f1 in __GI_abort () at abort.c:79
    #2  0x00007f8f760ffa8a in __assert_fail_base (fmt=0x7f8f76253ec8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
        assertion=assertion@entry=0x1c74280 <.str.8> " ,\t\n", file=file@entry=0x1c73fe2 "256]'", line=line@entry=610,
        function=function@entry=0x1c742e0 <.str.9+32> "") at assert.c:92
    #3  0x00007f8f760ffb02 in __GI___assert_fail (assertion=0x1c74280 <.str.8> " ,\t\n", file=0x1c73fe2 "256]'", line=610,
        function=0x1c742e0 <.str.9+32> "") at assert.c:101
    #4  0x00000000012d87c1 in vim_getenv (name=0x2f5a460 <get_special_key_name.string+64> "NVIM_LOG_FILE") at ../src/nvim/os/env.c:608
    #5  0x00000000012d6538 in expand_env_esc (srcp=0x1c2f4e0 <.str.10+32> "",
        dst=0x2f5a460 <get_special_key_name.string+64> "NVIM_LOG_FILE", dstlen=4095, esc=false, one=false, prefix=0x0)
        at ../src/nvim/os/env.c:351
    #6  0x00000000012d85af in expand_env_esc (srcp=0x625000000100 "\004", dst=0x7ffeed88cf40 "", dstlen=32766, esc=237, one=136,
        prefix=0x60200401c8b4 <error: Cannot access memory at address 0x60200401c8b4>) at ../src/nvim/os/env.c:472
    #7  0x0000000000eb4274 in do_log_to_file (log_file=0x0, log_level=0, context=0x0, func_name=0x0, line_num=0, eol=false, fmt=0x0)
        at ../src/nvim/log.c:254
    #8  0x0000000000eb305b in open_log_file () at ../src/nvim/log.c:164
    #9  0x0000000000eb2cc6 in logmsg (log_level=<error reading variable: Cannot access memory at address 0x268>,
        context=<error reading variable: Cannot access memory at address 0x260>,
        func_name=<error reading variable: Cannot access memory at address 0x258>,
        line_num=<error reading variable: Cannot access memory at address 0x254>,
        eol=<error reading variable: Cannot access memory at address 0x253>,
        fmt=<error reading variable: Cannot access memory at address 0x248>) at ../src/nvim/log.c:109
    #10 0x00000000013022c7 in mch_free_acl (aclent=0x4f59100) at ../src/nvim/os_unix.c:132
    #11 0x0000000000efddac in getout (exitval=0) at ../src/nvim/main.c:681
    #12 0x0000000000c1bb3e in ex_quit (eap=0x7ffeed88cd00) at ../src/nvim/ex_docmd.c:6067
    #13 0x0000000000bab781 in do_one_cmd (cmdlinep=0x7ffeed88f180, flags=10, cstack=0x7ffeed88f1a0, fgetline=0x0, cookie=0x0)
        at ../src/nvim/ex_docmd.c:2228
    #14 0x0000000000b8de6d in do_cmdline (cmdline=0x7ffeed891ae2 "quit", fgetline=0x0, cookie=0x0, flags=10)
        at ../src/nvim/ex_docmd.c:592
    #15 0x0000000000b94036 in do_cmdline_cmd (cmd=0x7ffeed891ae2 "quit") at ../src/nvim/ex_docmd.c:268
    #16 0x0000000000efb900 in exe_commands (parmp=0x7ffeed890900) at ../src/nvim/main.c:1699
    #17 0x0000000000ee96b2 in main (argc=11, argv=0x7ffeed890fa8) at ../src/nvim/main.c:524
2018-09-24 22:56:19 -04:00
59b2e6d35d deps: revert to jemalloc 4.5.0 (#9035)
- Since the jemalloc upgrade to 5.1.0, I'm seeing weird behavior such as
  infinite loops inside jemalloc routines.
- VimR maintainer reported major performance regression correlated with
  jemalloc 5.1.0.

ref https://github.com/neovim/neovim/pull/7808

reverts 765515010f
2018-09-25 00:06:52 +02:00
200c8b9cca build: Unify USE_BUNDLED, USE_BUNDLED_DEPS (#9046)
It's confusing that the Makefile uses a different name than CMake.
2018-09-24 23:18:48 +02:00
8cb04c2230 fixed lint errors 2018-09-24 22:05:01 +02:00
50c22325df src/nvim/eval.c: printf error 2018-09-24 21:31:57 +02:00
affef0aab8 add func_attr_printf in :
log.c
message.c
strings.c

fixed some printf warnings in:

src/nvim/undo.c
src/nvim/eval.c
src/nvim/eval/encode.c
src/nvim/eval/typval.c
src/nvim/ex_getln.c
src/nvim/fileio.c
src/nvim/lua/executor.c
src/nvim/main.c
src/nvim/regexp_nfa.c
src/nvim/shada.c
src/nvim/spellfile.c
src/nvim/tui/terminfo.c
src/nvim/garray.h
2018-09-24 21:28:04 +02:00
044cd242e7 vim-patch:8.1.0428: the :suspend command is not tested (#9043)
Problem:    The :suspend command is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3472)
3b30168f04
2018-09-24 01:59:42 +02:00
248478f5a0 vim-patch:8.1.0429: no test for :lcd with 'shellslash' (#9041)
Problem:    No test for :lcd with 'shellslash'.
Solution:   Add a test. (Daniel Hahler, closes vim/vim#3475)
c75878c923

Related NA patch:
vim-patch:8.1.0343
2018-09-23 21:46:21 +02:00
1a1164339a Merge pull request #9039 from blueyed/undercurl
tui: code consistency in update_attrs
2018-09-23 20:30:56 +02:00
535ef67ef0 minor: tui: update_attrs: code consistency 2018-09-23 19:34:39 +02:00
f8f83579ff Merge #9034 'swapfile: always show dialog' 2018-09-23 18:51:39 +02:00
d3c90cbbb4 vim-patch:8.0.1557: printf() does not work with only one argument (#9038)
Problem:    printf() does not work with only one argument. (Daniel Hahler)
Solution:   Allow using just the format. (Ken Takata, closes vim/vim#2687)
c71807db9c
2018-09-23 17:15:17 +02:00
990c147de3 test: Do not load entire log-file into memory
With DEBUG-level logging, after `make test`, log file could be 1+ GB.
2018-09-23 15:58:02 +02:00
22c83a4de9 swapfile: Always show swap dialog (E325)
If swapfile dialog prompts for input, it must be displayed to the user.

fix #8840
fix #9027
2018-09-23 15:58:01 +02:00
c3d24368a1 shortmess+=F: Hide :bnext, :bprev fileinfo messages 2018-09-23 15:58:01 +02:00
9183e2c67e vim-patch:8.1.0389: :behave command is not tested (#9030)
Problem:    :behave command is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3429)
da1f71d75f
2018-09-23 10:55:06 +02:00
eee93f36d8 Merge #9031 from janlazo/vim-8.1.0414 2018-09-23 10:53:57 +02:00
197d907e09 func_attr.h: FUNC_ATTR_PRINTF 2018-09-23 10:49:20 +02:00
bcc174e6df vim-patch:8.0.0370: invalid memory access when setting wildchar empty
Problem:    Invalid memory access when setting wildchar empty.
Solution:   Avoid going over the end of the option value. (Dominique Pelle,
            closes vim/vim#1509)  Make option test check all number options with
            empty value.
a12e40351d
2018-09-23 00:59:11 -04:00
fe191d95a2 vim-patch:8.0.0368: not all options are tested with a range of values
Problem:    Not all options are tested with a range of values.
Solution:   Generate a test script from the source code.
2f5463df01
2018-09-22 17:12:07 -04:00
a52c38d790 vim-patch:8.1.0414: v:option_old is cleared when using :set in OptionSet autocmd
Problem:    v:option_old and v:option_new are cleared when using :set in
            OptionSet autocmd. (Gary Johnson)
Solution:   Don't trigger OptionSet recursively.
3f3fb0b147
2018-09-22 17:10:16 -04:00
2b06c32a23 Merge #8898 from justinmk/vim-8.1.0310
vim-patch:8.1.0310: file info msg with 'F' in 'shortmess'
2018-09-22 18:53:16 +02:00
c236e80cf3 Merge pull request #9024 from bfredl/embed_ui2
always wait for UI with --embed, unless --headless is supplied
2018-09-22 10:20:23 +02:00
4da5cb38d3 startup: always wait for UI with --embed, unless --headless also is supplied 2018-09-22 10:18:28 +02:00
7f990741f7 TUI: Reset cursor color when applicable #8572
Resets the TUI cursor color if:
- current 'guicursor' mode does not specify a highlight group
- cursor highlight group has "inverse" or "reverse" flag
- on Nvim exit

We interpret,  "inverse" to mean "default cursor".

Example:

    hi Cursor guifg=bg guibg=fg
    set termguicolors
    set guicursor=n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20

    * When the cursor shape is block, its color will be "inverse"
    * When the cursor shape is I-beam, its color will be `hi Cursor`.

This is useful e.g. to prevent `set listchars=eol:¬` causing your cursor
color to a low contrast color in insert mode because you cursor are
often at EOL in insert mode.

close #8572
2018-09-22 03:07:21 +02:00
28b5a637b5 test/old: test_options: Accommodate Nvim default 2018-09-21 22:35:20 +02:00
efbc33cbbc vim-patch:8.1.0310: file info msg with 'F' in 'shortmess'
Problem:    File info message not always suppressed with 'F' in 'shortmess'.
            (Asheq Imran)
Solution:   Save and restore msg_silent. (Christian Brabandt, closes vim/vim#3221)
2f0f871159

ref #8840
ref #9027
2018-09-21 22:35:09 +02:00
4fa3492a6f Merge #9023 2018-09-21 21:59:54 +02:00
ac4d5d9935 vim-patch:8.0.0682: no test for synIDtrans() (#8966)
Problem:    No test for synIDtrans().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#1796)
0b2eef24bc
2018-09-21 10:27:50 +02:00
dc256e376d man.vim: Fix very long justified lines #9023
When nroff justifies a line, it fills the line with whitespace to meet
$MANWIDTH.  With $MANWIDTH=9999, that of course results in nonsense (and
behaves poorly with 'cursorline' option).

To work around that, instead of trying to hard-justify the lines, just
replace the mega-whitespace with a fixed size of 10 spaces.

Perhaps N/Vim needs a "soft justify" feature?
2018-09-21 10:17:37 +02:00
9081cad514 man.vim: Ignore $MANWIDTH, use soft wrap #9023
fix #9017
close #9023
2018-09-21 10:17:37 +02:00
ecdd2df88a shell/logging: Fix E730 with verbose system({List}) #9009
ref https://github.com/neovim/neovim/issues/9001#issuecomment-421843790

Steps to reproduce:
    :set verbose=9
    :call system(['echo'])
    E730: using List as a String
2018-09-21 09:20:04 +02:00
ad6bbe4468 Merge #9022 from janlazo/vim-8.0.1215 2018-09-21 08:20:20 +02:00
01b2fa53f4 lint 2018-09-21 00:05:06 -04:00
300a7a4cf4 replace fallthrough comment with macro
Follow-up of vim-patch:8.0.1215
2018-09-21 00:05:06 -04:00
e55ebae373 Merge pull request #9021 from bfredl/embed_fix
startup: don't erase screen on `:hi Normal` during startup (for non-newgrid UIs)
2018-09-20 15:20:40 +02:00
6a329b0548 vim-patch:8.0.1215: newer gcc warns for implicit fallthrough
Problem:    Newer gcc warns for implicit fallthrough.
Solution:   Consistently use a FALLTHROUGH comment. (Christian Brabandt)
2f40d129bf
2018-09-20 06:59:04 -04:00
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
47d74bf32f doc: test/README.md (#9020)
- testdir location
- no old style tests are left in the fixed list in the Makefile

[ci skip]
2018-09-20 09:37:53 +02:00
8b60253ce7 cleanup/TUI: remove old unused code #9013
- Checks for ECHOE, ICANON were left over from Vim code. We already
  reference the symbols elsewhere without checking.
- newline_on_exit, intr_char: Both are vestigial remnants of Vim 4.x,
  not implemented in Nvim. intr_char is a termios/stty feature, it's
  probably not useful because users have other ways to configure their
  terminals.
2018-09-19 07:59:09 +02:00
d0401e827b Merge #9014 from justinmk/log-more 2018-09-19 07:55:46 +02:00
7c00b9efca log: RPC, input, other events 2018-09-19 01:11:09 +02:00
b9bcfa9bc8 log: rename do_log to logmsg 2018-09-19 00:58:25 +02:00
a316258d2c test: system_spec: remove redundant clear() 2018-09-19 00:49:18 +02:00
809fff94e6 Merge pull request #8754 from bfredl/embed_ui
startup: make --embed wait for first request so embedding UI can display startup messages
2018-09-18 20:52:13 +02:00
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
32ad52ae04 TUI: Skip redundant "stop" event (macOS kernel panic) (#9007)
When the TUI suspends (:suspend, CTRL-z) it calls tui_terminal_stop (but
does NOT set `ui->data=NULL`, so `tui_is_stopped` returns false). If the
host terminal dies, it sends SIGCONT, SIGHUP (usually in that order):

    ERROR 2018-09-16T19:30:17.065 25821 suspend_event:1153: SIGCONT
    ERROR 2018-09-16T19:30:17.065 25821 on_signal:162: SIGHUP
    ERROR 2018-09-16T19:30:17.155 25821 on_signal:162: SIGHUP

Race: if SIGHUP is handled before SIGCONT, it calls ui_builtin_stop()
which schedules tui_stop before the TUI was resumed?

libuv uv_close() aborts if the handle is already closed/closing.
Somehow that causes macOS to panic. #8075

    Assertion failed: (!uv__is_closing(handle)), function uv_close, file src/unix/core.c, line 117.

    Thread 0:: Dispatch queue: com.apple.main-thread
    0   libsystem_kernel.dylib        	0x00007fff67d69ec2 kevent + 10
    1   libuv.1.dylib                 	0x000000010609304d uv__io_poll + 892
    2   libuv.1.dylib                 	0x0000000106083904 uv_run + 339
    3   nvim                          	0x0000000105e76f7b loop_poll_events + 74
    4   nvim                          	0x0000000105fa5f51 ui_bridge_stop + 206
    5   nvim                          	0x0000000105fa4c00 ui_builtin_stop + 50
    6   nvim                          	0x0000000105f26ee9 mch_exit + 29
    7   nvim                          	0x0000000105eda84a getout + 518
    8   nvim                          	0x0000000105e778b3 multiqueue_process_events + 77
    9   nvim                          	0x0000000105f24c5a os_breakcheck + 49
    10  nvim                          	0x0000000105eb7ea3 auto_next_pat + 463
    11  nvim                          	0x0000000105eb7603 apply_autocmds_group + 1289
    12  nvim                          	0x0000000105eb0e8d apply_autocmds + 36
    13  nvim                          	0x0000000105f5a412 screenalloc + 1892
    14  nvim                          	0x0000000105f5b223 screen_resize + 190
    15  nvim                          	0x0000000105fa52e3 ui_refresh + 257
    16  nvim                          	0x0000000105e8c3d9 do_cmdline + 6614
    17  nvim                          	0x0000000105f03a72 normal_execute + 3996
    18  nvim                          	0x0000000105f89925 state_enter + 164
    19  nvim                          	0x0000000105efe08d normal_enter + 125
    20  nvim                          	0x0000000105ed9ffd main + 6858
    21  libdyld.dylib                 	0x00007fff67c19115 start + 1

    Thread 1 Crashed:
    0   libsystem_kernel.dylib        	0x00007fff67d68e3e __pthread_kill + 10
    1   libsystem_pthread.dylib       	0x00007fff67ea7150 pthread_kill + 333
    2   libsystem_c.dylib             	0x00007fff67cc5312 abort + 127
    3   libsystem_c.dylib             	0x00007fff67c8d368 __assert_rtn + 320
    4   libuv.1.dylib                 	0x00000001060835bf uv_close + 247
    5   nvim                          	0x0000000105fa0ebb tui_terminal_stop + 221
    6   nvim                          	0x0000000105f9ff3d tui_stop + 14
    7   nvim                          	0x0000000105e778b3 multiqueue_process_events + 77
    8   nvim                          	0x0000000105fa0c89 tui_main + 302
    9   libsystem_pthread.dylib       	0x00007fff67ea46c1 _pthread_body + 340
    10  libsystem_pthread.dylib       	0x00007fff67ea456d _pthread_start + 377
    11  libsystem_pthread.dylib       	0x00007fff67ea3c5d thread_start + 13

TODO:
- Set `ui->data = NULL` to flag UI as "stopped"? But loop_poll_events
  drains *all* fast_events, so could skip some events...
2018-09-18 08:16:38 +02:00
0a4d7ce669 Merge pull request #9011 from janlazo/vim-8.0.1428
vim-patch:8.0.{1428,1443}
2018-09-18 07:21:24 +02:00
58559a2249 vim-patch:8.0.1443: compiler complains about uninitialized variable
Problem:    Compiler complains about uninitialized variable. (Tony Mechelynck)
Solution:   Assign a value to the variable.
059fd01021
2018-09-17 22:40:29 -04:00
a00247e147 vim-patch:8.0.1428: compiler warning on 64 bit MS-Windows system
Problem:    Compiler warning on 64 bit MS-Windows system.
Solution:   Change type from "int" to "size_t". (Mike Williams)
200ea8ffaa
2018-09-17 22:38:10 -04:00
8de87c7b1c Merge pull request #8180 from bfredl/eol_text
support "virtual text" annotations (currently after EOL only)
2018-09-17 15:36:10 +02:00
45f53b370b buffer: add support for virtual text annotations 2018-09-17 10:41:29 +02:00
398b9fde85 Merge #9008 from janlazo/vim-8.0.1416 2018-09-17 10:40:48 +02:00
a0ada7dac4 lint 2018-09-16 20:55:59 -04:00
0b60372792 vim-patch:8.0.1417: test doesn't search for a sentence
Problem:    Test doesn't search for a sentence. Still fails when searching for
            start of sentence. (Dominique Pelle)
Solution:   Add paren. Check for MAXCOL in dec().
1bd999f982
2018-09-16 20:55:46 -04:00
91352b36b7 vim-patch:8.0.1416: crash when searching for a sentence
Problem:    Crash when searching for a sentence.
Solution:   Return NUL when getting character at MAXCOL. (closes vim/vim#2468)
8ada6aa929
2018-09-16 20:46:06 -04:00
9f1401e25c Merge #9004 from janlazo/vim-8.0.1374 2018-09-17 00:12:31 +02:00
17ab6dc12b Merge #9005 from janlazo/vim-8.0.1395 2018-09-16 23:44:29 +02:00
6beb5cf439 oldtests: set nrformats to Vim default 2018-09-16 17:39:50 -04:00
567c0e6cd7 runtime/colors: move check_colors.vim to runtime/tools 2018-09-16 17:08:23 -04:00
9c98e4845a vim-patch:8.0.1400: color scheme check script shows up as color scheme
Problem:    Color scheme check script shows up as color scheme.
Solution:   Move it to the "tools" subdirectory. (closes vim/vim#2457)
8ee2d36e21
2018-09-16 10:56:53 -04:00
7f762a2e09 vim-patch:8.0.1395: it is not easy to see if a colorscheme is well written
Problem:    It is not easy to see if a colorscheme is well written.
Solution:   Add a script that checks for common mistakes. (Christian Brabandt)
200d0e36bc
2018-09-16 10:54:44 -04:00
3c3c733c3c vim-patch:8.0.1374: CTRL-A does not work with an empty line
Problem:    CTRL-A does not work with an empty line. (Alex)
Solution:   Decrement the end only once. (Hirohito Higashi, closes vim/vim#2387)
5fe6bdf858
2018-09-16 10:24:59 -04:00
b2d7b70f4d loop_close: Drain thread_events (#8990)
loop_schedule_deferred may leak its allocated Event if the Event does
not get processed (when Nvim exits).

It only happens on exit, so we tried to ignore it in .asan-blacklist,
but for that isn't working for unknown reasons.

    = ==22007==ERROR: LeakSanitizer: detected memory leaks
    = Direct leak of 88 byte(s) in 1 object(s) allocated from:
    =      0 0x4ef7a3 in malloc /local/mnt/workspace/tmp/ubuntu_rel/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:67:3
    =      1 0xfcafc1 in try_malloc /home/travis/build/neovim/neovim/build/../src/nvim/memory.c:88:15
    =      2 0xfcb1e9 in xmalloc /home/travis/build/neovim/neovim/build/../src/nvim/memory.c:122:15
    =      3 0xa6e75f in loop_schedule_deferred /home/travis/build/neovim/neovim/build/../src/nvim/event/loop.c:91:19
    =      4 0x18ab048 in tui_main /home/travis/build/neovim/neovim/build/../src/nvim/tui/tui.c:377:5
    =      5 0x18fe120 in ui_thread_run /home/travis/build/neovim/neovim/build/../src/nvim/ui_bridge.c:102:3
    =      6 0x7f09e5e58183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312
    = SUMMARY: AddressSanitizer: 88 byte(s) leaked in 1 allocation(s).
2018-09-16 11:22:32 +02:00
9ed46a77e6 vim-patch:8.1.0355 Incorrect adjusting the popup menu (#8996)
Problem:    Incorrect adjusting the popup menu for the preview window.
Solution:   Compute position and height properl. (Ronan Pigott)  Also show at
            least ten items. (closes vim/vim#3414)
2018-09-16 11:15:46 +02:00
3bce5207cf vim-patch:8.0.1363: recover swap file ending with .stz #9002
Problem:    Recovering does not work when swap file ends in .stz.
Solution:   Check for all possible swap file names. (Elfling, closes vim/vim#2395,
            closes vim/vim#2396)
af903e5d49
2018-09-16 11:12:20 +02:00
dadcfe22ca Merge #8998 from janlazo/vim-8.0.1275 2018-09-14 19:21:09 +02:00
c03e8307d2 vim-patch:8.0.1201: "yL" is affected by 'scrolloff' (#8997)
Problem:    "yL" is affected by 'scrolloff'. (Eli the Bearded)
Solution:   Don't use 'scrolloff' when an operator is pending.
44cc4cf72f
2018-09-14 19:16:30 +02:00
1bc44a805a Merge #8993 from janlazo/vim-8.0.1184 2018-09-14 19:12:18 +02:00
a6d4a2fb8d lint 2018-09-14 01:02:34 -04:00
db90c0c9bf globals: KeyTyped is bool 2018-09-14 01:01:00 -04:00
20354dbd75 vim-patch:8.0.1275: CmdlineLeave autocmd prevents fold from opening
Problem:    CmdlineLeave autocmd prevents fold from opening. (Waivek)
Solution:   Save and restore KeyTyped. (closes vim/vim#2305)
c9e9c71409
2018-09-13 23:08:16 -04:00
315a8d2217 vim-patch:8.1.0175: marks test fails in very wide window
Problem:    Marks test fails in very wide window. (Vladimir Lomov)
Solution:   Extend the text to match 'columns'. (closes vim/vim#3180, closes vim/vim#3181)
bde14d8e24
2018-09-13 20:13:02 -04:00
64e74dc784 vim-patch:8.1.0168: output of :marks is too short with multi-byte chars
Problem:    Output of :marks is too short with multi-byte chars. (Tony
            Mechelynck)
Solution:   Get more bytes from the text line.
9d5185bf9d
2018-09-13 20:13:02 -04:00
a78d465927 vim-patch:8.0.1184: the :marks command is not tested
Problem:    The :marks command is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2197)
9b69f22e66
2018-09-13 20:13:02 -04:00
ae8515a544 Merge pull request #8995 from wsdjeg/patch-1
Make neovim timer ID start from 1
2018-09-13 21:17:42 +02:00
f6d5426fc8 Update eval.c 2018-09-13 21:55:20 +08:00
949bcd7810 Merge pull request #8992 from bfredl/cmd-snr
getchar: allow <SID> in <Cmd> mapping
2018-09-13 14:45:43 +02:00
5056d40b16 getchar: allow <SID> in <Cmd> mapping 2018-09-13 11:02:24 +02:00
d0c8dfc578 vim-patch:8.0.1089: range count in user command
Problem:    Cannot get range count in user command.
Solution:   Add <range> argument.
c168bd4bd3

close #8946
2018-09-13 10:20:34 +02:00
ea5337d9b5 vim-patch:8.0.1172: when E734 is given option is still set (#8988)
Problem:    When E734 is given option is still set.
Solution:   Assign NULL to "s". (Christian Brabandt)
2a6a6c3014
2018-09-13 07:52:31 +02:00
d5702a4534 Merge #8987 from justinmk/vim-8.1.0373 2018-09-13 01:51:17 +02:00
021f67df12 style: indent, then lint 2018-09-13 01:18:12 +02:00
ba27284f07 vim-patch:8.1.0374: moving the cursor is slow when 'relativenumber' is set
Problem:    Moving the cursor is slow when 'relativenumber' is set.
Solution:   Only redraw the number column, not all lines.
bd9a53c06c
2018-09-13 01:08:12 +02:00
e7a9c76ab0 vim-patch:8.1.0373: screen updating still slow when 'cursorline' is set
Problem:    Screen updating still slow when 'cursorline' is set.
Solution:   Fix setting last_cursorline.
1b7fefcbce
2018-09-13 00:32:14 +02:00
656648d855 Merge #8913 'popupmenu placement'
close #8913
2018-09-13 00:29:00 +02:00
59c5c4f006 test: popupmenu placement 2018-09-13 00:27:42 +02:00
a5fe6d34a9 vim-patch:8.0.1161 2018-09-13 00:27:32 +02:00
26b2c1fe15 popupmnu.c: Fix popup placement when preview window is below 2018-09-13 00:27:31 +02:00
7a26b9b62b vim-patch:8.1.0372: screen updating slow when 'cursorline' is set (#8986)
Problem:    Screen updating slow when 'cursorline' is set.
Solution:   Only redraw the old and new cursor line, not all lines.
90a997987d
2018-09-12 23:06:26 +02:00
9124bb755c Merge pull request #8985 from justinmk/ui-no-clearall
UI/cleanup: Remove most redraw_later_clear() calls
2018-09-12 21:37:55 +02:00
90b7d25882 do_shell, do_filter: Remove "clear screen", "wait for return" calls
The output from shell commands is already handled by the messages.c/UI
layer.
2018-09-12 08:30:26 +02:00
31c3d54668 UI/cleanup: Remove most redraw_later_clear() calls
Vim :! may "mess up the screen" because of e.g. switching between cooked
mode, but Nvim just uses pipes. So maybe we can avoid these
redraw_later_clear() CYA calls.
2018-09-12 08:30:26 +02:00
931e15471c Merge #8984 from janlazo/vim-8.1.0034 2018-09-12 07:36:28 +02:00
e15c34fbc2 lint 2018-09-11 23:04:54 -04:00
38c52c63ac vim-patch:8.0.1809: various typos
Problem:    Various typos.
Solution:   Correct the mistakes, change "cursur" to "cursor". (closes vim/vim#2887)
b946482190
2018-09-11 23:02:22 -04:00
8a845ab3ef vim-patch:8.1.0219: expanding ## fails to escape backtick
Problem:    Expanding ## fails to escape backtick.
Solution:   Escape a backtick in a file name. (closes vim/vim#3257)
2c8c681bfc
2018-09-11 22:42:17 -04:00
a021b30ede vim-patch:8.1.0034: cursor not restored with ":edit #"
Problem:    Cursor not restored with ":edit #".
Solution:   Don't assume autocommands moved the cursor when it was moved to
            the first non-blank.
adb8fbec4f
2018-09-11 19:23:04 -04:00
61df24b998 vim-patch:8.0.1154: 'indentkeys' does not work properly (#8980)
Problem:    'indentkeys' does not work properly. (Gary Johnson)
Solution:   Get the cursor line again. (Christian Brabandt, closes vim/vim#2151)
1b38344e00
2018-09-11 19:55:46 +02:00
d6b3c09129 Merge pull request #8945 from ZviRackover/fix-7401-step5
mbyte: remove mb_char2bytes
2018-09-11 09:03:09 +02:00
036051b218 Merge pull request #8974 from janlazo/vim-8.0.1377 2018-09-11 08:33:21 +02:00
77628d90a4 Merge pull request #8979 from janlazo/vim-8.1.0174 2018-09-11 08:26:24 +02:00
566f573378 move: dir in onepage() is Direction
Move vim.h in move.h to implicitly include buffer_defs.h and pos.h.
2018-09-10 23:16:16 -04:00
1a43aef9ec move: drop has_mbyte check
has_mbyte is always true in nvim.
2018-09-10 23:01:45 -04:00
e1fa242a6c vim-patch:8.1.0174: after paging up and down fold line is wrong
Problem:    After paging up and down fold line is wrong.
Solution:   Correct the computation of w_topline and w_botline. (Hirohito
            Higashi)
907dad72ef
2018-09-10 20:34:34 -04:00
d4e6a75a06 Merge pull request #8971 from bfredl/flush_on_exit
ui: flush UI state on exit
2018-09-10 18:58:06 +02:00
207cfce3de vim-patch:8.1.0011: maparg() and mapcheck() confuse empty and non-existing (#8976)
Problem:    maparg() and mapcheck() confuse empty and non-existing.
Solution:   Return <Nop> for an existing non-empty mapping. (closes vim/vim#2940)
f88a5bc102
2018-09-10 09:27:04 +02:00
d9fcd43638 Merge #8967 'vim-patch:8.0.1781' 2018-09-10 09:24:16 +02:00
0c80fead86 vim-patch:8.0.1781: file names in quickfix window are not shortened
Problem:    File names in quickfix window are not always shortened.
Solution:   Shorten the file name when opening the quickfix window. (Yegappan
            Lakshmanan, closes vim/vim#2851, closes vim/vim#2846)
a796d46f29
2018-09-10 06:45:13 +02:00
39ab7cc6fb vim-patch:8.0.1378: autoload script sources itself when defining function
Problem:    Autoload script sources itself when defining function.
Solution:   Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro
            Matsumoto, closes vim/vim#2423)
3388d33457
2018-09-09 20:30:32 -04:00
3fd9ffd368 vim-patch:8.0.1377: cannot call a dict function in autoloaded dict
Problem:    Cannot call a dict function in autoloaded dict.
Solution:   Call get_lval() passing the read-only flag.
6e65d594aa
2018-09-09 18:12:25 -04:00
bbbed9fc66 Merge #8063 from blueyed/vim-8.0.0708 2018-09-09 19:54:27 +02:00
dd0dd4d78d vim-patch:8.0.1115: crash when using foldtextresult() recursively (#8972)
Problem:    Crash when using foldtextresult() recursively.
Solution:   Avoid recursive calls. (Yasuhiro Matsumoto, closes vim/vim#2098)
495b7dd213
2018-09-09 19:22:10 +02:00
d47af7f10e CI/Codecov: disable changes status
It fails PRs which otherwise would succeed (e.g. #8971), and the Codecov
status page doesn't load, so we can't see what it's complaining about.

Reverts 5c7237640f
ref #8910
2018-09-09 19:12:32 +02:00
088ae23e4e ui: flush UI state on exit 2018-09-09 16:42:53 +02:00
c5790d9189 Merge pull request #8915 from rickyz/line_wrapping
Fix terminal line wrapping detection in the TUI.
2018-09-09 12:44:03 +02:00
e50ff1b2e9 Merge #8970 from janlazo/vim-8.0.0749 2018-09-09 12:37:28 +02:00
a8bd4de28a Merge #8969 from janlazo/vim-8.0.1006 2018-09-09 11:29:18 +02:00
329cfc3303 lint: clean-up after parent commits 2018-09-09 10:45:50 +03:00
ac13e65ae0 Remove has_mbytes local to lines changed in parent commit 2018-09-09 10:45:50 +03:00
cbdbc4f63d Refactor: Remove occurences of mb_char2bytes 2018-09-09 10:45:50 +03:00
49647ae973 digraph: delete code that checks enc_utf8
enc_utf8 is always true in nvim.
2018-09-08 23:42:14 -04:00
03bcfb54db digraph: refactor code that checks has_mbyte
has_mbyte is always true in nvim.
2018-09-08 23:42:14 -04:00
95608136d5 tests: update expected output of :digraph command 2018-09-08 22:28:35 -04:00
5f1a5d264a vim-patch:8.0.0749: some unicode digraphs are hard to remember
Problem:    Some unicode digraphs are hard to remember.
Solution:   Add alternatives with a backtick. (Chris Harding, closes vim/vim#1861)
816e7660e1
2018-09-08 21:29:47 -04:00
40e894f595 oldtests: win: fix buffer pathsep 2018-09-08 12:25:19 -04:00
3794e83d98 vim-patch:8.0.1040: cannot use another error format in getqflist()
Problem:    Cannot use another error format in getqflist().
Solution:   Add the "efm" argument to getqflist(). (Yegappan Lakshmanan)
3653822546
2018-09-08 11:52:59 -04:00
a8b996160d lint 2018-09-08 11:31:55 -04:00
213a66441f vim-patch:8.0.1031: "text" argument for getqflist() is confusing
Problem:    "text" argument for getqflist() is confusing. (Lcd47)
Solution:   Use "lines" instead. (Yegappan Lakshmanan)
2c809b7c7d
2018-09-08 11:31:24 -04:00
1790f81f56 vim-patch:8.0.1029: return value of getqflist() is inconsistent
Problem:    Return value of getqflist() is inconsistent.  (Lcd47)
Solution:   Always return an "items" entry.
da73253a0b
2018-09-08 10:43:30 -04:00
fe81b926d3 test_largefile.vim: adjust comment to run it 2018-09-08 16:43:27 +02:00
53eb835e8f vim-patch:8.0.1326: largefile test fails on CI, glob test on MS-Windows
Problem:    Largefile test fails on CI, glob test on MS-Windows.
Solution:   Remove largefile test from list of all tests. Don't run
            Test_glob() on non-unix systems.  More cleanup. (Yegappan
            Lakshmanan, closes vim/vim#2354)
6e77df2d85
2018-09-08 16:43:27 +02:00
2c64f01674 vim-patch:8.0.0708: some tests are old style
Problem:    Some tests are old style.
Solution:   Change a few tests from old style to new style. (pschuh,
            closes vim/vim#1813)

292eff0c5a
2018-09-08 16:43:27 +02:00
9bf2741ba4 vim-patch:8.0.1023: it is not easy to identify a quickfix list
Problem:    It is not easy to identify a quickfix list.
Solution:   Add the "id" field. (Yegappan Lakshmanan)
a539f4f1ae
2018-09-08 08:13:48 -04:00
b4acf609ac vim-patch:8.0.1006: quickfix list changes when parsing text with 'erroformat'
Problem:    Cannot parse text with 'erroformat' without changing a quickfix
            list.
Solution:   Add the "text" argument to getqflist(). (Yegappan Lakshmanan)
7adf06f4e2
2018-09-07 22:59:12 -04:00
50eadfe2e9 Merge #8962 from janlazo/vim-8.0.0733 2018-09-07 09:51:59 +02:00
a9d83e8112 ASAN/LeakSanitizer: fix typo in blacklist 2018-09-07 08:34:34 +02:00
d99a268914 vim-patch:8.0.0922: quickfix list always added after current one
Problem:    Quickfix list always added after current one.
Solution:   Make it possible to add a quickfix list after the last one.
            (Yegappan Lakshmanan)
55b6926450
2018-09-07 00:00:22 -04:00
4eb923bfe0 vim-patch:8.0.0904: cannot set a location list from text
Problem:    Cannot set a location list from text.
Solution:   Add the "text" argument to setqflist(). (Yegappan Lakshmanan)
ae33833850
2018-09-06 22:36:49 -04:00
2be853d486 lint 2018-09-06 20:26:30 -04:00
c0d26ba4f9 main: advance in edit_buffers() is bool 2018-09-06 20:25:45 -04:00
cfb2828897 window: refactor boolean variables in win_close()
free_buf (param) and help_window (variable) are bool.
2018-09-06 20:24:29 -04:00
27d755cfd1 Merge pull request #8964 from bfredl/generated-sources
cmake: add "generated-sources" target
2018-09-06 21:34:18 +02:00
9e8f9dd5d4 cmake: add "generated-sources" target
This is intended to be used with source introspection tools like
clangd, where it would useful to regenerate headers and source files,
which introspection results depend on, without making a full
rebuild which takes much longer time than just generating headers.
2018-09-06 20:54:53 +02:00
dc15dcffad vim-patch:8.0.0782: using freed memory in quickfix code
Problem:    Using freed memory in quickfix code. (Dominique Pelle)
Solution:   Handle a help window differently. (Yegappan Lakshmanan)
d28cc3f55d
2018-09-06 06:15:35 -04:00
bb519fb261 vim-patch:8.0.0733: can only add entries to one list in the quickfix stack
Problem:    Can only add entries to one list in the quickfix stack.
Solution:   Move state variables from qf_list_T to qf_list_T. (Yegappan
            Lakshmanan)
a7df8c70c8
2018-09-05 23:02:14 -04:00
5de6f97408 Merge #8961 from ZyX-I/fix-8956 2018-09-06 01:30:53 +02:00
ZyX
a9fa66b5b8 functests: Add tests 2018-09-06 02:12:36 +03:00
ZyX
b728aad212 runtime/msgpack: Fix inf/nan regexp
Not making minus sign optional as inf/nan without optional minus should’ve
already been handled by the very first case.
2018-09-06 02:12:36 +03:00
51d42917f0 test/win: job_spec: increase jobwait() timeout
powershell is slow, and this timeout is "worst case" so it doesn't make
the tests more costly, only avoids a false-positive.

close #8958
2018-09-05 22:05:05 +02:00
55a721512b Merge #8953 from janlazo/vim-8.0.1190 2018-09-05 09:45:14 +02:00
bfe82d4650 Merge #8888 from janlazo/vim-8.0.1020 2018-09-05 09:38:34 +02:00
73849ceeb9 Merge #8948 from janlazo/vim-8.1.0331 2018-09-05 09:24:36 +02:00
30b70de39e Merge #8920 from janlazo/vim-8.0.0998 2018-09-05 09:19:06 +02:00
8b76034f3b Merge #8931 from justinmk/api-error-overrun 2018-09-05 08:37:46 +02:00
608ff261ad test: API validation: assert exact string
expect_err() matches against a pattern. Terminate the pattern with "$"
to check against buffer overrun.

ref #8931
2018-09-05 08:04:15 +02:00
db17d2c0fa API: Avoid overrun when formatting error-message
msgpack_rpc_to_object (called by handle_request .. msgpack_rpc_to_array)
always NUL-terminates API Strings.
But handle_request .. msgpack_rpc_get_handler_for operates on a raw
msgpack_object, before preparation.
2018-09-05 08:04:15 +02:00
9584674569 vim-patch:8.0.1595: no autocommand triggered before exiting
Problem:    No autocommand triggered before exiting.
Solution:   Add the ExitPre autocommand event.
12a96de430
2018-09-04 22:40:48 -04:00
b6e83ba284 vim-patch:8.1.0334: 'autowrite' takes effect when buffer is not to be written
Problem:    'autowrite' takes effect when buffer is not to be written.
Solution:   Don't write buffers that are not supposed to be written. (Even Q
            Jones, closes vim/vim#3391)  Add tests for 'autowrite'.
8c9e7b00f6
2018-09-04 22:40:48 -04:00
4d6ba4d06a vim-patch:8.0.1190: unusable after opening new window in BufWritePre event
Problem:    Vim becomes unusable after opening new window in BufWritePre
            event.
Solution:   Call not_exiting(). (Martin Tournoij, closes vim/vim#2205)
            Also for "2q" when a help window is open.  Add a test.
2c33d7bb69
2018-09-04 22:40:48 -04:00
f3c895569d lint 2018-09-04 21:33:39 -04:00
d29b71a1de ex_cmds: const variables in find_help_tags()
keep_lang (param) is bool.
2018-09-04 21:32:08 -04:00
9d7dc49db1 vim-patch:8.1.0235: more help tags that jump to the wrong location
Problem:    More help tags that jump to the wrong location.
Solution:   Add more exceptions and a table for "expr-" tags. (Hirohito
            Higashi)
3bf5e6a4c8
2018-09-04 21:16:34 -04:00
106b308ed4 vim-patch:8.0.1792: MS-Windows users expect -? to work like --help
Problem:    MS-Windows users expect -? to work like --help.
Solution:   Add -?. (Christian Brabandt, closes vim/vim#2867)
c3e81694fc

Include runtime/ changes from 85eee130f4 to pass 8.1.0231 tests.
2018-09-04 21:16:34 -04:00
24b16ed35e vim-patch:8.1.0231: :help -? goes to help for -+
Problem:    :help -? goes to help for -+.
Solution:   Add -? to list of special cases. (Hirohito Higashi)
a5bc38b8c1
2018-09-04 21:16:34 -04:00
5c90bbae2a vim-patch:8.0.1383: local additions in help skips some files
Problem:    Local additions in help skips some files. (joshklod)
Solution:   Check the base file name length equals.
35c5e8155d
2018-09-04 21:16:34 -04:00
d4cc4e0871 vim-patch:8.0.0998: strange error when using K while only spaces are selected
Problem:    Strange error when using K while only spaces are selected.
            (Christian J. Robinson)
Solution:   Check for blank argument.
a4f99f5a8b
2018-09-04 21:16:34 -04:00
9fe8e3cb2f CI/AppVeyor: Disable gcov build for PRs
Currently the "gcov" build always fails on AppVeyor. It makes the builds
very slow, so disable it for PRs until the problem is fixed.

closes #8911
closes #8912
2018-09-04 21:19:30 +02:00
65e4c9afe2 Merge #8955 'deps: update jemalloc, libvterm' 2018-09-04 21:05:20 +02:00
f8e042f732 tests: call getchar(1) in timer callback
Test changes from 8.0.1020 and 8.0.1048.
2018-09-04 10:00:17 -04:00
96b3dbcea5 lint 2018-09-04 10:00:17 -04:00
3b744f1ea2 vim-patch:8.1.0052: when mapping to <Nop> times out the next mapping is skipped
Problem:    When a mapping to <Nop> times out the next mapping is skipped.
Solution:   Reset "timedout" when waiting for a character. (Christian
            Brabandt, closes vim/vim#2921)
83f4cbd973
2018-09-04 10:00:17 -04:00
efa132da82 vim-patch:8.0.1048: no test for what 8.0.1020 fixes
Problem:    No test for what 8.0.1020 fixes.
Solution:   Add test_feedinput().  Add a test. (Ozaki Kiichi, closes vim/vim#2046)
5e80de3f3e
2018-09-04 10:00:17 -04:00
c87510b0e8 vim-patch:8.0.1020: when a timer calls getchar(1) input is overwritten
Problem:    When a timer calls getchar(1) input is overwritten.
Solution:   Increment tb_change_cnt in inchar(). (closes vim/vim#1940)
0f0f230012
2018-09-04 10:00:17 -04:00
90519107f2 Merge #8921 'highlight: Fix after-EOL matches at cursor' 2018-09-04 07:05:20 +02:00
3b156664b5 build/MSVC: remove libvterm-Fix-escape-sequences-for-MSVC.patch
Not needed after libvterm commit:
487f21dbf6
2018-09-04 06:41:55 +02:00
9de949ea3e deps: update libvterm
Changes: a9c7c6fd20...3f62ac6b7b

- "better handling of double-width unicode characters"
  cfde7f2095
  https://github.com/neovim/neovim/issues/4976#issuecomment-418170022
- "Fix implementation of query on bracketed paste mode"
  005845cd58
- compiler-warning fixes
- FocusIn/FocusOut reporting
  1343c8c0f9

Fixes #4976 (cursor "off-by-one" behavior after  (Wide unicode glyphs)
in :terminal)
2018-09-04 10:41:51 +02:00
765515010f deps: update to jemalloc 5.1.0
ref https://github.com/neovim/neovim/pull/7808
2018-09-04 10:41:51 +02:00
8fd3725cc8 tui: Hint wrapped lines to terminals.
Previously, when neovim would wrap a line across multiple lines,
terminal emulators could not detect that the lines represent a single
wrapped line as opposed to several separate lines. As a result, many
terminals' selection/copying functionality would treat a wrapped line as
several newline-delimited lines.

Fix this by reenabling a "special trick" from Vim. When a line is
wrapped, write the last character of that line followed by the first
character of the next line to the terminal. This hints to the terminal
that the next line is a continuation of the current line.

Extends the raw_line event with a "wrap" parameter which controls when
to do wrap hinting.
2018-09-03 03:25:02 -07:00
7ff63fcdc0 Merge pull request #8942 from bfredl/attr_state
screen.lua: extend snapshot_util() to work with extension state
2018-09-03 12:16:49 +02:00
2694fa759f Add tests for highlighting after the end of a line. 2018-09-03 03:13:03 -07:00
6c3b0fb831 vim-patch:8.1.0344: 'hlsearch' highlighting has a gap after /$
Problem:    'hlsearch' highlighting has a gap after /$.
Solution:   Remove suspicious code. (Ricky Zhou, closes vim/vim#3400)

7ee3f15b21
2018-09-03 03:13:03 -07:00
74937589d0 screen.lua: extend snapshot_util() to work with extension state
Simplify handling of attributes: collect new attributes in the same pass
as screen lines are rendered, instead of using two passes.
2018-09-03 10:36:55 +02:00
3e1daa84e9 oldtests: win: fix pathsep in :mkview test 2018-09-03 00:10:13 -04:00
6deddb26de vim-patch:8.1.0336: mkview test still fails on CI
Problem:    mkview test still fails on CI.
Solution:   Ignore curswant, don't see another solution.
dd5d18eadf
2018-09-02 23:35:02 -04:00
d7432145ff vim-patch:8.1.0335: mkview test fails on CI
Problem:    mkview test fails on CI.
Solution:   Attempt to force recomputing curswant after folding.
2bf4fe07b6
2018-09-02 23:33:56 -04:00
bd7371f460 vim-patch:8.1.0333: :mkview does not restore cursor properly after "$"
Problem:    :mkview does not restore cursor properly after "$". (Dominique
            Pelle)
Solution:   Position the cursor with "normal! $".
92c1b69641
2018-09-02 23:30:42 -04:00
5c9cd009e1 vim-patch:8.1.0331: insufficient test coverage for :mkview and :loadview
Problem:    Insufficient test coverage for :mkview and :loadview.
Solution:   Add tests. (Dominique Pelle, closes vim/vim#3385)
627cb6a6b3
2018-09-02 21:12:09 -04:00
f62d4865d8 Merge #8934 'Remove mb_ptr2len_len, mb_ptr2cells, mb_ptr2cells_len' 2018-09-01 19:46:46 +02:00
064495a53a doc/defaults: document ttimeoutlen default (#8943) 2018-09-01 18:17:49 +02:00
71bb4fd481 man.vim: guard against reload (#8940)
Some plugins attempt to reload autoloaded scripts.
Use a guard to prevent this.

fix #8939
2018-09-01 11:42:43 +02:00
a3549286b2 lint: clean-up after parent commits 2018-08-31 22:47:50 +03:00
1015aa6ff3 Remove has_mbytes from lines local to parent commit 2018-08-31 22:47:49 +03:00
1c03a06487 Refactor: remove mb_ptr2len_len, mb_ptr2cells and mb_ptr2cells_len
Remove occurences of these macros.
2018-08-31 22:45:10 +03:00
e30ccd56d9 shell.c: fix scan-build NPE warning #8932 2018-08-29 22:00:38 +02:00
93ee31bf65 spellfile.c: Remove dead assignment #8933
Looks like a harmless accident of ebe5051977 (which was a followup to its parent  fa7ace446e).
2018-08-29 21:56:06 +02:00
c5c3b0b8f9 Fix dead assignment. 2018-08-29 16:54:21 +05:30
17ce06d1c9 Merge #8930 'vim-patch:8.1.0022' 2018-08-29 08:11:16 +02:00
81c2cbe099 getchar: fix {read,copy,start}_redo() params
Update function signature as follows:
- read_redo(bool, bool)
- copy_redo(bool)
- start_redo(long, bool)
2018-08-29 00:27:07 -04:00
9fab77c7fb globals: cmd_silent is bool 2018-08-29 00:17:30 -04:00
7c38f60b3b vim-patch:8.1.0022: repeating put from expression register fails
Problem:    Repeating put from expression register fails.
Solution:   Re-evaluate the expression register. (Andy Massimino,
            closes vim/vim#2945)
833093bfb0
2018-08-29 00:08:15 -04:00
461d46d8ac Merge #8863 'refactor: Remove mb_head_off()' 2018-08-28 23:43:04 +02:00
a2403a0ed9 Merge #8863 'refactor: Remove mb_head_off() ' 2018-08-28 23:37:30 +02:00
885ca3b7a6 Merge #8929 from janlazo/vim-8.0.0983 2018-08-28 22:39:02 +02:00
acdede50ce test: Dump $NVIM_LOG_FILE contents (#8926)
Do this at the test-framework level instead of CI (Travis) scripts.
Then it works for QuickBuild and AppVeyor.

ref eb6dd3e42d
2018-08-28 22:13:34 +02:00
2996179482 lint 2018-08-28 16:09:26 -04:00
60f1acd0ef ex_cmds2: checkall in dialog_changed() is bool 2018-08-28 16:01:16 -04:00
5a1c93584f vim-patch:8.1.0214 fixup: remove feature-guard
FEAT_AUTOCHDIR is not defined for Nvim.

ref #8927
2018-08-28 21:49:41 +02:00
87904ae3c4 vim-patch:8.1.0214 (#8927)
Problem:    +autochdir feature not reported by has() or :version.
Solution:   Add the feature in the list.
Author:     Bram Moolenaar <Bram@vim.org>

83ec2a7f5f
2018-08-28 21:41:30 +02:00
3dffc842fe vim-patch:8.0.0983: unnecessary check for NULL pointer
Problem:    Unnecessary check for NULL pointer.
Solution:   Remove the NULL check in dialog_changed(), it already happens in
            dialog_msg(). (Ken Takata)
3f9a1ff141
2018-08-28 15:41:15 -04:00
0a77dc7e05 options: do not use gettext for +printheader (#8928)
It is not translatable as of vim-patch:8.0.1001.
2018-08-28 21:33:32 +02:00
643ef257b3 API: nvim_unsubscribe(): Handle unknown events #8745
close #8745
2018-08-28 10:20:19 +02:00
10e885bdfc vim-patch:8.0.1001: setting 'encoding' makes 'printheader' invalid (#8925)
Problem:    Setting 'encoding' makes 'printheader' invalid.
Solution:   Do not translate the default value of 'printheader'. (Yasuhiro
            Matsumoto, closes vim/vim#2026)
0903d56f5c
2018-08-28 08:51:22 +02:00
dee0d7f4e9 Merge pull request #8891 from bfredl/keyexpect
use keyword args for screen:expect{...} + hl fixup for ext_cmdline
2018-08-27 16:02:22 +02:00
3d88287e30 tests: introduce screen:expect{...} form 2018-08-27 15:15:49 +02:00
03978a0f29 ext_cmdline: use new highlight representation for cmdline_block
Make sure cmdline updates will receive highlight specifications the same
way as screen cells. This is controlled by the ext_newgrid option so
nothing is changed by default (as screen cells are also not changed by
default).  This was already done for the cmdline itself in #8221, this
extends it to cmdline_block. Which currently doesn't store highlights,
but the placeholder should be one that makes sense for future use.
2018-08-27 11:51:52 +02:00
a8b4d76a0a health.vim: Detect missing init.vim
closes #4877
2018-08-27 01:35:58 +02:00
cbc8c0c625 vim-patch:8.1.0322: Test_copy_winopt() does not restore 'hidden' (#8918)
Problem:    Test_copy_winopt() does not restore 'hidden'.
Solution:   Restore the option, fix indent. (Ozaki Kiichi, closes vim/vim#3367)
7cb33a14c9
2018-08-27 01:14:33 +02:00
cd1d9d8a7c Merge #8916 from janlazo/vim-8.1.0144 2018-08-26 21:20:22 +02:00
246fa3e81d oldtests: comment out test for 'set cpo+=.'
nvim does not support POSIX cpoptions.
2018-08-26 14:41:50 -04:00
ff8e239493 vim-patch:8.1.0144: the :cd command does not have good test coverage
Problem:    The :cd command does not have good test coverage.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#2972)
b2e0c94a4d
2018-08-26 09:56:34 -04:00
fa285bde45 win/dist: nvim-qt v0.2.10 (#8901)
ref https://github.com/equalsraf/neovim-qt/issues/417
2018-08-26 15:29:00 +02:00
eb663d5367 Merge #8903 from janlazo/vim-8.0.0883 2018-08-26 15:20:59 +02:00
8f058dca89 Merge #8904 from janlazo/vim-8.0.0900 2018-08-26 15:17:54 +02:00
7898de5211 vim-patch:8.1.0327: the "g CTRL-G" command isn't tested much (#8914)
Problem:    The "g CTRL-G" command isn't tested much.
Solution:   Add more tests. (Dominique Pelle, closes vim/vim#3369)
0529583ff1
2018-08-26 15:05:55 +02:00
8a677f8a4b src/nvim/testdir/Makefile: define NEW_TESTS automatically (#8909)
This avoids having to maintain this manually.

Tried to bring this upstream to Vim, but it does not work with non-GNU
make apparently in an easy way (https://github.com/vim/vim/pull/3376).

For Neovim GNU make can be used for this apparently.

diff (generated via):

    $(shell printf '%s\n' $(NEW_TESTS) > 1)
    $(shell printf '%s\n' $(NEW_TESTS2) > 2)
    $(error $(shell echo $(NEW_TESTS) | wc -c) $(shell echo $(NEW_TESTS2) | wc -c))

Changes:

 - Removed, already included in test_alot:
   - test_changedtick.res
   - test_filter_map.res
   - test_findfile.res
   - test_ga.res
   - test_lambda.res
   - test_put.res
   - test_recover.res
   - test_tabpage.res

 - Added (apparently forgotten to be added to NEW_TESTS):
   - test_breakindent.res: added in 49b671f8f
   - test_display.res: added in a0c7e35ee
   - test_help.res, added in 41bffeacf
   - test_lispwords.res, added in 54b9510e0
   - test_textformat.res, added in ef39f854d
2018-08-26 14:45:25 +02:00
5c7237640f CI/Codecov: enable changes status (#8910)
This helps to identify unexpected changes.
2018-08-26 14:24:22 +02:00
c581517f8a Merge #8908 'build/doc: generate vimindex.html' 2018-08-26 14:08:45 +02:00
e85bed0830 vim-patch:8.0.1214: accessing freed memory when EXITFREE is set
Problem:    Accessing freed memory when EXITFREE is set and there is more than
            one tab and window. (Dominique Pelle)
Solution:   Free options later.  Skip redraw when exiting.
4f1982800f
2018-08-25 10:52:36 -04:00
add2a62398 runtime/doc: fix broken links found by make html 2018-08-25 16:38:24 +02:00
2e5c299f11 warn about tests without libintl 2018-08-25 23:13:34 +09:00
ff18d3b827 build/doc: generate vimindex.html
This note in runtime/doc/Makefile explains the special-case:

    index.html is the starting point for HTML, but for the help files it
    is help.txt.  Therefore use vimindex.html for index.txt.

fix #8907
2018-08-25 15:25:49 +02:00
16b55d2e9d vim-patch:8.0.1468: illegal memory access in del_bytes()
Problem:    Illegal memory access in del_bytes().
Solution:   Check for negative byte count. (Christian Brabandt, closes vim/vim#2466)
191f18bad0
2018-08-24 23:02:51 -04:00
13f028e416 vim-patch:8.0.0900: :tab options doesn't open a new tab page
Problem:    :tab options doesn't open a new tab page. (Aviany)
Solution:   Support the :tab modifier. (closes vim/vim#1960)
ab6c8587ba
2018-08-24 22:15:42 -04:00
bdffa01b52 vim-patch:8.0.1404: invalid memory access on exit
Problem:    Invalid memory access on exit when autocommands wipe out a buffer.
            (gy741, Dominique Pelle)
Solution:   Check if the buffer is still valid. (closes vim/vim#2449)
606d45ccd8
2018-08-24 21:19:13 -04:00
59b53e7bc7 vim-patch:8.0.1228: invalid memory access in GUI test
Problem:    Invalid memory access in GUI test.
Solution:   Check that the row is not outside of the screen.
0e19fc07e7
2018-08-24 20:41:52 -04:00
cba3025c43 vim-patch:8.0.0883: invalid memory access with nonsensical script
Problem:    Invalid memory access with nonsensical script.
Solution:   Check "dstlen" being positive. (Dominique Pelle)
1c864093f9
2018-08-24 20:03:29 -04:00
c0157e8fe0 remote/host.vim: specify {nosuf} for globpath() (#8882) 2018-08-24 10:17:59 +02:00
e7d020e08f Merge #8894 from janlazo/editorconfig-makefile 2018-08-24 09:12:08 +02:00
2ab80b944b Merge #8896 from janlazo/vim-8.1.0083 2018-08-24 09:09:46 +02:00
748cd91c20 search: fix types of findsent() variables
dir (param) is of type Direction (enum).
cpo_J, found_dot, noskip (local var) are bool. cpo_J is const.
startlnum (local var) is const int. Declare it in same scope as cpo_J.
2018-08-23 19:07:19 -04:00
42428b3f85 vim-patch:8.1.0083: "is" and "as" have trouble with quoted punctuation
Problem:    "is" and "as" have trouble with quoted punctuation.
Solution:   Check for punctuation before a quote. (Jason Franklin)
8516071124
2018-08-23 18:50:29 -04:00
925c153f86 doc: remove mention of "drop" register (#8893)
close #8881
2018-08-23 19:49:23 +02:00
c5b5eaabad oldtests: reindent Makefile to 8-width tab 2018-08-23 13:48:47 -04:00
13673ea78d editorconfig: Makefile uses 8-width tab indent 2018-08-23 13:47:15 -04:00
e89df8a54d vim-patch:8.0.1682: auto indenting breaks inserting a block (#8892)
Problem:    Auto indenting breaks inserting a block.
Solution:   Do not check for cursor movement if indent was changed. (Christian
            Brabandt, closes vim/vim#2778)
8c87a2b1fe
2018-08-23 19:13:05 +02:00
a5d00527a1 Merge pull request #8887 from janlazo/vim-8.0.1242
[RDY] vim-patch:8.0.1242
2018-08-23 10:48:06 -04:00
dfbb75fdab Merge pull request #8889 from janlazo/vim-8.0.0999
[RDY] vim-patch:8.0.{999,1041,1043,1044}
2018-08-23 10:45:58 -04:00
6c8851be4e lint 2018-08-23 10:00:53 -04:00
27fbffeb4f vim-patch:8.0.1044: warning for uninitialized variable
Problem:    Warning for uninitialized variable. (John Marriott)
Solution:   Initialize ind_pre.
2254a8ad0c
2018-08-23 10:00:53 -04:00
fb68c97ce8 vim-patch:8.0.1043: warning for uninitialized variable
Problem:    Warning for uninitialized variable. (John Marriott)
Solution:   Move code to check indent inside "if".
4ec86ddd77
2018-08-23 10:00:53 -04:00
d677ae5f64 vim-patch:8.0.1041: bogus characters when indenting during visual-block append
Problem:    Bogus characters appear when indenting kicks in while doing a
            visual-block append.
Solution:   Recompute when indenting is done. (Christian Brabandt)
e2e69e4813
2018-08-23 10:00:53 -04:00
fe57a8a4e4 vim-patch:8.0.0999: indenting raw C++ strings is wrong
Problem:    Indenting raw C++ strings is wrong.
Solution:   Add special handling of raw strings. (Christian Brabandt)
dde81312b0
2018-08-23 04:09:24 -04:00
012cd35bfb vim-patch:8.0.1151: "vim -c startinsert!" doesn't append (#8886)
Problem:    "vim -c startinsert!" doesn't append.
Solution:   Correct line number on startup. (Christian Brabandt, closes vim/vim#2117)
09ca932f8e
2018-08-22 19:33:06 +02:00
eaf8e57cf9 vim-patch:8.0.1242: function argument with only dash is seen as number zero
Problem:    Function argument with only dash is seen as number zero. (Wang
            Shidong)
Solution:   See a dash as a string. (Christian Brabandt)
ffd99f729b
2018-08-22 13:06:04 -04:00
a466bd2927 Merge #8880 from janlazo/vim-8.0.1331 2018-08-22 08:40:56 +02:00
54e6ef73f0 vim-patch:8.0.1790: 'winfixwidth' is not always respected by :close
Problem:    'winfixwidth' is not always respected by :close.
Solution:   Prefer a frame without 'winfixwidth' or 'winfixheight'. (Jason
            Franklin)
c136af29c0
2018-08-21 22:36:31 -04:00
b5fc21dbf0 vim-patch:8.0.1707: when 'wfh' is set ":bel 10new" scrolls window
Problem:    When 'wfh' is set ":bel 10new" scrolls window. (Andrew Pyatkov)
Solution:   Set the fraction before changing the window height. (closes vim/vim#2798)
98da6ecab9
2018-08-21 12:44:06 -04:00
39777ad4b8 vim-patch:8.0.1426: "gf" and <cfile> don't accept ? and & in URL
Problem:    "gf" and <cfile> don't accept ? and & in URL. (Dmitrii Tcyganok)
Solution:   Check for a URL and allow for extra characters. (closes vim/vim#2493)
9e3dfc6501
2018-08-21 12:17:17 -04:00
387c3be82a vim-patch:8.0.1331: possible crash when window can be zero lines high
Problem:    Possible crash when window can be zero lines high. (Joseph
            Dornisch)
Solution:   Only set w_fraction if the window is at least two lines high.
3679c17917
2018-08-21 11:57:04 -04:00
19aa8ccf85 Merge pull request #8879 from janlazo/vim-8.1.0303
[RDY] vim-patch:8.1.0303
2018-08-21 11:29:24 -04:00
822ae1a81c vim-patch:8.1.0303: line2byte() is wrong for last line with 'noeol'
Problem:    line2byte() is wrong for last line with 'noeol' and 'nofixeol'.
Solution:   Fix off-by-one error. (Shane Harper, closes vim/vim#3351)
c26f7c6053
2018-08-21 10:20:17 -04:00
3807520001 Merge #8877 from janlazo/vim-8.0.1441 2018-08-21 09:33:09 +02:00
0c9888cdbe vim-patch:8.1.0110: file name not displayed with ":file" (#8878)
Problem:    File name not displayed with ":file" when 'F' is in 'shortmess'.
Solution:   Always display the file name when there is no argument (Christian
            Brabandt, closes vim/vim#3070)
fc0896093c

closes #8817
closes #8873
2018-08-21 09:25:48 +02:00
8872fce120 vim-patch.sh: Also check for .git/ directory
In the case of nested repos, such as when "neovim/" repo contains
"neovim/.vim-src/" repo,
    git rev-parse --show-toplevel
returns the fullpath to the "neovim/" repo, which failed the condition.

ref #8875
ref c05d7153d3
2018-08-21 08:37:49 +02:00
150b1b7b40 Merge #8861 from janlazo/vim-8.0.1364 2018-08-21 08:20:40 +02:00
ee51061b8c lint 2018-08-20 23:49:34 -04:00
612f3fd57a undo: undo_undoes is bool 2018-08-20 23:49:34 -04:00
0ff4854800 undo: did_undo,absolute in u_undo_end() are bool 2018-08-20 23:49:34 -04:00
6f55aa3502 undo: update undo_time() function signature
sec,file,absolute (params) are bool.
Fix callers and local variables of undo_time().
2018-08-20 23:49:34 -04:00
19717ca1e8 undo: above,did_undo in undo_time() are bool 2018-08-20 23:49:34 -04:00
66ed6297b0 vim-patch:8.0.1441: using ":undo 0" leaves undo in wrong state
Problem:    Using ":undo 0" leaves undo in wrong state.
Solution:   Instead of searching for state 1 and go above, just use the start.
            (Ozaki Kiichi, closes vim/vim#2595)
ce46d934af
2018-08-20 21:48:08 -04:00
0839c44257 Merge #8866 from janlazo/vim-8.0.0878 2018-08-20 23:09:10 +02:00
751c35d41b Merge #8872 from janlazo/vim-8.0.0762 2018-08-20 22:41:24 +02:00
768bc68d7e Merge #8860 from lucc/nvim_get_proc 2018-08-20 18:12:19 +02:00
c05d7153d3 vim-patch.sh: Use git-rev-parse to check repo (#8875)
Explicitly checking for the .git/ directory doesn't work in various
situations (e.g., git-worktree).

[ci skip]
2018-08-20 17:41:00 +02:00
96035a8343 search: "include" in current_tagblock() is bool 2018-08-20 10:44:34 -04:00
7763c19a70 vim-patch:8.1.0290: "cit" on an empty HTML tag changes the whole tag
Problem:    "cit" on an empty HTML tag changes the whole tag.
Solution:   Only adjust the area in Visual mode. (Andy Massimino,
            closes vim/vim#3332)
b476cb7d8d
2018-08-20 10:15:06 -04:00
953c3fcfee lint 2018-08-20 00:09:52 -04:00
f528aeff6e vim-patch:8.0.1487: test 14 fails
Problem:    Test 14 fails.
Solution:   Fix of-by-one error.
8846ac5aed
2018-08-20 00:09:52 -04:00
1d2b702008 vim-patch:8.0.1486: accessing invalid memory with "it"
Problem:    Accessing invalid memory with "it". (Dominique Pelle)
Solution:   Avoid going over the end of the line. (Christian Brabandt,
            closes vim/vim#2532)
82846a00ac
2018-08-20 00:05:12 -04:00
2c0998e104 vim-patch:8.0.1291: C indent wrong when * immediately follows comment
Problem:    C indent wrong when * immediately follows comment. (John Bowler)
Solution:   Do not see "/*" after "*" as a comment start. (closes vim/vim#2321)
f8c53d3d26
2018-08-20 00:05:12 -04:00
c553109932 vim-patch:8.1.0018: using "gn" may select wrong text when wrapping
Problem:    Using "gn" may select wrong text when wrapping.
Solution:   Avoid wrapping when searching forward. (Christian Brabandt)
bdb657924d
2018-08-19 15:53:34 -04:00
ff1d111120 vim-patch:8.0.1148: gN doesn't work on last match with 'wrapscan' off
Problem:    "gN" doesn't work on last match with 'wrapscan' off. (fcpg)
Solution:   Adjust for searching backward. (Christian Brabandt)
22ab547dc2
2018-08-19 09:01:19 -04:00
098e1f9dfd vim-patch:8.0.0762: ml_get error with :psearch in buffer without a name
Problem:    ml_get error with :psearch in buffer without a name. (Dominique
            Pelle)
Solution:   Use the buffer number instead of the file name.  Check the cursor
            position.
c31f9ae4f1
2018-08-18 21:55:54 -04:00
89fec12e9f vim-patch:8.0.1418: no test for expanding backticks
Problem:    No test for expanding backticks.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2479)
ae6f865125
2018-08-18 11:26:00 -04:00
98632f1cce doc: Remove irrelevant line about "only the first" vimrc is used
Vim supports multiple locations for the user's vimrc, so it will use the
first one that is found, ignoring the rest.  Nvim follows the XDG spec,
so there is only one place to look for the user's vimrc, thus making the
statement unnecessary and confusing for nvim users.

Ref #8871
2018-08-18 10:35:51 -04:00
4d10024a56 API: Remove path prefix from command name in nvim_get_proc()
On macOS the output from `ps -o comm` might contain the full path of the
executable.  The `ucomm` would be the basename only but is less portable
(see previous commit).
2018-08-18 14:37:33 +02:00
0223c81457 lint 2018-08-17 22:07:55 -04:00
7482aef113 normal: don't check has_mbyte
has_mbyte is always true for nvim.
2018-08-17 22:07:55 -04:00
f46728c241 vim-patch:8.0.1091: test for <cexpr> fails without +balloon_eval feature
Problem:    Test for <cexpr> fails without +balloon_eval feature.
Solution:   Remove #ifdefs.
95c83c64be
2018-08-17 22:07:55 -04:00
3d71366af1 vim-patch:8.0.1090: cannot get the text under the cursor like v:beval_text
Problem:    cannot get the text under the cursor like v:beval_text
Solution:   Add <cexpr>.
65f084749b
2018-08-17 17:36:40 -04:00
f53c95e7a8 vim-patch:8.1.0159: completion for user names does not work for a prefix.
Problem:    Completion for user names does not work if a prefix is also a full
            matching name. (Nazri Ramliy)
Solution:   Accept both full and partial matches. (Dominique Pelle)
6c5d104302
2018-08-17 17:36:40 -04:00
f5b7fd5fa3 ex_docmd: forceit,usefilter are bool 2018-08-17 09:07:15 -04:00
c7db42faab Merge pull request #8859 from bfredl/cmdline_norm
cmdline: always use save_cmdline before command_line_enter
2018-08-17 13:33:47 +02:00
4a46ab8de9 cmdline: always use save_cmdline before command_line_enter
":normal :" might be invoked in various ways, so its safest to always
allow recursive invocation of cmdline mode
2018-08-17 10:48:48 +02:00
58ad7fc578 ops: refactor get_spec_reg()
Return value is bool.
errmsg (param) is bool in here and in getaltfname().
allocated (param) is bool.
2018-08-16 23:05:33 -04:00
015df9c66e vim-patch:8.0.1787: cannot insert the whole cursor line
Problem:    Cannot insert the whole cursor line.
Solution:   Make CTRL-R CTRL-L work. (Andy Massimino, closes vim/vim#2857)
e2c8d83926
2018-08-16 21:33:30 -04:00
68cd18eb04 vim-patch:8.1.0101: no test for getcmdwintype()
Problem:    No test for getcmdwintype().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3068)
81612b7a7d
2018-08-16 12:56:51 -04:00
14b148f0ad vim-patch:8.0.1816: no test for setcmdpos()
Problem:    No test for setcmdpos().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2901)
ff3be4fe1e
2018-08-16 12:30:15 -04:00
1dcdac013e vim-patch:8.0.1649: no completion for argument list commands
Problem:    No completion for argument list commands.
Solution:   Add arglist completion. (Yegappan Lakshmanan, closes vim/vim#2706)
cd43effeca
2018-08-16 11:47:56 -04:00
be552c8340 vim-patch:8.0.1231: expanding file name drops dash
Problem:    Expanding file name drops dash. (stucki)
Solution:   Use the right position. (Christian Brabandt, closes vim/vim#2184)
c312b8b87a
2018-08-16 11:08:00 -04:00
6531b175ad vim-patch:8.0.0878: no completion for :mapclear
Problem:    No completion for :mapclear.
Solution:   Add completion (Nobuhiro Takasaki et al. closes vim/vim#1943)
cae92dc3d5
2018-08-16 10:42:13 -04:00
c03fc7ef3e vim-patch:8.0.1509: test for failing drag-n-drop command no longer fails
Problem:    Test for failing drag-n-drop command no longer fails.
Solution:   Check for the "dnd" feature.
294959528e
2018-08-16 03:22:48 -04:00
0f9622ca25 vim-patch:8.0.1508: the :drop command is not always available
Problem:    The :drop command is not always available.
Solution:   Include :drop in all builds. (Yasuhiro Matsumoto, closes vim/vim#2639)
5a656864a0
2018-08-16 03:16:14 -04:00
d110c6d790 lint: cleanup after parent commits 2018-08-16 07:39:48 +03:00
30392b6356 Remove has_mbyte from lines near changes in parent commit 2018-08-16 06:03:49 +03:00
b10d822a77 vim-patch:8.1.0186: test for getwininfo() fails in GUI
Problem:    Test for getwininfo() fails in GUI.
Solution:   Account for missing tabline.
44a693a1bd
2018-08-15 21:17:33 -04:00
2036d04284 vim-patch:8.1.0184: not easy to figure out the window layout
Problem:    Not easy to figure out the window layout.
Solution:   Add "wincol" and "winrow" to what getwininfo() returns.
b6959a8e06
2018-08-15 20:37:53 -04:00
2bddc4ca54 Remove occurences of mb_head_off 2018-08-15 22:02:33 +03:00
b89c08901c vim-patch:8.0.1364: there is no easy way to get the window position
Problem:    There is no easy way to get the window position.
Solution:   Add win_screenpos().
22044dc317
2018-08-15 12:20:46 -04:00
b5cfac0894 Merge pull request #8806 from bfredl/bce
tui: fix resize and use BCE more often
2018-08-15 13:02:20 +02:00
794e7b4359 API: Use ps -o comm in nvim_get_proc()
- The POSIX version of ps(1) only specifies "comm" for the "-o" option
  but not "ucomm".  See
  http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ps.html
- On Linux (with the procps-ng package) "ucomm" is an alias for "comm".
  See https://gitlab.com/procps-ng/procps
- OpenBSD also has "ucomm" as an alias for "comm" (with the extra note
  "Name to be used for accounting."). See https://man.openbsd.org/ps
- FreeBSD describes "ucomm" as "Name to be used for accounting." but
  does not say that it should be an alias for "comm". See
  https://www.freebsd.org/cgi/man.cgi?query=ps
2018-08-15 12:39:10 +02:00
ac2d661450 Merge #8829 from ZviRackover/fix-7401-step2 2018-08-15 10:28:53 +02:00
bdcd3c31c6 Merge #8852 from janlazo/vim-8.1.0161 2018-08-15 10:26:21 +02:00
26506f14bc Merge #8856 from janlazo/vim-8.0.1209 2018-08-15 10:18:22 +02:00
be1525d3c9 lint 2018-08-15 02:13:13 -04:00
a0938e068f vim-patch:8.0.1633: a TextChanged autocmd triggers when it is defined
Problem:    A TextChanged autocmd triggers when it is defined after creating a
            buffer.
Solution:   Set b_last_changedtick when opening a buffer. (Hirohito Highlight,
            closes vim/vim#2742)
8c64a36e40
2018-08-15 01:27:30 -04:00
ee37a0c79a vim-patch:8.0.1413: accessing freed memory in :cbuffer
Problem:    Accessing freed memory in :cbuffer.
Solution:   Get quickfix list after executing autocmds. (closes vim/vim#2470)
aaf6e43b7a
2018-08-15 01:27:30 -04:00
0bdd4e8393 oldtests: finish port of 8.0.1224 2018-08-15 01:27:30 -04:00
8e2a892e70 vim-patch:8.0.1409: buffer overflow in :tags command
Problem:    Buffer overflow in :tags command.
Solution:   Use vim_snprintf(). (Dominique Pelle, closes vim/vim#2471, closes vim/vim#2475)
            Add a test.
132f75255e
2018-08-15 01:27:30 -04:00
1daf2cb0ea vim-patch:8.0.1488: emacs tags no longer work
Problem:    Emacs tags no longer work. (zdohnal)
Solution:   Do not skip over end of line.
0d20737732
2018-08-15 01:27:30 -04:00
5e38ff105c vim-patch:8.0.1218: writing to freed memory in autocmd
Problem:    Writing to freed memory in autocmd.
Solution:   Make a copy of the tag line. (Dominique Pelle, closes vim/vim#2245)
8d84ff1a3c
2018-08-15 01:27:30 -04:00
84569693e1 vim-patch:8.0.1209: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes vim/vim#2230)
53f0c96239
2018-08-15 01:27:30 -04:00
5a0d0286ff TUI: use BCE again more often, as it provides smoother resizes and scrolling
add exceptions for terminals we know doesn't support BCE
2018-08-14 12:34:35 +02:00
5fad02c081 tui: reenable cursor movement optimizations (leftover from #8221) 2018-08-14 12:34:35 +02:00
e5bcf83380 tui: hack for invalid first line with non-bce resize 2018-08-14 12:34:35 +02:00
6c5f9219ef tui: use bce properly 2018-08-14 12:34:35 +02:00
f767cee100 Merge pull request #8790 from bfredl/hlattr
pass highlight attrs per value and thread-safely to TUI thread
2018-08-14 12:33:12 +02:00
999d33faf4 lint: clean up after parent commit 2018-08-14 08:38:38 +03:00
538ace9aae oldtests: win: a directory is not executable
Tests in 'test/functional/core/job_spec.lua' depend on this behavior.
2018-08-13 22:07:25 -04:00
bec5e4cb61 Merge #8832 from eraserhd/vim-insert-setline-undo-fixes 2018-08-14 02:17:05 +02:00
a1a5e35e9a vim-patch:8.1.0262: not enough testing for getftype()
Problem:    Not enough testing for getftype().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3300)
1598f9937a
2018-08-13 16:06:29 -04:00
163680a58e vim-patch:8.0.1630: trimming white space is not that easy
Problem:    Trimming white space is not that easy.
Solution:   Add the trim() function. (Bukn, closes vim/vim#1280)
295ac5ab5e
2018-08-13 12:04:36 -04:00
e346c01c31 vim-patch:8.1.0161: buffer not updated with 'autoread' set if file was deleted
Problem:    Buffer not updated with 'autoread' set if file was deleted.
            (Michael Naumann)
Solution:   Don't set the timestamp to zero. (closes vim/vim#3165)
386bc82a3f

Sleep 2 seconds for autoread (https://github.com/neovim/neovim/pull/7592).
2018-08-13 11:33:04 -04:00
7676fc7562 Remove occurrences of 'has_mbyte' near lines changes by parent commit 2018-08-13 18:07:40 +03:00
7046258a38 Remove all occurrences of mb_off2cells 2018-08-13 18:07:40 +03:00
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
fab555e59c highlight: HlAttrs is a value type; treat it like such 2018-08-13 13:35:35 +02:00
ee5cc88a73 Merge #8851 from janlazo/vim-8.0.1227 2018-08-13 00:47:51 +02:00
a4c957bab7 lint 2018-08-12 18:21:58 -04:00
cfb2383c26 vim-patch:8.0.1397: pattern with \& following nothing gives an error
Problem:    Pattern with \& following nothing gives an error.
Solution:   Emit an empty node when needed.
890dd05492
2018-08-12 18:09:43 -04:00
3fd2efdb26 vim-patch:8.0.1257: no test for fix of undefined behavior
Problem:    No test for fix of undefined behavior.
Solution:   Add a test. (closes vim/vim#2255)
2973daafe1
2018-08-12 18:03:30 -04:00
0b38011328 vim-patch:8.0.1243: no test for what 8.0.1227 fixes
Problem:    No test for what 8.0.1227 fixes.
Solution:   Add a test that triggers the problem. (Christian Brabandt)
f45938cc20
2018-08-12 17:57:04 -04:00
7faf682525 vim-patch:8.0.1227: undefined left shift in readfile()
Problem:    Undefined left shift in readfile(). (Brian 'geeknik' Carpenter)
Solution:   Add cast to unsigned. (Dominique Pelle, closes vim/vim#2253)
dc1c981294
2018-08-12 17:56:23 -04:00
97331cab67 Merge #8843 from janlazo/vim-8.0.0828 2018-08-12 19:35:20 +02:00
ff19f08477 deps: get gperf-3.1.tar.gz from our mirror 2018-08-12 16:21:21 +02:00
addd181369 Merge #8837 from janlazo/vim-8.0.1290 2018-08-12 14:54:18 +02:00
1211fa09cf Merge #8833 from janlazo/vim-8.0.1004 2018-08-12 14:11:47 +02:00
ae24c9b270 Merge #8847 from janlazo/vim-8.0.1037 2018-08-12 13:05:59 +02:00
47f9ab4635 CI/travis: fix restore from cache
a369385009 fixed this for "~/.cache/nvim-deps/", but strangely not for
"~/.cache/nvim-deps-downloads/".

ref a369385009
ref #8316
ref #8281

Seen in https://travis-ci.org/neovim/neovim/jobs/414982972 :

    Using third-party dependencies from Travis cache (last update: Aug 11 23:00:15 2018).
    cp: /Users/travis/build/neovim/neovim/deps-downloads/nvim-deps-downloads/…/nvim-deps-downloads/libvterm/a9c7c6fd20fa35e0ad3e0e98901ca12dfca9c25c.tar.gz:
    name too long (not copied)
2018-08-12 12:38:38 +02:00
8ad46a25cb eval: match in find_some_match() is bool 2018-08-11 19:30:08 -04:00
3d77ca39c7 lint 2018-08-11 18:57:54 -04:00
d6a25f89b8 regexp: drop has_mbyte check in regmatch()
has_mbyte is always true in nvim.
2018-08-11 17:45:18 -04:00
594536a1e7 vim-patch:8.0.1361: some users don't want to diff with hidden buffers
Problem:    Some users don't want to diff with hidden buffers.
Solution:   Add the "hiddenoff" item to 'diffopt'. (Alisue, closes vim/vim#2394)
97ce419201
2018-08-11 15:06:07 -04:00
90128843f6 diff: drop enc_utf8 check in diff_equal_char()
enc_utf8 is always true for nvim.
2018-08-11 14:54:48 -04:00
fd334ec2a8 vim-patch:8.0.1046: code duplication in diff mode
Problem:    Code duplication in diff mode.
Solution:   Use diff_equal_char() also in diff_cmp(). (Rick Howe)
ae96b8d058
2018-08-11 14:54:39 -04:00
4f93d05d39 vim-patch:8.0.1037: "icase" of 'diffopt' is not used for highlighting
Problem:    "icase" of 'diffopt' is not used for highlighting differences.
Solution:   Also use "icase". (Rick Howe)
da22b8cc8b
2018-08-11 14:54:39 -04:00
d624aea454 lint 2018-08-11 14:37:17 -04:00
5f4a231e3f vim-patch:8.1.0099: exclamation mark in error message not needed
Problem:    Exclamation mark in error message not needed.
Solution:   Remove the exclamation mark.
3c867daaf0
2018-08-11 14:32:59 -04:00
9c4f6307b7 vim-patch:8.1.0097: superfluous space before exclamation mark
Problem:    Superfluous space before exclamation mark.
Solution:   Remove the space.  Don't translate debug message.
5efa0102de
2018-08-11 14:32:59 -04:00
96dc8c0d28 vim-patch:8.1.0090: "..." used inconsistently in a message
Problem:    "..." used inconsistently in a message.
Solution:   Define the message with " ..." once. (hint by Ken Takata)
9b0c5c23bd
2018-08-11 14:32:59 -04:00
b3ad509905 vim-patch:8.1.0078: "..." used inconsistently in messages
Problem:    "..." used inconsistently in messages.
Solution:   Drop the space before " ...".
c166927a32
2018-08-11 14:32:59 -04:00
cb708d203b vim-patch:8.0.1517: invalid memory acces with pattern using look-behind match
Problem:    Invalid memory acces with pattern using look-behind match.
            (Dominique Pelle)
Solution:   Get a pointer to the right line.
bc197195b0
2018-08-11 14:32:59 -04:00
5ed303c22b vim-patch:8.0.1470: integer overflow when using regexp pattern
Problem:    Integer overflow when using regexp pattern. (geeknik)
Solution:   Use a long instead of int. (Christian Brabandt, closes vim/vim#2251)
2c7b906afb
2018-08-11 14:32:59 -04:00
f7f65f5a82 vim-patch:8.0.1254: undefined left shift in gethexchrs()
Problem:    Undefined left shift in gethexchrs(). (geeknik)
Solution:   Use unsigned long. (idea by Christian Brabandt, closes vim/vim#2255)
4c22a91d20
2018-08-11 14:32:59 -04:00
dd6c1a0a8f vim-patch:8.0.0828: Coverity: may dereference NULL pointer
Problem:    Coverity: may dereference NULL pointer.
Solution:   Bail out if calloc_state() returns NULL.
983b3a5bc4
2018-08-11 14:32:59 -04:00
22311457ab refactor: Replace vim_strrchr() with strrchar() (#8718)
ref #1474
2018-08-11 16:14:10 +02:00
6aefae8c4e terminfo: add header guard, stdint.h for int8_t (#8848)
Lint fixes for single-include test.
2018-08-11 16:06:57 +02:00
c30812be7b Merge #8845 from janlazo/vim-8.0.1490 2018-08-10 20:08:18 +02:00
a5e3f4da34 tutor: don't set statusline (#8844)
also, remove unused function tutor#InfoText()

fixes #8842
2018-08-10 19:01:17 +02:00
5ee9161f81 lint 2018-08-10 12:54:18 -04:00
efbf70600c vim-patch:8.0.1490: number of spell regions is spread out through the code
Problem:    Number of spell regions is spread out through the code.
Solution:   Define MAXREGIONS.
2993ac5fce
2018-08-10 12:35:38 -04:00
2841e89cf1 Merge pull request #7981 from mhinz/update-terminfo-rxvt
[RDY] terminfo: update built-in terminfo entries by script
2018-08-10 10:35:39 -04:00
092f1a3e2c terminfo: update built-in terminfo entries
The arrays are put in their own file: terminfo_defs.h. This makes it simple to
update all terminfo entries in one go using scripts/update_terminfo.sh.

The entries were compiled with tic 6.1 and some use the extended number format.
2018-08-10 14:58:23 +02:00
ceeca24205 terminfo: add scripts/update_terminfo.sh
This script updates the built-in terminfo entries.

[skip ci]
2018-08-10 14:58:23 +02:00
fcd58c59eb Merge pull request #8838 from jamessan/vim-patch-issue-regex
vim-patch.sh: Fix replacement which converts #1234 to vim/vim#1234
2018-08-09 20:11:44 -04:00
68411dc189 vim-patch.sh: Fix replacement which converts #1234 to vim/vim#1234
Noticed in cb7bdf5f, where the script incorrectly converted `#ifdef` to
`vim/vim#ifdef`.

[skip ci]
2018-08-09 20:10:41 -04:00
09c2184660 oldtests: Test_undofile() passes
Set undodir to Vim's default value.
Fix pathsep of expected undofile path for Windows.
Comment out invalid test case for Neovim.
2018-08-09 19:53:05 -04:00
c6dd84e00b Fix lint 2018-08-09 16:46:50 -07:00
3c41df2691 vim-patch:8.1.0256: using setline() in TextChangedI splits undo
Problem:    Using setline() in TextChangedI splits undo.
Solution:   Use another solution for undo not working properly.
9fa9506853

This deviates from Vim in the handling of the CursorHoldI event.  In
Vim, any buffer changes are merged into the insert.  In Neovim,
CursorHoldI is handled via the multiqueue, and the point at which
the cursor hold is implemented (in input.c) doesn't know enough about it.
Making all queued events merge into the insert seems more wronger since
changes by other asynchronous events really should be separately
undoable.
2018-08-09 16:46:50 -07:00
d45efa5793 vim-patch:8.1.0245: calling setline() in TextChangedI autocmd breaks undo
Problem:    Calling setline() in TextChangedI autocmd breaks undo. (Jason
            Felice)
Solution:   Don't save lines for undo when already saved. (closes vim/vim#3291)
91d2e783b4
2018-08-09 16:46:11 -07:00
0a8be9f8ef vim-patch:8.1.0057: popup menu displayed wrong when using autocmd
Problem:    Popup menu displayed wrong when using autocmd.
Solution:   Use aucmd_prepbuf().  Force updating status line if the popup menu
            is going to be redrawn anyway. (Christian Brabandt, closes vim/vim#3009)
6ba3ec1bac
2018-08-09 16:46:01 -07:00
cf9dd7a3f4 Merge #8835 from janlazo/vim-8.0.1819 2018-08-10 00:01:32 +02:00
1c1722105c vim-patch:8.1.0025: no test for the undofile() function
Problem:    No test for the undofile() function.
Solution:   Add test. (Dominique Pelle, closes vim/vim#2958)
e5fa11186f
2018-08-09 16:06:00 -04:00
6853690c78 vim-patch:8.0.1433: illegal memory access after undo
Problem:    Illegal memory access after undo. (Dominique Pelle)
Solution:   Avoid the column becomes negative. (Christian Brabandt,
            closes vim/vim#2533)
95dbcbea6d
2018-08-09 15:32:13 -04:00
fc8965787b memline: fnamecmp_ino() returns bool 2018-08-09 14:19:26 -04:00
e36fce75fb vim-patch:8.0.1819: swap file warning for file with non-existing directory
Problem:    Swap file warning for a file in a non-existing directory, if there
            is another with the same file name. (Juergen Weigert)
Solution:   When expanding the file name fails compare the file names.
8c3169c58e
2018-08-09 14:12:57 -04:00
4e963f2462 vim-patch:8.0.1290: seq_cur of undotree() wrong after undo
Problem:    seq_cur of undotree() wrong after undo.
Solution:   Get the actual sequence number instead of decrementing the current
            one. (Ozaki Kiichi, closes vim/vim#2319)
80eaddd3a0
2018-08-09 13:30:42 -04:00
cb7bdf5f92 vim-patch:8.1.0024: test % command (#8834)
Problem:    % command not testded on vim/vim#ifdef and comment.
Solution:   Add tests. (Dominique Pelle, closes vim/vim#2956)
6b69e5c646
2018-08-09 18:41:36 +02:00
6ad8294d5c vim-patch:8.1.0257: no test for pathshorten()
Problem:    No test for pathshorten().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3295)
bfde0b482d
2018-08-09 09:49:07 -04:00
218fccaba4 vim-patch:8.1.0204: inputlist() is not tested
Problem:    inputlist() is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#3240)
947b39e761
2018-08-09 09:25:26 -04:00
047dfcd294 vim-patch:8.1.0008: no test for strwidth()
Problem:    No test for strwidth().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2931)
42ab17b8e3
2018-08-09 08:09:37 -04:00
4420dc3067 vim-patch:8.0.1421: accessing invalid memory with overlong byte sequence
Problem:    Accessing invalid memory with overlong byte sequence.
Solution:   Check for NUL character. (test by Dominique Pelle, closes vim/vim#2485)
e6640ad44e
2018-08-09 00:55:20 -04:00
a445887985 vim-patch:8.0.1410: hang when using count() with an empty string
Problem:    Hang when using count() with an empty string.
Solution:   Return zero for an empty string. (Dominique Pelle, closes vim/vim#2465)
338e47fdfd
2018-08-09 00:44:06 -04:00
fe6cf2812b vim-patch:8.0.1105: match() and matchend() are not tested
Problem:    match() and matchend() are not tested.
Solution:   Add tests. (Ozaki Kiichi, closes vim/vim#2088)
1190cf68e2
2018-08-08 22:38:23 -04:00
3c6eb9871a vim-patch:8.0.1004: matchstrpos() without a match returns too many items
Problem:    Matchstrpos() without a match returns too many items.
Solution:   Also remove the second item when the position is beyond the end of
            the string. (Hirohito Higashi)  Use an enum for the type.
8d9f0ef5c6
2018-08-08 21:59:24 -04:00
0b3555b5dd Merge #8831 from janlazo/vim-8.1.0009 2018-08-09 02:30:19 +02:00
72fecad1ff Merge #8804 from battlmonstr/lang_region_crash
Fix crash in lang_init() on macOS if lang_region = NULL
2018-08-09 02:02:36 +02:00
0478fb3b58 Merge #8797 from janlazo/vim-8.0.0687 2018-08-09 02:00:28 +02:00
c7efc6047d vim-patch.sh: Pass directory name to find (#8830)
BSD/Mac find requires directory names before arguments.
2018-08-09 01:56:55 +02:00
f7f79c60bb vim-patch:8.1.0241: effect of ":tabmove N" is not clear
Problem:    Effect of ":tabmove N" is not clear.
Solution:   Add a test that shows the behavior. (Christian Brabandt,
            closes vim/vim#3288)
7cc596547a
2018-08-08 19:36:07 -04:00
345789f9ef vim-patch:8.1.0009: tabpages insufficiently tested
Problem:    Tabpages insufficiently tested.
Solution:   Add more test coverage. (Dominique Pelle, closes vim/vim#2934)
dbe8869c41
2018-08-08 19:35:35 -04:00
d581398779 ruby: detect rbenv shims for other versions (#8733)
When rbenv is used for managing Ruby installations, just checking for an
executable called "neovim-ruby-host" is not enough. It has to be run as well.

If it does not return 0, then neovim-ruby-host is merely a shim for another Ruby
installation.

  $ rbenv versions
    2.5.0
  * 2.5.1 (set by /Users/mhi/.rbenv/version)

  $ rbenv whence neovim-ruby-host
  2.5.0

  $ which neovim-ruby-host
  /Users/mhi/.rbenv/shims/neovim-ruby-host

  $ neovim-ruby-host
  rbenv: neovim-ruby-host: command not found

  The `neovim-ruby-host' command exists in these Ruby versions:
    2.5.0

  $ echo $?
  127

Additionally, the detection logic was moved from provider#ruby#Detect() to
s:detect(), because the former is run in the sandbox which forbids calling
system().
2018-08-09 00:47:35 +02:00
c1187d4af0 defaults: win: 'shellpipe' for cmd.exe (#8827)
">%s 2>&1" redirects stderr to a file, same as 'shellredir' on Windows.
2018-08-08 23:37:14 +02:00
8213109304 Merge #8821 from janlazo/vim-8.1.0003 2018-08-08 10:49:09 +02:00
d6af425322 oldtests: win: set shellpipe for cmd.exe
Redirect errors from :make to error file.
Fix execption error in test_compiler.vim on Windows.
2018-08-07 23:04:04 -04:00
b7a417c5e6 Merge #8744 from janlazo/vim-8.0.0890 2018-08-08 02:22:34 +02:00
c06613d2f6 Merge #8665 'Remove mb_ptr2char macro' 2018-08-08 01:24:18 +02:00
d5e8b3f451 misc: fixpos in del_char() is bool 2018-08-07 19:07:54 -04:00
0e4a54a17b edit: end_insert in check_auto_format() is bool 2018-08-07 13:20:46 -04:00
a2eff8f15c edit: did_add_space is bool 2018-08-07 13:16:38 -04:00
672449e448 memline: copy in ml_replace() is bool 2018-08-07 13:11:51 -04:00
80df0a8fd2 ops: is_del in block_prep() is bool 2018-08-07 12:13:41 -04:00
2b229b816b window: no_display in restore_win() is bool 2018-08-07 11:40:54 -04:00
1468946154 ops: add const to shift_block() variables 2018-08-07 11:35:07 -04:00
5493139c9f tests: win: fix pathsep of :compiler paths 2018-08-06 23:51:10 -04:00
daca22f5b2 vim-patch:8.1.0005: test for :compiler command fails on MS-Windows
Problem:    Test for :compiler command fails on MS-Windows.
Solution:   Ignore difference in path.
d19b234154
2018-08-06 22:55:04 -04:00
196cc13130 vim-patch:8.1.0004: test for :compiler command sometimes fails
Problem:    Test for :compiler command sometimes fails.
Solution:   Be less strict about the error message. (Dominique Pelle)
54651f7494
2018-08-06 22:54:16 -04:00
f9f37193d1 vim-patch:8.1.0003: the :compiler command is not tested
Problem:    The :compiler command is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2930)
10561fe0a3
2018-08-06 22:53:53 -04:00
c233277737 eval: add const to f_gettabvar() variables 2018-08-06 21:56:39 -04:00
e6127a49db edit: temp in ins_del() is const int 2018-08-06 21:56:39 -04:00
f807a7de04 vim-patch:8.1.0007: no test for "o" and "O" in Visual block mode
Problem:    No test for "o" and "O" in Visual block mode.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2932)
2e94976abd
2018-08-06 21:56:39 -04:00
343c226abf vim-patch:8.0.1811: no test for winrestcmd()
Problem:    No test for winrestcmd().
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2894)
72cf47a279
2018-08-06 21:56:39 -04:00
1b3cbb39a1 vim-patch:8.0.1705: when making a vertical split the mode message isn't updated
Problem:    When making a vertical split the mode message isn't always
            updated, "VISUAL" remains. (Alexei Averchenko)
Solution:   Only reset clear_cmdline when filling all columns of the last
            screen line. (Tom M. closes vim/vim#2611)
5bab555c2f
2018-08-06 21:56:39 -04:00
a8ff55d50e vim-patch:8.0.1446: acessing freed memory after window command in auto command
Problem:    Acessing freed memory after window command in auto command.
            (gy741)
Solution:   Adjust the pointer in the parent frame. (Christian Brabandt,
            closes vim/vim#2467)
6f361c9912
2018-08-06 21:56:39 -04:00
ce5d755048 vim-patch:8.0.1579: virtual replace test fails in GUI
Problem:    Virtual replace test fails in GUI.
Solution:   Don't save key options if they were not set.
df0d24b627
2018-08-06 21:56:39 -04:00
62424fe6ee vim-patch:8.0.1577: virtual replace test fails on MS-Windows
Problem:    Virtual replace test fails on MS-Windows.
Solution:   Make adding a termcap entry work for a builtin terminal.
            Restore terminal keys in a better way.
e780848150
2018-08-06 21:56:39 -04:00
f53c2578e7 vim-patch:8.0.1575: crash when using virtual replace
Problem:    Crash when using virtual replace.
Solution:   Adjust orig_line_count.  Add more tests. (Christian Brabandt)
63e82db6fc
2018-08-06 21:56:39 -04:00
7f2e352700 vim-patch:8.0.0879: crash when shifting with huge number
Problem:    Crash when shifting with huge number.
Solution:   Check for overflow. (Dominique Pelle, closes vim/vim#1945)
bae5a17a73
2018-08-06 21:56:39 -04:00
0e57c753d6 vim-patch:8.0.1601: highlight test fails on Win32
Problem:    Highlight test fails on Win32.
Solution:   Check for vtp and vcon support.
ff1e879577
2018-08-06 21:56:39 -04:00
e105e1242a vim-patch:8.0.1600: crash when setting t_Co to zero when 'termguicolors' is set
Problem:    Crash when setting t_Co to zero when 'termguicolors' is set.
Solution:   Use IS_CTERM instead of checking the number of colors.
            (closes vim/vim#2710)
f708ac592f
2018-08-06 21:56:39 -04:00
11bd0b8870 vim-patch:8.0.1169: highlignting one char too many with 'list' and 'cul'
Problem:    Highlignting one char too many with 'list' and 'cul'.
Solution:   Check for 'list' being active. (Ozaki Kiichi, closes vim/vim#2177)
5ece3e359c
2018-08-06 21:56:39 -04:00
a920ae89e9 vim-patch:8.0.1168: wrong highlighting with combination of match and 'cursorline'
Problem:    wrong highlighting with combination of match and 'cursorline'.
Solution:   Use "line_attr" when appropriate. (Ozaki Kiichi, closes vim/vim#2111)
            But don't highlight more than one character.
0aa398f55a
2018-08-06 21:56:38 -04:00
593c0bd77f vim-patch:8.0.1216: tabline is not always updated for :file command
Problem:    Tabline is not always updated for :file command. (Norio Takagi)
Solution:   Set redraw_tabline. (Hirohito Higashi)
6ce6504808
2018-08-06 21:56:38 -04:00
059986e038 vim-patch:8.0.1160: getting tab-local variable fails after closing window
Problem:    Getting tab-local variable fails after closing window.
Solution:   set tp_firstwin and tp_lastwin. (Jason Franklin, closes vim/vim#2170)
816968defc
2018-08-06 21:56:38 -04:00
d671168574 vim-patch:8.0.0890: still many old style tests
Problem:    Still many old style tests.
Solution:   Convert several tests to new style. (Yegappan Lakshmanan)
75373f3808
2018-08-06 21:56:38 -04:00
5cecd7a93a style: fixing minor issues noted in code review. 2018-08-06 22:27:10 +03:00
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
cd3b2e4b6b lint: clean-up after parent commit 2018-08-06 20:48:07 +03:00
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
1593ee7cf2 Merge #8820 from janlazo/vim-8.0.0671 2018-08-06 19:16:42 +02:00
41dbb69a85 lint 2018-08-06 11:49:59 -04:00
47d52e1578 globals: did_ai is bool 2018-08-06 11:49:59 -04:00
b9ab363636 globals: did_si is bool 2018-08-06 11:49:59 -04:00
7692dfeecb globals: can_si is bool 2018-08-06 11:49:59 -04:00
5309ad29d4 globals: can_si_back is bool 2018-08-06 11:49:59 -04:00
6bff0f7b60 edit: haveto_redraw (local variable) is bool 2018-08-06 11:49:59 -04:00
96f165e744 edit: can_cindent is bool 2018-08-06 11:49:59 -04:00
8f75debd86 edit: fix variables in ins_mousescroll()
Declare and initialize them on same line.
Add const if possible.
Refactor 'did_scroll' local variable from int to bool.
2018-08-06 11:49:59 -04:00
4df0ea98dc globals: typebuf_was_filled is bool 2018-08-06 11:49:59 -04:00
3aca372ac8 vim-patch:8.1.0240: g:actual_curbuf set in wrong scope (#8818)
Problem:    g:actual_curbuf set in wrong scope. (Daniel Hahler)
Solution:   Prepend the "g:" name space. (closes vim/vim#3279)
3cb4448b8a
2018-08-06 03:37:15 +02:00
4ca2cf4b47 vim-patch:8.0.1507: timer test is a bit flaky
Problem:    Timer test is a bit flaky.
Solution:   Add it to the list of flaky tests.
bfbea567d8
2018-08-05 17:55:49 -04:00
e7e2115de5 vim-patch:8.0.0948: crash if timer closes window while dragging status line
Problem:    Crash if timer closes window while dragging status line.
Solution:   Check if the window still exists. (Yasuhiro Matsumoto, closes
            vim/vim#1979)
989a70c590
2018-08-05 17:42:49 -04:00
fe6e4b3244 vim-patch:8.0.0722: screen is messed by timer up at inputlist() prompt
Problem:    Screen is messed by timer up at inputlist() prompt.
Solution:   Set state to ASKMORE. (closes vim/vim#1843)
c9041079a1
2018-08-05 17:20:09 -04:00
2b8792e303 vim-patch:8.0.0671: hang when typing CTRL-C in confirm() in timer
Problem:    When a function invoked from a timer calls confirm() and the user
            types CTRL-C then Vim hangs.
Solution:   Reset typebuf_was_filled. (Ozaki Kiichi, closes vim/vim#1791)
4eb6531b03
2018-08-05 17:18:57 -04:00
b42c80e561 eval, ex_getln: Fix incompatible pointer types (#8792)
Fixes #8786

gcc (GCC) 8.1.1 20180531 warning:

[76/182] Building C object src/nvim/CMakeFiles/nvim.dir/ex_getln.c.o
../src/nvim/ex_getln.c: In function ‘ExpandUserDefined’:
../src/nvim/ex_getln.c:5071:34: warning: cast between incompatible function types from ‘char * (*)(const char * const,  const int,  const char_u * const* const,  const _Bool)’ {aka ‘char * (*)(const char * const,  const int,  const unsigned char * const* const,  const _Bool)’} to ‘void * (*)(char_u *, int,  char_u **, int)’ {aka ‘void * (*)(unsigned char *, int,  unsigned char **, int)’} [-Wcast-function-type]
   retstr = call_user_expand_func((user_expand_func_T)call_func_retstr, xp,
2018-08-05 02:37:00 +02:00
5d8a47b6e0 syntax.h: fix include #8742 2018-08-05 01:50:25 +02:00
7a4d167a92 Merge #8742 vim-patch:8.0.0791,0831,1072,1078,1088 2018-08-04 20:12:48 +02:00
e861da247e Merge #8749 from janlazo/clint-tristate 2018-08-04 19:37:58 +02:00
a4c9447623 Merge #8799 from janlazo/nvim-8.0.1541 2018-08-04 19:09:46 +02:00
c51c2f5a65 misc: refactor plines_win{,_nofill}()
Add const to params and variables (declare and init on same line).
winheight (param) is bool so replace TRUE/FALSE macros with true/false.
2018-08-02 23:11:27 -04:00
766683622a fold: add const to foldSplit() variables 2018-08-02 18:29:16 -04:00
6710522751 fold: add const to foldUpdateIEMSRecurse() vars 2018-08-02 17:51:38 -04:00
21acc7c0fa fold: add const to foldUpdateIEMS() variables 2018-08-02 17:29:21 -04:00
1ec5485db4 fold: add const to checkSmall() variables 2018-08-02 17:15:53 -04:00
20eeb61fb2 fold: declare and init vars in deleteFoldEntry()
Use sizeof() on pointer value, not explicit type, for memmove.
2018-08-02 13:10:25 -04:00
a515401cf0 fold: add const to foldMoveTo() variables
Declare and initialize variables on same line if possible.
2018-08-02 12:50:50 -04:00
407ac8b42d fold: add const to deleteFold() variables
Declare and initialize variables on same line if possible.
2018-08-02 11:58:50 -04:00
3de785e7b5 fold: add const to hasFoldingWin() variables
cache is bool so update callers to pass true/false, not TRUE/FALSE.
2018-08-02 08:44:42 -04:00
2b9fc9a13f Merge pull request #8660 from phodge/7688-nvim-buf-lines-should-return-empty-list-for-unloaded-buffer
handle unloaded buffers in nvim_buf_*() functions
2018-08-02 13:28:36 +02:00
d2c1d9c466 ex_cmds: add const to helptags_one() variables 2018-08-01 23:21:17 -04:00
144e85b7b9 ex_cmds: add const to fix_help_buffer() variables 2018-08-01 23:02:52 -04:00
d29c02710e hardcopy: refactor mch_print_start_line()
Refactor the following affected functions:
- prt_line_number()
- prt_header()

These use prt_set_font(), refactored in 872a76f3dac14fdcb7dc7b34cecd3acb4370d56f for TriState.
2018-08-01 15:28:50 -04:00
d536fb018f hardcopy: bold,italic,underline are TriState 2018-08-01 15:28:50 -04:00
c0dbd8df95 fold: use_level,maybe_small are bool
use_levelp, maybe_smallp in check_closed() are bool ptrs.
2018-08-01 15:28:50 -04:00
44cb491f6e globals: virtual_op is TriState 2018-08-01 15:28:49 -04:00
faa9869a9e fold: recursive in deleteFoldEntry() is bool 2018-08-01 15:28:49 -04:00
14cffc3d1d fold: fold_changed is bool 2018-08-01 15:28:49 -04:00
667b8cd108 fold: finish in foldUpdateIEMSRecurse() is bool 2018-08-01 15:28:49 -04:00
3f8ba68895 screen: screen_cleared is TriState 2018-08-01 15:28:49 -04:00
971e9370ad fold: lineFolded() is bool 2018-08-01 15:28:49 -04:00
6dfaf8e914 fold: check_closed() returns bool
Update affected variables (ie. had_folded).
Add const to params to restrict usage.

TODO: refactor win_T.w_lines[idx].wl_folded from char to bool
2018-08-01 15:28:49 -04:00
4fb9b42869 search: refactor variables in findmatchlimit()
Combine declaration and initialization.
Refactor int variables, that use TRUE/FALSE macros (not MAYBE), to bool.
2018-08-01 15:28:49 -04:00
ba6417091c search: start_in_quotes in findmatchlimit is TriState 2018-08-01 15:28:49 -04:00
0e55d88639 edit: dont_sync_undo is TriState 2018-08-01 15:28:49 -04:00
deae2e8434 ex_cmds: refactor utf8 variables to TriState
- utf8 in helptags_one()
- this_utf in fix_help_buffer()
2018-08-01 15:28:49 -04:00
f35df8d697 menu: enable in ex_menu() is TriState 2018-08-01 15:28:49 -04:00
f193b5241f fold: fold_T.fd_small is TriState 2018-08-01 15:28:49 -04:00
9e20398908 diff: refactor diff_a_works to use TriState 2018-08-01 15:28:44 -04:00
a095a48987 clint: detect MAYBE and recommend TriState
Vim uses MAYBE for 3-value boolean with FALSE/TRUE/MAYBE.
Use TriState type instead to restrict to 3 values, kFalse/kTrue/kNone.
2018-08-01 15:23:01 -04:00
e92f1bb271 Fix crash in lang_init() on macOS if lang_region = NULL
This is a regression after PR #7704:
mac: Set $LANG based on the system locale

CFStringGetCStringPtr sometimes returns "lang_region" = NULL,
in this case CFStringGetCString is used instead,
which places output to "buf", but "buf" was not used
by the code.
2018-08-01 12:00:13 +02:00
c83ecee885 syntax: syn_pattern.sp_syncing is bool 2018-07-30 18:09:34 -04:00
1c5eee3c91 syntax: add const to get_syntax_attr() params 2018-07-30 16:19:38 -04:00
8f647cf03c syntax: add const to syn_finish_line() params,vars 2018-07-30 15:29:22 -04:00
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
d3f609db05 syntax: disptick_T is uint16_t 2018-07-29 18:03:16 -04:00
3feabcacb0 syntax: scl_id is int 2018-07-29 08:20:00 -04:00
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
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
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
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
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
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
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
6646502bbb syntax: syn_cluster_T.scl_list is int16_t* 2018-07-29 07:51:51 -04:00
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
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
2a7047b77c syntax: syn_state.sst_next_list is int16_t* 2018-07-29 07:51:51 -04:00
eb7aa76b13 syntax: current_next_list is int16_t* 2018-07-29 07:51:51 -04:00
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
6f5eadcdac syntax: use const on syn_list_keywords() variables 2018-07-29 07:51:50 -04:00
9b34b867dd syntax: update types for keyentry_T,sp_syn
Replace 'short' with 'int16_t'
2018-07-29 07:51:50 -04:00
e6993f2491 syntax: use const on copy_id_list() params,vars 2018-07-29 07:51:50 -04:00
ef3cbd91cb syntax: use const on add_keyword() params,vars 2018-07-29 07:51:50 -04:00
a34066963e syntax: update types of syn_opt_arg_T members
Use bool, not int, for booleans.
Use int16_t, not short, to match lint changes from patch 8.0.1541.
2018-07-29 07:51:50 -04:00
9229f7a05d syntax: use const on put_id_list() variables 2018-07-29 07:51:50 -04:00
b647ba6afb vim-patch:8.0.1541: synpat_T is taking too much memory
Problem:    synpat_T is taking too much memory.
Solution:   Reorder members to reduce padding. (Dominique Pelle, closes vim/vim#2671)
36f923014a
2018-07-29 07:51:50 -04:00
eaa2cd9f7c vim-patch:8.0.0735: no indication that the quickfix window/buffer changed
Problem:    There is no way to notice that the quickfix window contents has
            changed.
Solution:   Increment b:changedtick when updating the quickfix window.
            (Yegappan Lakshmanan)
a8788f4d0b
2018-07-28 23:58:34 -04:00
91b8210779 vim-patch:8.0.0687: minor issues related to quickfix
Problem:    Minor issues related to quickfix.
Solution:   Set the proper return status for all cases in setqflist() and at
            test cases for this.  Move the "adding" flag outside of
            FEAT_WINDOWS. Minor update to the setqflist() help text. (Yegappan
            Lakshmanan)
86f100dc09
2018-07-28 23:58:34 -04:00
a2253744c9 system(): handle profiling and 'verbose' #8730
closes #8362

Vim's code calls `call_shell` directly from `get_system_output_as_rettv`
whereas in Nvim this function has been rewritten to not call `call_shell` but to call
`os_system` via `do_os_system`, losing the support for profiling and verbose.

Changing the code to call `call_shell` from `get_system_output_as_rettv`
seems to be too complicated to be worth it on the current version of the
code. So this commit duplicates the relevant code.
2018-07-29 03:49:11 +02:00
befc7de26f Merge pull request #8770 from janlazo/vim-8.0.0726 2018-07-29 02:00:48 +02:00
a4494b7cbc checkhealth: always report stderr with errors (#8783)
This also reports the exit code (e.g. 127 for when pyenv-which fails).
2018-07-29 01:46:59 +02:00
ade88fe4cc checkhealth: do not use exepath with host_prog (#8784)
This would need to get `expand`ed to not become empty, and is being
handled by s:check_bin already.

`s:check_bin` will also complain about e.g.
"~/.pyenv/versions/3.6.6/bin/python" not being executable, but that
reflects that the host will fail to start with it.

Fixes #8778
2018-07-29 01:44:46 +02:00
bb33fc4f55 log.c: Fix possible truncation in buffer (#8791) 2018-07-29 01:38:17 +02:00
8951304c10 Merge #8793 from janlazo/vim-8.0.0837 2018-07-29 01:32:39 +02:00
e09e9ca810 lint 2018-07-27 18:43:53 -04:00
882782f0fb screen: add const and reindent update_debug_signs() 2018-07-27 18:43:53 -04:00
243d16688a vim-patch:8.0.0837: signs can be drawn on top of console messages
Problem:    Signs can be drawn on top of console messages.
Solution:   don't redraw at a prompt or when scrolled up. (Christian Brabandt,
            closes vim/vim#1907)
0792048842
2018-07-27 18:40:31 -04:00
9abe0bdb54 Merge pull request #8789 from bfredl/updatehl
screen.c: add update_window_hl to special redrawing entrypoints, fixes a crash
2018-07-27 23:20:58 +02:00
9a584773b5 screen.c: add update_window_hl to special redrawing entrypoints
The following (run as a script) used to cause a crash due to :sign using a
special redraw (not updating nvim's specific highlight data structures)
without proper redraw first, as split just flags for redraw later.

set cursorline
sign define piet text=>> texthl=Search
split
sign place 3 line=2 name=piet buffer=1
2018-07-27 17:11:01 +02:00
85a7170f19 Merge pull request #8767 from janlazo/vim-8.0.0493
[RDY] vim-patch:8.0.0493
2018-07-27 10:50:57 -04:00
594859fdd6 Merge pull request #8485 from janlazo/vim-8.0.1012
[RDY] vim-patch:8.0.{805,806,810,1012,1017}
2018-07-27 10:44:29 -04:00
e42688fcf3 Merge pull request #8769 from janlazo/vim-8.0.1502
[RDY] vim-patch:8.0.{1502,1512,1622}
2018-07-27 10:06:46 -04:00
5f15788dc3 tui: clip invalid regions on resize (#8779), fixes #8774 2018-07-26 19:55:26 +02:00
9c0c5e8bc6 Merge #8729 'log: milliseconds, format' 2018-07-25 16:29:23 +02:00
27dc42160f log.c: format: padding
- milliseconds: leading zeroes
- PID: whitespace padding
2018-07-25 15:29:57 +02:00
ea2e8f4f10 DOC: regenerate api docs 2018-07-25 15:07:13 +10:00
7ab27eeb53 DOC: add support for intro sections in api docs 2018-07-25 15:07:13 +10:00
b53b621ef6 functests: tests related to operations on unloaded buffers #7688 2018-07-25 15:07:13 +10:00
10bb11e8d1 API: update docs WRT behaviours/methods for unloaded buffers #7688 2018-07-25 15:07:13 +10:00
8ff0872cf7 API: add nvim_buf_is_loaded() #7688 2018-07-25 15:07:13 +10:00
40e2d6b59b API: buf_get_lines, buf_line_count handle unloaded buffers #7688 2018-07-25 15:07:13 +10:00
ae52170a52 cmake: bump API version 2018-07-25 14:09:04 +10:00
30bba7a10c vim-patch:8.0.1017: test for MS-Windows $HOME always passes
Problem:    Test for MS-Windows $HOME always passes.
Solution:   Rename the test function.  Make the test pass.
dde6034111

Assume $HOME contains the literal absolute path.
Nested environment variable expansion is unsupported.
2018-07-24 23:17:36 -04:00
5ed0975ea2 vim-patch:8.0.1012: MS-Windows: problem with $HOME when is was set internally
Problem:    MS-Windows: Problem with $HOME when is was set internally.
Solution:   Only use the $HOME default internally. (Yasuhiro Matsumoto, closes
            vim/vim#2013)
48340b62e8

Restore vim_getenv() behaviour for $HOME on Windows.
2018-07-24 23:17:28 -04:00
b0ab46056f vim-patch:8.0.0810: MS-Windows: tests still hang
Problem:    MS-Windows: tests still hang.
Solution:   Only create the XfakeHOME directory if it does not exist yet.
d0b6c6c54e
2018-07-24 22:31:26 -04:00
290a9632d6 vim-patch:8.0.0806: tests may try to create XfakeHOME twice
Problem:    Tests may try to create XfakeHOME twice.
Solution:   Avoid loading setup.vim twice.
f98246d484
2018-07-24 22:31:26 -04:00
28c3679b64 vim-patch:8.0.0805: GUI test fails with gnome2
Problem:    GUI test fails with gnome2.
Solution:   Set $HOME to an existing directory.
d1ee0043c0
2018-07-24 22:31:26 -04:00
ef86aad878 log.c: ISO 8601 date/time
After:
    INFO  2018-07-17T22:05:46.175 656 main:560: starting main loop
2018-07-24 19:36:38 +02:00
3258c6a2f4 log.c: include milliseconds
closes #8727

Before:
    INFO  180711.233956 11124 main:560: starting main loop
After:
    INFO  180711.233956.807 11124 main:560: starting main loop

Note:
  - Can't use uv_hrtime() nor uv_now(), they are not "since the epoch".
    Also, log.c can't assume a loop exists.
2018-07-24 19:36:38 +02:00
4d6a1e5566 log.c: message format
- Log-level name (INFO/ERROR/…) should be in the first column, so that
  filtering by log-level is maximally trivial.
- Use 2-digit year. 4-digit year is useless, logs don't survive for
  decades without context.

Before:
    2018/07/05 17:49:41 INFO  27596 on_process_exit:393: foo
After:
    INFO  180705.174941 27596 on_process_exit:393: foo
2018-07-24 19:25:51 +02:00
ddea519542 rename: os_get_localtime => os_localtime 2018-07-24 19:25:50 +02:00
72ddbb675f Merge pull request #8771 from bfredl/glitches
Fix redraw glitches with newgrid refactor

Fixes #8768 #8775
2018-07-24 17:45:42 +02:00
dcac926ced ui: fix glitches where scrolling region affects clearing of screen
the first implemented UI protocol clients (python-gui and builitin TUI)
allowed the cleared region to be restricted by setting the scroll region.
This was never used by nvim though, and not documented and implemented by
newer clients, to check we remain compatible with both kind of clients,
ensure the scroll region is in a reset state.
2018-07-24 16:38:51 +02:00
d545413492 screen.c: fix redrawing tabline when messages overflow screen 2018-07-24 16:38:24 +02:00
11861bc9c8 tests: add test for switching tabpage right after scroll 2018-07-24 16:37:48 +02:00
d183103b45 test: assert scroll region state for clear
some clients assume this, so tests should check it
2018-07-24 16:37:04 +02:00
ed5ac84ab0 tests: test for redrawing tabline when msgsep marker goes outside screen 2018-07-24 16:36:20 +02:00
f0a702d116 file_search: free stackp if vim_findfile() failed
ff_free_stack_element() accepts NULL ptr and returns early.
This removes the need to check if stackp is not NULL.
2018-07-24 01:15:24 -04:00
7c7701af12 vim-patch:8.1.0111: .po files do not use recommended names
Problem:    .po files do not use recommended names.
Solution:   Give a warning if the recommended name is not used.  Accept the
            recommended name for conversion. (Christian Brabandt, Ken Takata)
d1d037e901
2018-07-23 19:35:11 -04:00
57c095d5fc vim-patch:8.0.1839: script to check .po file doesn't check for plural header
Problem:    Script to check .po file doesn't check for plural header.
Solution:   Add a check that the plural header is present when needed.
9cfc7d885c
2018-07-23 12:42:46 -04:00
7cf36fc67e vim-patch:8.0.1778: script to check translations does not always work
Problem:    Script to check translations does not always work.
Solution:   Go to first line before searching for MIME.
b07bbb0d29
2018-07-23 12:41:29 -04:00
b63f5c170d vim-patch:8.0.0835: translations check with msgfmt does not work
Problem:    Translations check with msgfmt does not work.
Solution:   Add a space before the file name.
65cedb2074
2018-07-23 12:34:21 -04:00
45a2c6543c vim-patch:8.0.0830: translating messages is not ideal
Problem:    Translating messages is not ideal.
Solution:   Add a remark about obsolete messages.  Use msgfmt in the check
            script. (Christian Brabandt)
aaef1bae3c
2018-07-23 12:33:39 -04:00
1ed5abfe88 vim-patch:8.0.0794: checking translations fails with multiple NL
Problem:    The script to check translations fails if there is more than one
            NL in one line.
Solution:   Count the number of NL characters.  Make count() accept a string.
9966b21a57
2018-07-23 11:50:37 -04:00
d551a49958 vim-patch:8.0.0734: the script to check translations can be improved
Problem:    The script to check translations can be improved.
Solution:   Restore the view when no errors are found.  Check for matching
            line break at the end of the message. (Christian Brabandt)
7f93703149
2018-07-23 10:31:37 -04:00
ddc243f32a vim-patch:8.0.0726: translations cleanup script is too conservative
Problem:    Translations cleanup script is too conservative.
Solution:   Also delete untranslated messages.
4d2ba822fd
2018-07-23 10:29:41 -04:00
6285b518d4 vim-patch:8.0.1622: possible NULL pointer dereference
Problem:    Possible NULL pointer dereferencey. (Coverity)
Solution:   Reverse the check for a NULL pointer.
6ed86ad170
2018-07-23 08:34:26 -04:00
84b8612987 vim-patch:8.0.1512: warning for possibly using NULL pointer
Problem:    Warning for possibly using NULL pointer. (Coverity)
Solution:   Skip using the pointer if it's NULL.
e4db7aedab
2018-07-23 08:34:25 -04:00
9fbbec76aa vim-patch:8.0.1502: in out-of-memory situation character is not restored
Problem:    In out-of-memory situation character is not restored. (Coverity)
Solution:   Restore the character in all situations.
71a43c0137
2018-07-23 00:01:07 -04:00
c8e7a447c5 build: Enable LTO (Link Time Optimization) #8654 2018-07-23 03:22:14 +02:00
2000b6a64a Merge #8589 'VimL: Remove legacy v:xx aliases' 2018-07-23 03:18:10 +02:00
cdbfdcfcc4 doc: README: "Transitioning from Vim" note (#8763) 2018-07-23 03:06:27 +02:00
765711e272 vim-patch:8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set (#8757)
Problem:    CTRL-G j in Insert mode is incorrect when 'virtualedit' is set.
Solution:   Take coladd into account. (Christian Brabandt, closes vim/vim#2743)
db0eedec16
2018-07-23 02:11:13 +02:00
48c0e916a1 Merge #8753 from janlazo/vim-8.0.0724 2018-07-23 02:10:06 +02:00
c9f2faf3bf vim-patch:8.0.1398: :packadd does not load packages from the "start" directory (#8762)
Problem:    :packadd does not load packages from the "start" directory.
            (Alejandro Hernandez)
Solution:   Make :packadd look in the "start" directory if those packages were
            not loaded on startup.
9e1d399e63
2018-07-23 02:04:49 +02:00
03bd5a4b91 Make "v:errmsg", "v:shell_error" and "v:this_session" distinct 2018-07-23 08:47:51 +09:00
563957e3cb vim-patch:8.0.0493: crash with cd command with very long argument
Problem:    Crash with cd command with very long argument.
Solution:   Check for running out of space. (Dominique Pellé, closes vim/vim#1576)
15618fa643
2018-07-22 19:34:58 -04:00
13d29cb9ed man.vim: improve manSentence regex (#8764)
ref https://github.com/neovim/neovim/pull/8709#issuecomment-406319186
2018-07-22 18:30:38 +02:00
94841e5eae Merge pull request #8221 from bfredl/hlstate
UI grid protocol revision: line based updates and semantic highlights
2018-07-21 14:41:49 +02:00
6b8cd827a9 ui: add tests for hlstate extension 2018-07-21 13:21:59 +02:00
0bdf8979a2 ui: docs for ext_newgrid and ext_hlstate 2018-07-21 13:21:59 +02:00
1adb01c120 ui: use line-based rather than char-based updates in screen.c
Add ext_newgrid and ext_hlstate extensions. These use predefined
highlights and line-segment based updates, for efficiency and
simplicity.. The ext_hlstate extension in addition allows semantic
identification of builtin and syntax highlights.

Reimplement the old char-based updates in the remote UI layer, for
compatibility. For the moment, this is still the default. The bulitin
TUI uses the new line-based protocol.

cmdline uses curwin cursor position when ext_cmdline is active.
2018-07-21 13:21:58 +02:00
2134396074 ui: add TODO for non-working terminal linewrap
Note: this has not been working since the TUI reimplementation
2018-07-21 13:20:38 +02:00
989b585e10 highlight: refactor to use stateful representation
This allows us to keep track of the source higlight groups,
and not only the final combined highlights.
2018-07-21 13:20:37 +02:00
696e24f311 highlight: extract low-level highlight logic from syntax, ui 2018-07-21 10:37:44 +02:00
5ff90a100a Merge #8761 from janlazo/vim-8.0.1503 2018-07-20 03:56:13 +02:00
f5d7123f6c version bump 2018-07-19 21:53:21 +02:00
588e86bda6 hardcopy: refactor mch_print_text_out()
Combine variable declaration and initialization to add const.
2018-07-19 12:33:05 -04:00
8441af37d8 vim-patch:8.1.0056: crash when using :hardcopy with illegal byte
Problem:    Crash when using :hardcopy with illegal byte.
Solution:   Check for string_convert() returning NULL. (Dominique Pelle)
43dee181f5
2018-07-19 12:21:14 -04:00
2ea619c10b vim-patch:8.0.1503: access memory beyond end of string
Problem:    Access memory beyond end of string. (Coverity)
Solution:   Keep allocated memory in separate pointer.  Avoid outputting the
            NUL character.
cdd09aa51a
2018-07-18 21:20:11 -04:00
489d32f2b8 startup: fix ":if 0|syntax on|endif" bug (#8731)
Problem: ":if 0|syntax {on,off}|endif" skips the default of "syntax on"
because the executor was setting the `did_syntax_onoff` flag even though
"syntax {on,off}" is not actually executed.

closes #8728
2018-07-18 14:30:11 +02:00
031d21221e vim-patch:8.0.1799: no test for :registers command
Problem:    No test for :registers command.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#2880)
7ce551f317
2018-07-17 09:49:39 -04:00
b99bbc680e vim-patch:8.0.0727: message about what register to yank into is not translated
Problem:    Message about what register to yank into is not translated.
            (LemonBoy)
Solution:   Add _().
60d0e97497
2018-07-17 09:02:37 -04:00
eab17e5093 vim-patch:8.0.0724: the message for yanking doesn't indicate the register
Problem:    The message for yanking doesn't indicate the register.
Solution:   Show the register name in the "N lines yanked" message. (Lemonboy,
            closes vim/vim#1803, closes vim/vim#1809)
e45deb7997
2018-07-17 09:01:18 -04:00
5372d9a705 Add tests for terminal background detection 2016-07-24 01:56:33 -07:00
298608f88c Automatically detect terminal background and set bg=dark or bg=light
xterm-compatible terminals support reporting their configured colors
back to the application.  Use this to obtain the current background
color, compute its luminance to classify it as light or dark, and set
'bg' accordingly.  Also set the default for 'bg', so that `:set bg&`
will revert to that detected default.
2016-07-24 01:56:33 -07:00
1927 changed files with 378330 additions and 144705 deletions

44
.builds/freebsd.yml Normal file
View File

@ -0,0 +1,44 @@
image: freebsd/12.x
packages:
- cmake
- gmake
- ninja
- libtool
- sha
- automake
- pkgconf
- unzip
- wget
- gettext
- python
- libffi
sources:
- https://github.com/neovim/neovim
environment:
SOURCEHUT: 1
LANG: en_US.UTF-8
CMAKE_EXTRA_FLAGS: -DCI_BUILD=ON -DMIN_LOG_LEVEL=3
tasks:
- build-deps: |
cd neovim
gmake deps
- build: |
cd neovim
gmake CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_EXTRA_FLAGS="${CMAKE_EXTRA_FLAGS}" nvim
- functionaltest: |
cd neovim
gmake functionaltest
- unittest: |
cd neovim
gmake unittest
# Unfortunately, oldtest is tanking hard on sourcehut's FreeBSD instance
# and not producing any logs as a result. So don't do this task for now.
# Ref: https://github.com/neovim/neovim/pull/11477#discussion_r352095005.
# - test-oldtest: |
# cd neovim
# gmake oldtest

43
.builds/openbsd.yml Normal file
View File

@ -0,0 +1,43 @@
# sourcehut CI: https://builds.sr.ht/~jmk/neovim
image: openbsd/6.9
packages:
- autoconf-2.71
- automake-1.16.3
- cmake
- gettext-runtime-0.21p1
- gettext-tools-0.21p1
- gmake
- libtool
- ninja-1.10.2p0
- unzip-6.0p14
sources:
- https://github.com/neovim/neovim
environment:
SOURCEHUT: 1
LC_CTYPE: en_US.UTF-8
CMAKE_EXTRA_FLAGS: -DCI_BUILD=ON -DMIN_LOG_LEVEL=3
tasks:
- build-deps: |
export AUTOCONF_VERSION=2.71
export AUTOMAKE_VERSION=1.16
mkdir neovim/.deps
cd neovim/.deps
cmake -G Ninja ../third-party/
cmake --build . --config RelWithDebInfo
- build: |
mkdir neovim/build
cd neovim/build
cmake -G Ninja $CMAKE_EXTRA_FLAGS ..
cmake --build . --config RelWithDebInfo
./bin/nvim --version
- functionaltest: |
cd neovim/build
cmake --build . --config RelWithDebInfo --target functionaltest
- oldtest: |
cd neovim
gmake oldtest

View File

@ -1,6 +1,6 @@
BasedOnStyle: Google
Language: Cpp
ColumnLimit: 80
ColumnLimit: 100
IndentWidth: 2
TabWidth: 2
UseTab: Never
@ -8,6 +8,7 @@ IndentCaseLabels: true
BreakBeforeBraces: Linux
AlignEscapedNewlinesLeft: false
AllowShortFunctionsOnASingleLine: false
AlignTrailingComments: true
SpacesBeforeTrailingComments: 2
PenaltyReturnTypeOnItsOwnLine: 200
AllowAllParametersOfDeclarationOnNextLine: false
@ -15,4 +16,5 @@ AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
BinPackParameters: false
BreakBeforeBinaryOperators: true
BreakBeforeTernaryOperators: true
ContinuationIndentWidth: 4

2
.clangd Normal file
View File

@ -0,0 +1,2 @@
CompileFlags:
CompilationDatabase: build/ # Search build/ directory for compile_commands.json

View File

@ -3,14 +3,11 @@ root = true
[*]
indent_style = space
indent_size = 2
tab_width = 8
end_of_line = lf
insert_final_newline = true
charset = utf_8
charset = utf-8
[runtime/doc/*.txt]
[{Makefile,**/Makefile,runtime/doc/*.txt}]
indent_style = tab
indent_size = 8
[Makefile]
indent_style = tab
tab_width = 4

2
.flake8 Normal file
View File

@ -0,0 +1,2 @@
[flake8]
max-line-length = 88

38
.git-blame-ignore-revs Normal file
View File

@ -0,0 +1,38 @@
# To use this file (requires git 2.23):
# git config blame.ignoreRevsFile .git-blame-ignore-revs
# eval.c: factor out eval/funcs.c #11828
# - This is a move/rename. git 2.33 doesn't know how to ignore it.
# It is here anyway, (1) in case git improves later, and (2) to
# save you the trouble of attempting this.
6c5bbf07d988ef55e5e8ba8d70b62c1f0885261b
# symbol renames
6186df3562e33e92f04ed8c850204ceabc4746e1
# style (uncrustify, etc.)
2d240024acbd68c2d3f82bc72cb12b1a4928c6bf
61178778230e609d68b271ffd53ffd993cd23c42
15af08ad176339d1f269ce264bb0efea283c9536
47f99d66440ae8be26b34531989ac61edc1ad9fe
1e49a1c888a3d9a581f4aa409a26ada3ac2417cb
3b3dbcf7b7ba5466e6ab643e256f2374b520a6b2
e8067d1490a31ff76143d576dc9948b4f09c6c55
d5b66e88601b4d2fde5d905f9d12847126ba4449
07715044887d82f74254e64c4c32fa49b0501bea
6ed43f8f1caad702f9590d174c5ec142f3d85b18
0a83017fe95df0290adb98ec6bf457b96a3fab17
867e8885991ae450019c18aa5e42546bd4b62c2c
1f49268c46fcbe65f7e2e2cb620e6f51c059cf9e
51a98aa0c2fe3231a0ffc8a78189bc6fafd6abf6
853346a94d6aa78c97314a3b217fb5a5408a47f1
30fefee684e641a0c6867446c6de30efa2f0a126
f4ca3a29ddcb0c98e8e09c45a6342af709f8cc45
48e67b229415b4e2b3315bd00b817e5f9ab970c8
7a26eb8a567cbc831d4f629f9eccb767a44436b8
2f9b9e61d7417183f2d9f36d804247c0926be9d4
c0767bd4f3ce7b34bb77da0657c49ba10ba1b32e
d90fb1c0bfc1e64c783c385a79e7de87013dadba
9c268263b1792d00b3ffdfd7495af2575862656e
8c74c895b300bcee5fa937a2329d1d4756567b42
40be47e0faef7aa015eb4ba44ceb1ee1a03e97cf

6
.gitattributes vendored Executable file
View File

@ -0,0 +1,6 @@
*.h linguist-language=C
src/nvim/testdir/test42.in diff
.github/ export-ignore
.travis.yml export-ignore
codecov.yml export-ignore
.builds/ export-ignore

2
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,2 @@
github: neovim
open_collective: neovim

75
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@ -0,0 +1,75 @@
name: Bug Report
description: Report a problem in Neovim
labels: [bug]
body:
- type: markdown
attributes:
value: |
_Before reporting:_ search [existing issues](https://github.com/neovim/neovim/issues?q=is%3Aissue+is%3Aopen+label%3Abug) and check the [FAQ](https://github.com/neovim/neovim/wiki/FAQ). Usage questions such as "How do I...?" belong on the [Neovim Discourse](https://neovim.discourse.group/c/7-category/7) and will be closed.
- type: input
attributes:
label: "Neovim version (nvim -v)"
placeholder: "0.6.0 commit db1b0ee3b30f"
validations:
required: true
- type: input
attributes:
label: "Vim (not Nvim) behaves the same?"
description: "Does `vim -u DEFAULTS` have the same issue? Note the exact Vim version (`8.x.yyyy`)."
placeholder: "no, vim 7.3.432"
validations:
required: true
- type: input
attributes:
label: "Operating system/version"
placeholder: "macOS 11.5"
validations:
required: true
- type: input
attributes:
label: "Terminal name/version"
placeholder: "xterm 3.1"
validations:
required: true
- type: input
attributes:
label: "$TERM environment variable"
placeholder: "xterm-256color"
validations:
required: true
- type: input
attributes:
label: "Installation"
description: "How did you install neovim: build from repo / system package manager / appimage / homebrew / snap / chocolatey / other (describe)?"
placeholder: "Arch User Repository (AUR)"
validations:
required: true
- type: textarea
attributes:
label: "How to reproduce the issue"
description: |
- Steps to reproduce using `nvim --clean` ("factory defaults").
- For build failures: list the exact steps including CMake flags (if any).
- For shell-related problems: try `env -i TERM=ansi-256color "$(which nvim)"`.
placeholder: |
nvim --clean
:edit foo
yiwp
validations:
required: true
- type: textarea
attributes:
label: "Expected behavior"
description: "Describe the behavior you expect. May include logs, images, or videos."
validations:
required: true
- type: textarea
attributes:
label: "Actual behavior"
validations:
required: true

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Question
url: https://neovim.discourse.group/
about: Ask questions about configuration and usage of Neovim

View File

@ -0,0 +1,21 @@
name: Feature request
description: Request an enhancement for Neovim
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Before requesting: search [existing issues](https://github.com/neovim/neovim/labels/enhancement) and check the [FAQ](https://github.com/neovim/neovim/wiki/FAQ).
- type: input
attributes:
label: "Feature already in Vim?"
description: "Does the feature already exist in Vim? If possible, specify which version (or commit) that introduced it."
placeholder: "Yes, Vim 7.3.432"
- type: textarea
attributes:
label: "Feature description"
validations:
required: true

View File

@ -0,0 +1,61 @@
name: Language server (LSP) client bug
description: Report an issue with Neovim LSP
labels: [bug, lsp]
body:
- type: markdown
attributes:
value: |
_Before reporting:_ search [existing issues](https://github.com/neovim/neovim/issues?q=is%3Aissue+is%3Aopen+label%3Abug) and check the [FAQ](https://github.com/neovim/neovim/wiki/FAQ). Usage questions such as "How do I...?" or "Why isn't X language server/feature working?" belong on the [Neovim Discourse](https://neovim.discourse.group/c/7-category/7) and will be closed.
- type: input
attributes:
label: "Neovim version (nvim -v)"
placeholder: "0.6.0 commit db1b0ee3b30f"
validations:
required: true
- type: input
attributes:
label: "Language server name/version"
placeholder: "rls 0.5.2"
validations:
required: true
- type: input
attributes:
label: "Operating system/version"
placeholder: "emacs 23"
validations:
required: true
- type: textarea
attributes:
label: ':checkhealth'
description: |
Paste the results from `nvim -c ":checkhealth nvim lspconfig"`
render: markdown
- type: textarea
attributes:
label: 'Steps to reproduce using "nvim -u minimal_init.lua"'
description: |
- Download the minimal config with `curl -LO https://raw.githubusercontent.com/neovim/nvim-lspconfig/master/test/minimal_init.lua` and modify it to include any specific commands or servers pertaining to your issues.
- _Note_: if the issue is with an autocompletion or other LSP plugin, report to that plugin's issue tracker.
validations:
required: true
- type: textarea
attributes:
label: "Expected behavior"
description: "Describe the behavior you expect. May include logs, images, or videos."
- type: textarea
attributes:
label: "Actual behavior"
- type: input
attributes:
label: "Log file"
placeholder: "https://gist.github.com/prakhar1989/1b0a2c9849b2e1e912fb"
description: |
- Upload `lsp.log` before and after the problem in a [secret gist](https://gist.github.com/). Paste the URL to the gist.
- You can set the log level by adding `vim.lsp.set_log_level("debug")` after setting up LSP in your config.
- You can find the location of the log with `:lua print(vim.lsp.get_log_path())`

61
.github/labeler.yml vendored Normal file
View File

@ -0,0 +1,61 @@
"lsp":
- runtime/lua/vim/lsp.lua
- runtime/lua/vim/lsp/*
"lua":
- runtime/lua/**/*
- src/nvim/lua/*
"tui":
- src/nvim/tui/tui.*
"treesitter":
- src/nvim/lua/treesitter.*
- runtime/lua/vim/treesitter.lua
- runtime/lua/vim/treesitter/*
"diagnostic":
- runtime/lua/vim/diagnostic.lua
"dependencies":
- third-party/**/*
"spell":
- src/nvim/spell*
"terminal":
- src/nvim/terminal.*
"column":
- src/nvim/mark.h
- src/nvim/mark.c
- src/nvim/sign*
"folds":
- src/nvim/fold*
"mouse":
- src/nvim/mouse*
"documentation":
- all: ["runtime/doc/*"]
"clipboard":
- runtime/autoload/provider/clipboard.vim
"diff":
- src/nvim/diff.*
"build":
- CMakeLists.txt
- "**/CMakeLists.txt"
- "**/*.cmake"
"tests":
- all: ["test/**/*"]
"ci":
- .github/labeler.yml
- .github/workflows/**/*
- .builds/*
- ci/**/*

53
.github/workflows/api-docs.yml vendored Normal file
View File

@ -0,0 +1,53 @@
name: Autogenerate API docs
on:
push:
paths:
- 'src/nvim/api/*.[ch]'
- 'src/nvim/**.lua'
- 'runtime/lua/**.lua'
branches:
- 'master'
- 'release-[0-9]+.[0-9]+'
workflow_dispatch:
jobs:
regen-api-docs:
runs-on: ubuntu-20.04
permissions:
contents: write
pull-requests: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y python3 luajit
conda install -c conda-forge doxygen=1.9.2 msgpack-python
echo "$CONDA/bin" >> $GITHUB_PATH
- name: Setup git config
run: |
git config --global user.name 'marvim'
git config --global user.email 'marvim@users.noreply.github.com'
- run: printf 'DOC_BRANCH=marvim/api-doc-update/%s\n' ${GITHUB_REF#refs/heads/} >> $GITHUB_ENV
- name: Generate docs
id: docs
run: |
git checkout -b ${DOC_BRANCH}
python3 scripts/gen_vimdoc.py
printf '::set-output name=UPDATED_DOCS::%s\n' $([ -z "$(git diff)" ]; echo $?)
- name: Automatic PR
if: ${{ steps.docs.outputs.UPDATED_DOCS != 0 }}
run: |
git add -u
git commit -m 'docs: regenerate'
git push --force https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY} ${DOC_BRANCH}
gh pr create --fill --base ${GITHUB_REF#refs/heads/} --head ${DOC_BRANCH} || true

33
.github/workflows/backport.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Backport
on:
pull_request_target:
types: [closed, labeled]
issue_comment:
types: [created]
jobs:
backport:
permissions:
contents: write
pull-requests: write
name: Backport Pull Request
if: >
github.repository_owner == 'neovim' && (
github.event_name == 'pull_request' &&
github.event.pull_request.merged
) || (
github.event_name == 'issue_comment' &&
github.event.issue.pull_request &&
contains(github.event.comment.body, '/backport')
)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
# required to find all branches
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: zeebe-io/backport-action@v0.0.7
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}

185
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,185 @@
name: CI
on:
push:
branches:
- 'master'
- 'release-[0-9]+.[0-9]+'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches:
- 'master'
- 'release-[0-9]+.[0-9]+'
jobs:
unixish:
name: ${{ matrix.runner }} ${{ matrix.flavor }} (cc=${{ matrix.cc }})
strategy:
fail-fast: false
matrix:
include:
- flavor: asan
cc: clang-12
runner: ubuntu-20.04
os: linux
- flavor: lint
cc: gcc
runner: ubuntu-20.04
os: linux
- flavor: tsan
cc: clang-12
runner: ubuntu-20.04
os: linux
- cc: clang
runner: macos-10.15
os: osx
- cc: clang
runner: macos-11.0
os: osx
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
if: github.event.pull_request.draft == false
env:
CC: ${{ matrix.cc }}
CI_OS_NAME: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Setup common environment variables
run: ./.github/workflows/env.sh ${{ matrix.flavor }}
- name: Install apt packages
if: matrix.os == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential ccache cmake cpanminus cscope gcc-multilib gdb gettext gperf language-pack-tr libtool-bin locales ninja-build pkg-config python3 python3-pip python3-setuptools unzip valgrind xclip
- name: Install new clang
if: matrix.flavor == 'asan' || matrix.flavor == 'tsan'
run: |
wget https://apt.llvm.org/llvm.sh
chmod a+x llvm.sh
sudo ./llvm.sh 12
rm llvm.sh
- name: Install brew packages
if: matrix.os == 'osx'
run: |
# Workaround brew issues
rm -f /usr/local/bin/2to3
brew update >/dev/null
brew upgrade
brew install automake ccache perl cpanminus ninja
- name: Setup interpreter packages
run: |
./ci/before_install.sh
./ci/install.sh
- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
${{ env.CACHE_NVIM_DEPS_DIR }}
~/.ccache
key: ${{ matrix.runner }}-${{ matrix.flavor }}-${{ matrix.cc }}-${{ hashFiles('cmake/*', 'third-party/**', '**/CMakeLists.txt') }}-${{ github.base_ref }}
- name: Build third-party
run: ./ci/before_script.sh
- name: Build and test
run: ./ci/script.sh
- name: Cache dependencies
if: ${{ success() }}
run: ./ci/before_cache.sh
windows:
runs-on: windows-2016
if: github.event.pull_request.draft == false
env:
DEPS_BUILD_DIR: ${{ format('{0}/nvim-deps', github.workspace) }}
DEPS_PREFIX: ${{ format('{0}/nvim-deps/usr', github.workspace) }}
strategy:
fail-fast: false
matrix:
config: [ MINGW_64-gcov, MSVC_64 ]
name: windows (${{ matrix.config }})
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ${{ env.DEPS_BUILD_DIR }}
key: ${{ matrix.config }}-${{ hashFiles('third-party\**') }}
- name: Run CI
run: powershell ci\build.ps1
env:
CONFIGURATION: ${{ matrix.config }}
functionaltest:
name: ${{ matrix.runner }} ${{ matrix.flavor }} (cc=${{ matrix.cc }})
strategy:
fail-fast: false
matrix:
include:
- flavor: functionaltest-lua
cc: gcc
runner: ubuntu-20.04
os: linux
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
env:
CC: ${{ matrix.cc }}
CI_OS_NAME: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Setup commom environment variables
run: ./.github/workflows/env.sh ${{ matrix.flavor }}
- name: Install apt packages
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential ccache cmake cpanminus cscope gcc-multilib gdb gettext gperf language-pack-tr libtool-bin locales ninja-build pkg-config python3 python3-pip python3-setuptools unzip valgrind xclip
- name: Install minimum required version of cmake
env:
CMAKE_URL: 'https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.sh'
CMAKE_VERSION: '3.10.0'
shell: bash
run: |
curl --retry 5 --silent --show-error --fail -o /tmp/cmake-installer.sh "$CMAKE_URL"
mkdir -p "$HOME/.local/bin" /opt/cmake-custom
chmod a+x /tmp/cmake-installer.sh
/tmp/cmake-installer.sh --prefix=/opt/cmake-custom --skip-license
ln -sfn /opt/cmake-custom/bin/cmake "$HOME/.local/bin/cmake"
cmake_version="$(cmake --version | head -1)"
echo "$cmake_version" | grep -qF "cmake version $CMAKE_VERSION" || {
echo "Unexpected CMake version: $cmake_version"
exit 1
}
- name: Setup interpreter packages
run: |
./ci/before_install.sh
./ci/install.sh
- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
${{ env.CACHE_NVIM_DEPS_DIR }}
~/.ccache
key: ${{ matrix.runner }}-${{ matrix.flavor }}-${{ matrix.cc }}-${{ hashFiles('cmake/*', 'third-party/**', '**/CMakeLists.txt') }}-${{ github.base_ref }}
- name: Build third-party
run: ./ci/before_script.sh
- name: Build and test
run: ./ci/script.sh
- name: Cache dependencies
if: ${{ success() }}
run: ./ci/before_cache.sh

19
.github/workflows/commitlint.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: "Commit Linter"
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
jobs:
lint-commits:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2.3.1
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- uses: rhysd/action-setup-vim@v1
with:
neovim: true
- run: nvim --clean -es +"lua require('scripts.lintcommit').main({trace=true})"

44
.github/workflows/coverity-scan.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: Coverity
on:
schedule:
- cron: '0 10 * * 1' # Run every Monday at 00:10
workflow_dispatch:
jobs:
scan:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential cmake gettext gperf libtool-bin locales ninja-build pkg-config unzip
- name: Download Coverity
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=neovim%2Fneovim" -O coverity_tool.tgz
mkdir cov-scan
tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
- name: Build dependencies
run: make deps
- name: Build/scan neovim
run: |
env PATH=$(pwd)/cov-scan/bin:$PATH cov-build --dir cov-int make
- name: Submit results
run: |
tar zcf cov-scan.tgz cov-int
curl --form token=$TOKEN \
--form email=$EMAIL \
--form file=@cov-scan.tgz \
--form version="$(git rev-parse HEAD)" \
--form description="Weekly GHA scan" \
'https://scan.coverity.com/builds?project=neovim%2Fneovim'
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}

65
.github/workflows/env.sh vendored Executable file
View File

@ -0,0 +1,65 @@
#!/bin/bash
set -e -u
FLAVOR=${1:-}
cat <<EOF >> "$GITHUB_PATH"
$HOME/.local/bin
EOF
cat <<EOF >> "$GITHUB_ENV"
CACHE_ENABLE=true
CI_TARGET=tests
CI_BUILD_DIR=$GITHUB_WORKSPACE
BUILD_DIR=$GITHUB_WORKSPACE/build
DEPS_BUILD_DIR=$HOME/nvim-deps
INSTALL_PREFIX=$HOME/nvim-install
LOG_DIR=$GITHUB_WORKSPACE/build/log
NVIM_LOG_FILE=$GITHUB_WORKSPACE/build/.nvimlog
VALGRIND_LOG=$GITHUB_WORKSPACE/build/log/valgrind-%p.log
CACHE_NVIM_DEPS_DIR=$HOME/.cache/nvim-deps
CACHE_MARKER=$HOME/.cache/nvim-deps/.ci_cache_marker
CCACHE_BASEDIR=$GITHUB_WORKSPACE
CCACHE_COMPRESS=1
CCACHE_SLOPPINESS=time_macros,file_macro
CCACHE_DIR=$HOME/.ccache
EOF
DEPS_CMAKE_FLAGS=-DUSE_BUNDLED_GPERF=OFF
FUNCTIONALTEST=functionaltest
BUILD_FLAGS="CMAKE_FLAGS=-DCI_BUILD=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=$HOME/nvim-install -DBUSTED_OUTPUT_TYPE=nvim -DDEPS_PREFIX=$HOME/nvim-deps/usr -DMIN_LOG_LEVEL=3"
case "$FLAVOR" in
asan)
BUILD_FLAGS="$BUILD_FLAGS -DPREFER_LUA=ON"
cat <<EOF >> "$GITHUB_ENV"
CLANG_SANITIZER=ASAN_UBSAN
SYMBOLIZER=asan_symbolize-12
ASAN_OPTIONS=detect_leaks=1:check_initialization_order=1:log_path=$GITHUB_WORKSPACE/build/log/asan
UBSAN_OPTIONS=print_stacktrace=1 log_path=$GITHUB_WORKSPACE/build/log/ubsan
EOF
;;
tsan)
cat <<EOF >> "$GITHUB_ENV"
TSAN_OPTIONS=log_path=$GITHUB_WORKSPACE/build/log/tsan
EOF
;;
lint)
cat <<EOF >> "$GITHUB_ENV"
CI_TARGET=lint
EOF
;;
functionaltest-lua)
BUILD_FLAGS="$BUILD_FLAGS -DPREFER_LUA=ON"
FUNCTIONALTEST=functionaltest-lua
DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -DUSE_BUNDLED_LUAJIT=OFF"
;;
*)
;;
esac
cat <<EOF >> "$GITHUB_ENV"
$BUILD_FLAGS
DEPS_CMAKE_FLAGS=$DEPS_CMAKE_FLAGS
FUNCTIONALTEST=$FUNCTIONALTEST
EOF

30
.github/workflows/labeler.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: "Pull Request Labeler"
on:
pull_request_target:
types: opened
jobs:
triage:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/labeler@main
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
type-scope:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_TITLE: ${{ github.event.pull_request.title }}
steps:
# Extract type and try to add it as a label
- run: gh pr edit "$PR_NUMBER" --add-label "$(echo "$PR_TITLE" | sed -E 's|([[:alpha:]]+)(\(.*\))?!?:.*|\1|')" || true
# Extract scope and try to add it as a label
- run: gh pr edit "$PR_NUMBER" --add-label "$(echo "$PR_TITLE" | sed -E 's|[[:alpha:]]+\((.+)\)!?:.*|\1|')" || true

40
.github/workflows/notes.md vendored Normal file
View File

@ -0,0 +1,40 @@
```
${NVIM_VERSION}
```
## Install
### Windows
1. Extract **nvim-win64.zip**
2. Run `nvim-qt.exe`
### macOS
1. Download **nvim-macos.tar.gz**
2. Extract: `tar xzvf nvim-macos.tar.gz`
3. Run `./nvim-osx64/bin/nvim`
### Linux (x64)
1. Download **nvim.appimage**
2. Run `chmod u+x nvim.appimage && ./nvim.appimage`
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
```
./nvim.appimage --appimage-extract
./squashfs-root/usr/bin/nvim
```
### Other
- Install by [package manager](https://github.com/neovim/neovim/wiki/Installing-Neovim)
## SHA256 Checksums
```
${SHA_LINUX_64}
${SHA_APP_IMAGE}
${SHA_APP_IMAGE_ZSYNC}
${SHA_MACOS}
${SHA_WIN_64}
```

222
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,222 @@
name: Release
on:
schedule:
- cron: '5 5 * * *'
workflow_dispatch:
inputs:
tag_name:
description: 'Tag name for release'
required: false
default: nightly
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
# Build on the oldest supported images, so we have broader compatibility
# Upgrade to gcc-11 to prevent it from using its builtins (#14150)
jobs:
linux:
runs-on: ubuntu-18.04
outputs:
version: ${{ steps.build.outputs.version }}
release: ${{ steps.build.outputs.release }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential cmake gcc-11 gettext gperf libtool-bin locales ninja-build pkg-config unzip
- if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly')
run: printf 'NVIM_BUILD_TYPE=Release\n' >> $GITHUB_ENV
- if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly')
run: printf 'NVIM_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV
- name: Build release
id: build
run: |
CC=gcc-11 make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH="
printf '::set-output name=version::%s\n' "$(./build/bin/nvim --version | head -n 3 | sed -z 's/\n/%0A/g')"
printf '::set-output name=release::%s\n' "$(./build/bin/nvim --version | head -n 1)"
make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-linux64" install
cd "$GITHUB_WORKSPACE/build/release"
tar cfz nvim-linux64.tar.gz nvim-linux64
- uses: actions/upload-artifact@v2
with:
name: nvim-linux64
path: build/release/nvim-linux64.tar.gz
retention-days: 1
appimage:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential cmake gcc-11 gettext gperf libtool-bin locales ninja-build pkg-config unzip
- if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly')
run: CC=gcc-11 make appimage-latest
- if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly')
run: CC=gcc-11 make appimage-nightly
- uses: actions/upload-artifact@v2
with:
name: appimage
path: build/bin/nvim.appimage
retention-days: 1
- uses: actions/upload-artifact@v2
with:
name: appimage
path: build/bin/nvim.appimage.zsync
retention-days: 1
macOS:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install brew packages
run: |
rm -f /usr/local/bin/2to3
brew update >/dev/null
brew upgrade
brew install automake ninja
- if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly')
run: printf 'NVIM_BUILD_TYPE=Release\n' >> $GITHUB_ENV
- if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly')
run: printf 'NVIM_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV
- name: Build release
run: |
make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11"
make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-osx64" install
- name: Create package
run: |
cd "$GITHUB_WORKSPACE/build/release"
mkdir -p nvim-osx64/libs
libs=($(otool -L nvim-osx64/bin/nvim | sed 1d | sed -E -e 's|^[[:space:]]*||' -e 's| .*||'))
echo "libs:"
for lib in "${libs[@]}"; do
if echo "$lib" | grep -q -E 'libSystem|CoreFoundation' 2>/dev/null; then
echo " [skipped] $lib"
else
echo " $lib"
relname="libs/${lib##*/}"
cp -L "$lib" "nvim-osx64/$relname"
install_name_tool -change "$lib" "@executable_path/../$relname" nvim-osx64/bin/nvim
fi
done
tar cfz nvim-macos.tar.gz nvim-osx64
- uses: actions/upload-artifact@v2
with:
name: nvim-macos
path: build/release/nvim-macos.tar.gz
retention-days: 1
windows:
runs-on: windows-2016
env:
DEPS_BUILD_DIR: ${{ format('{0}/nvim-deps', github.workspace) }}
DEPS_PREFIX: ${{ format('{0}/nvim-deps/usr', github.workspace) }}
strategy:
matrix:
include:
- config: MSVC_64
archive: nvim-win64
name: windows (${{ matrix.config }})
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- run: powershell ci\build.ps1 -NoTests
env:
CONFIGURATION: ${{ matrix.config }}
- run: move build\Neovim.zip build\${{ matrix.archive }}.zip
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.archive }}
path: build/${{ matrix.archive }}.zip
retention-days: 1
publish:
needs: [linux, appimage, macOS, windows]
runs-on: ubuntu-20.04
env:
GH_REPO: ${{ github.repository }}
permissions:
contents: write
steps:
# Must perform checkout first, since it deletes the target directory
# before running, and would therefore delete the downloaded artifacts
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y gettext-base
- if: github.event_name == 'workflow_dispatch'
run: echo "TAG_NAME=${{ github.event.inputs.tag_name }}" >> $GITHUB_ENV
- if: github.event_name == 'schedule'
run: echo 'TAG_NAME=nightly' >> $GITHUB_ENV
- if: github.event_name == 'push'
run: |
TAG_NAME=${{ github.ref }}
echo "TAG_NAME=${TAG_NAME#refs/tags/}" >> $GITHUB_ENV
- if: env.TAG_NAME == 'nightly'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
(echo 'SUBJECT=Nvim development (prerelease) build';
echo 'PRERELEASE=--prerelease') >> $GITHUB_ENV
gh release delete nightly --yes || true
git push origin :nightly || true
- if: env.TAG_NAME != 'nightly'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
(echo 'SUBJECT=Nvim release build';
echo 'PRERELEASE=') >> $GITHUB_ENV
gh release delete stable --yes || true
git push origin :stable || true
# `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the
# containing folder from the output.
- name: Generate Linux64 SHA256 checksums
run: |
cd ./nvim-linux64
sha256sum nvim-linux64.tar.gz > nvim-linux64.tar.gz.sha256sum
echo "SHA_LINUX_64=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV
- name: Generate App Image SHA256 checksums
run: |
cd ./appimage
sha256sum nvim.appimage > nvim.appimage.sha256sum
echo "SHA_APP_IMAGE=$(cat nvim.appimage.sha256sum)" >> $GITHUB_ENV
- name: Generate App Image Zsync SHA256 checksums
run: |
cd ./appimage
sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum
echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV
- name: Generate macOS SHA256 checksums
run: |
cd ./nvim-macos
sha256sum nvim-macos.tar.gz > nvim-macos.tar.gz.sha256sum
echo "SHA_MACOS=$(cat nvim-macos.tar.gz.sha256sum)" >> $GITHUB_ENV
- name: Generate Win64 SHA256 checksums
run: |
cd ./nvim-win64
sha256sum nvim-win64.zip > nvim-win64.zip.sha256sum
echo "SHA_WIN_64=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
- name: Publish release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NVIM_VERSION: ${{ needs.linux.outputs.version }}
run: |
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/*
if [ "$TAG_NAME" != "nightly" ]; then
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/*
fi

33
.github/workflows/squash-typos.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Squash Typo Pull Requests
on:
pull_request_target:
types: labeled
concurrency:
group: ${{ github.workflow }}
jobs:
build:
if: github.event.label.name == 'typo'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
- name: Setup git config
run: |
git config --global user.name 'marvim'
git config --global user.email 'marvim@users.noreply.github.com'
- run: python scripts/squash_typos.py
env:
PR_NUMBER: ${{ github.event.number }}

52
.github/workflows/vim-patches.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: vim-patches
on:
schedule:
- cron: '3 3 * * *'
jobs:
update-vim-patches:
runs-on: ubuntu-20.04
permissions:
contents: write
pull-requests: write
env:
VIM_SOURCE_DIR: ${{ format('{0}/vim-src', github.workspace) }}
VERSION_BRANCH: marvim/ci-version-update
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/checkout@v2
with:
repository: vim/vim
path: ${{ env.VIM_SOURCE_DIR }}
fetch-depth: 0
- run: |
gh release download -R neovim/neovim -p nvim.appimage
chmod a+x nvim.appimage
mkdir -p $HOME/.local/bin
mv nvim.appimage $HOME/.local/bin/nvim
printf '%s\n' "$HOME/.local/bin" >> $GITHUB_PATH
- name: Setup git config
run: |
git config --global user.name 'marvim'
git config --global user.email 'marvim@users.noreply.github.com'
- name: Update src/version.c
id: update-version
run: |
git checkout -b ${VERSION_BRANCH}
nvim -i NONE -u NONE --headless +'luafile scripts/vimpatch.lua' +q
printf '::set-output name=NEW_PATCHES::%s\n' $([ -z "$(git diff)" ]; echo $?)
- name: Automatic PR
if: ${{ steps.update-version.outputs.NEW_PATCHES != 0 }}
run: |
git add -u
git commit -m 'version.c: update [skip ci]'
git push --force https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY} ${VERSION_BRANCH}
gh pr create --fill --label vim-patch --base ${GITHUB_REF#refs/heads/} --head ${VERSION_BRANCH} || true

39
.gitignore vendored
View File

@ -1,15 +1,21 @@
# Tools
.ropeproject/
# Visual Studio
/venv/
compile_commands.json
# IDEs
/.vs/
/.vscode/
/.idea/
# Build/deps dir
/build/
/cmake-build-debug/
/dist/
/.deps/
/tmp/
/.clangd/
/.cache/clangd/
/.ccls-cache/
.DS_Store
*.mo
.*.sw?
*~
@ -17,8 +23,6 @@
*.o
*.so
tags
/src/nvim/po/vim.pot
/src/nvim/po/*.ck
@ -26,13 +30,14 @@ tags
/.nvimlog
# Generated by scripts/vim-patch.sh
/.vim-src/
/.vim-src
*.rej
# Generated by old (Vim) tests.
/src/nvim/testdir/del
/src/nvim/testdir/test*.out
/src/nvim/testdir/test*.res
/src/nvim/testdir/test.log
/src/nvim/testdir/test*.log
/src/nvim/testdir/messages
/src/nvim/testdir/viminfo
/src/nvim/testdir/test.ok
@ -40,17 +45,29 @@ tags
/src/nvim/testdir/X*
/src/nvim/testdir/valgrind.*
/src/nvim/testdir/.gdbinit
/runtime/indent/testdir/*.out
+runtime/indent/testdir/*.fail
# Generated by src/nvim/testdir/runnvim.sh.
/src/nvim/testdir/*.tlog
# Generated by unit tests.
/test/includes/post/
# Generated by luacheck during `make testlint'
/test/.luacheckcache
# Generated by luacheck during `make lualint'
.luacheckcache
# local make targets
local.mk
# runtime/doc
# Generated from :help docs
tags
/runtime/doc/*.html
/runtime/doc/tags.ref
/runtime/doc/errors.log
# Generated by gen_vimdoc.py:
/runtime/doc/*.mpack
/tmp-*-doc
# vim patches
/vim-*.patch

31
.luacheckrc Normal file
View File

@ -0,0 +1,31 @@
-- vim: ft=lua tw=80
stds.nvim = {
read_globals = { "jit" }
}
std = "lua51+nvim"
-- Ignore W211 (unused variable) with preload files.
files["**/preload.lua"] = {ignore = { "211" }}
-- Allow vim module to modify itself, but only here.
files["src/nvim/lua/vim.lua"] = {ignore = { "122/vim" }}
-- Don't report unused self arguments of methods.
self = false
-- Rerun tests only if their modification time changed.
cache = true
ignore = {
"631", -- max_line_length
"212/_.*", -- unused argument, for vars with "_" prefix
}
-- Global objects defined by the C code
read_globals = {
"vim",
}
exclude_files = {
'test/functional/fixtures/lua/syntax_error.lua',
}

22
.luacov Normal file
View File

@ -0,0 +1,22 @@
-- Configuration file for LuaCov
local source = require("lfs").currentdir()
local function pesc(s)
assert(type(s) == 'string', s)
return s:gsub('[%(%)%.%%%+%-%*%?%[%]%^%$]', '%%%1')
end
return {
include = {
-- Absolute paths (starting with source dir, not hidden (i.e. .deps)).
pesc(source) .. "[/\\][^.].+",
-- Relative (non-hidden) paths.
'^[^/\\.]',
},
modules = {
['vim'] = 'runtime/lua/vim/shared.lua'
},
}
-- vim: ft=lua tw=80 sw=2 et

View File

@ -1,17 +1,29 @@
dist: trusty
sudo: false
dist: bionic
language: c
env:
global:
# Encrypted environment variables, see
# http://docs.travis-ci.com/user/encryption-keys/
#
# SNAP_SECRET_KEY: generated by:
# travis encrypt SNAP_SECRET_KEY=xx --add
# https://github.com/neovim/neovim/pull/11428
# snapcraft key expires after 1 year. Steps to refresh it:
# 1. snapcraft enable-ci travis --refresh
# 2. mv .snapcraft/travis_snapcraft.cfg ci/snap/travis_snapcraft.cfg
# 3. Copy after_success command to ci/snap/deploy.sh from .travis.yml
# 4. Undo changes to .travis.yml
- secure: hd0qn2u8ABbJg5Bx4pBRcUQbKYFmcSHoecyHIPTCnGJT+NI41Bvm/IkN/N5DhBF+LbD3Q2nmR/dzI5H/dqS7RxMFvEx1DuFLendFHHX3MYf0AuKpXYY3gwgMTmqx8p/v6srlU7RBGWNGzHCWqksAem+EIWCe3I7WvfdKo1/DV/Y=
- PATH="$HOME/.local/bin:$PATH"
# Set "false" to force rebuild of third-party dependencies.
- CACHE_ENABLE=true
# Build directory for Neovim.
- BUILD_DIR="$TRAVIS_BUILD_DIR/build"
# Build directory for third-party dependencies.
- DEPS_BUILD_DIR="$HOME/nvim-deps"
# Directory where third-party dependency sources are downloaded to.
- DEPS_DOWNLOAD_DIR="$TRAVIS_BUILD_DIR/deps-downloads"
# Install directory for Neovim.
- INSTALL_PREFIX="$HOME/nvim-install"
# Log directory for Clang sanitizers and Valgrind.
@ -19,25 +31,22 @@ env:
# Nvim log file.
- NVIM_LOG_FILE="$BUILD_DIR/.nvimlog"
# Default CMake flags.
- CMAKE_FLAGS="-DTRAVIS_CI_BUILD=ON
- CMAKE_FLAGS="-DCI_BUILD=ON
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX
-DBUSTED_OUTPUT_TYPE=nvim
-DDEPS_PREFIX=$DEPS_BUILD_DIR/usr
-DMIN_LOG_LEVEL=3"
- DEPS_CMAKE_FLAGS="-DDEPS_DOWNLOAD_DIR:PATH=$DEPS_DOWNLOAD_DIR"
# Additional CMake flags for 32-bit builds.
- CMAKE_FLAGS_32BIT="-DCMAKE_SYSTEM_LIBRARY_PATH=/lib32:/usr/lib32:/usr/local/lib32
-DCMAKE_IGNORE_PATH=/lib:/usr/lib:/usr/local/lib
-DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake"
- DEPS_CMAKE_FLAGS="-DUSE_BUNDLED_GPERF=OFF"
# Environment variables for Clang sanitizers.
- ASAN_OPTIONS="detect_leaks=1:check_initialization_order=1:log_path=$LOG_DIR/asan"
- TSAN_OPTIONS="log_path=$LOG_DIR/tsan"
- UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan"
# Environment variables for Valgrind.
- VALGRIND_LOG="$LOG_DIR/valgrind-%p.log"
- CACHE_NVIM_DEPS_DIR="$HOME/.cache/nvim-deps"
# If this file exists, the cache is valid (compile was successful).
- CACHE_MARKER="$HOME/.cache/nvim-deps/.travis_cache_marker"
- CACHE_MARKER="$CACHE_NVIM_DEPS_DIR/.ci_cache_marker"
# default target name for functional tests
- FUNCTIONALTEST=functionaltest
- CI_TARGET=tests
@ -45,46 +54,144 @@ env:
- CCACHE_COMPRESS=1
- CCACHE_SLOPPINESS=time_macros,file_macro
- CCACHE_BASEDIR="$TRAVIS_BUILD_DIR"
- CI_OS_NAME="$TRAVIS_OS_NAME"
anchors:
envs: &common-job-env
# Do not fall back to cache for "master" for PR on "release" branch:
# adds the target branch to the cache key.
FOR_TRAVIS_CACHE=v1-$TRAVIS_BRANCH
addons:
apt:
packages: &common-apt-packages
- apport
- autoconf
- automake
- build-essential
- clang
- cmake
- cpanminus
- cscope
- gcc-multilib
- gdb
- gperf
- language-pack-tr
- libtool-bin
- locales
- ninja-build
- pkg-config
- unzip
- valgrind
- xclip
homebrew:
update: true
casks:
- powershell
packages:
- ccache
- cpanminus
- ninja
- perl
jobs:
include:
- stage: normal builds
- name: gcc-coverage (gcc 9)
os: linux
compiler: gcc-9
env:
- GCOV=gcov-9
- CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
- GCOV_ERROR_FILE="/tmp/libgcov-errors.log"
- USE_LUACOV=1
- BUSTED_ARGS="--coverage"
- *common-job-env
addons:
snaps:
- name: powershell
confinement: classic
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- *common-apt-packages
- gcc-9
- name: gcc-functionaltest-lua
os: linux
compiler: clang
env: >
CLANG_SANITIZER=ASAN_UBSAN
# Use Lua so that ASAN can test our embedded Lua support. 8fec4d53d0f6
CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
sudo: true
- os: linux
compiler: gcc
env: >
FUNCTIONALTEST=functionaltest-lua
CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -DUSE_BUNDLED_LUAJIT=OFF"
- os: linux
env:
- FUNCTIONALTEST=functionaltest-lua
- CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -DUSE_BUNDLED_LUAJIT=OFF"
- *common-job-env
- name: gcc-32bit
os: linux
# Travis creates a cache per compiler. Set a different value here to
# store 32-bit dependencies in a separate cache.
compiler: gcc
env: BUILD_32BIT=ON
- os: osx
compiler: clang
osx_image: xcode7.3 # macOS 10.11
- os: osx
compiler: gcc
osx_image: xcode7.3 # macOS 10.11
- os: linux
env: CI_TARGET=lint
- stage: Flaky builds
env:
- BUILD_32BIT=ON
- CMAKE_FLAGS="$CMAKE_FLAGS -m32 -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake"
- DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -m32 -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake"
- *common-job-env
- name: big-endian
os: linux
arch: s390x
compiler: gcc
env: GCOV=gcov CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
- os: linux
compiler: clang
env: CLANG_SANITIZER=TSAN
env:
- FUNCTIONALTEST=functionaltest-lua
- CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -DUSE_BUNDLED_LUAJIT=OFF"
- *common-job-env
addons:
apt:
packages:
- *common-apt-packages
- gettext
- python-pip
- python3-pip
- python-setuptools
- python3-setuptools
- python-dev
- python3-dev
- if: type != pull_request
name: snap
os: linux
env:
- LC_ALL: C.UTF-8
- LANG: C.UTF-8
- SNAPCRAFT_ENABLE_SILENT_REPORT: y
- SNAPCRAFT_ENABLE_DEVELOPER_DEBUG: y
- SNAPCRAFT_BUILD_ENVIRONMENT: lxd
addons:
snaps:
- name: snapcraft
channel: stable
classic: true
- name: http
- name: transfer
- name: lxd
channel: stable
# Override default before_install, before_cache.
before_install: /bin/true
before_cache: /bin/true
install: ci/snap/install.sh
before_script: echo "Building snap..."
script: ci/snap/script.sh
after_success: ci/snap/after_success.sh
deploy:
skip_cleanup: true
provider: script
script: ci/snap/deploy.sh
on:
branch: master
allow_failures:
- env: GCOV=gcov CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
- env: CLANG_SANITIZER=TSAN
- env:
- LC_ALL: C.UTF-8
- LANG: C.UTF-8
- SNAPCRAFT_ENABLE_SILENT_REPORT: y
- SNAPCRAFT_ENABLE_DEVELOPER_DEBUG: y
- SNAPCRAFT_BUILD_ENVIRONMENT: lxd
fast_finish: true
before_install: ci/before_install.sh
@ -93,40 +200,19 @@ before_script: ci/before_script.sh
script: ci/script.sh
before_cache: ci/before_cache.sh
addons:
apt:
packages:
- autoconf
- automake
- apport
- build-essential
- clang
- cmake
- cscope
- g++-multilib
- gcc-multilib
- gdb
- language-pack-tr
- libc6-dev-i386
- libtool
- locales
- ninja-build
- pkg-config
- unzip
- valgrind
- xclip
branches:
except:
- nightly
only:
- master
- /^release-\d+\.\d+$/
cache:
apt: true
ccache: true
directories:
- "$HOME/.cache/pip"
- "$HOME/.cache/nvim-deps"
- "$HOME/.cache/nvim-deps-downloads"
- "$CACHE_NVIM_DEPS_DIR"
git:
quiet: true
notifications:
webhooks:

View File

@ -1,4 +1,4 @@
.DONE:
@echo "Please use GNU Make (gmake) to build neovim"
@echo "Use GNU Make (gmake) to build neovim"
.DEFAULT:
@echo "Please use GNU Make (gmake) to build neovim"
@echo "Use GNU Make (gmake) to build neovim"

View File

@ -2,11 +2,15 @@
# intro: https://codingnest.com/basic-cmake/
# best practices (3.0+): https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1
cmake_minimum_required(VERSION 2.8.12)
# Version should match the tested CMAKE_URL in .github/workflows/ci.yml.
cmake_minimum_required(VERSION 3.10)
project(nvim C)
if(POLICY CMP0059)
cmake_policy(SET CMP0059 OLD) # Needed until cmake 2.8.12. #4389
if(POLICY CMP0065)
cmake_policy(SET CMP0065 NEW)
endif()
if(POLICY CMP0060)
cmake_policy(SET CMP0060 NEW)
endif()
# Point CMake at any custom modules we may ship
@ -19,9 +23,23 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# Prefer our bundled versions of dependencies.
if(DEFINED ENV{DEPS_BUILD_DIR})
set(DEPS_PREFIX "$ENV{DEPS_BUILD_DIR}/usr" CACHE PATH "Path prefix for finding dependencies")
if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
# pkg-config 29.2 has a bug on OpenBSD which causes it to drop any paths that
# *contain* system include paths. To avoid this, we prefix what would be
# "/usr/include" as "/_usr/include".
# This check is also performed in the third-party/CMakeLists.txt and in the
# else clause following here.
# https://github.com/neovim/neovim/pull/14745#issuecomment-860201794
set(DEPS_PREFIX "$ENV{DEPS_BUILD_DIR}/_usr" CACHE PATH "Path prefix for finding dependencies")
else()
set(DEPS_PREFIX "$ENV{DEPS_BUILD_DIR}/usr" CACHE PATH "Path prefix for finding dependencies")
endif()
else()
set(DEPS_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/.deps/usr" CACHE PATH "Path prefix for finding dependencies")
if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
set(DEPS_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/.deps/_usr" CACHE PATH "Path prefix for finding dependencies")
else()
set(DEPS_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/.deps/usr" CACHE PATH "Path prefix for finding dependencies")
endif()
# When running from within CLion or Visual Studio,
# build bundled dependencies automatically.
if(NOT EXISTS ${DEPS_PREFIX}
@ -79,69 +97,82 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
endif()
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# Ignore case when comparing filenames on Windows and Mac.
set(CASE_INSENSITIVE_FILENAME TRUE)
# Enable fixing case-insensitive filenames for Windows and Mac.
set(USE_FNAME_CASE TRUE)
endif()
option(ENABLE_LIBINTL "enable libintl" ON)
option(ENABLE_LIBICONV "enable libiconv" ON)
# Set default build type.
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "CMAKE_BUILD_TYPE not given, defaulting to 'Debug'.")
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build." FORCE)
if (MINGW)
# Disable LTO by default as it may not compile
# See https://github.com/Alexpux/MINGW-packages/issues/3516
# and https://github.com/neovim/neovim/pull/8654#issuecomment-402316672
option(ENABLE_LTO "enable link time optimization" OFF)
else()
option(ENABLE_LTO "enable link time optimization" ON)
endif()
message(STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
# Build type.
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "CMAKE_BUILD_TYPE not specified, default is 'Debug'")
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build" FORCE)
else()
message(STATUS "CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
endif()
if(CMAKE_BUILD_TYPE MATCHES Debug)
set(DEBUG 1)
else()
set(DEBUG 0)
endif()
# Set available build types for CMake GUIs.
# A different build type can still be set by -DCMAKE_BUILD_TYPE=...
# Other build types can still be set by -DCMAKE_BUILD_TYPE=...
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
# If not in a git repo (e.g., a tarball) these tokens define the complete
# version string, else they are combined with the result of `git describe`.
set(NVIM_VERSION_MAJOR 0)
set(NVIM_VERSION_MINOR 3)
set(NVIM_VERSION_MINOR 6)
set(NVIM_VERSION_PATCH 1)
set(NVIM_VERSION_PRERELEASE "") # for package maintainers
# API level
set(NVIM_API_LEVEL 4) # Bump this after any API change.
set(NVIM_API_LEVEL 8) # Bump this after any API change.
set(NVIM_API_LEVEL_COMPAT 0) # Adjust this after a _breaking_ API change.
set(NVIM_API_PRERELEASE false)
file(TO_CMAKE_PATH ${CMAKE_CURRENT_LIST_DIR}/.git FORCED_GIT_DIR)
include(GetGitRevisionDescription)
get_git_head_revision(GIT_REFSPEC NVIM_VERSION_COMMIT)
if(NVIM_VERSION_COMMIT) # is a git repo
git_describe(NVIM_VERSION_MEDIUM)
# `git describe` annotates the most recent tagged release; for pre-release
# builds we must replace that with the unreleased version.
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+"
"v${NVIM_VERSION_MAJOR}.${NVIM_VERSION_MINOR}.${NVIM_VERSION_PATCH}"
NVIM_VERSION_MEDIUM
${NVIM_VERSION_MEDIUM})
endif()
set(NVIM_VERSION_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
# NVIM_VERSION_CFLAGS set further below.
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Default to -O2 on release builds.
if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3")
message(STATUS "Replacing -O3 in CMAKE_C_FLAGS_RELEASE with -O2.")
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
# Log level (MIN_LOG_LEVEL in log.h)
if("${MIN_LOG_LEVEL}" MATCHES "^$")
# Minimize logging for release-type builds.
if(CMAKE_BUILD_TYPE STREQUAL "Release"
OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"
OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
message(STATUS "MIN_LOG_LEVEL not specified, default is 3 (ERROR) for release builds")
set(MIN_LOG_LEVEL 3)
else()
message(STATUS "MIN_LOG_LEVEL not specified, default is 1 (INFO)")
set(MIN_LOG_LEVEL 1)
endif()
else()
if(NOT MIN_LOG_LEVEL MATCHES "^[0-3]$")
message(FATAL_ERROR "invalid MIN_LOG_LEVEL: " ${MIN_LOG_LEVEL})
endif()
message(STATUS "MIN_LOG_LEVEL=${MIN_LOG_LEVEL}")
endif()
# Minimize logging for release-type builds.
if(NOT CMAKE_C_FLAGS_RELEASE MATCHES DMIN_LOG_LEVEL)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DMIN_LOG_LEVEL=3")
endif()
if(NOT CMAKE_C_FLAGS_MINSIZEREL MATCHES DMIN_LOG_LEVEL)
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DMIN_LOG_LEVEL=3")
endif()
if(NOT CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DMIN_LOG_LEVEL)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DMIN_LOG_LEVEL=3")
# Default to -O2 on release builds.
if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3")
message(STATUS "Replacing -O3 in CMAKE_C_FLAGS_RELEASE with -O2")
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
endif()
if(CMAKE_COMPILER_IS_GNUCC)
@ -161,11 +192,6 @@ if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DNDEBUG)
string(REPLACE "-DNDEBUG" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
endif()
# Enable -Wconversion.
if(NOT MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
endif()
# gcc 4.0+ sets _FORTIFY_SOURCE=2 automatically. This currently
# does not work with Neovim due to some uses of dynamically-sized structures.
# https://github.com/neovim/neovim/issues/223
@ -197,12 +223,12 @@ main(void)
" HAS_ACCEPTABLE_FORTIFY)
if(NOT HAS_ACCEPTABLE_FORTIFY)
message(STATUS "Unsupported _FORTIFY_SOURCE found, forcing _FORTIFY_SOURCE=1.")
message(STATUS "Unsupported _FORTIFY_SOURCE found, forcing _FORTIFY_SOURCE=1")
# Extract possible prefix to _FORTIFY_SOURCE (e.g. -Wp,-D_FORTIFY_SOURCE).
STRING(REGEX MATCH "[^\ ]+-D_FORTIFY_SOURCE" _FORTIFY_SOURCE_PREFIX "${CMAKE_C_FLAGS}")
STRING(REPLACE "-D_FORTIFY_SOURCE" "" _FORTIFY_SOURCE_PREFIX "${_FORTIFY_SOURCE_PREFIX}" )
if(NOT _FORTIFY_SOURCE_PREFIX STREQUAL "")
message(STATUS "Detected _FORTIFY_SOURCE Prefix=${_FORTIFY_SOURCE_PREFIX}.")
message(STATUS "Detected _FORTIFY_SOURCE Prefix=${_FORTIFY_SOURCE_PREFIX}")
endif()
# -U in add_definitions doesn't end up in the correct spot, so we add it to
# the flags variable instead.
@ -214,7 +240,7 @@ endif()
if(CMAKE_EXE_LINKER_FLAGS MATCHES "--sort-common" OR
CMAKE_SHARED_LINKER_FLAGS MATCHES "--sort-common" OR
CMAKE_MODULE_LINKER_FLAGS MATCHES "--sort-common")
message(STATUS "Removing --sort-common from linker flags.")
message(STATUS "Removing --sort-common from linker flags")
string(REGEX REPLACE ",--sort-common(=[^,]+)?" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
string(REGEX REPLACE ",--sort-common(=[^,]+)?" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
string(REGEX REPLACE ",--sort-common(=[^,]+)?" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}")
@ -232,28 +258,40 @@ check_c_source_compiles("
int main(void)
{
void *trace[1];
int trace_size = backtrace(trace, 1);
backtrace(trace, 1);
return 0;
}
" HAVE_EXECINFO_BACKTRACE)
check_c_source_compiles("
int main(void)
{
int a = 42;
__builtin_add_overflow(a, a, &a);
__builtin_sub_overflow(a, a, &a);
return 0;
}
" HAVE_BUILTIN_ADD_OVERFLOW)
if(MSVC)
# XXX: /W4 gives too many warnings. #3241
add_definitions(/W3 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
add_compile_options(/W3)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
add_definitions(-DWIN32)
else()
add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter
-Wstrict-prototypes -std=gnu99)
add_compile_options(-Wall -Wextra -pedantic -Wno-unused-parameter
-Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion
-Wmissing-prototypes)
check_c_compiler_flag(-Wimplicit-fallthrough HAS_WIMPLICIT_FALLTHROUGH_FLAG)
if(HAS_WIMPLICIT_FALLTHROUGH_FLAG)
add_definitions(-Wimplicit-fallthrough)
check_c_compiler_flag(-Wimplicit-fallthrough HAVE_WIMPLICIT_FALLTHROUGH_FLAG)
if(HAVE_WIMPLICIT_FALLTHROUGH_FLAG)
add_compile_options(-Wimplicit-fallthrough)
endif()
# On FreeBSD 64 math.h uses unguarded C11 extension, which taints clang
# 3.4.1 used there.
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND CMAKE_C_COMPILER_ID MATCHES "Clang")
add_definitions(-Wno-c11-extensions)
add_compile_options(-Wno-c11-extensions)
endif()
endif()
@ -269,7 +307,7 @@ endif()
# OpenBSD's GCC (4.2.1) doesn't have -Wvla
check_c_compiler_flag(-Wvla HAS_WVLA_FLAG)
if(HAS_WVLA_FLAG)
add_definitions(-Wvla)
add_compile_options(-Wvla)
endif()
if(UNIX)
@ -278,46 +316,39 @@ if(UNIX)
check_c_compiler_flag(-fstack-protector HAS_FSTACK_PROTECTOR_FLAG)
if(HAS_FSTACK_PROTECTOR_STRONG_FLAG)
add_definitions(-fstack-protector-strong)
add_compile_options(-fstack-protector-strong)
link_libraries(-fstack-protector-strong)
elseif(HAS_FSTACK_PROTECTOR_FLAG)
add_definitions(-fstack-protector --param ssp-buffer-size=4)
add_compile_options(-fstack-protector --param ssp-buffer-size=4)
link_libraries(-fstack-protector --param ssp-buffer-size=4)
endif()
endif()
check_c_compiler_flag(-fno-common HAVE_FNO_COMMON)
if (HAVE_FNO_COMMON)
add_compile_options(-fno-common)
endif()
check_c_compiler_flag(-fdiagnostics-color=auto HAS_DIAG_COLOR_FLAG)
if(HAS_DIAG_COLOR_FLAG)
add_definitions(-fdiagnostics-color=auto)
endif()
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# 1. Array-bounds testing is broken in some GCC versions before 4.8.5.
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273
# 2. But _Pragma("...ignored") is broken (unresolved) in GCC 5+:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66099
# So we must disable -Warray-bounds globally for GCC (for kbtree.h, #7083).
check_c_compiler_flag(-Wno-array-bounds HAS_NO_ARRAY_BOUNDS_FLAG)
if(HAS_NO_ARRAY_BOUNDS_FLAG)
add_definitions(-Wno-array-bounds)
if(CMAKE_GENERATOR MATCHES "Ninja")
add_compile_options(-fdiagnostics-color=always)
else()
add_compile_options(-fdiagnostics-color=auto)
endif()
endif()
option(TRAVIS_CI_BUILD "Travis/QuickBuild CI. Extra flags will be set." OFF)
option(CI_BUILD "CI, extra flags will be set" OFF)
if(TRAVIS_CI_BUILD)
message(STATUS "Travis/QuickBuild CI build enabled.")
add_definitions(-Werror)
if(CI_BUILD)
message(STATUS "CI build enabled")
add_compile_options(-Werror)
if(DEFINED ENV{BUILD_32BIT})
# Get some test coverage for unsigned char
add_definitions(-funsigned-char)
add_compile_options(-funsigned-char)
endif()
endif()
if(CMAKE_BUILD_TYPE MATCHES Debug)
set(DEBUG 1)
else()
set(DEBUG 0)
endif()
option(LOG_LIST_ACTIONS "Add list actions logging" OFF)
add_definitions(-DINCLUDE_GENERATED_DECLARATIONS)
@ -337,8 +368,8 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
add_definitions(-D_GNU_SOURCE)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SIZEOF_VOID_P EQUAL 8)
# Required for luajit.
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT PREFER_LUA AND LUAJIT_VERSION LESS "2.1.0-beta3")
# Required for luajit < 2.1.0-beta3.
set(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} -pagezero_size 10000 -image_base 100000000")
set(CMAKE_SHARED_LINKER_FLAGS
@ -350,17 +381,39 @@ endif()
include_directories("${PROJECT_BINARY_DIR}/config")
include_directories("${PROJECT_SOURCE_DIR}/src")
find_package(LibUV REQUIRED)
find_package(LibUV 1.28.0 REQUIRED)
include_directories(SYSTEM ${LIBUV_INCLUDE_DIRS})
find_package(Msgpack 1.0.0 REQUIRED)
include_directories(SYSTEM ${MSGPACK_INCLUDE_DIRS})
find_package(LibLUV 1.30.0 REQUIRED)
include_directories(SYSTEM ${LIBLUV_INCLUDE_DIRS})
find_package(TreeSitter REQUIRED)
include_directories(SYSTEM ${TreeSitter_INCLUDE_DIRS})
list(APPEND CMAKE_REQUIRED_INCLUDES "${TreeSitter_INCLUDE_DIRS}")
list(APPEND CMAKE_REQUIRED_LIBRARIES "${TreeSitter_LIBRARIES}")
check_c_source_compiles("
#include <tree_sitter/api.h>
int
main(void)
{
TSQueryCursor *cursor = ts_query_cursor_new();
ts_query_cursor_set_match_limit(cursor, 32);
return 0;
}
" TS_HAS_SET_MATCH_LIMIT)
if(TS_HAS_SET_MATCH_LIMIT)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNVIM_TS_HAS_SET_MATCH_LIMIT")
endif()
# Note: The test lib requires LuaJIT; it will be skipped if LuaJIT is missing.
option(PREFER_LUA "Prefer Lua over LuaJIT in the nvim executable." OFF)
if(PREFER_LUA)
find_package(Lua REQUIRED)
find_package(Lua 5.1 REQUIRED)
set(LUA_PREFERRED_INCLUDE_DIRS ${LUA_INCLUDE_DIR})
set(LUA_PREFERRED_LIBRARIES ${LUA_LIBRARIES})
# Passive (not REQUIRED): if LUAJIT_FOUND is not set, nvim-test is skipped.
@ -381,6 +434,7 @@ main(void)
return MSGPACK_OBJECT_FLOAT32;
}
" MSGPACK_HAS_FLOAT32)
list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${MSGPACK_INCLUDE_DIRS}")
if(MSGPACK_HAS_FLOAT32)
add_definitions(-DNVIM_MSGPACK_HAS_FLOAT32)
endif()
@ -388,7 +442,7 @@ endif()
option(FEAT_TUI "Enable the Terminal UI" ON)
if(FEAT_TUI)
find_package(Unibilium REQUIRED)
find_package(UNIBILIUM 2.0 REQUIRED)
include_directories(SYSTEM ${UNIBILIUM_INCLUDE_DIRS})
list(APPEND CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIRS}")
@ -402,19 +456,21 @@ if(FEAT_TUI)
return unibi_num_from_var(unibi_var_from_num(0));
}
" UNIBI_HAS_VAR_FROM)
list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIRS}")
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${UNIBILIUM_LIBRARIES}")
if(UNIBI_HAS_VAR_FROM)
add_definitions(-DNVIM_UNIBI_HAS_VAR_FROM)
endif()
find_package(LibTermkey REQUIRED)
find_package(LibTermkey 0.18 REQUIRED)
include_directories(SYSTEM ${LIBTERMKEY_INCLUDE_DIRS})
endif()
find_package(LibVterm REQUIRED)
find_package(LIBVTERM 0.1 REQUIRED)
include_directories(SYSTEM ${LIBVTERM_INCLUDE_DIRS})
if(WIN32)
find_package(Winpty REQUIRED)
find_package(Winpty 0.4.3 REQUIRED)
include_directories(SYSTEM ${WINPTY_INCLUDE_DIRS})
endif()
@ -425,27 +481,16 @@ option(CLANG_TSAN "Enable Clang thread sanitizer for nvim binary." OFF)
if((CLANG_ASAN_UBSAN AND CLANG_MSAN)
OR (CLANG_ASAN_UBSAN AND CLANG_TSAN)
OR (CLANG_MSAN AND CLANG_TSAN))
message(FATAL_ERROR "Sanitizers cannot be enabled simultaneously.")
message(FATAL_ERROR "Sanitizers cannot be enabled simultaneously")
endif()
if((CLANG_ASAN_UBSAN OR CLANG_MSAN OR CLANG_TSAN) AND NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
message(FATAL_ERROR "Sanitizers are only supported for Clang.")
message(FATAL_ERROR "Sanitizers are only supported for Clang")
endif()
if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD|FreeBSD|Windows") # see #5318
message(STATUS "skipping jemalloc on this system: ${CMAKE_SYSTEM_NAME}")
option(ENABLE_JEMALLOC "enable jemalloc" OFF)
else()
option(ENABLE_JEMALLOC "enable jemalloc" ON)
endif()
if(ENABLE_JEMALLOC)
if(CLANG_ASAN_UBSAN OR CLANG_MSAN OR CLANG_TSAN)
message(STATUS "Sanitizers have been enabled; don't use jemalloc.")
else()
find_package(JeMalloc REQUIRED)
include_directories(SYSTEM ${JEMALLOC_INCLUDE_DIRS})
endif()
if(ENABLE_LIBICONV)
find_package(Iconv REQUIRED)
include_directories(SYSTEM ${Iconv_INCLUDE_DIRS})
endif()
if(ENABLE_LIBINTL)
@ -454,11 +499,6 @@ if(ENABLE_LIBINTL)
include_directories(SYSTEM ${LibIntl_INCLUDE_DIRS})
endif()
if(ENABLE_LIBICONV)
find_package(Iconv REQUIRED)
include_directories(SYSTEM ${Iconv_INCLUDE_DIRS})
endif()
# Determine platform's threading library. Set CMAKE_THREAD_PREFER_PTHREAD
# explicitly to indicate a strong preference for pthread.
set(CMAKE_THREAD_PREFER_PTHREAD ON)
@ -480,27 +520,28 @@ include(LuaHelpers)
set(LUA_DEPENDENCIES lpeg mpack bit)
if(NOT LUA_PRG)
foreach(CURRENT_LUA_PRG luajit lua5.1 lua5.2 lua)
# If LUA_PRG is set find_program() will not search
unset(LUA_PRG CACHE)
unset(_CHECK_LUA_PRG CACHE)
unset(LUA_PRG_WORKS)
find_program(LUA_PRG ${CURRENT_LUA_PRG})
find_program(_CHECK_LUA_PRG ${CURRENT_LUA_PRG})
if(LUA_PRG)
check_lua_deps(${LUA_PRG} "${LUA_DEPENDENCIES}" LUA_PRG_WORKS)
if(_CHECK_LUA_PRG)
check_lua_deps(${_CHECK_LUA_PRG} "${LUA_DEPENDENCIES}" LUA_PRG_WORKS)
if(LUA_PRG_WORKS)
set(LUA_PRG "${_CHECK_LUA_PRG}" CACHE FILEPATH "Path to a program.")
break()
endif()
endif()
endforeach()
unset(_CHECK_LUA_PRG CACHE)
else()
check_lua_deps(${LUA_PRG} "${LUA_DEPENDENCIES}" LUA_PRG_WORKS)
endif()
if(NOT LUA_PRG_WORKS)
message(FATAL_ERROR "A suitable Lua interpreter was not found.")
message(FATAL_ERROR "Failed to find a Lua 5.1-compatible interpreter")
endif()
message(STATUS "Using the Lua interpreter ${LUA_PRG}.")
message(STATUS "Using Lua interpreter: ${LUA_PRG}")
# Setup busted.
find_program(BUSTED_PRG NAMES busted busted.bat)
@ -510,6 +551,7 @@ if(NOT BUSTED_OUTPUT_TYPE)
endif()
find_program(LUACHECK_PRG luacheck)
find_program(FLAKE8_PRG flake8)
find_program(GPERF_PRG gperf)
include(InstallHelpers)
@ -521,27 +563,17 @@ install_helper(
FILES ${MANPAGES}
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
# MIN_LOG_LEVEL for log.h
if("${MIN_LOG_LEVEL}" MATCHES "^$")
message(STATUS "MIN_LOG_LEVEL not specified")
else()
if(NOT MIN_LOG_LEVEL MATCHES "^[0-3]$")
message(FATAL_ERROR "invalid MIN_LOG_LEVEL: " ${MIN_LOG_LEVEL})
endif()
message(STATUS "MIN_LOG_LEVEL set to ${MIN_LOG_LEVEL}")
endif()
#
# Go down the tree.
#
add_subdirectory(src/nvim)
# Read compilation flags from src/nvim, used in config subdirectory below.
include(GetCompileFlags)
get_compile_flags(NVIM_VERSION_CFLAGS)
get_directory_property(NVIM_VERSION_CFLAGS DIRECTORY src/nvim DEFINITION NVIM_VERSION_CFLAGS)
add_subdirectory(test/includes)
add_subdirectory(config)
add_subdirectory(test/functional/fixtures) # compile test programs
add_subdirectory(runtime)
get_directory_property(GENERATED_HELP_TAGS DIRECTORY runtime DEFINITION GENERATED_HELP_TAGS)
if(WIN32)
install_helper(
FILES ${DEPS_PREFIX}/share/nvim-qt/runtime/plugin/nvim_gui_shim.vim
@ -558,15 +590,10 @@ if(BUSTED_PRG)
# console pool: to do so we need to use the USES_TERMINAL
# option, but this is only available in CMake 3.2
set(TEST_TARGET_ARGS)
if(NOT (${CMAKE_VERSION} VERSION_LESS 3.2.0))
list(APPEND TEST_TARGET_ARGS "USES_TERMINAL")
endif()
list(APPEND TEST_TARGET_ARGS "USES_TERMINAL")
set(UNITTEST_PREREQS nvim-test unittest-headers)
set(FUNCTIONALTEST_PREREQS nvim printargs-test shell-test)
if(NOT WIN32)
list(APPEND FUNCTIONALTEST_PREREQS tty-test)
endif()
set(FUNCTIONALTEST_PREREQS nvim printenv-test printargs-test shell-test streams-test tty-test ${GENERATED_HELP_TAGS})
set(BENCHMARK_PREREQS nvim tty-test)
# Useful for automated build systems, if they want to manually run the tests.
@ -591,7 +618,6 @@ if(BUSTED_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=unit
-DSYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${UNITTEST_PREREQS}
${TEST_TARGET_ARGS})
@ -622,7 +648,6 @@ if(BUSTED_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=functional
-DSYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${FUNCTIONALTEST_PREREQS}
${TEST_TARGET_ARGS})
@ -639,7 +664,6 @@ if(BUSTED_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=benchmark
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${BENCHMARK_PREREQS}
${TEST_TARGET_ARGS})
@ -657,7 +681,6 @@ if(BUSTED_LUA_PRG)
-DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-DTEST_TYPE=functional
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS ${FUNCTIONALTEST_PREREQS}
${TEST_TARGET_ARGS})
@ -665,29 +688,12 @@ if(BUSTED_LUA_PRG)
endif()
if(LUACHECK_PRG)
add_custom_target(testlint
COMMAND ${CMAKE_COMMAND}
-DLUACHECK_PRG=${LUACHECK_PRG}
-DLUAFILES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
-DIGNORE_PATTERN="*/preload.lua"
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake)
add_custom_target(
blobcodelint
COMMAND
${CMAKE_COMMAND}
-DLUACHECK_PRG=${LUACHECK_PRG}
-DLUAFILES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/src/nvim/lua
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-DREAD_GLOBALS=vim
-P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake
)
# TODO(ZyX-I): Run linter for all lua code in src
add_custom_target(
lualint
DEPENDS blobcodelint
)
add_custom_target(lualint
COMMAND ${LUACHECK_PRG} -q runtime/ scripts/ src/ test/
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
else()
add_custom_target(lualint false
COMMENT "lualint: LUACHECK_PRG not defined")
endif()
set(CPACK_PACKAGE_NAME "Neovim")
@ -701,3 +707,14 @@ set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
include(CPack)
#add uninstall target
if(NOT TARGET uninstall)
configure_file(
"cmake/UninstallHelper.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/UninstallHelper.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/UninstallHelper.cmake)
endif()

View File

@ -1,4 +1,5 @@
# Contributing to Neovim
Contributing to Neovim
======================
Getting started
---------------
@ -7,39 +8,43 @@ If you want to help but don't know where to start, here are some
low-risk/isolated tasks:
- [Merge a Vim patch].
- Try a [complexity:low] issue.
- Fix bugs found by [clang scan-build](#clang-scan-build),
[coverity](#coverity), and [PVS](#pvs-studio).
- Try a [good first issue](../../labels/good-first-issue) or [complexity:low] issue.
- Fix bugs found by [Clang](#clang-scan-build), [PVS](#pvs-studio) or
[Coverity](#coverity).
- [Improve documentation][wiki-contribute-help]
Reporting problems
------------------
- [Check the FAQ][wiki-faq].
- [Search existing issues][github-issues] (including closed!)
- Update Neovim to the latest version to see if your problem persists.
- Try to reproduce with `nvim --clean` ("factory defaults").
- [Bisect](https://neovim.io/doc/user/starting.html#bisect) your config: disable plugins incrementally, to narrow down the cause of the issue.
- [Bisect][git-bisect] Neovim's source code to find the cause of a regression, if you can. This is _extremely_ helpful.
- When reporting a crash, [include a stacktrace](https://github.com/neovim/neovim/wiki/FAQ#backtrace-linux).
- Use [ASAN/UBSAN](#clang-sanitizers-asan-and-ubsan) to get detailed errors for segfaults and undefined behavior.
- Check the logs. `:edit $NVIM_LOG_FILE`
- Include `cmake --system-information` for build-related issues.
Developer guidelines
--------------------
- Nvim contributors should read `:help dev` (especially `:help dev-api`).
- External UI developers should read `:help dev-ui`.
- API client developers should read `:help dev-api-client`.
- Nvim developers are _strongly encouraged_ to install `ninja` for faster builds.
- Read `:help dev` if you are working on Nvim core.
- Read `:help dev-ui` if you are developing a UI.
- Read `:help dev-api-client` if you are developing an API client.
- Install `ninja` for faster builds of Nvim.
```
sudo apt-get install ninja-build
make distclean
make # Nvim build system uses ninja automatically, if available.
```
Reporting problems
------------------
- Check the [**FAQ**][wiki-faq].
- Search [existing issues][github-issues] (including closed!)
- Update Neovim to the latest version to see if your problem persists.
- Disable plugins incrementally, to narrow down the cause of the issue.
- When reporting a crash, [include a stacktrace](https://github.com/neovim/neovim/wiki/Development-tips#backtrace-linux).
- [Bisect][git-bisect] to the cause of a regression, if you are able. This is _extremely_ helpful.
- Check `$NVIM_LOG_FILE`, if it exists.
- Include `cmake --system-information` for **build** issues.
Pull requests ("PRs")
Pull requests (PRs)
---------------------
- To avoid duplicate work, create a `[WIP]` pull request as soon as possible.
- To avoid duplicate work, create a draft pull request.
- Your PR must include [test coverage][run-tests].
- Avoid cosmetic changes to unrelated files in the same commit.
- Use a [feature branch][git-feature-branch] instead of the master branch.
- Use a **rebase workflow** for small PRs.
@ -58,43 +63,55 @@ Pull requests ("PRs")
- During a squash/fixup, use `exec make -C build unittest` between each
pick/edit/reword.
### Stages: WIP, RFC, RDY
### Stages: Draft and Ready for review
Pull requests have three stages: `[WIP]` (Work In Progress), `[RFC]` (Request
For Comment) and `[RDY]` (Ready).
Pull requests have two stages: Draft and Ready for review.
- Untagged PRs are assumed to be `[RFC]`, i.e. you are requesting a review.
- Prepend `[WIP]` to the PR title if you are _not_ requesting feedback and the
work is still in flux.
- Prepend `[RDY]` to the PR title if you are _done_ with the PR and are only
waiting on it to be merged.
1. [Create a Draft PR][pr-draft] while you are _not_ requesting feedback as
you are still working on the PR.
- You can skip this if your PR is ready for review.
2. [Change your PR to ready][pr-ready] when the PR is ready for review.
- You can convert back to Draft at any time.
For example, a typical workflow is:
1. You open a `[WIP]` PR where the work is _not_ ready for feedback, you just want to
let others know what you are doing.
2. Once the PR is ready for review, you replace `[WIP]` in the title with `[RFC]`.
You may add fix up commits to address issues that come up during review.
3. Once the PR is ready for merging, you rebase/squash your work appropriately and
then replace `[RFC]` in the title with `[RDY]`.
Do __not__ add labels like `[RFC]` or `[WIP]` in the title to indicate the
state of your PR: this just adds noise. Non-Draft PRs are assumed to be open
for comments; if you want feedback from specific people, `@`-mention them in
a comment.
### Commit messages
Follow [commit message hygiene][hygiene] to *make reviews easier* and to make
the VCS/git logs more valuable.
Follow the [conventional commits guidelines][conventional_commits] to *make reviews easier* and to make
the VCS/git logs more valuable. The general structure of a commit message is:
- Try to keep the first line under 72 characters.
- **Prefix the commit subject with a _scope_:** `doc:`, `test:`, `foo.c:`,
`runtime:`, ...
- For commits that contain only style/lint changes, a single-word subject
line is preferred: `style` or `lint`.
- A blank line must separate the subject from the description.
```
<type>([optional scope]): <description>
[optional body]
[optional footer(s)]
```
- Prefix the commit subject with one of these [_types_](https://github.com/commitizen/conventional-commit-types/blob/master/index.json):
- `build`, `ci`, `docs`, `feat`, `fix`, `perf`, `refactor`, `revert`, `test`, `vim-patch`, `chore`
- You can **ignore this for "fixup" commits** or any commits you expect to be squashed.
- Append optional scope to _type_ such as `(lsp)`, `(treesitter)`, `(float)`, …
- _Description_ shouldn't start with a capital letter or end in a period.
- Use the _imperative voice_: "Fix bug" rather than "Fixed bug" or "Fixes bug."
- Try to keep the first line under 72 characters.
- A blank line must follow the subject.
- Breaking API changes must be indicated by
1. "!" after the type/scope, and
2. a "BREAKING CHANGE" footer describing the change.
Example:
```
refactor(provider)!: drop support for Python 2
BREAKING CHANGE: refactor to use Python 3 features since Python 2 is no longer supported.
```
### Automated builds (CI)
Each pull request must pass the automated builds on [travis CI], [quickbuild]
and [AppVeyor].
Each pull request must pass the automated builds on [sourcehut] and [GitHub Actions].
- CI builds are compiled with [`-Werror`][gcc-warnings], so compiler warnings
will fail the build.
@ -105,47 +122,129 @@ and [AppVeyor].
- CI runs [ASan] and other analyzers.
- To run valgrind locally: `VALGRIND=1 make test`
- To run Clang ASan/UBSan locally: `CC=clang make CMAKE_FLAGS="-DCLANG_ASAN_UBSAN=ON"`
- The `lint` build ([#3174][3174]) checks modified lines _and their immediate
neighbors_. This is to encourage incrementally updating the legacy style to
meet our style guidelines.
- A single word (`lint` or `style`) is sufficient as the subject line of
a commit that contains only style changes.
- [How to investigate QuickBuild failures](https://github.com/neovim/neovim/pull/4718#issuecomment-217631350)
QuickBuild uses this invocation:
mkdir -p build/${params.get("buildType")} \
&& cd build/${params.get("buildType")} \
&& cmake -G "Unix Makefiles" -DBUSTED_OUTPUT_TYPE=TAP -DCMAKE_BUILD_TYPE=${params.get("buildType")}
-DTRAVIS_CI_BUILD=ON ../.. && ${node.getAttribute("make", "make")}
VERBOSE=1 nvim unittest-prereqs functionaltest-prereqs
- The [lint](#lint) build checks modified lines _and their immediate
neighbors_, to encourage incrementally updating the legacy style to meet our
[style](#style). (See [#3174][3174] for background.)
- CI for freebsd and openbsd runs on [sourcehut].
- To get a backtrace on freebsd (after connecting via ssh):
```sh
sudo pkg install tmux # If you want tmux.
lldb build/bin/nvim -c nvim.core
# To get a full backtrace:
# 1. Rebuild with debug info.
rm -rf nvim.core build
gmake CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_EXTRA_FLAGS="-DCI_BUILD=ON -DMIN_LOG_LEVEL=3" nvim
# 2. Run the failing test to generate a new core file.
TEST_FILE=test/functional/foo.lua gmake functionaltest
lldb build/bin/nvim -c nvim.core
```
### Clang scan-build
The auto-generated [clang-scan] report presents walk-throughs of bugs found by
Clang's [scan-build](https://clang-analyzer.llvm.org/scan-build.html) static
analyzer. To verify a fix locally, run `scan-build` like this:
View the [Clang report] to see potential bugs found by the Clang
[scan-build](https://clang-analyzer.llvm.org/scan-build.html) analyzer.
rm -rf build/
scan-build --use-analyzer=/usr/bin/clang make
- Search the Neovim commit history to find examples:
```
git log --oneline --no-merges --grep clang
```
- To verify a fix locally, run `scan-build` like this:
```
rm -rf build/
scan-build --use-analyzer=/usr/bin/clang make
```
### PVS-Studio
View the [PVS report](https://neovim.io/doc/reports/pvs/PVS-studio.html.d/) to
see potential bugs found by [PVS Studio](https://www.viva64.com/en/pvs-studio/).
- Use this format for commit messages (where `{id}` is the PVS warning-id)):
```
fix(PVS/V{id}): {description}
```
- Search the Neovim commit history to find examples:
```
git log --oneline --no-merges --grep PVS
```
- Try `./scripts/pvscheck.sh` to run PVS locally.
### Coverity
[Coverity](https://scan.coverity.com/projects/neovim-neovim) runs against the
master build. To view the defects, just request access; you will be approved.
Use this commit-message format for coverity fixes:
- Use this format for commit messages (where `{id}` is the CID (Coverity ID);
([example](https://github.com/neovim/neovim/pull/804))):
```
fix(coverity/{id}): {description}
```
- Search the Neovim commit history to find examples:
```
git log --oneline --no-merges --grep coverity
```
coverity/<id>: <description of what fixed the defect>
### Clang sanitizers (ASAN and UBSAN)
where `<id>` is the Coverity ID (CID). For example see [#804](https://github.com/neovim/neovim/pull/804).
ASAN/UBSAN can be used to detect memory errors and other common forms of undefined behavior at runtime in debug builds.
### PVS-Studio
- To build Neovim with sanitizers enabled, use
```
rm -rf build && CMAKE_EXTRA_FLAGS="-DCMAKE_C_COMPILER=clang -DCLANG_ASAN_UBSAN=1" make
```
- When running Neovim, use
```
UBSAN_OPTIONS=print_stacktrace=1 ASAN_OPTIONS=log_path=/tmp/nvim_asan nvim args...
```
- If Neovim exits unexpectedly, check `/tmp/nvim_asan.{PID}` (or your preferred `log_path`) for log files with error messages.
Coding
------
### Lint
You can run the linter locally by:
make lint
The lint step downloads the [master error list] and excludes them, so only lint
errors related to the local changes are reported.
You can lint a single file (but this will _not_ exclude legacy errors):
./src/clint.py src/nvim/ops.c
### Style
- Style rules are (mostly) defined by `src/uncrustify.cfg` which tries to match
the [style-guide]. To use the Nvim `gq` command with `uncrustify`:
```
if !empty(findfile('src/uncrustify.cfg', ';'))
setlocal formatprg=uncrustify\ -q\ -l\ C\ -c\ src/uncrustify.cfg\ --no-backup
endif
```
The required version of `uncrustify` is specified in `uncrustify.cfg`.
- There is also `.clang-format` which has drifted from the [style-guide], but
is available for reference. To use the Nvim `gq` command with `clang-format`:
```
if !empty(findfile('.clang-format', ';'))
setlocal formatprg=clang-format\ -style=file
endif
```
### Navigate
- Set `blame.ignoreRevsFile` to ignore [noise commits](https://github.com/neovim/neovim/commit/2d240024acbd68c2d3f82bc72cb12b1a4928c6bf) in git blame:
```
git config blame.ignoreRevsFile .git-blame-ignore-revs
```
- Use **[universal-ctags](https://github.com/universal-ctags/ctags).**
("Exuberant ctags", the typical `ctags` binary provided by your distro, is
unmaintained and won't recognize many function signatures in Neovim source.)
- Explore the source code [on the web](https://sourcegraph.com/github.com/neovim/neovim).
View the [PVS analysis report](https://neovim.io/doc/reports/pvs/) to see bugs
found by [PVS Studio](https://www.viva64.com/en/pvs-studio/).
You can run `scripts/pvscheck.sh` locally to run PVS on your machine.
Reviewing
---------
@ -172,16 +271,20 @@ as context, use the `-W` argument as well.
[github-issues]: https://github.com/neovim/neovim/issues
[1820]: https://github.com/neovim/neovim/pull/1820
[hub]: https://hub.github.com/
[hygiene]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[style-guide]: http://neovim.io/develop/style-guide.xml
[conventional_commits]: https://www.conventionalcommits.org
[style-guide]: https://neovim.io/doc/user/dev_style.html#dev-style
[ASan]: http://clang.llvm.org/docs/AddressSanitizer.html
[run-tests]: https://github.com/neovim/neovim/blob/master/test/README.md#running-tests
[wiki-faq]: https://github.com/neovim/neovim/wiki/FAQ
[review-checklist]: https://github.com/neovim/neovim/wiki/Code-review-checklist
[3174]: https://github.com/neovim/neovim/issues/3174
[travis CI]: https://travis-ci.org/neovim/neovim
[quickbuild]: http://neovim-qb.szakmeister.net/dashboard
[AppVeyor]: https://ci.appveyor.com/project/neovim/neovim
[sourcehut]: https://builds.sr.ht/~jmk
[GitHub Actions]: https://github.com/neovim/neovim/actions
[Merge a Vim patch]: https://github.com/neovim/neovim/wiki/Merging-patches-from-upstream-Vim
[clang-scan]: https://neovim.io/doc/reports/clang/
[Clang report]: https://neovim.io/doc/reports/clang/
[complexity:low]: https://github.com/neovim/neovim/issues?q=is%3Aopen+is%3Aissue+label%3Acomplexity%3Alow
[master error list]: https://raw.githubusercontent.com/neovim/doc/gh-pages/reports/clint/errors.json
[wiki-contribute-help]: https://github.com/neovim/neovim/wiki/contribute-%3Ahelp
[pr-draft]: https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request
[pr-ready]: https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request
[uncrustify]: https://formulae.brew.sh/formula/uncrustify

View File

@ -1,19 +0,0 @@
<!-- Before reporting: search existing issues and check the FAQ. -->
- `nvim --version`:
- Vim (version: ) behaves differently?
- Operating system/version:
- Terminal name/version:
- `$TERM`:
### Steps to reproduce using `nvim -u NORC`
```
nvim -u NORC
```
### Actual behaviour
### Expected behaviour

11
LICENSE
View File

@ -189,8 +189,17 @@ contributed under the Vim license and (2) externally maintained libraries.
The externally maintained libraries used by Neovim are:
- Klib: a Generic Library in C. MIT/X11 license.
- libuv. Copyright Joyent, Inc. and other Node contributors. Node.js license.
- Lua: MIT license
- LuaJIT: a Just-In-Time Compiler for Lua. Copyright Mike Pall. MIT license.
- Luv: Apache 2.0 license
- libmpack: MIT license
- libtermkey: MIT license
- libuv. Copyright Joyent, Inc. and other Node contributors. Node.js license.
- libvterm: MIT license
- lua-compat: MIT license
- tree-sitter: MIT license
- xdiff: LGPL license
- lua-cjson: MIT license
====

92
MAINTAIN.md Normal file
View File

@ -0,0 +1,92 @@
Maintaining the Neovim project
==============================
Notes on maintaining the Neovim project.
General guidelines
------------------
* Decide by cost-benefit
* Write down what was decided
* Constraints are good
* Use automation to solve problems
* Never break the API... but sometimes break the UI
Ticket triage
-------------
In practice we haven't found a way to forecast more precisely than "next" and
"after next". So there are usually one or two (at most) planned milestones:
- Next bugfix-release (1.0.x)
- Next feature-release (1.x.0)
The forecasting problem might be solved with an explicit priority system (like
Bram's todo.txt). Meanwhile the Neovim priority system is defined by:
- PRs nearing completion.
- Issue labels. E.g. the `+plan` label increases the ticket's priority merely
for having a plan written down: it is _closer to completion_ than tickets
without a plan.
- Comment activity or new information.
Anything that isn't in the next milestone, and doesn't have a finished PR—is
just not something you care very much about, by construction. Post-release you
can review open issues, but chances are your next milestone is already getting
full... :)
Release policy
--------------
Release "often", but not "early".
The (unreleased) `master` branch is the "early" channel; it should not be
released if it's not stable. High-risk changes may be merged to `master` if
the next release is not imminent.
For maintenance releases, create a `release-x.y` branch. If the current release
has a major bug:
1. Fix the bug on `master`.
2. Cherry-pick the fix to `release-x.y`.
3. Cut a release from `release-x.y`.
- Run `./scripts/release.sh`
- Update (force-push) the remote `stable` tag.
- The [nightly job](https://github.com/neovim/bot-ci/blob/master/ci/nightly.sh)
will update the release assets based on the `stable` tag.
The neovim repository includes a backport [github action](https://github.com/zeebe-io/backport-action).
In order to trigger the action, a PR must be labeled with a label matching the
form `backport release-0.X`. If the label is applied before the PR is merged,
the backport will be filed automatically against the target branch. Otherwise,
comment `\backport` on the merged PR *after* the label has been applied to trigger
a backport. Note, the PR must have a description in the issue body, or the backport
will fail.
Third-party dependencies
--------------
These "bundled" dependencies can be updated by bumping their versions in `third-party/CMakeLists.txt`:
- [Lua](https://www.lua.org/download.html)
- [LuaJIT](https://github.com/LuaJIT/LuaJIT)
- [Luv](https://github.com/luvit/luv)
- [libtermkey](https://github.com/neovim/libtermkey)
- [libuv](https://github.com/libuv/libuv)
- [libvterm](http://www.leonerd.org.uk/code/libvterm/)
- [lua-compat](https://github.com/keplerproject/lua-compat-5.3)
- [tree-sitter](https://github.com/tree-sitter/tree-sitter)
These dependencies are "vendored" (inlined), we need to update the sources manually:
- [libmpack](https://github.com/libmpack/libmpack)
- [xdiff](https://github.com/git/git/tree/master/xdiff)
- [lua-cjson](https://github.com/openresty/lua-cjson)
- [Klib](https://github.com/attractivechaos/klib)
We also maintain some forks, particularly for Windows, if we are waiting on upstream changes:
https://github.com/neovim/neovim/wiki/Deps
See also
--------
- https://github.com/neovim/neovim/issues/862
- https://github.com/git/git/blob/master/Documentation/howto/maintain-git.txt

182
Makefile
View File

@ -1,53 +1,82 @@
THIS_DIR = $(shell pwd)
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))
filter-false = $(strip $(filter-out 0 off OFF false FALSE,$1))
filter-true = $(strip $(filter-out 1 on ON true TRUE,$1))
# See contrib/local.mk.example
-include local.mk
all: nvim
CMAKE_PRG ?= $(shell (command -v cmake3 || echo cmake))
CMAKE_BUILD_TYPE ?= Debug
CMAKE_FLAGS := -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE)
# Extra CMake flags which extend the default set
CMAKE_EXTRA_FLAGS ?=
NVIM_PRG := $(MAKEFILE_DIR)/build/bin/nvim
BUILD_TYPE ?= $(shell (type ninja > /dev/null 2>&1 && echo "Ninja") || \
# CMAKE_INSTALL_PREFIX
# - May be passed directly or as part of CMAKE_EXTRA_FLAGS.
# - `checkprefix` target checks that it matches the CMake-cached value. #9615
ifneq (,$(CMAKE_INSTALL_PREFIX)$(CMAKE_EXTRA_FLAGS))
CMAKE_INSTALL_PREFIX := $(shell echo $(CMAKE_EXTRA_FLAGS) | 2>/dev/null \
grep -o 'CMAKE_INSTALL_PREFIX=[^ ]\+' | cut -d '=' -f2)
endif
ifneq (,$(CMAKE_INSTALL_PREFIX))
override CMAKE_EXTRA_FLAGS += -DCMAKE_INSTALL_PREFIX=$(CMAKE_INSTALL_PREFIX)
checkprefix:
@if [ -f build/.ran-cmake ]; then \
cached_prefix=$(shell $(CMAKE_PRG) -L -N build | 2>/dev/null grep 'CMAKE_INSTALL_PREFIX' | cut -d '=' -f2); \
if ! [ "$(CMAKE_INSTALL_PREFIX)" = "$$cached_prefix" ]; then \
printf "Re-running CMake: CMAKE_INSTALL_PREFIX '$(CMAKE_INSTALL_PREFIX)' does not match cached value '%s'.\n" "$$cached_prefix"; \
$(RM) build/.ran-cmake; \
fi \
fi
else
checkprefix: ;
endif
CMAKE_GENERATOR ?= $(shell (command -v ninja > /dev/null 2>&1 && echo "Ninja") || \
echo "Unix Makefiles")
DEPS_BUILD_DIR ?= .deps
ifneq (1,$(words [$(DEPS_BUILD_DIR)]))
$(error DEPS_BUILD_DIR must not contain whitespace)
endif
ifeq (,$(BUILD_TOOL))
ifeq (Ninja,$(BUILD_TYPE))
ifeq (Ninja,$(CMAKE_GENERATOR))
ifneq ($(shell $(CMAKE_PRG) --help 2>/dev/null | grep Ninja),)
BUILD_TOOL := ninja
BUILD_TOOL = ninja
else
# User's version of CMake doesn't support Ninja
BUILD_TOOL = $(MAKE)
BUILD_TYPE := Unix Makefiles
CMAKE_GENERATOR := Unix Makefiles
endif
else
BUILD_TOOL = $(MAKE)
endif
endif
ifneq ($(VERBOSE),)
# Only need to handle Ninja here. Make will inherit the VERBOSE variable.
ifeq ($(BUILD_TYPE),Ninja)
VERBOSE_FLAG := -v
# Only need to handle Ninja here. Make will inherit the VERBOSE variable, and the -j, -l, and -n flags.
ifeq ($(CMAKE_GENERATOR),Ninja)
ifneq ($(VERBOSE),)
BUILD_TOOL += -v
endif
BUILD_TOOL += $(shell printf '%s' '$(MAKEFLAGS)' | grep -o -- ' *-[jl][0-9]\+ *')
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))
BUILD_TOOL += -n
endif
endif
BUILD_CMD = $(BUILD_TOOL) $(VERBOSE_FLAG)
# Extra CMake flags which extend the default set
CMAKE_EXTRA_FLAGS ?=
DEPS_CMAKE_FLAGS ?=
USE_BUNDLED_DEPS ?=
# Back-compat: USE_BUNDLED_DEPS was the old name.
USE_BUNDLED ?= $(USE_BUNDLED_DEPS)
ifneq (,$(USE_BUNDLED_DEPS))
BUNDLED_CMAKE_FLAG := -DUSE_BUNDLED=$(USE_BUNDLED_DEPS)
ifneq (,$(USE_BUNDLED))
BUNDLED_CMAKE_FLAG := -DUSE_BUNDLED=$(USE_BUNDLED)
endif
ifneq (,$(findstring functionaltest-lua,$(MAKECMDGOALS)))
@ -59,97 +88,142 @@ endif
# a warning, but we need to keep SCRIPTS argument.
SINGLE_MAKE = export MAKEFLAGS= ; $(MAKE)
all: nvim
nvim: build/.ran-cmake deps
+$(BUILD_CMD) -C build
+$(BUILD_TOOL) -C build
libnvim: build/.ran-cmake deps
+$(BUILD_CMD) -C build libnvim
+$(BUILD_TOOL) -C build libnvim
cmake:
touch CMakeLists.txt
$(MAKE) build/.ran-cmake
build/.ran-cmake: | deps
cd build && $(CMAKE_PRG) -G '$(BUILD_TYPE)' $(CMAKE_FLAGS) $(CMAKE_EXTRA_FLAGS) $(THIS_DIR)
cd build && $(CMAKE_PRG) -G '$(CMAKE_GENERATOR)' $(CMAKE_FLAGS) $(CMAKE_EXTRA_FLAGS) $(MAKEFILE_DIR)
touch $@
deps: | build/.ran-third-party-cmake
ifeq ($(call filter-true,$(USE_BUNDLED_DEPS)),)
+$(BUILD_CMD) -C $(DEPS_BUILD_DIR)
ifeq ($(call filter-true,$(USE_BUNDLED)),)
+$(BUILD_TOOL) -C $(DEPS_BUILD_DIR)
endif
build/.ran-third-party-cmake:
ifeq ($(call filter-true,$(USE_BUNDLED_DEPS)),)
mkdir -p $(DEPS_BUILD_DIR)
ifeq ($(call filter-true,$(USE_BUNDLED)),)
$(DEPS_BUILD_DIR):
mkdir -p "$@"
build/.ran-third-party-cmake:: $(DEPS_BUILD_DIR)
cd $(DEPS_BUILD_DIR) && \
$(CMAKE_PRG) -G '$(BUILD_TYPE)' $(BUNDLED_CMAKE_FLAG) $(BUNDLED_LUA_CMAKE_FLAG) \
$(DEPS_CMAKE_FLAGS) $(THIS_DIR)/third-party
$(CMAKE_PRG) -G '$(CMAKE_GENERATOR)' $(BUNDLED_CMAKE_FLAG) $(BUNDLED_LUA_CMAKE_FLAG) \
$(DEPS_CMAKE_FLAGS) $(MAKEFILE_DIR)/third-party
endif
build/.ran-third-party-cmake::
mkdir -p build
touch $@
# TODO: cmake 3.2+ add_custom_target() has a USES_TERMINAL flag.
oldtest: | nvim helptags
oldtest: | nvim build/runtime/doc/tags
+$(SINGLE_MAKE) -C src/nvim/testdir clean
ifeq ($(strip $(TEST_FILE)),)
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" $(MAKEOVERRIDES)
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG=$(NVIM_PRG) $(MAKEOVERRIDES)
else
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" NEW_TESTS=$(TEST_FILE) SCRIPTS= $(MAKEOVERRIDES)
@# Handle TEST_FILE=test_foo{,.res,.vim}.
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG=$(NVIM_PRG) SCRIPTS= $(MAKEOVERRIDES) $(patsubst %.vim,%,$(patsubst %.res,%,$(TEST_FILE)))
endif
# Build oldtest by specifying the relative .vim filename.
.PHONY: phony_force
src/nvim/testdir/%.vim: phony_force
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG=$(NVIM_PRG) SCRIPTS= $(MAKEOVERRIDES) $(patsubst src/nvim/testdir/%.vim,%,$@)
helptags: | nvim
+$(BUILD_CMD) -C build helptags
build/runtime/doc/tags helptags: | nvim
+$(BUILD_TOOL) -C build runtime/doc/tags
# Builds help HTML _and_ checks for invalid help tags.
helphtml: | nvim build/runtime/doc/tags
+$(BUILD_TOOL) -C build doc_html
functionaltest: | nvim
+$(BUILD_CMD) -C build functionaltest
+$(BUILD_TOOL) -C build functionaltest
functionaltest-lua: | nvim
+$(BUILD_CMD) -C build functionaltest-lua
testlint: | build/.ran-cmake deps
$(BUILD_CMD) -C build testlint
+$(BUILD_TOOL) -C build functionaltest-lua
lualint: | build/.ran-cmake deps
$(BUILD_CMD) -C build lualint
$(BUILD_TOOL) -C build lualint
shlint:
@shellcheck --version | head -n 2
shellcheck scripts/vim-patch.sh
_opt_shlint:
@command -v shellcheck && { $(MAKE) shlint; exit $$?; } \
|| echo "SKIP: shlint (shellcheck not found)"
pylint:
flake8 contrib/ scripts/ src/ test/
# Run pylint only if flake8 is installed.
_opt_pylint:
@command -v flake8 && { $(MAKE) pylint; exit $$?; } \
|| echo "SKIP: pylint (flake8 not found)"
commitlint:
$(NVIM_PRG) --clean -es +"lua require('scripts.lintcommit').main({trace=false})"
_opt_commitlint:
@test -x build/bin/nvim && { $(MAKE) commitlint; exit $$?; } \
|| echo "SKIP: commitlint (build/bin/nvim not found)"
unittest: | nvim
+$(BUILD_CMD) -C build unittest
+$(BUILD_TOOL) -C build unittest
benchmark: | nvim
+$(BUILD_CMD) -C build benchmark
+$(BUILD_TOOL) -C build benchmark
test: functionaltest unittest
clean:
+test -d build && $(BUILD_CMD) -C build clean || true
+test -d build && $(BUILD_TOOL) -C build clean || true
$(MAKE) -C src/nvim/testdir clean
$(MAKE) -C runtime/doc clean
$(MAKE) -C runtime/indent clean
distclean: clean
distclean:
rm -rf $(DEPS_BUILD_DIR) build
$(MAKE) clean
install: | nvim
+$(BUILD_CMD) -C build install
install: checkprefix nvim
+$(BUILD_TOOL) -C build install
clint: build/.ran-cmake
+$(BUILD_CMD) -C build clint
+$(BUILD_TOOL) -C build clint
clint-full: build/.ran-cmake
+$(BUILD_CMD) -C build clint-full
+$(BUILD_TOOL) -C build clint-full
check-single-includes: build/.ran-cmake
+$(BUILD_CMD) -C build check-single-includes
+$(BUILD_TOOL) -C build check-single-includes
generated-sources: build/.ran-cmake
+$(BUILD_TOOL) -C build generated-sources
appimage:
bash scripts/genappimage.sh
# Build an appimage with embedded update information appimage-nightly for
# nightly builds or appimage-latest for a release
# Build an appimage with embedded update information.
# appimage-nightly: for nightly builds
# appimage-latest: for a release
appimage-%:
bash scripts/genappimage.sh $*
lint: check-single-includes clint testlint lualint
lint: check-single-includes clint lualint _opt_pylint _opt_shlint _opt_commitlint
.PHONY: test testlint lualint functionaltest unittest lint clint clean distclean nvim libnvim cmake deps install appimage
# Generic pattern rules, allowing for `make build/bin/nvim` etc.
# Does not work with "Unix Makefiles".
ifeq ($(CMAKE_GENERATOR),Ninja)
build/%: phony_force
$(BUILD_TOOL) -C build $(patsubst build/%,%,$@)
$(DEPS_BUILD_DIR)/%: phony_force
$(BUILD_TOOL) -C $(DEPS_BUILD_DIR) $(patsubst $(DEPS_BUILD_DIR)/%,%,$@)
endif
.PHONY: test lualint pylint shlint functionaltest unittest lint clint clean distclean nvim libnvim cmake deps install appimage checkprefix commitlint

127
README.md
View File

@ -1,21 +1,19 @@
[![Neovim](https://raw.githubusercontent.com/neovim/neovim.github.io/master/logos/neovim-logo-600x173.png)](https://neovim.io)
[![Neovim](https://raw.githubusercontent.com/neovim/neovim.github.io/master/logos/neovim-logo-300x87.png)](https://neovim.io)
[Wiki](https://github.com/neovim/neovim/wiki) |
[Documentation](https://neovim.io/doc) |
[Twitter](https://twitter.com/Neovim) |
[Community](https://neovim.io/community/) |
[Gitter **Chat**](https://gitter.im/neovim/neovim)
[Documentation](https://neovim.io/doc/general/) |
[Chat](https://app.element.io/#/room/#neovim:matrix.org) |
[Twitter](https://twitter.com/Neovim)
[![Travis Build Status](https://travis-ci.org/neovim/neovim.svg?branch=master)](https://travis-ci.org/neovim/neovim)
[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/urdqjrik5u521fac/branch/master?svg=true)](https://ci.appveyor.com/project/neovim/neovim/branch/master)
[![codecov](https://img.shields.io/codecov/c/github/neovim/neovim.svg)](https://codecov.io/gh/neovim/neovim)
[![Coverity Scan Build](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
[![Clang Scan Build](https://neovim.io/doc/reports/clang/badge.svg)](https://neovim.io/doc/reports/clang)
[![PVS-studio Check](https://neovim.io/doc/reports/pvs/badge.svg)](https://neovim.io/doc/reports/pvs/PVS-studio.html.d)
[![GitHub CI](https://github.com/neovim/neovim/workflows/CI/badge.svg)](https://github.com/neovim/neovim/actions?query=workflow%3ACI+branch%3Amaster+event%3Apush)
[![Codecov coverage](https://img.shields.io/codecov/c/github/neovim/neovim.svg)](https://codecov.io/gh/neovim/neovim)
[![Coverity Scan analysis](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
[![Clang analysis](https://neovim.io/doc/reports/clang/badge.svg)](https://neovim.io/doc/reports/clang)
[![PVS-Studio analysis](https://neovim.io/doc/reports/pvs/badge.svg)](https://neovim.io/doc/reports/pvs/PVS-studio.html.d)
[![Packages](https://repology.org/badge/tiny-repos/neovim.svg)](https://repology.org/metapackage/neovim)
[![Debian CI](https://badges.debian.net/badges/debian/testing/neovim/version.svg)](https://buildd.debian.org/neovim)
[![Downloads](https://img.shields.io/github/downloads/neovim/neovim/total.svg?maxAge=2592001)](https://github.com/neovim/neovim/releases/)
[![nvim](https://snapcraft.io//nvim/badge.svg)](https://snapcraft.io/nvim)
Neovim is a project that seeks to aggressively refactor Vim in order to:
@ -24,38 +22,58 @@ Neovim is a project that seeks to aggressively refactor Vim in order to:
- Enable [advanced UIs] without modifications to the core
- Maximize [extensibility](https://github.com/neovim/neovim/wiki/Plugin-UI-architecture)
See [the wiki](https://github.com/neovim/neovim/wiki/Introduction) and [Roadmap]
See the [Introduction](https://github.com/neovim/neovim/wiki/Introduction) wiki page and [Roadmap]
for more information.
[![Throughput Graph](https://graphs.waffle.io/neovim/neovim/throughput.svg)](https://waffle.io/neovim/neovim/metrics)
Features
--------
Install from source
-------------------
- Modern [GUIs](https://github.com/neovim/neovim/wiki/Related-projects#gui)
- [API access](https://github.com/neovim/neovim/wiki/Related-projects#api-clients)
from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java,
JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html)
- Asynchronous [job control](https://github.com/neovim/neovim/pull/2247)
- [Shared data (shada)](https://github.com/neovim/neovim/pull/2506) among multiple editor instances
- [XDG base directories](https://github.com/neovim/neovim/pull/3470) support
- Compatible with most Vim plugins, including Ruby and Python plugins
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location, set `CMAKE_INSTALL_PREFIX`:
make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=/full/path/"
make install
To list all targets:
cmake --build build --target help
To skip "bundled" dependencies define `USE_BUNDLED_DEPS=NO` (CMake option: `USE_BUNDLED=NO`).
See [the wiki](https://github.com/neovim/neovim/wiki/Building-Neovim) for details.
See [`:help nvim-features`][nvim-features] for the full list!
Install from package
--------------------
Pre-built packages for Windows, macOS, and Linux are found at the
Pre-built packages for Windows, macOS, and Linux are found on the
[Releases](https://github.com/neovim/neovim/releases/) page.
Managed packages are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], [Gentoo],
and [more](https://github.com/neovim/neovim/wiki/Installing-Neovim)!
[Managed packages] are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], [Void Linux], [Gentoo], and more!
Install from source
-------------------
See the [Building Neovim](https://github.com/neovim/neovim/wiki/Building-Neovim) wiki page for details.
The build is CMake-based, but a Makefile is provided as a convenience.
After installing the dependencies, run the following command.
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location:
make CMAKE_INSTALL_PREFIX=/full/path/
make install
CMake hints for inspecting the build:
- `cmake --build build --target help` lists all build targets.
- `build/CMakeCache.txt` (or `cmake -LAH build/`) contains the resolved values of all CMake variables.
- `build/compile_commands.json` shows the full compiler invocations for each translation unit.
Transitioning from Vim
--------------------
See [`:help nvim-from-vim`](https://neovim.io/doc/user/nvim.html#nvim-from-vim) for instructions.
Project layout
--------------
@ -63,48 +81,25 @@ Project layout
├─ ci/ build automation
├─ cmake/ build scripts
├─ runtime/ user plugins/docs
├─ src/ application source code (see src/nvim/README.md)
├─ src/nvim/ application source code (see src/nvim/README.md)
│ ├─ api/ API subsystem
│ ├─ eval/ VimL subsystem
│ ├─ event/ event-loop subsystem
│ ├─ generators/ code generation (pre-compilation)
│ ├─ lib/ generic data structures
│ ├─ lua/ lua subsystem
│ ├─ lua/ Lua subsystem
│ ├─ msgpack_rpc/ RPC subsystem
│ ├─ os/ low-level platform code
│ └─ tui/ built-in UI
├─ third-party/ cmake subproject to build dependencies
├─ third-party/ CMake subproject to build dependencies
└─ test/ tests (see test/README.md)
Features
--------
- Modern [GUIs](https://github.com/neovim/neovim/wiki/Related-projects#gui)
- [API](https://github.com/neovim/neovim/wiki/Related-projects#api-clients)
access from any language including clojure, lisp, go, haskell, lua,
javascript, perl, python, ruby, rust.
- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html)
- Asynchronous [job control](https://github.com/neovim/neovim/pull/2247)
- [Shared data (shada)](https://github.com/neovim/neovim/pull/2506) among multiple editor instances
- [XDG base directories](https://github.com/neovim/neovim/pull/3470) support
- Compatible with most Vim plugins, including Ruby and Python plugins.
See [`:help nvim-features`][nvim-features] for the full list!
License
-------
Neovim is licensed under the terms of the Apache 2.0 license, except for
parts that were contributed under the Vim license.
- Contributions committed before [b17d96][license-commit] remain under the Vim
license.
- Contributions committed after [b17d96][license-commit] are licensed under
Apache 2.0 unless those contributions were copied from Vim (identified in
the commit logs by the `vim-patch` token).
See `LICENSE` for details.
Neovim contributions since [b17d96][license-commit] are licensed under the
Apache 2.0 license, except for contributions copied from Vim (identified by the
`vim-patch` token). See LICENSE for details.
Vim is Charityware. You can use and copy it as much as you like, but you are
encouraged to make a donation for needy children in Uganda. Please see the
@ -121,11 +116,13 @@ See `LICENSE` for details.
[nvim-features]: https://neovim.io/doc/user/vim_diff.html#nvim-features
[Roadmap]: https://neovim.io/roadmap/
[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui
[Homebrew]: https://github.com/neovim/homebrew-neovim#installation
[Managed packages]: https://github.com/neovim/neovim/wiki/Installing-Neovim#install-from-package
[Debian]: https://packages.debian.org/testing/neovim
[Ubuntu]: http://packages.ubuntu.com/search?keywords=neovim
[Fedora]: https://admin.fedoraproject.org/pkgdb/package/rpms/neovim
[Fedora]: https://apps.fedoraproject.org/packages/neovim
[Arch Linux]: https://www.archlinux.org/packages/?q=neovim
[Void Linux]: https://voidlinux.org/packages/?arch=x86_64&q=neovim
[Gentoo]: https://packages.gentoo.org/packages/app-editors/neovim
[Homebrew]: https://formulae.brew.sh/formula/neovim
<!-- vim: set tw=80: -->

View File

@ -1,24 +0,0 @@
version: '{build}'
environment:
APPVEYOR_CACHE_ENTRY_ZIP_ARGS: "-t7z -m0=lzma -mx=9"
image: Visual Studio 2017
configuration:
- MSVC_64
- MSVC_32
- MINGW_64
- MINGW_32
- MINGW_64-gcov
matrix:
allow_failures:
- configuration: MINGW_64-gcov
install: []
before_build:
- ps: Install-Product node 8
build_script:
- powershell ci\build.ps1
cache:
- C:\msys64\var\cache\pacman\pkg -> ci\build.ps1
- .deps -> third-party\**
artifacts:
- path: build/Neovim.zip
- path: build/bin/nvim.exe

View File

@ -1,92 +0,0 @@
-- TODO(jkeyes): remove this and use the upstream version as soon as it is
-- available in a release of busted.
local pretty = require 'pl.pretty'
return function(options)
local busted = require 'busted'
local handler = require 'busted.outputHandlers.base'()
local success = 'ok %u - %s'
local failure = 'not ' .. success
local skip = 'ok %u - # SKIP %s'
local counter = 0
handler.suiteReset = function()
counter = 0
return nil, true
end
handler.suiteEnd = function()
print('1..' .. counter)
io.flush()
return nil, true
end
local function showFailure(t)
local message = t.message
local trace = t.trace or {}
if message == nil then
message = 'Nil error'
elseif type(message) ~= 'string' then
message = pretty.write(message)
end
print(failure:format(counter, t.name))
print('# ' .. t.element.trace.short_src .. ' @ ' .. t.element.trace.currentline)
if t.randomseed then print('# Random seed: ' .. t.randomseed) end
print('# Failure message: ' .. message:gsub('\n', '\n# '))
if options.verbose and trace.traceback then
print('# ' .. trace.traceback:gsub('^\n', '', 1):gsub('\n', '\n# '))
end
end
handler.testStart = function(element, parent)
local trace = element.trace
if options.verbose and trace and trace.short_src then
local fileline = trace.short_src .. ' @ ' .. trace.currentline .. ': '
local testName = fileline .. handler.getFullName(element)
print('# ' .. testName)
end
io.flush()
return nil, true
end
handler.testEnd = function(element, parent, status, trace)
counter = counter + 1
if status == 'success' then
local t = handler.successes[#handler.successes]
print(success:format(counter, t.name))
elseif status == 'pending' then
local t = handler.pendings[#handler.pendings]
print(skip:format(counter, (t.message or t.name)))
elseif status == 'failure' then
showFailure(handler.failures[#handler.failures])
elseif status == 'error' then
showFailure(handler.errors[#handler.errors])
end
io.flush()
return nil, true
end
handler.error = function(element, parent, message, debug)
if element.descriptor ~= 'it' then
counter = counter + 1
showFailure(handler.errors[#handler.errors])
end
io.flush()
return nil, true
end
busted.subscribe({ 'suite', 'reset' }, handler.suiteReset)
busted.subscribe({ 'suite', 'end' }, handler.suiteEnd)
busted.subscribe({ 'test', 'start' }, handler.testStart, { predicate = handler.cancelOnPending })
busted.subscribe({ 'test', 'end' }, handler.testEnd, { predicate = handler.cancelOnPending })
busted.subscribe({ 'error' }, handler.error)
return handler
end

View File

@ -7,23 +7,20 @@ CI_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${CI_DIR}/common/build.sh"
source "${CI_DIR}/common/suite.sh"
# Don't cache pip's log and selfcheck.
rm -rf "${HOME}/.cache/pip/log"
rm -f "${HOME}/.cache/pip/selfcheck.json"
echo "before_cache.sh: cache size"
du -d 2 "${HOME}/.cache" | sort -n
du -chd 1 "${HOME}/.cache" | sort -rh | head -20
echo "before_cache.sh: ccache stats"
ccache -s 2>/dev/null || true
# Do not keep ccache stats (uploaded to cache otherwise; reset initially anyway).
find "${HOME}/.ccache" -name stats -delete
# Update the third-party dependency cache only if the build was successful.
if ended_successfully; then
rm -rf "${HOME}/.cache/nvim-deps"
mv "${DEPS_BUILD_DIR}" "${HOME}/.cache/nvim-deps"
rm -rf "${HOME}/.cache/nvim-deps-downloads"
mv "${DEPS_DOWNLOAD_DIR}" "${HOME}/.cache/nvim-deps-downloads"
# Do not cache downloads. They should not be needed with up-to-date deps.
rm -rf "${DEPS_BUILD_DIR}/build/downloads"
rm -rf "${CACHE_NVIM_DEPS_DIR}"
mv "${DEPS_BUILD_DIR}" "${CACHE_NVIM_DEPS_DIR}"
touch "${CACHE_MARKER}"
echo "Updated third-party dependencies (timestamp: $(_stat "${CACHE_MARKER}"))."

View File

@ -3,38 +3,37 @@
set -e
set -o pipefail
if [[ "${CI_TARGET}" == lint ]]; then
exit
fi
if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
brew update
fi
echo 'python info:'
echo 'Python info:'
(
2>&1 python --version || true
2>&1 python2 --version || true
2>&1 python3 --version || true
2>&1 pip --version || true
2>&1 pip2 --version || true
2>&1 pip3 --version || true
echo 'pyenv versions:'
2>&1 pyenv versions || true
) | sed 's/^/ /'
set -x
python3 --version
python2 --version
python --version
pip3 --version
pip2 --version
pip --version
if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
echo "Upgrade Python 3."
brew upgrade python
echo "Upgrade Python 3 pip."
pip3 -q install --user --upgrade pip
else
echo "Upgrade Python 2 pip."
pip2.7 -q install --user --upgrade pip
echo "Upgrade Python 3 pip."
# Allow failure. pyenv pip3 on travis is broken:
# https://github.com/travis-ci/travis-ci/issues/8363
pip3 -q install --user --upgrade pip || true
pyenv --version
pyenv versions
) 2>&1 | sed 's/^/ /' || true
# Use pyenv, but not for OSX on Travis, where it only has the "system" version.
if [[ "${TRAVIS_OS_NAME}" != osx ]] && command -v pyenv; then
echo 'Setting Python versions via pyenv'
# Prefer Python 2 over 3 (more conservative).
pyenv global 2.7:3.8
echo 'Updated Python info:'
(
set -x
python3 --version
python2 --version
python --version
python3 -m pip --version
python2 -m pip --version
) 2>&1 | sed 's/^/ /'
fi
echo "Install node (LTS)"
@ -44,5 +43,4 @@ if [[ "${TRAVIS_OS_NAME}" == osx ]] || [ ! -f ~/.nvm/nvm.sh ]; then
fi
source ~/.nvm/nvm.sh
nvm install --lts
nvm use --lts
nvm install 10

View File

@ -3,13 +3,15 @@
set -e
set -o pipefail
if [[ "${CI_TARGET}" == lint ]]; then
exit
fi
CI_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${CI_DIR}/common/build.sh"
# Enable ipv6 on Travis. ref: a39c8b7ce30d
if test -n "${TRAVIS_OS_NAME}" && ! test "${TRAVIS_OS_NAME}" = osx ; then
echo "before_script.sh: enable ipv6"
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
fi
# Test some of the configuration variables.
if [[ -n "${GCOV}" ]] && [[ ! $(type -P "${GCOV}") ]]; then
echo "\$GCOV: '${GCOV}' is not executable."
@ -20,8 +22,10 @@ if [[ -n "${LLVM_SYMBOLIZER}" ]] && [[ ! $(type -P "${LLVM_SYMBOLIZER}") ]]; the
exit 1
fi
# Show ccache stats so we can compare in before_cache
ccache -s 2>/dev/null || true
echo "before_script.sh: ccache stats (will be cleared)"
ccache -s
# Reset ccache stats for real results in before_cache.
ccache --zero-stats
if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
# Adds user to a dummy group.
@ -33,5 +37,10 @@ fi
# Compile dependencies.
build_deps
# Install cluacov for Lua coverage.
if [[ "$USE_LUACOV" == 1 ]]; then
"${DEPS_BUILD_DIR}/usr/bin/luarocks" install cluacov
fi
rm -rf "${LOG_DIR}"
mkdir -p "${LOG_DIR}"

View File

@ -1,22 +1,26 @@
Set-PSDebug -Trace 1
param([switch]$NoTests)
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
$env:CONFIGURATION -match '^(?<compiler>\w+)_(?<bits>32|64)(?:-(?<option>\w+))?$'
$compiler = $Matches.compiler
$compileOption = $Matches.option
$compileOption = if ($Matches -contains 'option') {$Matches.option} else {''}
$bits = $Matches.bits
$cmakeBuildType = 'RelWithDebInfo'
$cmakeBuildType = $(if ($env:CMAKE_BUILD_TYPE -ne $null) {$env:CMAKE_BUILD_TYPE} else {'RelWithDebInfo'});
$buildDir = [System.IO.Path]::GetFullPath("$(pwd)")
$depsCmakeVars = @{
CMAKE_BUILD_TYPE = $cmakeBuildType;
}
$nvimCmakeVars = @{
CMAKE_BUILD_TYPE = $cmakeBuildType;
BUSTED_OUTPUT_TYPE = 'nvim';
DEPS_PREFIX=$(if ($env:DEPS_PREFIX -ne $null) {$env:DEPS_PREFIX} else {".deps/usr"});
}
# For pull requests, skip some build configurations to save time.
if ($env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT -and $env:CONFIGURATION -match '^(MSVC_64|MINGW_32)$') {
exit 0
if ($env:DEPS_BUILD_DIR -eq $null) {
$env:DEPS_BUILD_DIR = ".deps";
}
$uploadToCodeCov = $false
function exitIfFailed() {
if ($LastExitCode -ne 0) {
@ -24,6 +28,18 @@ function exitIfFailed() {
}
}
if (-not $NoTests) {
node --version
npm.cmd --version
}
if (-Not (Test-Path -PathType container $env:DEPS_BUILD_DIR)) {
write-host "cache dir not found: $($env:DEPS_BUILD_DIR)"
mkdir $env:DEPS_BUILD_DIR
} else {
write-host "cache dir $($env:DEPS_BUILD_DIR) size: $(Get-ChildItem $env:DEPS_BUILD_DIR -recurse | Measure-Object -property length -sum | Select -expand sum)"
}
if ($compiler -eq 'MINGW') {
if ($bits -eq 32) {
$arch = 'i686'
@ -34,19 +50,30 @@ if ($compiler -eq 'MINGW') {
if ($compileOption -eq 'gcov') {
$nvimCmakeVars['USE_GCOV'] = 'ON'
$uploadToCodecov = $true
$env:GCOV = "C:\msys64\mingw$bits\bin\gcov"
# Setup/build Lua coverage.
$env:USE_LUACOV = 1
$env:BUSTED_ARGS = "--coverage"
}
# These are native MinGW builds, but they use the toolchain inside
# MSYS2, this allows using all the dependencies and tools available
# in MSYS2, but we cannot build inside the MSYS2 shell.
$cmakeGenerator = 'MinGW Makefiles'
$cmakeGeneratorArgs = 'VERBOSE=1'
$cmakeGenerator = 'Ninja'
$cmakeGeneratorArgs = '-v'
$mingwPackages = @('ninja', 'cmake', 'diffutils').ForEach({
"mingw-w64-$arch-$_"
})
# Add MinGW to the PATH
$env:PATH = "C:\msys64\mingw$bits\bin;$env:PATH"
# Avoid pacman "warning" which causes non-zero return code. https://github.com/open62541/open62541/issues/2068
& C:\msys64\usr\bin\mkdir -p /var/cache/pacman/pkg
# Build third-party dependencies
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Su" ; exitIfFailed
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S mingw-w64-$arch-cmake mingw-w64-$arch-perl mingw-w64-$arch-diffutils mingw-w64-$arch-unibilium" ; exitIfFailed
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Syu" ; exitIfFailed
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S $mingwPackages" ; exitIfFailed
}
elseif ($compiler -eq 'MSVC') {
$cmakeGeneratorArgs = '/verbosity:normal'
@ -58,68 +85,94 @@ elseif ($compiler -eq 'MSVC') {
}
}
# Remove Git Unix utilities from the PATH
$env:PATH = $env:PATH.Replace('C:\Program Files\Git\usr\bin', '')
if (-not $NoTests) {
# Setup python (use AppVeyor system python)
# Setup python (use AppVeyor system python)
C:\Python27\python.exe -m pip install neovim ; exitIfFailed
C:\Python35\python.exe -m pip install neovim ; exitIfFailed
# Disambiguate python3
move c:\Python35\python.exe c:\Python35\python3.exe
$env:PATH = "C:\Python35;C:\Python27;$env:PATH"
# Sanity check
python -c "import neovim; print(str(neovim))" ; exitIfFailed
python3 -c "import neovim; print(str(neovim))" ; exitIfFailed
# Disambiguate python3, if needed
if (-not (Test-Path -Path C:\hostedtoolcache\windows\Python\3.5.4\x64\python3.exe) ) {
move C:\hostedtoolcache\windows\Python\3.5.4\x64\python.exe C:\hostedtoolcache\windows\Python\3.5.4\x64\python3.exe
}
$env:PATH = "C:\hostedtoolcache\windows\Python\2.7.18\x64;C:\hostedtoolcache\windows\Python\3.5.4\x64;$env:PATH"
$env:PATH = "C:\Ruby24\bin;$env:PATH"
cmd /c gem.cmd install neovim ; exitIfFailed
where.exe neovim-ruby-host.bat ; exitIfFailed
python -m pip install pynvim ; exitIfFailed
python3 -m pip install pynvim ; exitIfFailed
# Sanity check
python -c "import pynvim; print(str(pynvim))" ; exitIfFailed
python3 -c "import pynvim; print(str(pynvim))" ; exitIfFailed
cmd /c npm.cmd install -g neovim ; exitIfFailed
where.exe neovim-node-host.cmd ; exitIfFailed
cmd /c npm link neovim
gem.cmd install --pre neovim
Get-Command -CommandType Application neovim-ruby-host.bat
npm.cmd install -g neovim
Get-Command -CommandType Application neovim-node-host.cmd
npm.cmd link neovim
}
if ($compiler -eq 'MSVC') {
# Required for LuaRocks (https://github.com/luarocks/luarocks/issues/1039#issuecomment-507296940).
$env:VCINSTALLDIR = "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/"
}
function convertToCmakeArgs($vars) {
return $vars.GetEnumerator() | foreach { "-D$($_.Key)=$($_.Value)" }
}
mkdir .deps
cd .deps
cmake -G $cmakeGenerator $(convertToCmakeArgs($depsCmakeVars)) ..\third-party\ ; exitIfFailed
cd $env:DEPS_BUILD_DIR
cmake -G $cmakeGenerator $(convertToCmakeArgs($depsCmakeVars)) "$buildDir/third-party/" ; exitIfFailed
cmake --build . --config $cmakeBuildType -- $cmakeGeneratorArgs ; exitIfFailed
cd ..
cd $buildDir
# Build Neovim
mkdir build
cd build
cmake -G $cmakeGenerator $(convertToCmakeArgs($nvimCmakeVars)) .. ; exitIfFailed
cmake --build . --config $cmakeBuildType -- $cmakeGeneratorArgs ; exitIfFailed
bin\nvim --version ; exitIfFailed
.\bin\nvim --version ; exitIfFailed
# Functional tests
# The $LastExitCode from MSBuild can't be trusted
$failed = $false
# Temporarily turn off tracing to reduce log file output
Set-PSDebug -Off
cmake --build . --config $cmakeBuildType --target functionaltest -- $cmakeGeneratorArgs 2>&1 |
foreach { $failed = $failed -or
$_ -match 'Running functional tests failed with error'; $_ }
Set-PSDebug -Trace 1
if ($failed) {
exit $LastExitCode
# Ensure that the "win32" feature is set.
.\bin\nvim -u NONE --headless -c 'exe !has(\"win32\").\"cq\"' ; exitIfFailed
if ($env:USE_LUACOV -eq 1) {
& $env:DEPS_PREFIX\luarocks\luarocks.bat install cluacov
}
if (-not $NoTests) {
# Functional tests
# The $LastExitCode from MSBuild can't be trusted
$failed = $false
if ($uploadToCodecov) {
C:\msys64\usr\bin\bash -lc "cd /c/projects/neovim; bash <(curl -s https://codecov.io/bash) -c -F functionaltest || echo 'codecov upload failed.'"
# Run only this test file:
# $env:TEST_FILE = "test\functional\foo.lua"
cmake --build . --config $cmakeBuildType --target functionaltest -- $cmakeGeneratorArgs 2>&1 |
foreach { $failed = $failed -or
$_ -match 'functional tests failed with error'; $_ }
if ($uploadToCodecov) {
if ($env:USE_LUACOV -eq 1) {
& $env:DEPS_PREFIX\bin\luacov.bat
}
bash -l /c/projects/neovim/ci/common/submit_coverage.sh functionaltest
}
if ($failed) {
exit $LastExitCode
}
# Old tests
# Add MSYS to path, required for e.g. `find` used in test scripts.
# But would break functionaltests, where its `more` would be used then.
$OldPath = $env:PATH
$env:PATH = "C:\msys64\usr\bin;$env:PATH"
& "C:\msys64\mingw$bits\bin\mingw32-make.exe" -C $(Convert-Path ..\src\nvim\testdir) VERBOSE=1 ; exitIfFailed
$env:PATH = $OldPath
if ($uploadToCodecov) {
bash -l /c/projects/neovim/ci/common/submit_coverage.sh oldtest
}
}
# Old tests
$env:PATH = "C:\msys64\usr\bin;$env:PATH"
& "C:\msys64\mingw$bits\bin\mingw32-make.exe" -C $(Convert-Path ..\src\nvim\testdir) VERBOSE=1
if ($uploadToCodecov) {
C:\msys64\usr\bin\bash -lc "cd /c/projects/neovim; bash <(curl -s https://codecov.io/bash) -c -F oldtest || echo 'codecov upload failed.'"
# Ensure choco's cpack is not in PATH otherwise, it conflicts with CMake's
if (Test-Path -Path $env:ChocolateyInstall\bin\cpack.exe) {
Remove-Item -Path $env:ChocolateyInstall\bin\cpack.exe -Force
}
# Build artifacts

View File

@ -1,5 +1,5 @@
_stat() {
if test "${TRAVIS_OS_NAME}" = osx ; then
if test "${CI_OS_NAME}" = osx ; then
stat -f %Sm "${@}"
else
stat -c %y "${@}"
@ -7,7 +7,7 @@ _stat() {
}
top_make() {
echo '================================================================================'
printf '%78s\n' | tr ' ' '='
# Travis has 1.5 virtual cores according to:
# http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM
ninja "$@"
@ -18,51 +18,43 @@ build_make() {
}
build_deps() {
if test "${BUILD_32BIT}" = ON ; then
DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}"
fi
if test "${FUNCTIONALTEST}" = "functionaltest-lua" \
|| test "${CLANG_SANITIZER}" = "ASAN_UBSAN" ; then
DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} -DUSE_BUNDLED_LUA=ON"
fi
mkdir -p "${DEPS_BUILD_DIR}"
mkdir -p "${DEPS_DOWNLOAD_DIR}"
# Use cached dependencies if $CACHE_MARKER exists.
if test "${CACHE_ENABLE}" = "false" ; then
export CCACHE_RECACHE=1
elif test -f "${CACHE_MARKER}" ; then
echo "Using third-party dependencies from Travis cache (last update: $(_stat "${CACHE_MARKER}"))."
cp -r "${HOME}/.cache/nvim-deps"/. "${DEPS_BUILD_DIR}"
cp -r "${HOME}/.cache/nvim-deps-downloads" "${DEPS_DOWNLOAD_DIR}"
echo "Using third-party dependencies from cache (last update: $(_stat "${CACHE_MARKER}"))."
cp -a "${CACHE_NVIM_DEPS_DIR}"/. "${DEPS_BUILD_DIR}"
fi
# Even if we're using cached dependencies, run CMake and make to
# update CMake configuration and update to newer deps versions.
cd "${DEPS_BUILD_DIR}"
echo "Configuring with '${DEPS_CMAKE_FLAGS}'."
CC= cmake -G Ninja ${DEPS_CMAKE_FLAGS} "${TRAVIS_BUILD_DIR}/third-party/"
CC= cmake -G Ninja ${DEPS_CMAKE_FLAGS} "${CI_BUILD_DIR}/third-party/"
if ! top_make; then
exit 1
fi
cd "${TRAVIS_BUILD_DIR}"
cd "${CI_BUILD_DIR}"
}
prepare_build() {
if test -n "${CLANG_SANITIZER}" ; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DCLANG_${CLANG_SANITIZER}=ON"
fi
if test "${BUILD_32BIT}" = ON ; then
CMAKE_FLAGS="${CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}"
fi
mkdir -p "${BUILD_DIR}"
cd "${BUILD_DIR}"
echo "Configuring with '${CMAKE_FLAGS} $@'."
cmake -G Ninja ${CMAKE_FLAGS} "$@" "${TRAVIS_BUILD_DIR}"
cmake -G Ninja ${CMAKE_FLAGS} "$@" "${CI_BUILD_DIR}"
}
build_nvim() {
@ -86,21 +78,11 @@ build_nvim() {
fi
# Invoke nvim to trigger *San early.
if ! (bin/nvim --version && bin/nvim -u NONE -e -c ':qall') ; then
asan_check "${LOG_DIR}"
if ! (bin/nvim --version && bin/nvim -u NONE -e -cq | cat -vet) ; then
check_sanitizer "${LOG_DIR}"
exit 1
fi
asan_check "${LOG_DIR}"
check_sanitizer "${LOG_DIR}"
cd "${TRAVIS_BUILD_DIR}"
}
macos_rvm_dance() {
# neovim-ruby gem requires a ruby newer than the macOS default.
source ~/.rvm/scripts/rvm
rvm get stable --auto-dotfiles
rvm reload
rvm use 2.2.5
rvm use
cd "${CI_BUILD_DIR}"
}

56
ci/common/submit_coverage.sh Executable file
View File

@ -0,0 +1,56 @@
#!/bin/sh
# Collect and submit coverage reports.
#
# Args:
# $1: Flag(s) for codecov, separated by comma.
set -ex
# Change to grandparent dir (POSIXly).
CDPATH='' cd -P -- "$(dirname -- "$0")/../.." || exit
echo "=== running submit_coverage in $PWD: $* ==="
"$GCOV" --version
# Download/install codecov-bash and gcovr once.
codecov_sh="${TEMP:-/tmp}/codecov.bash"
if ! [ -f "$codecov_sh" ]; then
curl --retry 5 --silent --fail -o "$codecov_sh" https://codecov.io/bash
chmod +x "$codecov_sh"
python3 -m pip install --quiet --user gcovr
fi
(
cd build
python3 -m gcovr --branches --exclude-unreachable-branches --print-summary -j 2 --exclude '.*/auto/.*' --root .. --delete -o ../coverage.xml --xml
)
# Upload to codecov.
# -X gcov: disable gcov, done manually above.
# -X fix: disable fixing of reports (not necessary, rather slow)
# -Z: exit non-zero on failure
# -F: flag(s)
# NOTE: ignoring flags for now, since this causes timeouts on codecov.io then,
# which they know about for about a year already...
# Flags must match pattern ^[\w\,]+$ ("," as separator).
codecov_flags="$(uname -s),${1}"
codecov_flags=$(echo "$codecov_flags" | sed 's/[^,_a-zA-Z0-9]/_/g')
if ! "$codecov_sh" -f coverage.xml -X gcov -X fix -Z -F "${codecov_flags}"; then
echo "codecov upload failed."
fi
# Cleanup always, especially collected data.
find . \( -name '*.gcov' -o -name '*.gcda' \) -ls -delete | wc -l
rm -f coverage.xml
# Upload Lua coverage (generated manually on AppVeyor/Windows).
if [ "$USE_LUACOV" = 1 ] && [ "$1" != "oldtest" ]; then
if [ -x "${DEPS_BUILD_DIR}/usr/bin/luacov" ]; then
"${DEPS_BUILD_DIR}/usr/bin/luacov"
fi
if ! "$codecov_sh" -f luacov.report.out -X gcov -X fix -Z -F "lua,${codecov_flags}"; then
echo "codecov upload failed."
fi
rm luacov.stats.out
fi

View File

@ -13,16 +13,33 @@ FAIL_SUMMARY_FILE="$BUILD_DIR/.test_errors"
ANSI_CLEAR="\033[0K"
travis_fold() {
local action="$1"
local name="$2"
name="$(echo -n "$name" | tr '\n\0' '--' | sed 's/[^A-Za-z0-9]\{1,\}/-/g')"
name="$(echo -n "$name" | sed 's/-$//')"
echo -en "travis_fold:${action}:${name}\r${ANSI_CLEAR}"
}
if test "$TRAVIS" != "true" ; then
travis_fold() {
if test "$TRAVIS" = "true"; then
ci_fold() {
local action="$1"
local name="$2"
name="$(echo -n "$name" | tr '\n\0' '--' | sed 's/[^A-Za-z0-9]\{1,\}/-/g')"
name="$(echo -n "$name" | sed 's/-$//')"
echo -en "travis_fold:${action}:${name}\r${ANSI_CLEAR}"
}
elif test "$GITHUB_ACTIONS" = "true"; then
ci_fold() {
local action="$1"
local name="$2"
name="$(echo -n "$name" | tr '\n\0' '--' | sed 's/[^A-Za-z0-9]\{1,\}/-/g')"
name="$(echo -n "$name" | sed 's/-$//')"
case "$action" in
start)
echo "::group::${name}"
;;
end)
echo "::endgroup::"
;;
*)
:;;
esac
}
else
ci_fold() {
return 0
}
fi
@ -33,23 +50,17 @@ enter_suite() {
rm -f "${END_MARKER}"
local suite_name="$1"
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE}/$suite_name"
travis_fold start "${NVIM_TEST_CURRENT_SUITE}"
ci_fold start "${NVIM_TEST_CURRENT_SUITE}"
set -x
}
exit_suite() {
set +x
if test -f "$NVIM_LOG_FILE" ; then
printf "===============================================================================\n"
printf "NVIM_LOG_FILE: $NVIM_LOG_FILE\n"
cat "$NVIM_LOG_FILE" 2>/dev/null || printf '(empty)'
printf "\n"
rm -rf "$NVIM_LOG_FILE"
fi
travis_fold end "${NVIM_TEST_CURRENT_SUITE}"
if test $FAILED -ne 0 ; then
echo "Suite ${NVIM_TEST_CURRENT_SUITE} failed, summary:"
echo "${FAIL_SUMMARY}"
else
ci_fold end "${NVIM_TEST_CURRENT_SUITE}"
fi
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE%/*}"
if test "$1" != "--continue" ; then

View File

@ -3,10 +3,7 @@
submit_coverage() {
if [ -n "${GCOV}" ]; then
if curl --fail --output codecov.bash --silent https://codecov.io/bash; then
bash codecov.bash -c -F "$1" || echo "codecov upload failed."
rm -f codecov.bash
fi
"${CI_DIR}/common/submit_coverage.sh" "$@" || echo 'codecov upload failed.'
fi
}
@ -18,7 +15,7 @@ print_core() {
return 0
fi
echo "======= Core file $core ======="
if test "${TRAVIS_OS_NAME}" = osx ; then
if test "${CI_OS_NAME}" = osx ; then
lldb -Q -o "bt all" -f "${app}" -c "${core}"
else
gdb -n -batch -ex 'thread apply all bt full' "${app}" -c "${core}"
@ -32,10 +29,13 @@ check_core_dumps() {
shift
fi
local app="${1:-${BUILD_DIR}/bin/nvim}"
if test "${TRAVIS_OS_NAME}" = osx ; then
local cores="$(find /cores/ -type f -print)"
local cores
if test "${CI_OS_NAME}" = osx ; then
cores="$(find /cores/ -type f -print)"
local _sudo='sudo'
else
local cores="$(find ./ -type f -name 'core.*' -print)"
cores="$(find ./ -type f \( -name 'core.*' -o -name core -o -name nvim.core \) -print)"
local _sudo=
fi
if test -z "${cores}" ; then
@ -45,7 +45,7 @@ check_core_dumps() {
for core in $cores; do
if test "$del" = "1" ; then
print_core "$app" "$core" >&2
rm "$core"
"$_sudo" rm "$core"
else
print_core "$app" "$core"
fi
@ -69,6 +69,7 @@ check_logs() {
for log in $(find "${1}" -type f -name "${2}" -size +0); do
cat "${log}"
err=1
rm "${log}"
done
if test -n "${err}" ; then
fail 'logs' E 'Runtime errors detected.'
@ -79,9 +80,9 @@ valgrind_check() {
check_logs "${1}" "valgrind-*"
}
asan_check() {
if test "${CLANG_SANITIZER}" = "ASAN_UBSAN" ; then
check_logs "${1}" "*san.*" | asan_symbolize
check_sanitizer() {
if test -n "${CLANG_SANITIZER}"; then
check_logs "${1}" "*san.*" | ${SYMBOLIZER:-cat}
fi
}
@ -92,7 +93,7 @@ run_unittests() {(
fail 'unittests' F 'Unit tests failed'
fi
submit_coverage unittest
check_core_dumps "$(which luajit)"
check_core_dumps "$(command -v luajit)"
exit_suite
)}
@ -103,7 +104,7 @@ run_functionaltests() {(
fail 'functionaltests' F 'Functional tests failed'
fi
submit_coverage functionaltest
asan_check "${LOG_DIR}"
check_sanitizer "${LOG_DIR}"
valgrind_check "${LOG_DIR}"
check_core_dumps
exit_suite
@ -112,12 +113,12 @@ run_functionaltests() {(
run_oldtests() {(
enter_suite oldtests
ulimit -c unlimited || true
if ! make -C "${TRAVIS_BUILD_DIR}/src/nvim/testdir"; then
if ! make oldtest; then
reset
fail 'oldtests' F 'Legacy tests failed'
fi
submit_coverage oldtest
asan_check "${LOG_DIR}"
check_sanitizer "${LOG_DIR}"
valgrind_check "${LOG_DIR}"
check_core_dumps
exit_suite

View File

@ -4,33 +4,30 @@ set -e
set -o pipefail
if [[ "${CI_TARGET}" == lint ]]; then
python3 -m pip -q install --user --upgrade flake8
exit
fi
if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
brew install ninja
brew install gettext
brew reinstall -s libtool
brew install ccache
export PATH="/usr/local/opt/ccache/libexec:$PATH"
fi
# Use default CC to avoid compilation problems when installing Python modules.
echo "Install neovim module for Python 3."
# Allow failure. pyenv pip3 on travis is broken:
# https://github.com/travis-ci/travis-ci/issues/8363
CC=cc pip3 -q install --user --upgrade neovim || true
if ! [ "${TRAVIS_OS_NAME}" = osx ] ; then
# Update PATH for pip.
export PATH="$(python2.7 -c 'import site; print(site.getuserbase())')/bin:$PATH"
# Use default CC to avoid compilation problems when installing Python modules.
CC=cc python3 -m pip -q install --user --upgrade pynvim
if python2 -m pip -c True 2>&1; then
echo "Install neovim module for Python 2."
CC=cc pip2.7 -q install --user --upgrade neovim
echo "Install neovim RubyGem."
gem install --no-document --version ">= 0.2.0" neovim
CC=cc python2 -m pip -q install --user --upgrade pynvim
fi
echo "Install neovim RubyGem."
gem install --no-document --bindir "$HOME/.local/bin" --user-install --pre neovim
echo "Install neovim npm package"
source ~/.nvm/nvm.sh
nvm use 10
npm install -g neovim
npm link neovim
sudo cpanm -n Neovim::Ext || cat "$HOME/.cpanm/build.log"
perl -W -e 'use Neovim::Ext; print $Neovim::Ext::VERSION'

View File

@ -9,32 +9,28 @@ source "${CI_DIR}/common/build.sh"
source "${CI_DIR}/common/suite.sh"
enter_suite 'clint'
run_test 'make clint-full' clint
exit_suite --continue
enter_suite 'testlint'
run_test 'make testlint' testlint
exit_suite --continue
enter_suite 'lualint'
run_test 'make lualint' lualint
exit_suite --continue
enter_suite 'pylint'
run_test 'make pylint' pylint
exit_suite --continue
enter_suite 'shlint'
run_test 'make shlint' shlint
exit_suite --continue
enter_suite single-includes
CLICOLOR_FORCE=1 run_test_wd \
--allow-hang \
10s \
'make check-single-includes' \
'csi_clean' \
single-includes
exit_suite --continue
end_tests

View File

@ -17,6 +17,10 @@ build_nvim
exit_suite --continue
source ~/.nvm/nvm.sh
nvm use 10
enter_suite tests
if test "$CLANG_SANITIZER" != "TSAN" ; then

View File

@ -11,3 +11,9 @@ if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
else
ci/run_${CI_TARGET}.sh
fi
if [[ -s "${GCOV_ERROR_FILE}" ]]; then
echo '=== Unexpected gcov errors: ==='
cat "${GCOV_ERROR_FILE}"
exit 1
fi

194
ci/snap/.snapcraft_payload Normal file
View File

@ -0,0 +1,194 @@
{
"ref": "refs/heads/master",
"before": "66b136c43c12df3dcf8f19ff48f206ad2e4f43fc",
"after": "1bf69c32217cc455603ce8aa2b5415d9717f0fa2",
"repository": {
"id": 292861950,
"node_id": "MDEwOlJlcG9zaXRvcnkyOTI4NjE5NTA=",
"name": "neovim-snap",
"full_name": "hurricanehrndz/neovim-snap",
"private": false,
"owner": {
"name": "hurricanehrndz",
"email": "hurricanehrndz@users.noreply.github.com",
"login": "hurricanehrndz",
"id": 5804237,
"node_id": "MDQ6VXNlcjU4MDQyMzc=",
"avatar_url": "https://avatars0.githubusercontent.com/u/5804237?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/hurricanehrndz",
"html_url": "https://github.com/hurricanehrndz",
"followers_url": "https://api.github.com/users/hurricanehrndz/followers",
"following_url": "https://api.github.com/users/hurricanehrndz/following{/other_user}",
"gists_url": "https://api.github.com/users/hurricanehrndz/gists{/gist_id}",
"starred_url": "https://api.github.com/users/hurricanehrndz/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/hurricanehrndz/subscriptions",
"organizations_url": "https://api.github.com/users/hurricanehrndz/orgs",
"repos_url": "https://api.github.com/users/hurricanehrndz/repos",
"events_url": "https://api.github.com/users/hurricanehrndz/events{/privacy}",
"received_events_url": "https://api.github.com/users/hurricanehrndz/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/hurricanehrndz/neovim-snap",
"description": "snap build for neovim",
"fork": false,
"url": "https://github.com/hurricanehrndz/neovim-snap",
"forks_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/forks",
"keys_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/teams",
"hooks_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/hooks",
"issue_events_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/issues/events{/number}",
"events_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/events",
"assignees_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/assignees{/user}",
"branches_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/branches{/branch}",
"tags_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/tags",
"blobs_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/statuses/{sha}",
"languages_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/languages",
"stargazers_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/stargazers",
"contributors_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/contributors",
"subscribers_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/subscribers",
"subscription_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/subscription",
"commits_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/contents/{+path}",
"compare_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/merges",
"archive_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/downloads",
"issues_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/issues{/number}",
"pulls_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/pulls{/number}",
"milestones_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/milestones{/number}",
"notifications_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/labels{/name}",
"releases_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/releases{/id}",
"deployments_url": "https://api.github.com/repos/hurricanehrndz/neovim-snap/deployments",
"created_at": 1599227980,
"updated_at": "2020-09-04T14:02:38Z",
"pushed_at": 1599228352,
"git_url": "git://github.com/hurricanehrndz/neovim-snap.git",
"ssh_url": "git@github.com:hurricanehrndz/neovim-snap.git",
"clone_url": "https://github.com/hurricanehrndz/neovim-snap.git",
"svn_url": "https://github.com/hurricanehrndz/neovim-snap",
"homepage": null,
"size": 0,
"stargazers_count": 0,
"watchers_count": 0,
"language": null,
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"forks": 0,
"open_issues": 0,
"watchers": 0,
"default_branch": "master",
"stargazers": 0,
"master_branch": "master"
},
"pusher": {
"name": "hurricanehrndz",
"email": "hurricanehrndz@users.noreply.github.com"
},
"sender": {
"login": "hurricanehrndz",
"id": 5804237,
"node_id": "MDQ6VXNlcjU4MDQyMzc=",
"avatar_url": "https://avatars0.githubusercontent.com/u/5804237?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/hurricanehrndz",
"html_url": "https://github.com/hurricanehrndz",
"followers_url": "https://api.github.com/users/hurricanehrndz/followers",
"following_url": "https://api.github.com/users/hurricanehrndz/following{/other_user}",
"gists_url": "https://api.github.com/users/hurricanehrndz/gists{/gist_id}",
"starred_url": "https://api.github.com/users/hurricanehrndz/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/hurricanehrndz/subscriptions",
"organizations_url": "https://api.github.com/users/hurricanehrndz/orgs",
"repos_url": "https://api.github.com/users/hurricanehrndz/repos",
"events_url": "https://api.github.com/users/hurricanehrndz/events{/privacy}",
"received_events_url": "https://api.github.com/users/hurricanehrndz/received_events",
"type": "User",
"site_admin": false
},
"created": false,
"deleted": false,
"forced": false,
"base_ref": null,
"compare": "https://github.com/hurricanehrndz/neovim-snap/compare/66b136c43c12...1bf69c32217c",
"commits": [
{
"id": "1bf69c32217cc455603ce8aa2b5415d9717f0fa2",
"tree_id": "62ea83a2349be8c930c45fdc199f71b08bf5927e",
"distinct": true,
"message": "Build of latest tag",
"timestamp": "2020-09-04T14:05:40Z",
"url": "https://github.com/hurricanehrndz/neovim-snap/commit/1bf69c32217cc455603ce8aa2b5415d9717f0fa2",
"author": {
"name": "Carlos Hernandez",
"email": "carlos@techbyte.ca",
"username": "hurricanehrndz"
},
"committer": {
"name": "Carlos Hernandez",
"email": "carlos@techbyte.ca",
"username": "hurricanehrndz"
},
"added": [
],
"removed": [
],
"modified": [
"snap/snapcraft.yaml"
]
}
],
"head_commit": {
"id": "1bf69c32217cc455603ce8aa2b5415d9717f0fa2",
"tree_id": "62ea83a2349be8c930c45fdc199f71b08bf5927e",
"distinct": true,
"message": "Build of latest tag",
"timestamp": "2020-09-04T14:05:40Z",
"url": "https://github.com/hurricanehrndz/neovim-snap/commit/1bf69c32217cc455603ce8aa2b5415d9717f0fa2",
"author": {
"name": "Carlos Hernandez",
"email": "carlos@techbyte.ca",
"username": "hurricanehrndz"
},
"committer": {
"name": "Carlos Hernandez",
"email": "carlos@techbyte.ca",
"username": "hurricanehrndz"
},
"added": [
],
"removed": [
],
"modified": [
"snap/snapcraft.yaml"
]
}
}

14
ci/snap/after_success.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -e
set -o pipefail
RESULT_SNAP=$(find ./ -name "*.snap")
sudo snap install "$RESULT_SNAP" --dangerous --classic
/snap/bin/nvim --version
SHA256=$(sha256sum "$RESULT_SNAP")
echo "SHA256: ${SHA256} ."

39
ci/snap/deploy.sh Executable file
View File

@ -0,0 +1,39 @@
#!/usr/bin/env bash
set -e
set -o pipefail
SNAP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WEBHOOK_PAYLOAD="$(cat "${SNAP_DIR}/.snapcraft_payload")"
PAYLOAD_SIG="${SECRET_SNAP_SIG}"
snap_realease_needed() {
last_committed_tag="$(git tag -l --sort=refname|head -1)"
last_snap_release="$(snap info nvim | awk '$1 == "latest/edge:" { print $2 }' | perl -lpe 's/v\d.\d.\d-//g')"
git fetch -f --tags
git checkout "${last_committed_tag}" 2> /dev/null
last_git_release="$(git describe --first-parent 2> /dev/null | perl -lpe 's/v\d.\d.\d-//g')"
if [[ -z "$(echo $last_snap_release | perl -ne "print if /${last_git_release}.*/")" ]]; then
return 0
fi
return 1
}
trigger_snapcraft_webhook() {
[[ -n "${PAYLOAD_SIG}" ]] || exit
echo "Triggering new snap release via webhook..."
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Hub-Signature: sha1=${PAYLOAD_SIG}" \
--data "${WEBHOOK_PAYLOAD}" \
https://snapcraft.io/nvim/webhook/notify
}
if $(snap_realease_needed); then
echo "New snap release required"
trigger_snapcraft_webhook
fi

11
ci/snap/install.sh Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -e
set -o pipefail
sudo apt update
sudo usermod -aG lxd $USER
sudo /snap/bin/lxd.migrate -yes
sudo /snap/bin/lxd waitready
sudo /snap/bin/lxd init --auto

8
ci/snap/script.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -e
set -o pipefail
mkdir -p "$CI_BUILD_DIR/snaps-cache"
sg lxd -c snapcraft

Binary file not shown.

View File

@ -1,50 +0,0 @@
# - Try to find jemalloc
# Once done this will define
# JEMALLOC_FOUND - System has jemalloc
# JEMALLOC_INCLUDE_DIRS - The jemalloc include directories
# JEMALLOC_LIBRARIES - The libraries needed to use jemalloc
if(NOT USE_BUNDLED_JEMALLOC)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_JEMALLOC QUIET jemalloc)
endif()
else()
set(PC_JEMALLOC_INCLUDEDIR)
set(PC_JEMALLOC_INCLUDE_DIRS)
set(PC_JEMALLOC_LIBDIR)
set(PC_JEMALLOC_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
endif()
set(JEMALLOC_DEFINITIONS ${PC_JEMALLOC_CFLAGS_OTHER})
find_path(JEMALLOC_INCLUDE_DIR jemalloc/jemalloc.h
PATHS ${PC_JEMALLOC_INCLUDEDIR} ${PC_JEMALLOC_INCLUDE_DIRS}
${LIMIT_SEARCH})
# If we're asked to use static linkage, add libjemalloc.a as a preferred library name.
if(JEMALLOC_USE_STATIC)
list(APPEND JEMALLOC_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc${CMAKE_STATIC_LIBRARY_SUFFIX}")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(INSERT JEMALLOC_NAMES 0
"${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
list(APPEND JEMALLOC_NAMES jemalloc)
find_library(JEMALLOC_LIBRARY NAMES ${JEMALLOC_NAMES}
HINTS ${PC_JEMALLOC_LIBDIR} ${PC_JEMALLOC_LIBRARY_DIRS}
${LIMIT_SEARCH})
set(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY})
set(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(JeMalloc DEFAULT_MSG
JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR)
mark_as_advanced(JEMALLOC_INCLUDE_DIR JEMALLOC_LIBRARY)

10
cmake/FindLIBVTERM.cmake Normal file
View File

@ -0,0 +1,10 @@
# - Try to find libvterm
# Once done this will define
# LIBVTERM_FOUND - System has libvterm
# LIBVTERM_INCLUDE_DIRS - The libvterm include directories
# LIBVTERM_LIBRARIES - The libraries needed to use libvterm
include(LibFindMacros)
libfind_pkg_detect(LIBVTERM vterm FIND_PATH vterm.h FIND_LIBRARY vterm)
libfind_process(LIBVTERM REQUIRED)

View File

@ -31,15 +31,16 @@ find_library(LibIntl_LIBRARY
)
if (LibIntl_INCLUDE_DIR)
set(CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}")
list(APPEND CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}")
endif()
# On some systems (linux+glibc) libintl is passively available.
# So only specify the library if one was found.
if (LibIntl_LIBRARY)
set(CMAKE_REQUIRED_LIBRARIES "${LibIntl_LIBRARY}")
list(APPEND CMAKE_REQUIRED_LIBRARIES "${LibIntl_LIBRARY}")
endif()
if (MSVC)
list(APPEND CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
endif()
check_c_source_compiles("
#include <libintl.h>
@ -50,6 +51,15 @@ int main(int argc, char** argv) {
bind_textdomain_codeset(\"foo\", \"bar\");
textdomain(\"foo\");
}" HAVE_WORKING_LIBINTL)
if (MSVC)
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
endif()
if (LibIntl_INCLUDE_DIR)
list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}")
endif()
if (LibIntl_LIBRARY)
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${LibIntl_LIBRARY}")
endif()
if (HAVE_WORKING_LIBINTL)
# On some systems (linux+glibc) libintl is passively available.
@ -58,6 +68,7 @@ if (HAVE_WORKING_LIBINTL)
if(LibIntl_FIND_REQUIRED)
unset(LibIntl_FIND_REQUIRED)
endif()
set(LibIntl_FIND_QUIETLY ON)
check_variable_exists(_nl_msg_cat_cntr HAVE_NL_MSG_CAT_CNTR)
endif()

32
cmake/FindLibLUV.cmake Normal file
View File

@ -0,0 +1,32 @@
# - Try to find luv
# Once done this will define
# LIBLUV_FOUND - System has libluv
# LIBLUV_INCLUDE_DIRS - The libluv include directories
# LIBLUV_LIBRARIES - The libraries needed to use libluv
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBLUV QUIET luv)
endif()
set(LIBLUV_DEFINITIONS ${PC_LIBLUV_CFLAGS_OTHER})
find_path(LIBLUV_INCLUDE_DIR luv/luv.h
PATHS ${PC_LIBLUV_INCLUDEDIR} ${PC_LIBLUV_INCLUDE_DIRS})
# Explicitly look for luv.so. #10407
list(APPEND LIBLUV_NAMES luv_a luv libluv_a luv${CMAKE_SHARED_LIBRARY_SUFFIX})
find_library(LIBLUV_LIBRARY NAMES ${LIBLUV_NAMES}
HINTS ${PC_LIBLUV_LIBDIR} ${PC_LIBLUV_LIBRARY_DIRS})
set(LIBLUV_LIBRARIES ${LIBLUV_LIBRARY})
set(LIBLUV_INCLUDE_DIRS ${LIBLUV_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LIBLUV_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(LibLUV DEFAULT_MSG
LIBLUV_LIBRARY LIBLUV_INCLUDE_DIR)
mark_as_advanced(LIBLUV_INCLUDE_DIR LIBLUV_LIBRARY)

View File

@ -4,36 +4,20 @@
# LIBTERMKEY_INCLUDE_DIRS - The libtermkey include directories
# LIBTERMKEY_LIBRARIES - The libraries needed to use libtermkey
if(NOT USE_BUNDLED_LIBTERMKEY)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBTERMKEY QUIET termkey)
endif()
else()
set(PC_LIBTERMKEY_INCLUDEDIR)
set(PC_LIBTERMKEY_INCLUDE_DIRS)
set(PC_LIBTERMKEY_LIBDIR)
set(PC_LIBTERMKEY_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBTERMKEY QUIET termkey)
endif()
set(LIBTERMKEY_DEFINITIONS ${PC_LIBTERMKEY_CFLAGS_OTHER})
find_path(LIBTERMKEY_INCLUDE_DIR termkey.h
PATHS ${PC_LIBTERMKEY_INCLUDEDIR} ${PC_LIBTERMKEY_INCLUDE_DIRS}
${LIMIT_SEARCH})
# If we're asked to use static linkage, add libuv.a as a preferred library name.
if(LIBTERMKEY_USE_STATIC)
list(APPEND LIBTERMKEY_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}termkey${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
PATHS ${PC_LIBTERMKEY_INCLUDEDIR} ${PC_LIBTERMKEY_INCLUDE_DIRS})
list(APPEND LIBTERMKEY_NAMES termkey)
find_library(LIBTERMKEY_LIBRARY NAMES ${LIBTERMKEY_NAMES}
HINTS ${PC_LIBTERMKEY_LIBDIR} ${PC_LIBTERMKEY_LIBRARY_DIRS}
${LIMIT_SEARCH})
HINTS ${PC_LIBTERMKEY_LIBDIR} ${PC_LIBTERMKEY_LIBRARY_DIRS})
set(LIBTERMKEY_LIBRARIES ${LIBTERMKEY_LIBRARY})
set(LIBTERMKEY_INCLUDE_DIRS ${LIBTERMKEY_INCLUDE_DIR})

View File

@ -4,38 +4,19 @@
# LIBUV_FOUND - system has libuv
# LIBUV_INCLUDE_DIRS - the libuv include directories
# LIBUV_LIBRARIES - link these to use libuv
#
# Set the LIBUV_USE_STATIC variable to specify if static libraries should
# be preferred to shared ones.
if(NOT USE_BUNDLED_LIBUV)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBUV QUIET libuv)
endif()
else()
set(PC_LIBUV_INCLUDEDIR)
set(PC_LIBUV_INCLUDE_DIRS)
set(PC_LIBUV_LIBDIR)
set(PC_LIBUV_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBUV QUIET libuv)
endif()
find_path(LIBUV_INCLUDE_DIR uv.h
HINTS ${PC_LIBUV_INCLUDEDIR} ${PC_LIBUV_INCLUDE_DIRS}
${LIMIT_SEARCH})
# If we're asked to use static linkage, add libuv.a as a preferred library name.
if(LIBUV_USE_STATIC)
list(APPEND LIBUV_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}uv${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif(LIBUV_USE_STATIC)
HINTS ${PC_LIBUV_INCLUDEDIR} ${PC_LIBUV_INCLUDE_DIRS})
list(APPEND LIBUV_NAMES uv)
find_library(LIBUV_LIBRARY NAMES ${LIBUV_NAMES}
HINTS ${PC_LIBUV_LIBDIR} ${PC_LIBUV_LIBRARY_DIRS}
${LIMIT_SEARCH})
HINTS ${PC_LIBUV_LIBDIR} ${PC_LIBUV_LIBRARY_DIRS})
mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY)
@ -94,6 +75,14 @@ if(WIN32)
list(APPEND LIBUV_LIBRARIES ws2_32)
endif()
find_package(Threads)
if(Threads_FOUND)
# TODO: Fix the cmake file to properly handle static deps for bundled builds.
# Meanwhile just include the threads library if CMake tells us there's one to
# use.
list(APPEND LIBUV_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LIBUV_FOUND to TRUE

View File

@ -1,47 +0,0 @@
# - Try to find libvterm
# Once done this will define
# LIBVTERM_FOUND - System has libvterm
# LIBVTERM_INCLUDE_DIRS - The libvterm include directories
# LIBVTERM_LIBRARIES - The libraries needed to use libvterm
if(NOT USE_BUNDLED_LIBVTERM)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBVTERM QUIET vterm)
endif()
else()
set(PC_LIBVTERM_INCLUDEDIR)
set(PC_LIBVTERM_INCLUDE_DIRS)
set(PC_LIBVTERM_LIBDIR)
set(PC_LIBVTERM_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
endif()
set(LIBVTERM_DEFINITIONS ${PC_LIBVTERM_CFLAGS_OTHER})
find_path(LIBVTERM_INCLUDE_DIR vterm.h
PATHS ${PC_LIBVTERM_INCLUDEDIR} ${PC_LIBVTERM_INCLUDE_DIRS}
${LIMIT_SEARCH})
# If we're asked to use static linkage, add libuv.a as a preferred library name.
if(LIBVTERM_USE_STATIC)
list(APPEND LIBVTERM_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}vterm${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
list(APPEND LIBVTERM_NAMES vterm)
find_library(LIBVTERM_LIBRARY NAMES ${LIBVTERM_NAMES}
HINTS ${PC_LIBVTERM_LIBDIR} ${PC_LIBVTERM_LIBRARY_DIRS}
${LIMIT_SEARCH})
set(LIBVTERM_LIBRARIES ${LIBVTERM_LIBRARY})
set(LIBVTERM_INCLUDE_DIRS ${LIBVTERM_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LIBVTERM_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(LibVterm DEFAULT_MSG
LIBVTERM_LIBRARY LIBVTERM_INCLUDE_DIR)
mark_as_advanced(LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY)

View File

@ -42,7 +42,7 @@ unset(_lua_append_versions)
# this is a function only to have all the variables inside go away automatically
function(_lua_set_version_vars)
set(LUA_VERSIONS5 5.3 5.2 5.1 5.0)
set(LUA_VERSIONS5 5.4 5.3 5.2 5.1 5.0)
if (Lua_FIND_VERSION_EXACT)
if (Lua_FIND_VERSION_COUNT GREATER 1)

View File

@ -4,32 +4,16 @@
# LUAJIT_INCLUDE_DIRS - The luajit include directories
# LUAJIT_LIBRARIES - The libraries needed to use luajit
if(NOT USE_BUNDLED_LUAJIT)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LUAJIT QUIET luajit)
endif()
else()
set(PC_LUAJIT_INCLUDEDIR)
set(PC_LUAJIT_INCLUDE_DIRS)
set(PC_LUAJIT_LIBDIR)
set(PC_LUAJIT_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_LUAJIT QUIET luajit)
endif()
set(LUAJIT_DEFINITIONS ${PC_LUAJIT_CFLAGS_OTHER})
find_path(LUAJIT_INCLUDE_DIR luajit.h
PATHS ${PC_LUAJIT_INCLUDEDIR} ${PC_LUAJIT_INCLUDE_DIRS}
PATH_SUFFIXES luajit-2.0
${LIMIT_SEARCH})
# If we're asked to use static linkage, add libluajit-5.1.a as a preferred
# library name.
if(LUAJIT_USE_STATIC)
list(APPEND LUAJIT_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}luajit-5.1${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
PATH_SUFFIXES luajit-2.0 luajit-2.1)
if(MSVC)
list(APPEND LUAJIT_NAMES lua51)
@ -40,8 +24,7 @@ else()
endif()
find_library(LUAJIT_LIBRARY NAMES ${LUAJIT_NAMES}
PATHS ${PC_LUAJIT_LIBDIR} ${PC_LUAJIT_LIBRARY_DIRS}
${LIMIT_SEARCH})
PATHS ${PC_LUAJIT_LIBDIR} ${PC_LUAJIT_LIBRARY_DIRS})
set(LUAJIT_LIBRARIES ${LUAJIT_LIBRARY})
set(LUAJIT_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIR})

View File

@ -4,26 +4,17 @@
# MSGPACK_INCLUDE_DIRS - The msgpack include directories
# MSGPACK_LIBRARIES - The libraries needed to use msgpack
if(NOT USE_BUNDLED_MSGPACK)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_search_module(PC_MSGPACK QUIET
msgpackc>=${Msgpack_FIND_VERSION}
msgpack>=${Msgpack_FIND_VERSION})
endif()
else()
set(PC_MSGPACK_INCLUDEDIR)
set(PC_MSGPACK_INCLUDE_DIRS)
set(PC_MSGPACK_LIBDIR)
set(PC_MSGPACK_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_search_module(PC_MSGPACK QUIET
msgpackc>=${Msgpack_FIND_VERSION}
msgpack>=${Msgpack_FIND_VERSION})
endif()
set(MSGPACK_DEFINITIONS ${PC_MSGPACK_CFLAGS_OTHER})
find_path(MSGPACK_INCLUDE_DIR msgpack/version_master.h
HINTS ${PC_MSGPACK_INCLUDEDIR} ${PC_MSGPACK_INCLUDE_DIRS}
${LIMIT_SEARCH})
HINTS ${PC_MSGPACK_INCLUDEDIR} ${PC_MSGPACK_INCLUDE_DIRS})
if(MSGPACK_INCLUDE_DIR)
file(READ ${MSGPACK_INCLUDE_DIR}/msgpack/version_master.h msgpack_version_h)
@ -35,13 +26,6 @@ else()
set(MSGPACK_VERSION_STRING)
endif()
# If we're asked to use static linkage, add libmsgpack{,c}.a as a preferred library name.
if(MSGPACK_USE_STATIC)
list(APPEND MSGPACK_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}msgpackc${CMAKE_STATIC_LIBRARY_SUFFIX}"
"${CMAKE_STATIC_LIBRARY_PREFIX}msgpack${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
if(MSVC)
# The import library for the msgpack DLL has a different name
list(APPEND MSGPACK_NAMES msgpackc_import)
@ -53,8 +37,7 @@ find_library(MSGPACK_LIBRARY NAMES ${MSGPACK_NAMES}
# Check each directory for all names to avoid using headers/libraries from
# different places.
NAMES_PER_DIR
HINTS ${PC_MSGPACK_LIBDIR} ${PC_MSGPACK_LIBRARY_DIRS}
${LIMIT_SEARCH})
HINTS ${PC_MSGPACK_LIBDIR} ${PC_MSGPACK_LIBRARY_DIRS})
mark_as_advanced(MSGPACK_INCLUDE_DIR MSGPACK_LIBRARY)

View File

@ -0,0 +1,11 @@
# - Try to find tree-sitter
# Once done, this will define
#
# TreeSitter_FOUND - system has tree-sitter
# TreeSitter_INCLUDE_DIRS - the tree-sitter include directories
# TreeSitter_LIBRARIES - link these to use tree-sitter
include(LibFindMacros)
libfind_pkg_detect(TreeSitter tree-sitter FIND_PATH tree_sitter/api.h FIND_LIBRARY tree-sitter)
libfind_process(TreeSitter)

12
cmake/FindUNIBILIUM.cmake Normal file
View File

@ -0,0 +1,12 @@
# - Try to find unibilium
# Once done this will define
# UNIBILIUM_FOUND - System has unibilium
# UNIBILIUM_INCLUDE_DIRS - The unibilium include directories
# UNIBILIUM_LIBRARIES - The libraries needed to use unibilium
include(LibFindMacros)
libfind_pkg_detect(UNIBILIUM unibilium
FIND_PATH unibilium.h
FIND_LIBRARY unibilium)
libfind_process(UNIBILIUM)

View File

@ -1,47 +0,0 @@
# - Try to find unibilium
# Once done this will define
# UNIBILIUM_FOUND - System has unibilium
# UNIBILIUM_INCLUDE_DIRS - The unibilium include directories
# UNIBILIUM_LIBRARIES - The libraries needed to use unibilium
if(NOT USE_BUNDLED_UNIBILIUM)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PC_UNIBILIUM QUIET unibilium)
endif()
else()
set(PC_UNIBILIUM_INCLUDEDIR)
set(PC_UNIBILIUM_INCLUDE_DIRS)
set(PC_UNIBILIUM_LIBDIR)
set(PC_UNIBILIUM_LIBRARY_DIRS)
set(LIMIT_SEARCH NO_DEFAULT_PATH)
endif()
set(UNIBILIUM_DEFINITIONS ${PC_UNIBILIUM_CFLAGS_OTHER})
find_path(UNIBILIUM_INCLUDE_DIR unibilium.h
PATHS ${PC_UNIBILIUM_INCLUDEDIR} ${PC_UNIBILIUM_INCLUDE_DIRS}
${LIMIT_SEARCH})
# If we're asked to use static linkage, add libunibilium.a as a preferred library name.
if(UNIBILIUM_USE_STATIC)
list(APPEND UNIBILIUM_NAMES
"${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
list(APPEND UNIBILIUM_NAMES unibilium)
find_library(UNIBILIUM_LIBRARY NAMES ${UNIBILIUM_NAMES}
HINTS ${PC_UNIBILIUM_LIBDIR} ${PC_UNIBILIUM_LIBRARY_DIRS}
${LIMIT_SEARCH})
set(UNIBILIUM_LIBRARIES ${UNIBILIUM_LIBRARY})
set(UNIBILIUM_INCLUDE_DIRS ${UNIBILIUM_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set UNIBILIUM_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(unibilium DEFAULT_MSG
UNIBILIUM_LIBRARY UNIBILIUM_INCLUDE_DIR)
mark_as_advanced(UNIBILIUM_INCLUDE_DIR UNIBILIUM_LIBRARY)

View File

@ -1,39 +0,0 @@
if(DEFINED ENV{DESTDIR})
file(TO_CMAKE_PATH
$ENV{DESTDIR}/@CMAKE_INSTALL_FULL_DATADIR@/nvim/runtime/doc
HELPTAGS_WORKING_DIRECTORY)
else()
file(TO_CMAKE_PATH
@CMAKE_INSTALL_FULL_DATADIR@/nvim/runtime/doc
HELPTAGS_WORKING_DIRECTORY)
endif()
message(STATUS "Generating helptags in ${HELPTAGS_WORKING_DIRECTORY}.")
if(EXISTS ${HELPTAGS_WORKING_DIRECTORY}/)
message(STATUS "${HELPTAGS_WORKING_DIRECTORY} already exists")
# If the doc directory already exists, helptags could fail due to duplicate
# tags. Tell the user to remove the directory and try again.
set(TROUBLESHOOTING "\nRemove \"${HELPTAGS_WORKING_DIRECTORY}\" and try again.")
endif()
# Workaround for hanging "yes | nvim -c 'helptags ++t .'"
# and therefore hanging "yes | make install":
# Set INPUT_FILE to an empty file, causing execute_process
# to disregard other standard input (such as "yes |").
set(EMPTY_FILE ${CMAKE_CURRENT_BINARY_DIR}/.GenerateHelptags)
file(WRITE ${EMPTY_FILE} "")
execute_process(
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/bin/nvim
-u NONE
-es
-c "helptags ++t ."
-c quit
WORKING_DIRECTORY ${HELPTAGS_WORKING_DIRECTORY}
INPUT_FILE ${EMPTY_FILE}
OUTPUT_VARIABLE err
ERROR_VARIABLE err
RESULT_VARIABLE res)
if(NOT res EQUAL 0)
message(FATAL_ERROR "Generating helptags failed: ${err} - ${res}${TROUBLESHOOTING}")
endif()

View File

@ -1,21 +1,51 @@
function(get_compile_flags _compile_flags)
# Create template akin to CMAKE_C_COMPILE_OBJECT.
set(compile_flags "<CMAKE_C_COMPILER> <CFLAGS> <BUILD_TYPE_CFLAGS> <DEFINITIONS> <INCLUDES>")
set(compile_flags "<CMAKE_C_COMPILER> <CFLAGS> <BUILD_TYPE_CFLAGS> <COMPILE_OPTIONS><COMPILE_DEFINITIONS> <INCLUDES>")
# Get C compiler.
if(CMAKE_C_COMPILER_ARG1)
string(REPLACE
"<CMAKE_C_COMPILER>"
"<CMAKE_C_COMPILER> ${CMAKE_C_COMPILER_ARG1}"
compile_flags
"${compile_flags}")
endif()
string(REPLACE
"<CMAKE_C_COMPILER>"
"${CMAKE_C_COMPILER}"
compile_flags
"${compile_flags}")
# Get flags set by add_definition().
get_directory_property(definitions
DIRECTORY "src/nvim"
DEFINITIONS)
# Get flags set by add_definitions().
get_property(compile_definitions DIRECTORY PROPERTY COMPILE_DEFINITIONS)
get_target_property(compile_definitions_target nvim COMPILE_DEFINITIONS)
if(compile_definitions_target)
list(APPEND compile_definitions ${compile_definitions_target})
list(REMOVE_DUPLICATES compile_definitions)
endif()
# NOTE: list(JOIN) requires CMake 3.12, string(CONCAT) requires CMake 3.
string(REPLACE ";" " -D" compile_definitions "${compile_definitions}")
if(compile_definitions)
set(compile_definitions " -D${compile_definitions}")
endif()
string(REPLACE
"<DEFINITIONS>"
"${definitions}"
"<COMPILE_DEFINITIONS>"
"${compile_definitions}"
compile_flags
"${compile_flags}")
# Get flags set by add_compile_options().
get_property(compile_options DIRECTORY PROPERTY COMPILE_OPTIONS)
get_target_property(compile_options_target nvim COMPILE_OPTIONS)
if(compile_options_target)
list(APPEND compile_options ${compile_options_target})
list(REMOVE_DUPLICATES compile_options)
endif()
# NOTE: list(JOIN) requires CMake 3.12.
string(REPLACE ";" " " compile_options "${compile_options}")
string(REPLACE
"<COMPILE_OPTIONS>"
"${compile_options}"
compile_flags
"${compile_flags}")
@ -35,9 +65,7 @@ function(get_compile_flags _compile_flags)
"${compile_flags}")
# Get include directories.
get_directory_property(include_directories_list
DIRECTORY "src/nvim"
INCLUDE_DIRECTORIES)
get_property(include_directories_list DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
list(REMOVE_DUPLICATES include_directories_list)
foreach(include_directory ${include_directories_list})
set(include_directories "${include_directories} -I${include_directory}")

View File

@ -1,180 +0,0 @@
# https://github.com/rpavlik/cmake-modules
#
# - Returns a version string from Git
#
# These functions force a re-configure on each git commit so that you can
# trust the values of the variables in your build system.
#
# get_git_head_revision(<refspecvar> <hashvar> [<additional arguments to git describe> ...])
#
# Returns the refspec and sha hash of the current head revision
#
# git_describe(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe on the source tree, and adjusting
# the output so that it tests false if an error occurs.
#
# git_get_exact_tag(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe --exact-match on the source tree,
# and adjusting the output so that it tests false if there was no exact
# matching tag.
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(__get_git_revision_description)
return()
endif()
set(__get_git_revision_description YES)
# We must run the following at "include" time, not at function call time,
# to find the path to this module rather than the path to a calling list file
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
function(get_git_dir _gitdir)
# check FORCED_GIT_DIR first
if(FORCED_GIT_DIR)
set(${_gitdir} ${FORCED_GIT_DIR} PARENT_SCOPE)
return()
endif()
# check GIT_DIR in environment
set(GIT_DIR $ENV{GIT_DIR})
if(NOT GIT_DIR)
set(GIT_PARENT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(GIT_DIR ${GIT_PARENT_DIR}/.git)
endif()
# .git dir not found, search parent directories
while(NOT EXISTS ${GIT_DIR})
set(GIT_PREVIOUS_PARENT ${GIT_PARENT_DIR})
get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
return()
endif()
set(GIT_DIR ${GIT_PARENT_DIR}/.git)
endwhile()
# check if this is a submodule
if(NOT IS_DIRECTORY ${GIT_DIR})
file(READ ${GIT_DIR} submodule)
string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
endif()
set(${_gitdir} ${GIT_DIR} PARENT_SCOPE)
endfunction()
function(get_git_head_revision _refspecvar _hashvar)
get_git_dir(GIT_DIR)
if(NOT GIT_DIR)
return()
endif()
set(GIT_DATA ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data)
if(NOT EXISTS ${GIT_DATA})
file(MAKE_DIRECTORY ${GIT_DATA})
endif()
if(NOT EXISTS ${GIT_DIR}/HEAD)
return()
endif()
set(HEAD_FILE ${GIT_DATA}/HEAD)
configure_file(${GIT_DIR}/HEAD ${HEAD_FILE} COPYONLY)
configure_file(${_gitdescmoddir}/GetGitRevisionDescription.cmake.in
${GIT_DATA}/grabRef.cmake
@ONLY)
include(${GIT_DATA}/grabRef.cmake)
set(${_refspecvar} ${HEAD_REF} PARENT_SCOPE)
set(${_hashvar} ${HEAD_HASH} PARENT_SCOPE)
endfunction()
function(git_describe _var)
get_git_dir(GIT_DIR)
if(NOT GIT_DIR)
return()
endif()
if(NOT GIT_FOUND)
find_package(Git QUIET)
endif()
if(NOT GIT_FOUND)
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
return()
endif()
get_git_head_revision(refspec hash)
if(NOT hash)
set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
return()
endif()
execute_process(COMMAND
${GIT_EXECUTABLE}
describe
${hash}
${ARGN}
WORKING_DIRECTORY
${GIT_DIR}
RESULT_VARIABLE
res
OUTPUT_VARIABLE
out
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT res EQUAL 0)
set(out "${out}-${res}-NOTFOUND")
endif()
set(${_var} ${out} PARENT_SCOPE)
endfunction()
function(git_timestamp _var)
get_git_dir(GIT_DIR)
if(NOT GIT_DIR)
return()
endif()
if(NOT GIT_FOUND)
find_package(Git QUIET)
endif()
if(NOT GIT_FOUND)
return()
endif()
get_git_head_revision(refspec hash)
if(NOT hash)
set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
return()
endif()
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format="%ci" ${hash} ${ARGN}
WORKING_DIRECTORY ${GIT_DIR}
RESULT_VARIABLE res
OUTPUT_VARIABLE out
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(res EQUAL 0)
string(REGEX REPLACE "[-\" :]" "" out ${out})
string(SUBSTRING ${out} 0 12 out)
else()
set(out "${out}-${res}-NOTFOUND")
endif()
set(${_var} ${out} PARENT_SCOPE)
endfunction()
function(git_get_exact_tag _var)
git_describe(out --exact-match ${ARGN})
set(${_var} ${out} PARENT_SCOPE)
endfunction()

View File

@ -1,38 +0,0 @@
#
# Internal file for GetGitRevisionDescription.cmake
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
set(HEAD_HASH)
file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
if(HEAD_CONTENTS MATCHES "ref")
# named branch
string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
elseif(EXISTS "@GIT_DIR@/logs/${HEAD_REF}")
configure_file("@GIT_DIR@/logs/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
set(HEAD_HASH "${HEAD_REF}")
endif()
else()
# detached HEAD
configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
endif()
if(NOT HEAD_HASH)
file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
string(STRIP "${HEAD_HASH}" HEAD_HASH)
endif()

View File

@ -154,3 +154,25 @@ function(install_helper)
${RENAME})
endif()
endfunction()
# Without CONFIGURE_DEPENDS globbing reuses cached file tree on rebuild.
# For example it will ignore new files.
# CONFIGURE_DEPENDS was introduced in 3.12
function(glob_wrapper outvar)
if(${CMAKE_VERSION} VERSION_LESS 3.12)
file(GLOB ${outvar} ${ARGN})
else()
file(GLOB ${outvar} CONFIGURE_DEPENDS ${ARGN})
endif()
set(${outvar} ${${outvar}} PARENT_SCOPE)
endfunction()
function(globrecurse_wrapper outvar root)
if(${CMAKE_VERSION} VERSION_LESS 3.12)
file(GLOB_RECURSE ${outvar} RELATIVE ${root} ${ARGN})
else()
file(GLOB_RECURSE ${outvar} CONFIGURE_DEPENDS RELATIVE ${root} ${ARGN})
endif()
set(${outvar} ${${outvar}} PARENT_SCOPE)
endfunction()

View File

@ -1,46 +1,101 @@
# Version 1.0 (2013-04-12)
# Public Domain, originally written by Lasse Kärkkäinen <tronic@zi.fi>
# Published at http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries
# Version 2.2
# Public Domain, originally written by Lasse Kärkkäinen <tronic>
# Maintained at https://github.com/Tronic/cmake-modules
# Please send your improvements as pull requests on Github.
# If you improve the script, please modify the forementioned wiki page because
# I no longer maintain my scripts (hosted as static files at zi.fi). Feel free
# to remove this entire header if you use real version control instead.
# Changelog:
# 2013-04-12 Added version number (1.0) and this header, no other changes
# 2009-10-08 Originally published
# Works the same as find_package, but forwards the "REQUIRED" and "QUIET" arguments
# used for the current package. For this to work, the first parameter must be the
# prefix of the current package, then the prefix of the new package etc, which are
# passed to find_package.
macro (libfind_package PREFIX)
set (LIBFIND_PACKAGE_ARGS ${ARGN})
if (${PREFIX}_FIND_QUIETLY)
set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} QUIET)
endif (${PREFIX}_FIND_QUIETLY)
# Find another package and make it a dependency of the current package.
# This also automatically forwards the "REQUIRED" argument.
# Usage: libfind_package(<prefix> <another package> [extra args to find_package])
macro (libfind_package PREFIX PKG)
set(${PREFIX}_args ${PKG} ${ARGN})
if (${PREFIX}_FIND_REQUIRED)
set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} REQUIRED)
endif (${PREFIX}_FIND_REQUIRED)
find_package(${LIBFIND_PACKAGE_ARGS})
endmacro (libfind_package)
set(${PREFIX}_args ${${PREFIX}_args} REQUIRED)
endif()
find_package(${${PREFIX}_args})
set(${PREFIX}_DEPENDENCIES ${${PREFIX}_DEPENDENCIES};${PKG})
unset(${PREFIX}_args)
endmacro()
# CMake developers made the UsePkgConfig system deprecated in the same release (2.6)
# where they added pkg_check_modules. Consequently I need to support both in my scripts
# to avoid those deprecated warnings. Here's a helper that does just that.
# Works identically to pkg_check_modules, except that no checks are needed prior to use.
macro (libfind_pkg_check_modules PREFIX PKGNAME)
if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
include(UsePkgConfig)
pkgconfig(${PKGNAME} ${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARY_DIRS ${PREFIX}_LDFLAGS ${PREFIX}_CFLAGS)
else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(${PREFIX} ${PKGNAME})
endif (PKG_CONFIG_FOUND)
endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
endmacro (libfind_pkg_check_modules)
# A simple wrapper to make pkg-config searches a bit easier.
# Works the same as CMake's internal pkg_check_modules but is always quiet.
macro (libfind_pkg_check_modules)
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(${ARGN} QUIET)
endif()
endmacro()
# Avoid useless copy&pasta by doing what most simple libraries do anyway:
# pkg-config, find headers, find library.
# Usage: libfind_pkg_detect(<prefix> <pkg-config args> FIND_PATH <name> [other args] FIND_LIBRARY <name> [other args])
# E.g. libfind_pkg_detect(SDL2 sdl2 FIND_PATH SDL.h PATH_SUFFIXES SDL2 FIND_LIBRARY SDL2)
function (libfind_pkg_detect PREFIX)
# Parse arguments
set(argname pkgargs)
foreach (i ${ARGN})
if ("${i}" STREQUAL "FIND_PATH")
set(argname pathargs)
elseif ("${i}" STREQUAL "FIND_LIBRARY")
set(argname libraryargs)
else()
set(${argname} ${${argname}} ${i})
endif()
endforeach()
if (NOT pkgargs)
message(FATAL_ERROR "libfind_pkg_detect requires at least a pkg_config package name to be passed.")
endif()
# Find library
libfind_pkg_check_modules(${PREFIX}_PKGCONF ${pkgargs})
if (pathargs)
find_path(${PREFIX}_INCLUDE_DIR NAMES ${pathargs} HINTS ${${PREFIX}_PKGCONF_INCLUDE_DIRS})
endif()
if (libraryargs)
find_library(${PREFIX}_LIBRARY NAMES ${libraryargs} HINTS ${${PREFIX}_PKGCONF_LIBRARY_DIRS})
endif()
# Read pkg-config version
if (${PREFIX}_PKGCONF_VERSION)
set(${PREFIX}_VERSION ${${PREFIX}_PKGCONF_VERSION} PARENT_SCOPE)
endif()
endfunction()
# Extracts a version #define from a version.h file, output stored to <PREFIX>_VERSION.
# Usage: libfind_version_header(Foobar foobar/version.h FOOBAR_VERSION_STR)
# Fourth argument "QUIET" may be used for silently testing different define names.
# This function does nothing if the version variable is already defined.
function (libfind_version_header PREFIX VERSION_H DEFINE_NAME)
# Skip processing if we already have a version or if the include dir was not found
if (${PREFIX}_VERSION OR NOT ${PREFIX}_INCLUDE_DIR)
return()
endif()
set(quiet ${${PREFIX}_FIND_QUIETLY})
# Process optional arguments
foreach(arg ${ARGN})
if (arg STREQUAL "QUIET")
set(quiet TRUE)
else()
message(AUTHOR_WARNING "Unknown argument ${arg} to libfind_version_header ignored.")
endif()
endforeach()
# Read the header and parse for version number
set(filename "${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
if (NOT EXISTS ${filename})
if (NOT quiet)
message(AUTHOR_WARNING "Unable to find ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
endif()
return()
endif()
file(READ "${filename}" header)
string(REGEX REPLACE ".*#[ \t]*define[ \t]*${DEFINE_NAME}[ \t]*\"([^\n]*)\".*" "\\1" match "${header}")
# No regex match?
if (match STREQUAL header)
if (NOT quiet)
message(AUTHOR_WARNING "Unable to find \#define ${DEFINE_NAME} \"<version>\" from ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
endif()
return()
endif()
# Export the version string
set(${PREFIX}_VERSION "${match}" PARENT_SCOPE)
endfunction()
# Do the final processing once the paths have been detected.
# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain
@ -48,65 +103,167 @@ endmacro (libfind_pkg_check_modules)
# Ditto for ${PREFIX}_PROCESS_LIBS and library files.
# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES.
# Also handles errors in case library detection was required, etc.
macro (libfind_process PREFIX)
# Skip processing if already processed during this run
if (NOT ${PREFIX}_FOUND)
# Start with the assumption that the library was found
set (${PREFIX}_FOUND TRUE)
function (libfind_process PREFIX)
# Skip processing if already processed during this configuration run
if (${PREFIX}_FOUND)
return()
endif()
# Process all includes and set _FOUND to false if any are missing
foreach (i ${${PREFIX}_PROCESS_INCLUDES})
if (${i})
set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS} ${${i}})
mark_as_advanced(${i})
else (${i})
set (${PREFIX}_FOUND FALSE)
endif (${i})
endforeach (i)
set(found TRUE) # Start with the assumption that the package was found
# Process all libraries and set _FOUND to false if any are missing
foreach (i ${${PREFIX}_PROCESS_LIBS})
if (${i})
set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${i}})
mark_as_advanced(${i})
else (${i})
set (${PREFIX}_FOUND FALSE)
endif (${i})
endforeach (i)
# Did we find any files? Did we miss includes? These are for formatting better error messages.
set(some_files FALSE)
set(missing_headers FALSE)
# Print message and/or exit on fatal error
if (${PREFIX}_FOUND)
if (NOT ${PREFIX}_FIND_QUIETLY)
message (STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}")
endif (NOT ${PREFIX}_FIND_QUIETLY)
else (${PREFIX}_FOUND)
if (${PREFIX}_FIND_REQUIRED)
foreach (i ${${PREFIX}_PROCESS_INCLUDES} ${${PREFIX}_PROCESS_LIBS})
message("${i}=${${i}}")
endforeach (i)
message (FATAL_ERROR "Required library ${PREFIX} NOT FOUND.\nInstall the library (dev version) and try again. If the library is already installed, use ccmake to set the missing variables manually.")
endif (${PREFIX}_FIND_REQUIRED)
endif (${PREFIX}_FOUND)
endif (NOT ${PREFIX}_FOUND)
endmacro (libfind_process)
# Shorthands for some variables that we need often
set(quiet ${${PREFIX}_FIND_QUIETLY})
set(required ${${PREFIX}_FIND_REQUIRED})
set(exactver ${${PREFIX}_FIND_VERSION_EXACT})
set(findver "${${PREFIX}_FIND_VERSION}")
set(version "${${PREFIX}_VERSION}")
macro(libfind_library PREFIX basename)
set(TMP "")
if(MSVC80)
set(TMP -vc80)
endif(MSVC80)
if(MSVC90)
set(TMP -vc90)
endif(MSVC90)
set(${PREFIX}_LIBNAMES ${basename}${TMP})
if(${ARGC} GREATER 2)
set(${PREFIX}_LIBNAMES ${basename}${TMP}-${ARGV2})
string(REGEX REPLACE "\\." "_" TMP ${${PREFIX}_LIBNAMES})
set(${PREFIX}_LIBNAMES ${${PREFIX}_LIBNAMES} ${TMP})
endif(${ARGC} GREATER 2)
find_library(${PREFIX}_LIBRARY
NAMES ${${PREFIX}_LIBNAMES}
PATHS ${${PREFIX}_PKGCONF_LIBRARY_DIRS}
)
endmacro(libfind_library)
# Lists of config option names (all, includes, libs)
unset(configopts)
set(includeopts ${${PREFIX}_PROCESS_INCLUDES})
set(libraryopts ${${PREFIX}_PROCESS_LIBS})
# Process deps to add to
foreach (i ${PREFIX} ${${PREFIX}_DEPENDENCIES})
if (DEFINED ${i}_INCLUDE_OPTS OR DEFINED ${i}_LIBRARY_OPTS)
# The package seems to export option lists that we can use, woohoo!
list(APPEND includeopts ${${i}_INCLUDE_OPTS})
list(APPEND libraryopts ${${i}_LIBRARY_OPTS})
else()
# If plural forms don't exist or they equal singular forms
if ((NOT DEFINED ${i}_INCLUDE_DIRS AND NOT DEFINED ${i}_LIBRARIES) OR
(${i}_INCLUDE_DIR STREQUAL ${i}_INCLUDE_DIRS AND ${i}_LIBRARY STREQUAL ${i}_LIBRARIES))
# Singular forms can be used
if (DEFINED ${i}_INCLUDE_DIR)
list(APPEND includeopts ${i}_INCLUDE_DIR)
endif()
if (DEFINED ${i}_LIBRARY)
list(APPEND libraryopts ${i}_LIBRARY)
endif()
else()
# Oh no, we don't know the option names
message(FATAL_ERROR "We couldn't determine config variable names for ${i} includes and libs. Aieeh!")
endif()
endif()
endforeach()
if (includeopts)
list(REMOVE_DUPLICATES includeopts)
endif()
if (libraryopts)
list(REMOVE_DUPLICATES libraryopts)
endif()
string(REGEX REPLACE ".*[ ;]([^ ;]*(_INCLUDE_DIRS|_LIBRARIES))" "\\1" tmp "${includeopts} ${libraryopts}")
if (NOT tmp STREQUAL "${includeopts} ${libraryopts}")
message(AUTHOR_WARNING "Plural form ${tmp} found in config options of ${PREFIX}. This works as before but is now deprecated. Please only use singular forms INCLUDE_DIR and LIBRARY, and update your find scripts for LibFindMacros > 2.0 automatic dependency system (most often you can simply remove the PROCESS variables entirely).")
endif()
# Include/library names separated by spaces (notice: not CMake lists)
unset(includes)
unset(libs)
# Process all includes and set found false if any are missing
foreach (i ${includeopts})
list(APPEND configopts ${i})
if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND")
list(APPEND includes "${${i}}")
else()
set(found FALSE)
set(missing_headers TRUE)
endif()
endforeach()
# Process all libraries and set found false if any are missing
foreach (i ${libraryopts})
list(APPEND configopts ${i})
if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND")
list(APPEND libs "${${i}}")
else()
set (found FALSE)
endif()
endforeach()
# Version checks
if (found AND findver)
if (NOT version)
message(WARNING "The find module for ${PREFIX} does not provide version information, so we'll just assume that it is OK. Please fix the module or remove package version requirements to get rid of this warning.")
elseif (version VERSION_LESS findver OR (exactver AND NOT version VERSION_EQUAL findver))
set(found FALSE)
set(version_unsuitable TRUE)
endif()
endif()
# If all-OK, hide all config options, export variables, print status and exit
if (found)
foreach (i ${configopts})
mark_as_advanced(${i})
endforeach()
if (NOT quiet)
message(STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}")
if (LIBFIND_DEBUG)
message(STATUS " ${PREFIX}_DEPENDENCIES=${${PREFIX}_DEPENDENCIES}")
message(STATUS " ${PREFIX}_INCLUDE_OPTS=${includeopts}")
message(STATUS " ${PREFIX}_INCLUDE_DIRS=${includes}")
message(STATUS " ${PREFIX}_LIBRARY_OPTS=${libraryopts}")
message(STATUS " ${PREFIX}_LIBRARIES=${libs}")
endif()
endif()
set (${PREFIX}_INCLUDE_OPTS ${includeopts} PARENT_SCOPE)
set (${PREFIX}_LIBRARY_OPTS ${libraryopts} PARENT_SCOPE)
set (${PREFIX}_INCLUDE_DIRS ${includes} PARENT_SCOPE)
set (${PREFIX}_LIBRARIES ${libs} PARENT_SCOPE)
set (${PREFIX}_FOUND TRUE PARENT_SCOPE)
return()
endif()
# Format messages for debug info and the type of error
set(vars "Relevant CMake configuration variables:\n")
foreach (i ${configopts})
mark_as_advanced(CLEAR ${i})
set(val ${${i}})
if ("${val}" STREQUAL "${i}-NOTFOUND")
set (val "<not found>")
elseif (val AND NOT EXISTS ${val})
set (val "${val} (does not exist)")
else()
set(some_files TRUE)
endif()
set(vars "${vars} ${i}=${val}\n")
endforeach()
set(vars "${vars}You may use CMake GUI, cmake -D or ccmake to modify the values. Delete CMakeCache.txt to discard all values and force full re-detection if necessary.\n")
if (version_unsuitable)
set(msg "${PREFIX} ${${PREFIX}_VERSION} was found but")
if (exactver)
set(msg "${msg} only version ${findver} is acceptable.")
else()
set(msg "${msg} version ${findver} is the minimum requirement.")
endif()
else()
if (missing_headers)
set(msg "We could not find development headers for ${PREFIX}. Do you have the necessary dev package installed?")
elseif (some_files)
set(msg "We only found some files of ${PREFIX}, not all of them. Perhaps your installation is incomplete or maybe we just didn't look in the right place?")
if(findver)
set(msg "${msg} This could also be caused by incompatible version (if it helps, at least ${PREFIX} ${findver} should work).")
endif()
else()
set(msg "We were unable to find package ${PREFIX}.")
endif()
endif()
# Fatal error out if REQUIRED
if (required)
set(msg "REQUIRED PACKAGE NOT FOUND\n${msg} This package is REQUIRED and you need to install it or adjust CMake configuration in order to continue building ${CMAKE_PROJECT_NAME}.")
message(FATAL_ERROR "${msg}\n${vars}")
endif()
# Otherwise just print a nasty warning
if (NOT quiet)
message(WARNING "WARNING: MISSING PACKAGE\n${msg} This package is NOT REQUIRED and you may ignore this warning but by doing so you may miss some functionality of ${CMAKE_PROJECT_NAME}. \n${vars}")
endif()
endfunction()

View File

@ -17,7 +17,7 @@ endfunction()
function(check_lua_deps LUA_PRG_PATH MODULES RESULT_VAR)
# Check if the lua interpreter at the given path
# satisfies all Neovim dependencies
message(STATUS "Checking Lua interpreter ${LUA_PRG_PATH}")
message(STATUS "Checking Lua interpreter: ${LUA_PRG_PATH}")
if(NOT EXISTS ${LUA_PRG_PATH})
message(STATUS
"[${LUA_PRG_PATH}] file not found")

View File

@ -1,22 +0,0 @@
set(LUACHECK_ARGS -q "${LUAFILES_DIR}")
if(DEFINED IGNORE_PATTERN)
list(APPEND LUACHECK_ARGS --exclude-files "${LUAFILES_DIR}/${IGNORE_PATTERN}")
endif()
if(DEFINED CHECK_PATTERN)
list(APPEND LUACHECK_ARGS --include-files "${LUAFILES_DIR}/${CHECK_PATTERN}")
endif()
if(DEFINED READ_GLOBALS)
list(APPEND LUACHECK_ARGS --read-globals "${READ_GLOBALS}")
endif()
execute_process(
COMMAND "${LUACHECK_PRG}" ${LUACHECK_ARGS}
WORKING_DIRECTORY "${LUAFILES_DIR}"
ERROR_VARIABLE err
RESULT_VARIABLE res
)
if(NOT res EQUAL 0)
message(STATUS "Output to stderr:\n${err}")
message(FATAL_ERROR "Linting tests failed with error: ${res}.")
endif()

View File

@ -1,13 +1,19 @@
# Set LC_ALL to meet expectations of some locale-sensitive tests.
set(ENV{LC_ALL} "en_US.UTF-8")
if(POLICY CMP0012)
# Handle CI=true, without dev warnings.
cmake_policy(SET CMP0012 NEW)
endif()
set(ENV{VIMRUNTIME} ${WORKING_DIR}/runtime)
set(ENV{NVIM_RPLUGIN_MANIFEST} ${WORKING_DIR}/Xtest_rplugin_manifest)
set(ENV{XDG_CONFIG_HOME} ${WORKING_DIR}/Xtest_xdg/config)
set(ENV{XDG_DATA_HOME} ${WORKING_DIR}/Xtest_xdg/share)
set(ENV{NVIM_RPLUGIN_MANIFEST} ${BUILD_DIR}/Xtest_rplugin_manifest)
set(ENV{XDG_CONFIG_HOME} ${BUILD_DIR}/Xtest_xdg/config)
set(ENV{XDG_DATA_HOME} ${BUILD_DIR}/Xtest_xdg/share)
unset(ENV{XDG_DATA_DIRS})
if(NOT DEFINED ENV{NVIM_LOG_FILE})
set(ENV{NVIM_LOG_FILE} ${WORKING_DIR}/.nvimlog)
set(ENV{NVIM_LOG_FILE} ${BUILD_DIR}/.nvimlog)
endif()
if(NVIM_PRG)
@ -20,35 +26,74 @@ else()
set(TEST_PATH "${TEST_DIR}/${TEST_TYPE}")
endif()
# Force $TEST_PATH to workdir-relative path ("test/…").
if(IS_ABSOLUTE ${TEST_PATH})
file(RELATIVE_PATH TEST_PATH "${WORKING_DIR}" "${TEST_PATH}")
endif()
if(BUSTED_OUTPUT_TYPE STREQUAL junit)
set(EXTRA_ARGS OUTPUT_FILE ${BUILD_DIR}/${TEST_TYPE}test-junit.xml)
endif()
set(BUSTED_ARGS $ENV{BUSTED_ARGS})
separate_arguments(BUSTED_ARGS)
if(DEFINED ENV{TEST_TAG} AND NOT "$ENV{TEST_TAG}" STREQUAL "")
set(TEST_TAG "--tags=$ENV{TEST_TAG}")
list(APPEND BUSTED_ARGS --tags $ENV{TEST_TAG})
endif()
if(DEFINED ENV{TEST_FILTER} AND NOT "$ENV{TEST_FILTER}" STREQUAL "")
set(TEST_FILTER "--filter=$ENV{TEST_FILTER}")
list(APPEND BUSTED_ARGS --filter $ENV{TEST_FILTER})
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${WORKING_DIR}/Xtest-tmpdir)
set(ENV{TMPDIR} ${WORKING_DIR}/Xtest-tmpdir)
set(ENV{SYSTEM_NAME} ${SYSTEM_NAME})
if(DEFINED ENV{TEST_FILTER_OUT} AND NOT "$ENV{TEST_FILTER_OUT}" STREQUAL "")
list(APPEND BUSTED_ARGS --filter-out $ENV{TEST_FILTER_OUT})
endif()
# TMPDIR: use relative test path (for parallel test runs / isolation).
set(ENV{TMPDIR} "${BUILD_DIR}/Xtest_tmpdir/${TEST_PATH}")
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory $ENV{TMPDIR})
# HISTFILE: do not write into user's ~/.bash_history
set(ENV{HISTFILE} "/dev/null")
if(NOT DEFINED ENV{TEST_TIMEOUT} OR "$ENV{TEST_TIMEOUT}" STREQUAL "")
set(ENV{TEST_TIMEOUT} 1200)
endif()
set(ENV{SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_NAME}) # used by test/helpers.lua.
execute_process(
COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE}
--lua=${LUA_PRG} --lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
--lpath=${BUILD_DIR}/?.lua --lpath=?.lua ${TEST_PATH}
COMMAND ${BUSTED_PRG} -v -o test.busted.outputHandlers.${BUSTED_OUTPUT_TYPE}
--lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
--lpath=${BUILD_DIR}/?.lua
--lpath=${WORKING_DIR}/runtime/lua/?.lua
--lpath=?.lua
${BUSTED_ARGS}
${TEST_PATH}
TIMEOUT $ENV{TEST_TIMEOUT}
WORKING_DIRECTORY ${WORKING_DIR}
ERROR_VARIABLE err
RESULT_VARIABLE res
${EXTRA_ARGS})
file(REMOVE ${WORKING_DIR}/Xtest_rplugin_manifest)
file(REMOVE_RECURSE ${WORKING_DIR}/Xtest_xdg)
file(REMOVE_RECURSE ${WORKING_DIR}/Xtest-tmpdir)
file(GLOB RM_FILES ${BUILD_DIR}/Xtest_*)
file(REMOVE_RECURSE ${RM_FILES})
if(NOT res EQUAL 0)
message(STATUS "Output to stderr:\n${err}")
message(FATAL_ERROR "Running ${TEST_TYPE} tests failed with error: ${res}.")
message(STATUS "Tests exited non-zero: ${res}")
if("${err}" STREQUAL "")
message(STATUS "No output to stderr.")
else()
message(STATUS "Output to stderr:\n${err}")
endif()
# Dump the logfile on CI (if not displayed and moved already).
if($ENV{CI})
if(EXISTS $ENV{NVIM_LOG_FILE} AND NOT EXISTS $ENV{NVIM_LOG_FILE}.displayed)
file(READ $ENV{NVIM_LOG_FILE} out)
message(STATUS "$NVIM_LOG_FILE: $ENV{NVIM_LOG_FILE}\n${out}")
endif()
endif()
message(FATAL_ERROR "${TEST_TYPE} tests failed with error: ${res}")
endif()

View File

@ -0,0 +1,21 @@
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
endif()
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
exec_program(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
if(NOT "${rm_retval}" STREQUAL 0)
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
endif()
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif()
endforeach()

View File

@ -1,53 +0,0 @@
#
# Mingw-w64 cross compiler toolchain
#
# - The usual CMAKE variables will point to the cross compiler
# - HOST_EXE_LINKER, HOST_C_COMPILER, HOST_EXE_LINKER_FLAGS,
# HOST_C_FLAGS point to a host compiler
#
set(MINGW_TRIPLET i686-w64-mingw32)
# For x86_64 use
#set(MINGW_TRIPLET x86_64-w64-mingw32)
# The location of your toolchain sys-root
set(MINGW_PREFIX_PATH /opt/mingw32/${MINGW_TRIPLET}/)
# or sometimes like this
#set(MINGW_PREFIX_PATH /usr/${MINGW_TRIPLET}/sys-root)
# the name of the target operating system
set(CMAKE_SYSTEM_NAME Windows)
# which compilers to use for C and C++
set(CMAKE_C_COMPILER ${MINGW_TRIPLET}-gcc)
set(CMAKE_CXX_COMPILER ${MINGW_TRIPLET}-g++)
set(CMAKE_RC_COMPILER ${MINGW_TRIPLET}-windres)
set(CMAKE_C_COMPILER ${MINGW_TRIPLET}-gcc)
set(CMAKE_CXX_COMPILER ${MINGW_TRIPLET}-g++)
set(CMAKE_RC_COMPILER ${MINGW_TRIPLET}-windres)
# Where is the target environment located
set(CMAKE_FIND_ROOT_PATH "${MINGW_PREFIX_PATH}/mingw")
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CROSS_TARGET ${MINGW_TRIPLET})
# We need a host compiler too - assuming mildly sane Unix
# defaults here
set(HOST_C_COMPILER cc)
set(HOST_EXE_LINKER ld)
if (MINGW_TRIPLET MATCHES "^x86_64")
set(HOST_C_FLAGS)
set(HOST_EXE_LINKER_FLAGS)
else()
# In 32 bits systems have the HOST compiler generate 32 bits binaries
set(HOST_C_FLAGS -m32)
set(HOST_EXE_LINKER_FLAGS -m32)
endif()

View File

@ -1,3 +1,6 @@
# To validate:
# cat codecov.yml | curl --data-binary @- https://codecov.io/validate
codecov:
notify:
require_ci_to_pass: no
@ -12,16 +15,13 @@ coverage:
range: "70...100"
status:
project: yes
patch: yes
project:
default:
threshold: 1
patch:
default:
threshold: 1
only_pulls: true
changes: no
parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: no
macro: no
comment: off

View File

@ -12,15 +12,9 @@ check_type_size("size_t" SIZEOF_SIZE_T)
check_type_size("long long" SIZEOF_LONG_LONG)
check_type_size("void *" SIZEOF_VOID_PTR)
if (CMAKE_HOST_SYSTEM_VERSION MATCHES ".*-Microsoft")
# Windows Subsystem for Linux
set(HAVE_WSL 1)
endif()
check_symbol_exists(_NSGetEnviron crt_externs.h HAVE__NSGETENVIRON)
# Headers
check_include_files(iconv.h HAVE_ICONV_H)
check_include_files(langinfo.h HAVE_LANGINFO_H)
check_include_files(locale.h HAVE_LOCALE_H)
check_include_files(pwd.h HAVE_PWD_H)
@ -32,43 +26,28 @@ if(NOT HAVE_SYS_WAIT_H AND UNIX)
endif()
check_include_files(sys/utsname.h HAVE_SYS_UTSNAME_H)
check_include_files(termios.h HAVE_TERMIOS_H)
check_include_files(utime.h HAVE_UTIME_H)
check_include_files(sys/uio.h HAVE_SYS_UIO_H)
check_include_files(sys/sdt.h HAVE_SYS_SDT_H)
# Functions
check_function_exists(fseeko HAVE_FSEEKO)
check_function_exists(getpwent HAVE_GETPWENT)
check_function_exists(getpwnam HAVE_GETPWNAM)
check_function_exists(getpwuid HAVE_GETPWUID)
check_function_exists(uv_translate_sys_error HAVE_UV_TRANSLATE_SYS_ERROR)
check_function_exists(readv HAVE_READV)
if(Iconv_FOUND)
set(HAVE_ICONV 1)
endif()
if(JEMALLOC_FOUND)
set(HAVE_JEMALLOC 1)
endif()
check_function_exists(_putenv_s HAVE_PUTENV_S)
if(WIN32 AND NOT HAVE_PUTENV_S)
message(SEND_ERROR "_putenv_s() function not found on your system.")
endif()
check_function_exists(opendir HAVE_OPENDIR)
check_function_exists(readlink HAVE_READLINK)
check_function_exists(setenv HAVE_SETENV)
if(UNIX AND NOT HAVE_SETENV)
message(SEND_ERROR "setenv() function not found on your system.")
endif()
check_function_exists(unsetenv HAVE_UNSETENV)
check_function_exists(setpgid HAVE_SETPGID)
check_function_exists(setsid HAVE_SETSID)
check_function_exists(sigaction HAVE_SIGACTION)
check_function_exists(strcasecmp HAVE_STRCASECMP)
check_function_exists(strncasecmp HAVE_STRNCASECMP)
check_function_exists(utime HAVE_UTIME)
check_function_exists(utimes HAVE_UTIMES)
check_function_exists(strptime HAVE_STRPTIME)
# Symbols
check_symbol_exists(FD_CLOEXEC "fcntl.h" HAVE_FD_CLOEXEC)
@ -113,7 +92,7 @@ if (NOT "${HAVE_BE64TOH}")
# any case and ORDER_BIG_ENDIAN will not be examined.
# - CMAKE_CROSSCOMPILING *and* HAVE_BE64TOH are both false. In this case
# be64toh function which uses cycle and arithmetic operations is used which
# will work regardless of endianess. Function is sub-optimal though.
# will work regardless of endianness. Function is sub-optimal though.
check_c_source_runs("
${SI}
${MS}

View File

@ -13,7 +13,6 @@
#endif
#define PROJECT_NAME "@PROJECT_NAME@"
#define LOCALE_INSTALL_DIR "@CMAKE_INSTALL_FULL_LOCALEDIR@"
#cmakedefine HAVE__NSGETENVIRON
#cmakedefine HAVE_FD_CLOEXEC
@ -22,34 +21,26 @@
#cmakedefine HAVE_GETPWNAM
#cmakedefine HAVE_GETPWUID
#cmakedefine HAVE_ICONV
#cmakedefine HAVE_ICONV_H
#cmakedefine HAVE_LANGINFO_H
#cmakedefine HAVE_LOCALE_H
#cmakedefine HAVE_NL_LANGINFO_CODESET
#cmakedefine HAVE_NL_MSG_CAT_CNTR
#cmakedefine HAVE_PUTENV_S
#cmakedefine HAVE_PWD_H
#cmakedefine HAVE_READLINK
#cmakedefine HAVE_UV_TRANSLATE_SYS_ERROR
// TODO: add proper cmake check
// #define HAVE_SELINUX 1
#cmakedefine HAVE_SETENV
#cmakedefine HAVE_UNSETENV
#cmakedefine HAVE_SETPGID
#cmakedefine HAVE_SETSID
#cmakedefine HAVE_SIGACTION
#cmakedefine HAVE_STRCASECMP
#cmakedefine HAVE_STRINGS_H
#cmakedefine HAVE_STRNCASECMP
#cmakedefine HAVE_STRPTIME
#cmakedefine HAVE_SYS_SDT_H
#cmakedefine HAVE_SYS_UTSNAME_H
#cmakedefine HAVE_SYS_WAIT_H
#cmakedefine HAVE_TERMIOS_H
#cmakedefine HAVE_UTIME
#cmakedefine HAVE_UTIME_H
#cmakedefine HAVE_UTIMES
#cmakedefine HAVE_WORKING_LIBINTL
#cmakedefine HAVE_WSL
#cmakedefine UNIX
#cmakedefine CASE_INSENSITIVE_FILENAME
#cmakedefine USE_FNAME_CASE
#cmakedefine HAVE_SYS_UIO_H
#ifdef HAVE_SYS_UIO_H
@ -62,7 +53,6 @@
#cmakedefine FEAT_TUI
#ifndef UNIT_TESTING
#cmakedefine HAVE_JEMALLOC
#cmakedefine LOG_LIST_ACTIONS
#endif
@ -71,5 +61,7 @@
#define ENDIAN_INCLUDE_FILE <@ENDIAN_INCLUDE_FILE@>
#cmakedefine HAVE_EXECINFO_BACKTRACE
#cmakedefine HAVE_BUILTIN_ADD_OVERFLOW
#cmakedefine HAVE_WIMPLICIT_FALLTHROUGH_FLAG
#endif // AUTO_CONFIG_H

View File

@ -3,5 +3,6 @@
#include "${PROJECT_SOURCE_DIR}/src/nvim/vim.h"
char *default_vim_dir = "${CMAKE_INSTALL_FULL_DATAROOTDIR}/nvim";
char *default_vimruntime_dir = "";
char *default_lib_dir = "${CMAKE_INSTALL_FULL_LIBDIR}/nvim";
char_u *compiled_user = (char_u *)"${USERNAME}";
char_u *compiled_sys = (char_u *)"${HOSTNAME}";

View File

@ -5,7 +5,11 @@
#define NVIM_VERSION_MINOR @NVIM_VERSION_MINOR@
#define NVIM_VERSION_PATCH @NVIM_VERSION_PATCH@
#define NVIM_VERSION_PRERELEASE "@NVIM_VERSION_PRERELEASE@"
#cmakedefine NVIM_VERSION_MEDIUM "@NVIM_VERSION_MEDIUM@"
#ifndef NVIM_VERSION_MEDIUM
# include "auto/versiondef_git.h"
#endif
#define NVIM_API_LEVEL @NVIM_API_LEVEL@
#define NVIM_API_LEVEL_COMPAT @NVIM_API_LEVEL_COMPAT@

43
contrib/flake.lock generated Normal file
View File

@ -0,0 +1,43 @@
{
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1629481132,
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "997f7efcb746a9c140ce1f13c72263189225f482",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1630074300,
"narHash": "sha256-BFM7OiXRs0RvSUZd6NCGAKWVPn3VodgYQ4TUQXxbMBU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "21c937f8cb1e6adcfeb36dfd6c90d9d9bfab1d28",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

133
contrib/flake.nix Normal file
View File

@ -0,0 +1,133 @@
{
description = "Neovim flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
{
overlay = final: prev:
let
pkgs = nixpkgs.legacyPackages.${prev.system};
in
rec {
neovim = pkgs.neovim-unwrapped.overrideAttrs (oa: {
version = "master";
src = ../.;
});
# a development binary to help debug issues
neovim-debug = let
stdenv = if pkgs.stdenv.isLinux then pkgs.llvmPackages_latest.stdenv else pkgs.stdenv;
in
((neovim.override {
lua = pkgs.luajit;
inherit stdenv;
}).overrideAttrs (oa: {
dontStrip = true;
NIX_CFLAGS_COMPILE = " -ggdb -Og";
cmakeBuildType = "Debug";
cmakeFlags = oa.cmakeFlags ++ [
"-DMIN_LOG_LEVEL=0"
];
disallowedReferences = [];
}));
# for neovim developers, beware of the slow binary
neovim-developer =
let
lib = nixpkgs.lib;
luacheck = pkgs.luaPackages.luacheck;
in
(neovim-debug.override ({ doCheck = pkgs.stdenv.isLinux; })).overrideAttrs (oa: {
cmakeFlags = oa.cmakeFlags ++ [
"-DLUACHECK_PRG=${luacheck}/bin/luacheck"
"-DMIN_LOG_LEVEL=0"
"-DENABLE_LTO=OFF"
] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [
# https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
# https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports
"-DCLANG_ASAN_UBSAN=ON"
];
});
};
} //
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
overlays = [ self.overlay ];
inherit system;
};
pythonEnv = pkgs.python3.withPackages(ps: [
ps.msgpack
ps.flake8 # for 'make pylint'
]);
in
rec {
packages = with pkgs; {
inherit neovim neovim-debug neovim-developer;
};
checks = {
pylint = pkgs.runCommandNoCC "pylint" {
nativeBuildInputs = [ pythonEnv ];
preferLocalBuild = true;
} "make -C ${./..} pylint > $out";
shlint = pkgs.runCommandNoCC "shlint" {
nativeBuildInputs = [ pkgs.shellcheck ];
preferLocalBuild = true;
} "make -C ${./..} shlint > $out";
};
defaultPackage = pkgs.neovim;
apps = {
nvim = flake-utils.lib.mkApp { drv = pkgs.neovim; name = "nvim"; };
nvim-debug = flake-utils.lib.mkApp { drv = pkgs.neovim-debug; name = "nvim"; };
};
defaultApp = apps.nvim;
devShell = let
in
pkgs.neovim-developer.overrideAttrs(oa: {
buildInputs = with pkgs; oa.buildInputs ++ [
cmake
pythonEnv
include-what-you-use # for scripts/check-includes.py
jq # jq for scripts/vim-patch.sh -r
shellcheck # for `make shlint`
doxygen # for script/gen_vimdoc.py
clang-tools # for clangd to find the correct headers
];
shellHook = oa.shellHook + ''
export NVIM_PYTHON_LOG_LEVEL=DEBUG
export NVIM_LOG_FILE=/tmp/nvim.log
export ASAN_SYMBOLIZER_PATH=${pkgs.llvm_11}/bin/llvm-symbolizer
# ASAN_OPTIONS=detect_leaks=1
export ASAN_OPTIONS="log_path=./test.log:abort_on_error=1"
export UBSAN_OPTIONS=print_stacktrace=1
mkdir -p build/runtime/parser
# nvim looks into CMAKE_INSTALL_DIR. Hack to avoid errors
# when running the functionaltests
mkdir -p outputs/out/share/nvim/syntax
touch outputs/out/share/nvim/syntax/syntax.vim
# for treesitter functionaltests
mkdir -p runtime/parser
cp -f ${pkgs.tree-sitter.builtGrammars.tree-sitter-c}/parser runtime/parser/c.so
'';
});
});
}

View File

@ -26,13 +26,13 @@ def get_color_code(bg, color_num):
prefix += 1
color_num %= 8
else:
prefix = '48;5;' if bg else '38;5;'
prefix = '48;5;' if bg else '38;5;'
return '\x1b[{0}{1}m'.format(prefix, color_num)
def highlight(attrs):
fg, bg = [int(attrs['foreground']), int(attrs['background'])]
rv = [SGR0] # start with sgr0
rv = [SGR0] # start with sgr0
if fg != -1:
rv.append(get_color_code(False, fg))
if bg != -1:

View File

@ -7,9 +7,8 @@
# These CFLAGS can be used in addition to those specified in CMakeLists.txt:
# CMAKE_EXTRA_FLAGS="-DCMAKE_C_FLAGS=-ftrapv -Wlogical-op"
# By default, the jemalloc family of memory allocation functions are used.
# Uncomment the following to instead use libc memory allocation functions.
# CMAKE_EXTRA_FLAGS += -DENABLE_JEMALLOC=OFF
# To turn compiler warnings into errors:
# CMAKE_EXTRA_FLAGS += "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -Werror"
# Sets the build type; defaults to Debug. Valid values:
#
@ -26,6 +25,12 @@
#
# CMAKE_BUILD_TYPE := Debug
# With non-Debug builds interprocedural optimization (IPO) (which includes
# link-time optimization (LTO)) is enabled by default, which causes the link
# step to take a significant amount of time, which is relevant when building
# often. You can disable it explicitly:
# CMAKE_EXTRA_FLAGS += -DENABLE_LTO=OFF
# Log levels: 0 (DEBUG), 1 (INFO), 2 (WARNING), 3 (ERROR)
# Default is 1 (INFO) unless CMAKE_BUILD_TYPE is Release or RelWithDebInfo.
# CMAKE_EXTRA_FLAGS += -DMIN_LOG_LEVEL=1
@ -36,7 +41,6 @@
# them.
#
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_BUSTED=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_JEMALLOC=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LIBTERMKEY=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LIBUV=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LIBVTERM=OFF
@ -44,23 +48,12 @@
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LUAROCKS=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_MSGPACK=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_UNIBILIUM=OFF
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_UTF8PROC=OFF
#
# Or disable all bundled dependencies at once.
#
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED=OFF
# By default, bundled libraries are statically linked to nvim.
# This has no effect for non-bundled deps, which are always dynamically linked.
# Uncomment these entries to instead use dynamic linking.
#
# CMAKE_EXTRA_FLAGS += -DLIBTERMKEY_USE_STATIC=OFF
# CMAKE_EXTRA_FLAGS += -DLIBUNIBILIUM_USE_STATIC=OFF
# CMAKE_EXTRA_FLAGS += -DLIBUV_USE_STATIC=OFF
# CMAKE_EXTRA_FLAGS += -DLIBVTERM_USE_STATIC=OFF
# CMAKE_EXTRA_FLAGS += -DLUAJIT_USE_STATIC=OFF
# CMAKE_EXTRA_FLAGS += -DMSGPACK_USE_STATIC=OFF
#
#
# .DEFAULT_GOAL := nvim
#
# Run doxygen over the source code.

File diff suppressed because it is too large Load Diff

View File

@ -20,41 +20,52 @@
.Sh DESCRIPTION
.Nm
is a text editor based on Vim.
To enter commands in
.Nm ,
type a colon
.Pq Sq \&:
which is also used in this manual to denote commands.
For more information, consult the online help with the
.Ic :help
command.
Start
.Nm
followed by any number of options and/or files:
.Pp
.Dl nvim [options] [file ...]
.Pp
Commands in
.Nm
begin with colon
.Pq Sq \&: .
Type ":help subject" to get help on a specific subject.
Use <Tab> and CTRL-D to complete subjects (":help cmdline\-completion").
.Pp
The "quickref" help section is a condensed reference of editor features:
.Dl :help quickref
.Pp
If you are new to Vim/Nvim, start with the 30-minute tutorial:
.Dl :Tutor
.Pp
After installing/updating Nvim, it's a good idea to run the self-check:
.Dl :checkhealth
.Pp
.Bl -tag -width Fl
.It Ar file ...
File(s) to edit.
If none are specified, open an empty buffer.
If multiple files are specified, open one buffer for each file.
Opens one buffer per file.
To switch between buffers, use the
.Ic :next
and
.Ic :previous
commands.
.It Fl
Read text from standard input until
Reads text from standard input until
.Dv EOF ,
then open a buffer with that text.
Commands are read from standard error, which should be a terminal.
then opens a buffer with that text.
User input is read from standard error, which should be a terminal.
.El
.Sh OPTIONS
.Bl -tag -width Fl
.It Fl t Ar tag
The file to edit and the initial cursor position depends on a
tag, a sort of goto label.
Finds
.Ar tag
is looked up in the tags file, the associated file becomes the current
in the tags file, the associated file becomes the current
file and the associated command is executed.
If
.Ar tag
is a function name, the file containing that function is opened
with the cursor positioned at the start of the function.
See
.Ic ":help tag-commands" .
Cursor is positioned at the tag location in the file.
.Ic ":help tag-commands"
.It Fl q Op Ar errorfile
QuickFix mode.
Display the first error in
@ -66,31 +77,32 @@ is omitted, the value of the 'errorfile' option is used (defaults to
Further errors can be jumped to with the
.Ic :cnext
command.
See
.Ic ":help quickfix" .
.It There are a number of other options:
.Ic ":help quickfix"
.It Fl -
Interpret all further arguments as files.
Can be used to edit files starting with a hyphen
End of options.
Remaining arguments are treated as literal file names, including filenames starting with hyphen
.Pq Sq - .
.It Fl e
Ex mode. Reads stdin as Ex commands.
See
.Ic ":help Ex-mode" .
Ex mode, reading stdin as Ex commands.
.Ic ":help Ex-mode"
.It Fl E
Ex mode. Reads stdin as text.
See
.Ic :help gQ .
Ex mode, reading stdin as text.
.Ic :help Ex-mode
.It Fl es
Silent (batch) mode. Reads stdin as Ex commands.
Silent (non-interactive) Ex mode, reading stdin as Ex commands.
Useful for scripting because it does NOT start a UI, unlike
.Fl e .
.Ic :help silent-mode
.It Fl \&Es
Silent (batch) mode. Reads stdin as text.
Silent (non-interactive) Ex mode, reading stdin as text.
Useful for scripting because it does NOT start a UI, unlike
.Fl E .
.Ic :help silent-mode
.It Fl d
Diff mode.
Show the difference between two to four files, similar to
Show the difference between two to eight files, similar to
.Xr sdiff 1 .
See
.Ic ":help diff" .
.Ic ":help diff"
.It Fl R
Read-only mode.
Sets the 'readonly' option.
@ -100,11 +112,7 @@ Buffers can still be edited, but cannot be written to disk if already
associated with a file.
To overwrite a file, add an exclamation mark to the relevant Ex command, such as
.Ic :w! .
See
.Ic ":help 'readonly'" .
.It Fl Z
Restricted mode.
Disable commands that make use of an external shell.
.Ic ":help 'readonly'"
.It Fl m
Resets the 'write' option, to disable file modifications.
Writing to a file is disabled, but buffers can still be modified.
@ -113,8 +121,7 @@ Resets the 'write' and 'modifiable' options, to disable file and buffer
modifications.
.It Fl b
Binary mode.
See
.Ic ":help edit-binary" .
.Ic ":help edit-binary"
.It Fl l
Lisp mode.
Sets the 'lisp' and 'showmatch' options.
@ -126,19 +133,20 @@ Hebrew mode.
Sets the 'hkmap' and 'rightleft' options.
.It Fl V Ns Oo Ar N Oc Ns Op Ar file
Verbose mode.
Print messages about which files are being sourced and for reading and
writing a ShaDa file.
Prints debug messages.
.Ar N
is the 'verbose' level; defaults to
.Cm 10.
is the 'verbose' level, defaults to
.Cm 10 .
If
.Ar file
is specified, append messages to
.Ar file
instead of printing them.
.Ic ":help 'verbose'"
.It Fl D
Debugging mode.
Debug mode for VimL (Vim script).
Started when executing the first command from a script.
:help debug-mode
.It Fl n
Disable the use of swap files.
Sets the 'updatecount' option to
@ -156,8 +164,7 @@ is used to recover a crashed session.
The swap file has the same name as the file it's associated with, but with
.Sq .swp
appended.
See
.Ic ":help recovery" .
.Ic ":help recovery"
.It Fl L Op Ar file
Alias for
.Fl r .
@ -170,15 +177,13 @@ If
.Ar vimrc
is
.Cm NORC ,
do not load any initialization files (except plugins),
and do not attempt to parse environment variables.
do not load any initialization files (except plugins).
If
.Ar vimrc
is
.Cm NONE ,
loading plugins is also skipped.
See
.Ic ":help initialization" .
.Ic ":help initialization"
.It Fl i Ar shada
Use
.Ar shada
@ -189,12 +194,13 @@ If
is
.Cm NONE ,
do not read or write a ShaDa file.
See
.Ic ":help shada" .
.Ic ":help shada"
.It Fl -noplugin
Skip loading plugins.
Implied by
.Cm -u NONE .
.It Fl -clean
Mimic a fresh install of Nvim. Skip loading non-builtin plugins and shada (viminfo) file.
.It Fl o Ns Op Ar N
Open
.Ar N
@ -243,17 +249,12 @@ and
.Ic :/foo
inside
.Nm .
See
.Ic ":help search-pattern" .
.It Fl c Ar command
.Ic ":help search-pattern"
.It \fB\+\fR\fI\,command\/\fR , Fl c Ar command
Execute
.Ar command
after reading the first file.
Up to 10 instances of
.Fl c
or
.Cm +
can be used.
Up to 10 instances allowed.
.Qq Cm +foo
and
.Cm -c \(dqfoo\(dq
@ -280,8 +281,7 @@ If
is omitted then
.Pa Session.vim
is used, if found.
See
.Ic ":help session-file" .
.Ic ":help session-file"
.It Fl s Ar scriptin
Read normal mode commands from
.Ar scriptin .
@ -310,10 +310,12 @@ Can be used to diagnose slow startup times.
Dump API metadata serialized to msgpack and exit.
.It Fl -embed
Use standard input and standard output as a msgpack-rpc channel.
Implies
.Fl -headless .
:help --embed
.It Fl -headless
Do not start a user interface.
Do not start a UI.
When supplied with --embed this implies that the embedding application does not intend to (immediately) start a UI.
Also useful for "scraping" messages in a pipe.
:help --headless
.It Fl -listen Ar address
Start RPC server on this pipe or TCP socket.
.It Fl h , -help
@ -324,11 +326,12 @@ Print version information and exit.
.Sh ENVIRONMENT
.Bl -tag -width Fl
.It Ev NVIM_LOG_FILE
Low-level log file, usually found at ~/.local/share/nvim/log. See :help
$NVIM_LOG_FILE.
Low-level log file, usually found at ~/.cache/nvim/log.
:help $NVIM_LOG_FILE
.It Ev VIM
Used to locate user files, such as init.vim.
System-dependent, see :help $VIM.
System-dependent.
:help $VIM
.It Ev VIMRUNTIME
Used to locate runtime files (documentation, syntax highlighting, etc.).
.It Ev XDG_CONFIG_HOME
@ -336,7 +339,7 @@ Path to the user-local configuration directory, see
.Sx FILES .
Defaults to
.Pa ~/.config .
See :help xdg.
:help xdg
.It Ev XDG_DATA_HOME
Like
.Ev XDG_CONFIG_HOME ,
@ -344,19 +347,10 @@ but used to store data not generally edited by the user,
namely swap, backup, and ShaDa files.
Defaults to
.Pa ~/.local/share .
See :help xdg.
:help xdg
.It Ev VIMINIT
Ex commands to be executed at startup.
For example, the command to quit is
.Ic :q ,
so to have
.Nm
quit immediately after starting, set
.Ev VIMINIT
to
.Cm q .
See
.Ic ":help VIMINIT" .
.Ic ":help VIMINIT"
.It Ev SHELL
Used to initialize the 'shell' option, which decides the default shell used by
features like
@ -380,7 +374,7 @@ See also
System-global
.Nm
configuration file.
.It Pa /usr/local/share/nvim
.It Pa $VIM
System-global
.Nm
runtime directory.
@ -391,10 +385,9 @@ Nvim was started by
Most of Vim was written by
.An -nosplit
.An Bram Moolenaar .
See
.Ic ":help credits" .
Vim is based on Stevie, worked on by
.An Tim Thompson ,
.An Tony Andrews ,
and
.An G.R. (Fred) Walter .
.Ic ":help credits"

View File

@ -21,29 +21,24 @@ add_custom_command(OUTPUT ${GENERATED_SYN_VIM}
${FUNCS_DATA}
)
file(GLOB PACKAGES ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*)
glob_wrapper(PACKAGES ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*)
set(GENERATED_PACKAGE_TAGS)
foreach(PACKAGE ${PACKAGES})
get_filename_component(PACKNAME ${PACKAGE} NAME)
file(GLOB "${PACKNAME}_DOC_FILES" ${PACKAGE}/doc/*.txt)
glob_wrapper("${PACKNAME}_DOC_FILES" ${PACKAGE}/doc/*.txt)
if(${PACKNAME}_DOC_FILES)
file(MAKE_DIRECTORY ${GENERATED_PACKAGE_DIR}/${PACKNAME})
add_custom_target("${PACKNAME}-tags"
add_custom_command(OUTPUT "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags"
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PACKAGE} ${GENERATED_PACKAGE_DIR}/${PACKNAME}
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
-u NONE -i NONE -e --headless -c "helptags doc" -c quit
DEPENDS
nvim
nvim_runtime_deps
WORKING_DIRECTORY "${GENERATED_PACKAGE_DIR}/${PACKNAME}"
)
add_dependencies(${PACKNAME}-tags nvim_runtime_deps)
add_custom_command(OUTPUT "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags"
DEPENDS
"${PACKNAME}-tags"
)
set("${PACKNAME}_DOC_NAMES")
foreach(DF "${${PACKNAME}_DOC_FILES}")
@ -59,7 +54,7 @@ foreach(PACKAGE ${PACKAGES})
endif()
endforeach()
file(GLOB DOCFILES ${PROJECT_SOURCE_DIR}/runtime/doc/*.txt)
glob_wrapper(DOCFILES ${PROJECT_SOURCE_DIR}/runtime/doc/*.txt)
set(BUILDDOCFILES)
foreach(DF ${DOCFILES})
@ -67,22 +62,18 @@ foreach(DF ${DOCFILES})
list(APPEND BUILDDOCFILES ${GENERATED_RUNTIME_DIR}/doc/${F})
endforeach()
add_custom_target(helptags
COMMAND ${CMAKE_COMMAND} -E remove ${GENERATED_RUNTIME_DIR}/doc/*
add_custom_command(OUTPUT ${GENERATED_HELP_TAGS}
COMMAND ${CMAKE_COMMAND} -E remove doc/*
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PROJECT_SOURCE_DIR}/runtime/doc ${GENERATED_RUNTIME_DIR}/doc
${PROJECT_SOURCE_DIR}/runtime/doc doc
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
-u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit
DEPENDS
nvim
nvim_runtime_deps
WORKING_DIRECTORY "${GENERATED_RUNTIME_DIR}"
)
add_dependencies(helptags nvim_runtime_deps)
add_custom_command(OUTPUT ${GENERATED_HELP_TAGS}
DEPENDS
helptags
)
add_custom_target(doc_html
COMMAND make html
@ -120,12 +111,10 @@ if(NOT APPLE)
install_helper(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/nvim.png
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps)
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps)
endif()
file(GLOB_RECURSE RUNTIME_PROGRAMS
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
*.awk *.sh *.bat)
globrecurse_wrapper(RUNTIME_PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR} *.awk *.sh *.bat)
foreach(PROG ${RUNTIME_PROGRAMS})
get_filename_component(BASEDIR ${PROG} PATH)
@ -133,9 +122,7 @@ foreach(PROG ${RUNTIME_PROGRAMS})
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/${BASEDIR})
endforeach()
file(GLOB_RECURSE RUNTIME_FILES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
rgb.txt
globrecurse_wrapper(RUNTIME_FILES ${CMAKE_CURRENT_SOURCE_DIR}
*.vim *.lua *.dict *.py *.rb *.ps *.spl *.tutor *.tutor.json)
foreach(F ${RUNTIME_FILES})

View File

@ -0,0 +1,62 @@
" Author: Antony Lee <anntzer.lee@gmail.com>
" Description: Helper functions for reStructuredText syntax folding
" Last Modified: 2018-12-29
function s:CacheRstFold()
if !g:rst_fold_enabled
return
endif
let closure = {'header_types': {}, 'max_level': 0, 'levels': {}}
function closure.Process(match) dict
let curline = getcurpos()[1]
if has_key(self.levels, curline - 1)
" For over+under-lined headers, the regex will match both at the
" overline and at the title itself; in that case, skip the second match.
return
endif
let lines = split(a:match, '\n')
let key = repeat(lines[-1][0], len(lines))
if !has_key(self.header_types, key)
let self.max_level += 1
let self.header_types[key] = self.max_level
endif
let self.levels[curline] = self.header_types[key]
endfunction
let save_cursor = getcurpos()
let save_mark = getpos("'[")
silent keeppatterns %s/\v^%(%(([=`:.'"~^_*+#-])\1+\n)?.{1,2}\n([=`:.'"~^_*+#-])\2+)|%(%(([=`:.''"~^_*+#-])\3{2,}\n)?.{3,}\n([=`:.''"~^_*+#-])\4{2,})$/\=closure.Process(submatch(0))/gn
call setpos('.', save_cursor)
call setpos("'[", save_mark)
let b:RstFoldCache = closure.levels
endfunction
function RstFold#GetRstFold()
if !g:rst_fold_enabled
return
endif
if !has_key(b:, 'RstFoldCache')
call s:CacheRstFold()
endif
if has_key(b:RstFoldCache, v:lnum)
return '>' . b:RstFoldCache[v:lnum]
else
return '='
endif
endfunction
function RstFold#GetRstFoldText()
if !g:rst_fold_enabled
return
endif
if !has_key(b:, 'RstFoldCache')
call s:CacheRstFold()
endif
let indent = repeat(' ', b:RstFoldCache[v:foldstart] - 1)
let thisline = getline(v:foldstart)
" For over+under-lined headers, skip the overline.
let text = thisline =~ '^\([=`:.''"~^_*+#-]\)\1\+$' ? getline(v:foldstart + 1) : thisline
return indent . text
endfunction

View File

@ -67,13 +67,13 @@ if exists ('g:ada_with_gnat_project_files')
endfor
endif
" Section: add standart exception {{{2
" Section: add standard exception {{{2
"
for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
\ 'info': 'Ada standart exception.',
\ 'info': 'Ada standard exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
@ -210,7 +210,7 @@ function ada#Word (...)
let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
" Cope with tag searching for items in comments; if we are, don't loop
" backards looking for previous lines
" backwards looking for previous lines
if l:Column_Nr > strlen(l:Line)
" We were in a comment
let l:Line = getline(l:Line_Nr)

View File

@ -14,7 +14,7 @@
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested agaist using setlocal omnifunc
" 05.11.2006 MK Bram suggested against using setlocal omnifunc
" 05.11.2006 MK Bram suggested to save on spaces
" Help Page: ft-ada-omni
"------------------------------------------------------------------------------

View File

@ -1,13 +1,13 @@
" Vim completion script
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Jun 20
" Last Change: 2020 Nov 14
let s:cpo_save = &cpo
set cpo&vim
" This function is used for the 'omnifunc' option.
function! ccomplete#Complete(findstart, base)
func ccomplete#Complete(findstart, base)
if a:findstart
" Locate the start of the item, including ".", "->" and "[...]".
let line = getline('.')
@ -72,8 +72,10 @@ function! ccomplete#Complete(findstart, base)
" Split item in words, keep empty word after "." or "->".
" "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
" We can't use split, because we need to skip nested [...].
" "aa[...]" -> ['aa', '[...]'], "aa.bb[...]" -> ['aa', 'bb', '[...]'], etc.
let items = []
let s = 0
let arrays = 0
while 1
let e = match(base, '\.\|->\|\[', s)
if e < 0
@ -107,6 +109,7 @@ function! ccomplete#Complete(findstart, base)
endwhile
let e += 1
call add(items, strpart(base, s, e - s))
let arrays += 1
let s = e
endif
endwhile
@ -161,15 +164,26 @@ function! ccomplete#Complete(findstart, base)
endif
endif
let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
elseif len(items) == arrays + 1
" Completing one word and it's a local array variable: build tagline
" from declaration line
let match = items[0]
let kind = 'v'
let tagline = "\t/^" . line . '$/'
let res = [{'match': match, 'tagline' : tagline, 'kind' : kind, 'info' : line}]
else
" Completing "var.", "var.something", etc.
let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
endif
endif
if len(items) == 1
if len(items) == 1 || len(items) == arrays + 1
" Only one part, no "." or "->": complete from tags file.
let tags = taglist('^' . base)
if len(items) == 1
let tags = taglist('^' . base)
else
let tags = taglist('^' . items[0] . '$')
endif
" Remove members, these can't appear without something in front.
call filter(tags, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')
@ -230,7 +244,7 @@ function! ccomplete#Complete(findstart, base)
return map(res, 's:Tagline2item(v:val, brackets)')
endfunc
function! s:GetAddition(line, match, memarg, bracket)
func s:GetAddition(line, match, memarg, bracket)
" Guess if the item is an array.
if a:bracket && match(a:line, a:match . '\s*\[') > 0
return '['
@ -246,13 +260,13 @@ function! s:GetAddition(line, match, memarg, bracket)
endif
endif
return ''
endfunction
endfunc
" Turn the tag info "val" into an item for completion.
" "val" is is an item in the list returned by taglist().
" If it is a variable we may add "." or "->". Don't do it for other types,
" such as a typedef, by not including the info that s:GetAddition() uses.
function! s:Tag2item(val)
func s:Tag2item(val)
let res = {'match': a:val['name']}
let res['extra'] = s:Tagcmd2extra(a:val['cmd'], a:val['name'], a:val['filename'])
@ -275,10 +289,10 @@ function! s:Tag2item(val)
endif
return res
endfunction
endfunc
" Use all the items in dictionary for the "info" entry.
function! s:Dict2info(dict)
func s:Dict2info(dict)
let info = ''
for k in sort(keys(a:dict))
let info .= k . repeat(' ', 10 - len(k))
@ -293,7 +307,7 @@ function! s:Dict2info(dict)
endfunc
" Parse a tag line and return a dictionary with items like taglist()
function! s:ParseTagline(line)
func s:ParseTagline(line)
let l = split(a:line, "\t")
let d = {}
if len(l) >= 3
@ -320,12 +334,12 @@ function! s:ParseTagline(line)
endif
return d
endfunction
endfunc
" Turn a match item "val" into an item for completion.
" "val['match']" is the matching item.
" "val['tagline']" is the tagline in which the last part was found.
function! s:Tagline2item(val, brackets)
func s:Tagline2item(val, brackets)
let line = a:val['tagline']
let add = s:GetAddition(line, a:val['match'], [a:val], a:brackets == '')
let res = {'word': a:val['match'] . a:brackets . add }
@ -363,10 +377,10 @@ function! s:Tagline2item(val, brackets)
let res['menu'] = s:Tagcmd2extra(s, a:val['match'], matchstr(line, '[^\t]*\t\zs[^\t]*\ze\t'))
endif
return res
endfunction
endfunc
" Turn a command from a tag line to something that is useful in the menu
function! s:Tagcmd2extra(cmd, name, fname)
func s:Tagcmd2extra(cmd, name, fname)
if a:cmd =~ '^/^'
" The command is a search command, useful to see what it is.
let x = matchstr(a:cmd, '^/^\s*\zs.*\ze$/')
@ -381,13 +395,13 @@ function! s:Tagcmd2extra(cmd, name, fname)
let x = a:cmd . ' - ' . a:fname
endif
return x
endfunction
endfunc
" Find composing type in "lead" and match items[0] with it.
" Repeat this recursively for items[1], if it's there.
" When resolving typedefs "depth" is used to avoid infinite recursion.
" Return the list of matches.
function! s:Nextitem(lead, items, depth, all)
func s:Nextitem(lead, items, depth, all)
" Use the text up to the variable name and split it in tokens.
let tokens = split(a:lead, '\s\+\|\<')
@ -471,7 +485,7 @@ function! s:Nextitem(lead, items, depth, all)
endfor
return res
endfunction
endfunc
" Search for members of structure "typename" in tags files.
@ -479,7 +493,7 @@ endfunction
" Each match is a dictionary with "match" and "tagline" entries.
" When "all" is non-zero find all, otherwise just return 1 if there is any
" member.
function! s:StructMembers(typename, items, all)
func s:StructMembers(typename, items, all)
" Todo: What about local structures?
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
if fnames == ''
@ -516,11 +530,24 @@ function! s:StructMembers(typename, items, all)
endif
endif
" Skip over [...] items
let idx = 0
while 1
if idx >= len(a:items)
let target = '' " No further items, matching all members
break
endif
if a:items[idx][0] != '['
let target = a:items[idx]
break
endif
let idx += 1
endwhile
" Put matching members in matches[].
let matches = []
for l in qflist
let memb = matchstr(l['text'], '[^\t]*')
if memb =~ '^' . a:items[0]
if memb =~ '^' . target
" Skip matches local to another file.
if match(l['text'], "\tfile:") < 0 || bufnr('%') == bufnr(matchstr(l['text'], '\t\zs[^\t]*'))
let item = {'match': memb, 'tagline': l['text']}
@ -540,8 +567,8 @@ function! s:StructMembers(typename, items, all)
endfor
if len(matches) > 0
" Skip over [...] items
let idx = 1
" Skip over next [...] items
let idx += 1
while 1
if idx >= len(a:items)
return matches " No further items, return the result.
@ -559,12 +586,12 @@ function! s:StructMembers(typename, items, all)
" Failed to find anything.
return []
endfunction
endfunc
" For matching members, find matches for following items.
" When "all" is non-zero find all, otherwise just return 1 if there is any
" member.
function! s:SearchMembers(matches, items, all)
func s:SearchMembers(matches, items, all)
let res = []
for i in range(len(a:matches))
let typename = ''
@ -608,3 +635,5 @@ endfunc
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: noet sw=2 sts=2

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
" plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2016 Jan 11
" Last Change: 2021 Sep 21
let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
@ -19,7 +19,6 @@ function! csscomplete#CompleteCSS(findstart, base)
while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
let start -= 1
endwhile
let b:after = line[compl_begin :]
let b:compl_context = line[0:compl_begin]
return start
endif
@ -37,11 +36,14 @@ function! csscomplete#CompleteCSS(findstart, base)
" 5. if @ complete at-rule
" 6. if ! complete important
if exists("b:compl_context")
let line = getline('.')
let compl_begin = col('.') - 2
let b:after = line[compl_begin:]
let line = b:compl_context
let after = b:after
unlet! b:compl_context
else
let line = a:base
let b:after = ''
endif
let res = []
@ -309,7 +311,7 @@ function! csscomplete#CompleteCSS(findstart, base)
let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
elseif prop =~ '^\%(height\|width\)$'
let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
elseif prop =~ '^\%(left\|rigth\)$'
elseif prop =~ '^\%(left\|right\)$'
let values = ["auto"]
elseif prop == 'image-rendering'
let values = ["auto", "crisp-edges", "pixelated"]

View File

@ -23,9 +23,9 @@ endif
function decada#Unit_Name () dict " {{{1
" Convert filename into acs unit:
" 1: remove the file extenstion.
" 1: remove the file extension.
" 2: replace all double '_' or '-' with an dot (which denotes a separate)
" 3: remove a trailing '_' (wich denotes a specification)
" 3: remove a trailing '_' (which denotes a specification)
return substitute (substitute (expand ("%:t:r"), '__\|-', ".", "g"), '_$', "", '')
endfunction decada#Unit_Name " }}}1

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