fix: bugs

This commit is contained in:
Shunsuke Shibayama 2023-05-13 16:14:34 +09:00
parent 33e1b776cb
commit ced04e5d6a
8 changed files with 71 additions and 65 deletions

View file

@ -1,6 +1,8 @@
use std::fs::File;
use std::io::Read;
use erg_compiler::erg_parser::ast::Module;
use erg_compiler::erg_parser::Parser;
use lsp_types::{
DidChangeTextDocumentParams, FileOperationFilter, FileOperationPattern,
FileOperationPatternKind, FileOperationRegistrationOptions, OneOf, Position, Range,
@ -126,6 +128,12 @@ impl FileCache {
self.files.borrow_mut().get(uri)?.token_stream.clone()
}
pub fn get_ast(&self, uri: &NormalizedUrl) -> Option<Module> {
let ts = self.get_token_stream(uri)?;
let mut parser = Parser::new(ts);
parser.parse().ok()
}
pub fn get_token(&self, uri: &NormalizedUrl, pos: Position) -> Option<Token> {
let _ = self.load_once(uri);
let ent = self.files.borrow_mut();