mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-28 04:09:05 +00:00
fix: bugs
This commit is contained in:
parent
33e1b776cb
commit
ced04e5d6a
8 changed files with 71 additions and 65 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue