{
  // This is a checked-in VSCode workspace configuration file that can be used
  // instead of directly opening $FUCHSIA_DIR in VSCode.
  //
  // It's an opt-in workspace configuration that contains settings for:
  //  - vscode itself
  //  - LSP settings for working correctly with the fuchsia.git checkout
  //  - etc.
  //
  // In terms of precedence, VSCode uses the following order in which settings
  // are applied (merged together).
  //
  //  0) default settings
  //  1) user's settings
  //  2) remote machine settings
  //  3) workspace settings  (this file)
  //  4) workspace folder settings
  //
  //
  // For details, see:
  // https://code.visualstudio.com/docs/getstarted/settings#_settings-precedence


  ////////
  // VSCode Workspace Contents
  //
  // These are the workspace folders, and general VSCode workspace
  // configuration itself.
  //
  // See https://code.visualstudio.com/docs/editor/workspaces for more
  // information on this section of the file.
  "folders": [
    {
      // The whole project directory.
      "path": "."
    }
  ],

  ////////
  // Recommended Extensions for VSCode and Fuchsia
  //
  "extensions": {
    "recommendations": [
      // Fuchsia's own VSCode extension. Provides ZXDB support, a log view, and
      // default target selection.
      "fuchsia-authors.vscode-fuchsia",

      // Fuchsia's own FIDL LSP extension
      "fuchsia-authors.language-fidl",

      // Official Go support
      "golang.go",

      // The official LSP for Rust, rust-analyzer.
      "rust-lang.rust-analyzer",

      // The Python extensions
      "ms-python.python",
      "ms-python.mypy-type-checker",
      "ms-python.black-formatter",
      "ms-python.vscode-pylance",

      // The GN language server from Microsoft
      "msedge-dev.gnls",

      // The official Clang LSP for C/C++.
      "llvm-vs-code-extensions.vscode-clangd",

      // Supports inserting and formatting C/C++ include guards as required
      // in Fuchsia.
      "akiramiyakoda.cppincludeguard",

      // Adds JSON5 syntax highlighting (including *.cml files).
      "mrmlnc.vscode-json5",

      // Linkifies Fuchsia URLs (components, bugs, etc.)
      "RichKadel.fuchsiaware",

      // Adds coverage gutters for `fx coverage`.
      "ryanluker.vscode-coverage-gutters",
    ],

    "unwantedRecommendations": [
      // Conflicts with vscode-clangd intellisense, and vscode-clangd is the
      // preferred C++ extension.
      "ms-vscode.cpptools",

      // Redundant and conflicts with gnls, which is preferred.
      "npclaudiu.vscode-gn",

      // Redundant and conflicts with gnls, which is preferred.
      "persidskiy.vscode-gnformat",

      // Superseded by vscode-fuchsia, which provides zxdb support.
      "fuchsia-authors.zxdb",
    ]
  },


  "settings": {
    ////////
    // Extra file associations (patterns to languages)
    "files.associations": {
      "*.cml": "json5",
      "*.inc": "cpp",

      // Golden files
      "*.c.golden": "c",
      "*.cc.golden": "cpp",
      "*.cml.golden": "json5",
      "*.dart.golden": "dart",
      "*.fidl.golden": "fidl",
      "*.gn.golden": "gn",
      "*.go.golden": "go",
      "*.h.golden": "cpp",
      "*.json.golden": "json",
      "*.md.golden": "markdown",
      "*.rs.golden": "rust",
      "*.yaml.golden": "yaml",
    },

    // Matches the default Fuchsia code style.
    "editor.rulers": [
        100
    ],

    // Disable graph visualization of incoming/outgoing changes. This feature
    // does not work well on Fuchsia git repositories with deep and complex
    // histories. If left enabled, this would otherwise cause infinite loading
    // in the "Source Control" tab.
    "scm.showHistoryGraph": false,

    ////////
    // Dart
    //

    "[linux].dart.sdkPath": "${workspaceFolder}/prebuilt/third_party/dart/linux-x64",
    "[mac].dart.sdkPath": "${workspaceFolder}/prebuilt/third_party/dart/mac-arm64",

    ////////
    // Rust
    //

    // This works around an OOM issue with the vscode extension-host's
    // implementation of file-watching.
    // see:  https://github.com/rust-lang/rust-analyzer/issues/12572
    // see:  https://github.com/microsoft/vscode/issues/153154
    "rust-analyzer.files.watcher": "server",
    "rust-analyzer.server.path": "${workspaceFolder}/prebuilt/third_party/rust-analyzer/rust-analyzer",

    // Use Fuchsia's config and vendored rustfmt.
    "[linux].rust-analyzer.rustfmt.overrideCommand": [
      "${workspaceFolder}/prebuilt/third_party/rust/linux-x64/bin/rustfmt",
      "--config-path=${workspaceFolder}/rustfmt.toml"
    ],
    "[mac].rust-analyzer.rustfmt.overrideCommand": [
      "${workspaceFolder}/prebuilt/third_party/rust/mac-arm64/bin/rustfmt",
      "--config-path=${workspaceFolder}/rustfmt.toml"
    ],

    // Use clippy.
    "rust-analyzer.check.overrideCommand": [
      "${workspaceFolder}/scripts/fx",
      "clippy",
      "--raw",
      "-f",
      "$saved_file"
    ],

    // Remap the diagnostics results from RA to handle the change in working dir
    // from the workspace root to the root_build_dir in GN/Ninja.
    "rust-analyzer.diagnostics.remapPrefix": {
      "../../": "${workspaceFolder}",
    },

    ////////
    // C/C++

    "clangd.arguments": [
        "--clang-tidy",
        "--background-index",
        "--header-insertion=never"
    ],
    "[linux].clangd.path": "${workspaceFolder}/prebuilt/third_party/clang/linux-x64/bin/clangd",
    "[mac].clangd.path": "${workspaceFolder}/prebuilt/third_party/clang/mac-arm64/bin/clangd",

    // Formats C/C++ include guards to match Fuchsia style.
    "C/C++ Include Guard.Comment Style": "Line",
    "C/C++ Include Guard.Macro Type": "Filepath",
    "C/C++ Include Guard.Suffix": "_H_",
    "C/C++ Include Guard.Spaces After Endif": 2,

    ////////
    // Go

    "[linux].go.goroot": "${workspaceFolder}/prebuilt/third_party/go/linux-x64",
    "[mac].go.goroot": "${workspaceFolder}/prebuilt/third_party/go/mac-arm64",

    "gopls": {
      // Restrict directories that gopls will search in, otherwise it can fail
      // with "Exhausted" after one million files.
      "build.directoryFilters": [
        "-.cache",
        "-.cipd",
        "-.git",
        "-.jiri_root",
        "-out",
        "-prebuilt",
      ],
      // Used over specifying a build tag so that cgo is also aware.
      "build.env": {
        "GOOS": "fuchsia",
      },
    },

    ////////
    // Bazel
    //
    "bazel.enableCodeLens": true,
    // See: https://github.com/bazelbuild/vscode-bazel/issues/236
    //"bazel.executable": "${workspaceFolder}/tools/devshell/bazel",

    ////////
    // Python
    //
    "[python]": {
      "editor.defaultFormatter": "ms-python.black-formatter"
    },
    "black-formatter.args": [
      "--config",
      "${workspaceFolder}/pyproject.toml"
    ],

    ////////
    // Markdown
    //
    "[markdown]": {
        // Matches our static checks in infra.
        "editor.rulers": [
            80
        ]
    },

    ////////
    // VSCode file exclusions
    //

    // Files that are marked as hidden in the Workspace Explorer.
    "files.exclude": {
      "**/.DS_Store": true,
      "**/.cipd": true,
      "**/.git": true,
      "**/__pycache__": true,
    },
    // sub repos managed by jiri are listed in .gitignore, so make sure that
    // they are not hidden.
    "explorer.excludeGitIgnore": false,

    // Files that are excluded from file-watching notifications.
    "files.watcherExclude": {
      "**/.DS_Store": true,
      "**/.cipd": true,
      "**/.git": true,
      ".jiri_root/goma_cache/**": true,
      ".jiri_root/update_history*/**": true,
      "out/**": true,
      ".cache/**": true,
    },

    // Files that are excluded from search and quick open (^P).
    // This significantly speeds up search and avoids polluting results with
    // build output, third party code, and prebuilt binaries.
    "search.exclude": {
      // Don't exclude local files used for overrides
      "local/**": false,

      // There are some files in third_party we want to be accessible from search.
      // Due to https://github.com/Microsoft/vscode/issues/869 we can't use a
      // blanket exclude and then "un-exclude" the files we want, so instead we
      // list out all the third_party projects here.  This list should be
      // updated from time to time. If you want a path inside third_party to be
      // included in search, modify this list and leave a comment so that future
      // updates don't clobber your change.
      "third_party/abseil-cpp/**": true,
      "third_party/acpica/**": true,
      "third_party/alacritty/**": true,
      "third_party/android/**": true,
      // antlion hosts connectivity end-to-end Python tests.
      "third_party/antlion/**": false,
      "third_party/bazel_platforms/**": true,
      "third_party/bazel_rules_cc/**": true,
      "third_party/bazel_rules_go/**": true,
      "third_party/bazel_rules_license/**": true,
      "third_party/bazel_rules_proto/**": true,
      "third_party/bazel_rules_python/**": true,
      "third_party/bazel_rules_rust/**": true,
      "third_party/bazel_skylib/**": true,
      "third_party/bcmdhd/**": true,
      "third_party/boringssl/**": true,
      "third_party/chre/**": true,
      "third_party/chromiumos-xorg-conf/**": true,
      // Cobalt is frequently updated by Fuchsia developers.
      "third_party/cobalt/**": false,
      "third_party/cobalt_config/**": true,
      "third_party/colorama/**": true,
      "third_party/crashpad/**": true,
      "third_party/curl/**": true,
      "third_party/dart-pkg/**": true,
      "third_party/double-conversion/**": true,
      "third_party/etnaviv_gpu_tests/**": true,
      "third_party/expat/**": true,
      "third_party/flatbuffers/**": true,
      "third_party/fmtlib/**": true,
      "third_party/freetype2/**": true,
      "third_party/gflags/**": true,
      "third_party/gfxstream/**": true,
      "third_party/github.com/**": true,
      "third_party/glfw/**": true,
      "third_party/glm/**": true,
      "third_party/glog/**": true,
      "third_party/glslang/**": true,
      "third_party/go/**": true,
      "third_party/golibs/**": true,
      "third_party/googletest/**": true,
      "third_party/gperftools/**": true,
      "third_party/grpc/**": true,
      "third_party/gvisor_syscall_tests/**": true,
      "third_party/icu/**": true,
      "third_party/imgtec-pvr-rgx-km/**": true,
      "third_party/inih/**": true,
      "third_party/intel/**": true,
      "third_party/iperf/**": true,
      "third_party/jellyfish/**": true,
      "third_party/jinja2/**": true,
      "third_party/json5.vim/**": true,
      "third_party/libc-tests/**": true,
      "third_party/libffi/**": true,
      "third_party/libpcap/**": true,
      "third_party/libpng/**": true,
      "third_party/libxml2/**": true,
      "third_party/linux-syscall-support/**": true,
      "third_party/llvm-libc/**": true,
      "third_party/luci-go/**": true,
      "third_party/lz4/**": true,
      "third_party/mako/**": true,
      "third_party/markupsafe/**": true,
      "third_party/mesa/**": true,
      "third_party/micro-ecc/**": true,
      "third_party/mini_chromium/**": true,
      "third_party/mobly/**": true,
      "third_party/modinv/**": true,
      "third_party/modp_b64/**": true,
      "third_party/nlassert/**": true,
      "third_party/nlio/**": true,
      "third_party/ogg/**": true,
      "third_party/OpenCL-Headers/**": true,
      "third_party/OpenCL-ICD-Loader/**": true,
      "third_party/openssh-portable/**": true,
      "third_party/openssl-ecjpake/**": true,
      "third_party/openthread/**": true,
      "third_party/openweave-core/**": true,
      "third_party/opus/**": true,
      "third_party/parameterized/**": true,
      "third_party/pciids/**": true,
      "third_party/perfetto/**": true,
      "third_party/pigweed/**": true,
      "third_party/protobuf/**": true,
      "third_party/pyjson5/**": true,
      "third_party/pylibs/**": true,
      "third_party/pypng/**": true,
      "third_party/python_portpicker/**": true,
      "third_party/pytoml/**": true,
      "third_party/pyyaml/**": true,
      "third_party/quickjs/**": true,
      "third_party/rapidjson/**": true,
      "third_party/re2/**": true,
      // We want to include the files directly in third_party/rust_crates.
      // Also, files under third_party/rust_crates/{compat,empty} are not copied from upstream.
      "third_party/rust_crates/ask2patch/**": true,
      "third_party/rust_crates/forks/**": true,
      "third_party/rust_crates/mirrors/**": true,
      "third_party/rust_crates/vendor/**": true,
      "third_party/sbase/**": true,
      "third_party/scudo/**": true,
      "third_party/shaderc/**": true,
      "third_party/spirv-cross/**": true,
      "third_party/spirv-headers/**": true,
      "third_party/spirv-tools/**": true,
      "third_party/syzkaller/**": true,
      "third_party/tcpdump/**": true,
      "third_party/tink/**": true,
      "third_party/tpm2-tss/**": true,
      "third_party/ubpf/**": true,
      "third_party/vboot_reference/**": true,
      "third_party/Vulkan-Headers/**": true,
      "third_party/Vulkan-Loader/**": true,
      "third_party/Vulkan-Tools/**": true,
      "third_party/Vulkan-Utility-Libraries/**": true,
      "third_party/Vulkan-ValidationLayers/**": true,
      "third_party/wayland/**": true,
      "third_party/yxml/**": true,
      "third_party/zlib/**": true,
      "third_party/zstd/**": true,
    },
    "search.useIgnoreFiles": true,
    // Don't follow symlinks (into other parts of the tree)
    "search.followSymlinks": false,

    ////////
    // Code coverage
    "coverage-gutters.coverageBaseDir": ".",
    "coverage-gutters.showLineCoverage": true,
    "coverage-gutters.coverageFileNames": [ "lcov.info" ],

    // Disable task auto-detection for supported project configuration files
    // (e.g. NPM's project.json). This significantly speeds up task running.
    "task.autoDetect": "off",
  },

  // Tasks run with the "Tasks: Run Task" command (bind a shortcut!).
  "tasks": {
    "version": "2.0.0",
    "tasks": [
      {
        "label": "Fuchsia: fx build",
        "type": "shell",
        "command": "fx build",
        "problemMatcher": [],
      },
      {
        "label": "Fuchsia: fx build (Rust problem matcher)",
        "type": "shell",
        "command": "fx build",
        "problemMatcher": [
          {
            "base": "$rustc-watch",
            // Error file paths are relative to a build directory. The names
            // are arbitrary.
            "fileLocation": [
              "relative",
              "${workspaceFolder}/a/b"
            ],
          }
        ],
      },
      {
        "label": "Fuchsia: fx serve",
        "type": "shell",
         "command": "fx serve",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: fx ota",
        "type": "shell",
         "command": "fx ota",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx doctor",
        "type": "shell",
         "command": "ffx doctor",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: fx flash",
        "type": "shell",
         "command": "fx flash",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx emu start",
        "type": "shell",
         "command": "ffx emu start",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx emu start --headless",
        "type": "shell",
         "command": "ffx emu start --headless",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx emu stop",
        "type": "shell",
         "command": "ffx emu stop",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component list",
        "type": "shell",
         "command": "ffx component list",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component list --only",
        "type": "shell",
         "command": "ffx component list --only ${input:COMPONENT_LIST_ONLY}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component show",
        "type": "shell",
         "command": "ffx component show ${input:COMPONENT_FILTER}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component doctor",
        "type": "shell",
         "command": "ffx component doctor ${input:TARGET_MONIKER}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component run",
        "type": "shell",
         "command": "ffx component run ${input:TARGET_MONIKER} ${input:COMPONENT_URL}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component stop",
        "type": "shell",
         "command": "ffx component stop ${input:TARGET_MONIKER}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component reload",
        "type": "shell",
         "command": "ffx component reload ${input:TARGET_MONIKER}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: ffx component destroy",
        "type": "shell",
         "command": "ffx component destroy ${input:TARGET_MONIKER}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: fx test",
        "type": "shell",
         "command": "fx test ${input:TEST_NAME}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: fx coverage",
        "type": "shell",
         "command": "fx coverage --lcov-output-path ${workspaceFolder}/lcov.info ${input:TEST_NAME}",
         "problemMatcher": []
      },
      {
        "label": "Fuchsia: jiri upload",
        "type": "shell",
        "command": "jiri upload",
        "problemMatcher": [],
      },
      {
        "label": "Fuchsia: jiri update",
        "type": "shell",
        "command": "jiri update",
        "problemMatcher": [],
      },
    ],
    "inputs": [
      {
        "id": "TEST_NAME",
        "type": "promptString",
        "description": "Test name"
      },
      {
        "id": "TARGET_MONIKER",
        "type": "promptString",
        "description": "TARGET_MONIKER: The destination moniker of a new component instance. The moniker must include a component collection on the path. E.g. '/core/ffx-laboratory:hello-world'"
      },
      {
        "id": "COMPONENT_URL",
        "type": "promptString",
        "description": "COMPONENT_URL: The resource location of a component. E.g. 'fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm'"
      },
      {
        "id": "COMPONENT_FILTER",
        "type": "promptString",
        "description": "COMPONENT_FILTER: URL or moniker of component instance. Partial matches allowed."
      },
      {
        "id": "COMPONENT_LIST_ONLY",
        "type": "promptString",
        "description": "--only: cmx, cml, running, stopped, ancestor:foo, descendant:foo, relatives:foo"
      },
    ]
  }
}
