Я ожидал решения от разработчиков notepad++, вернувшего возможность подсветки html-кода внутри php-кода. Но этого не происходит ...
Итак, получили временное решение:
1) Откройте файл php в блокноте ++
2) Установите HTML язык: перейдите на язык => H => HTML
3) Теперь HTML-теги подсвечиваются в php-коде.
Если вы закроете и снова откроете php-файл, вам придется снова выполнить 1-3.
Чтобы сделать это автоматически, выполните:
РЕДАКТИРОВАТЬ langs.xml
1) Заменить
<Language name="html" ext="html htm shtml shtm xhtml hta"
с
<Language name="html" ext="html htm shtml shtm xhtml hta php"
Это сделает php файлы для анализа в формате HTML
2) Заменить
<Language name="php" ext="php php3 phtml"
с
<Language name="php" ext="php1 php3 phtml"
Это отключит php-файлы для анализа как php-язык.
Если не делать, шаг 2 => шаг 1 не имеет никакого эффекта.
РЕДАКТИРОВАТЬ functionList.xml:
После этих изменений список функций будет пустым.
Вот исправление: необходимо отредактировать functionList.xml
1) Заменить:
<association langID="6" id="java"/>
<association langID="9" id="xml_node"/>
с
<association langID="6" id="java"/>
<association langID="8" id="html_function"/>
<association langID="9" id="xml_node"/>
2) сразу после закрытия последней, добавьте это (это копия php_function, переименованная в html_function):
<parser id="html_function" displayName="PHP" commentExpr="((/\*.*?\*)/|(//.*?$))">
<classRange
mainExpr="^[\s]*(class|abstract[\s]+class|final[\s]+class)[\t ]+[\w]+([\s]*|[\s]*(extends|implements)[\s]+[\w\\]+[\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>
ПРАВКА \plugins \APIs \html.xml и \plugins \APIs \php.xml (это необходимо для notepad++ версии 6.9.1 и выше)
1) Скопируйте содержимое в php.xml между <AutoComplete>...</AutoComplete>
и вставьте его в html.xml перед </AutoComplete>