| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#13981)
Problem: Can't get the exit value in VimLeave or VimLeavePre autocommands.
Solution: Add v:exiting like in Neovim. (Yegappan Lakshmanan, closes vim/vim#7395)
https://github.com/vim/vim/commit/f0068c5154a99b86b2c4515a4b93c003b2445cf4
Rearrange VimVarIndex enums and vimvars[] entries to sync with Vim.
N/A patches for version.c:
vim-patch:8.2.2535: MS-Windows: cannot run all vim9 tests
Problem: MS-Windows: cannot run all vim9 tests.
Solution: Make test_vim9 target work.
https://github.com/vim/vim/commit/723ef5db980b2e69ef8bdc0dd448cb645491c464
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Padding in structures wastes memory.
Solution: Move fields to avoid padding. (Dominique Pelle, closes vim/vim#5202)
https://github.com/vim/vim/commit/d6beab0248cdb0b7073e97d98d65de7138cb3386
Skip "ml_line_len" member of "struct memline".
Patch v8.1.0579 was not ported.
|
|
|
|
|
|
|
| |
Problem: :unlet $VAR does not work properly.
Solution: Make ":lockvar $VAR" fail. Check the "skip" flag.
https://github.com/vim/vim/commit/7e0868efcf094f2cc59fa4e18af3a8dc7aedd64f
Include patch 8.2.0601 changes so that ex_unletlock() can execute a callback if there are no errors.
|
|
|
|
|
| |
Problem: Cannot get the Vim command line arguments.
Solution: Add v:argv. (Dmitri Vereshchagin, closes vim/vim#1322)
https://github.com/vim/vim/commit/69bf634858a2a75f2984e42b1e4017bc529a040a
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
close #11828
ref #5081
cf. vim patch 7.4.2063
|
|
|
|
| |
Also simplify error messages when calling lua from vimL.
|
|
|
|
|
| |
Problem: Not easy to compute the space on the command line.
Solution: Add v:echospace. (Daniel Hahler, closes vim/vim#4732)
https://github.com/vim/vim/commit/37f4cbd46f5a6f2dd3a48d5fa4324dce37e4bd6c
|
| |
|
|
|
|
|
|
| |
Adds the :stdpath method for fetching XDG standard directories.
Fixes #5297
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement nvim_command_output with `execute({cmd},"silent")`.
Behavior changes:
- does not provoke any hit-enter prompt
- no longer prepends a newline char
- does not capture some noise (like the "[New File]" message, see the
change to tabnewentered_spec.lua)
Technically ("bug-for-bug") this a breaking change. But the previous
behavior of nvim_command_output meant that it probably wasn't used for
anything outside of tests.
Also remove the undocumented `v:command_output` variable which was
a hack introduced only for the purposes of nvim_command_output.
closes #7726
|
| |
|
| |
|
|
|
|
| |
Function was renamed and changed to return `const char *`.
|
|
|
|
| |
Also fixes buffer reusage in setmatches() and complete().
|
|
|
|
|
|
|
|
|
| |
Problem: Using function() with a name will find another function when it is
redefined.
Solution: Add funcref(). Refer to lambda using a partial. Fix several
reference counting issues.
https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
|
|
|
|
|
|
|
|
| |
Problem: Closures are not supported.
Solution: Capture variables in lambdas from the outer scope. (Yasuhiro
Matsumoto, Ken Takata)
https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
|
|
|
|
|
|
|
|
| |
Problem: Using submatch() in a lambda passed to substitute() is verbose.
Solution: Use a static list and pass it as an optional argument to the
function. Fix memory leak.
https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
|
|
|
|
|
|
|
|
| |
Problem: Cannot detect a crash in tests when caused by garbagecollect().
Solution: Add garbagecollect_for_testing(). Do not free a job if is still
useful.
https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
|
|
|
|
|
|
|
|
|
| |
Contains the exit value nvim will use.
Before exiting, it is v:null. That way jobs or autocmds (in VimLeavePre or
VimLeave) can check if Neovim is about to quit and with what exit value.
Closes #4666.
|
|
|
|
|
|
|
| |
Problem: The return value of type() is difficult to use.
Solution: Define v:t_ constants. (Ken Takata)
https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
|
|
|
|
|
|
|
| |
Problem: Cannot get the window ID for a mouse click.
Solution: Add v:mouse_winid.
https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
|
|
|
|
|
|
|
| |
Problem: balloon eval only gets the window number, not the ID.
Solution: Add v:beval_winid.
https://github.com/vim/vim/commit/c9721bdc63378cc6123e775ffe43e9cba30322b3
|
|
|
|
|
|
|
|
| |
Problem: A plugin does not know when VimEnter autocommands were already
triggered.
Solution: Add the v:vim_did_enter variable.
https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
|
|
|
|
|
|
|
|
|
| |
Adds two undocumented v: variables: _null_list and _null_dict because I do not
know a reproducible way to get such lists (though I think I heard about this)
and dictionaries (do not remember hearing about them). NULL strings are obtained
using $XXX_UNEXISTENT_VAR_XXX.
Fixes crash in json_encode($XXX_UNEXISTENT_VAR_XXX). Other added tests worked
fine before this commit.
|
|
|
|
| |
Also makes sure that compiler will error out when new name is longer then
vv_filler.
|
|
|
|
|
|
| |
Error [found][1] by oni-link.
[1]: https://github.com/neovim/neovim/pull/4131/files#r52239384
|
| |
|
|
|
|
|
| |
To get v:none back just rever this commit. This will not make json*() functions
compatible with Vim though.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
receivers.
Add helper functions dict_clear and dict_set_keys_readonly.
|
|
|
|
|
|
|
|
|
| |
Problem: Writing tests for Vim script is hard.
Solution: Add assertEqual(), assertFalse() and assertTrue() functions. Add
the v:errors variable. Add the runtest script. Add a first new
style test script.
https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Examples:
let g:SR = [[]]
call add(g:SR[0], g:SR)
wshada
" E952: Unable to dump variable g:SR: container references itself in index 0, index 0
let g:F = {'_TYPE': v:msgpack_types.map, '_VAL': [[{'abc': 1}, function("tr")]]}
wshada
" E951: Error while dumping variable g:F, key {'abc': 1} at index 0 from special map, key '': attempt to dump function reference
" (no msgpack#string available)
" E951: Error while dumping variable g:F, key {="abc": 1} at index 0 from special map, key '': attempt to dump function reference
" (msgpack#string available)
let g:F = {'_TYPE': v:msgpack_types.map, '_VAL': [[g:SR, function("tr")]]}
wshada
" E951: Error while dumping variable g:F, key [[[[{E724@0}]]]] at index 0 from special map, index 1: attempt to dump function reference
call msgpackdump([g:SR])
" E952: Unable to dump msgpackdump() argument, index 0: container references itself in index 0, index 0
Not tested yet.
|
|
|
|
|
|
|
| |
Problem: It is not possible for a plugin to adjust to a changed setting.
Solution: Add the OptionSet autocommand event. (Christian Brabandt)
https://github.com/vim/vim/commit/537443018d41918639695a442c91b34ccec69fc3
|
|
|
|
| |
This writes the logfile and stops profiling.
|
| |
|
|\
| |
| | |
msgpack viml functions for dump/restore
|
| | |
|
|/
|
|
|
| |
Remove static modifier from func_call
Move MAX_FUNC_ARGS definnition from eval.c to eval.h
|
|
|
|
|
|
|
| |
Reviewed-by: Michael Reed <m.reed@mykolab.com>
Reviewed-by: Luke Andrew <luke.github@la.id.au>
Reviewed-by: Justin M. Keyes <justinkz@gmail.com>
Reviewed-by: Florian Walch <florian@fwalch.com>
|
|
|
|
|
|
|
|
|
|
| |
- Remove JobActivity autocmd and v:job_data variable
- Simplify `jobstart` to receive:
- An argument vector
- An optional dictionary which may contain any of the current `jobstart`
options plus `on_stdout`, `on_stderr` and `on_exit` callbacks.
- Refactor and add more job tests
- Update documentation
|
|
|
|
|
| |
This function can be used by API clients to execute a command and capture the
output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Should be better than gettimeofday() since libuv uses higher resolution
clocks on most UNIX platforms. Libuv also tries to use monotonic clocks,
kernel bugs notwithstanding, which is another win over gettimeofday().
Necessary for Windows, which doesn't have gettimeofday(). In vanilla vim,
Windows uses QueryPerformanceCounter, which is the correct primitive for
this sort of things, but that was removed when slimming up the codebase.
Libuv uses QueryPerformanceCounter to implement uv_hrtime() on Windows so
the behaviour of vim profiling on Windows should now be the same.
The behaviour on Linux should be different (better) though, libuv uses more
accurate primitives than gettimeofday().
Other misc. changes:
- Added function attributes where relevant (const, pure, ...)
- Convert functions to receive scalars: Now that proftime_T is always a
(uint64_t) scalar (and not a struct), it's clearer to convert the
functions to receive it as such instead of a pointer to a scalar.
- Extract profiling funcs to profile.c: make everything clearer and reduces
the size of the "catch-all" ex_cmds2.c
- Add profile.{c,h} to clint and -Wconv:
- Don't use sprintf, use snprintf
- Don't use long, use int16_t/int32_t/...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
buffer.h:
buflist_getfile() flags
buflist_new() flags
buf_freeall() flags
do_buffer() flags
charset.h:
chartab[] flags
edit.h:
in_cinkeys() flags
change_indent() flags
beginline() flags
insertchar() flags
nv_mousescroll() flags
eval.c
AUTOLOAD_CHAR
eval.h:
enum for vimvars[]
ex_cmds.h:
do_ecmd
read_viminfo flags
ex_cmds2.h:
check_changed() flags
do_source() flags
ex_cmds_defs.h:
BAD_* flags
ex_docmd.h:
VALID_PATH VALID_HEAD
EXMODE_*
do_cmdline() flags
added include
ex_getln.c
*_ESC_CHARS definitions
ex_getln.h:
history table flags - used by add_to_history()
fileio.h:
readfile() flags
event_T definition
getchar.h:
ins_typebuf() flags
KEYLEN_*
globals.h:
NO_SCREEN
NO_BUFFERS
SEA_* defines
current_SID flags
hlf_T enum
HL_FLAGS
do_profiling() flags
schar_T
sattr_T
indent.h:
set_indent() flags
macros.h:
BINARY_FILE_IO flags
mbyte.h:
MB_BYTE2LEN*
ENC_*
memfile.h:
mf_sync() flags
misc1.h:
open_line() flags
message.h:
do_dialog() flags
vim_dialogyesno() flags
DLG_BUTTON_*
normal.h:
find_ident_under_cursor() flags
ops.h:
do_put() flags
operator ID's
option.h:
buf_copy_options() flags
OPT_* flags
os_unix.h:
mch_nodetype() flags
quickfix.h:
skip_vimgrep_pat() flags
regexp.h:
vim_regcomp() flags
values for reg_do_extmatch
search.h:
do_search() flags
search_regcomp() flags
findmatchlimit() flags
syntax.h:
HL_* flags
HL_FOLD is used in buffer_defs.h but nvim
compiles just fine with the defines in
syntax.h
tag.h:
do_tag() flags
find_tags() flags
term.h:
TBUFSZ flags
MOUSE flags
ui.h:
jump_to_mouse() flags
window.h:
file_name_in_line() flags
win_split() flags
MIN_LINES
MIN_COLUMNS
Remove VimClipboard which should have been removed with PR #921.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The 'stripdecls.py' script replaces declarations in all headers by includes to
generated headers.
`ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI
This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.
Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
|