Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add VS Code workspace config #43851

Closed
wants to merge 1 commit into from
Closed

Commits on Apr 4, 2024

  1. Add VS Code workspace config (facebook#43851)

    Summary:
    
    ## Summary
    
    Adds and recommends use of `react-native.code-workspace` file when using VS Code. This disables the built-in TypeScript Language Service for `.js` files, recommends extensions, enables `formatOnSave`, and configures Flow language support.
    
    **Motivation**
    
    This is a DevX benefit for **React Native contributors** using open source VS Code — in particular to help with recent/trivial papercuts in PRs such as inserting a final newline in files (configured by EditorConfig).
    
    **Recommended extensions**
    
    NOTE: The recommended extensions list is currently minimal — happy to extend this now or in future, but let's aim to keep these conservative.
    
    - Flow — language support
    - EditorConfig — formatting based on `.editorconfig`, all file types
    - Prettier — formatting for JS* files
    - ESLint — linter for JS* files
    - Kotlin — language support
    
    **Why `react-native.code-workspace`?**
    
    `.code-workspace` files have slight extra behaviours over a `.vscode/` directory:
    - Allows user to opt-in or skip.
    - Allows double-click launching from file managers.
    - Allows base folder (and any subfolders in future) to be opened with local file tree scope (useful in fbsource!)
    - (Minor point) Single config file over multiple files.
    
    https://code.visualstudio.com/docs/editor/workspaces
    
    Changelog: [Internal]
    
    ## Test plan
    
    Aganst a new unconfigured copy of Visual Studio Code Insiders.
    
    **Without workspace config**
    
    ❌ `.js` files raise errors by default (built-in TypeScript language service)
    
     {F1478195672} 
    
    ❌ When using the Flow VS Code extension, the wrong version (global) of Flow is used.
    
    **With workspace config**
    
    ✅ Workspace config is suggested when folder is opened in VS Code
    
     {F1478194795} 
    
    ✅ Dialog is shown on workspace launch with recommended VS Code extensions
    
    {F1478196003} 
    
    ✅ Built-in TypeScript Language Service is disabled for `.js` files
    ✅ Flow language support is configured correctly against `flow` version in `package.json`
    
    {F1478291085}
    {F1478200649}
    
    Differential Revision: D55698495
    huntie authored and facebook-github-bot committed Apr 4, 2024
    Configuration menu
    Copy the full SHA
    681a366 View commit details
    Browse the repository at this point in the history