Skip to content

bpmn-io/feel-lint

@bpmn-io/feel-lint

CI

Linting for FEEL expressions.

Usage

There are 2 ways to use this library:

Linting string expressions

The lintExpression function takes a string expression and returns a list of linting errors.

import { lintExpression } from "@bpmn-io/feel-lint"

lintExpression('foo = bar');

You may pass custom language configuration to the editor. Checkout @camunda/feel-builtins for a reference of built-in functions.

import { camundaBuiltins } from '@camunda/feel-builtins';

lintExpression('> 10, "yes", mike\'s name', {
  dialect: 'unaryTests',
  builtins: camundaBuiltins,
  variables:  [
    {
       name: `mike's name`
    }
  ]
});

CodeMirror plugin

The cmFeelLinter function returns a LintSource that you can use to extend your CodeMirror instance.

import { cmFeelLinter } from "@bpmn-io/feel-lint"
import { linter } from '@codemirror/lint';

// ...

const myEditor = new EditorView({
    state: EditorState.create({
      doc: '',
      extensions: [
        linter(cmFeelLinter())
      ]
    })
  });

Hacking the Project

To get the development setup make sure to have NodeJS installed. As soon as you are set up, clone the project and execute

npm install
npm run dev

License

MIT

About

A linter for FEEL expressions.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 5