2

Имейте php с повторяющимися HTML-тегами. notepad++ 6.4.5 хорошо выделяет теги внутри php и outisde php.

notepad++ 6.5 хорошо выделяет теги только из php и не выделяет внутри кода php.

Как включить подсветку тегов внутри php кода?

Блокнот ++ 6.4.5:

Блокнот ++ 6.5:

2 ответа2

1

Я ожидал решения от разработчиков 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>

0

Вы должны создавать свои документы PHP как шаблоны документов HTML, как показано ниже. Notepad++ просто поддерживает хорошие методы кодирования, обрабатывая ваши echo строки как строки PHP и не выделяя их. Если вы хотите взломать HTML, то просто вставьте ?> завершить подсветку синтаксиса PHP и выделит его как HTML. Тогда используйте <?php чтобы запустить PHP-код снова, при необходимости. Вам не нужно echo для вывода HTML, просто завершите <?php ... ?> Заблокируйте и введите свой HTML, как обычно.

<!doctype html>
<html>
...
   <div><?php echo "content"; ?></div>
...
</html>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .