aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* tui: Disable interference in guicursor by higher layers.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | Ironically, higher layers trying to be "smart" about the terminal type but not actually being very smart at all, makes it more difficult rather than less to correct the TUI layer. Note that this orphans the os_term_is_nice() function and down the road, presuming that we do not have to revert this, that function can be removed. It incorporates knowledge of terminal types and behaviours in the wrong place.
* tui: Split fix_terminfo() up and refactor.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are now a few built-in terminfo entries, taken either from unibilium or ncurses terminfo, for falling back upon when there is no terminfo database or when it is missing stuff. In an ideal world, these would be in unibilium itself. The ultimate fallback, for no terminfo database and no built-in terminfo record that matches the terminal type, is now the "ansi" terminal type; so unknown terminal types are now considered to have at minimum the basic ECMA-48 colour, motion, and editing capabilities. The terminfo records are just blobs, raw images of the equivalent terminfo file created with the od command. No longer are incomplete terminfo records built up with code. These blobs are the full, real, records; already built. The post-processing of the terminfo record, once found, is split into the part where we fix known errors and deficiencies in terminfo, and the part where we add extensions that we need that terminfo does not define capabilities for. In an ideal world, the former would be a no-op. No part of the TUI layer apart from these is aware of terminal type or has conditional code based upon checking environment variables at runtime. It is all pre-calculated and written into unibilium (or the TUIData object) at initialization time. This is fairly aggressive about turning on 256-colour and true colour support. This also positively decodes genuine xterm for turning on DECSLRM use, rather than assuming that anything that says that it is xterm is actually xterm, fixing scrolling problems with vertically split windows.
* doc: Document some more terminal behaviours.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | This documents 256-colour and true colour handling, cursor shapes, and scrolling regions. Almost all of these headings are taken from the Vim doco, so that the :help commands that people learn are a transferable skill.
* doc: Relegate xterm-8bit to a removed feature.Jonathan de Boyne Pollard2017-06-03
|
* tui: Fix cursor motion clear screen bug visible on line #1 in redraws.Jonathan de Boyne Pollard2017-06-03
| | | | | The clear_screen capability moves the cursor position. This needs to be accounted for.
* tui: Coding style changes onlyJonathan de Boyne Pollard2017-06-03
| | | | Per warnings about house style from automated tools.
* tui: Optimize more cursor motionsJonathan de Boyne Pollard2017-06-03
| | | | A slight improvement on the CR optimization for some edge cases.
* tui: Use what scrolling PuTTY has.Jonathan de Boyne Pollard2017-06-03
| | | | | | PuTTY does not implement DECLRMM or DECSLRM, but it does implement DECSTBM. So allow using PuTTY terminal scrolling when the scroll rectangle is the full width of the terminal.
* tui: Optimize cursor motionsJonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | Instead of emitting CUP in several places each with their own poor local optimizations, funnel all cursor motion through a central place. This central function performs the same optimization for every place that needs to move the cursor, and implements a better set of optimizations: * Emit CUU/CUD/CUF/CUB instad of CUP when they are likely shorter. * Use BS and LF when they are shorter than CUB and CUD. * Use CR for quick returns to column zero. * If printing the next few characters is shorter than a rightwards motion, then just write out the characters.
* tui: Eliminate superfluous SGR resets.Jonathan de Boyne Pollard2017-06-03
| | | | | Track whether the terminal is in no attribute mode, assuming that it starts this way, and do not attempt to reset back to that mode if already in it.
* tui: document fix_terminfo()'s several tasksJonathan de Boyne Pollard2017-06-03
|
* Separate 16- and 256- colour control sequences and tidy up some redundancy.Jonathan de Boyne Pollard2017-06-03
|
* Change TUI resize to use an extended terminal capability.Jonathan de Boyne Pollard2017-06-03
| | | | | ... rather than hardwiring the string and testing the terminal type every time the screen is re-sized.
* doc: README.md (#6839)Jonas Stein2017-06-02
|
* test: fix bashisms (#6791)Jonathan de Boyne Pollard2017-06-01
|
* Merge #4700 from AdnoC/keep-default-registerJustin M. Keyes2017-05-31
|\
| * shada: Add default value for is_unnamedAdnoC2017-05-31
| |
| * eval.c: Ignore unnamed register error in f_setregAdnoC2017-05-31
| | | | | | | | | | The error case is already handled and an appropriate error message is already printed.
| * test: Fix and add cases for unnamed registerAdnoC2017-05-31
| | | | | | | | | | | | | | | | Also: Add ru to shada tests with all keys Add test for unset unnamed and register 0
| * style/lintAdnoC2017-05-31
| |
| * shada/linting: Moved some code out of shada_write.AdnoC2017-05-31
| | | | | | | | | | shada_write was too long (over 500 lines) and caused a linting error. Register initialization was moved to its own function in order to save lines.
| * eval/shada: Add testing for unnamed register with setreg and startupAdnoC2017-05-31
| |
| * eval: Add ability to set the unnamed register with setregAdnoC2017-05-31
| |
| * shada: Set the unnamed register to the previous unnamed register on startupAdnoC2017-05-31
| |
| * shada: Remember whether "0 or "1 was the unnamed registerJames McCoy2017-05-24
| | | | | | | | Ref #4645
* | build: LuaRocks 2.4.2 #6059Jan Viljanen2017-05-31
| | | | | | | | | | | | LuaRocks 2.3 and onwards changed the /P option to no longer include the version number which made newer releases of LuaRocks fail when compiling on Windows.
* | channel_write: fix compiler warningJustin M. Keyes2017-05-31
| |
* | 'pastetoggle': Revert support for multi-key value (#6724)Matthew Malcomson2017-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverts commit 337b6179df852350b52409fd3806e4b47ab2875b Closes #6716 at the expense of not being able to use a multi-key 'pastetoggle' manually. Multi-key 'pastetoggle' can still be used when inserting the entire option into the typebuffer at once (though the use here is questionable). Also remove those tests to do with waiting for the completion of 'pastetoggle' and mention in the documentation that 'pastetoggle' doesn't wait for timeout.
* | Merge pull request #6740 from oni-link/fix.snprintfJames McCoy2017-05-30
|\ \ | | | | | | if_cscope: Fix truncation of formated output
| * | if_cscope: Fix truncation of formated outputoni-link2017-05-13
| | | | | | | | | | | | | | | | | | | | | snprintf() has to truncate the string written to buffer buf for maximal size_t value. Increase buffer size to fix this.
* | | Merge pull request #6594 from bfredl/sockopenBjörn Linse2017-05-29
|\ \ \ | | | | | | | | connect to socket (RPC only for the moment)
| * | | sockets: don't deadlock when connecting to own pipe addressBjörn Linse2017-05-29
| | | |
| * | | channels: implement sockopen() to connect to socketBjörn Linse2017-05-29
|/ / / | | | | | | | | | Helped-By: oni-link <knil.ino@gmail.com>
* | | Merge pull request #6680 from mhinz/listen/localhostJames McCoy2017-05-28
|\ \ \ | | | | | | | | Use uv_getaddrinfo() for servers
| * | | socket_watcher_start: Silence conversion warning for sin(6)_portJames McCoy2017-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Although in_port_t is a typedef for uint16_t, GCC in Ubuntu 12.04 complains about potential loss of data due to converting int to uint16_t. Since we know this isn't possible, silence the warning to avoid breaking QB until it gets upgraded to a newer Ubuntu.
| * | | eval: serverstart: Return finalized address to userJames McCoy2017-05-28
| | | | | | | | | | | | | | | | | | | | In the process of setting up the socket watcher, the address may be changed (e.g., adding the OS-selected port).
| * | | Server: Call uv_getaddrinfo with NULL service when no portJames McCoy2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using serverstart("ip.ad.d.r:") to listen on a random port, we need to abide by getaddrinfo()'s API and pass in a NULL service, rather than an empty string. When given an empty string, getaddrinfo() is free to search for a service by the given name (since the string isn't a number) which will fail. At least FreeBSD does perform this lookup.
| * | | Doc: explain the format for serverstart()Marco Hinz2017-05-22
| | | |
| * | | Server: don't fall back to Unix socketsMarco Hinz2017-05-22
| | | |
| * | | Server tests: endpoint parsing in serverstart()Marco Hinz2017-05-22
| | | |
| * | | Server tests: use helpers.command()Marco Hinz2017-05-22
| | | |
| * | | Server: use uv_getaddrinfo() for $NVIM_LISTEN_ADDRESSMarco Hinz2017-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change implicitly adds IPv6 support. If the address contains ":", we try to use a TCP socket instead of a Unix domain socket. Everything in front of the last occurrence of ":" is the hostname and everything after it the port. If the hostname lookup fails, we fall back to using a Unix domain socket. If the port is empty ("localhost:"), a random port will be assigned. Examples: NVIM_LISTEN_ADDRESS=localhost:12345 -> TCP (IPv4 or IPv6), port: 12345 NVIM_LISTEN_ADDRESS=localhost: -> TCP (IPv4 or IPv6), port: random (> 1024) NVIM_LISTEN_ADDRESS=localhost:0 -> TCP (IPv4 or IPv6), port: random (> 1024) NVIM_LISTEN_ADDRESS=localhost -> Unix domain socket "localhost" in current dir
* | | | vim-patch:8.0.0605 (#6821)Daniel Hahler2017-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The buffer that quickfix caches for performance may become invalid. (Daniel Hahler) Solution: Reset qf_last_bufref in qf_init_ext(). (Daniel Hahler, closes vim/vim#1728, closes vim/vim#1676) https://github.com/vim/vim/commit/6dd4a53502fb4ec1b66104eab1805e7254ad9e41
* | | | Merge #6777 from justinmk/bsdJustin M. Keyes2017-05-28
|\ \ \ \
| * | | | install: bsd: install manpages to /usr/local/manJustin M. Keyes2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://svnweb.freebsd.org/ports/head/editors/neovim/Makefile?revision=428479&view=markup#l28 Closes #6771
| * | | | pty_process_unix.c: include <libutil.h> on DragonFly BSDJustin M. Keyes2017-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From FreeBSD ports patch: https://svnweb.freebsd.org/ports/head/editors/neovim/files/patch-src_nvim_os_pty__process__unix.c?revision=425833&view=markup References https://github.com/neovim/neovim/issues/6771#issuecomment-302921368
| * | | | build: FreeBSD: Disable -Wc11-extensions only for clangJustin M. Keyes2017-05-21
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | From FreeBSD ports patch: https://svnweb.freebsd.org/ports/head/editors/neovim/files/patch-CMakeLists.txt?revision=425833&view=markup References #4363
* | | | terminal: Do not change 'number', 'relativenumber' (#6796)Justin M. Keyes2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Showing the 'number' column in terminal buffers is a bit silly because of 'scrollback'. But it's mostly harmless and technically works as expected. The least surprising thing is to leave the user's settings alone. Since there are tradeoffs in both cases, we choose inertia. We still disable 'relativenumber' in *terminal-mode* (as opposed to normal-mode) because it is totally broken: the Nvim cursor (not terminal cursor) is always on the last line.
* | | | man.vim: feature-test section (-s) flag #6815raichoo2017-05-26
| | | | | | | | | | | | | | | | | | | | Different implementations of `man` might be using different flags for sections.
* | | | build: Default BUSTED_OUTPUT_TYPE to "nvim" (#6811)Justin M. Keyes2017-05-25
| | | |