n8n/packages/@n8n/codemirror-lang/src/expressions
2024-09-18 10:19:33 +03:00
..
expressions.grammar feat(editor): Expand supported Unicode range for expressions (#9420) 2024-05-16 14:42:47 +02:00
grammar.terms.ts feat(editor): Migrate codemirror-lang-n8n-expression into this monorepo (no-changelog) (#9087) 2024-05-10 18:49:22 +02:00
grammar.ts feat(editor): Expand supported Unicode range for expressions (#9420) 2024-05-16 14:42:47 +02:00
index.ts refactor: Enable import/order for design-system, workflow and @n8n packages (#10847) 2024-09-18 10:19:33 +03:00
README.md feat(editor): Expand supported Unicode range for expressions (#9420) 2024-05-16 14:42:47 +02:00

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