feat: new parser for mention everything (#411)

* feat: implement custom parser for mentions

* feat: handle backticks in codeblocks and escapes

* chore: remove fancy-regex

* fix: dont serialise empty role mentions

* chore: cleanup role mentions logic

* chore: update lockfile

* fix: actually use everyone and online mentions from content

* fix: broken merge

---------

Signed-off-by: Zomatree <me@zomatree.live>
This commit is contained in:
Paul Makles
2025-04-28 17:08:06 +01:00
committed by GitHub
parent 29b6ac3acf
commit f75d635c81
7 changed files with 334 additions and 97 deletions

75
Cargo.lock generated
View File

@@ -1084,6 +1084,12 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]]
name = "beef"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
[[package]]
name = "binascii"
version = "0.1.4"
@@ -1105,21 +1111,6 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed79c2a8151273c70956b5e3cdfdc1ff6c1a8b9779ba59c6807d281b32ee2f86"
[[package]]
name = "bit-set"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
dependencies = [
"bit-vec",
]
[[package]]
name = "bit-vec"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
[[package]]
name = "bit_field"
version = "0.10.2"
@@ -2257,17 +2248,6 @@ dependencies = [
"zune-inflate",
]
[[package]]
name = "fancy-regex"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298"
dependencies = [
"bit-set",
"regex-automata 0.4.9",
"regex-syntax 0.8.5",
]
[[package]]
name = "fastrand"
version = "1.9.0"
@@ -4119,6 +4099,40 @@ dependencies = [
"value-bag",
]
[[package]]
name = "logos"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab6f536c1af4c7cc81edf73da1f8029896e7e1e16a219ef09b184e76a296f3db"
dependencies = [
"logos-derive",
]
[[package]]
name = "logos-codegen"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "189bbfd0b61330abea797e5e9276408f2edbe4f822d7ad08685d67419aafb34e"
dependencies = [
"beef",
"fnv",
"lazy_static",
"proc-macro2",
"quote 1.0.38",
"regex-syntax 0.8.5",
"rustc_version",
"syn 2.0.94",
]
[[package]]
name = "logos-derive"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebfe8e1a19049ddbfccbd14ac834b215e11b85b90bab0c2dba7c7b92fb5d5cba"
dependencies = [
"logos-codegen",
]
[[package]]
name = "loom"
version = "0.5.6"
@@ -6093,6 +6107,7 @@ dependencies = [
"regex",
"revolt-config",
"revolt-models",
"revolt-parser",
"revolt-permissions",
"revolt-presence",
"revolt-result",
@@ -6213,7 +6228,6 @@ dependencies = [
name = "revolt-models"
version = "0.8.4"
dependencies = [
"fancy-regex",
"indexmap 1.9.3",
"iso8601-timestamp 0.2.17",
"num_enum 0.6.1",
@@ -6242,6 +6256,13 @@ dependencies = [
"serde",
]
[[package]]
name = "revolt-parser"
version = "0.1.0"
dependencies = [
"logos",
]
[[package]]
name = "revolt-permissions"
version = "0.8.4"