Extensions in Zed

Extend and customize Zed's functionality with extensions and plugins

Extensions in Zed

Extensions allow you to enhance and customize Zed with additional features, language support, themes, and more. Zed's extension system is designed to be both powerful and user-friendly, allowing you to tailor the editor to your specific needs without compromising performance.

Key aspects of Zed's extension system include:

  • Performance: Extensions are built with Zed's native performance in mind
  • Discoverability: Easy to find and install extensions
  • Safety: Extensions run in a sandboxed environment
  • Configuration: Customizable settings for each extension
Zed Extensions

Types of Extensions

Zed supports several types of extensions to enhance different aspects of the editor:

Language Support

Language extensions provide syntax highlighting, autocompletion, and other language-specific features:

  • Syntax highlighting for additional languages
  • Language servers for intelligent code analysis
  • Custom snippets for specific languages
  • Formatters and linters for code quality

Themes

Theme extensions change the visual appearance of Zed:

  • Color schemes for syntax highlighting
  • UI themes for the entire editor
  • Icon sets

Functionality Extensions

Add new features and capabilities to Zed:

  • Extra tools and commands
  • Additional panels and views
  • Integration with external services
  • Custom keybindings and workflows

The Zed extension ecosystem is growing rapidly as more developers contribute to it. Check the extension marketplace regularly for new additions.

Finding and Installing Extensions

Accessing the Extension Marketplace

Zed provides a built-in marketplace to discover extensions:

  1. Open Extensions View

    Press ShiftP and type "Extensions: Open Extensions View" or click on the extensions icon in the sidebar.

  2. Browse Available Extensions

    Browse through the marketplace to see featured, popular, and recommended extensions. You can also use the search bar to find specific extensions.

    Extension Marketplace
  3. View Extension Details

    Click on an extension to view its details, including description, features, ratings, and screenshots.

Installing Extensions

To install an extension:

  1. Find the Extension

    Locate the extension you want to install in the marketplace.

  2. Install

    Click the "Install" button next to the extension. Zed will download and install the extension automatically.

  3. Restart if Necessary

    Some extensions may require Zed to restart to take effect. If prompted, click "Restart" to apply the changes.

You can also install extensions directly from the command palette by typing "Extensions: Install Extension" and then searching for the extension by name.

Managing Extensions

Viewing Installed Extensions

See all your installed extensions:

  • Open the Extensions view and click on the "Installed" tab
  • Press ShiftP and type "Extensions: Show Installed Extensions"

Updating Extensions

Keep your extensions up to date:

  • Zed automatically checks for extension updates
  • Updates are shown in the "Updates" tab in the Extensions view
  • Click "Update All" to update all extensions or update individual extensions

Disabling Extensions

Temporarily disable an extension without uninstalling it:

  1. Find the Extension

    Go to the "Installed" tab in the Extensions view and find the extension you want to disable.

  2. Disable

    Click the gear icon next to the extension and select "Disable" or toggle the switch to the off position.

Uninstalling Extensions

Remove extensions you no longer need:

  • Find the extension in the "Installed" tab
  • Click the "Uninstall" button next to the extension
  • Confirm the uninstallation when prompted

Configuring Extensions

Extension Settings

Many extensions provide customizable settings:

  1. Open Settings

    Press , to open Zed's settings.

  2. Find Extension Settings

    Navigate to the "Extensions" section or search for the extension name to find its specific settings.

    Extension Settings
  3. Adjust Settings

    Modify the settings according to your preferences. Changes are typically applied immediately.

Example: Configuring a Language Extension

json
{ "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.formatting.provider": "black", "python.formatting.blackPath": "/usr/local/bin/black", "python.analysis.typeCheckingMode": "basic" }

Extensions often provide documentation about their available settings. Check the extension's details page or repository for configuration options.

Recommended Extensions

Essential Extensions

These extensions enhance Zed's core functionality:

  • Project Manager: Organize and quickly switch between multiple projects
  • File Icons: Add filetype-specific icons to the project explorer
  • GitLens: Enhanced Git capabilities with blame annotations, history, and more
  • Path Intellisense: Autocompletes filenames in imports

Language-Specific Extensions

Extensions for various programming languages:

  • Python: Python language support with intellisense and linting
  • Rust Analyzer: Rich language support for Rust
  • ESLint: Integrates ESLint into Zed for JavaScript/TypeScript
  • Prettier: Code formatter for JavaScript, TypeScript, CSS, and more

Productivity Boosters

Extensions that improve your workflow:

  • Bookmarks: Add bookmarks to navigate quickly between important code sections
  • Todo Tree: Displays TODO comments in your workspace as a tree
  • Code Time: Track coding time and activity
  • Pomodoro Timer: Time management with the Pomodoro technique

Creating Your Own Extensions

Extension Development

Advanced users can create their own extensions for Zed:

  • Extensions can be written in Rust or JavaScript
  • The Zed Extension API provides access to editor features
  • Extensions can be packaged and published to the marketplace

Getting Started with Extension Development

  1. Set Up Development Environment

    Install the Extension Development Kit (EDK) using the command palette: "Extensions: Install Extension Development Tools"

  2. Create Extension Project

    Use the EDK to create a new extension project with scaffolding for your preferred language.

  3. Develop and Test

    Develop your extension and test it locally before publishing.

For detailed information on extension development, refer to the official Zed extension documentation.

Troubleshooting Extensions

Common Issues

Addressing problems with extensions:

  • Extension Not Working: Try disabling and re-enabling the extension
  • Conflicts: Extensions may conflict with each other; disable extensions one by one to identify the conflict
  • Performance Issues: Some extensions may impact performance; check the Extensions view for warnings

Extension Logs

View extension logs to diagnose problems:

  • Press ShiftP and type "Developer: Show Extension Log"
  • Select the extension you're troubleshooting to view its logs

If an extension causes persistent issues, try uninstalling it and reinstalling it from the marketplace. This can resolve many common problems.

What's Next?

Now that you understand how to enhance Zed with extensions, you're ready to learn about keyboard shortcuts that will help you work faster and more efficiently within the editor.