Я пытаюсь добавить пользовательский фрагмент php в редактор ace, но пользовательские фрагменты недоступны в редакторе. - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь добавить пользовательский фрагмент php в редактор ace.Ниже я добавил фрагмент кода в "ace-master / lib / ace / snippets / php.snippets", а затем собрал проект с использованием "узла Makefile.dryice.js".

snippet rett
    return true;
snippet retf
    return false;
snippet test_snippet
    echo "This is a test snippet";

После создания проекта пользовательский фрагмент правильно добавляется в "ace-master / build / src / snippets / php.js", как показано ниже

snippet rett\n\
    return true;\n\
snippet retf\n\
    return false;\n\
snippet test_snippet\n\
    echo \"This is a test snippet\";";

ОднакоПользовательский фрагмент недоступен в редакторе.Хотя другие фрагменты работают просто отлично.Я пытался очистить кеш браузера, перезапустить Apache, перезагрузить редактор и т. Д.

1 Ответ

0 голосов
/ 30 сентября 2019

Одной из возможных проблем может быть то, что вы используете пробелы для отступов вместо вкладок.Другая проблема, может быть вызвана ошибкой в ​​тузе, когда он обрабатывает всю строку как html, если это html в конце строки, и не включает фрагменты php в этой строке.

Но, как правило,Лучше всего добавить фрагменты в ваш код вместо того, чтобы перестраивать туз

var snippetManager = require("ace/snippets").snippetManager
var text = 'snippet rett\n\
\treturn true;\n\
snippet retf\n\
\treturn false;\n\
snippet test_snippet\n\
\techo \"This is a test snippet\";";'
var snippets = snippetManager.parseSnippetFile(text, "php");
snippetManager.register(snippets, "php");

или даже напрямую добавлять фрагменты как json

snippetManager.register([
    {
        "tabTrigger": "rett",
        "name": "rett",
        "content": "return true;"
    },
    {
        "tabTrigger": "retf",
        "name": "retf",
        "content": "return false;"
    },
    {
        "tabTrigger": "test_snippet",
        "name": "test_snippet",
        "content": "echo \"This is a test snippet\";\";"
    }
], "php")
...