n8n/packages/@n8n/codemirror-lang/src/expressions
2024-09-18 10:19:33 +03:00
..
expressions.grammar
grammar.terms.ts
grammar.ts
index.ts refactor: Enable import/order for design-system, workflow and @n8n packages (#10847) 2024-09-18 10:19:33 +03:00
README.md

n8n Expression language support

Usage

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);
}

Supported Unicode ranges

  • From Basic Latin up to and including Currency Symbols
  • Miscellaneous Symbols and Pictographs
  • CJK Unified Ideographs