Можно ли показать скрытые символы в CodeMirror?

Можно ли отображать скрытые символы (например, символ возврата каретки) в Текстовом редакторе Codemirror, но я не нашел ссылок на эту настройку в его документации. Возможно ли это сделать?


person Dr. No    schedule 08.10.2013    source источник


Ответы (2)


Возврат каретки специально интерпретируется CodeMirror (когда он сам по себе, он создает разрыв строки, когда перед переводом строки он будет игнорироваться), поэтому в этом случае нет, вы не можете.

Но другие непечатаемые символы (например, \b) по умолчанию будут отображаться в виде красных точек, и вы можете адаптировать соответствующий класс CSS cm-invalidchar, чтобы настроить их внешний вид.

person Marijn    schedule 09.10.2013

Это можно сделать с помощью оверлеев и предопределенных стилей с пробелами и символом EOL следующим образом:

cm.addOverlay({
    name: 'invisibles',
    token:  function nextToken(stream) {
        var ret,
            spaces  = 0,
            peek    = stream.peek() === ' ';

        if (peek) {
            while (peek && spaces < Maximum) {
                ++spaces;

                stream.next();
                peek = stream.peek() === ' ';
            }

            ret = 'whitespace whitespace-' + spaces;
        } else {
            while (!stream.eol() && !peek) {
                stream.next();

                peek = stream.peek() === ' ';
            }

            ret = 'cm-eol';
        }

        return ret;
    }
});

Для этой цели вы можете использовать аддон CodeMirror Show Invisibles.

person coderaiser    schedule 27.02.2015