Skip to content

Make the Python experience wonderful #7808

@JosephTLyons

Description

@JosephTLyons

Check for existing issues

  • Completed

Describe the feature

  • Automatically discover virtual environments and have UI in place for selecting them:
    • Option to select python environments  #7646
    • We should detect both venvs that exist in the project itself, looking for conventional folder names (venv, .venv, virtual_envinronment) and venvs installed in the global space.
    • A button in the status bar that opens up a modal. Should the button only be available when in python files?
    • This venv should be the one we automatically activate when opening new terminals, if the detect_venv setting is on.
    • It could also be used to automatically generate a pyrightconfig.json file, in the short term, while we still use pyright. It can be used in the future code runner, as well. What should we do with the current logic that tries to automatically detect venvs? Maybe it just gets deprecated.
    • We could potentially just lean on uv (uv python list) for this.
  • A better language server
  • Notebooks / ipynb support
    • Jupyter Notebook #5273
    • Notebooks are imperative for both data scientists and average python users, for exploration
  • Interactive window
  • Linter - ruff
    • Baked in and shipped with Zed, as the default, with options to customize to something else, if wanted
    • Could also just be an extension
  • Formatter - ruff
    • Baked in and shipped with Zed, as the default, with options to customize to something else, if wanted
    • Could also just be an extension
  • Backlog of issues
    • python Python programming language support

We will also need these things, but these things are generic and aren't specific to Python

It seems like some of these should ship directly with Zed, but maybe some of them should come in the form of extensions. We should have a conversation with the team about this.

If applicable, add mockups / screenshots to help present your vision of the feature

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature[core label]languageAn umbrella label for all programming languages syntax behaviorspythonPython programming language support

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions