Изменить текст, отображаемый для токена в туз-редакторе - PullRequest
0 голосов
/ 15 марта 2019

У меня есть пример , где я нахожу соответствующую строку с помощью регулярных выражений и меняю стили, используя правила подсветки.

this.$rules = {
  start: [{
    token: 'variableRef',
    regex: /\$variable\..+\$/
  }]
};

и изменяю цвет с помощью класса css:

.ace_variableRef {
  color: red;
}

Но я действительно хотел бы изменить отображаемый текст с $ variable.1.name $ на «разрешенное значение».У меня есть доступ к:

var variables = {
  1: 'timeout'
};

, поэтому я могу использовать путь ссылки, чтобы получить значение, но возможно ли это сделать с помощью ace-editor?

В идеале я бы отобразилСтрока в удобной для пользователя форме, но сохраняйте исходное эталонное значение под рукой (в метаданных или что-то в этом роде), поскольку именно это на самом деле хранится в БД.

1 Ответ

0 голосов
/ 16 марта 2019

Вы можете сделать это, определив пользовательское onMatch для своего правила, например,

    this.$rules = {
      start: [{
        onMatch: function(value, state, stack) {
          var values = this.splitRegex.exec(value);
          return [{
            type: 'variableRef',
            value: variables[values[1]]
          }]
        },
        regex: /\$variable\.(\d+).+\$/
      }]
    };

, но фактический текст останется неизменным (что приведет к странностям с выделением текста / курсором), поэтому вам нужно дополнить / обрезать результирующий value, чтобы он соответствовал длине значений [0]

...