ruff/crates/ruff_python_ast/src
Andrew Gallant 33ed502edb ty_ide: improve completions by using scopes
Previously, completions were based on just returning every identifier
parsed in the current Python file. In this commit, we change it to
identify an expression under the cursor and then return all symbols
available to the scope containing that expression.

This is still returning too much, and also, in some cases, not enough.
Namely, it doesn't really take the specific context into account other
than scope. But this does improve on the status quo. For example:

    def foo(): ...
    def bar():
        def fast(): ...
    def foofoo(): ...

    f<CURSOR>

When asking for completions here, the LSP will no longer include `fast`
as a possible completion in this context.

Ref https://github.com/astral-sh/ty/issues/86
2025-05-29 10:31:30 -04:00
..
visitor [ruff_python_ast] Fix redundant visitation of test expressions in elif clause statements (#18064) 2025-05-13 07:10:23 +00:00
comparable.rs Use `#[expect(lint)]` over `#[allow(lint)]` where possible (#17822) 2025-05-03 21:20:31 +02:00
docstrings.rs Move Python whitespace utilities into new `ruff_python_whitespace` crate (#4993) 2023-06-10 00:59:57 +00:00
expression.rs Remove customizable reference enum names (#15647) 2025-01-21 13:46:31 -05:00
generated.rs Auto generate `visit_source_order` (#17180) 2025-04-17 08:59:57 -04:00
helpers.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00
identifier.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00
int.rs [`ruff`] Unnecessary cast to `int` (`RUF046`) (#14697) 2024-12-05 10:30:06 +01:00
lib.rs Use `ast::PythonVersion` internally in the formatter and linter (#16170) 2025-02-18 12:03:13 -05:00
name.rs ty_ide: improve completions by using scopes 2025-05-29 10:31:30 -04:00
node.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00
nodes.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00
operator_precedence.rs Use the common `OperatorPrecedence` for the parser (#16747) 2025-03-21 09:40:37 +05:30
parenthesize.rs Remove customizable reference enum names (#15647) 2025-01-21 13:46:31 -05:00
python_version.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00
relocate.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00
script.rs bump MSRV to 1.83 (#16294) 2025-02-26 06:12:43 -08:00
statement_visitor.rs Remove `Stmt::TryStar` (#6566) 2023-08-14 13:39:44 -04:00
stmt_if.rs Misc. small tweaks from perusing modules (#9383) 2024-01-03 12:30:25 -05:00
str.rs Preserve triple quotes and prefixes for strings (#15818) 2025-02-04 08:41:06 -05:00
str_prefix.rs Add `text_len()` methods to more `*Prefix` enums in `ruff_python_ast` (#16254) 2025-02-19 14:47:07 +00:00
traversal.rs Use referencial equality in `traversal` helper methods (#13895) 2024-10-24 11:30:22 +02:00
types.rs Remove `RefEquality` (#6393) 2023-08-07 16:04:50 +00:00
visitor.rs Fix typos (#17988) 2025-05-09 14:57:14 -04:00
whitespace.rs Switch to Rust 2024 edition (#18129) 2025-05-16 13:25:28 +02:00