Add split editor functionality - #54
Conversation
Add a "folding" style element and an Editor Options toggle so the fold gutter's appearance and availability can be customized, building on thenew folding feature. Style-driven appearance (FoldingManager, styles/*.xml): - Fold icon color now reads <folding fgColor="..."/> from the active style instead of a hardcoded gray, resolved the same way as syntax colors and refreshed live on a theme change. - Icon shape is selectable via shape="triangle" (default) or shape="plusminus" for boxed +/- markers. - Always-on guide lines run from each expanded block's icon down to its end line (with an end foot), colored by <folding guideColor="..."/>, defaulting to the icon color dimmed toward the editor background. - All bundled themes gain a <folding> element with instructional comments documenting these attributes; dark ships with plusminus as a default. Enable/disable option (OptionsShell, Config, EditorComposite, MainShell): - New "Enable code folding" checkbox under "Display line numbers", defaulting to enabled. When off, editors open without a FoldingManager, so icons, hotkeys, the fold gutter, and unfold-on-save all go inert via the existing null-guards. - Disabling and saving unfolds all open editors and tears down their fold gutter live (FoldingManager now unregisters its listeners on dispose); enabling applies on next editor open to preserve listener ordering. - The setting is stored inverted (foldingDisabled) so existing serialized configs, which predate the field, still default to enabled.
- Right click a tab to open in other view. - Once the other view exists, can drag any tabs between them. - Added split editor orientation (Side by side, Stacked) in OptionsShell. - Updated configuration handling for split orientation in the main application. - Added keyboard shortcuts to toggle split orientation and split editor view. - Added view menu with split controls - Added a method in ReportComposite to re-point report views between editor panes. - Extracted existing pane management to EditorPaneManager.java consolidate control and avoid future drift
|
PR automatically includes the previous still open PR since i based this branch off those changes, but that will drop out of history/PR if that one's merged at some point to make review easier on this one. Honestly, not much new code, i was surprised, I expected to have to do more work :D Almost everything needed was already implemented and just needed to be tied together. Added handling for the split view relating things, but almost everything else was copy/paste & find/replace with extracting the pane manager to its own centralized home to avoid drift and updating the ~200 callers from 'mainfolder' to 'activeFolder'. |
|
WOW you make it sound so easy :D |
|
I take requests if theres any other features you wish it had, the more impossible it seems, the more fun it is :D |
|
DUDE ! ! ! THIS IS AWESOME ! ! ! Things I didn't know I need until I see it. Now I understand the use case for this. I've been using Ctrl-PgUp and Ctrl-PgDn to switch between tabs since forever and not realizing that split screen was the cure for the carpal tunnel of my thumb and pinky :D This is great. I will continue testing. Thanks Lee. |
|
Sometimes you just don't know you need it until you see it.... like back in the day when i used to underwrite loans, i always had my second monitor rotated to portrait and people would walk up to my desk and be confused 'how can you work with the one monitor sideways?' then I'd tell/show them.... 80% of the job is looking at loan documents, which fit full screen for legal docs on a rotated monitor, so when I'm looking at a loan app, i don't have to keep scrolling up and down to see different parts of the page.' Then the next day, their monitor would be rotated :) Simpler times with smaller screens... these days i just use a curved 34" ultrawide and can open to docs side by side and still have plenty of room for something else... I definitely don't miss the days of 12-15" monitors, ha! |
Implements issue #53