mirror of
https://github.com/neovim/neovim.git
synced 2024-12-28 14:31:13 -07:00
a5ac2f45ff
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 accessorsbe662fe5c
lua: vim.wait implementation2b663c061
#14213 viml: embed Lua syntax highlighting901dd79f6
feat: add completion to ':lua' 82688973 lua: complete methods in metatables342148525
runtime: propagate lua parsing errors while using "require"aaca2c1c4
#13276 feat(lua): improve error message to make it actionablec60c7375f
startup: handle autoload and lua packages during startup3ccdbc570
#12536 lua: add vim.register_keystroke_callback971a191c4
lua: 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_extendea4127e9a
lua: metatable for empty dict valuedab40f43b
Add v:lua.func() vimL syntax for calling lua678a51b1d
Lua: vim.validate()474d0bcbf
lua: vim.rpcrequest, vim.rpcnotify, vim.NIL8ee7c94a9
lua: 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 lua440695c29
tree-sitter: implement query functionality and highlighting prototype8bea39f37
feat(treesitter): allow injections to be configured through directives929f19414
feat(treesitter): add offset predicate for language injectioncd75d3289
#14200 feat: treesitter checkhealth1a631026a
feat(treesitter): add language treed3f544002
treesitter: runtime queries3c5141d2c
#13008 treesitter: add string parser9437327d5
treesitter: use new on_bytes interfacee4b5efa51
treesitter: use decoration provider APId6209a7b8
fix: Add a test and it is so pretty836c31032
feat(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 documentHighlight220a2b05c
LSP/references: Add context to locations returned by serverccb038dc6
LSP/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/showMessageRequeste467d2939
LSP: Move workspace/configuration handler from nvim-lspconfig to core2bdd553c9
feat(lsp): Add codelens support UI:f8134f2fd
screen.c: remove fold_line special casec146eddc8
experimental support for per-window color schemesa1508c9f6
nvim__screenshot (dump TUI state to file)08fe10010
terminal: enable pass through indexed colors to TUI in rgb mode5a8569942
tests/ui: make screen.lua use "linegrid" representation internally8fe19d9d8
screen: make ui_compositor aware of the intended size of a float54ce1010e
extmark: add new flexible "decorations" abstraction4781333a7
decorations: allow virt_text overlay at any columnbdebe8516
decorations: use extmark column adjustments for buffer highlights7b488314d
decorations: Allow highlights beyond end of line hl_eol425bc438a
decorations: add additional styling of virt_text overlaysedb5864a2
floats: z-index243820ebd
floats: add borders (MS-DOS MODE)5b6edc852
feat(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()bc86f76c0
api/buffer: add "on_bytes" callback to nvim_buf_attach19b623708
jobstart now supports env/clear_envef7c6b972
Support specifying "env" option for termopen()7c4f34966
#13287 switch from travis to github actions24db59ca8
feat: implement BufModified autocmdb83d8223f
implement Scroll autocommand8caf84130
Lower "closed by the client" message level to INFO7de276b87
bump 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`802f8429d
api(nvim_open_win): add "noautocmd" option FIXES:21444552c
BugFix(clipboard): Fix block paste not working properly01493e799
#14413 api: fix nvim_exec() silencing behaviour9699f3be1
fix(doc): Add '/site' to stdpath('data') example in `:help 'rtp'`581b2bcde
screen: fix problem with p_cheae4b1e5c
luaref: fix leaks for global luarefs409b2711f
fix: 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 variables9f2335937
fix_cursor: do not change line number when edit will not impact cursor row33f92fe02
fix(pty): Always use $TERM from the job's env dict6249059d4
checkhealth: fix terminfo problems on Windows397be5d38
#12811 UI: fix cursor not displayed after hiding and un-hiding87afc9031
screen.c: fix an issue with wrap and foldsb419e39a2
screen.c: fix last character on foldtext2ea312769
#13688 screen.c: fix display of signcolumn=auto in diffsc2d288e29
Fix screen terminal family issues314b222c2
#14127 Fix click on foldcolumn with vsplite65d0e53b
vim.fn: throw error when trying to use API function
27 KiB
27 KiB