mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-29 21:34:57 +00:00
[ty] Add naive implementation of completions for unimported symbols
This re-works the `all_symbols` based added previously to work across all modules available, and not just what is directly in the workspace. Note that we always pass an empty string as a query, which makes the results always empty. We'll fix this in a subsequent commit.
This commit is contained in:
parent
78db56e362
commit
8e52027a88
9 changed files with 121 additions and 34 deletions
|
@ -12,6 +12,20 @@ use super::resolver::{
|
|||
ModuleResolveMode, ResolverContext, is_non_shadowable, resolve_file_module, search_paths,
|
||||
};
|
||||
|
||||
/// List all available modules, including all sub-modules, sorted in lexicographic order.
|
||||
pub fn all_modules(db: &dyn Db) -> Vec<Module<'_>> {
|
||||
let mut modules = list_modules(db);
|
||||
let mut stack = modules.clone();
|
||||
while let Some(module) = stack.pop() {
|
||||
for &submodule in module.all_submodules(db) {
|
||||
modules.push(submodule);
|
||||
stack.push(submodule);
|
||||
}
|
||||
}
|
||||
modules.sort_by_key(|module| module.name(db));
|
||||
modules
|
||||
}
|
||||
|
||||
/// List all available top-level modules.
|
||||
#[salsa::tracked]
|
||||
pub fn list_modules(db: &dyn Db) -> Vec<Module<'_>> {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use std::iter::FusedIterator;
|
||||
|
||||
pub use list::list_modules;
|
||||
pub use list::{all_modules, list_modules};
|
||||
pub(crate) use module::KnownModule;
|
||||
pub use module::Module;
|
||||
pub use path::{SearchPath, SearchPathValidationError};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue