text: import 'brace/mode/java';
  
  export class CustomHighlightRules extends window.ace.acequire("ace/mode/text_highlight_rules").TextHighlightRules {
      constructor() {
          super();
  
          var keywords = (
              "case|def|else|enum|if|lat|let|match|rel|select|spawn|with|namespace|pub|not|opaque|type|alias|use|import|get|set|new|as|ref|deref|project|into|from|where|query|solve|instance"
          );
  
          var builtinConstants = (
              "true|false|Nil"
          );
  
          var builtinFunctions = (
              "not|and|or"
          );
  
          var dataTypes = (
              "Bool|Int|Int32|String|Option|Result|List"
          );
  
          var keywordMapper = this.createKeywordMapper({
              "support.function": builtinFunctions,
              "keyword": keywords,
              "constant.language": builtinConstants,
              "storage.type": dataTypes
          }, "identifier", true);
  
          this.$rules = {
              "start" : [ {
                  token : "comment",
                  regex : "\\/\\/.*$"
              },  {
                  token : "comment",
                  start : "/\\*",
                  end : "\\*/"
              }, {
                  token : "string",           // " string
                  regex : '".*?"'
              }, {
                  token : "string",           // ' string
                  regex : "'.*?'"
              }, {
                  token : "string",           // ` string (apache drill)
                  regex : "`.*?`"
              }, {
                  token : "constant.numeric", // float
                  regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
              }, {
                  token : keywordMapper,
                  regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
              }, {
                  token : "keyword.operator",
                  regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="
              }, {
                  token : "paren.lparen",
                  regex : "[\\(]"
              }, {
                  token : "paren.rparen",
                  regex : "[\\)]"
              }, {
                  token : "text",
                  regex : "\\s+"
              } ]
          };
          this.normalizeRules();
      }
  }
  
  export default class FlixMode extends window.ace.acequire('ace/mode/java').Mode {
      constructor() {
          super();
          this.HighlightRules = CustomHighlightRules;
      }
  }
  
  