Showing content from https://github.com/neovim/neovim/releases/tag/v0.9.0 below:
Release NVIM 0.9.0 · neovim/neovim · GitHub
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3
Notable changes
For a summary of notable changes, see runtime/doc/news.txt or just :help news
within nvim.
Install Windows Zip
- Download nvim-win64.zip
- Extract the zip.
- Run
nvim-qt.exe
MSI
- Download nvim-win64.msi
- Run the MSI
- Search and run
nvim-qt.exe
or run nvim.exe
on your CLI of choice.
macOS
- Download nvim-macos.tar.gz
- Run
xattr -c ./nvim-macos.tar.gz
(to avoid "unknown developer" warning)
- Extract:
tar xzvf nvim-macos.tar.gz
- Run
./nvim-macos/bin/nvim
Linux (x64) AppImage
- Download nvim.appimage
- Run
chmod u+x nvim.appimage && ./nvim.appimage
Tarball
- Download nvim-linux64.tar.gz
- Extract:
tar xzvf nvim-linux64.tar.gz
- Run
./nvim-linux64/bin/nvim
Other
SHA256 Checksums
fa93f06bec111fea6f316f186b96e19ba289a2dca2d0731e23597398b7397c8f nvim-linux64.tar.gz
0e1e6d53c6c8055de23bdb33f60bb64af0baf11390669c1b40ecbbf2c7a34547 nvim.appimage
b53d0e2662a5003e335a410247ff2c1df7cb3c36c00db14e08551437e69bcca3 nvim.appimage.zsync
ba571c320c9ba98f1f78a9656b0b1fd21aa5833a61054f377c15c09366b96aca nvim-macos.tar.gz
9efe2ff55a13edf32afcfe51194d8e85bb62be7f09ff86384ffb0b8eed2bf716 nvim-win64.zip
adc92c40ea4552dd57898a5f4ec1e635f65ba133340bc9b59c73165cc4cae1bb nvim-win64.msi
Changes since 0.8.0 Breaking
- Remove hardcopy
- Make iconv a non-optional dep
- Remove has("debug") (#22060)
- Make libintl a required dependency
- Rename vim.pretty_print => vim.print
- Rename sanitizer options from CLANG_* to ENABLE_*
- Remove the .deb release (#22773)
- column: Ensure 'statuscolumn' works with virtual and wrapped lines
- cscope: Remove
- defaults: Change default 'commentstring' value to empty (#22862)
- edit: Remove old c implementation of hebrew keymap
- editorconfig: Change editorconfig_enable to editorconfig
- exepath: Prefers extensionless for powershell
- health: Remove deprecated health.lua
- lsp: Add rule-based sem token highlighting (#22022)
- lua: Execute Lua with "nvim -l"
- messages: Graduate the 'msgsep' feature
- options: Deprecate paste, remove pastetoggle (#22647)
- rpc: Preseve files when stdio channel is closed (#22137)
- runtime: Remove filetype.vim (#20428)
- treesitter: Remove g:ts_highlight_lua (#22257)
- treesitter: Remove silent option from language.add()
- treesitter: Consolidate query util functions
- treesitter: Remove deprecated show_tree func
- treesitter: Deprecate top level indexes to modules (#22761)
- treesitter: Rename help parser to vimdoc
Features
- Added support for
@generic
to lua2dox.lua
- Added support for optional params to lua2dox
- Added support for specifying types for lua2dox
- Mention ":help news" in intro #20674
- ":write ++p" creates parent dirs #20835
- Add vim.secure.read()
vim.inspect_pos
, vim.show_pos
, :Inspect
- $NVIM_APPNAME #22128
- Try to recover from missing tempdir #22573
- Add
vim.filetype.get_option()
- Add
vim.treesitter.language.get_filetypes()
(#22643)
- Allow function passed to defaulttable to take an argument (#22839)
- api: Nvim_select_popupmenu_item support cmdline pum (#20652)
- api: Add command name to Lua command callback opts
- api: Show more exception info
- api: More fields in nvim_list_uis
- api: Add filetype option nvim_get_option_value
- api: Add nvim_get_hl (#22693)
- api: Nvim_exec2(), deprecate nvim_exec() #19032
- api: Evaluate 'statuscolumn' with nvim_eval_statusline()
- api: Set statuscolumn line number in nvim_eval_statusline()
- aucmd_win: Allow crazy things with hidden buffers (#21250)
- checkhealth: Improve treesitter report
- checkhealth: Check runtime ($VIMRUNTIME)
- checkhealth: Use "help" syntax, avoid tabpage #20879
- clipboard: Copy to system clipboard in tmux when supported (#20936)
- clipboard: Added wayclip support (#21091)
- diagnostic: Add
suffix
option to open_float()
(#21130)
- diagnostic: Add
suffix
option to virt_text
config (#21140)
- diagnostic: Don't open quickfix/loclist if no diagnostics #21397
- diagnostic: Vim.diagnostic.is_disabled() #21527
- diagnostic: Add support for tags
- docs: Nested lists in HTML, update :help parser
- docs: Format parameters as a list #20485
- docs: Update parser, HTML gen #20720
- docs-html: Try to use tags for ToC headings
- editorconfig: Add builtin EditorConfig support
- editorconfig: Add editorconfig syntax file
- editorconfig: Allow editorconfig to be toggled dynamically
- exrc: Use vim.secure.read() for 'exrc' option
- exrc: Support .nvim.lua (#21436)
- extmarks: Allow preventing spellchecking with spell = false
- extmarks: Extend nvim_buf_get_extmarks()
- filetype: Fall back to file extension when matching from hashbang (#22140)
- float: Open float relative to mouse #21531
- fs: Add opts argument to vim.fs.dir()
- gen_help_html.lua: Remove old AWK scripts
- health: Detect tmux RGB support via
client_termfeatures
- help: Highlighted codeblocks
- highlight: Add DiagnosticOk (and associated) highlight groups (#21286)
- highlight: Define the concept of altfont as a (c)term rendering attribute
- l10n: Update Turkish translations (#20444)
- l10n: Update zh_CN translations (#21085)
- lsp: Add bufnr option to lsp.start (#20473)
- lsp: Support window/showDocument (#19977)
- lsp: Run handler in coroutine to support async response (#21026)
- lsp: Support set title in lsp relate floatwindow (#21110)
- lsp: Support willSave & willSaveWaitUntil capability (#21315)
- lsp: Initial support for semantic token highlighting
- lsp: Highlight semantic token modifiers (#21390)
- lsp: Add function to get semantic tokens at cursor
- lsp: Add function to clear codelens (#21504)
- lsp: Show active clients in :checkhealth vim.lsp (#21670)
- lsp: Add triggerKind option for vim.lsp.buf.code_action (#21905)
- lsp: Implement workspace/didChangeWatchedFiles (#21293)
- lsp: Implement workspace/didChangeWatchedFiles (#22405)
- lsp: Overwrite omnifunc/tagfunc set by ftplugin #22267
- lsp: Render markdown in docs hover #22766
- lsp: Create default link from @lsp.type.comment to Comment (#22888)
- lua: Send "--" literally to Lua "-l" script
- lua: Exit 1 on Lua "-l" script error
- lua: Execute stdin ("-") as Lua
- lua: Store "nvim -l" scriptname in _G.arg[0]
- lua: Low-level interpreter mode (nvim -ll)
- lua: Make sure require'bit' always works, even with PUC lua 5.1
- lua: Add semver api
- lua: Omnifunc for builting lua interpreter
- lua: Use vim.empty_dict() for empty return value in new api functions (#22737)
- lua: Allow
:=expr
as a shorter version of :lua =expr
- lua: Add
vim.loader
- lua-api: Avoid unnecessary allocations (#19877)
- man: Add health check
- man.lua: Support spaces in manpage names
- message: Avoid spam on failed os_msg
- packaging: Add start menu and desktop shortcuts on Windows
- provider: Add support for Yarn node modules on Windows (#21246)
- secure: Add
:trust
command and vim.secure.trust() (#21107)
- spell: Support nospell in treesitter queries
- spell: Also source
spell/LANG.lua
when setting spelllang
(#22111)
- test: Add Lua forms for API methods (#20152)
- treesitter: Add vim.treesitter.show_tree() (#21322)
- treesitter: Add 'lang' option to show_tree() (#21341)
- treesitter: Show filetype associated with parser (#17633)
- treesitter: Allow capture text to be transformed
- treesitter: Add metadata option for get_node_text
- treesitter: Respect metadata[id].range for offset!
- treesitter: Playground improvements
- treesitter: Add filetype -> lang API
- treesitter: Upstream foldexpr from nvim-treesitter
- treesitter: Expand the API
- treesitter: Add :InspectTree command (#22477)
- treesitter: Bundle query parser and queries (#22483)
- treesitter: Use upstream format for injection queries
- tui: Run TUI as external process
- tui: Graduate the +tui feature
- tui: Support altfont mode in tui.c
- ui: Add support to display a title in the border of a float (#20184)
- ui: Add 'statuscolumn' option
- ui: Restore has('gui_running')
- ui: Add scroll_delta to win_viewport event #19270
- vim-patch: Mention original author #20772
- vim.diff: Allow passing an integer for linematch
- vim.fs: Pass path to find() predicate, lazy evaluate #22378
- vim.fs: Improve normalize
- vim.gsplit: Gain features of vim.split
- vim.version: More coercion with strict=false
- web: Syntax highlighting via highlight.js
- window/ui: Add splitkeep option (#19243)
- windows: Show icon in terminal titlebar, taskbar #20607
Performance
- column: Only build fold/sign column when present in 'statuscolumn'
- completion: Use one call to globpath() for .vim and .lua #21942
- diagnostic: Use api variable and improve validate (#21111)
- lsp: Update semantic tokens algorithm for parsing modifiers (#21383)
- lsp: Only redraw the windows containing LSP tokens
- lsp: Better binary search mid calculation in semantic token (#22607)
- statuscolumn: Only fill click defs array once per redraw (#21884)
- statusline: UI elements are always redrawn on K_EVENT
- treesitter: Smarter languagetree invalidation
- treesitter: More efficient foldexpr
- ui: Mitigate redraw latency regression from TUI refactor
Bug Fixes
Build System
- Remove unused variable CMAKE_C_COMPILER_ARG1
- Remove code for cross-compilation
- Remove url for 32-bit winyank
- Remove unnecessary translation-related code
- Rely on builtin cmake downloading rather than custom script
- Define EP_PREFIX property
- Only generate compilation database for the nvim target (#20449)
- Remove EXITFREE for debug builds
- Generate compilation database for older cmake versions
- Add clang-tidy configuration file (#15601)
- Fix incorrect clang-tidy identifier rules (#20650)
- Rely on default cmake installation if possible
- Give example on complex regexes
- Preprocess vim patches with uncrustify #20786
- Copy each treesitter parser library individually #20797
- Fix plural messages missing from .po files (#20830)
- Make update-po support optwin.vim (#20840)
- Remove python linting #20851
- Add EXCLUDE option to add_glob_target
- Always ignore user's cmake preset (#20935)
- Allow IWYU to fix includes for all .c files
- Restrict
git describe
to top level source directory (#20993)
- Fix help tags generation when SHELL=fish (#21562)
- Add git sha to version when built with nix flake (#21210)
- Remove workaround for old luajit versions
- Remove workaround for ancient clang versions
- Use modern cmake (#21589)
- Include our libraries before system libraries (#21746)
- Enable iwyu with target properties instead of variables (#21797)
- Exclude tui/terminfo_defs.h from lintc-clint (#21822)
- Enable cmake workflow presets (#21860)
- Remove nvim as a dependency of unittests (#21903)
- Various cmake fixes (#21902)
- Bump MSVC warning to level two (#21890)
- Use CMAKE_POSITION_INDEPENDENT_CODE instead of -fPIC (#21947)
- Make generated source files reproducible #21586
- Remove unnecessary unit test code (#21940)
- Use cmake for all platforms for unibilium and libtermkey (#21926)
- Simplify treesitter installation (#21969)
- Use upstream CMakeLists.txt for unibilium (#21976)
- Delete pthreads import (#21732)
- Remove GNU make check (#21977)
- Remove tests for libtermkey (#21983)
- Use cmake to build treesitter on all platforms (#21984)
- Introduce default build variables (#21991)
- Use cmake to build libvterm on all platform (#21986)
- Check if libvterm version meets requirement (#22010)
- Find unibilium without relying on libfindmacros (#22015)
- Fix dependencies in find modules (#22017)
- Enable ccache by default if available (#22020)
- Enable ccache project-wide (#22045)
- Add uninstall make target (#22059)
- Remove unnecessary file generation (#22099)
- Update release data
- Stop relying on CMAKE_BUILD_TYPE to determine the build type (#22051)
- Unbreak building neovim with multi-config generators (#22104)
- Don't build libnvim when running the CI (#22149)
- Remove duplicate INTERFACE keyword (#22106)
- Prefer -D = over -D= (#22164)
- Replace check-single-includes with clang-tidy (#22061)
- Remove unused function get_test_target (#22176)
- Reuse source files with interface library (#22177)
- Create test/CMakeLists.txt and move test-related code (#22179)
- Remove codecov related files (#20859)
- Mark uninteresting variables as advanced (#22208)
- Enable MSVC level 3 warnings (#21934)
- Don't check environment variable to detect CI (#22234)
- Treat clang-tidy warnings as errors (#22238)
- Remove ENABLE_COMPILER_SUGGESTIONS option (#22249)
- Only use HOSTNAME_PRG if HOSTNAME is undefined (#22288)
- Use custom command to create single versiondef (#22290)
- Use libuv config file (#22209)
- Test multi-config generator (#22310)
- Build all dependencies in parallel (#22329)
- Remove unused dependency penlight (#22334)
- Build luajit in parallel (#22327)
- Set libtermkey project language to C (#22410)
- Remove pkgconfig-related code (#22422)
- Remove libfindmacros library (#22423)
- Cmake cleanup (#22251)
- Unset variables ending with "URL" if USE_EXISTING_SRC_DIR is ON
- Show build type specific compiler flags when using --version
- Fix unknown pragma warning with mingw (#22533)
- Consistently use the provided option paths
- Fix USE_EXISTING_SRC_DIR option
- Silence git describe error output
- Remove workaround for incorrectly packaged libluv
- Enable unit testing on release builds (#22554)
- Fix build warning when using gcc 4.9.2
- Explicitly add dependency include dir for header generation
- Sanitizers for gcc
- Set CMAKE_C_STANDARD to 99 for all dependencies
- Drop curl.exe on Windows
- Download wintools executables separately
- Cmake cleanup
- MSVC: Enable assertions on RelWithDebInfo build type (#22326)
- Windows: Fix redoing version generation (#21880)
- Windows: Make bundling nvim-qt optional (#21866)
- Windows: Allow building without custom md5sum
- bump_deps.lua: Run command -v in shell (#22030)
- ci: Let ASAN print tracebacks for more errors (SIGABORT, SIGILL)
- cmake: Add modelines to enable syntax highlighting
- deps: Restore support for USE_EXISTING_SRC_DIR (#20491)
- deps: Add build type for libuv (#20575)
- deps: Disable shared library for libvterm. (#20566)
- deps: Bump tree-sitter to v0.20.8 (#22663)
- deps: Bump luarocks to v3.9.2
- deps: Bump coxpcall to 1.17.0-1
- deps: Bump luacheck to 1.1.0-1
- deps: Bump mpack to 1.0.10
- deps: Bump lua parser to v0.0.14 (#20897)
- deps: Switch vim parser to maintained fork (#22896)
- deps: Bump vimdoc parser to v2.0.0 (#22870)
- deps: Set query parser to release (#22603)
- deps: Bump libvterm to v0.3.1
- deps: Bump msgpack-c to v6.0.0 (#22522)
- deps: Bump win32yank to v0.1.1 (#22700)
- deps: Bump actions/stale from 7 to 8
- deps: Switch to Launchpad for libvterm and libtermkey (#22811)
- editorconfig: Set indent_size to 4 for python files (#21135)
- lint: Remove clint.py rules for braces #20880
- lint: Add more shell scripts to lintsh
- lintsh: Double quote to prevent word splitting (#21571)
- luarocks: Update busted version to v2.1.1 (#22029)
- nix: Change the pkgs to final, add new version of libvterm (#20410)
- nix: Update nixpkgs
- nix: Clean up nix flake (#21565)
- nix: Remove pylint as it has been removed (#21572)
- nix: Fixed build (#22918)
- vim-patch.sh: Handle added/removed files properly
- vim-patch.sh: Checkout files with path for uncrustify (#20863)
- windows: Export extern symbols for use in FFI #22756
- windows: Specify Windows 8 as the minimum version (#22173)
- windows: Work around luarocks not finding its own md5sum
Documentation
- Refer to vim.lsp.start() in LSP issue template #20422
- Fix incorrect :help tag (#20511)
- Added proper annotations to functions in shared.lua
- Fix typos
- Fix/remove invalid URLs #20647
- "supported platforms" matrix #19615
- Update vimdoc parser #20747
- ":che" is ":checkhealth" #20147
- .git-blame-ignore-revs (#20820)
- Swap CursorLineFold and CursorLineSign (#20875)
- Add language annotation to Nvim manual
- Add missing docs from some Vim patches (#21296)
- Dark/light color/accessibilty pass for generated html docs #21345
- Add links to extmarks and namespaces (#21378)
- Remove "How-to disable mouse" menu item #21394
- Add security policy (#17338)
- Fix order of numbers in syntax.txt (#21581)
- Clarify line about converse of lua-heredoc (#21592)
- Fix treesitter parsing errors
- Add 'statuscolumn' docstrings (#21717)
- Builtin TUI is no longer channel 0 (#21794)
- Treesitter.add_directive, add_predicate #21206
- Docs: use codeblocks in runtime/doc/options.txt (#21919)
- Clarify :runtime behavior without [where] again (#22003)
- Clarify "pipe" mode for sockconnect
- Reword news.txt to ensure a consistent style (#22215)
- Remove mentions of 'balloonexpr' #22049
- Remove the test badge from the README (#22350)
- Mention getmousepos() for click execute function label
- Naming conventions, guidelines
- Fix more treesitter parsing errors
- Use build/bin/nvim instead of nvim in gen_vimdoc (#22398)
- Fix vim.treesitter tags
- Lua2dox.lua debugging
- Module-level docstrings (@defgroup) #22498
- Add missing highlight groups for floats
- Add removed features in news.txt
- Fix g:terminal_color_x terminal colors #22746
- More details about vim.region (#21116)
- How to debug TUI using gdb/lldb #22771
- Add vim.treesitter.query.get_query() to deprecated.txt
- README: Add Kotlin as a language which can use the API (#21567)
- README: Fix CI status badge (#22308)
- api: Pattern is not expanded for autocommands (#20812)
- api: Fix treesitter parsing errors
- api: Tweak data arg for nvim_create_autocmd (#22008)
- api: Link to nvim_set_hl_ns from nvim_set_hl (#22678)
- dev-style: Remove rule about variable declarations (#20446)
- dev-style: Remove rules covered by uncrustify
- diagnostic: Number → integer (#22512)
- docstrings: Fix runtime type annotations
- editorconfig: Update news.txt
- editorconfig: Add editorconfig.txt
- editorconfig: Number → integer (#22514)
- filetype: Number → integer (#22516)
- gen: Support language annotation in docstrings
- gitignore: Correct oldtest path
- help: Consistent headers for local additions
- highlight: Fix type annotations (#22272)
- html: Render
@see
items as a list #22675
- inspect: Number → integer (#22511)
- lsp: Add formatting APIs to deprecated.txt (#20487)
- lsp: Update buf_notify and rpc.notify params types (#21753)
- lsp: Fix type annotation on convert_input_to_markdown_lines (#21772)
- lsp: Format arguments to start_client() (#21980)
- lsp: Update cmd_env description (#22438)
- lsp: Change type annotations from number → integer (#22510)
- lsp: Type annotation for lsp.client (#22509)
- lsp: More precise type annotations (#22621)
- lsp: Opt-out of default LSP "gq" #22615
- lua: Add clarifications for fs.find() and fs.normalize() (#21132)
- lua: Correct the tags for vim.opt_local and vim.opt_global (#21138)
- lua: Correct vim.spell.check example (#21311)
- lua: Add guide to using Lua in Neovim (#21137)
- lua: Add
vim.json
(#21538)
- lua: Fix treesitter parsing errors
- lua: Adjust some type annotations
- lua: Lua-guide: is for rhs of vim.keymap.set(), not lhs (#21814)
- lua: Use luaref tag instead of www.lua.org #21813
- lua: Number → integer (#22517)
- luvref: Fix treesitter parsing errors
- luvref: Update to version bump
- maintain: CI strategy #20778
- maintain: Add note on updating luvref.txt
- manual: Fix treesitter parsing errors
- news: Add news.txt and link from README (#20426)
- options: Remove mentions of 'imactivatefunc' and 'imstatusfunc'
- shell: Mention "&" for piping with powershell #20459
- support: Update tested versions (#21126)
- test: Using cmake directly (without make) #22781
- treesitter: Fix predicate syntax (#21016)
- treesitter: Change links for
eq?
and set!
to codeblocks (#21047)
- treesitter: Use full function names in tags (#21321)
- treesitter: Fix parse errors
- treesitter: Number → integer (#22513)
- treesitter: Add query injections
- tutor: Fix TODO line demo (#21965)
- uri: Number → integer (#22515)
- usr: Make usr_05.txt more coherent with Nvim changes (#22428)
- usr_05: Update sentence about Nvim default behavior of Q (#20817)
- vim.fs: Normalize Windows example was incorrect (#21966)
- website: Soft wrap code blocks #21644
Refactor
- Remove char_u type and replace with char, uint8_t, etc
- remove STRNCMP (#21208) and STRLCPY (#21235)
- Remove clint error suppression as all errors has been fixed #21782
- Explicitly convert HANDLE to intptr_t for _open_osfhandle()
- Clang-tidy fixes to silence clangd warning (#20683)
- Fix uncrustify lint errors
- Move do_mouse() and its helpers to mouse.c (#20895)
- Fix clang-tidy warnings
- Click definition functions #20923
- Remove stray emsg check after #20992 (#20996)
- Move tabline code to statusline.c (#21008)
- Convert drawline.c draw states to enum (#21067)
- Remove STDC_ISO_10646 check
- Deprecate 'secure' option
- Remove old TODO comments that aren't relevant anymore (#21144)
- Maybe suppress a PVS warning
- Rework parameter validation in vim.secure.trust() (#21223)
- Buffer_ensure_loaded()
- Move ex_retab() to indent.c
- Remove COMMA (#21260)
- Make sure getting a callback doesn't modify argument
- Rename mch_msg => os_msg
- Rename mch_get_acl => os_get_acl
- Eliminate os_unix.c #21621
- Extract code to open stdin for reading
- Eliminate bump-deps.sh using "nvim -l"
- Fix IWYU mapping file and use IWYU (#21802)
- Format with stylua (#21821)
- Remove E5500, adjust tests
- Fix sign conversion warning from gcc (#21833)
- Use uint8_t for blobs and ga_append() (#21916)
- Use flexible arrays instead of the length-of-one trick (#22072)
- Reduce scope of locals as per the style guide (#22206)
- Move init_default_autocmds to lua
- Rename show_tree => inspect_tree #22474
- Move ga_loaded to runtime.c (#22626)
- Do more in TRY_WRAP
- Add const and remove unnecessary casts (#22841)
- Use bool type for global variables (#22842)
- Rename local API alias from a to api
- Make error message definitions const
- Remove use of reserved c++ keywords
- PVS: Suppress false positive V547 in drawline.c (#21875)
- PVS/V1048: Remove unnecessary assignment (#21870)
- PVS/V1048: Remove redundant assignment (#21871)
- PVS/V1048: Remove duplicated assignments (#21873)
- PVS/V581: Merge identical if statements (#22390)
- api: Do not allocate temporaries for internal events
- api: VALIDATE macros #22187 #22256 #22262
- build: Remove unused stdlib function and include checks
- build: Graduate HAVE_LOCALE_H feature
- build: Graduate libtreesitter features which are 1+ years old
- build: Graduate msgpack-c FLOAT32 "feature" since forever
- build: Graduate unibilium VAR_FROM feature from 2017
- build: Graduate -Wvla, -fno-common and -Og "features"
- build: Make installation of runtime/ more effective
- checkhealth: Convert "nvim" check to Lua
- clint: Convert short to int16_t (#20815)
- column: Remove unused build_statuscol_str() arguments
- completion: Don't add and remove '^' for Lua (#22702)
- diagnostic: Remove deprecated function (#20423)
- diagnostic: DRY for loop #21521
- diff.c: Reduce scope of variables (#20781)
- diff.c: Break up ex_diffgetput()
- diff.c: Allocate hunks directly in ga_array
- diff.c: Factor out hunk extraction
- diff.c: Factor out hunk processing
- diff.c: Simplify diff_buf_idx()
- diff.c: Internal does not need diffstyle
- diff.c: Factor out diffblock deletion
- diff.c: Copy lines via memmove
- drawline.c: Leadcol/trailcol
- drawline.c: Move number column helpers function together
- drawscreen.c: Reduce scopes of locals (#20668)
- eval: Make get_lval() explicitly check for v:lua
- eval.c: Factor out get_number_tv() (#21893)
- exit: Pass error message to preserve_exit() (#22097)
- extmarks: Some minor internal API changes
- f_has: Remove wrong comment (#21561)
- fileio.c: Reduce scope of locals
- fileio.c: Refactor match_file_path()
- fileio.c: Refactor vim_rename()
- fileio.c: Refactor buf_write_bytes
- fileio.c: Refactor buf_write_bytes (2)
- fileio.c: Remove HAS_BW_FLAGS
- fileio.c: Factor out autocmd handling from buf_write()
- fileio.c: More bools
- fileio.c: Reduce scope of locals
- fileio.c: Do not use macros for error handling
- fileio.c: Factor out buf_write post autocmds
- fileio.c: Factor out file info calc
- fileio.c: Make unreadable expression readable
- fileio.c: Factor out backup creation
- fileio.c: Remove HAVE_ACL ifdefs
- fileio.c: Normalize ifdefs
- fs: Replace vim.fn/vim.env in vim.fs (#20379)
- highlight: Rename FloatBorderTitle #20988
- highlight: Reshape the HL_UNDER* bits into a 3-bit integer mask
- highlight_group.c: Reduce scope of locals
- intro: Avoid Coverity warning (#22000)
- loader: Use vim.fs
- loader: Remove BufWritePost autocmd
- loader: Add typing for package.loaders
- loader: Simplify tracking logic
- loader: Cache hash information
- log: Reduce compile time LOG_LEVEL granularity
- lsp: Remove deprecated lsp functions (#20421)
- lsp: Extract a _create_server method in lsp_spec
- lsp: Remove deprecated vim.lsp.buf_get_clients calls (#21337)
- lsp: Remove workaround for missing bit module (#22373)
- lsp: Remove deprecated code (#22389)
- lsp: Remove _resolve_capabilities_compat (#22628)
- lsp: Do not parse verbose output when overwriting options (#22810)
- lua: Move _G.arg init to nlua_init()
- lua: Get all marks instead of iterating over namespaces
- lua2dox: Format with stylua
- main.c: Remove unreachable use_builtin_ui conditions (#22338)
- man: Pass env directly to spawn() (#20591)
- man: Add type annotations
- memory: Simplify new alignment logic
- option.c: Reduce scope of locals
- option.c: Add get_varp_from and get_varp_scope_from
- option.c: De-nest set_option_value
- option.c: Use intermediate for options ref
- option.c: Add do_set_num
- option.c: Add do_set_bool
- option.c: Simplify do_set_string
- option.c: Factor out common skip check
- option.c: Factor out loop code from do_set()
- option.c: Remove goto
- option.c: Change nextchar to uint8_t
- option.c: Use skiptowhite_esc
- option.c: Factor out set op parsing
- option.c: Factor out option prefix parsing
- option.c: Factor out option name parsing
- option.c: Factor out opt_idx validation
- option.c: De-nest code in do_set_option
- option.c: Move bool prefix check
- option.c: Add do_set_option_value
- option.c: Factor out some nextchar checks
- option.c: Factor out string option special case handling
- options: Don't pass negative number to illegal_char() (#21999)
- optionstr.c: Reduce scope of locals
- optionstr.c: Break up did_set_string_option 1-52
- optionstr.c: Remove some simple did_set_* functions
- optionstr.c: Add did_set_string_option_for
- optionstr.c: Break up did_option_listflags
- optionstr.c: Remove some redundant parens
- optionstr.c: Break up did_set_expropt
- optionstr.c: Move handling of formatlistpat
- optionstr.c: Align comments (#22070)
- params: Open -s and -w script files after parsing commands
- pty: Remove old logic for inheriting termios from host terminal
- redraw: No type argument in update_screen()
- redraw: Various simplifications
- redraw: Make cursor position redraw use the "redraw later" pattern
- runtime: Use vim.version to compare versions #22550
- runtime.c: Factor out find_script_by_name() (#22620)
- screen: Screen.c delenda est
- sleep: Simplify rube goldberg implementation of :sleep
- spell: Use uint8_t for "byts" variables (#22519)
- statusline: Move statusline defs to statusline_defs.h
- tag: Remove return type from do_tag()
- test: Create an lsp-specific helpers.lua file
- tests: Lift retry() into assert_log()
- tests: Run unittests using main nvim binary in interpreter mode
- tests: Move lua-client into core and use it for functionaltests
- treesitter: Add vim.treesitter.get_node() (#22360)
- treesitter: Use string.format to create lines
- treesitter: Simplify some range functions
- treesitter: Delegate region calculation to treesitter (#22553)
- treesitter: Use byte ranges from treesitter (#22589)
- treesitter: Add Range type aliase for Range4|Range6
- treesitter: Delegate region calculation to treesitter (#22576)
- treesitter: Move inspect_tree impl
- tui: Use nvim_echo() for verbose terminfo
- tui/input.c: Remove unused multithreading code (#22342)
- ui: Statusbar invalidation to win_set_inner_size()
- ui: Devirtualize the ui layer
- ui: Cleanup 'redrawdebug', introduce "flush" mode
- ui: Don't reimplement redrawing in focus gained handling
- ui: Remove some superfluous ui_flush() calls
- ui: Ui_log() can now just be a function
- uncrustify: Move macros definitions to enable formatting
- uncrustify: Improved formatting rules
- vim.gsplit: Remove "keepsep"
- vim.version: Cleanup
- vim.version: Use lazy.nvim semver module
- vim.version: Use lazy.nvim semver module
- win_close: Remove "force", don't pass on "free_buf" (#21921)
- win_line: Rename attr to vi_attr (#21487)
- win_line: Move some variables into a struct (#22490)
- window: Remove aucmd_win check from one_window() (#21972)
- window.c: Reduce scope of locals (#20301)
- windows: Move os_icon_xx functions
Testing
- Introduce skip() #21010
- Remove skip for 32-bit MSVC (#21030)
- Don't skip parser_spec on windows (#20294)
- Add a Lua test for swap file created before boot
- Fix failing tui_spec.lua tests (#21117)
- Use isCI to simplify CI detection (#21134)
- Simplify platform detection (#21020)
- Adding/removing winbar should not cause win_pos events (#21226)
- Use luv.os_uname for fast platform detection (#21157)
- Add more tests for float window bufpos (#21318)
- Convert another test in test_matchadd_conceal.vim to Lua (#21353)
- Remove unused variable (#21552)
- Add test cases for command line issues
- Add more tests for Unicode
- Avoid consecutive mouse input at different positions (#21781)
- Align Test_shell_options, Test_shellslash with Nvim default
- Avoid noise in NVIM_LOG_FILE
- Exepath() returns correct path with cmd.exe, powershell #21928
- Remove unused field ext_float (#22243)
- Make expect_unchanged() less confusing (#22255)
- Make {MATCH:} behave less unexpectedly in screen:expect()
- Don't search entire repo for files
- Move oldtests to test directory (#22536)
- Use a wider screen in the rightleft winhl test (#22641)
- Unskip working Windows tests (#22537)
- Re-bundle cat on windows (#21255)
- Windows not detected in msys shells #22671
- Use exec_capture() in more places (#22787)
- Fix flaky watchfiles tests (#22637)
- Replace lfs with luv and vim.fs
- Improve editor/fold_spec.lua and editor/put_spec.lua (#22916)
- Windows: Normalize paths for test summary
- api: Migrate screenchar() test in in window API to screen test
- editorconfig: Add editorconfig tests
- exit_spec: Make sure that autocommands are triggered (#22188)
- fileio_spec: Avoid expect_exit() without calling clear() (#21810)
- float_spec: Add missing sum_scroll_delta #22648
- help: Drop treesitter parse error to 0
- highlight_spec: Fix warning in Visual highlight test (#22719)
- legacy/prompt_buffer_spec: Align script with oldtest more (#22354)
- lsp: Call clear() before willSave tests (#21336)
- lsp: Add a screen:expect() between insert() and feed_command() (#21577)
- lua/diagnostic_spec: Remove unnecessary after_each()
- lua/fs_spec: Fix vim.fs.dir() test (#21503)
- lua/ui_spec: Fix Ctrl-C test flakiness (#21039)
- old: Test_lambda.vim garbagecollect() -> test_garbagecollect_now()
- old: Remove stray test42 files (#20966)
- old: Make Test_help_tagjump() test order match upstream
- old: Add missing lines from Vim patch 8.2.0522 (#21048)
- old: Make ":h local-additions" work properly in test_help.vim
- old: Skip Vim9 script with less divergence
- old: Change $TMPDIR from Xtest-tmpdir to X-test-tmpdir (#21346)
- old: Make test_signs.vim closer to upstream (#21479)
- old: Run some part of 'cpoptions' tests
- old: Make getting an unused PID work (#22529)
- old: Move memfile_test.c to test/old/ (#22567)
- old: Unskip working tests on Windows (#22650)
- shada: Fix shada syntax definitions test
- statuscolumn: Add more tests for wrapped lines (#21718)
- statuscolumn: %l should follow default wrap behavior (#21766)
- statuscolumn_spec: Remove unnecessary feed('lh')
- statusline: UI elements are not redrawn on K_EVENT unnecessarily
- syn_attr_spec: Add more information (#21912)
- termxx_spec: Fix TermClose bdelete test flakiness (#22463)
- treesitter/parser_spec: Correct time unit (#22471)
- tui_spec: Don't use nested terminal for resize at startup (#21583)
- tui_spec: Avoid race between nvim_paste and nvim_input (#21639)
- tui_spec: Improve cursor_address test (#21700)
- tui_spec: Doesn't use Unicode in cursor_address test (#21703)
- tui_spec: Make rapid resize test test what it wants to test (#21933)
- tui_spec: Don't expect exact screen in rapid resize test (#21935)
- tui_spec: Remove unnecessary arguments for remote UI
- tui_spec: Use RPC request to setup autocommands
- ui: Wait for another success with failure after success
- undo_spec: Add more tests for writing in Insert mode
- unit: Use file:close() properly (#21505)
- vim.fs.normalize: Enable test on Windows
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4