tree: 0f7f0f82a4afb29aff9bdf8708ee159773d8fddf [path history] [tgz]
  1. .vscode/
  2. media/
  3. resources/
  4. src/
  5. .eslintrc.js
  6. .gitignore
  7. CHANGELOG.md
  8. install.sh
  9. LICENSE.txt
  10. package-lock.json
  11. package.json
  12. preupload_hook.sh
  13. README.md
  14. tsconfig.json
  15. webpack.config.js
ide_tooling/cros-ide/README.md

CrOS IDE

Currently EXPERIMENTAL and tested only for google internal developers. No timely support will be provided.

This plugin consolidates commonly used tools for Chromium OS Development.

Features

  • Autocomplete, x-ref searching, and symbol definition when developing in chroot
  • Managing local and remote DUTs
  • Code health tooling

See QuickStart Guide for initial setup.

Developers guide

Initial set up and testing

  1. Follow the QuickStart Guide, skip installing the extension. Open the cros-ide directory as your working directory.
  2. Run npm ci in the cros-ide directory (inside chroot).
  3. Outside chroot (open a different terminal), run npm test in the cros-ide directory to confirm tests pass. node --version should return v12.* for the test to pass. If you are using a newer version, please uninstall or downgrade it.

Testing

There are several ways of testing.

  • Testing from GUI
    • Make sure your VSCode is connected to chroot, and opening cros-ide as a workspace.
    • (See Debugging the tests for visual guide) Click the “Run and Debug” icon in the Activity Bar, select “Run Extension” menu, and click the “Start Debugging” button or press F5. It should launch a new window where the extension built from the source code is installed. Then you can perform whatever manual tests on it. By default, other extensions are disabled. To keep other extensions running, choose “Run Extension (keep other extensions running)”.
    • Similarly, you can select “Extension Tests” instead of “Run Extensions” to run all the tests. The output will be shown in the Debug Console in the IDE used to develop the extension
  • Testing from command line
    • npm run unit-test runs unit tests.
    • npm run test runs all the tests. It must be run outside chroot.

Publishing the extension

Here is the steps to release a new version of a package file, to be installed by all users by ./install.sh.

  1. Upload a patch that updates the version in package.json, have it reviewed, approved and merged to cros/main (for example, http://crrev.com/c/3474259)
  2. Check out that commit in the local git checkout.
  3. Inside chroot, run ./install.sh --upload. It will build the extension and upload it to Cloud Storage under chromeos-velocity.

FAQs

  • How to check that my VSCode is connected to chroot?
    • In the lower left corner, it should show SSH: cros if you followed QuickStart Guide.
  • How to build and install the extension from local source code?
    • Run ./install.sh --dev in the terminal of the VSCode connected to chroot. It builds from the source code and installs it to the current vscode.
  • Why repo upload is slow?
    • It runs npm test. It's a tentative alternative for a CQ which is under construction.

Requirements

TBD

Extension Settings

Known Issues

Release Notes

Users appreciate release notes as you update your extension.

1.0.0

TBD


Sticky Notes


Dependencies

Important: Keep this updated and ensure that unrestrictive licenses are used

Name: definitely-typed
URL: https://github.com/DefinitelyTyped/DefinitelyTyped
Remarks: Pulls in TS data-types published via DefinitelyTyped (i.e. @types/*)
License: MIT

Name: typescript-eslint
URL: https://github.com/typescript-eslint/typescript-eslint/
Remarks:
License: BSD-2-Clause

Name: eslint
URL: https://github.com/eslint/eslint
Remarks:
License: MIT

Name: eslint-config-google
URL: https://github.com/google/eslint-config-google
Remarks:
License: Apache-2.0

Name: glob
URL: https://github.com/isaacs/node-glob
Remarks: Unrestrictive license along the lines of MIT
Used for unit-tests
License: ISC

Name: Typescript
URL: https://github.com/microsoft/TypeScript
Remarks:
License: Apache-2.0

Name: mocha
URL: https://github.com/mochajs/mocha
Remarks:
License: MIT

Name: ts-loader
URL: https://github.com/TypeStrong/ts-loader
Remarks:
License: MIT

Name: webpack
URL: https://github.com/webpack/webpack
Remarks:
License: MIT

Name: webpack-cli
URL: https://github.com/webpack/webpack-cli
Remarks:
License: MIT

Name: webpack
URL: https://github.com/Microsoft/vscode-test
Remarks:
License: MIT