feat: replace JLine with TamboUI for dependency search TUI - #2465
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Why is this PR so big and has many changes that seem to have nothing to do with a change to Tamboui? |
|
@quintesse its dependent on #2453 so it has all those changes too. so looks much bigger than it is. More correct is just looking at For now still just a draft - wanting to see if full build had any challenges. |
- Replace JLine (jline-console-ui, jline-terminal-jni) with TamboUI (tamboui-toolkit, tamboui-aesh-backend) 0.4.0-SNAPSHOT - Rewrite ArtifactSearchWidget using TamboUI toolkit DSL - dock() layout: search input (top), results (center), details+help (bottom) - Async Central search via runner.schedule() + runOnRenderThread() - Match highlighting on all result rows using SearchFuzzedResult - Version picker as side pane (Enter on artifact) - Deduplicate results by groupId:artifactId - Add SearchIntentClassifier: detects GAV, class name, FQCN, Java import, compiler error, keyword — routes to appropriate Central query (c:/fc:/etc) - Auto-triggers Central search with 400ms debounce for class/import intents - Support --offline flag (reuses existing BaseCommand.offline via Util) - Remove JLine dependencies and ComboBox.java - Custom key bindings: unbind Tab/focusNext so Tab triggers Central search, unbind q/Q from quit to allow typing in search - Net jar size delta: +33KB
|
waiting on tamboui/tamboui#382 or similar to be merged as otherwise keybindings aren't consistent. |
- Remove redundant Details panel (was 5 lines repeating the highlighted list row). That space now goes to more visible results. - Merge //DEPS preview into the status bar as inline right-aligned text. - Tighter key labels in help bar. - Remove duplicate intent labels from search and results panel titles. - Use semantic bindings: bind Tab and F5 to a 'searchCentral' action and match via event.matches() instead of raw KeyCode checks. - Depends on tamboui/tamboui#383 for Builder.bindings() propagation fix.
e233cbd to
1a2c5c3
Compare
- Update tambouiVersion from 0.4.0-SNAPSHOT to 0.4.0 - Remove mavenLocal() from repositories (no longer needed) - tamboui#383 (bindings propagation fix) is included in 0.4.0
e8fec28 to
f63b3b7
Compare
Summary
Replace JLine with TamboUI 0.4.0 for the
jbang deps searchinteractive TUI.Changes
Dependencies
jline-console-ui,jline-terminal-jnitamboui-toolkit:0.4.0,tamboui-aesh-backend:0.4.0TUI rewrite (
ArtifactSearchWidget)//DEPS g:a:vpreview shown inline at the right edge of the status bar. ~6 more rows for results.runner.schedule(), results marshalled back withrunOnRenderThread(), generation counter discards stale resultsSearchFuzzedResult.highlightTarget()--offline/-oflag viaUtil.isOffline()Search intent classifier (
SearchIntentClassifier)Two intent types: CLASS (prefers Central) and KEYWORD (local-first).
jackson databindjackson databindObjectMapperc:ObjectMappercom.fasterxml.jackson.databind.ObjectMapperfc:com.fasterxml...c:StatelessSessionc:StatelessSessionimport com.fasterxml...ObjectMapper;fc:com.fasterxml...error: package org.jsoup does not existorg.jsoupcom.fasterxml:jackson-databind:2.20.0c:/fc:prefixes stripped fromlocalQueryso fuzzy matching works against GAV stringsKey bindings
searchCentralaction viaevent.matches())Removed
ComboBox.java(JLine widget)