Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions CODE-OF-CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
# Contributor Code of Conduct

As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all individuals who contribute by reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and participating in other project-related activities.

We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
We are committed to making participation in this project a harassment-free experience for everyone, regardless of experience level, gender, gender identity or expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.

Examples of unacceptable behavior by participants include:
Examples of unacceptable behavior include:

- The use of sexualized language or imagery
- Personal attacks
- Trolling or insulting/derogatory comments
- Public or private harassment
- Publishing other's private information, such as physical or electronic addresses, without explicit permission
- Other unethical or unprofessional conduct
* Using sexualized language or imagery
* Personal attacks
* Trolling, insulting, or derogatory comments
* Public or private harassment
* Publishing others’ private information, such as physical or electronic addresses, without explicit permission
* Other unethical or unprofessional conduct

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that do not align with this Code of Conduct, or to temporarily or permanently ban any contributor for behavior they deem inappropriate, threatening, offensive, or harmful.

By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
By adopting this Code of Conduct, project maintainers commit to applying these principles fairly and consistently across all aspects of project management. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by emailing a project maintainer via [this contact form](https://developer.wordpress.com/contact/?g21-subject=Code%20of%20Conduct), with a subject that includes `Code of Conduct`. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer via [this contact form](https://developer.wordpress.com/contact/?g21-subject=Code%20of%20Conduct) with a subject line that includes `Code of Conduct`. All complaints will be reviewed and investigated and will result in a response deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality regarding the reporter of an incident.

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.3.0, available at [http://contributor-covenant.org/version/1/3/0/][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.3.0, available at [http://contributor-covenant.org/version/1/3/0/][version].

[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/3/0/
[version]: https://contributor-covenant.org/version/1/3/0/
22 changes: 11 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
# Contributing Guidelines

We welcome contributions to WordPress Studio, whether they are bug reports, feature requests, or code changes. Please read the following guidelines to ensure that your contributions are accepted quickly and easily.
We welcome contributions to WordPress Studio, whether they are bug reports, feature requests, or code changes. Please read the following guidelines to help ensure your contributions are reviewed efficiently.

## Expectations

- We expect all contributors to follow our [Code of Conduct](./CODE-OF-CONDUCT.md).
- We expect all contributors to follow our [Security Policy](./SECURITY.md).
- By submitting a pull request, you agree to release your code under the project's [License](./LICENSE.md).
* All contributors are expected to follow our [Code of Conduct](./CODE-OF-CONDUCT.md).
* All contributors are expected to follow our [Security Policy](./SECURITY.md).
* By submitting a pull request, you agree to release your code under the projects [License](./LICENSE.md).

## How to Contribute

### Reporting Security Issues

Please see our [security policy](./SECURITY.md).
Please see our [Security Policy](./SECURITY.md).

### Reporting General Issues

If you find a bug or have a feature request, please [open an issue](https://github.com/Automattic/studio/issues/new/choose).

### Code Contributions

For information on setting up your development environment for contributing code, see the [Code Contributions](./docs/code-contributions.md).
For instructions on setting up your development environment, see the [Code Contributions guide](./docs/code-contributions.md).

We are truly grateful for any pull requests you open, and we assure you of our welcoming and respectful approach. We will review and consider all pull requests, valuing the diverse contributions, but we don’t guarantee that all proposed changes will be merged into the core.
We are truly grateful for all pull requests, and we aim to provide a welcoming and respectful review process. We will review and consider every submission; however, we cannot guarantee that all proposed changes will be merged into the core project.

The most desirable pull requests are:
The most valuable pull requests include:

- Bug fixes for existing features.
- Enhancements that improve compatibility with different system versions, browsers, PHP or WP versions, WordPress plugins, or environments in general.
* Bug fixes for existing features
* Enhancements that improve compatibility across different system versions, browsers, PHP versions, WordPress versions, plugins, or environments

We recommend [adding an issue](https://github.com/Automattic/studio/issues/new/choose) for new features so we can review the plan before you start work on the pull request.
For new features, we recommend first [opening an issue](https://github.com/Automattic/studio/issues/new/choose) so we can review and discuss the proposal before you begin development.
32 changes: 15 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,63 @@
![Crash Free Sessions Rate](https://img.shields.io/badge/Crash_Free_Session_Rate-98.31%25-blue)

# WordPress Studio

[WordPress Studio](https://developer.wordpress.com/studio/) is an open source desktop application for creating and managing WordPress sites and testing and building plugins and themes locally. Powered by [WordPress Playground](https://developer.wordpress.org/playground/) and [WordPress.com](https://wordpress.com/), it streamlines modern WordPress development workflows and requires no external dependencies.
[WordPress Studio](https://developer.wordpress.com/studio/) is an open-source desktop application for creating and managing WordPress sites, as well as building and testing plugins and themes locally. Powered by [WordPress Playground](https://developer.wordpress.org/playground/) and [WordPress.com](https://wordpress.com/), it streamlines modern WordPress development workflows and requires no external dependencies.

Spin up sites in seconds, sync with WordPress.com or Pressable, or import any WordPress site to work on it locally. Use the Studio CLI to access WordPress Studio features outside the desktop application. Share live preview links with clients, and collaborate with the built-in AI Assistant that runs WP-CLI commands natively.

![WordPress Studio](/docs/assets/wordpress-studio-main.png)

## Get started

WordPress Studio is free to use for Mac and Windows. Simply download the app to start building and testing — no dependencies required.
WordPress Studio is free to use on Mac and Windows. Simply download the app to start building and testing — no dependencies required.

[Download WordPress Studio](https://developer.wordpress.com/studio/) for:

- macOS (Intel or Apple Silicon)
- Windows
* macOS (Intel or Apple Silicon)
* Windows

## Highlights

### Studio Sync

![WordPress Studio - Selective Sync](/docs/assets/wordpress-studio-sync.png)

Push updates or pull down a WordPress.com or Pressable production or staging site with just a few clicks. Choose exactly which parts of your site to sync, like specific plugins, standalone themes, or the database, so you’re always in control. [Learn more about Studio Sync →](https://developer.wordpress.com/docs/developer-tools/studio/sync/)
Push updates or pull a WordPress.com or Pressable production or staging site with just a few clicks. Choose exactly which parts of your site to sync—such as specific plugins, standalone themes, or the databaseso you’re always in control. [Learn more about Studio Sync →](https://developer.wordpress.com/docs/developer-tools/studio/sync/)

### Free Cloud-hosted Preview Sites

![WordPress Studio - Preview Sites](/docs/assets/wordpress-studio-preview-sites.png)

Preview, polish, then hand it off. Share a stable, cloud-hosted preview link that your clients or team can access at any time. Preview sites expire after seven days without updates. [Learn more about Preview Sites →](https://developer.wordpress.com/docs/developer-tools/studio/preview-sites/)
Preview, polish, and hand off your work. Share a stable, cloud-hosted preview link that your clients or team can access at any time. Preview sites expire after seven days without updates. [Learn more about Preview Sites →](https://developer.wordpress.com/docs/developer-tools/studio/preview-sites/)

### AI Assistant

![WordPress Studio - AI Assistant](/docs/assets/wordpress-studio-ai-assistant.png)

Skip the repetitive setup and ask the assistant to install plugins, create pages, or run WP-CLI commands without leaving the app or searching for syntax. [Learn more about the Studio Assistant →](https://developer.wordpress.com/docs/developer-tools/studio/assistant/)
Skip repetitive setup and ask the assistant to install plugins, create pages, or run WP-CLI commands — all without leaving the app or searching for syntax. [Learn more about the Studio Assistant →](https://developer.wordpress.com/docs/developer-tools/studio/assistant/)

### Powered by WordPress Playground

![WordPress Studio - Powered by Playground](/docs/assets/wordpress-studio-powered-by-playground.png)

Studio stays aligned with the latest innovations in WordPress development, giving you early access to cutting-edge tools, version support, and experimental features without needing to configure anything manually or run any dependencies.
Studio stays aligned with the latest innovations in WordPress development, giving you early access to cutting-edge tools, version support, and experimental features without needing to configure anything manually or install additional dependencies.

## Explore the documentation

[Review the documentation](https://developer.wordpress.com/docs/developer-tools/studio/) for:

- Installation instructions
- Feature guides
- Troubleshooting and FAQs
* Installation instructions
* Feature guides
* Troubleshooting and FAQs

## Give feedback and contribute

We’d love to hear about your experience using Studio. If you have questions, suggestions, or run into issues, reach out to our [Happiness Engineers](https://developer.wordpress.com/contact/). Because Studio is open source, you can also:

- Open a GitHub Issue to to [suggest ideas](https://github.com/Automattic/studio/issues/new?assignees=&labels=%5BType%5D+Feature+Request&projects=&template=feature_request.yml&title=Feature+Request%3A) or [report bugs](https://github.com/Automattic/studio/issues/new?assignees=&labels=Needs+triage%2C%5BType%5D+Bug&projects=&template=bug_report.yml)
- Submit pull requests for bug fixes and enhancements
- Proposals for new features may require additional review and discussion
* Open a GitHub Issue to [suggest ideas](https://github.com/Automattic/studio/issues/new?assignees=&labels=%5BType%5D+Feature+Request&projects=&template=feature_request.yml&title=Feature+Request%3A) or [report bugs](https://github.com/Automattic/studio/issues/new?assignees=&labels=Needs+triage%2C%5BType%5D+Bug&projects=&template=bug_report.yml)
* Submit pull requests for bug fixes and enhancements
* Propose new features (which may require additional review and discussion)

For details, please see our [Contributing Guidelines](CONTRIBUTING.md) and [Code Contributions](docs/code-contributions.md) guide.
For details, see our [Contributing Guidelines](CONTRIBUTING.md) and [Code Contributions](docs/code-contributions.md) guide.

## License

Expand Down
42 changes: 27 additions & 15 deletions src/modules/user-settings/lib/editor.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,39 @@
import { __ } from '@wordpress/i18n';

export const SUPPORTED_EDITORS = [
'Antigravity',
'cursor',
'vscode',
'phpstorm',
'windsurf',
'webstorm',
'sublime',
] as const;
export type SupportedEditor = ( typeof SUPPORTED_EDITORS )[ number ];
export type SupportedEditor = (typeof SUPPORTED_EDITORS)[number];

export type SupportedEditorConfig = {
label: string;
url: ( path: string ) => string;
url: (path: string) => string;
macOSBundleId: string;
winPaths: string[];
};

export const supportedEditorConfig: Record< SupportedEditor, SupportedEditorConfig > = {
export const supportedEditorConfig: Record<SupportedEditor, SupportedEditorConfig> = {
antigravity: {
// translators: "Antigravity" is the brand name for an IDE and does not need to be translated
label: __('Antigravity'),
url: (path: string) => `antigravity://file/${path}?windowId=_blank`,
macOSBundleId: 'com.google.Aantigravity',
winPaths: [
'%LOCALAPPDATA%\\Programs\\Antigravity\\Antigravity.exe',
'%PROGRAMFILES%\\Antigravity\\Antigravity.exe',
'%PROGRAMFILES(X86)%\\Antigravity\\Antigravity.exe',
],
},
vscode: {
// translators: "VS Code" is the brand name for an IDE and does not need to be translated
label: __( 'VS Code' ),
url: ( path: string ) => `vscode://file/${ path }?windowId=_blank`,
label: __('VS Code'),
url: (path: string) => `vscode://file/${path}?windowId=_blank`,
macOSBundleId: 'com.microsoft.VSCode',
winPaths: [
'%LOCALAPPDATA%\\Programs\\Microsoft VS Code\\code.exe',
Expand All @@ -31,8 +43,8 @@ export const supportedEditorConfig: Record< SupportedEditor, SupportedEditorConf
},
phpstorm: {
// translators: "PhpStorm" is the brand name for an IDE and does not need to be translated
label: __( 'PhpStorm' ),
url: ( path: string ) => `phpstorm://open?file=${ path }`,
label: __('PhpStorm'),
url: (path: string) => `phpstorm://open?file=${path}`,
macOSBundleId: 'com.jetbrains.PhpStorm',
winPaths: [
'%LOCALAPPDATA%\\Programs\\PhpStorm\\bin\\phpstorm64.exe',
Expand All @@ -41,8 +53,8 @@ export const supportedEditorConfig: Record< SupportedEditor, SupportedEditorConf
},
webstorm: {
// translators: "WebStorm" is the brand name for an IDE and does not need to be translated
label: __( 'WebStorm' ),
url: ( path: string ) => `webstorm://open?file=${ path }`,
label: __('WebStorm'),
url: (path: string) => `webstorm://open?file=${path}`,
macOSBundleId: 'com.jetbrains.WebStorm',
winPaths: [
'%LOCALAPPDATA%\\Programs\\WebStorm\\bin\\webstorm64.exe',
Expand All @@ -51,8 +63,8 @@ export const supportedEditorConfig: Record< SupportedEditor, SupportedEditorConf
},
windsurf: {
// translators: "Windsurf" is the brand name for an IDE and does not need to be translated
label: __( 'Windsurf' ),
url: ( path: string ) => `windsurf://file/${ path }?windowId=_blank`,
label: __('Windsurf'),
url: (path: string) => `windsurf://file/${path}?windowId=_blank`,
macOSBundleId: 'com.exafunction.windsurf',
winPaths: [
'%LOCALAPPDATA%\\Programs\\Windsurf\\Windsurf.exe',
Expand All @@ -61,8 +73,8 @@ export const supportedEditorConfig: Record< SupportedEditor, SupportedEditorConf
},
cursor: {
// translators: "Cursor" is the brand name for an IDE and does not need to be translated
label: __( 'Cursor' ),
url: ( path: string ) => `cursor://file/${ path }?windowId=_blank`,
label: __('Cursor'),
url: (path: string) => `cursor://file/${path}?windowId=_blank`,
macOSBundleId: 'com.todesktop.230313mzl4w4u92',
winPaths: [
'%LOCALAPPDATA%\\Programs\\cursor\\Cursor.exe',
Expand All @@ -71,8 +83,8 @@ export const supportedEditorConfig: Record< SupportedEditor, SupportedEditorConf
},
sublime: {
// translators: "Sublime Text" is the brand name for an IDE and does not need to be translated
label: __( 'Sublime Text' ),
url: ( path: string ) => `subl://open?url=file://${ path }`,
label: __('Sublime Text'),
url: (path: string) => `subl://open?url=file://${path}`,
macOSBundleId: 'com.sublimetext.4',
winPaths: [
'%PROGRAMFILES%\\Sublime Text\\sublime_text.exe',
Expand Down
Loading