aboutsummaryrefslogtreecommitdiffstats
path: root/src/util/identifier.rs
diff options
context:
space:
mode:
authorLibravatar Titus Wormer <tituswormer@gmail.com>2022-10-06 12:12:36 +0200
committerLibravatar Titus Wormer <tituswormer@gmail.com>2022-10-06 12:12:36 +0200
commit6e80e03bb6d6af47aba2b339f160e4895ab5afba (patch)
tree98ecdfd1d73065ae45846320ccf43e5eb8c8cced /src/util/identifier.rs
parentb75d7976cfe8db43783b930c1f4774f2ad4936f5 (diff)
downloadmarkdown-rs-6e80e03bb6d6af47aba2b339f160e4895ab5afba.tar.gz
markdown-rs-6e80e03bb6d6af47aba2b339f160e4895ab5afba.tar.bz2
markdown-rs-6e80e03bb6d6af47aba2b339f160e4895ab5afba.zip
Refactor to share identifier methods
Diffstat (limited to 'src/util/identifier.rs')
-rw-r--r--src/util/identifier.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/util/identifier.rs b/src/util/identifier.rs
new file mode 100644
index 0000000..4887e02
--- /dev/null
+++ b/src/util/identifier.rs
@@ -0,0 +1,15 @@
+//! Info on JavaScript identifiers.
+
+use unicode_id::UnicodeID;
+
+/// Check if a character can start a JS identifier.
+pub fn id_start(char: char) -> bool {
+ UnicodeID::is_id_start(char) || matches!(char, '$' | '_')
+}
+
+/// Check if a character can continue a JS (or JSX) identifier.
+pub fn id_cont(char: char, jsx: bool) -> bool {
+ UnicodeID::is_id_continue(char)
+ || matches!(char, '\u{200c}' | '\u{200d}')
+ || (jsx && char == '-')
+}