start on parsing pest representation into lsp types
This commit is contained in:
parent
7fbf9b82ba
commit
c059feb4c7
10
src/cache.rs
10
src/cache.rs
|
@ -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)
|
||||
|
|
|
@ -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>> {
|
||||
|
|
Loading…
Reference in New Issue