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 #9304725da1feeb#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 #911305f9c7c2f7 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() #91008de87c7b1c#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#8774c936ae0f36#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 #9191e55ebae373#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 #9376b48efd9ba7#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 #93537bff9a5de8 TUI: Alacritty supports DECSCUSR (#9048)
57acfceabe macOS: infer primary language if $LANG is empty #9345bc132ae123 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 #92041cf50cbfd9 provider/nodejs: Simultaneously query npm and yarn #90546c496db4b7 undo: Fix infinite loop if undo_read_byte returns EOF #2880f8f83579ff#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)
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
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
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().
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'. (closesvim/vim#3409)
99396d4cbf
Problem: Package directory not added to 'rtp' if prefix matches.
Solution: Check the match is a full match. (Ozaki Kiichi, closesvim/vim#2817)
Also handle different ways of spelling a path.
f98a39ca57
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, closesvim/vim#2604)
2374faae11
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
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.
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
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