[parsing/mfm] Fix mentions in parentheses not getting parsed correctly

This commit is contained in:
Laura Hausmann 2024-09-25 23:51:28 +02:00
parent 5a26c5e7f2
commit b773876028
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
2 changed files with 5 additions and 3 deletions

View file

@ -237,7 +237,7 @@ module private MfmParser =
|>> fun c -> MfmCenterNode(aggregateTextInline c) :> MfmNode
let mentionNode =
previousCharSatisfiesNot isNotWhitespace
(previousCharSatisfiesNot isNotWhitespace <|> previousCharSatisfies (isAnyOf <| "()"))
>>. skipString "@"
>>. many1Chars (
satisfy isLetterOrNumber

View file

@ -75,7 +75,7 @@ public class MfmTests
public void TestMention()
{
const string input =
"test @test test @test@instance.tld @test_ @_test @test_@ins-tance.tld @_test@xn--mastodn-f1a.de @_test@-xn--mastodn-f1a.de";
"test @test test @test@instance.tld @test_ @_test @test_@ins-tance.tld @_test@xn--mastodn-f1a.de @_test@-xn--mastodn-f1a.de (@test@domain.tld)";
List<MfmNode> expected =
[
new MfmTextNode("test "),
@ -90,7 +90,9 @@ public class MfmTests
new MfmMentionNode("test_@ins-tance.tld", "test_", "ins-tance.tld"),
new MfmTextNode(" "),
new MfmMentionNode("_test@xn--mastodn-f1a.de", "_test", "xn--mastodn-f1a.de"),
new MfmTextNode(" @_test@-xn--mastodn-f1a.de")
new MfmTextNode(" @_test@-xn--mastodn-f1a.de ("),
new MfmMentionNode("test@domain.tld", "test", "domain.tld"),
new MfmTextNode(")"),
];
var res = Mfm.parse(input);