Skip to content

feat: Integrate bpmnlint#87

Merged
jdehaan merged 2 commits into
mainfrom
feat/bpmnlint-integration
Jun 15, 2026
Merged

feat: Integrate bpmnlint#87
jdehaan merged 2 commits into
mainfrom
feat/bpmnlint-integration

Conversation

@jdehaan

@jdehaan jdehaan commented Jun 14, 2026

Copy link
Copy Markdown
Member

Fixes #83

Surface model validation issues directly in rendered diagrams and in the editor via bpmn-js-bpmnlint. A toggle button on the canvas shows clickable error/warning overlays on the offending elements.

  • New lint attribute on : on | off | inactive.
  • Plugin setting (defaults to off) to configure the default for the feature
  • Linter enabled automatically on edits
  • Rules live in .bpmnlintrc (extends bpmnlint:recommended) and are packed into the committed bundles at build time via bpmnlint-pack-config, since bpmnlint cannot resolve rules in the browser. build:vendor handles this automatically.
  • The lint module runs in a plain Viewer (every injected service is present; editorActions resolves optionally), so no viewer upgrade was needed.
  • Tests
  • Translations

Surface model validation issues directly in rendered diagrams and in the
editor via bpmn-js-bpmnlint. A toggle button on the canvas shows clickable
error/warning overlays on the offending elements.

- New `lint` attribute on <bpmnio>: on | off | inactive. The viewer defaults
  to button-present-inactive; the editor defaults to active.
- Rules live in .bpmnlintrc (extends bpmnlint:recommended) and are packed into
  the committed bundles at build time via bpmnlint-pack-config, since bpmnlint
  cannot resolve rules in the browser. build:vendor handles this automatically.
- The lint module runs in a plain Viewer (every injected service is present;
  editorActions resolves optionally), so no viewer upgrade was needed.
- Add syntax tests for the lint attribute; default output is unchanged when the
  attribute is absent.

Refs #83
@jdehaan jdehaan force-pushed the feat/bpmnlint-integration branch 3 times, most recently from 888a256 to 13f0108 Compare June 14, 2026 18:21
@jdehaan jdehaan self-assigned this Jun 14, 2026

@alibama alibama left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

seems reasonable - my code review isn't worth the keystrokes here, but i'll acknowledge reading it and 👍 fwiw?

looks like internationalizing this for new languages won't be much work?

@jdehaan

jdehaan commented Jun 14, 2026

Copy link
Copy Markdown
Member Author

Yes indeed translation is a perfect job for LLMs
I focused on the feature and overlooked that. But adding the strings for the already provided languages is a good hint. I will do

@jdehaan jdehaan force-pushed the feat/bpmnlint-integration branch from 13f0108 to 4ca108f Compare June 15, 2026 05:39
@jdehaan jdehaan force-pushed the feat/bpmnlint-integration branch from 4ca108f to 738a44f Compare June 15, 2026 05:47
@jdehaan jdehaan merged commit 738a44f into main Jun 15, 2026
23 checks passed
@jdehaan jdehaan deleted the feat/bpmnlint-integration branch June 15, 2026 05:49
@jdehaan

jdehaan commented Jun 15, 2026

Copy link
Copy Markdown
Member Author

Thanks for your contribution! I shipped the slightly reworked state. I hope others will enjoy. Likely there will be follow ups but I prefer always not going ahead of what people need, often the risk is to miss the point. Here the changes where mostly to keep the previous behavior by default to not upset people when they update the plugin. This is also a principle I try to follow when possible.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

adding bpmn lint to surface issues in diagrams + increase engagement

2 participants