Я хочу использовать функцию списка функций из notepad ++ для моего PHP-кода. Фактически список функций работает нормально, если я пишу тег PHP (?>). Но если я не закрыл тег PHP, список функций не работает
Я просто хочу, список функций все еще работает, даже я не закрыл тег PHP
См. Изображение Наверху без тега PHP. На нижней части находится тег PHP с тегом
введите описание изображения здесь
Затем я прочитал это, блокнот + список функций doc https://notepad-plus-plus.org/features/function-list.html
Я думаю, мне нужно отредактировать регулярное выражение. Но проблема в том, что я не могу редактировать регулярное выражение, потому что регулярное выражение выглядит слишком сложным для меня
Это регулярное выражение и xml списка функций PHP
<parser id="php_function" displayName="PHP" commentExpr="((/\*.*?\*)/|(//.*?$))"> <classRange mainExpr="^[\s]*(class|abstract[\s]+class|final[\s]+class)[\t ]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*([\s]*|[\s]*(extends|implements|(extends[\s]+(\\|[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)+[\s]+implements))[\s]+(\,[\s]*|(\\|[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))+[\s]*)?\{" openSymbole = "\{" closeSymbole = "\}" displayMode="node"> <className> <nameExpr expr="(class|abstract[\s]+class|final[\s]+class)[\s]+[\w]+"/> <nameExpr expr="[\s]+[\w]+\Z"/> <nameExpr expr="[\w]+\Z"/> </className> <function mainExpr="^[\s]*((static|public|protected|private|final)*(\s+(static|public|protected|private|final))+[\s]+)?(function[\s]+)+([\w]+([\s]+[\w]+)?([\s]+|\*[\s]+|[\s]+\*|[\s]+\*[\s]+))?([\w_]+[\s]*::)?(?!(if|while|for|switch))[\w_~]+[\s]*\([^\{]*\{"> <functionName> <funcNameExpr expr="(?!(if|while|for|switch))[\w_]+[\s]*\([^\{]*"/> <!-- comment below node if want display method with parmas --> <funcNameExpr expr="(?!(if|while|for|switch))[\w_]+"/> </functionName> </function> </classRange> <function mainExpr="^[\s]*function[\s]+\w+\(" displayMode="$className->$functionName"> <functionName> <nameExpr expr="(?!(if|while|for))[\w_]+[\s]*\("/> <nameExpr expr="(?!(if|while|for))[\w_]+"/> </functionName> <className> <nameExpr expr="[\w_]+(?=[\s]*::)"/> </className> </function> </parser>
Кто-нибудь может мне помочь
спасибо
[Решаемые]
Нам просто нужно добавить строку ввода / добавления новой строки после закрытия тега класса или функции
Так что, возможно, это ошибка
благодаря
Внутренний «список функций» для меня вообще не работает. Я попытался удалить один или оба файла «functionlist.xml», который был рекомендован на некоторых сайтах, но ничего не работало для меня.
Я предпочитаю плагин «functionList» из https://sourceforge.net/projects/npp-plugins/files/Function%20List/
с патчем от https://github.com/gwarnants/FunctionList-PHP-Patch
который отлично работает с моим Notepad ++ 6.9.2
Для меня проблема заключалась в том, что не было закрывающего PHP-тега.
Может быть, это помогает кому-то.
Добавьте закрывающий тег PHP «?>», Если он уже не существует.
Существует несколько причин, по которым список функций не может отображать дерево функций.
?>
В конец файла. Иногда после закрытия вкладки требуется новая строка. / ** * Отменить экземпляр этого класса. * * @param Таблица электронных таблиц с электронными таблицами, в которой указан экземпляр для отмены * / публичная функция __destruct () { $ this-> workbook = null; }
В этом случае вы должны изменить (или добавить) commentExpr
в functionList.xml в% APPDATA% (Есть два commentExpr
functionList.xml. Каталог файлов программ и % APPDATA% каталог)
<parser id ="php_syntax" displayName="PHP" commentExpr="(?'MLC'(?sm)/\*.*?\*/)|(?'SLC'(?ms)(?:#|/{2}).*$)|(?'STRLIT'(?sm)"[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')" >