start on parsing pest representation into lsp types

This commit is contained in:
acereca 2023-04-13 16:34:30 +02:00
parent 62c9c3095b
commit f3c6ac488c
2 changed files with 12 additions and 6 deletions

View File

@ -31,7 +31,8 @@ impl SymbolCache {
}
}
pub fn update(&self, path: &str) -> Vec<CompletionItem> {
pub fn update(&self, path: &str) {
self.symbols.insert(path.to_owned(), vec![]);
let parsed = parse_skill(path);
for rule in parsed {
match parse_global_symbols(rule) {
@ -39,20 +40,19 @@ impl SymbolCache {
Err(_) => {}
}
}
return self.symbols.get(path).unwrap().to_vec();
}
}
#[cfg(test)]
mod tests {
use crate::cache::SymbolCache;
// use crate::cache::SymbolCache;
// use std::collections::HashMap;
// use std::path::Path;
#[test]
fn insert() {
let mut d = SymbolCache::new();
d.update();
// let mut d = SymbolCache::new();
// d.update();
// let mut comp = HashMap::new();
// comp.insert();
// assert_eq!(d.documents, comp)

View File

@ -1,11 +1,17 @@
use pest::error::Error;
use pest::iterators::Pair;
use pest::Parser;
use log::info;
#[derive(Parser)]
#[grammar = "./skill.pest"]
#[grammar = "skill.pest"]
pub struct SkillParser;
pub fn parse_skill(path: &str) -> Vec<Pair<Rule>> {
let parsed = SkillParser::parse(Rule::skill, path);
info!("{:?}", parsed);
vec![]
}
pub fn parse_global_symbols(token: Pair<Rule>) -> Result<&str, Error<Rule>> {