Skip to content

Commit 44f4b37

Browse files
committed
chore: use promkit-widgets v0.2.0 and remove promkit-core crate, render.rs
1 parent cc0f8b1 commit 44f4b37

14 files changed

Lines changed: 682 additions & 680 deletions

File tree

Cargo.lock

Lines changed: 517 additions & 490 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,23 @@ readme = "README.md"
1212
anyhow = "1.0.97"
1313
arboard = { version = "3.4.1", features = ["wayland-data-control"] }
1414
async-trait = "0.1.88"
15-
clap = { version = "4.5.34", features = ["derive"] }
15+
clap = { version = "4.5.41", features = ["derive"] }
1616
duration-string = { version = "0.5.2", features = ["serde"] }
1717
derive_builder = "0.20.2"
1818
dirs = "6.0.0"
1919
futures = "0.3.30"
20+
promkit-widgets = { version = "0.2.0", features = ["jsonstream", "listbox", "text", "texteditor"] }
21+
serde = "1.0.219"
22+
tokio = { version = "1.44.1", features = ["full"] }
23+
tokio-stream = "0.1.16"
24+
toml = "0.9.2"
25+
26+
# jaq dependencies
27+
# TODO: bump up to v2.x.x
2028
jaq-core = "1.2.1"
2129
jaq-interpret = "1.2.1"
2230
jaq-parse = "1.0.2"
2331
jaq-std = "1.2.1"
24-
promkit-core = "0.1.0"
25-
promkit-widgets = { version = "0.1.0", features = ["jsonstream", "listbox", "text", "texteditor"] }
26-
serde = "1.0.219"
27-
tokio = { version = "1.44.1", features = ["full"] }
28-
tokio-stream = "0.1.16"
29-
toml = "0.8.20"
3032

3133
# The profile that 'cargo dist' will build with
3234
[profile.dist]

src/config.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
use std::collections::HashSet;
22

