123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- Language: Flix
- Category: functional
- Author: Magnus Madsen <mmadsen@uwaterloo.ca>
- Website: https://flix.dev/
- */
- /** @type LanguageFn */
- function flix(hljs) {
- const CHAR = {
- className: 'string',
- begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
- };
- const STRING = {
- className: 'string',
- variants: [{
- begin: '"',
- end: '"'
- }]
- };
- const NAME = {
- className: 'title',
- relevance: 0,
- begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/
- };
- const METHOD = {
- className: 'function',
- beginKeywords: 'def',
- end: /[:={\[(\n;]/,
- excludeEnd: true,
- contains: [NAME]
- };
- return {
- name: 'Flix',
- keywords: {
- literal: 'true false',
- keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with'
- },
- contains: [
- hljs.C_LINE_COMMENT_MODE,
- hljs.C_BLOCK_COMMENT_MODE,
- CHAR,
- STRING,
- METHOD,
- hljs.C_NUMBER_MODE
- ]
- };
- }
- module.exports = flix;
|