mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
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 config687eb0b39#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.o1407899c3#12268 lua: Add buffer, window and tab accessorsbe662fe5clua: vim.wait implementation2b663c061#14213 viml: embed Lua syntax highlighting901dd79f6feat: add completion to ':lua' 82688973 lua: complete methods in metatables342148525runtime: propagate lua parsing errors while using "require"aaca2c1c4#13276 feat(lua): improve error message to make it actionablec60c7375fstartup: handle autoload and lua packages during startup3ccdbc570#12536 lua: add vim.register_keystroke_callback971a191c4lua: Add ability to pass lua functions directly to vimL91e41c857#12401 lua: add vim.highlight.rangef2894bffb#12279 lua: Add highlight.on_yankae5bd0454#11969 lua: add tbl_deep_extendea4127e9alua: metatable for empty dict valuedab40f43bAdd v:lua.func() vimL syntax for calling lua678a51b1dLua: vim.validate()474d0bcbflua: vim.rpcrequest, vim.rpcnotify, vim.NIL8ee7c94a9lua: add vim.fn.{func} for direct access to vimL functiond0d38fc36#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 lua440695c29tree-sitter: implement query functionality and highlighting prototype8bea39f37feat(treesitter): allow injections to be configured through directives929f19414feat(treesitter): add offset predicate for language injectioncd75d3289#14200 feat: treesitter checkhealth1a631026afeat(treesitter): add language treed3f544002treesitter: runtime queries3c5141d2c#13008 treesitter: add string parser9437327d5treesitter: use new on_bytes interfacee4b5efa51treesitter: use decoration provider APId6209a7b8fix: Add a test and it is so pretty836c31032feat(ts): bump tree-sitter to v0.20.0 LSP client:00dc12c5d#11336 lua LSP client: initial implementationd5aaad14e#11430 Followup improvements to LSPee7ac469c#11578 LSP: Use async completion for omnifunc.070bd3ea2#11604 LSP: shrink API, improve docs25afa10f9#11669 Merge 'LSP: differentiate diagnostic underline by severity'e956ea767#11777 LSP: show diagnostic in qf/loclistdd8b29cfe#11838 LSP: set InitializeParams.rootPath value0c5d2ffeb#11837 Merge 'LSP: fixes, improve test visibility'ca8699378#11638 LSP: implement documentHighlight220a2b05cLSP/references: Add context to locations returned by serverccb038dc6LSP/completion: add textEdit supportda6f38ab3#12313 LSP: Add workspace.applyEdit client capabilitiesf559e5249#11607 LSP: Add textDocument/codeAction support0d83a1c43#12638 LSP: Feature/add workspace foldersfd507e278#13641 LSP: window/showMessageRequeste467d2939LSP: Move workspace/configuration handler from nvim-lspconfig to core2bdd553c9feat(lsp): Add codelens support UI:f8134f2fdscreen.c: remove fold_line special casec146eddc8experimental support for per-window color schemesa1508c9f6nvim__screenshot (dump TUI state to file)08fe10010terminal: enable pass through indexed colors to TUI in rgb mode5a8569942tests/ui: make screen.lua use "linegrid" representation internally8fe19d9d8screen: make ui_compositor aware of the intended size of a float54ce1010eextmark: add new flexible "decorations" abstraction4781333a7decorations: allow virt_text overlay at any columnbdebe8516decorations: use extmark column adjustments for buffer highlights7b488314ddecorations: Allow highlights beyond end of line hl_eol425bc438adecorations: add additional styling of virt_text overlaysedb5864a2floats: z-index243820ebdfloats: add borders (MS-DOS MODE)5b6edc852feat(float): add rounded borders preset4a36ec6da#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()bc86f76c0api/buffer: add "on_bytes" callback to nvim_buf_attach19b623708jobstart now supports env/clear_envef7c6b972Support specifying "env" option for termopen()7c4f34966#13287 switch from travis to github actions24db59ca8feat: implement BufModified autocmdb83d8223fimplement Scroll autocommand8caf84130Lower "closed by the client" message level to INFO7de276b87bump libvterm to 0.1.4097ec71bd#14096 aarch64/linux: fix build by updating LuaJITbd5f0e969#12531 support autoread using tui focus tracking8a1276005#12382 Add v:event.visual during `TextYankPost`802f8429dapi(nvim_open_win): add "noautocmd" option FIXES:21444552cBugFix(clipboard): Fix block paste not working properly01493e799#14413 api: fix nvim_exec() silencing behaviour9699f3be1fix(doc): Add '/site' to stdpath('data') example in `:help 'rtp'`581b2bcdescreen: fix problem with p_cheae4b1e5cluaref: fix leaks for global luarefs409b2711ffix: segfault when pasting in term with empty buffercf6c23fb0#14273 fix plenty of errors discovered by clang21035cff9#14500 fix plenty of errors discovered by coveritybca19138b#13987 tui: fix possibility of evaluating uninitialized variables9f2335937fix_cursor: do not change line number when edit will not impact cursor row33f92fe02fix(pty): Always use $TERM from the job's env dict6249059d4checkhealth: fix terminfo problems on Windows397be5d38#12811 UI: fix cursor not displayed after hiding and un-hiding87afc9031screen.c: fix an issue with wrap and foldsb419e39a2screen.c: fix last character on foldtext2ea312769#13688 screen.c: fix display of signcolumn=auto in diffsc2d288e29Fix screen terminal family issues314b222c2#14127 Fix click on foldcolumn with vsplite65d0e53bvim.fn: throw error when trying to use API function
27 KiB
27 KiB