| Commit message (Collapse) | Author | Age |
... | |
| |
|
|
|
|
|
| |
This ensures memory chunks for libuv handles are only freed after the event loop
no longer has references to it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of a single 'job read' callback, job control consumers need to provide
callbacks for "stdout read", "stderr read" and "exit". For vimscript, the
JobActivity autocommand is still used to handle every job event, for example:
```vim
:let srv1_id = jobstart('netcat-server-1', 'nc', ['-l', '9991'])
:let srv2_id = jobstart('netcat-server-2', 'nc', ['-l', '9991'])
function JobEvent()
" v:job_data[0] = the job id
" v:job_data[1] = the event type, one of "stdout", "stderr" or "exit"
" v:job_data[2] = data read from stdout or stderr
if v:job_data[1] == 'stdout'
let str = 'Message from job '.v:job_data[0].': '.v:job_data[2]
elseif v:job_data[1] == 'stderr'
let str = 'Error message from job '.v:job_data[0].': '.v:job_data[2]
else
" Exit
let str = 'Job '.v:job_data[0].' exited'
endif
call append(line('$'), str)
endfunction
au JobActivity netcat-server-* call JobEvent()
```
And to see messages from 'job 1', run in another terminal:
```sh
bash -c "while true; do echo 123; sleep 1; done" | nc localhost 9991
```
|
|
|
|
|
|
|
| |
RStream will be the main way Neovim receives asynchronous messages, so it is
best to have a specialized EventType for it. A new flag parameter was added to
`rstream_new` which tells the RStream instance to defer event handling for later
with KE_EVENT instead of handling it directly from libuv callback.
|
|
|
|
|
| |
Each RStream instance will now stop its libuv watcher when the buffer is full,
and automatically restart when some data is read with `rstream_read`.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Cursurline highlighting not redrawn when scrolling. (John
Marriott)
Solution: Check for required redraw in two places.
https://code.google.com/p/vim/source/detail?r=b650f2db8f9604124c0ddfb14af0c04bd4ae0580
|
|
|
|
|
|
|
| |
Problem: Crash for "vim -u NONE -N -c '&&'".
Solution: Check for the pattern to be NULL. (Dominique Pelle)
https://code.google.com/p/vim/source/detail?r=80421d934ebde183ce545ab8d9eb3a4c2065c169
|
|
|
|
|
| |
'textmode' is an option obsoleted for at least 10 years in favor of
'fileformat'.
|
|
|
|
|
|
|
|
|
|
| |
Possible bug reported by @oni-link [here](https://github.com/neovim/neovim/pull/485/files#r11664573).
It was handled by doing a circular walk through a key buffer and saving the
index between calls with a static variable.
Also replaced some `char_u` occurrences by `uint8_t` and removed unused
headers in input.c module.
|
|
|
|
|
|
|
|
|
| |
Dependencies are now hosted in a github repository and this brings two advantages:
- Improved build time with travis since we no longer have to build each
dependency
- Less chance of build errors due to external servers being down since Github is
now the single point of failure
|
|
|
|
|
| |
Removed modelines are better than modelines that differ from file to
file.
|
| |
|
| |
|
|
|
|
|
|
| |
The `RStream` class hides the differences between files and other types of
streams with a simpler, general-purpose API for performing non-blocking reads
with libuv. Most of the code was adapted from input.c.
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Crash when using cpp syntax file with pattern using external
match. (Havard Garnes)
Solution: Discard match when end column is before start column.
https://code.google.com/p/vim/source/detail?r=4901a36479f200b2e6700ad91c26911d92deb886
|
|
|
|
|
|
|
|
|
| |
Problem: Crash when BufAdd autocommand wipes out the buffer.
Solution: Check for buffer to still be valid. Postpone freeing the
buffer structure. (Hirohito Higashi)
https://code.google.com/p/vim/source/detail?r=29eb4c2a33ac701bfcd4d2e2bed7864eba876e0e
|
|
|
|
|
|
|
| |
Problem: ":tjump" shows "\n" as "\\n".
Solution: Skip over "\" that escapes a backslash. (Gary Johnson)
https://code.google.com/p/vim/source/detail?r=8d1ba0a23588932d22ad37cbd87ae3bbd4bfeff8
|
|
|
|
|
|
|
|
| |
Problem: ":e +" does not position cursor at end of the file.
Solution: Check for "+" being the last character (ZyX)
https://code.google.com/p/vim/source/detail?r=98bfec9ea7608f312129475d4ca0ae6d1c6c232e
|
|
|
|
|
|
|
|
| |
Problem: Can't get the command that was used to start Vim.
Solution: Add v:progpath. (Viktor Kojouharov)
https://code.google.com/p/vim/source/detail?r=d2286df8719d6e99c743e3bf6ac14d1f9debc84d
|
|
|
|
|
|
|
|
|
| |
Problem: Escaping special characters for using "%" with a shell command
is inconsistant: parentheses are escaped but spaces are not.
Solution: Only escape "!". (Gary Johnson)
https://code.google.com/p/vim/source/detail?r=22a1d5762ba3a75984e89dcc47a65498f63a6c2c
|
|
|
|
|
|
|
| |
Problem: ":%s/\n//" uses a lot of memory. (Aidan Marlin)
Solution: Turn this into a join command. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=845608965bd9d0b2755997a7be812746885ff105
|
|
|
|
|
|
|
|
| |
Problem: Using ":let" for listing variables and the second one is a
curly braces expression may fail.
Solution: Check for an "=" in a better way. (ZyX)
https://code.google.com/p/vim/source/detail?r=839cca5ec18d560e3714065e54ed38b6e812aaf7
|
|
|
|
|
|
|
|
| |
Problem: Quickfix doesn't resize on ":copen 20".
Solution: Resize the window when requested. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=a548aae15b3a27a56d814900049785c29c01a37a
|
|
|
|
|
|
|
|
| |
Problem: It's not easy to remove duplicates from a list.
Solution: Add the uniq() function. (LCD)
https://code.google.com/p/vim/source/detail?r=ddc3f32a4b2191f829206322d46f0e9c7e365e22
|
|
|
|
|
|
|
|
|
| |
Problem: Inconsistency: ":sp foo" does not reload "foo", unless "foo"
is the current buffer. (Liang Li)
Solution: Do not reload the current buffer on a split command.
https://code.google.com/p/vim/source/detail?r=f069a3a0f84451aa498c6c22d8f922d1e695e96d
|
|
|
|
|
|
|
|
| |
Problem: When 'relativenumber' or 'cursorline' are set the window is
redrawn much to often. (Patrick Hemmer, Dominique Pelle)
Solution: Check the VALID_CROW flag instead of VALID_WROW.
https://code.google.com/p/vim/source/detail?r=37af1e6e91bb1e8ceb89d3ba1c49a04ffd889880
|
|
|
|
|
|
|
|
| |
Problem: It's not possible to open a new buffer without creating a swap
file.
Solution: Add the ":noswapfile" modifier. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=e25a04c1c515e6eb32197291472f89bcadfabf89
|
|
|
|
|
|
|
|
| |
Problem: Visual block mode plus virtual edit doesn't work well with tabs.
(Liang Li)
Solution: Take coladd into account. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=420fd9cb86d51a92c4307a746557e81914c6d6c4
|
|
|
|
|
|
|
| |
Problem: When repeating a filter command "%" and "#" are expanded.
Solution: Escape the command when storing for redo. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=bb402c49379de97fcd475fbbbbdc5ed41e5dff07
|
|
|
|
|
| |
This update should fix some build problems as shown in the changelog:
http://luajit.org/changes.html
|
|
|
|
| |
This should help reduce conflicts when merging patches from upstream
|
|
|
|
|
|
|
|
| |
Problem: The cursor report sequence is sometimes not recognized and results
in entering replace mode.
Solution: Also check for the cursor report when not asked for.
https://code.google.com/p/vim/source/detail?r=2aa909427e44cd3aac7def024b66e41d0c9d0e0d
|
|
|
|
|
|
| |
Apparently busted 1.11.0 is broken(https://github.com/Olivine-Labs/busted/issues/236)
in a way that is causing the unit tests to fail. This pins the version to 1.10.0
and also fixes a wrong variable set when msgpack was added as a dependency
|
|
|
|
|
|
|
|
|
| |
As of v0.11.23 libuv's uv_timer_cb, uv_async_cb, uv_prepare_cb, uv_check_cb and
uv_idle_cb no longer require a status parameter (this went unused in the first
place).
Bump third-party dependency `libuv` up to 0.11.23 and remove the extra
parameters from the callbacks.
|
|
|
|
|
|
|
|
| |
Problem: Escaping a file name for shell commands can't be done without a
function.
Solution: Add the :S file name modifier.
https://code.google.com/p/vim/source/detail?r=40f18a1c1592c8b4047f6f2a413557f48a99c55f
|
|
|
|
|
|
|
|
|
| |
Problem: ":mksession" writes command to move to second argument while it
does not exist. When it does exist the order might be wrong.
Solution: Use ":argadd" for each argument instead of using ":args" with a
list of names. (Nobuhiro Takasaki)
https://code.google.com/p/vim/source/detail?r=0ace3a24c2a0153f0aaf9b619d3958e7f486705f
|
|
|
|
|
|
|
|
| |
Problem: A mapping where the second byte is 0x80 doesn't work.
Solution: Unescape before checking for incomplete multi-byte char. (Nobuhiro
Takasaki)
https://code.google.com/p/vim/source/detail?r=f5120cbf16b9a9c6e0fbb599a6524e05ecf11393
|
|
|
|
|
| |
It was being installed because of moonscript, but now it's listed as a
dependency explicitly.
|
|
|
|
|
| |
These checks will stop the build process with meaningful error messages if
any of those packages are not installed.
|
|
|
|
|
|
|
| |
A lua executable is now required for the build process since a lpeg-based script
is used for generating a dispatch function and metadata for the msgpack API
frontend. This removes the need for setting the LUA_BINARY environment variable.
Fixes #518.
|
|
|
|
|
|
|
| |
Problem: Parsing 'errorformat' is not correct.
Solution: Reset "multiignore" at the start of a multi-line message. (Lcd)
https://code.google.com/p/vim/source/detail?r=fb24b025c7cf07db79a559a3091db42e02c1af86
|
|
|
|
| |
Also removed an unused parameter.
|
|
|
|
|
|
|
| |
Problem: Fixes are not tested.
Solution: Add a test for not autoloading on assignment. (Yukihiro Nakadaira)
https://code.google.com/p/vim/source/detail?r=22387c8eec43ea8b1b704cad49c8f7187e2fd579
|
|
|
|
|
|
|
| |
Problem: Typos in messages.
Solution: "then" -> "than". (Dominique Pelle)
https://code.google.com/p/vim/source/detail?r=a8650e2a0b5a5936f7d503429180df47df2aa775
|
|
|
|
|
|
|
| |
Problem: ]P doesn't paste over Visual selection.
Solution: Handle Visual mode specifically. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=54b1a90c937380195fad6a52408aa3b4eed6d8d1
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a lua script which parses the contents of 'api.h'. After the api is
parsed into a metadata table. After that, it will generate:
- A msgpack blob for the metadata table. This msgpack object contains everything
scripting engines need to generate their own wrappers for the remote API.
- The `msgpack_rpc_dispatch` function, which takes care of validating msgpack
requests, converting arguments to C types and passing control to the
appropriate 'api.h' function. The result is then serialized back to msgpack
and returned to the client.
This approach was used because:
- It automatically modifies `msgpack_rpc_dispatch` to reflect API changes.
- Scripting engines that generate remote call wrappers using the msgpack
metadata will also adapt automatically to API changes
|