Как создать пользовательский блок, возвращающий CRLF (возврат каретки + перевод строки) в виде строки в blockly - PullRequest
0 голосов
/ 16 июня 2019

Я новичок в блоке.

Для конкатенации строк в блоке мне нужен специальный блок (JavaScript), просто возвращающий CRLF (возврат каретки + перевод строки), но при его выполнении выдает эту ошибку

SyntaxError: неверный или неожиданный токен

Я создал блок и код:

    Blockly.Blocks['paragraph_add_crlf'] = {
        init: function() {
            this.appendDummyInput()
                .appendField("CRLF");
            this.setOutput(true, "String");
            this.setColour(160);
            this.setTooltip("CRLF");
            this.setHelpUrl("");
        }
    };

    Blockly.JavaScript['paragraph_add_crlf'] = function(block) {
        var code = "'\r\n'";
        return [code, Blockly.JavaScript.ORDER_NONE];
    };

my custom CRLF block

Вывод на консоль сгенерированного кода JavaScript:

    content += ('
');

Исключение при запуске этого кода:

SyntaxError: Invalid or unexpected token
    at run (blockly.php:287)
    at HTMLButtonElement.onclick (blockly.php:212)

Мой вопрос

Чтомне нужно изменить, чтобы получить CRLF в виде строки из пользовательского блока в блоке?

1 Ответ

0 голосов
/ 16 июня 2019

Понял: я должен экранировать символы \ -бэкслэш:

    Blockly.JavaScript['paragraph_add_crlf'] = function(block) {
        var code = "'\\r\\n'";
        return [code, Blockly.JavaScript.ORDER_NONE];
    };

Рабочий пример:

custom block in blockly just returning CRLF

...