Создание новых режимов для CodeMirror

Я хочу выделить только ключевые слова, которые выглядят следующим образом: {KEYWORD} (в основном слова ЗАПИСНЫМИ буквами, заключенные между одинарными {} круглыми скобками)

Я попробовал это, скопировав код из демонстрации Mustache Overlay , и заменив двойные скобки одинарными:

CodeMirror.defineMode('mymode', function(config, parserConfig) {
  var mymodeOverlay = {
    token: function(stream, state) {
      if (stream.match("{")) {
        while ((ch = stream.next()) != null)
          if (ch == "}" && stream.next() == "}") break;
        return 'mymode';
      }
      while (stream.next() != null && !stream.match("{", false)) {}
      return null;
    }
  };
  return CodeMirror.overlayParser(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mymodeOverlay);
});

, но это работает не очень хорошо :)

Есть идеи?

9
задан Alex 15 June 2011 в 21:52
поделиться