- install yarn.
- Clone the GitHub repository vscode-scheme-repl
- run
yarn install
to install all dependencies and development dependencies. You need the development dependencies to build and package the extension. - run
yarn --ignore-engines package
- this generates the extension packagevscode-scheme-repl-VERSION.vsix
which you can install to VS Code
- ./package.json - The main extension configuration, contains VS Code commands, keybindings, configuration items, menu items, ...
- ./package_files/language-configuration.json - Set basic Scheme configuration, like opening/closing parens, word boundaries and when to indent if
enter
has been pressed. - ./package_files/snippets.json - Snippets.
- ./package_files/scheme.tmGrammar.json - The syntax highlighting, a TextMate grammar.
- ./package_files/scheme.markdown.tmGrammar.json - Configuration file to get syntax highlighting in markdown Scheme code blocks.
- ./src/extension.ts - the main entry point of the extension.
- ./src/paneREPL.ts - function to deal with the visible REPL in an extra pane. E.g. to start the REPL, send a file, s-expression, ...
- ./src/sexps.ts - functions related to parsing s-expressions.
- ./src/identifierDocumentation.ts - types and functions for the handling and display of documentation.
- ./src/constants.ts - all constants used by the extension. Like config paths, command names, ...
- ./src/helpers.ts - small helper functions to make the life easier.
- ./src/functionDocumentation.ts - identifier documentation autogenerated by ./generate_function_documentation.ts. See Build commands
- ./test - tests
The scripts
field of package.json.
All yarn commands add --ignore-engines
to not get a spurious warning:
warning vscode-scheme-repl@VERSION:The engine "vscode" appears to be invalid.
yarn --ignore-engines clean
- deletes the directory./out
yarn --ignore-engines lint
- runs eslint on all source filesyarn --ignore-engines lint-github
- runs eslint on all source files, writes report to./eslint_report.json
yarn --ignore-engines compile
- compiles the Typescript sources to./out/
and generates the source mapsyarn --ignore-engines generate-function-doc
- downloads the Chez Scheme function documentation, parses it and write the data to the file./src/functionDocumentation.ts
.yarn --ignore-engines test
- compiles the extension and runs the testsyarn --ignore-engines esbuild
- compiles the Typescript sources and bundles them to./out/extension.js
and adds a source map./out/extension.js.map
. This is used for testing.yarn --ignore-engines esbuild-watch
- runs the same commands asyarn --ignore-engines esbuild-watch
in watch mode, that is, it re-bundles everything if a file has been changedyarn --ignore-engines bundle
- compiles and minifies the Typescript sources and bundles them to./out/extension.js
, no source maps are generated. This is used for releases.yarn --ignore-engines package
- generates a VSIX package of the extension. That is, a 'normal' VS Code extension packageyarn --ignore-engines publish-vsix
- publishes the extension to the marketplace. This needs a working marketplace account and an access token. To publish interactively, you can login with your token first by callingyarn --ignore-engines vsce login YOUR_PUBLISHER_NAME
, whereYOUR_PUBLISHER_NAME
is the account to publish the extension to.
vscode:prepublish
- used byyarn --ignore-engines package
(byvsce package
)esbuild-base
- used by other targets that call Esbuild with additional options