Skip to content

Add high-level architecture docs for VS Code extension and related language libraries#201

Merged
jtamsut merged 2 commits intomainfrom
jtamsut/create-architecture-docs
May 22, 2023
Merged

Add high-level architecture docs for VS Code extension and related language libraries#201
jtamsut merged 2 commits intomainfrom
jtamsut/create-architecture-docs

Conversation

@jtamsut
Copy link
Copy Markdown
Contributor

@jtamsut jtamsut commented May 22, 2023

This document is targeted at those interested in contributing to the VS Code extension. Its includes a description of the technologies used and the overall components of the system.

@jtamsut jtamsut requested a review from a team as a code owner May 22, 2023 23:29
@jtamsut jtamsut merged commit df6d0bc into main May 22, 2023
@jtamsut jtamsut deleted the jtamsut/create-architecture-docs branch May 22, 2023 23:44
Copy link
Copy Markdown
Member

@cschleiden cschleiden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

couple comments where we could be a bit clearer


![LSP Illustration](./images/lsp-illustration.png)

By making the extension LSP compliant we have set the extension up to integrate with other text editors in the future.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The extension will not integrate with other editors, but the separate language server implementation will allow us to integrate into other editors.

- The [language service](https://github.com/actions/languageservices/tree/main/languageservice) library uses the workflow parser and expression engine (described below) to implement the core functionality of the extension
- it calls into the language server for any data that requires an API call
- the [workflow-parser](https://github.com/actions/languageservices/tree/main/workflow-parser) library parses GitHub Actions workflows into an intermediate representation and validates that the workflow file is syntactically valid
- the workflow parser uses a [JSON schema](https://github.com/actions/languageservices/blob/main/workflow-parser/src/workflow-v1.0.json) to parse the workflow file
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this might be a bit misleading, it's a custom schema definition not a json schema as in https://json-schema.org/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants