Commit Graph

2681 Commits

Author SHA1 Message Date
Thiago de Arruda
dc18fa256f test: Add more functional test to cover new code
- emulate gui_running and terminal colors
- scrolling/clearing regions
- mouse wheel scrolling
- setting icon/title
- :stop/:suspend
- screen resize
2015-01-15 09:01:25 -03:00
Thiago de Arruda
c51c0950d3 screen: Fix screen_resize to consider minimum screen size 2015-01-15 09:01:16 -03:00
Thiago de Arruda
361c2290b6 input: Fix check for mouse coordinates
Must check for EOF which will result in row/col being uninitialized.
2015-01-15 09:00:38 -03:00
Thiago de Arruda
7b537ffda9 input: Read row/col position when processing mouse wheel 2015-01-14 16:59:54 -03:00
Thiago de Arruda
8596776bf6 ui: Implement set_{title,icon} 2015-01-14 08:31:20 -03:00
Thiago de Arruda
ea771ac559 test: Add Screen.debug for inspecting screens of hanging tests 2015-01-13 21:21:20 -03:00
Thiago de Arruda
8bff79d3fd term: Fix shell_resized for abstract_ui 2015-01-13 21:21:20 -03:00
Thiago de Arruda
6f7db326cb screen: Fix highlight reset for abstract_ui 2015-01-13 21:21:20 -03:00
Thiago de Arruda
3e9c55b51b main: Fix color schemes for abstract_ui
- Set 't_Co' to 256 at startup. The value can be changed by the user for
  compatibility with terminals that are less capable.
- `has('gui_running')` will return 1 if at least one rgb UI is attached.

