add trivial semantic tokens
This commit is contained in:
parent
909728a564
commit
ac0d79f816
@ -321,6 +321,54 @@ pub fn analyze_context(context: &mir::Context, module: &mir::Module, error: Opti
|
|||||||
properties: HashMap::new(),
|
properties: HashMap::new(),
|
||||||
types: HashMap::new(),
|
types: HashMap::new(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
for (i, token) in module.tokens.iter().enumerate() {
|
||||||
|
let semantic_token = match &token.token {
|
||||||
|
Token::DecimalValue(_) => Some(SemanticKind::Number),
|
||||||
|
Token::HexadecimalValue(_) => Some(SemanticKind::Number),
|
||||||
|
Token::OctalValue(_) => Some(SemanticKind::Number),
|
||||||
|
Token::BinaryValue(_) => Some(SemanticKind::Number),
|
||||||
|
Token::CharLit(_) => Some(SemanticKind::String),
|
||||||
|
Token::StringLit(_) => Some(SemanticKind::String),
|
||||||
|
Token::LetKeyword
|
||||||
|
| Token::MutKeyword
|
||||||
|
| Token::ImportKeyword
|
||||||
|
| Token::ReturnKeyword
|
||||||
|
| Token::FnKeyword
|
||||||
|
| Token::PubKeyword
|
||||||
|
| Token::AsKeyword
|
||||||
|
| Token::If
|
||||||
|
| Token::Else
|
||||||
|
| Token::True
|
||||||
|
| Token::False
|
||||||
|
| Token::Extern
|
||||||
|
| Token::Struct
|
||||||
|
| Token::While
|
||||||
|
| Token::For
|
||||||
|
| Token::In
|
||||||
|
| Token::Impl
|
||||||
|
| Token::Binop => Some(SemanticKind::Keyword),
|
||||||
|
Token::Equals
|
||||||
|
| Token::Plus
|
||||||
|
| Token::Star
|
||||||
|
| Token::Minus
|
||||||
|
| Token::Slash
|
||||||
|
| Token::Percent
|
||||||
|
| Token::GreaterThan
|
||||||
|
| Token::LessThan
|
||||||
|
| Token::Et
|
||||||
|
| Token::Pipe
|
||||||
|
| Token::Hat
|
||||||
|
| Token::Exclamation
|
||||||
|
| Token::Comment(_) => Some(SemanticKind::Comment),
|
||||||
|
_ => None,
|
||||||
|
};
|
||||||
|
if let Some(semantic) = semantic_token {
|
||||||
|
let symbol = scope.state.new_symbol(i, semantic);
|
||||||
|
scope.state.set_symbol(i, symbol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for import in &module.imports {
|
for import in &module.imports {
|
||||||
scope.state.init_types(&import.1, None);
|
scope.state.init_types(&import.1, None);
|
||||||
if let Some((module_name, _)) = import.0.get(0) {
|
if let Some((module_name, _)) = import.0.get(0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user