aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* compilation: Add -Wconversion to more files and validate CONV_SOURCESThiago de Arruda2014-10-21
| | | | | | All files under the os, api and msgpack_rpc directories have -Wconversion automatically applied. CONV_SOURCES is also checked for missing files(when renaming, for example)
* api: Add FUNC_ATTR_DEFERRED attribute to a number of functionsThiago de Arruda2014-10-21
| | | | | Any function that can directly mutate the screen or execute vimscript had the attribute applied.
* msgpack-rpc: Allow selective deferral API callsThiago de Arruda2014-10-21
| | | | | | | | | | | | | Since all API functions now run immediately after a msgpack-rpc request is parsed by libuv callbacks, a mechanism was added to override this behavior and allow certain functions to run in Nvim main loop. The mechanism is simple: Any API function tagged with the FUNC_ATTR_DEFERRED (a "dummy" attribute only used by msgpack-gen.lua) will be called when Nvim main loop receives a K_EVENT key. To implement this mechanism it was necessary some restructuration on the msgpack-rpc modules, especially in the msgpack-gen.lua script.
* 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 #1319 '[RFC] A few fixes for YCM contrib docs and code'Thiago de Arruda2014-10-21
|\
| * A few fixes for YCM contrib docs and codeJeff Widman2014-10-21
|/
* Merge pull request #1313 from fwalch/runtime-programsJohn Szakmeister2014-10-21
|\ | | | | CMake: Set execute permissions during installation.
| * CMake: Set execute permissions during installation.Florian Walch2014-10-20
| |
* | 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
|/
* Merge PR #1310 'Improve YCM contrib.'Thiago de Arruda2014-10-20
|\
| * Improve YCM contrib: Improve documentation.Eliseo Martínez2014-10-20
| |
| * Improve YCM contrib: Fix 'no newline at end of file' issue.Eliseo Martínez2014-10-20
|/ | | | | | | | | | | | | | | Problem: YCM was reporting a much disturbing warning about a missing newline at the end of some files. This was odd, as the newlines were there and the warning only was shown for some files, not for all of them. Cause: After discussing this issue with @Valloric (see https://github.com/Valloric/YouCompleteMe/issues/950), it turned out that not YCM, but libclang is responsible for it. This is, same compilation flags that produce no warnings with clang-the-binary on the command line, do produce them with libclang-the-library when used by YCM. Solution: Add an extra flag (-Wno_newline_eof) to those extracted from configuration database before passing them to YCM.
* Merge PR #1306 'RBuffer fixes'Thiago de Arruda2014-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.
* Merge PR #1300 'Refactor input buffer'Thiago de Arruda2014-10-18
|\
| * 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.
* | Merge pull request #1299 from jszakmeister/add-missing-luajit-flagsJohn Szakmeister2014-10-17
|\ \ | | | | | | Add missing linker flags required for LuaJIT on 64-bit Mac OS X.
| * | Add missing linker flags required for LuaJIT on 64-bit Mac OS X.John Szakmeister2014-10-17
|/ / | | | | | | This was brought up in #1294.
* | Merge pull request #1298 from splinterofchaos/418Justin M. Keyes2014-10-16
|\ \ | | | | | | vim-patch:7.4.418
| * | 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
* | Merge PR #1296 'Use the lua client to run functional tests'Thiago de Arruda2014-10-16
|\ \ | |/ |/|
| * test: Use lua to perform sanity API checksThiago de Arruda2014-10-16
| | | | | | | | | | | | | | Sanity API checks made by the python-client in the api-python travis target were converted to lua and will now live in this repository. This will simplify performing breaking changes to the API as it won't be necessary to send parallel PRs the python-client.
| * test: Remove run-functional-tests.pyThiago de Arruda2014-10-16
| | | | | | | | | | | | Now that the lua client is available, python/lupa are no longer necessary to run the functional tests. The helper functions previously defined in run-functional-tests.py were adapted to test/functional/helpers.lua.
| * deps: Add lua nvim-client as a dependencyThiago de Arruda2014-10-16
|/
* 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 #1293 from justinmk/homebrewJustin M. Keyes2014-10-15
|\ | | | | handle missing git or .git/
| * cmake: handle missing git or .git/Justin M. Keyes2014-10-15
| | | | | | | | | | | | | | GetGitRevisionDescription.cmake: we don't need fine-grained failure modes, we only need "yes" or "no". fix #1292
| * homebrew: look for .git/ outside of build workspace #1274Xu Cheng2014-10-15
|/
* 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
* | Merge pull request #1280 from splinterofchaos/visual-mbJustin M. Keyes2014-10-10
|\ \ | | | | | | vim-patch:7.4.408
| * | 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
* | Merge pull request #1279 from splinterofchaos/matchparenJustin M. Keyes2014-10-10
|\ \ | | | | | | vim-patch:7.4.397
| * | 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
* | Merge pull request #1273 from fwalch/fix-homebrewJustin M. Keyes2014-10-09
|\ \ | | | | | | homebrew: fix install prefix
| * | homebrew: fix install prefixFlorian Walch2014-10-09
|/ /
* | Merge pull request #1267 from justinmk/versionJustin M. Keyes2014-10-09
|\ \ | | | | | | version refactor