aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | eval: Defer execution of JobActivity autocommandsThiago de Arruda2014-10-21
| | | | | | | | | | | | JobActivity autocommands run vimscript and must be executed on Nvim main loop. Since the previous commit removed automatic calls to `event_push` on RStream/Job callbacks, this adds it back, but in eval.c where job control is implemented.
* | event: Extract event_poll loops to `event_poll_until` macroThiago de Arruda2014-10-21
| | | | | | | | | | | | | | A pattern that is becoming common across the project is to poll for events until a certain condition is true, optionally passing a timeout. To address this scenario, the event_poll_until macro was created and the job/channel/input modules were refactored to use it on their blocking functions.
* | event: Remove automatic event deferallThiago de Arruda2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is how asynchronous events are currently handled by Nvim: - Libuv event loop is entered when Nvim blocks for user input(os_inchar is called) - Any event delivered by libuv that is not user input is queued for processing - The `K_EVENT` special key code is returned by os_inchar - `K_EVENT` is returned to a loop that is reading keys for the current Nvim mode, which will be handled by calling event_process() This approach has the advantage of integrating nicely with the current codebase, eg: vimscript code can be executed asynchronously with little surprises(Its the same as if the user typed a key). The problem with using keys to represent any event is that it also interferes with operators, and not every event needs or should do that. For example, consider this scenario: - A msgpack-rpc client calls vim_feedkeys("d") - Nvim processes K_EVENT, pushing "d" to the input queue - Nvim processes "d", entering operator-pending mode to wait for a motion - The client calls vim_feedkeys("w"), expecting Nvim to delete a word - Nvim processes K_EVENT, breaking out of operator-pending and pushing "w" - Nvim processes "w", moving a word This commit fixes the above problem by removing all automatic calls to `event_push`(which is what generates K_EVENT input). Right now this also breaks redrawing initiated by asynchronous events(and possibly other stuff too, Nvim is a complex state machine and we can't simply run vimscript code anywhere). In future commits the calls to `event_push` will be inserted only where it's absolutely necessary to run code in "key reading loops", such as when executing vimscript code or mutating editor data structures in ways that currently can only be done by the user.
* | event: Remove EventType enum and pass a callback to `event_push`Thiago de Arruda2014-10-21
| | | | | | | | | | | | This approach is more flexible because we don't need to support a fixed set of "event types", any module can push events to be handled in main loop by simply passing a callback to the Event structure.
* | channel: Simplify resource managementThiago de Arruda2014-10-21
| | | | | | | | | | | | | | | | | | - Remove unused rpc_call_level field - Add `returned` field to ChannelCallFrame. This is set when the call returns and is the only condition checked by `channel_send_call`. - Add job_exit callback for properly closing channels created from job(the job_exit callback is only called after all read callbacks, so it's the only safe place to free the channel).
* | msgpack-rpc: Create subdirectory for msgpack-rpc modulesThiago de Arruda2014-10-21
| | | | | | | | | | Create the msgpack_rpc subdirectory and move all modules that deal with msgpack-rpc to it. Also merge msgpack_rpc.c into msgpack_rpc/helpers.c
* | Merge pull request #1311 from GokuITA/issue1295Justin M. Keyes2014-10-20
|\ \ | | | | | | Fixed sign column redraw
| * | Fix sign column redrawVictor Fonseca2014-10-20
| |/ | | | | | | | | | | | | Fixed a bug introduced in SHA:aa66f2487edde49b9a5ba10cd70d706d06a94e25, due to a misapplied patch. buf_del_sign should redraw the window if the sign deleted was the last one in the buffer. Also moved the curwin verification to the correct function.
* / version: remove "Running in Vi compatible mode" message #1309Jeff Widman2014-10-20
|/
* rstream: Add rbuffer_read_ptr/rbuffer_write_ptr functionsThiago de Arruda2014-10-19
| | | | | | | | | rbuffer_data was renamed to rbuffer_read_ptr, and it represents the next read position in a RBuffer instance. Similarly, rbuffer_write_ptr was added to represent the next write position. Also, rbuffer_data was being used for writing(in alloc_cb), replace that by rbuffer_write_ptr.
* rstream: Initialize 'rstream' field in RBuffer classThiago de Arruda2014-10-19
| | | | | This field is used in a conditional jump, so this initialization is fixing a bug.
* ui: Refactor input buffer handlingThiago de Arruda2014-10-18
| | | | | All input buffer code was moved to os/input.c, and `inbuf` is now a `RBuffer` instance(which abstracts static buffer manipulation).
* rstream: Extract some RStream functionality to RBufferThiago de Arruda2014-10-18
| | | | | | | | RBuffer instances represent the internal buffer used by RStreams. This changes RStream constructor to receive RBuffer pointers and adds a set of RBuffer methods that expose the lower level buffer manipulation to consumers of the RStream API.
* Merge pull request #1297 from splinterofchaos/server-errorsJustin M. Keyes2014-10-17
|\ | | | | server: Improve error reporting.
| * server: Improve error reporting.Scott Prager2014-10-17
| | | | | | | | | | | | | | | | If we fail to bind to the server address, do not try and listen lest the reported error always be "invalid argument". Also, return whether or not we errored from server_init() in case we want to respond differently in the future.
* | vim-patch:7.4.418Scott Prager2014-10-16
|/ | | | | | | | Problem: When leaving ":append" the cursor shape is like in Insert mode. (Jacob Niehus) Solution: Do not have State set to INSERT when calling getline(). https://code.google.com/p/vim/source/detail?r=v7-4-418
* vim-patch:7.4.440 #1244Naveen Kumar Molleti2014-10-16
| | | | | | | | Problem: Omni complete popup drawn incorrectly. Solution: Call validate_cursor() instead of check_cursor(). (Hirohito Higashi) https://code.google.com/p/vim/source/detail?r=v7-4-440
* vim-patch:7.4.439 #1245Naveen Kumar Molleti2014-10-16
| | | | | | | | Problem: Duplicate message in message history. Some quickfix messages appear twice. (Gary Johnson) Solution: Do not reset keep_msg too early. (Hirohito Higashi) https://code.google.com/p/vim/source/detail?r=v7-4-439
* vim-patch:7.4.436 #1246Naveen Kumar Molleti2014-10-16
| | | | | | | | | Problem: ml_get error for autocommand that moves the cursor of the current window. Solution: Check the cursor position after switching back to the current buffer. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=v7-4-436
* Merge pull request #1265 from dkns/vp-7.4.444Justin M. Keyes2014-10-13
|\ | | | | vim-patch:7.4.444
| * vim-patch:7.4.444Daniel Kosinski2014-10-04
| | | | | | | | | | | | | | Problem: Reversed question mark not recognized as punctuation. ( Issue 258 ) Solution: Add the Supplemental Punctuation range. https://code.google.com/p/vim/source/detail?r=v7-4-444
* | vim-patch:7.4.408Scott Prager2014-10-10
| | | | | | | | | | | | | | Problem: Visual block insert breaks a multi-byte character. Solution: Calculate the position properly. (Yasuhiro Matsumoto) https://code.google.com/p/vim/source/detail?r=v7-4-408
* | vim-patch:7.4.397Scott Prager2014-10-09
| | | | | | | | | | | | | | | | Problem: Matchparen only uses the topmost syntax item. Solution: Go through the syntax stack to find items. (James McCoy) Also use getcurpos() when possible. https://code.google.com/p/vim/source/detail?r=v7-4-397
* | version: remove "Compilation" and "Linking" messages.Justin M. Keyes2014-10-07
| | | | | | | | | | | | Can't reliably get this information from cmake (#1267), so it's misleading to show these messages at all. We can always revert this commit if we find a way later.
* | version: generate "build number" from commit timestampJustin M. Keyes2014-10-07
| | | | | | | | | | | | | | | | | | | | - cmake: git_timestamp() returns last commit time formatted as `YYYYMMddHHmm`. - Always include commit hash in :version and --version output. `nvim --version` sample output: NVIM 0.0.0-alpha+201410070245 (compiled Oct 7 2014 05:30:45) Commit: f747b2b1ff7bfe7eb00cc2be82d7af87c98f1111
* | version: remove non-functional Vim version identifiersJustin M. Keyes2014-10-07
| |
* | version: remove "Included patches" messageJustin M. Keyes2014-10-07
| | | | | | | | It is meaningless to Nvim.
* | version: update user-facing version indicatorsJustin M. Keyes2014-10-07
| | | | | | | | | | | | | | - VIM_VERSION_LONG and VIM_VERSION_LONG_DATE do not affect plugins, they are only cosmetic. - Vim-related version identifiers will be preserved for plugin compatibility (has("patchXXX") and v:version).
* | vim-patch:7.4.375Scott Prager2014-10-06
| | | | | | | | | | | | | | Problem: Test 63 fails when run with GUI-only Vim. Solution: Add guibg attributes. (suggested by Mike Soyka) https://code.google.com/p/vim/source/detail?r=v7-4-375
* | Mark patches 363 and 366 NA.Scott Prager2014-10-06
| |
* | Removes shelltype option and all revelant doc. #1249Joseph Anthony Pasquale Holsten2014-10-06
|/ | | | Fixes #1240
* Merge pull request #1208 from war1025/dev/remove_for_all_windowsJustin M. Keyes2014-10-03
|\ | | | | Remove FOR_ALL_WINDOWS and replace with FOR_ALL_WINDOWS_IN_TAB(curtab)
| * Remove W_NEXT use `->w_next`Wayne Rowcliffe2014-09-24
| |
| * Replace FOR_ALL_WINDOWS with FOR_ALL_WINDOWS_IN_TAB(curtab)Wayne Rowcliffe2014-09-24
| |
* | wstream/shell: Fix memory errors caused by os_systemThiago de Arruda2014-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The os_system function uses a write callback to close the input stream when the write completes, but this causes a memory error because the callback is invoked right before the stream is freed by the caller. This fixes the problem by removing the callback set by os_system. Instead, it calls job_close_in immediately after writing(the stream will only close after the write completes). The 'pending' parameter was also removed from the 'write_cb' as it should be hidden by the wstream module. While the `wstream_set_write_cb` and `job_write_cb` are no longer used, they will remain in the codebase for future use.
* | eval: Fix `save_tv_as_string` to handle non-string typesThiago de Arruda2014-10-01
| |
* | test: Add some specs for the viml function `system()`Thiago de Arruda2014-10-01
| | | | | | | | These new specs replace src/nvim/testdir/test_system
* | Use line-specific method names where possible to remove ambiguity and ↵Paul Jolly2014-10-01
| | | | | | | | possibility of future clashes
* | Implement save_tv_as_string to assist in #1176.Scott Prager2014-09-30
| |
* | Fix system() output truncation bug.Scott Prager2014-09-30
| | | | | | | | Replace NULs with SOH to restore the old behaviour of get_cmd_output().
* | Old-style test for system(list).Scott Prager2014-09-30
| |
* | vim-patch:7.4.256Scott Prager2014-09-30
| | | | | | | | | | | | | | | | | | Problem: Using systemlist() may cause a crash and does not handle NUL characters properly. Solution: Increase the reference count, allocate memory by length. (Yasuhiro Matsumoto) https://code.google.com/p/vim/source/detail?r=v7-4-256
* | Return list from rettv_list_alloc.Scott Prager2014-09-30
| |
* | vim-patch:7.4.248Scott Prager2014-09-30
| | | | | | | | | | | | | | Problem: Cannot distinguish between NL and NUL in output of system(). Solution: Add systemlist(). (ZyX) https://code.google.com/p/vim/source/detail?r=v7-4-248
* | vim-patch:7.4.247Scott Prager2014-09-30
| | | | | | | | | | | | | | | | | | | | | | Problem: When passing input to system() there is no way to keep NUL and NL characters separate. Solution: Optionally use a list for the system() input. (ZyX) https://code.google.com/p/vim/source/detail?r=v7-4-247 Implement write_list_to_string() as well since write_list() only works on files.
* | memory: memchrsub and strchrsubScott Prager2014-09-30
| |
* | memory: xstrchrnul and xmemscan.Scott Prager2014-09-30
| |
* | Merge pull request #1225 from mhinz/p7.4.454Justin M. Keyes2014-09-26
|\ \ | | | | | | vim-patch:7.4.454
| * | Update version.c to 7.4.454Marco Hinz2014-09-23
| | |
| * | vim-patch:7.4.454Marco Hinz2014-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When using a Visual selection of multiple words and doing CTRL-W_] it jumps to the tag matching the word under the cursor, not the selected text. (Patrick hemmer) Solution: Do not reset Visual mode. (idea by Christian Brabandt) https://code.google.com/p/vim/source/detail?r=0cdff7c268559f8f34eae073a013ece71b62b9e3