mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
27 lines
706 B
Markdown
27 lines
706 B
Markdown
|
# n8n Expression language support
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
import { parserWithMetaData as n8nParser } from '@n8n/codemirror-lang';
|
||
|
import { LanguageSupport, LRLanguage } from '@codemirror/language';
|
||
|
import { parseMixed } from '@lezer/common';
|
||
|
import { parser as jsParser } from '@lezer/javascript';
|
||
|
|
||
|
const n8nPlusJsParser = n8nParser.configure({
|
||
|
wrap: parseMixed((node) => {
|
||
|
if (node.type.isTop) return null;
|
||
|
|
||
|
return node.name === 'Resolvable'
|
||
|
? { parser: jsParser, overlay: (node) => node.type.name === 'Resolvable' }
|
||
|
: null;
|
||
|
}),
|
||
|
});
|
||
|
|
||
|
const n8nLanguage = LRLanguage.define({ parser: n8nPlusJsParser });
|
||
|
|
||
|
export function n8nExpressionLanguageSupport() {
|
||
|
return new LanguageSupport(n8nLanguage);
|
||
|
}
|
||
|
```
|