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
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:
-
Open Extensions View
Press ⌘ShiftP and type "Extensions: Open Extensions View" or click on the extensions icon in the sidebar.
-
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.
-
View Extension Details
Click on an extension to view its details, including description, features, ratings, and screenshots.
Installing Extensions
To install an extension:
-
Find the Extension
Locate the extension you want to install in the marketplace.
-
Install
Click the "Install" button next to the extension. Zed will download and install the extension automatically.
-
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:
-
Find the Extension
Go to the "Installed" tab in the Extensions view and find the extension you want to disable.
-
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:
-
Open Settings
Press ⌘, to open Zed's settings.
-
Find Extension Settings
Navigate to the "Extensions" section or search for the extension name to find its specific settings.
-
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
-
Set Up Development Environment
Install the Extension Development Kit (EDK) using the command palette: "Extensions: Install Extension Development Tools"
-
Create Extension Project
Use the EDK to create a new extension project with scaffolding for your preferred language.
-
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.