mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-15 01:00:02 +00:00
connect sourceview5
This commit is contained in:
parent
614aa1d71a
commit
c1fc022643
@ -41,6 +41,10 @@ version = "5.2.0"
|
||||
[dependencies.ansi-parser]
|
||||
version = "0.9.1"
|
||||
|
||||
[dependencies.sourceview]
|
||||
package = "sourceview5"
|
||||
version = "0.9.1"
|
||||
|
||||
# development
|
||||
[patch.crates-io]
|
||||
# ggemini = { path = "ggemini" }
|
||||
|
@ -97,7 +97,7 @@ GTK 4 / Libadwaita client written in Rust
|
||||
* [ ] `file://` - localhost browser
|
||||
* [ ] System
|
||||
* [ ] `config:` - low-level key/value settings editor
|
||||
* [x] `view-source:` - page source viewer (where supported)
|
||||
* [x] `source:` - page source viewer (where supported)
|
||||
|
||||
### Media types
|
||||
|
||||
@ -129,13 +129,14 @@ GTK 4 / Libadwaita client written in Rust
|
||||
* GDK PixBuf `2.42`
|
||||
* Glib `2.80`
|
||||
* GTK `4.14`
|
||||
* GtkSourceView `5.14`
|
||||
* Libadwaita `1.5` (Ubuntu 24.04+)
|
||||
|
||||
#### Debian
|
||||
|
||||
``` bash
|
||||
sudo apt install git curl build-essential\
|
||||
libgtk-4-dev libadwaita-1-dev\
|
||||
libgtk-4-dev libgtksourceview-5-dev libadwaita-1-dev\
|
||||
libsqlite3-dev libssl-dev
|
||||
```
|
||||
|
||||
@ -143,7 +144,7 @@ sudo apt install git curl build-essential\
|
||||
|
||||
``` bash
|
||||
sudo dnf install git curl gcc\
|
||||
gtk4-devel libadwaita-devel\
|
||||
gtk4-devel gtksourceview5-devel libadwaita-devel\
|
||||
sqlite-devel openssl-devel
|
||||
```
|
||||
|
||||
|
@ -11,11 +11,17 @@ impl About {
|
||||
// Collect debug info
|
||||
let debug = &[
|
||||
format!(
|
||||
"GTK {}.{}.{}",
|
||||
"Gtk {}.{}.{}",
|
||||
gtk::major_version(),
|
||||
gtk::minor_version(),
|
||||
gtk::micro_version()
|
||||
),
|
||||
format!(
|
||||
"GtkSourceView {}.{}.{}",
|
||||
sourceview::major_version(),
|
||||
sourceview::minor_version(),
|
||||
sourceview::micro_version()
|
||||
),
|
||||
format!("SQLite {}", sqlite::version()),
|
||||
// @TODO
|
||||
];
|
||||
|
@ -198,8 +198,8 @@ impl Page {
|
||||
};
|
||||
|
||||
// Detect source view mode, return `request` string prepared for route
|
||||
let (request, is_view_source) = match request.strip_prefix("view-source:") {
|
||||
Some(postfix) => (gformat!("{}", postfix.to_string()), true),
|
||||
let (request, is_view_source) = match request.strip_prefix("source:") {
|
||||
Some(postfix) => (GString::from(postfix), true),
|
||||
None => (request, false),
|
||||
};
|
||||
|
||||
|
@ -1,22 +1,29 @@
|
||||
use gtk::{TextBuffer, TextView};
|
||||
|
||||
use sourceview::{Buffer, StyleScheme, View};
|
||||
const MARGIN: i32 = 8;
|
||||
|
||||
pub struct Source {
|
||||
pub text_view: TextView,
|
||||
pub text_view: View,
|
||||
}
|
||||
|
||||
impl Source {
|
||||
pub fn new(data: &str) -> Self {
|
||||
Self {
|
||||
text_view: TextView::builder()
|
||||
text_view: View::builder()
|
||||
.bottom_margin(MARGIN)
|
||||
.buffer(&TextBuffer::builder().text(data).build())
|
||||
.buffer(
|
||||
&Buffer::builder()
|
||||
.text(data)
|
||||
.style_scheme(&StyleScheme::builder().build()) // adaptive
|
||||
.highlight_syntax(true)
|
||||
.build(),
|
||||
)
|
||||
.cursor_visible(false)
|
||||
.editable(false)
|
||||
.left_margin(MARGIN)
|
||||
.monospace(true)
|
||||
.right_margin(MARGIN)
|
||||
.show_line_marks(true)
|
||||
.show_line_numbers(true)
|
||||
.top_margin(MARGIN)
|
||||
.vexpand(true)
|
||||
.build(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user