Changes:
This is a maintenance release, focusing on bugfixes.
Notably, fixes were made for issues with using and testing Nvim on less common platforms, like big endian platforms.
Bug Fixes
defaults: Set 'fsync' #26039
Dont create data dir if it's a broken symlink
Make InspectTree handle nested injection
Remove nested for_each_tree in TSTreeView (#26331)
api: Use a conditional stack for nvim_cmd
change: Update fold after on_bytes
deps: Bump libmpack from luarocks
extmark_to_array: Convert conceal_char to bytes
highlight: Apply 'winblend' to float border
inccommand: Save and restore '[ and '] marks
inccommand: Don't crash with "split" and 'n' flag
lsp: Handle NUL bytes in popup text
lua: Correct return value for on_key with no arguments
lua: Crash in nlua_error
man: Make :Man with a range work
mappings: Fix mapset() not replacing map with backslash
marks: Handle switching buffer properly
mouse: Avoid dragging after click label popupmenu callback
mouse: Avoid dragging when clicking next to popupmenu
move: Check the correct buffer
oldtest: Always use a 64-bit int for swapfile block number
options: Setting 'scroll' with resized grid
quickfix: Check if delete failed in qf_fill_buffer()
set_bool_option: Use int value to make bool Object
set_option_from_tv: Use v_bool to access boolean option
terminal: Assign channel to terminal earlier
terminal: Avoid Insert mode in Terminal buffer
terminal: Don't lose focus on
terminal: Keep focus when scrolling number column of another window
terminal: Make backslashes in 'shell' work on Windows
treesitter: Foldexpr tweaks
treesitter: Remove incompatible c query (again)
ui: Empty line before the next message after :silent command
Build System
Fix universal mac builds
ci: Ensure correct headers are used on macOS
Documentation
List NVIM_APPNAME as env on manpage
starting.txt: Correct step number
Performance
Remove redundant strlen in skipwhite
Testing
Fix dependencies between test cases and test flakiness
Upstream now provides msgpack as two separate distributions: a C version
with the traditional libmsgpackc.so library, and a header-only C++
version.
devel/msgpack is now devel/msgpack-c and devel/msgpack-cxx, and its
consumers now point to one or both. Note that it is entirely possible
for both to be required. PORTREVISION bump for all consumers.
In my testing, it's not clear that the MSGPACK option in the mariadb
ports actually does anything. I don't think mariadb is actually linking
against msgpack, even before this commit.
Big features here include introducing winbar (a configurable bar at the
top of each window), cmdheight=0, inclusion of some treesitter parsers
out-of-the-box, and much more.
Full set of changes: https://github.com/neovim/neovim/releases/tag/v0.8.0
Commit b7f05445c0 has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.
There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.
The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.
Approved by: portmgr (tcberner)
After a failed attempt a few months ago, re-enable luajit-openresty
as the default luv backend, and the only neovim backend.
I suspect that it's safe to switch luv unconditionally as well, but I'm
taking a more conservative route at this time and just switching amd64
and i386 to it.
NeoVim is designed specifically for luajit. While it runs on PUC lua,
PUC is not used by upstream and no attempts are made to build for it.
However, luajit is largely a stalled project and is unlikely to ever
see new releases. The OpenResty fork, however, is actively-developed.
It is also the standard neovim lua backend on macOS Homebrew and most
Linux distributions.
luajit-openresty causes lua errors with many nvim plugins. I don't know
why, and until I have time to diagnose it, revert the switch to
hardcoded luajit-openresty. In the short term I'll likely switch to
hardcoding luajit and removing the PUC Lua option.
0.6.0 is an interval update that refines and extends the major lua
overhaul of 0.5.0.
Instead of using options for luajit vs PUC (mainline) lua, use
luajit-openresty unconditionally. devel/luv needs to use the same
backend as NeoVIM, so this commit switches it too.
NeoVIM is designed specifically to run on luajit rather than PUC;
upstream essentially doesn't develop for PUC. However, luajit is
largely unmaintained, locked in an older lua dialect, and unbuildable
on many architectures.
The luajit-openresty fork is faster, more modern, and should work in
more places. It's unclear to me which FreeBSD archs it does or doesn't
work on, so the fallout will have to be addressed once the builders have
a whack at it.
While here, generate the runtime data files automatically. Enumerating
them stopped being fun.
There are major new features in this release, the most notable being the
inclusion of native support for LSP (Language Server Protocol) and a
native parser/AST generator. These can be used to do intelligent code
analysis and completion, without requiring external scripting providers.
Also, the Neovim config file(s) can now be written entirely in lua
instead of (or in addition to) Vimscript.
Previously, py3.9 wasn't recognized at all, and it was checking for python
versions that are no longer supported and don't exist in the ports tree.
No MFH here as py39 doesn't exist in 2020Q4.
Use GCC instead of Clang, Clang-compiled binary crashes at testing. Strangely, it doesn't crash when built with WITH_DEBUG=yes, but that makes debugging hard.
Ports using USES=lua:module or lua:flavors will be flavored. A range of
supported lua versions can be set using XX-YY (or XX-, or -YY, or simply ZZ)
for ports not supporting all lua versions.
USES=lua sets LUA_FLAVOR that needs to be used on all dependencies of
flavored lua ports, in a similar way as PHP or Python flavors.
PR: 245038
Submitted by: andrew tao11 riddles org uk
Reviewed by: mat, kevans, russ haley gmail com
Approved by: mat (portmgr)
Differential Revision: https://reviews.freebsd.org/D16494
The version of LuaJIT in port doesn't work well (or at all) for neovim
on non-x86 architectures. Plus, some users (at least the submitter, who
made a good argument for it) may not want LuaJIT at all.
So, make LuaJIT an OPTION. Enable it by default, and exclude it from
all the archs that LuaJIT+neovim doesn't work on. Fall back instead on
normal Lua.
PR: 238079
Submitted by: Greg V
MFH: 2019Q2
Maintenance release to fix issues found in v0.3.4.
options: properly reset directories on 'autochdir'
Remove MSVC optimization workaround for SHM_ALL
Make SHM_ALL to a variable instead of a compound literal #define
doc: mention "pynvim" module rename
screen: don't crash when drawing popupmenu with 'rightleft' option
look-behind match may use the wrong line number
:terminal : set topline based on window height
:recover : Fix crash on non-existent *.swp