3-
use promkit_core::crossterm::{
4-
event::{KeyCode, KeyModifiers},
5-
style::{Attribute, Attributes, Color, ContentStyle},
3+
use promkit_widgets::{
4+
core::crossterm::{
5+
event::{KeyCode, KeyModifiers},
6+
style::{Attribute, Attributes, Color, ContentStyle},
7+
},
8+
text_editor::Mode,
69
};
7-
use promkit_widgets::text_editor::Mode;
810
use serde::{Deserialize, Serialize};
911
use tokio::time::Duration;
1012

src/config/content_style.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use promkit_core::crossterm::style::{Attribute, Attributes, Color, ContentStyle};
1+
use promkit_widgets::core::crossterm::style::{Attribute, Attributes, Color, ContentStyle};
22
use serde::{Deserialize, Serialize};
33

44
#[derive(Serialize, Deserialize)]

src/config/event.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::collections::HashSet;
22

3-
use promkit_core::crossterm::event::{
3+
use promkit_widgets::core::crossterm::event::{
44
Event, KeyCode, KeyEvent, KeyModifiers, MouseEvent, MouseEventKind,
55
};
66
use serde::{Deserialize, Serialize};

src/editor.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use std::{future::Future, pin::Pin};
22

3-
use promkit_core::{
4-
crossterm::{
5-
event::{Event, KeyCode, KeyEvent, KeyEventKind, KeyEventState, KeyModifiers},
6-
style::{Color, ContentStyle},
7-
},
8-
Pane, PaneFactory,
9-
};
103
use promkit_widgets::{
4+
core::{
5+
crossterm::{
6+
event::{Event, KeyCode, KeyEvent, KeyEventKind, KeyEventState, KeyModifiers},
7+
style::{Color, ContentStyle},
8+
},
9+
Pane, PaneFactory,
10+
},
1111
text::{self, Text},
1212
text_editor,
1313
};

src/json.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
use jaq_interpret::{Ctx, FilterT, ParseCtx, RcIter, Val};
2-
use promkit_core::{
3-
crossterm::{
4-
event::Event,
5-
style::{Attribute, Attributes, Color, ContentStyle},
6-
},
7-
pane::Pane,
8-
PaneFactory,
9-
};
102

113
use promkit_widgets::{
4+
core::{
5+
crossterm::{
6+
event::Event,
7+
style::{Attribute, Attributes, Color, ContentStyle},
8+
},
9+
pane::Pane,
10+
PaneFactory,
11+
},
1212
jsonstream::{self, format::RowFormatter, jsonz, JsonStream},
1313
serde_json::{self, Deserializer, Value},
1414
text::{self, Text},

src/main.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use std::{
77
use anyhow::anyhow;
88
use clap::Parser;
99
use config::Config;
10-
use promkit_core::crossterm::style::Attribute;
1110
use promkit_widgets::{
11+
core::crossterm::style::Attribute,
1212
jsonstream::format::RowFormatter,
1313
listbox::{self, Listbox},
1414
text_editor::{self, TextEditor},
@@ -25,8 +25,6 @@ use processor::{
2525
ViewProvider, Visualizer,
2626
};
2727
mod prompt;
28-
mod render;
29-
use render::{PaneIndex, Renderer, EMPTY_PANE};
3028
mod search;
3129
use search::{IncrementalSearcher, SearchProvider};
3230

src/processor.rs

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
use std::sync::Arc;
22

33
use async_trait::async_trait;
4-
use promkit_core::{crossterm::event::Event, pane::Pane};
4+
use promkit_widgets::core::{
5+
crossterm::event::Event,
6+
pane::{Pane, EMPTY_PANE},
7+
render::SharedRenderer,
8+
};
59
use tokio::{sync::Mutex, task::JoinHandle};
610

7-
use crate::{PaneIndex, Renderer, EMPTY_PANE};
811
pub mod init;
912
pub use init::ViewProvider;
13+
14+
use crate::prompt::Index;
1015
pub mod monitor;
1116
pub mod spinner;
1217

@@ -58,7 +63,7 @@ impl Processor {
5863
&self,
5964
query: String,
6065
shared_visualizer: Arc<Mutex<impl Visualizer>>,
61-
shared_renderer: Arc<Mutex<Renderer>>,
66+
shared_renderer: SharedRenderer<Index>,
6267
) -> JoinHandle<()> {
6368
let shared = self.shared.clone();
6469
tokio::spawn(async move {
@@ -83,16 +88,16 @@ impl Processor {
8388
}
8489
{
8590
// TODO: error handling
86-
let _ = shared_renderer.lock().await.update_and_draw([
87-
(
88-
PaneIndex::Guide,
89-
maybe_guide.unwrap_or(EMPTY_PANE.to_owned()),
90-
),
91-
(
92-
PaneIndex::Processor,
93-
maybe_resp.unwrap_or(EMPTY_PANE.to_owned()),
94-
),
95-
]);
91+
let _ = shared_renderer
92+
.update([
93+
(Index::Guide, maybe_guide.unwrap_or(EMPTY_PANE.to_owned())),
94+
(
95+
Index::Processor,
96+
maybe_resp.unwrap_or(EMPTY_PANE.to_owned()),
97+
),
98+
])
99+
.render()
100+
.await;
96101
}
97102
})
98103
}
@@ -102,7 +107,7 @@ impl Processor {
102107
shared_visualizer: Arc<Mutex<impl Visualizer>>,
103108
area: (u16, u16),
104109
query: String,
105-
shared_renderer: Arc<Mutex<Renderer>>,
110+
shared_renderer: SharedRenderer<Index>,
106111
) {
107112
{
108113
let mut shared_state = self.shared.lock().await;
@@ -124,7 +129,7 @@ impl Processor {
124129
&self,
125130
shared_visualizer: Arc<Mutex<impl Visualizer>>,
126131
query: String,
127-
shared_renderer: Arc<Mutex<Renderer>>,
132+
shared_renderer: SharedRenderer<Index>,
128133
) {
129134
{
130135
let mut shared_state = self.shared.lock().await;

src/processor/init.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
use std::sync::Arc;
22

33
use async_trait::async_trait;
4+
use promkit_widgets::core::render::SharedRenderer;
45
use tokio::sync::Mutex;
56

67
use super::{Context, State, Visualizer};
7-
use crate::{config::JsonViewerKeybinds, PaneIndex, Renderer};
8+
use crate::{config::JsonViewerKeybinds, prompt::Index};
89

910
#[async_trait]
1011
pub trait ViewProvider {
@@ -29,7 +30,7 @@ impl ViewInitializer {
2930
provider: &'a mut T,
3031
item: &'static str,
3132
area: (u16, u16),
32-
shared_renderer: Arc<Mutex<Renderer>>,
33+
shared_renderer: SharedRenderer<Index>,
3334
keybinds: JsonViewerKeybinds,
3435
) -> anyhow::Result<impl Visualizer + 'a> {
3536
{
@@ -51,9 +52,9 @@ impl ViewInitializer {
5152
{
5253
// TODO: error handling
5354
let _ = shared_renderer
54-
.lock()
55-
.await
56-
.update_and_draw([(PaneIndex::Processor, pane)]);
55+
.update([(Index::Processor, pane)])
56+
.render()
57+
.await;
5758
}
5859

5960
Ok(visualizer)

0 commit comments

Comments
 (0)