aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* getchar: fix infinite loop due to pending eventsThiago de Arruda2014-07-17
| | | | | The `inchar` function could enter an infinite loop if there are events pending to be processed when an interrupt is received.
* api: make buffer_{get,set}_slice automatically assume `include_end`Thiago de Arruda2014-07-17
| | | | | This is for compatibility with python-vim interface: When passing an end index with a value higher than the last index, assume the `include_end` flag
* provider: Add support for clipboard registers.Thiago de Arruda2014-07-17
| | | | | | | | | | | | | This reimplements the '+'/'*' clipboard registers(both are aliases to the same register, no dedicated storage for the X11 selection) on top of the provider infrastructure. This adds two new 'unnamedclip' option, has the same effect of setting 'clipboard' to 'unnamed/unnamedplus' in vim The 'clipboard' option was not reused because all values(except 'unnamedplus') seem to be useless for Neovim, and the code to parse the option was relatively big. The option remains for vim compatibility but it's silently ignored.
* provider: Add support for python commands/functionsThiago de Arruda2014-07-17
| | | | | | | | This uses the provider/scripting infrastructure to reintroduce python support through the msgpack-rpc API. A new 'initpython' option was added, and it must be set to a command that will bootstrap the python provider the first time it's needed.
* provider: Add support functions for calling external interpretersThiago de Arruda2014-07-17
| | | | | | This uses the provider module infrastructure to implement common code for vimscript commands/functions that need to communicate with external interpreters, eg: pydo, rubydo, pyfile, rubyfile, etc.
* provider: New module used to expose extension points for core servicesThiago de Arruda2014-07-17
| | | | | | | | | | | | | | | | | Introducing the concept of providers: co-processes that talk with the editor through the remote API and provide implementation for one or more core services. The `provider_register` function and it's API wrapper can be used by channels that want to self-register as a service provider. Some old builtin vim features will be re-implemented as providers. The `provider_has_feature` function is used to check if a provider implementing a certain feature is available(It will be called by the `has` vimscript function to check for features in a vim-compatible way) This implements the provider module without exposing any extension points, which will be done in future commits.
* channel: Bugfixes and refactorThiago de Arruda2014-07-17
| | | | | | | | | | - All functions that require a channel id will fail when the channel was disabled - Rewrite `call_stack_unwind` as `call_set_error`. It will now disable the channel and set error on all frames. The stack will be unwinded automatically while the involved functions exit. - Remove `disable_channel` function. If channels are disabled, they will be closed as soon as possible
* job: No longer free the job data. It's now done by the exit callbackThiago de Arruda2014-07-17
|
* channel: Implement channel_exists functionThiago de Arruda2014-07-17
|
* channel: Refactor channel_from_job to return the channel idThiago de Arruda2014-07-17
|
* api: Refactor write_msg to use separate out/err buffersThiago de Arruda2014-07-17
|
* wstream: Pass WBuffer refcount as a constructor parameterThiago de Arruda2014-07-17
| | | | | | This is required to handle broadcasting when the first write fails. Ref: https://github.com/tarruda/neovim/commit/11916b6b595421ce2ece10f7aa40757cc4937c0c#commitcomment-6792287
* wstream: document default value for 'maxmem'Thiago de Arruda2014-07-17
|
* Fix #963.Pavel Platto2014-07-17
| | | | | | Problem: Bug was introduced because `os_open` returns `-errno` in case of an error instead of just `-1` which was returned by `mch_open`. Solution: Check return value with `< 0` instead of `== -1`.
* Fix some newline issues in the sv translation.John Szakmeister2014-07-17
|
* Move po generation from Make to CMake.John Szakmeister2014-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #902: localization build: `install`, `uninstall`, `prefixcheck targets. All the language-related bits will now build under CMake. Changes include: * Moving all non-generated sources into the NEOVIM_SOURCES variable to aid in generating the .pot file. * Moving a couple generated sources from NEOVIM_SOURCES and into NEOVIM_GENERATED_SOURCES. * Added NEOVIM_HEADERS to the executable and the library for folks who are using something other than Ninja or makefiles (that way the headers will show up in the IDE files). * Now uses gettext's `--update` switch to update the .po files, rather than doing a fragile `mv` dance that could leave you with a broken working tree if you press CTRL-C at the right time. * Creates `update-po-${LANG}` targets for updating individual languages, just like the original Makefile. * Also adds the `update-po` target for updating all the languages. * Ported the `check-${LANG}` style targets. They're `check-po-${LANG}` under CMake. * Handles all the one-off instances that were in the original Makefile. Fixed up ko.UTF-8.po to include the "Original translation" line like other .po files to make the generation of the "Generate from ..." comments consistent. Updated ko.po with the new text.
* Customize the log file for the check targets based on the input file.John Szakmeister2014-07-17
| | | | | | The idea being that it's better to segregate feedback, just in case someone is working on several translations. Now the check log will appear in `./build/src/nvim/po/check-${LANG}.log`.
* Revert "Merge #928 'Move po gen to cmake'"John Szakmeister2014-07-17
| | | | | This reverts commit 53fba180c32724809d8ab35238eea68440b7ac97, reversing changes made to a3b3db8256c259d10957d45666cf4179e328f3f4.
* Customize the log file for the check targets based on the input file.John Szakmeister2014-07-17
| | | | | | The idea being that it's better to segregate feedback, just in case someone is working on several translations. Now the check log will appear in `./build/src/nvim/po/check-${LANG}.log`.
* Move po generation from Make to CMake.John Szakmeister2014-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #902: localization build: `install`, `uninstall`, `prefixcheck targets. All the language-related bits will now build under CMake. Changes include: * Moving all non-generated sources into the NEOVIM_SOURCES variable to aid in generating the .pot file. * Moving a couple generated sources from NEOVIM_SOURCES and into NEOVIM_GENERATED_SOURCES. * Added NEOVIM_HEADERS to the executable and the library for folks who are using something other than Ninja or makefiles (that way the headers will show up in the IDE files). * Now uses gettext's `--update` switch to update the .po files, rather than doing a fragile `mv` dance that could leave you with a broken working tree if you press CTRL-C at the right time. * Creates `update-po-${LANG}` targets for updating individual languages, just like the original Makefile. * Also adds the `update-po` target for updating all the languages. * Ported the `check-${LANG}` style targets. They're `check-po-${LANG}` under CMake. * Handles all the one-off instances that were in the original Makefile. Fixed up ko.UTF-8.po to include the "Original translation" line like other .po files to make the generation of the "Generate from ..." comments consistent. Updated ko.po with the new text.
* vim: include used definitions in headersNicolas Hillegeer2014-07-16
| | | | | | | | This is not an exhaustive commit, it merely ameliorates the situations a bit. There are quite a few header files that don't include all the types they use in their function/struct/... definitions. This throws of the testing infrastructure (but is not such a problem for the main binary that has the "tumbleweed of includes"-phenomenon).
* memory.h: don't include vim.h in header filesNicolas Hillegeer2014-07-16
| | | | | Also include stdint.h in khash.h. It was transitively included by vim.h via memory.h before. khash.h accidentally relied on that.
* vim: move vim_acl_T to types.hNicolas Hillegeer2014-07-16
| | | | | Also include "types.h" in os_unix.h because it declares functions that return vim_acl_T.
* vim: move disptick_T from vim.h to syntax_defs.hNicolas Hillegeer2014-07-16
| | | | Make vim.h smaller, bit by bit.
* vim: move linenr_T and colnr_T to pos.hNicolas Hillegeer2014-07-16
| | | | Try to cut down vim.h's size. It's keeping us from testing more things.
* vim: move long_u from vim.h to types.hNicolas Hillegeer2014-07-16
| | | | | Seems to make no difference to the main binary, but it helps the tests a bit further along.
* hashtab.h: don't include vim.hNicolas Hillegeer2014-07-16
| | | | | | | Including vim.h in another header filer is asking for trouble. Test code that includes separate header files (e.g.: cimport './src/nvim/buffer.h'), has a really bad time with this. This is just one piece of the puzzle though.
* profiling: move static to function scopeNicolas Hillegeer2014-07-16
| | | | | It wasn't used anywhere else, our coding guidelines mandate the tightest scope possible.
* profiling: implement on top of os_hrtime()Nicolas Hillegeer2014-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | 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/...
* os: implement os_hrtimeNicolas Hillegeer2014-07-16
| | | | Just an alias to uv_hrtime. Provides a high-resolution timer.
* assert: add STATIC_ASSERT macroNicolas Hillegeer2014-07-16
| | | | | | | | | Can be quite handy, attempt to provide fallbacks for compilers that don't support _Static_assert (which is technically a C11 feature). Suppress warnings as best we can (Clang and GCC warn that we're using a C11 feature while in C99 mode). Needs to be tested for MSVC still.
* Add more commented patch numbers to version.c (3) #940oni-link2014-07-14
| | | | This should help reduce conflicts when merging patches from upstream.
* Create os/os_defs.h for os specific definitionsPavel Platto2014-07-14
|
* tempfile.c: refactor vim_settempdirPavel Platto2014-07-14
| | | | | | | - return result of setting and remove directory if the setting was not successful. - don't do `STRCPY` in case of `vim_FullName` failure because `vim_FullName` already did it.
* tempfile.c: fix style issues and commentsPavel Platto2014-07-14
|
* tempfile.c: enable -WconversionPavel Platto2014-07-14
|
* tempfile.c: add to clint-files and fix warningsPavel Platto2014-07-14
|
* Extract `tempfile` module from fileioPavel Platto2014-07-14
| | | | | | | Though this module is relatively small it has very clear boundaries. The last argument for extracting `tempfile` was the errors which I got when I was writing unittests for it: `cimport './src/nvim/fileio.h'` does not work for some reason.
* Add vim_gettempdir(), remove global vim_tempdirPavel Platto2014-07-14
| | | | | vim_gettempdir() and vim_maketempdir() was extracted from vim_tempname().
* Refactor vim_tempnamePavel Platto2014-07-14
| | | | | | | | | - temp_count is uint32_t now instead of long because it supposed to be at most 999999999 (comment on line 5227) temporary files. The most probably it was a long for compatibility with systems where int is 16-bit. - Use "nvim" as prefix for temp folder name instead of "v" - Remove unused parameter from vim_tempname
* Remove #ifdefs TEMPDIRNAMES and add TEMPDIRNAMES for WindowsPavel Platto2014-07-14
| | | | | | | | Vim does not define TEMPDIRNAMES for all systems, but it is defined for all systems supported by Neovim. Temporary directory names for Windows was obtained from GetTempPath() function documentation at MSDN. Additionally small renamings were performed.
* Remove USE_TMPNAMPavel Platto2014-07-14
| | | | tmpnam() is deprecated.
* Remove HAVE_MKDTEMPPavel Platto2014-07-14
| | | | | For now we provide simple `mkdtemp` for Windows, in the future we will use libuv for that.
* Temporary os_mkdtemp implementation. Use it instead of mkdtemp.Pavel Platto2014-07-14
|
* Use strict function prototypes #945Pavel Platto2014-07-14
| | | | | | | | | | | | | | | | | | | `-Wstrict-prototypes` warn if a function is declared or defined without specifying the argument types. This warning disallow function prototypes with empty parameter list. In C, a function declared with an empty parameter list accepts an arbitrary number of arguments when being called. This is for historic reasons; originally, C functions didn't have prototypes, as C evolved from B, a typeless language. When prototypes were added, the original typeless declarations were left in the language for backwards compatibility. Instead we should provide `void` in argument list to state that function doesn't have arguments. Also this warning disallow declaring type of the parameters after the parentheses because Neovim header generator produce no declarations for old-stlyle prototypes: it expects to find `{` after prototype.
* os_open: add unit testsJustin M. Keyes2014-07-14
|
* os_open: impl mch_open with libuv. ref #133Justin M. Keyes2014-07-14
| | | | | | | | | - use return value instead of open_req.result - libuv uv_fs_open() returns `-errno` instead of always -1 - libuv always sets open_req.result to the return value, _except_ for OOM where it only sets the return value. So always use the return value. - replace calls to mch_open macro. - update call sites expecting -1 error
* os/server: Fix possible port overflowAndré Twupack2014-07-13
| | | | | - add documentation about port being optional - parse port into long and check for valid value
* os/server: Fix TCP connectionAndré Twupack2014-07-13
| | | | | | | - remove unused errno - remove unused port_end - correct calculation of addr_len - use correct string length during IP copy
* os/server: Fix indentationAndré Twupack2014-07-13
|