mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
add support for @,_,* tokens
This commit is contained in:
parent
5a0a7289ba
commit
1e26769313
2 changed files with 22 additions and 1 deletions
|
@ -55,11 +55,14 @@ pub enum Token {
|
||||||
Pizza,
|
Pizza,
|
||||||
Brace,
|
Brace,
|
||||||
Bracket,
|
Bracket,
|
||||||
|
AtSign,
|
||||||
Paren,
|
Paren,
|
||||||
Arrow,
|
Arrow,
|
||||||
Pipe,
|
Pipe,
|
||||||
Backpass,
|
Backpass,
|
||||||
Decimal,
|
Decimal,
|
||||||
|
Multiply,
|
||||||
|
Underscore,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn highlight(text: &str) -> Vec<Loc<Token>> {
|
pub fn highlight(text: &str) -> Vec<Loc<Token>> {
|
||||||
|
@ -274,6 +277,10 @@ fn highlight_inner<'a>(
|
||||||
state.advance_mut(1);
|
state.advance_mut(1);
|
||||||
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Comma));
|
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Comma));
|
||||||
}
|
}
|
||||||
|
'_' => {
|
||||||
|
state.advance_mut(1);
|
||||||
|
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Underscore));
|
||||||
|
}
|
||||||
'?' => {
|
'?' => {
|
||||||
state.advance_mut(1);
|
state.advance_mut(1);
|
||||||
tokens.push(Loc::at(
|
tokens.push(Loc::at(
|
||||||
|
@ -285,6 +292,10 @@ fn highlight_inner<'a>(
|
||||||
state.advance_mut(1);
|
state.advance_mut(1);
|
||||||
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Percent));
|
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Percent));
|
||||||
}
|
}
|
||||||
|
'*' => {
|
||||||
|
state.advance_mut(1);
|
||||||
|
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Multiply));
|
||||||
|
}
|
||||||
'^' => {
|
'^' => {
|
||||||
state.advance_mut(1);
|
state.advance_mut(1);
|
||||||
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Caret));
|
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Caret));
|
||||||
|
@ -306,6 +317,13 @@ fn highlight_inner<'a>(
|
||||||
};
|
};
|
||||||
tokens.push(Loc::at(Region::between(start, state.pos()), tok));
|
tokens.push(Loc::at(Region::between(start, state.pos()), tok));
|
||||||
}
|
}
|
||||||
|
'@' => {
|
||||||
|
state.advance_mut(1);
|
||||||
|
tokens.push(Loc::at(
|
||||||
|
Region::between(start, state.pos()),
|
||||||
|
Token::AtSign,
|
||||||
|
));
|
||||||
|
}
|
||||||
'{' | '}' => {
|
'{' | '}' => {
|
||||||
state.advance_mut(1);
|
state.advance_mut(1);
|
||||||
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Brace));
|
tokens.push(Loc::at(Region::between(start, state.pos()), Token::Brace));
|
||||||
|
|
|
@ -45,6 +45,7 @@ pub fn highlight(code: &str) -> Vec<String> {
|
||||||
| Token::ColonEquals
|
| Token::ColonEquals
|
||||||
| Token::Colon
|
| Token::Colon
|
||||||
| Token::And
|
| Token::And
|
||||||
|
| Token::AtSign
|
||||||
| Token::QuestionMark => {
|
| Token::QuestionMark => {
|
||||||
buf = push_html_span(buf, current_text, "kw");
|
buf = push_html_span(buf, current_text, "kw");
|
||||||
}
|
}
|
||||||
|
@ -63,6 +64,7 @@ pub fn highlight(code: &str) -> Vec<String> {
|
||||||
| Token::LessThanEquals
|
| Token::LessThanEquals
|
||||||
| Token::DoubleEquals
|
| Token::DoubleEquals
|
||||||
| Token::DoubleBar
|
| Token::DoubleBar
|
||||||
|
| Token::Multiply
|
||||||
| Token::Plus
|
| Token::Plus
|
||||||
| Token::DoubleAnd => {
|
| Token::DoubleAnd => {
|
||||||
buf = push_html_span(buf, current_text, "op");
|
buf = push_html_span(buf, current_text, "op");
|
||||||
|
@ -81,7 +83,8 @@ pub fn highlight(code: &str) -> Vec<String> {
|
||||||
buf = push_html_span(buf, current_text, "upperident");
|
buf = push_html_span(buf, current_text, "upperident");
|
||||||
}
|
}
|
||||||
// Variables modules and field names
|
// Variables modules and field names
|
||||||
Token::LowerIdent => {
|
Token::LowerIdent
|
||||||
|
| Token::Underscore => {
|
||||||
buf = push_html_span(buf, current_text, "lowerident");
|
buf = push_html_span(buf, current_text, "lowerident");
|
||||||
}
|
}
|
||||||
// Anyting else that wasn't tokenised
|
// Anyting else that wasn't tokenised
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue