use local namespaces

This commit is contained in:
yggverse 2025-03-17 02:29:49 +02:00
parent d8f692d807
commit 496b0036ff

View file

@ -13,11 +13,6 @@ use tag::Tag;
use super::{ItemAction, WindowAction};
use crate::app::browser::window::action::Position;
use ggemtext::line::{
code::{self, *},
header::{Header, Level},
link::Link,
};
use gtk::{
EventControllerMotion, GestureClick, TextBuffer, TextTag, TextView, TextWindowType,
UriLauncher, Window, WrapMode,
@ -102,10 +97,11 @@ impl Gemini {
// Disable multiline format on at least one closing tag not found
// gemini://bbs.geminispace.org/s/Gemini/26031
let is_multiline_enabled = {
use ggemtext::line::code::{self};
let mut t: usize = 0;
for l in gemtext.lines() {
if (l.starts_with(code::TAG) || l.ends_with(code::TAG))
&& inline::Gemtext::as_value(l).is_none()
&& code::inline::Gemtext::as_value(l).is_none()
{
t += 1;
}
@ -117,7 +113,7 @@ impl Gemini {
for line in gemtext.lines() {
// Is inline code
{
if let Some(code) = inline::Gemtext::as_value(line) {
if let Some(code) = ggemtext::line::code::inline::Gemtext::as_value(line) {
// Try auto-detect code syntax for given `value` @TODO optional
match syntax.highlight(code, None) {
Ok(highlight) => {
@ -157,6 +153,7 @@ impl Gemini {
// Is multiline code
if is_multiline_enabled {
use ggemtext::line::code::Multiline;
match multiline {
None => {
// Open tag found
@ -240,6 +237,8 @@ impl Gemini {
}
// Is header
{
use ggemtext::line::{Header, header::Level};
if let Some(header) = Header::parse(line) {
buffer.insert_with_tags(
&mut buffer.end_iter(),
@ -257,9 +256,12 @@ impl Gemini {
}
continue;
}
}
// Is link
if let Some(link) = Link::from(line, Some(base), Some(&TimeZone::local())) {
if let Some(link) =
ggemtext::line::Link::from(line, Some(base), Some(&TimeZone::local()))
{
let mut alt = Vec::new();
if link.uri.scheme() != base.scheme() {
@ -297,9 +299,8 @@ impl Gemini {
}
// Is list
{
use ggemtext::line::list::Gemtext;
if let Some(value) = line.as_value() {
if let Some(value) = ggemtext::line::list::Gemtext::as_value(line) {
buffer.insert_with_tags(
&mut buffer.end_iter(),
&format!("{value}"),
@ -308,12 +309,10 @@ impl Gemini {
buffer.insert(&mut buffer.end_iter(), NEW_LINE);
continue;
}
}
// Is quote
{
use ggemtext::line::quote::Gemtext;
if let Some(quote) = line.as_value() {
if let Some(quote) = ggemtext::line::quote::Gemtext::as_value(line) {
// Show quote indicator if last line is not quote (to prevent duplicates)
if !is_line_after_quote {
// Show only if the icons resolved for default `Display`
@ -329,7 +328,6 @@ impl Gemini {
} else {
is_line_after_quote = false;
}
}
// Nothing match custom tags above,
// just append plain text covered in empty tag (to handle controller events properly)