aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* terminal: New module that implements a terminal emulatorThiago de Arruda2015-03-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit integrates libvterm with Neovim and implements a terminal emulator with nvim buffers as the display mechanism. Terminal buffers can be created using any of the following methods: - Opening a file with name following the "term://[${cwd}//[${pid}:]]${cmd}" URI pattern where: - cwd is the working directory of the process - pid is the process id. This is just for use in session files where a pid would have been assigned to the saved buffer title. - cmd is the command to run - Invoking the `:terminal` ex command - Invoking the `termopen` function which returns a job id for automating the terminal window. Some extra changes were also implemented to adapt with terminal buffers. Here's an overview: - The `main` function now sets a BufReadCmd autocmd to intercept the term:// URI and spawn the terminal buffer instead of reading the file. - terminal buffers behave as if the following local buffer options were set: - `nomodifiable` - `swapfile` - `undolevels=-1` - `bufhidden=hide` - All commands that delete buffers(`:bun`, `:bd` and `:bw`) behave the same for terminal buffers, but only work when bang is passed(eg: `:bwipeout!`) - A new "terminal" mode was added. A consequence is that a new set of mapping commands were implemented with the "t" prefix(tmap, tunmap, tnoremap...) - The `edit` function(which enters insert mode) will actually enter terminal mode if the current buffer is a terminal - The `put` operator was adapted to send data to the terminal instead of modifying the buffer directly. - A window being resized will also trigger a terminal resize if the window displays the terminal.
* event: Ensure the loop is stopped when a event is pushed.Thiago de Arruda2015-03-25
|
* buffer: Move b_p_ma(modifiable) checks into the MODIFIABLE macroThiago de Arruda2015-03-25
|
* buffer: Add WITH_BUFFER macro to simplify global buffer modificationThiago de Arruda2015-03-25
| | | | | | Most internal functions to modify buffers operate on the current buffer and require temporary switchs. This macro is a temporary workaround until a cleaner refactoring of the internal API is performed.
* vim.h: remove #ifndef EINTRThiago de Arruda2015-03-25
| | | | This ifndef causes problems when including fileio headers.
* api: Move switch_to_win_for_buf/restore_win_for_buf to api helpersThiago de Arruda2015-03-25
|
* ui: Schedule screen refreshs to run in the event loopThiago de Arruda2015-03-25
| | | | | This is required to avoid event loop recursion due to indirect calls to os_breakcheck by screenalloc
* map: Add Map(int, int)Thiago de Arruda2015-03-25
|
* map: Add map_clear methodThiago de Arruda2015-03-25
|
* syntax: Fix possible invalid read in hl_combine_attrThiago de Arruda2015-03-25
|
* tests: Migrate legacy test 94 #2218David Bürgin2015-03-25
|
* doc: Remove refs to 'compatible' and friendsMichael Reed2015-03-24
| | | | | | | Also remove some MS-DOS references on lines already being touched. Based on this commit: https://github.com/justinmk/neovim/commit/e4db01ca8707c34dc808d7f6378aa3aba9002a2d
* doc: Misc. cleanupJustin M. Keyes2015-03-24
| | | | | | | | | | Add missing parentheses and whatnot, move dangling comment, etc. Some specific items worth mentioning: Fixed some references to non-existent tags, found via `make html` msgpack_rpc/channel.c: ELOG already prefixes each line with "error @ ..."
* Remove `--nofork` / `-f` remnantsMichael Reed2015-03-24
|
* refactor: split some more functions from misc1.cbobtwinkles2015-03-24
| | | | | | | | | | | This commit pulls the some environment-variable handling functions out of misc1.c and in to os/env.c. Previously submited as #1231, this is the start of a patch series that does that work based on a more up-to-date master branch. Major tasks accomplished: - move functions and fix includes - fix clint/clang analysis warnings - correct documentation comments
* job: Fix memory erroroni-link2015-03-24
| | | | | Fix pointer passed to the handles in the uv_close() calls when process_spawn() fails.
* job: Fix process cleanup using SIGCHLD/waitpidThiago de Arruda2015-03-24
| | | | | Add a SIGCHLD handler for cleaning up pty processes passing the WNOHANG flag. It may also be used to cleanup processes spawned with uv_spawn.
* Merge pull request #2214 from Pyrohh/version-cleanupJustin M. Keyes2015-03-23
|\ | | | | Version output cleanup
| * version.c: Clean up --version / :version outputMichael Reed2015-03-22
| | | | | | | | | | | | | | | | Despite the +/- prefix, the majority of these features have been made non-optional at compile time, so their presence here is misleading. Also mention `:h vim-differences` to make it clear our that many features are non-optional.
| * Remove *_BUILTIN_TCAPS & 'ttybuiltin'Michael Reed2015-03-22
| | | | | | | | | | 'ttybuiltin' was removed and *_BUILTIN_TCAPS was made into dead code in PR #1820.
* | Merge pull request #2212 from bfredl/concealfixBjörn Linse2015-03-22
|\ \ | |/ |/| fix missing conceal cchar when it is the first syntax group shown
| * vim-patch: mark 7.4.673 as includedBjörn Linse2015-03-21
| |
| * syntax: let first syntax item seqnr be 1 instead of 0Björn Linse2015-03-21
| | | | | | | | | | in screen.c:win_line seqnr 0 represents the state: no current syntax item
* | Passing-by: Add function attributes.Eliseo Martínez2015-03-22
| |
* | coverity/105985: Resource leak: RI.Eliseo Martínez2015-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Resource leak @ 94, 98, 102. Diagnostic : Real issue. Rationale : Coverity doesn't know that uv_pipe_open will save file descriptor to close them later. So, it signals file descriptors being leaked. This would then seem like a false positive we can fix by teaching coverity about uv_pipe_open through model file. But then we realize that the above is only true if uv_pipe_open succeeds. It it fails, then descriptors are really being leaked, which is why this is considered a real issue and not a false positive after all. Resolution : Add error handling to correctly close descriptors if uv_pipe_open fails at any point. Add model for uv_pipe_open so that Coverity knows it will save descriptors when no error. Helped-by: oni-link <knil.ino@gmail.com>
* | coverity/105982: Unckecked return value: RI.Eliseo Martínez2015-03-22
| | | | | | | | | | | | | | | | | | Problem : Unchecked return value from library @ 91. Diagnostic : Real issue. Rationale : fcntl can fail, which is not being checked. Resolution : Add corresponding error handling. Helped-by: oni-link <knil.ino@gmail.com>
* | coverity/105568: Free of array-typed value: FP.Eliseo Martínez2015-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Free of array-typed value @ 3628. Diagnostic : False positive. Rationale : expand_shell_cmd() is called with a mock value for file (*file = (char_u **)""). That means we want file to be filled with a new value. We can't use *file = NULL because that means we don't want file to be filled. Now, coverity incorrectly thinks that sentinel value is the one we are freeing up at some other later point, which is not the case. Resolution : Assert that, when we are freeing *file, its value is different than the sentinel one.
* | coverity/13777: String not null terminated: RI.Eliseo Martínez2015-03-22
|/ | | | | | | | | | | | | | Problem : String not null terminated @ 1543. Diagnostic : Real issue. Rationale : We are reading a struct block0, which contains some string fields, from a file, without checking for string fields to be correctly terminated. That could cause a buffer overrun if file has somehow been garbled. Resolution : Add string fields check for nul termination. Mark issue as intentional (there seems to be no way of teaching coverity about read_eintr being ok that way). Helped-by: oni-link <knil.ino@gmail.com>
* vim-patch:7.4.503 #2178Perry Hung2015-03-20
| | | | | | | | | | | | | | | | Problem: Cannot append a list of lines to a file. Solution: Add the append option to writefile(). (Yasuhiro Matsumoto) https://code.google.com/p/vim/source/detail?r=v7-4-503 -Ported old legacy test over to test/functional/legacy/writefile_spec.lua -Tests for mapping and signs from the original patch were removed since they have nothing to do this with feature Tested with: make oldtest, make test on OS X. Signed-off-by: Perry Hung <iperry@gmail.com>
* tui: Add support for true color terminalsThiago de Arruda2015-03-20
| | | | | | | | | This is enabled by setting the `$NVIM_TUI_ENABLE_TRUE_COLOR` environment variable, eg: ``` $ NVIM_TUI_ENABLE_TRUE_COLOR=1 nvim ```
* Merge pull request #2144 from jszakmeister/fix-warning-in-releaseJohn Szakmeister2015-03-20
|\ | | | | Fix a couple warnings in the release build.
| * Fix unused variable in wstream.c for a release build.John Szakmeister2015-03-14
| |
| * Avoid an unused variable warning in the release build.John Szakmeister2015-03-13
| |
* | Remove BINARY_FILE_IO option #2179Perry Hung2015-03-18
| | | | | | | | | | | | | | | | | | The 'binary' mode flag is ignored on all POSIX conforming systems (man 3 fopen). For all the others, BINARY_FILE_IO needs to be set. Always set BINARY_FILE_IO. Signed-off-by: Perry Hung <iperry@gmail.com>
* | misc2.c: Move emsg* functions to message.c #2152Michael Reed2015-03-19
| | | | | | | | Clean up said functions and some outdated comments while we're at it.
* | tests/legacy: convert test 63 (`:match` and `matchadd()` )Björn Linse2015-03-19
| |
* | tests: update legacy Makefile #2186Justin M. Keyes2015-03-19
| | | | | | | | Many tests were migrated, but entries were left in the old Makefile.
* | main: Simplify code that deals with early user inputThiago de Arruda2015-03-18
| | | | | | | | | | | | | | | | | | A read stream will be started before the first ex command is processed. This stream will be used to read early user input before handling control over to the UI module. Which stdio stream will be used depends on which types of file descriptors are connected, and whether the "-" argument was passed.
* | ui: Refactor so that busy state won't be the defaultThiago de Arruda2015-03-18
| | | | | | | | | | | | | | | | | | | | | | Even though assuming nvim is busy most times is simpler, it has a problem: A lot of unnecessary busy_start/busy_stop notifications are sent to the UI. That's because in the majority of scenarios almost no time is spent between `event_poll` calls. This restores the normal behavior which is to call busy_start only when nvim is going to perform some task that can take a significant amount of time. Also improve the usage of buffering in the TUI when changing the cursor state.
* | tui.c: Send fewer cursor-hide commands to the terminal.oni-link2015-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since #2158 all connected UIs are informed about the busy state of nvim. This can be used to decide whether to hide or show the cursor (in one place). In the TUI, this is tui_flush(). To prevent cursor flashing, the terminal is always redrawn with an invisible cursor. After that the cursor is shown if necessary. In the current implementation a cursor-hide command will always be the first command in the next redraw, to prevent flashing. This is not necessary. Instead we start the TUI with a hidden cursor and only need to hide the cursor in the next redraw, if the cursor was shown in the last redraw. Otherwise the cursor is still hidden. So instead of sending every redraw the cursor-hide command, we only need to send the command while not busy(a state in nvim with low frequency).
* | Remove platform dependent HAVE_OPENDIR #2010Jonas Dourado2015-03-17
| |
* | main: Start stdin before sourcing startup scriptsThiago de Arruda2015-03-17
| | | | | | | | | | This is required to be compatible with plugins that ask user questions at startup(eg: vim-addon-local-vimrc)
* | Reuse f_browse function from f_browsedirAnton Ovchinnikov2015-03-16
| | | | | | | | The bodies of f_browse() and f_browsedir() were identical.
* | Remove unnecessary 'free'Anton Ovchinnikov2015-03-16
| | | | | | | | from_noamp is always NULL in this branch
* | Clarify an out-of-memory cleanup, remove a function-wide loop counterAnton Ovchinnikov2015-03-16
| |
* | Remove redundant parenthesesAnton Ovchinnikov2015-03-16
| |
* | Merge consecutive identical 'if' statementsAnton Ovchinnikov2015-03-16
| |
* | Remove always-true expressionsAnton Ovchinnikov2015-03-16
| |
* | legacy tests: migrate test19Gustaf Lindstedt2015-03-16
| |
* | legacy tests: migrate test89Gustaf Lindstedt2015-03-16
| |