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