Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The UI Devirtualization Project #21605

Merged
merged 1 commit into from
Jan 5, 2023
Merged

The UI Devirtualization Project #21605

merged 1 commit into from
Jan 5, 2023

Conversation

bfredl
Copy link
Member

@bfredl bfredl commented Dec 31, 2022

No description provided.

@bfredl
Copy link
Member Author

bfredl commented Jan 3, 2023

intermittent failure, make this more robust

test/functional/terminal/tui_spec.lua:140: Row 1 did not match.
Expected:
  |*:call ManyErr()                                   |
  |*{8:Error detected while processing function ManyErr:} |
  |*{11:line    2:}                                        |
  |{10:-- More --}{1: }                                       |
  |{3:-- TERMINAL --}                                    |
Actual:
  |*{11:line    2:}                                        |
  |*{8:FAIL 0}                                            |
  |*{8:FAIL 1}                                            |
  |{10:-- More --}{1: }                                       |
  |{3:-- TERMINAL --}                                    |```

@bfredl bfredl force-pushed the uidvp branch 5 times, most recently from 043d4e2 to 74e734a Compare January 4, 2023 09:03
@bfredl
Copy link
Member Author

bfredl commented Jan 4, 2023

  • The defined interface for the UI is only the RPC protocol. The original
    UI interface as an array of function pointers fill no function by itself.
  • On the server, all the UI:s are all RPC channels.
    • ui.c is only used on the server.
    • The compositor is a preprocessing step for single-grid UI:s
  • on the client, ui_client and tui talk directly to each other
    • we still do module separation, as ui_client.c could form the basis
      of a libnvim client module later.

Items for later PR:s

  • vim.ui_attach is still an unhappy child, reconsider based on plugin experience.
  • the flags in ui_events.in.h are still a mess. Can be simplified now.
  • UX for remote attachment needs more work.
  • startup for client can be simplified further (think of the millisecs we can save)

@bfredl bfredl marked this pull request as ready for review January 4, 2023 09:05
@bfredl bfredl force-pushed the uidvp branch 3 times, most recently from 98b534e to 47ba78f Compare January 5, 2023 08:47
- The defined interface for the UI is only the RPC protocol. The original
  UI interface as an array of function pointers fill no function.
- On the server, all the UI:s are all RPC channels.
  - ui.c is only used on the server.
  - The compositor is a preprocessing step for single-grid UI:s
- on the client, ui_client and tui talk directly to each other
  - we still do module separation, as ui_client.c could form the basis
    of a libnvim client module later.

Items for later PR:s
- vim.ui_attach is still an unhappy child, reconsider based on plugin experience.
- the flags in ui_events.in.h are still a mess. Can be simplified now.
- UX for remote attachment needs more work.
- startup for client can be simplified further (think of the millisecs we can save)
@bfredl bfredl merged commit 85eb564 into neovim:master Jan 5, 2023
bfredl added a commit that referenced this pull request Jan 5, 2023
Fixup #21605

Depending on the phase of the moon, UI_CALL expanding UI_LOG expanding the default value of entered_free_all_mem might or might not work.
zeertzjq added a commit to zeertzjq/neovim that referenced this pull request Jan 24, 2023
This fixes a regression from neovim#21605 that stdin is no longer set as
"blocking" after Nvim TUI exits, and the problems described in neovim#2598
happen again.

I'm not sure if this should be done in TUI code or common exiting code.
I added this call in tui_stop() as it is also present in tui_suspend().
zeertzjq added a commit that referenced this pull request Jan 24, 2023
This fixes a regression from #21605 that stdin is no longer set as
"blocking" after Nvim TUI exits, and the problems described in #2598
happen again.

I'm not sure if this should be done in TUI code or common exiting code.
I added this call in tui_stop() as it is also present in tui_suspend().
yesean pushed a commit to yesean/neovim that referenced this pull request Mar 25, 2023
Fixup neovim#21605

Depending on the phase of the moon, UI_CALL expanding UI_LOG expanding the default value of entered_free_all_mem might or might not work.
yesean pushed a commit to yesean/neovim that referenced this pull request Mar 25, 2023
This fixes a regression from neovim#21605 that stdin is no longer set as
"blocking" after Nvim TUI exits, and the problems described in neovim#2598
happen again.

I'm not sure if this should be done in TUI code or common exiting code.
I added this call in tui_stop() as it is also present in tui_suspend().
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant