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

Support for split screen #370

Closed
helmus opened this issue Apr 26, 2021 · 16 comments
Closed

Support for split screen #370

helmus opened this issue Apr 26, 2021 · 16 comments
Labels

Comments

@helmus
Copy link

helmus commented Apr 26, 2021

This would be extraordinary useful as it in fact eliminates the need to switch between tabs. Super super useful.
Willing to put down a bounty of up to 200$ if anyone feels like committing to it.

@helmus helmus added the feature label Apr 26, 2021
@helmus
Copy link
Author

helmus commented May 5, 2021

@chylex any chance you would be interested in picking this up ?

@chylex
Copy link
Collaborator

chylex commented May 5, 2021

Sounds interesting, I would find use for this as well. I'll give it a few hours and see how easy it would be to add multi-editor sessions, since at the moment the assumption is 1 editor = 1 session.

@breandan
Copy link
Collaborator

breandan commented May 5, 2021

I started working on this feature some time ago (#144), but decided to make it into a desktop application and forked a new project. It's not what you want exactly, but should be possible to select any text visible on the screen. I agree that mutieditor/multiwindow support would be nice to support within AceJump. If you were able to hook into the IDE text rendering pipeline, you could tag menus and other text in the IDE, then click on things using the AWT Robot, but that's probably more trouble than it's worth.

@chylex
Copy link
Collaborator

chylex commented May 5, 2021

A while back I opened IDEA-264270 which is about clicking IDE buttons using AceJump-style shortcuts, if a plugin could do that (+ tagging menus etc.) it'd be brilliant.

@breandan
Copy link
Collaborator

breandan commented May 5, 2021

As you mentioned, platform support for these kinds of features is currently poor, but better interoperability with screen readers is an important accessibility feature for blind and visually impaired users. I believe it is possible, but would require intercepting the IDE rendering pipeline somehow to extract the visible clickable UI elements. If you can get this to work, I will double @helmus' bounty.

@chylex
Copy link
Collaborator

chylex commented May 6, 2021

Progress - tagging is very broken but rendering and jumping across splitters works:

obrazek

@chylex
Copy link
Collaborator

chylex commented May 7, 2021

Looking good

aj-splitter.mp4

@helmus
Copy link
Author

helmus commented May 7, 2021

👏 👏 👏

@breandan
Copy link
Collaborator

breandan commented May 7, 2021

Nice! What happens when you search for text outside the screen boundaries? Do you plan to disable auto-scrolling in split-screen sessions or do you think it makes sense to scroll multiple editors to the nearest available match? It might be a good idea to disable uppercase/shift selection when switching between editors, but allow it when jumping within the same editor. Cycling with Enter/Shift enter also becomes tricky, not sure how you're planning to handle that.

@helmus
Copy link
Author

helmus commented May 7, 2021

Absolutly no editor scrolling please. Visual area ONLY, this is very important for usability and performance.

@breandan
Copy link
Collaborator

breandan commented May 7, 2021

Ideally, AceJump's scrolling behavior should respect the Search whole file settings option, but perhaps we can make an exception when multiple editors are open if that behavior becomes too complicated to implement or does not make sense from a usability standpoint.

@chylex
Copy link
Collaborator

chylex commented May 7, 2021

Nice! What happens when you search for text outside the screen boundaries?
Cycling with Enter/Shift enter also becomes tricky

At the moment I implemented it in my experimental fork, which has both of these options completely removed, I'm starting to port it to upstream master so I'll see how it works out.

It might be a good idea to disable uppercase/shift selection when switching between editors

Definitely, it technically works because each editor remembers its caret position, but it's confusing.

@breandan
Copy link
Collaborator

I have confirmed that split-screen navigation works as described and is available immediately in 3.8.0. Thanks to @chylex for this great contribution!

@helmus
Copy link
Author

helmus commented May 11, 2021

Hot stuff ! 🔥 @chylex please claim the bounty 💰

@chylex
Copy link
Collaborator

chylex commented May 11, 2021

I set an "in progress" status on the bounty, it says I'll be able to claim it once the issue is closed. Can't remember if you have to do that or if it takes a while to update automatically.

@breandan breandan reopened this May 11, 2021
@chylex
Copy link
Collaborator

chylex commented May 11, 2021

Claimed, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants