aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua
Commit message (Collapse)AuthorAge
...
* refactor(lua): call loadfile internallyLewis Russell2022-02-18
| | | | | | .. instead of luaL_loadfile allows files to be cached
* fix: autoload variables not loaded with vim.g & nvim_get_varshadmansaleh2022-02-13
|
* fix(lua): restore priority of the preloaderLewis Russell2022-02-05
| | | | | | | | | Neovim currently places its own loader for searching runtime files at the front of `package.loaders`. This prevents any preloaders in `package.preload` from being used. This change fixes that by moving the default package preloader to run before Neovim's loader. For example, LuaJIT provides preloaders for the built-in modules `ffi` and `bit`, so this optimisation will improve the loading of those.
* fix(diff): make algorithm work for vim.diff (#17300)Lewis Russell2022-02-05
| | | Fixes #17207
* vim-patch:8.2.4241: some type casts are redundantDundar Göc2022-01-30
| | | | | | | | Problem: Some type casts are redundant. Solution: Remove the type casts. (closes vim/vim#9643) https://github.com/vim/vim/commit/420fabcd4ffeaf79082a6e43db91e1d363f88f27 This is not a literal port but an equivalent one.
* feat(ts): expose minimum language version to lua (#17186)Thomas Vigouroux2022-01-27
|
* refactor(coverity/345583): assert fp is non-NULLJames McCoy2022-01-19
| | | | Since we already have a typval, we know the lookup will succeed.
* feat(api, lua): more conversions between LuaRef and Vim Funcrefzeertzjq2022-01-13
|
* feat(treesitter): set allocator when possibleThomas Vigouroux2022-01-09
| | | | | Adds a new cmake check to keep this backwards compatible with the different versions of tree-sitter.
* fix(lua): print multiple return values with =expr (#16933)Shadman2022-01-06
|
* feat(lua): add notify_once() (#16956)Gregory Anders2022-01-06
| | | Like vim.notify(), but only displays the notification once.
* feat(lua): add vim.keymapshadmansaleh2022-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | This introduces two new functions `vim.keymap.set` & `vim.keymap.del` differences compared to regular set_keymap: - remap is used as opposite of noremap. By default it's true for <Plug> keymaps and false for others. - rhs can be lua function. - mode can be a list of modes. - replace_keycodes option for lua function expr maps. (Default: true) - handles buffer specific keymaps Examples: ```lua vim.keymap.set('n', 'asdf', function() print("real lua function") end) vim.keymap.set({'n', 'v'}, '<leader>lr', vim.lsp.buf.references, {buffer=true}) vim.keymap.set('n', '<leader>w', "<cmd>w<cr>", {silent = true, buffer = 5 }) vim.keymap.set('i', '<Tab>', function() return vim.fn.pumvisible() == 1 and "<C-n>" or "<Tab>" end, {expr = true}) vim.keymap.set('n', '[%', '<Plug>(MatchitNormalMultiBackward)') vim.keymap.del('n', 'asdf') vim.keymap.del({'n', 'i', 'v'}, '<leader>w', {buffer = 5 }) ```
* feat: filetype.lua (#16600)Gregory Anders2022-01-04
| | | | Adds a new vim.filetype module that provides support for filetype detection in Lua.
* feat(lua): make =expr print result of exprshadmansaleh2022-01-04
|
* fix(lua): stricter type check when calling API function (#16745)dundargoc2022-01-03
| | | | | Solves #13651 Co-authored-by: Gregory Anders <greg@gpanders.com>
* refactor(PVS/V009): add special comment at top of file required by PVSDundar Göc2022-01-01
| | | | More info: https://pvs-studio.com/en/docs/warnings/v009/
* Merge pull request #16752 from gpanders/lua-user-commandsBjörn Linse2021-12-28
|\ | | | | feat(api): implement nvim_{add,del}_user_command
| * feat(api): implement nvim_{add,del}_user_commandGregory Anders2021-12-28
| | | | | | | | | | Add support for adding and removing custom user commands with the Nvim API.
* | chore: fix typos (#16506)dundargoc2021-12-28
|/ | | | | | | | | Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Christoph Hasse <hassec@users.noreply.github.com> Co-authored-by: Alef Pereira <ealefpereira@gmail.com> Co-authored-by: AusCyber <willp@outlook.com.au> Co-authored-by: kylo252 <59826753+kylo252@users.noreply.github.com>
* feat(lua): add vim.spell (#16620)Lewis Russell2021-12-25
|
* perf: pre-compile embedded Lua source into bytecode (#16631)Gregory Anders2021-12-16
| | | | | | The Lua modules that make up vim.lua are embedded as raw source files into the nvim binary. These sources are loaded by the Lua runtime on startuptime. We can pre-compile these sources into Lua bytecode before embedding them into the binary, which minimizes the size of the binary and improves startuptime.
* Merge pull request #16666 from mjlbach/fix/bad-castMichael Lingelbach2021-12-15
|\
| * chore: improve naming consistency in str_utf_startMichael Lingelbach2021-12-15
| |
| * fix: do not cast offset to char_uMichael Lingelbach2021-12-15
| | | | | | | | | | | | | | * str_utf_start/end both cast the offset into the utf string to a char_u, a pointer + long is well-defined and the cast is unnecessary. This previously resulted in issues for offsets greater than 256.
* | refactor(misc1): move out high-level input functions to a new file: input.cBjörn Linse2021-12-10
|/ | | | | Possibly dialog code is messages.c could be moved here as well. misc1.c is now empty, so delete it.
* fix: check for interrupt in nvim_echo, write_msg and nlua_print (#16537)ii142021-12-08
| | | | | Fixes `q` in more pager, where `:highlight` can be quit out of with a single `q` keystroke, while in `:lua print(vim.inspect(vim))` it just scrolls down a page.
* Merge pull request #16411 from dundargoc/refactor/upgrade-uncrustifyBjörn Linse2021-12-04
|\ | | | | refactor: upgrade uncrustify config version to 0.74.0
| * refactor: upgrade uncrustify config version to 0.74.0Dundar Göc2021-11-23
| | | | | | | | | | Disable formatting for assert.h since there's a bug that results in a segmentation fault in uncrustify.
* | docs(lsp): add annotations for private functionsGregory Anders2021-11-30
| |
* | chore: fix typosii142021-11-30
| | | | | | | | Co-authored-by: ii14 <ii14@users.noreply.github.com>
* | fix: allow str_utfindex second argument to be an explicit nil (#16448)Michael Lingelbach2021-11-27
| | | | | | | | | | | | * str_utfindex checks number of arguments only, but ignores the case in which the second argument is an explicit nil. Previously this required dropping the second argument entirely. * Modify the C binding to explicitly check if the second argument is nil
* | chore(docs): clarify vim.notify log_level parameter (#16436)Mathias Fußenegger2021-11-25
|/
* refactor: saner options for uncrustify (#16204)dundargoc2021-11-19
| | | | | | | | | | | | | | | | | | | | | | | | * sp_enum_after_assign = force * sp_brace_typedef = force * nl_do_brace = remove * sp_do_brace_open = force * sp_brace_close_while = force * sp_before_semi = remove * sp_before_semi_for = remove * sp_before_semi_for_empty = remove * sp_between_semi_for_empty = remove * sp_after_semi_for_empty = remove * sp_before_square = remove * sp_before_squares = remove * sp_inside_square = remove * sp_inside_fparens = remove * sp_inside_fparen = remove * sp_inside_tparen = remove * sp_after_tparen_close = remove * sp_return_paren = force * pos_bool = lead * sp_pp_concat = remove * sp_pp_stringify = remove * fixup: disable formatting for the INIT section
* refactor: reduce number of explicit char casts (#16077)dundargoc2021-11-16
| | | * refactor: reduce number of explicit char casts
* feat(lua): enable stack traces in error output (#16228)Gregory Anders2021-11-06
|
* vim-patch:8.1.0779: argument for message functions is inconsistentJames McCoy2021-11-01
| | | | | | Problem: Argument for message functions is inconsistent. Solution: Make first argument to msg() "char *". https://github.com/vim/vim/commit/32526b3c1846025f0e655f41efd4e5428da16b6c
* vim-patch:8.1.0743: giving error messages is not flexibleJames McCoy2021-11-01
| | | | | | | | | Problem: Giving error messages is not flexible. Solution: Add semsg(). Change argument from "char_u *" to "char *", also for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes vim/vim#3302) Also make emsg() accept a "char *" argument. Get rid of an enormous number of type casts. https://github.com/vim/vim/commit/f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d
* refactor: saner options for uncrustify #16196dundargoc2021-10-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor: general good option changes sp_deref = remove sp_not = remove sp_inv = remove sp_inside_paren_cast = remove mod_remove_duplicate_include = true sp_after_semi = add sp_after_semi_for = force sp_sizeof_paren = remove nl_return_expr = remove nl_else_brace = remove nl_else_if = remove * refactor: mod_remove_extra_semicolon = true * refactor: nl_max = 3 * refactor: sp_bool = force * refactor: sp_compare = force * refactor: sp_inside_paren = remove * refactor: sp_paren_paren = remove * refactor: sp_inside_sparen = remove * refactor: sp_before_sparen = force * refactor: sp_sign = remove * refactor: sp_addr = remove * refactor: sp_member = remove * refactor: nl_struct_brace = remove * refactor: nl_before_if_closing_paren = remove * refactor: nl_fdef_brace = force * refactor: sp_paren_comma = force * refactor: mod_full_brace_do = add
* feat: add vim.str_utf_{start,end} (#16129)Michael Lingelbach2021-10-30
| | | | | vim.str_utf_{start,end} return the offset from the current position to the start and end of the current utf-character (nearest codepoint) respectively.
* refactor: split executor.c into two filesDundar Göc2021-10-26
|
* feat: add vim.str_utf_pos functionMichael Lingelbach2021-10-24
| | | | | vim.str_utf_pos returns the codepoints for all utf-8 chars (only, currently) in a string
* feat(lua): allow passing handles to vim.b/w/tLewis Russell2021-10-19
| | | | | | vim.bo can target a specific buffer by indexing with a number, e.g: `vim.bo[2].filetype` can get/set the filetype for buffer 2. This change replicates that behaviour for the variable namespace.
* refactor: remove space after starDundar Göc2021-10-19
|
* fix(runtime): don't use regexes inside lua require'mod'Björn Linse2021-10-17
| | | | | | | | | | | | Fixes #15147 and fixes #15497. Also sketch "subdir" caching. Currently this only caches whether an rtp entry has a "lua/" subdir but we could consider cache other subdirs potentially or even "lua/mybigplugin/" possibly. Note: the async_leftpad test doesn't actually fail on master, at least not deterministically (even when disabling the fast_breakcheck throttling). It's still useful as a regression test for further changes and included as such.
* refactor: format header files with uncrustify #15877dundargoc2021-10-09
| | | | | | * refactor: format header files with uncrustify * fixup(justin): skip formatting of terminfo_defs.h * fixup: force winsock2 to be included first * fixup: simplify disable/enable directive to "uncrustify:off/on"
* fix(api): check type in nlua_pop_keydict (#15940)virchau132021-10-08
|
* Merge pull request #15316 from vigoux/ts-fix-capturesBjörn Linse2021-10-07
|\ | | | | fix(treesitter): run predicates more often in iter_matches
| * fix(treesitter): run predicates more often in iter_matchesThomas Vigouroux2021-10-01
| | | | | | | | Superseedes #15126, and fixes the issue.
* | fix(docs): duplicate tag, wrong formattingJustin M. Keyes2021-10-05
| | | | | | | | | | | | | | Fixes build error: cd /usr/home/build/neovim/build/runtime && /usr/local/bin/cmake -E remove doc/* && /usr/local/bin/cmake -E copy_directory /usr/home/build/neovim/runtime/doc doc && /usr/home/build/neovim/build/bin/nvim -u NONE -i NONE -e --headless -c helptags\ ++t\ doc -c quit Error detected while processing command line: E154: Duplicate tag "vim.register_keystroke_callback()" in file doc/lua.txt
* | Merge pull request #15516 from bfredl/keysetBjörn Linse2021-10-03
|\ \ | | | | | | refactor(api): Represent option dicts as a structs in C and reduce conversion overhead from lua