minimal feature flag system

This presents a minimal feature flag system.  Features are specified in
src/all-feature-flags.ts for compile-time type safety, and then are then
transformed into extension options in package.json by the build script.

Flags may be marked as 'stable' or 'nightly', in which case they'll be
on by default in the given build.  Alternatively, they may be marked as
'never', and will need to be manually turned on.

Builds will be autodetected as stable or nightly, and corresponding
featuers will be automatically turned on.  Users may manually override
the "stability" of their current build via a setting, and can override
the on/off state of individual flags as well via settings for each.

Each setting is exposed separately via the settings UI in vscode, so
that users don't have to learn arcane syntax or know the names of flags
ahead of time.

(we also update the test running configurations used by users to
auto-clear the testdata workspace's .vscode dir, to avoid config
carrying over from previous runs and messing things up)

Closes fxbug.dev/103319

Change-Id: Iba45e577480227d378ed87f1dc3162ffae90ad4f
Reviewed-on: https://fuchsia-review.googlesource.com/c/vscode-plugins/+/714222
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Salazar Villarreal <villarreald@google.com>
9 files changed
tree: 56e85527efb74c98d2db8925add6835e31c5ff91
  1. .ci/
  2. .kokoro/
  3. .vscode/
  4. docs/
  5. media/
  6. resources/
  7. src/
  8. syntax/
  9. testdata/
  10. webviews/
  11. .eslintrc.json
  12. .gitignore
  13. .vscodeignore
  14. AUTHORS
  15. build-helpers.mjs
  16. build.mjs
  17. BUILDING.md
  18. CONTRIBUTING.md
  19. LICENSE
  20. OWNERS
  21. package-lock.json
  22. package.json
  23. PATENTS
  24. README.md
  25. THIRD_PARTY_NOTICES.txt
  26. TROUBLESHOOTING_ZXDB.md
  27. tsconfig.json
README.md

Fuchsia extension for VS Code

This VS Code extension implements the commonly needed functionality for Fuchsia development.

This is a Work In Progress Currently supporting:

  • Interacting with the fuchsia target device.
    • Setting the default target.
    • Sending commands to the target.
  • Debugging C/C++ components.
  • Filtering and listening to target logs.

FFX path settings

The FFX tool path can be set under Settings > Extensions > Fuchsia SDK. If this path is not set, the extension will automatically search for it at:

  • ./tools/ffx
  • ./.jiri_root/bin/ffx

Recommended extensions

Contributing

Issues/feedback

  • Please report issues/feedback here.

Legal Notice

Use of the Fuchsia core developer tools is subject to the Google Terms of Service. The Google Privacy Policy describes how data is handled in your use of this service.