Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
.m2
yarn-cache

/.claude/settings.local.json
/.claude/plans
CLAUDE.local.MD
.reviews
41 changes: 41 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Repository Guidelines

## Project Structure & Module Organization
This repository is split into two main parts:
- `client/`: TypeScript/Yarn workspace for the GLSP IDE integration package and workflow webapp example.
- `client/packages/ide/src/`: reusable integration source.
- `client/examples/workflow-webapp/src/`: example app source, bundled to `client/examples/workflow-webapp/app/`.
- `server/`: Java 17 + Maven/Tycho Eclipse plugin build.
- `server/plugins/org.eclipse.glsp.ide.editor/src/`: core Eclipse integration plugin.
- `server/example/org.eclipse.glsp.ide.workflow.editor/src/`: workflow editor example plugin.
- `server/releng/`: target platform, feature, and p2 repository modules.

## Build, Test, and Development Commands
- `cd client && yarn install`: install workspace dependencies (Node `>=20`, Yarn 1.x).
- `cd client && yarn build`: compile TS packages and bundle the workflow webapp.
- `cd client && yarn lint`: run ESLint on all TS/TSX sources.
- `cd client && yarn format:check`: verify Prettier formatting.
- `cd client && yarn check:pr`: CI-like client gate (`build`, `lint`, `format:check`, headers).
- `cd client/examples/workflow-webapp && yarn test`: run Mocha specs (`*.spec.ts|tsx`) for the example app.
- `cd server && mvn clean install`: build Eclipse bundles.
- `cd server && mvn clean install -Pp2`: build including p2 artifacts.
- `cd server && mvn checkstyle:check -B`: run Java style checks.

## Coding Style & Naming Conventions
- TypeScript: 4-space indentation, single quotes, trailing commas disabled, max line length 140 (see `.prettierrc`).
- Linting: ESLint with `@eclipse-glsp` config (`client/.eslintrc.js`).
- Java: follow Checkstyle rules configured via Maven (`maven-checkstyle-plugin`).
- Naming: keep existing conventions (`*.spec.ts` for tests, PascalCase Java classes, kebab-case TS file names where already used).

## Testing Guidelines
Prefer targeted tests for changed behavior:
- Client example tests live beside sources and should match `*.spec.ts`/`*.spec.tsx`.
- Run `yarn check:pr` for client-side validation before opening a PR.
- For server changes, run `mvn clean verify` (or at least `mvn clean install`) and `mvn checkstyle:check`.

## Commit & Pull Request Guidelines
- Create/track an umbrella issue first (`https://github.com/eclipse-glsp/glsp/issues/...`).
- Branch naming in upstream repos follows `issues/{issue_number}`.
- Reference the full issue URL in commit messages (not just `#123`).
- Keep commit subjects short, imperative, and specific (history examples include `GLSP-1607: Fix deployment`).
- PRs should include scope, rationale, test evidence (commands run), and screenshots/GIFs for UI changes.
13 changes: 0 additions & 13 deletions client/.eslintignore

This file was deleted.

24 changes: 0 additions & 24 deletions client/.eslintrc.js

This file was deleted.

1 change: 1 addition & 0 deletions client/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
31 changes: 31 additions & 0 deletions client/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import glspConfig from '@eclipse-glsp/eslint-config';

export default [
...glspConfig,
{
ignores: ['**/*.js', '**/*.mjs', '**/*.cjs', '**/dist/**', '**/lib/**']
},
{
files: ['**/*.{ts,tsx}'],
languageOptions: {
parserOptions: {
project: './tsconfig.eslint.json',
tsconfigRootDir: import.meta.dirname
}
},
rules: {
'no-restricted-imports': [
'warn',
{
name: 'sprotty',
message: "The sprotty default exports are customized and reexported by GLSP. Please use '@eclipse-glsp/client' instead"
},
{
name: 'sprotty-protocol',
message:
"The sprotty-protocol default exports are customized and reexported by GLSP. Please use '@eclipse-glsp/client' instead"
}
]
}
}
];
3 changes: 1 addition & 2 deletions client/examples/workflow-webapp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
"bundle": "yarn compile && webpack",
"clean": "rimraf lib tsconfig.tsbuildinfo app/bundle.js app/bundle.js.map",
"compile": "tsc -b",
"lint": "eslint --ext .ts,.tsx ./src",
"lint:ci": "yarn lint -o eslint.xml -f checkstyle",
"lint": "eslint ./src",
"test": "mocha --config ../../.mocharc.json \"./src/**/*.spec.?(ts|tsx)\"",
"test:ci": "export JUNIT_REPORT_PATH=./report.xml && yarn test --reporter mocha-jenkins-reporter",
"watch": "webpack -w",
Expand Down
11 changes: 6 additions & 5 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,21 @@
"examples/*"
],
"scripts": {
"all": "yarn build && yarn lint",
"app": "yarn --cwd examples/workflow-webapp",
"build": "yarn compile && yarn app bundle",
"check:headers": "glsp checkHeaders ../../glsp-eclipse-integration -t lastCommit -f ts tsx java -e \"**/src-gen/**\"",
"check:pr": "yarn all && yarn format:check && yarn check:headers",
"check:all": "yarn install && yarn lint && yarn format:check && yarn headers:check",
"clean": "lerna run clean",
"compile": "tsc -b",
"copy:client": "copyfiles -f ./examples/workflow-webapp/app/* ../server/example/org.eclipse.glsp.ide.workflow.editor/diagram",
"fix:all": "yarn lint:fix && yarn format && yarn headers:fix",
"format": "prettier --write .",
"format:check": "prettier --check .",
"generate:index": "lerna run generate:index && yarn lint:fix",
"lint": "eslint --ext .ts,.tsx .",
"headers:check": "glsp checkHeaders ../../glsp-eclipse-integration -f ts tsx java -e \"**/src-gen/**\"",
"headers:fix": "glsp checkHeaders ../../glsp-eclipse-integration -f ts tsx java -e \"**/src-gen/**\" --autoFix",
"lint": "eslint .",
"lint:ci": "yarn lint --output-file eslint_report.json --format json",
"lint:fix": " yarn lint --fix",
"lint:fix": "yarn lint --fix",
"prepare": "yarn build && yarn copy:client",
"publish:latest": "lerna publish from-package --no-git-reset -y",
"publish:next": "lerna publish preminor --exact --canary --preid next --dist-tag next --no-git-reset --no-git-tag-version --no-push --ignore-scripts --yes",
Expand Down
3 changes: 1 addition & 2 deletions client/packages/ide/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@
"build": "tsc -b",
"clean": "rimraf lib tsconfig.tsbuildinfo",
"generate:index": "glsp generateIndex src -f -s",
"lint": "eslint --ext .ts,.tsx ./src",
"lint:ci": "yarn lint -o eslint.xml -f checkstyle",
"lint": "eslint ./src",
"watch": "tsc -w"
},
"dependencies": {
Expand Down
Loading