Fix quote styling occurring in the middle of a line
fixup454c00a
,795af2d
,4e9e09a
This commit is contained in:
parent
29d1abccac
commit
ee085e3e0d
|
@ -198,9 +198,9 @@ public class MessageItemWidget : SizeRequestBin {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (conversation.type_ == Conversation.Type.GROUPCHAT) {
|
if (conversation.type_ == Conversation.Type.GROUPCHAT) {
|
||||||
markup_text = Util.parse_add_markup_theme(markup_text, conversation.nickname, true, true, Util.is_dark_theme(this), ref theme_dependent);
|
markup_text = Util.parse_add_markup_theme(markup_text, conversation.nickname, true, true, true, Util.is_dark_theme(this), ref theme_dependent);
|
||||||
} else {
|
} else {
|
||||||
markup_text = Util.parse_add_markup_theme(markup_text, null, true, true, Util.is_dark_theme(this), ref theme_dependent);
|
markup_text = Util.parse_add_markup_theme(markup_text, null, true, true, true, Util.is_dark_theme(this), ref theme_dependent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.body.has_prefix("/me ")) {
|
if (message.body.has_prefix("/me ")) {
|
||||||
|
|
|
@ -239,14 +239,14 @@ public static Map<unichar, unichar> get_matching_chars() {
|
||||||
|
|
||||||
public static string parse_add_markup(string s_, string? highlight_word, bool parse_links, bool parse_text_markup) {
|
public static string parse_add_markup(string s_, string? highlight_word, bool parse_links, bool parse_text_markup) {
|
||||||
bool ignore_out_var = false;
|
bool ignore_out_var = false;
|
||||||
return parse_add_markup_theme(s_, highlight_word, parse_links, parse_text_markup, false, ref ignore_out_var);
|
return parse_add_markup_theme(s_, highlight_word, parse_links, parse_text_markup, parse_text_markup, false, ref ignore_out_var);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string parse_add_markup_theme(string s_, string? highlight_word, bool parse_links, bool parse_text_markup, bool dark_theme, ref bool theme_dependent, bool already_escaped_ = false) {
|
public static string parse_add_markup_theme(string s_, string? highlight_word, bool parse_links, bool parse_text_markup, bool parse_quotes, bool dark_theme, ref bool theme_dependent, bool already_escaped_ = false) {
|
||||||
string s = s_;
|
string s = s_;
|
||||||
bool already_escaped = already_escaped_;
|
bool already_escaped = already_escaped_;
|
||||||
|
|
||||||
if (parse_text_markup) {
|
if (parse_quotes) {
|
||||||
string gt = already_escaped ? ">" : ">";
|
string gt = already_escaped ? ">" : ">";
|
||||||
Regex quote_regex = new Regex("((?<=\n)" + gt + ".*(\n|$))|(^" + gt + ".*(\n|$))");
|
Regex quote_regex = new Regex("((?<=\n)" + gt + ".*(\n|$))|(^" + gt + ".*(\n|$))");
|
||||||
MatchInfo quote_match_info;
|
MatchInfo quote_match_info;
|
||||||
|
@ -258,9 +258,9 @@ public static string parse_add_markup_theme(string s_, string? highlight_word, b
|
||||||
|
|
||||||
theme_dependent = true;
|
theme_dependent = true;
|
||||||
quote_match_info.fetch_pos(0, out start, out end);
|
quote_match_info.fetch_pos(0, out start, out end);
|
||||||
return parse_add_markup_theme(s[0:start], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped) +
|
return parse_add_markup_theme(s[0:start], highlight_word, parse_links, parse_text_markup, parse_quotes, dark_theme, ref theme_dependent, already_escaped) +
|
||||||
@"<span color='$dim_color'>$gt " + parse_add_markup_theme(s[start + gt.length + 1:end], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped) + "</span>" +
|
@"<span color='$dim_color'>$gt " + parse_add_markup_theme(s[start + gt.length + 1:end], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped) + "</span>" +
|
||||||
parse_add_markup_theme(s[end:s.length], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped);
|
parse_add_markup_theme(s[end:s.length], highlight_word, parse_links, parse_text_markup, parse_quotes, dark_theme, ref theme_dependent, already_escaped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,11 +304,11 @@ public static string parse_add_markup_theme(string s_, string? highlight_word, b
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return parse_add_markup_theme(s[0:start], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped) +
|
return parse_add_markup_theme(s[0:start], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped) +
|
||||||
"<a href=\"" + Markup.escape_text(link) + "\">" +
|
"<a href=\"" + Markup.escape_text(link) + "\">" +
|
||||||
parse_add_markup_theme(link, highlight_word, false, false, dark_theme, ref theme_dependent, already_escaped) +
|
parse_add_markup_theme(link, highlight_word, false, false, false, dark_theme, ref theme_dependent, already_escaped) +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
parse_add_markup_theme(s[end:s.length], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped);
|
parse_add_markup_theme(s[end:s.length], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped);
|
||||||
}
|
}
|
||||||
match_info.next();
|
match_info.next();
|
||||||
}
|
}
|
||||||
|
@ -327,9 +327,9 @@ public static string parse_add_markup_theme(string s_, string? highlight_word, b
|
||||||
if (match_info.matches()) {
|
if (match_info.matches()) {
|
||||||
int start, end;
|
int start, end;
|
||||||
match_info.fetch_pos(0, out start, out end);
|
match_info.fetch_pos(0, out start, out end);
|
||||||
return parse_add_markup_theme(s[0:start], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped) +
|
return parse_add_markup_theme(s[0:start], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped) +
|
||||||
"<b>" + s[start:end] + "</b>" +
|
"<b>" + s[start:end] + "</b>" +
|
||||||
parse_add_markup_theme(s[end:s.length], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped);
|
parse_add_markup_theme(s[end:s.length], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped);
|
||||||
}
|
}
|
||||||
} catch (RegexError e) {
|
} catch (RegexError e) {
|
||||||
assert_not_reached();
|
assert_not_reached();
|
||||||
|
@ -349,11 +349,11 @@ public static string parse_add_markup_theme(string s_, string? highlight_word, b
|
||||||
if (match_info.matches()) {
|
if (match_info.matches()) {
|
||||||
int start, end;
|
int start, end;
|
||||||
match_info.fetch_pos(2, out start, out end);
|
match_info.fetch_pos(2, out start, out end);
|
||||||
return parse_add_markup_theme(s[0:start-1], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped) +
|
return parse_add_markup_theme(s[0:start-1], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped) +
|
||||||
"<span color='#9E9E9E'>" + s[start-1:start] + "</span>" +
|
"<span color='#9E9E9E'>" + s[start-1:start] + "</span>" +
|
||||||
@"<$(convenience_tag[i])>" + s[start:end] + @"</$(convenience_tag[i])>" +
|
@"<$(convenience_tag[i])>" + s[start:end] + @"</$(convenience_tag[i])>" +
|
||||||
"<span color='#9E9E9E'>" + s[end:end+1] + "</span>" +
|
"<span color='#9E9E9E'>" + s[end:end+1] + "</span>" +
|
||||||
parse_add_markup_theme(s[end+1:s.length], highlight_word, parse_links, parse_text_markup, dark_theme, ref theme_dependent, already_escaped);
|
parse_add_markup_theme(s[end+1:s.length], highlight_word, parse_links, parse_text_markup, false, dark_theme, ref theme_dependent, already_escaped);
|
||||||
}
|
}
|
||||||
} catch (RegexError e) {
|
} catch (RegexError e) {
|
||||||
assert_not_reached();
|
assert_not_reached();
|
||||||
|
|
Loading…
Reference in a new issue