Even though these changes are hacky, they are necessary to make the transition
to the new UI architecture smoother.
2015-01-13 21:21:20 -03:00
Thiago de Arruda
8f3e61a043 syntax: Refresh UI when the color scheme changes 2015-01-13 21:21:20 -03:00
Thiago de Arruda
784bda0704 ui: Fix redraw bug caused by race conditions with remote clients
Before sending a resize command to the UIs, flush the current output buffer to
ensure no redraw commands for a screen with invalid size are processed.
2015-01-13 21:21:20 -03:00
Thiago de Arruda
f3666e55a4 shell: When executing command, use screen functions to display output
By calling ui_write directly, the internal screen isn't updated and invalid
bytes aren't handled, which breaks the abstract UI model.
2015-01-13 21:21:20 -03:00
Thiago de Arruda
dac1cee907 ui: Use ui_linefeed to handle line breaks correctly
ui_linefeed will scroll the screen when it becomes full. This can happen when
executing external commands.
2015-01-13 21:21:20 -03:00
Thiago de Arruda
b4f516a36a ui: Fix out_flush/ui_write behavior to always flush for abstract_ui 2015-01-13 21:21:19 -03:00
Thiago de Arruda
df1f62194e channel: Make pending_requests a field of the Channel type
This is required to send redraw notifications while a msgpack-rpc call is being
performed by another channel.
2015-01-13 21:21:19 -03:00
Thiago de Arruda
2db4049274 ui: Fix :suspend command for remote UIs
Forward the command to the remote UI and flush immediately. The
semantics/handling is UI-specific.
2015-01-13 21:21:06 -03:00
Thiago de Arruda
a282d06a67 ui: Don't parse abstract_ui codes if there are no attached UIs 2015-01-13 11:54:52 -03:00
Thiago de Arruda
5d2f923fcf channel: Free channels created from libuv streams 2015-01-13 11:54:52 -03:00
Thiago de Arruda
29bc6dfabd ui: Add 'rgb' parameter to ui_attach
When set to false, nvim will send cterm color numbers with `highlight_set`.
2015-01-13 11:54:52 -03:00
Thiago de Arruda
631099d02a syntax: Take rgb fg/bg when allocating cterm attr number 2015-01-13 11:54:52 -03:00
Thiago de Arruda
46b4764f7a ui: Merge standout and reverse into one attribute 2015-01-13 11:54:52 -03:00
Thiago de Arruda
3e83e44792 input: Ignore invalid "<" key sequences
Ignoring invalid key sequences simplifies input handling in UIs. The only
downside is having to use "<lt>" everytime a "<" is needed on functional tests.
2015-01-13 11:54:51 -03:00
Thiago de Arruda
17b211d288 test: Remove unnecessary command from highlight_spec 2015-01-13 11:54:51 -03:00
Thiago de Arruda
926503c84e ui: Fix ui resizing and change some method names 2015-01-13 11:54:28 -03:00
Thiago de Arruda
8c12292a61 remote_ui: Move handler registration to remote_ui.c
Also disable deferral of attach_ui
2015-01-13 11:53:27 -03:00
Thiago de Arruda
f0a944d3cf ui: Add mising T_CSV code to abstract_ui termcap
This code is required for screen.c to set a vertical scroll region, which is a
great optimization when scrolling vertically split windows.
2015-01-13 11:53:27 -03:00
Thiago de Arruda
6c447848bb ui: Increase cursor row when text being rendered would cross its limit 2015-01-13 11:53:27 -03:00
Thiago de Arruda
fc8f768690 ui: Add update_fg/update_bg methods
It is necessary to notify the UI when the default background/foreground colors
change in order to render correctly.
2015-01-13 11:53:27 -03:00
Thiago de Arruda
1ccbd94bee test: Fix clear/eol_clear in screen.lua
These functions need to operate on the current the scroll region.
2015-01-13 11:53:27 -03:00
Justin M. Keyes
9b4f6fbd33 Merge pull request #1782 from fwalch/small-patches
vim-patch: Multiple small patches
2015-01-13 09:38:19 -05:00
Justin M. Keyes
a99d33ad9a Merge pull request #1801 from Pyrohh/qnx_cleanup
Remove QNX/pterm remnants
2015-01-13 00:46:17 -05:00
Justin M. Keyes
9c090e9329 Merge pull request #1792 from fwalch/clint_remove-rand_r
Linting: Recommend os_* instead of POSIX functions.
2015-01-12 23:50:08 -05:00
Justin M. Keyes
9d0be9604e Merge pull request #1804 from neovim/revert-1657-abstract-ui-fixes
Revert "[WIP] "abstract_ui" fixes and improvements"
2015-01-12 10:15:13 -05:00
Justin M. Keyes
d7e18b5c95 Revert "[WIP] "abstract_ui" fixes and improvements" 2015-01-12 10:14:52 -05:00
Justin M. Keyes
4c55c34efa Merge pull request #1657 from tarruda/abstract-ui-fixes
[WIP] "abstract_ui" fixes and improvements
2015-01-12 10:13:51 -05:00
Thiago de Arruda
62c1daffe0 syntax: Refresh UI when the color scheme changes 2015-01-12 10:28:32 -03:00
Thiago de Arruda
a16cd73ead ui: Fix redraw bug caused by race conditions with remote clients
Before sending a resize command to the UIs, flush the current output buffer to
ensure no redraw commands for a screen with invalid size are processed.
2015-01-12 09:47:42 -03:00
Thiago de Arruda
418a49f7f1 shell: When executing command, use screen functions to display output
By calling ui_write directly, the internal screen isn't updated and invalid
bytes aren't handled, which breaks the abstract UI model.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
7703fd328c ui: Use ui_linefeed to handle line breaks correctly
ui_linefeed will scroll the screen when it becomes full. This can happen when
executing external commands.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
e1da130ca9 ui: Fix out_flush/ui_write behavior to always flush for abstract_ui 2015-01-12 09:47:41 -03:00
Thiago de Arruda
e3b2907f2f channel: Make pending_requests a field of the Channel type
This is required to send redraw notifications while a msgpack-rpc call is being
performed by another channel.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
d992213678 ui: Reimplement :suspend command for remote UIs.
- Remove suspend method from the UI protocol
- Handle `:suspend` by disconnecting the last channel that sent a request to
  nvim.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
abc147a977 ui: Don't parse abstract_ui codes if there are no attached UIs 2015-01-12 09:47:41 -03:00
Thiago de Arruda
cba9162215 channel: Free channels created from libuv streams 2015-01-12 09:47:41 -03:00
Thiago de Arruda
74c247f75b ui: Add 'rgb' parameter to ui_attach
When set to false, nvim will send cterm color numbers with `highlight_set`.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
a8fe32040b ui: Dont resize screen if no UIs are attached
This prevents a race condition when a UI attaches early in the program and can
receive redraw commands for a invalid screen
2015-01-12 09:47:41 -03:00
Thiago de Arruda
869c734890 screen: Fix bug that causes separator to always be redraw for utf8 2015-01-12 09:47:41 -03:00
Thiago de Arruda
a4525bc523 screen: Remove abstract_ui test in reset_cterm_colors 2015-01-12 09:47:40 -03:00
Thiago de Arruda
4a28785c6e runtime: Fix plugin/matchparen.vim for abstract_ui 2015-01-12 09:47:40 -03:00
Thiago de Arruda
c1252a5615 syntax: Take rgb fg/bg when allocating cterm attr number 2015-01-12 09:47:40 -03:00