An open API service indexing awesome lists of open source software.

https://github.com/jpipe-mcscert/jpipe-vscode

VS Code extension
https://github.com/jpipe-mcscert/jpipe-vscode

justification langium language vscode-extension

Last synced: about 2 months ago
JSON representation

VS Code extension

Awesome Lists containing this project

README

          

# jPipe - VS Code Extension & Language Server

![mcscert](https://raw.githubusercontent.com/jpipe-mcscert/jpipe-vscode/main/packages/extension/images/mcscert.png)

## Contributors

- [Dr. Sébastien Mosser](https://mosser.github.io/), Associate Professor, McMaster University
- [Cass Braun](https://www.linkedin.com/in/cass-braun/), B.Eng. Student, McMaster University
- [Andrew Bovbel](https://www.linkedin.com/in/andrewbovbel/), B.Eng. Student, McMaster University
- [Nirmal Chaudhari](https://www.linkedin.com/in/nirmal2003/), B.Eng. Student, McMaster University

## Contributing to the plugin

You can find more information about the jPipe project on the main repository: [https://github.com/jpipe-mcscert](https://github.com/jpipe-mcscert)

### Repository Organization

- `packages/extension`: Code specific to the VS Code platform
- Visualization of justification models (preview)
- Interaction with the jPipe compiler
- `package/language`: Language definition for the Language Server
- jPipe grammar using Langium;
- Validation rules
- Scoping rules

### How to setup the development environment?

```
mosser@azrael jpipe-vscode % npm install
mosser@azrael jpipe-vscode % npm install -g @vscode/vsce
```

### How to build and run the project?

- To generate the language artifacts based on the grammar
```
mosser@azrael jpipe-vscode % npm run langium:generate
```

- To build the extension:
```
mosser@azrael jpipe-vscode % npm run build
```

- To run the project in a new VS Code instance:
- Simply press `F5`, it'll open a new VS Code environment with the plugin started.

### How to build a releasable VS Code extension?

- Building the extension
```
mosser@azrael jpipe-vscode % cd packages/extension
mosser@azrael extension % vsce package -o jpipe-vscode.vsix
```

- Installing the extension locally:
```
mosser@azrael extension % code --install-extension jpipe-vscode.vsix
```

- Publishing the extension to the marketplace
```
mosser@azrael extension % vsce publish
```

### How to bump the version?

The version must be updated in sync across four locations:

- `package.json` (monorepo root)
- `packages/extension/package.json`
- `packages/language/package.json`
- The `jpipe-language` dependency inside `packages/extension/package.json` `dependencies` block

The first three are handled by a single command:
```
mosser@azrael jpipe-vscode % npm version --no-git-tag-version --workspaces --include-workspace-root
```

Then manually update the `jpipe-language` dependency version in `packages/extension/package.json` to match:
```json
"dependencies": {
"jpipe-language": "",
...
}
```

Replace `` with the desired version (e.g. `1.1.0`) or a semver increment keyword (`patch`, `minor`, `major`) for the npm command.

### AI assistance policy

Parts of this codebase were developed with the assistance of Claude (Anthropic), an AI coding assistant. We are transparent about this use and welcome AI-assisted contributions, subject to the following conditions:

- Pull requests must not be 100% AI-generated. Every contribution must reflect the understanding and judgement of a human author.
- Human authors are fully responsible for the correctness, quality, and appropriateness of their contributions, regardless of whether AI tools were used in their preparation.
- Reviewers may ask contributors to explain any part of their submission.

## Sponsors

We acknowledge the support of McMaster University, McMaster Centre for Software Certification, and the _Natural Sciences and Engineering Research Council of Canada_ (NSERC).