question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Synchronized Output

See original GitHub issue

Hey guys,

I was searching the issues list (and my email inbox) as I remember I was once in talk with @jerch at lesat about this subject (I think), but I couldn’t find it, so I want to ask here officially.

Is it of interest for you to implement the VT mode ?2026 (synchronized output)? I am currently compiling a list of supporting software (TEs, toolkits, apps) and would like to add you there, too, if that is of interest for you.

What do you think?

Issue Analytics

  • State:open
  • Created 2 years ago
  • Comments:9 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
christianparpartcommented, Jun 25, 2021

I once summaries that for me, and yesterday (as said) tried to compile a list of supporting software. I’ve now moved this little document into a dedicated public page: https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036

This does contain the spec as well as the adoption state.

if it just prevents rendering until a block is parsed. @jerch if that’s how it works we could just delay rendering until after the synchronized block is hit

I initially implemented it in my TE by queuing all VT sequences that are printable, and upon flushing the frame (CSI ? 2026 l) I was executing them in one go (atomically). While this works I’ve changed this so that it always updates the internal buffer but indeed (I think this is how you’d want it), only updates the render output when CSI mode 2026 is disabled. If I must render during 2026 being enabled I just rerender the old state without fetching a fresh render buffer reflecting the current visual cells. I am not so knowledgable about HTML here, but I think it should be even easier for you. Also a note on different render backends: Using the above suggested way (my second implementation), the 2026 mode interpretation is completely independant from the rendering implementation. Maybe it would be possible for you, too?

1reaction
jerchcommented, Jun 24, 2021

@christianparpart Yes I am interested in that feature, I think that is a very valuable addition to the terminal interface, esp. for fullpage apps. But I cannot tell if and when we can get to it. The problem I foresee here - we have 3 renderers with very different internal semantics, that all would have to support it (maybe we could de-bounce it at higher level for all, no clue yet).

So plz dont count us in yet, until we had some discussion/thinking about it.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Synchronized Output Streams with C++20 - ModernesCpp.com
Before I present synchronized output streams with C++20, I want to show non-synchronized output in C++11. // coutUnsynchronized.cpp #include ...
Read more >
Synchronized Output - Terminal Spec - gists · GitHub
Synchronized output is merely implementing the feature as inspired by iTerm2 synchronized output, except that it's not using the rare DCS but rather...
Read more >
C++ 20 concurrency Part 1: synchronized output stream
Synchronized output stream for files. With std::osyncstream , we can use a file output stream, std::ofstream to ensure data race free output buffer...
Read more >
Synchronized output streams in C++20 - Marius Bancila's Blog
The way this works is that std::basic_osyncstream wraps the output stream but also contains an internal buffer (of type std::basic_syncbuf ) ...
Read more >
Position Synchronized Output (PSO) - Aerotech
Aerotech's Position Synchronized Output (PSO) feature coordinates your motion with output that triggers lasers or data acquisition devices for high-speed, ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found