mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
266a1c61b9
14 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
bfredl
|
4703e561d5 | chore: forward-port changes from v0.8.2 release | ||
bfredl
|
d367ed9b23 |
NVIM v0.8.0
BREAKING CHANGES - Remove 'insertmode' 'remap' and 'terse' options - highlight: Rename attributes to match Vim (#19159) - highlight: Error on invalid names and allow '.' and '@' - terminal: Drop winpty, require Windows 10 #18253 - treesitter: Use @foo.bar style highlight groups - treesitter: Do not merge queries by default (#20105) FEATURES - runtime: Enable filetype.lua by default (#19216) - Add `undo!` - Add "prerelease" to version dict - Click support for 'statusline', 'winbar' #18650 - Add preview functionality to user commands - allow cmdheight=0 (EXPERIMENTAL) #16251 - Stdpath('run'), /tmp/nvim.user/ #18993 - Add 'mousescroll' option (#12355) - Allow :wincmd to accept a count (#19815) - Multibuffer preview support for inccommand - Man: Port to Lua (#19912) - api: Ui options relevant for remote TUI - api: Add `nvim_parse_cmd` And `nvim_cmd` - api: Support handling stdin stream in remote ui - api: Add `group_name` to `nvim_get_autocmds` - api: Enable nvim_exec_autocmds to pass arbitrary data (#18613) - api: Support pattern array for exec_autocmds - api: Add `unsilent` to command APIs - api: Add replace_keycodes to nvim_set_keymap (#19598) - api: Add support for :horizontal modifier - api: Add "move" to nvim_input_mouse - api/ui: "ui_watched" option for ui-side extmarks - build: Add_glob_target runs only on changed files #19070 - checkhealth: Check for slow shell #17829 - defaults: Session data in $XDG_STATE_HOME #15583 - defaults: Search selection by * and # in visual mode (#18538) - defaults: Nnoremap & :&&<CR> #19365 - defaults: enable mouse by default (set mouse=nvi) #19290 - diagnostic: Pass diagnostics as data to DiagnosticChanged autocmd (#20173) - docs: Gen_help_html.lua - edit: Insert an unsimplified key using CTRL-SHIFT-V - treesitter: Full support for spelling - filetype: Convert more patterns to filetype.lua - filetype: Remove side effects from vim.filetype.match (#18894) - filetype: Expand environment variables in filetype patterns (#20145) - fs: Add vim.fs functions: parents() dirname() basename() dir() find() normalize() - highlight: Implement CurSearch highlight - highlight: Support scoped @spam.eggs.baked_beans groups - input: Delay all simplifications - l10n: Turkish translations #19441 - l10n: Improve zh_CN translations (#19483) - lsp: Remove capabilities sanitization (#17814) - lsp: Show feedback on empty hover response (#18308) - lsp: Options to filter and auto-apply code actions (#18221) - lsp: Add vim.lsp.buf.format (#18193) - lsp: Add logging level "OFF" (#18379) - lsp: Add LspAttach and LspDetach autocommands - lsp: Add filter to vim.lsp.get_active_clients() - lsp: Option to reuse_win for jump actions (#18577) - lsp: Add a start function (#18631) - lsp: Send didChangeConfiguration after init (#18847) - lsp: Defaults: tagfunc, omnifunc, formatexpr (#19003, #19677) - lsp: Allow passing custom list handler to LSP functions that return lists (#19213) - lsp: Provide feedback if server can't compute rename result (#19546) - lsp: Add range option to code_action; deprecate range_code_action (#19551) - lsp: Disable exit_timeout by default (#19672) - lsp: Add tcp support - lua: Vim.deprecate() #18320 - lua: Vim.cmd() with kwargs acts like nvim_cmd() #18523 - lua: Allow some vim script functions to run in fast callbacks - lua: Measure require in --startuptime - lua: Allow vim.cmd to be indexed (#19238) - lua: Print source locations of lua callbacks (#19597) - lua: Add vim.iconv (#18286) - lua: Vim.ui_attach to get ui events from lua (EXPERIMENTAL) - man.vim: List command flags in "gO" outline #17558 - mappings: Do not replace existing mapping for simplified form - mappings: Allow special keys and modifiers in <Cmd> mapping - mapset: Support restoring "replace_keycodes" and "desc" - mapset: Support restoring Lua callback (#20024) - marks: Restore viewport on jump #15831 - nvim_create_user_command: Pass structured modifiers to commands - pum: Pretend 'mousemoveevent' is set when showing right-click menu - server: Set $NVIM, unset $NVIM_LISTEN_ADDRESS #11009 - server: Instance "name", store pipes in stdpath(state) - term: Add support for libvterm >= 0.2 - terminal: Implement <c-\><c-o> for terminal mode - terminal: Recognize underdouble and undercurl - terminfo: Bump built-in terminfo entries (#18570) - treesitter: Allow customizing language symbol name - treesitter: Add ability to retreive a tree/node given a range - treesitter: Upstream node methods from nvim-treesitter - treesitter: Include language in invalid query error (#14053) - treesitter: Bundle Lua parser and queries - treesitter: Add viml parser and queries - treesitter: Add injections - treesitter: Add vim.treesitter.start(), enable for Lua - treesitter: Bundle :help parser and queries - tui: Query terminal for CSI u support (#18181) - tui: Recognize keypad keys when using kitty keyboard protocol - tui: Try terminfo for [re]set_cursor_color OSC #19255 - tui: Allow grid and host to disagree on ambiguous-width chars (#19686) - tui: Recognize sidescroll events (#19992) - tui: Support 'mousemoveevent' - ui: Add `'winbar'` - ui: Clear message history explicitly with msg_history_clear event - ui: Make right-click menu work properly with ext_multigrid - ui: Allow to set the highlight namespace per window - ui: Use msg_grid based implementation for cmdheight=0 - ui-ext: Make 'mousemoveevent' a ui_option - eval: Make Lua Funcref work as method and in substitute() (#20217) - eval: Input() support any type for "cancelreturn" in a dict (#19357) BUG FIXES - Show autocmd output when F is in shortmess (#18251) - Has() should preserve v:shell_error #18280 - Suppress "is a directory" messages with shortmess 'F' (#18296) - Display global statusline correctly with ext_messages - Correct nlua_wait error message #18867 - Right-click in clickable statusline #19252 - Remote UI may get invalid 'pumblend' value #19379 - Assertion failure when requiring missing module in autocmd - api: Nvim_eval_statusline should validate input #18347 - api: Check error after getting win/buf handle (#19052) - api: Check for inclusive buffer line index out of bounds correctly (#19056) - api: Change default value of 'pattern' in nvim_exec_autocmds (#19115) - api: Do not switch win/buf if getting option in current win/buf (#19383) - api: Make nvim_set_hl(ns=0, ...) redraw screen properly - api: Nvim_set_hl bail out on invalid group name (#20021) - api: Notify dict watchers on nvim_set_var and vim.g setter - api/command: Fargs behavior when no arguments are passed (#19862) - autocmds: Separate command from desc (#18617) - buffer: Disable buffer-updates before removing from window #18933 - build: Missing definitions for sizeof macros #16393 - build: Only pass -municode if MINGW #19049 - build: Strip trailing newline from variable (#19084) - build: Don't disable byte precompilation on debug builds - build: Fails if git is missing #19366 - charclass: Make behavior with empty str match latest Vim (#19749) - checkhealth: Skip vim.health #18816 - ci: Remove 2000ms blocking wait in many plugin/lsp_spec.lua tests - cmd: Make :-tabmove work with modifiers (#18447) - cmdheight=0: Various issues part3 #19816 - cmdline: Fix passing -1 as char - cmdline: Trigger CmdlineEnter and ModeChanged earlier (#19474) - cmdline: Do not trigger completion at wrong time (#19920) - cmdline: Don't send invalid cursor with incsearch and cmdheight=0 - column: Move sign sentinel after inserting/deleting lines (#20400) - completion: Remove wrong FUNC_ATTR_NONNULL_ALL (#19627) - diagnostic: Use nvim_exec_autocmds to trigger DiagnosticChanged (#18188) - diagnostic: Check for negative column value (#18868) - diagnostic: Remove buf from cache on `BufWipeout` (#20099) - diagnostic: Populate data key in DiagnosticChanged autocmd in reset (#20207) - docs: Correct obsolete note about 'writedelay' in dev docs - docs: Remove internal function from docs - edit.c: Indentkeys double indent after "!" #12894 - eval: Check for v:lua when calling callback (#19855) - eval/f_getmatches: Return empty list for invalid win argument (#18893) - events: Make CursorHold behave as documented - ex_cmds: Correct flags for :const (#19387) - exceptions: Restore `did_throw` (#20000) - exmode: Do not throttle messages when pressing enter to print line - extmarks: Make virt_lines always start at 0 virtcol - filetype: Fix and improve filetype patterns - fillchars: Change fallback after setcellwidths() - float: Make `screen*()` functions respect floating windows - float: Fix glitch when making float window with border a split - float: Fix mouse drag position if float window turned to a split - folds: Fix fold regression with :move (#18685) - folds: Fix fold remains when :delete makes buffer empty (#19673) - ftdetect: Source plugins in autogroup (#18237) - gen_vimdoc.py: Handle missing luajit - getchar: Flush screen before doing a blocking wait - handlers: More specific error messages (#16772) - health: Correct shada file path #18603 - health: Handle non-existent log file #18610 - highlight: Use ctermbg/fg instead of bg/fg when use_rgb=false #18982 - highlight: Add missing 'nocombine' to nvim_get_hl apis (#19586) - highlight: Set the window namespace when redrawing statusline - hl: Set Normal hl group sg_attr value #18820 - hl: Return cterm fg/bg even if they match Normal #18981 - inccommand: Do not try to preview an ambiguous command (#18827) - inccommand: Avoid crash if callback changes inccommand option (#18830) - inccommand: Clear cmdpreview state if preview is not shown (#18923) - inccommand: Skip split window if not enough room #18937 - inccommand: Never preview if parsing command failed (#18944) - inccommand: Parse the command to check if it is previewable - inccommand: Deal with unsynced undo (#20041) - input: Allow Ctrl-C to interrupt a recursive mapping even if mapped (#18885) - input: Fix macro recording with ALT and special key (#18917) - input: Use correct grid when restoring cursor for <expr> mapping (#19047) - input: Do no reinterpret mouse keys with ALT modifiers - input: Use click number of last click for mouse drag (#20300) - inspect: Escape identifiers that are lua keywords (#19898) - keywordprg: Default to :help if set to empty string (#19983) - l10n: Improve zh_CN and zh_TW translations (#19969) - log: Back even again - logging: Skip recursion, fix crash #18764 - logging: Make logmsg() thread-safe again - logging: Try harder to resolve Nvim "name" #19016 - lsp: Unify progress message handling (#18040) - lsp: Fix unnecessary buffers being added on empty diagnostics (#18275) - lsp: Fix infinite loop in resolved_capabilities deprecation message (#18333) - lsp: Add missing bufnr argument (#18382) - lsp: Fix rename capability checks and multi client support (#18441) - lsp: Detach spawned LSP server processes (#18477) - lsp: Perform client side filtering of code actions (#18392) - lsp: Only send diagnostics from current buffer in code_action() (#18639) - lsp: Respect global syntax setting in open float preview (#15225) - lsp: Include cancellable in progress message table (#18809) - lsp: Adjust offset encoding in lsp.buf.rename() (#18829) - lsp: Set buflisted before switching to buffer (#18854) - lsp: Fix multi client handling in code action (#18869) - lsp: Small bugs in snippet-parser #18998 - lsp: Pcall nvim_del_augroup_by_name (#19302) - lsp: Abort pending changes after flush when debouncing (#19314) - lsp: Don't attach a client in lsp.start() if there is none (#19328) - lsp: Account for initializing servers in vim.lsp.start (#19329) - lsp: Move augroup define to if statement (#19406) - lsp: Set workspace.configuration capability (#19548) - lsp: Send didOpen if name changes on write (#19583) - lsp: Prevent unexpected position jumps (#19370) - lsp: Avoid ^M character in hover window on Windows (#19640) - lsp: Set end_col in formatexpr (#19676) - lsp: Handle multiple clients with incremental sync (#19658) - lsp: Fix some type annotations in lsp.rpc (#19714) - lsp: Avoid pipe leaks if lsp cmd isn't executable (#19717) - lsp: Handle nil client in onexit callback (#19722) - lsp: Fix nil value error in get_group (#19735) - lsp: Clean the diagnostic cache when buffer delete (#19449) - lsp: When buffer detach remove buffer from client attached buffers (#20081) - lsp: Schedule removal of client object (#20148) - lsp: Support `false` result in handlers (#20252) - lsp: Out of bounds error in lsp.util.apply_text_edits (#20137) - lsp: Use correct function name in deprecated message (#20308) - lsp: Create missing directory before creating file (#19835) - lua: Don't mutate opts parameter of vim.keymap.del (#18227) - lua: Stop pending highlight.on_yank timer, if any (#18824) - lua: Highlight.on_yank can close timer in twice #18976 - lua: Clear got_int when calling vim.on_key() callback (#18979) - lua: Don't leak memory on error - lua: Double entries in :lua completion #19410 - lua: Make it possible to cancel vim.wait() with Ctrl-C (#19217) - lua: Make ui_attach()/ui_detach() take effect immediately (#20037) - lua: Make vim.str_utfindex and vim.str_byteindex handle NUL bytes - lua: Free vim.ui_attach callback before lua close (#20205) - lua: Fix architecture-dependent behavior in usercmd "reg" (#20384) - mac: Use same $LANG fallback mechanism as Vim - mac: Add CoreServices to flake.nix #18358 - man.vim: Q in "$MANPAGER mode" does not quit #18443 - maparg: Remove double allocation (#20033) - mappings: Fix double-free when unmapping simplifiable Lua mapping - mapset: Remove existing abbreviation of same lhs (#20320) - mark: Set mark fnum from buffer (#19195) - mark: Mark without a view restores at topline #19224 - mark: Fix unexpected cursor movements (#19253) - mark: Give correct error message when mark is in another buffer (#19454) - menu: Make :menu still print header when there are no menus - messages: Add color when showing nvim_echo in :messages history - messages: Do not crash on cmdheight=0 and g< redisplay - messages: Validate msg_grid before silent! message with cmdheight=0 - mksession: Don't store floats in session #18635 - mouse: Click on global statusline with splits (#19390) - mouse: Fix using uninitialized memory with K_MOUSEMOVE (#19480) - mpack: Make sure a `bool` always is a `bool` - normal: Fix segfault with bracket command jumping to a mark - options: Properly free string options (#19510) - options: Mark `winhighlight` as list style (#19477) - packaging: Remove excess forward slash in Wix Patch (#18121) - paste: Ignore mappings in Cmdline mode (#18114) - path: Path_is_url returns false for "foo:/" #19797 - powershell: Filter ":!" commands with args #19268 - pum: Make right drag in anchor grid to select work in multigrid UI (#19382) - query: Fix unnatural order for inherits in treesitter queries (#20298) - redraw: Make sure :redraw! redraws command line - redraw: Handle switching to a tabpage with larger p_ch value - redraw: Avoid unnecessary redraws and glitches with floats+messages - redraw: Make redrawdebug=nodelta handle all the cases - rpc: Break nvim_error_event feedback loop between two nvim instances - runtime/genvimvim: Omit s[ubstitute] from vimCommand #18480 - screen: Restart win_update() if a decor provider changes signcols (#18768) - screen: Check for col instead of vcol when drawing fold (#19572) - session: Respect sessionoptions=terminal #19497 - shared: Avoid indexing unindexable values in vim.tbl_get() (#18337) - signs: Priority of extmark signs (#19718) - source: Make changing 'shellslash' change expand() result - source: Fix expand('<sfile>') no longer works for Lua - spell: Make setting 'encoding' clear word list - spell: Correct spell move behavior without "noplainbuffer" (#20386) - startup: Nvim with --clean should not load user rplugins - substitute: Subtract number of backslashes later - tabpage: Check if ROWS_AVAIL changed for resize (#19620) - terminal: Invalid pointer comparison #18453 - terminal: Do not trim whitespace that is actually in the terminal (#16423) - terminal: Scrollback delete lines immediately #18832 - terminal: Coverity USE_AFTER_FREE #18978 - terminal: Crash if TermClose deletes own buffer #19222 - terminal: Avoid reading over the end of cell.chars (#19580) - terminal: Skip aucmd_win when checking terminal size (#19668) - terminal: Adopt altscreen test for libvterm 0.2 changes - terminfo: Disable smglr for vtpcon and conemu (#18855) - termopen: Avoid ambiguity in URI when CWD is root dir (#16988) - tests: Fix some screen.lua warnings - tests: Fix some issues with ui/inccommand_spec.lua causing slowness - tests: Unreliable parser_spec #18911 - tests: Check for EOF on exit of nvim properly - tests: Missing clear() #18927 - tests: Remove misleading $TEST_PATH segment #19050 - tests: Remove irrelevant usage of display-=msgsep - tests: Use pending_c_parser when needed - tests: Indicate in test logs when nvim exit times out - tmpdir: Invalid tempname() if username has slashes #19323 - treesitter: Create new parser if language is not the same as cached parser (#18149) - treesitter: Bump match limit up - treesitter: Offset directive associates range with capture (#18276) - treesitter: Correct region for string parser (#18794) - treesitter: New iter if folded - treesitter: Don't error when node argument of predicate is nil (#19355) - treesitter: Free memory on removing parser (#19933) - treesitter: More efficient node:root() - treesitter: Make it get_captures_at_position - treesitter: Do not link @error by default - treesitter: Don't support legacy syntax in start() - treesitter: Use the right loading order for base queries (#20117) - treesitter: Prevent endless loop on self-inheritence - treesitter: Return full metadata for get_captures_at_position (#20203) - ts: Do not clobber spelloptions (#20095) - tui: Update modifyOtherKeys reporting (#18158) - tui: Disable extended keys before exiting alternate screen (#18318) - tui: Piping nodejs to nvim breaks input handling #18932 - tui: Resize at startup #17795 - tui: Add fixups for hterm family #19078 - tui: Handle padding requirements for visual bell (#20238) - ui: Require window-local value to show winbar on floating windows (#18773) - ui: Do not call showmode() when setting window height (#18969) - ui: Set redraw_cmdline when setting window height (#19630) - ui: Don't allow decor provider with ns_id==0 - ui: Ui compositor does not correctly free event callbacks - ui: Allow redrawing statusline when msgsep is used (#20337) - ui: Redraw end of buffer if last line is modified (#20354) - unittests: Coredump when running unit tests #18663 - usercmd: Also check for whitespace after escaped character (#19942) - version.c: Mark N/A vim patches #18587 - vim.ui.input: Accept nil or empty "opts" #19109 - window: Close floats first when closing buffer in other tab (#20284) - window: Fix equalization with cmdheight=0 (#20369) - windows: Stdpath("state") => "nvim-data" #18546 - windows: Exepath, stdpath return wrong slashes #19111 - winhl: Do not crash when unsetting winhl in just opened window - Make :undo! notify buffer update callbacks (#20344) - eval: Make Vim functions return inner window width and height (#19743) BUILD SYSTEM - Bump Doxyfile to minimum required version 1.9.0 #18118 - Bump msgpack to 4.0.0 - Enable EXITFREE on Debug builds (#17783) - Add formatting targets for c and lua files (#19488) - clang-format: Align with project style #18192 - clint: Remove all python2-isms with pyupgrade - clint: Remove "function size is too large" warning - clint: Remove rules for includes, whitespace, tabs #18611 - cmake: Simplify and speed up the uninstall target - cmake: Simplify def_cmd_target function - cmake: Use glob_wrapper instead of file(GLOB in main CMakeLists - cmake: Fix static `libintl` test on macOS - deps: Bump LuaJIT, Luv and libuv - deps: Support universal builds on macOS - deps: Bump tree-sitter to v0.20.7 (#20067) - deps: Bump tree-sitter parsers - deps: Bump required libvterm to v0.3 (#20222) - deps: Require libtermkey version 0.22 - deps: update neovim-qt, win32tools.zip PERFORMANCE - Only redraw for CurSearch when it is currently in use - highlight: Allocate permanent names in an arena for fun and cache locality - highlight: Use binary search to lookup RGB color names - map: Visit only one hash bucket instead of all, like an actual hash table - memory: Get rid of extraneous heap allocations - memory: implement arena memory allocation with a shared freelist - memory: Use an arena for RPC decoding and some API return values - messages: Don't call ui_flush() per message line in various places - treesitter: Use a reuse list for query cursors - ui: Reduce allocations when encoding and decoding "redraw" events - ui: Avoid ui_flush() work in headless mode REFACTOR - checkhealth: Rename to vim.health, move logic to Lua #18720 - Add pure attribute to pure functions - Replace char_u variables and functions with char - Enable -Wconversion warning for all Nvim source files - Add warnings for deprecated functions (#18662) - Change type of linenr_T from long to int32_t - Use nvim_get/set_option_value for vim.{b,w}o - Remove functions marked for deprecation in 0.8 (#19299) - Rename function prefix mb to the more accurate utf_cp (#19590) - Remove some unused includes - Change remaining sourcing_name/sourcing_lnum to exestack - Change FALSE/TRUE to false/true - api: Use a hashy hash for looking up api method and event names - api: Use a unpacker based on libmpack instead of msgpack-c - api: restructure api/vim.c and api/private/helpers.c code in separate files - api: Remove redundant fields of CmdParseInfo - aucmd: Call define_autocmd() directly for default autocmds - ci: Cleanup release.yml #19132 - cmd: Format do_one_cmd() - cmd: Hoist out some code into functions - cmd: Unify execute_cmd with do_one_cmd - decor: Use decor levels properly - drawline.c: Factor out utf8 multibyte check - eval: Use Hashy McHashFace instead of gperf - eval.c: Resolve all clint issues (#19774) - eval/funcs.c: Resolve all clint errors - events: Remove unnecessary fudging of updating_screen - ex_cd: Add an early return to fix clint warning - ex_docmd.c: Resolve most clint errors (#19775) - filetype: Allow vim.filetype.match to accept buf and filename (#19114) - highlight: Make hlattrs2dict always use pre-allocated dict - log: Simplify log_path_init #18898 - log: Use msg_schedule_semsg #18950 - lsp: Remove redundant client cleanup (#18744) - lsp: Make the use of local aliases more consistent - lsp: Use autocmd api (#19407) - lsp: Factor out read_loop function - lsp: Encapsulate rpc uv handle - lsp: Extract rpc client from rpc.start - lua: Replace hard-coded gsub with vim.pesc() (#18407) - lua: Reformat with stylua 0.14.0 (#19264) - lua: Git-blame-ignore stylua update PR (#19273) - lua: Replace vim.cmd use with API calls (#19283) - map: Simplify free_all_mem handling - map: Statically initialize maphash array - map: Simplify add_map params - normal: Convert function comments to doxygen format - object: Get rid of redundant FIXED_TEMP_ARRAY - ops: Doxygen docstrings #17743 - option: DRY get/set option value #19038 - plines: Use a struct for chartabsize state - provider: Use list comprehension #19027 - regexp_nfa.c: Match where Vim calls fopen() (#18778) - runtime: Convert dist#ft functions to lua (#18247) - runtime: Convert more dist#ft functions to lua (#18430) - runtime: Convert the remaining dist#ft functions to lua (#18623) - runtime: Port remaining patterns from filetype.vim to filetype.lua (#18814) - runtime: Refactor filetype.lua (#18813) - runtime: Port scripts.vim to lua (#18710) - setcellwidths: Use TV_LIST_ITEM_NEXT properly - signs: Handle non-sign attrs separately (#19784) - tests: Introduce testprg() - treesitter: Get_{nodes,captures}_at_{position,cursor} - typval: Change FC_CFUNC abstraction into FC_LUAREF - ui: Simplify stdin handling - uncrustify: Format all c code under /src/nvim/ - vim.opt: Remove del arg - vim.opt: Unify vim.bo/wo building - vim.opt: Optimize append/prepend/remove - Format runtime with stylua |
||
bfredl
|
333ba6569d |
NVIM 0.7
BREAKING CHANGES * Support for Python 2 is dropped. For Python 3, the minimum supported version is 3.6. Legacy `:pythonx` commands are still available, and always uses the python 3 provider. * api: Existing usages of `nvim_buf_set_text` that use negative line numbers will be off-by-one. * highlight: signature of `vim.highlight.range` was changed. * input: distinguish between some input keys which previously were synonyms. This will break some exiting mappings. - `<cr>`, `<tab>` and `<esc>` are no longer considered equivalent to `<c-m>`, `<c-i>` and `<c-[`> respectively. In case the terminal or GUI supports distinguishing these keys, these can now be mapped separately. But even if the terminal only can send one code you might still need to change what variant is used in the config. FEATURES Core APIs: * api: add support for lua function & description in keymap * api: add api and lua autocmds * api: nvim_clear_autocmd * api: pass args table to autocommand callbacks * api: remove Lua autocommand callbacks when they return true * api: implement nvim_{add,del}_user_command * api: implement nvim_buf_get_text * api: add nvim_get_option_value * highlight: ns=0 to set :highlight namespace * highlight: support for blend in nvim_set_hl * api: add strikethrough, nocombine to set_hl * api: relax statusline fillchar width check Lua: * lua: add vim.keymap * lua: add vim.spell * lua: add proper support of luv threads * lua: make :lua =expr print result of expr * lua: handle lazy submodules in `:lua vim.` wildmenu completion * lua: add notify_once() * lua: add support for multiple optional types in vim.validate * lua: show proper verbose output for lua configuration * lua: more conversions between LuaRef and Vim Funcref * lua: support converting nested Funcref back to LuaRef * call __tostring on lua errors if possible before reporting to user * filetype.lua * filetype.lua: add support for files under .git * filetype.lua: add support for patch files * filetype.lua: add support for tmux.conf files * filetype.lua: add support for txt files * filetype.lua: Add typescript extension to filetype detection * filetype.lua: fix .cc file not detected * filetype.lua: fix .env file not detected * filetype: convert patterns for mail buffers * filetype: support scripts.vim with filetype.lua UI and decorations: * decorations: support signs * extmarks: add strict option * api: expose extmark more details * api: expose extmark right_gravity and end_right_gravity * use nvim_buf_set_extmark for vim.highlight * statusline: support multibyte fillchar * add support for global statusline Treesitter: * ui: allow conceal to be defined in decorations and tree-sitter queries * tree-sitter: allow Atom-style capture fallbacks * treesitter: add more default groups to highlight map * treesitter: multiline match predicates * treesitter: set allocator when possible * ts: add support for multiline nodes in get_node_text * ts: expose minimum language version to lua * runtime: add query filetype LSP and diagnostic: * diagnostic: add "code" to the diagnostic structure * diagnostic: allow retrieving current diagnostic config * lsp,diagnostic: open folds in jump-related functions * lsp: add buf_detach_client * lsp: add handler for workspace/workspaceFolders * lsp: dynamically generate list title in response_to_list * lsp: enable default debounce of 150 ms * lsp: skip or reduce debounce after idle * lsp: use `vim.ui.select` for selecting lsp client Initial work to support remote TUI (and ui client library): * ui_client: connect to remote ui * ui_client: implement event handlers * ui_client: handle resize events * ui_client: implement async paste handling * ui_client: pass user input to remote server * --headless: add on_print callback to stdioopen * add autocommand event when search wraps around * add vim.tbl_get * autocmd: add Recording autocmds * autocmd: populate v:event in RecordingLeave * completion: support selecting item via API from Lua mapping * eval/method: partially port v8.1.1993 * eval/method: partially port v8.1.1996 * eval/method: partially port v8.1.2004 * eval: partially port v8.2.0878 * eval: port emsg from v8.2.3284 * events: add DirChangedPre * events: support SIGWINCH for Signal event * hardcopy: check gui colours for highlights first * highlight: support color names for cterm * ignore nore on <Plug> maps * input: delay some conversions to vgetc() * input: enable <tab>/<c-i>, <cr>/<c-m>, <esc>/<c-[> pairs unconditionally * keymap: add F38-F63 keys * keymap: return nil from an expr keymap * mappings: considering map description when filtering * provider: remove support for python2 and python3.[3-5] * remote: add basic --remote support * runtime: import cleanadd.vim from Vim * runtime: include Lua in C++ ftplugin * runtime: new checkhealth filetype * term: use vterm_output_set_callback() * test: use nvim_exec in helpers.source() * trigger ModeChanged for terminal modes * tui: add error logging * tui: add support for `CSI 4 : [2,4,5] m` * tui: enable CSI u keys * vim-patch.sh: support additional args for -s Performance Improvements * lsp: request only changed portions of the buffer in changetracking * only redraw concealed line if cursor has moved horizontally * pre-compile embedded Lua source into bytecode * screen: reduce cursorline redrawing when jumping around * treesitter: cache query parsing * api: elide luaref copy when setting 'callback' in nvim_set_keymap BUG FIXES * --headless: do not block on press-enter prompts when no UI * <Nop> not shown in :map commands * add forkpty for SunOS variants * add STRNLEN compatability macro * anonymous sid not working * api, lua: return NIL on failure to find converted function * api/nvim_win_call: share common win_execute logic * api: allow empty list for cterm in nvim_set_hl * api: allow nvim_buf_set_extmark to accept end_row key * api: convert blob to NUL-terminated API string * api: correctly handle negative line numbers for nvim_buf_set_text * api: correctly pass f-args for nvim_create_user_command * api: delete all autocmds with the same ID * api: force redefinition of user commands by default * api: highlight attribute for underline * api: improve autocmd error handling * api: include event in get_autocmds * api: make nil value in nvim_set_option_value clear local value * api: nvim__set_hl_ns causes extra redraws * api: nvim_win_set_cursor() redraw for cursorline and statusline * api: re-route nvim_get_runtime_file errors * api: use changedir_func() in nvim_set_current_dir() * api: validate command names in nvim_add_user_command * api: validate user_command name * append test for checking zero width node range * aucmd_win: always make aucmd_win the last window * aucmd_win: ensure aucmd_win stays floating * autocmd: clean up autocmds only when needed * autocmd: restore autocmd showing behavior * autoload variables not loaded with vim.g & nvim_get_var * bounds check for underdot * build: check for empty value of LUAC_PRG * build: check that LuaJIT has required modules for compilation * build: install luajit modules on windows * channel: fix channel consistency * check for interrupt in nvim_echo, write_msg and nlua_print * checkhealth: make provider checkhealth output more consistent * ci/backport: check for event_name == "pull_request_target" * ci: provide necessary permissions for calling workflow * clang/'Dead store': do not assign endcol * close floating windows when calling win_close() * completion: prevent K_LUA from closing pum * completion: update submode message when selecting from API * correct vertical dragging room calculation with global statusline * coverity/175977: big parameter passed by value * coverity/188749: nullify pointer to fix use-after-free * coverity/340720: error if nvim_eval_statusline given invalid winid * coverity: dead code and operands don't affect result * decorations: do not put empty virt_text * define NAME_MAX from _XOPEN_NAME_MAX * diagnostic: allow setting arbitrary config values * diagnostic: assert that diagnostics have line number and column * diagnostic: clamp diagnostics on negative line numbers * diagnostic: escape special chars in file names * diagnostic: improve validation for list arguments * diagnostic: make `open_float` respect global diagnostic options * diagnostic: only set default handler config if unset * diagnostic: resolve nil opts tables * diagnostic: respect "if_many" source option for virtual text * diagnostic: set effective buffer number for DiagnosticChanged autocmd * diagnostic: set effective buffer number in autocmd (again) * diagnostic: use botright copen for qflist * diff: make algorithm work for vim.diff * do not cast offset to char_u * do not pass aucmd to the callback * do not save K_EVENT as lastc in Insert mode * docs: add bufnr and user_data to diagnostic-structure * docs: spelling in new underlines docs * don't include pty.h on SunOS * don't use cfsetspeed, use i and o variants * enable filetype detection and syntax highlighting with --clean * eval/method: add missing method support for existing built-ins * eval: v:lua support for `-` in module names * event-loop: call vpeekc() directly first to check for character * event-loop: check if executed register has ended * event-loop: duplicate display updating logic in vgetorpeek() * events: make v:event readonly in more events * ex_normal: spam \n in Ex mode only if in Cmdline mode * extmarks: fix signs * extmarks: splice extmarks on accepting spell * filetype.lua: always return a string in getline helper function * filetype: expand tildes in filetype patterns * filetype: fix foam pattern detection * filetype: match negative priority patterns after extensions * filetype: match on <afile> rather than <abuf> * filetype: normalize slashes in file paths * filetype: set default ft_ignore_pat in filetype.lua * float: do not switch window before deleting last listed buffer * float: don't always switch window when deleting last listed buffer * float: handle buffer deletion with floating windows * float: make laststatus=1 behave consistently with floating windows * healthcheck: handle empty reports * health: do not run external processes in a shell * highlight: accept NONE as a color name * highlight: allow globals to be cleared * highlight: always update window highlight if highlight changed * inccommand: do not change reg_prev_sub when previewing * input: do not translate scroll keys into multiclicks * input: fix clearing of reg_executing * input: never escape CSI bytes * input: put modifiers back into typeahead buffer when needed * input: remove reinterpreted ALT/META chords from recorded macro * keymap: don't coerce false to '' * keywordprg: retain terminal buffer after K * line continuation: set growsize to correct value * lsp and diagnostic highlight priority * lsp: always split text edits on \r, \r\n, and \n * lsp: always use target bufnr in location handler * lsp: avoid attaching to unloaded buffers * lsp: avoid nil workspace/symbol query * lsp: call config on_exit handler before context is cleared * lsp: correct prefix when filterText is present * lsp: correctly align start and end range to codepoints during incremental sync * lsp: create lsp requests with position offsets considering client encoding * lsp: ensure pending changes are flushed on skipped debounce * lsp: explicitly pass bufnr in didSave handler * lsp: fetch offset_encoding from client in references * lsp: fix `nil`-index behavior for UTF-8 in `_str_*index_enc` methods * lsp: fix applying multiple out-of-range TextEdits * lsp: fix lookup of boolean values in workspace/configuration * lsp: forward offset_encoding in rename handler * lsp: forward offset_encoding to apply_text_edits * lsp: handle insertion of previous line * lsp: handle negative activeSignature in signatureHelp * lsp: only send valid params in executeCommand * lsp: pass offset_encoding in formatexpr() * lsp: progress handlers should return vim.NIL on error * lsp: resolve bufnr for get_lines * lsp: resolve nil bufnr * lsp: respect all of 'fixeol', 'eol', and 'binary' applying edits * lsp: set tabSize from 'shiftwidth', not 'softtabstop' * lsp: start incremental sync range at previous newline character * lsp: strictly enforce passing offset encoding * lsp: suppress ContentModified errors from UI * lsp: use "text" filetype for plaintext * lsp: use botright copen for all handlers * lua: don't use nlua_error when exiting early * lua: print multiple return values with =expr * lua: restore priority of the preloader * lua: stricter type check when calling API function * make mode() return correct value in ex mode * man.vim: fix search function on some systems * man.vim: support calling :Man without a section again * msgpack#strptime: use calendar.timegm to get seconds since epoch * ops: str_to_reg passing NULL to memcpy * options: disallow empty 'fdc' and 'scl' * paste: avoid edges cases caused by empty chunk * paste: deal with eol and eof in Visual mode * paste: deal with trailing new line in chunk * paste: don't move cursor past the end of pasted text in Normal mode * paste: escape control characters in Cmdline mode * paste: use getcmdtype() to determine whether in cmdline mode * prompt: add missing changes from v8.1.0036 * pty_process_win/wait_eof_timer_cb: also check for proc->out.did_eof * pum_redraw: use grid_puts_len() to truncate the text * PVS/V1019: compound assignment expression is used inside condition * PVS/V560: ignore false "conditional expression is always false" * PVS/V583: the '?:' operator always returns one and the same value * query.lua: check empty table for lines * quickfix: avoid O(N^2) when filling from string typval * remote: make compile again * remote: report connection error, missing return values * remote: report on missing wait commands, typecheck lua results * remote: respect silent in error reporting * remote: use STATIC_CSTR_AS_STRING * resolve nil arguments to API functions * respect os_proc_children rv of pid not found * runtime: add missing release metadata * runtime: add syntax file for query * runtime: check markdownError before syn-clear * screen: do not do syntax highlighting at filler or folded lines * screen: do not draw filler lines post eof if already at last row * screen: do not update syntax_last_parsed when drawing folded line * screen: don't put empty sign text in line number column * screenpos, float: add top and left border adjustment * screen: truncate double-width character correctly * screen: truncate when overwriting right half of a double-width char * set nested before executing callback * set RedrawingDisabled before entering aucmd_win * signcol: always trigger a redraw * signcol: handle edge case with maximum value * signcol: update cursor when signcol changes * skip libutil on SunOS * substitute: properly check for empty command line * syntax.c: correct hunk from Vim patch 8.0.0647 * syntax: remove trailing spaces in vim.vim * tabpage: correct check for failure to close window * termdebug: handle exiting during startup properly * terminal: correctly forward mouse events * terminal: fix resize crash with pending scrollback * terminal: ignore left-release mouse action * terminal: return early if there are no invalid rows * terminal: use coladvance() to calculate buffer cursor position * test: only use buffer completion in popupmenu timer test * tests: update legacy tab switch test to be sane * translation: po file for Russian * translation: po file for Ukrainian * ts: escape lang when loading parsers * tui: avoid using uninitialized memory in kitty * tui: correct CSI sequence * tui: end streamed paste correctly when key buffer is empty * tui: remove `ESC NUL` forced escape * ui: close floating window on BufLeave event * ui: inccomand performance degradation * ui: make window resize commands manage cmdheight * update last cursor on first CursorMoved * uri: change scheme pattern to not include the comma character * use normal! <C-L> in default <C-L> mapping * vim-patch.sh: fix N/A files patterns * win_close: count the window the be closed instead of curwin * win_split_ins: do not fail when oldwin is not valid |
||
Björn Linse
|
5c1b8b77c5 | fix(runtime): add missing release metadata | ||
Björn Linse
|
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) ( |
||
Björn Linse
|
62d67de598 | version bump | ||
Maltimore
|
4d1e7e5b12
|
Update nvim.appdata.xml to reflect version 0.4.4 (#13754)
Set release date based on commit
|
||
Justin M. Keyes
|
f460bae441 | release.sh [ci skip] | ||
Justin M. Keyes
|
60e0000c5d | nvim.appdata.xml [ci skip] | ||
Justin M. Keyes
|
1f76c4af13 | nvim.appdata.xml [ci skip] | ||
Justin M. Keyes
|
9915b5497b | version bump | ||
Justin M. Keyes
|
81c3fa6c9d | doc | ||
Juraj Fiala
|
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 |
||
pierre
|
92806827a9 |
appimage: Include metadata #9320
closes #9320 closes #9128 |