Vscode: [php] Предоставить HTML-код intellisense

Созданный на 25 нояб. 2015  ·  234Комментарии  ·  Источник: microsoft/vscode

В файлах PHP нет автозаполнения html-тегов, добавьте.


EDIT 9/13/2018 @egamma : VS Code обеспечивает только базовую поддержку PHP, но на рынке доступны мощные расширения PHP:

Эта функция должна предоставляться этими расширениями (на самом деле Intelephence уже поддерживает ее). Пожалуйста, попробуйте эти расширения и помогите улучшить их, регистрируя проблемы и запросы на вытягивание.

Этот вопрос потерял фокус и превратился в дискуссию о том, должен ли VS Code предоставлять поддержку PHP из коробки. Однако, как и со многими другими языками, такими как C #, C ++, Go, Python, Rust, мы не хотим связывать PHP с VS Code, а полагаемся на нашу великолепную экосистему расширений. Поэтому я закрываю этот вопрос.

feature-request help wanted languages-basic php

Самый полезный комментарий

Я не могу помочь, но еще +1000 от меня. HTML / CSS / JS в PHP распространен как смешанный файл. Я пробовал полную Visual Studio + VS.php - тоже не поддерживается. Я все время удивляюсь, почему это упускается из виду во всех инструментах разработки Microsoft, которые предположительно поддерживают PHP. Да, поддержка PHP есть, но она бесполезна, если у нас нет IntelliSense (дополнение кода и предложения кода) для HTML / CSS / JS.

То же самое касается блоков JS и встроенного CSS в HTML.
Если я определю в settings.json:
"files.associations": {"*.php": "html"},
... чем PHP IntelliSense (очевидно) не работает, и HTML срабатывает. Но встроенный CSS с использованием style=" ...something... "; не предлагает никаких свойств CSS при записи между кавычками атрибута стиля.
Аналогичным образом, если я запустил блок <script> , вы не получите IntelliSense для JS, тогда как открытие файла .js реагирует нормально.

Я поддерживаю предположение, что (если это проще):

  • <?php ... ?> должен запустить PHP IntelliSense
  • вне <?php ... ?> должен запустить HTML IntelliSense
    но и
  • внутри <style> ... </style> и style=" .... " должны запускать CSS IntelliSense
  • внутри <script ... > и <script> ... </script> должен запускаться JS IntelliSense

Кроме того, если возможно, следует рассмотреть предложение @TheColorRed , то есть если вы находитесь внутри
<?php ... ?> но пишут строку, например, $string="..." чем следует рассмотреть возможность включения HTML IntelliSense. Дело в том, что разработчики PHP часто используют что-то вроде:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. чтобы избежать создания блоков с открытием / закрытием тегов php постоянно, например:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

Также @egamma , хотя мы не хотим показаться неблагодарными или ленивыми, самодовольные комментарии тоже не очень помогают, если бы один из нас был достаточно компетентен и осведомлен, чтобы сам кодировать - я уверен, что мы это сделаем. К сожалению - я не: - / Но если я могу помочь другим способом, я был бы рад (не просто комментируя предложения, но тестируя или что-то еще).

Я надеюсь, что существует консенсус в отношении того, что эта функция должна существовать, и что текущая поддержка PHP без нее является лишь частичной поддержкой для большинства разработчиков PHP.

PS И снова, чтобы не звучать как критик - мне пока очень нравится VS Code, и я очень благодарен всем, кто внес и продолжает вносить свой вклад в этот замечательный проект!

РЕДАКТИРОВАТЬ:
Будет ли просто включать / ссылаться на один файл .ts на другой?
Например, в /languages/php/common/php.ts
включают: /languages/html/common/html.ts
включают: /languages/css/common/css.ts
включают: ...

Хотя может быть некоторое совпадение с именами тегов / атрибутов / функций, в данный момент мне ничего не приходит в голову ... А для IntelliSense это не проблема, я думаю, поскольку у каждого будет другой значок, в таких случаях может быть испорчена только цветовая кодировка ... Я что-то еще упускаю?

Все 234 Комментарий

Звучит разумно. Поставщики IntelliSense HTML теги расположены здесь , это может быть просто вопрос подключения этого модуля к коду PHP. Также гарантирую, что они доступны только вне тегов <?php , если я помню, как правильно работает PHP.

@Tyriar вне тегов <?php что означает? Доступны ли они вне тегов <?php ?> в файлах PHP?

Снаружи <?php ?> - это HTML, внутри - PHP. Таким образом, автозаполнение HTML должно быть доступно только за пределами тегов <?php ?> .

@Tyriar Но теперь они недоступны вне тегов <?php ?> в .php файлах, возможно, они доступны только в файлах .html .

Пожалуйста, добавьте эту функцию быстро, я думаю, что это базовая функция, спасибо, ребята.

@osjn благодарит за помощь в расстановке приоритетов, комментируя. Еще лучший способ помочь нам - это запрос на слияние с реализацией.

Возможно, это только я, но я думаю, было бы здорово, если бы intellisense был доступен и внутри строк php.

Я тоже проголосовал за. Эта фича нужна, пожалуйста.

Эта функция понадобится почти каждому разработчику PHP, чтобы выбрать VSCode в качестве основного редактора.

Нам нужно исправить эту проблему, чтобы привлечь больше разработчиков.

Вчера я попытался столкнуться с этой проблемой головой, но, к сожалению, отсутствие навыков TypeScript мешает мне помочь вам в этом вопросе.

Мне нужно это!

Одна и та же. Просто +1000

Я не могу помочь, но еще +1000 от меня. HTML / CSS / JS в PHP распространен как смешанный файл. Я пробовал полную Visual Studio + VS.php - тоже не поддерживается. Я все время удивляюсь, почему это упускается из виду во всех инструментах разработки Microsoft, которые предположительно поддерживают PHP. Да, поддержка PHP есть, но она бесполезна, если у нас нет IntelliSense (дополнение кода и предложения кода) для HTML / CSS / JS.

То же самое касается блоков JS и встроенного CSS в HTML.
Если я определю в settings.json:
"files.associations": {"*.php": "html"},
... чем PHP IntelliSense (очевидно) не работает, и HTML срабатывает. Но встроенный CSS с использованием style=" ...something... "; не предлагает никаких свойств CSS при записи между кавычками атрибута стиля.
Аналогичным образом, если я запустил блок <script> , вы не получите IntelliSense для JS, тогда как открытие файла .js реагирует нормально.

Я поддерживаю предположение, что (если это проще):

  • <?php ... ?> должен запустить PHP IntelliSense
  • вне <?php ... ?> должен запустить HTML IntelliSense
    но и
  • внутри <style> ... </style> и style=" .... " должны запускать CSS IntelliSense
  • внутри <script ... > и <script> ... </script> должен запускаться JS IntelliSense

Кроме того, если возможно, следует рассмотреть предложение @TheColorRed , то есть если вы находитесь внутри
<?php ... ?> но пишут строку, например, $string="..." чем следует рассмотреть возможность включения HTML IntelliSense. Дело в том, что разработчики PHP часто используют что-то вроде:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. чтобы избежать создания блоков с открытием / закрытием тегов php постоянно, например:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

Также @egamma , хотя мы не хотим показаться неблагодарными или ленивыми, самодовольные комментарии тоже не очень помогают, если бы один из нас был достаточно компетентен и осведомлен, чтобы сам кодировать - я уверен, что мы это сделаем. К сожалению - я не: - / Но если я могу помочь другим способом, я был бы рад (не просто комментируя предложения, но тестируя или что-то еще).

Я надеюсь, что существует консенсус в отношении того, что эта функция должна существовать, и что текущая поддержка PHP без нее является лишь частичной поддержкой для большинства разработчиков PHP.

PS И снова, чтобы не звучать как критик - мне пока очень нравится VS Code, и я очень благодарен всем, кто внес и продолжает вносить свой вклад в этот замечательный проект!

РЕДАКТИРОВАТЬ:
Будет ли просто включать / ссылаться на один файл .ts на другой?
Например, в /languages/php/common/php.ts
включают: /languages/html/common/html.ts
включают: /languages/css/common/css.ts
включают: ...

Хотя может быть некоторое совпадение с именами тегов / атрибутов / функций, в данный момент мне ничего не приходит в голову ... А для IntelliSense это не проблема, я думаю, поскольку у каждого будет другой значок, в таких случаях может быть испорчена только цветовая кодировка ... Я что-то еще упускаю?

если это не добавляется, мне нужно переключить редактор, сейчас я использую 2 редактора ...

Пожалуйста, как я могу отключить HTML IntelliSense, когда я работаю с PHP?

Этот вариант - кошмар, потому что я не могу использовать табуляцию в переменной, потому что автоматически создаю тег XML / HTML.

Я не смешиваю свой PHP-код с HTML, и я никогда не сделаю эту ошибку, пожалуйста, по крайней мере, добавьте возможность деактивировать ее в «режиме» PHP.

Для PHP вы должны попробовать кран intellisense https://marketplace.visualstudio.com/items?itemName=HvyIndustries.crane

@TheColorRed Crane Intellisense имеет проблему. Это, безусловно, самое популярное расширение VS Code PHP, поэтому я думаю, что это то, с чем большинство людей сообщают о своей проблеме.

То же самое и здесь, нам нужно автозаполнение для CSS / JS в HTML. В противном случае переход в Монако нереальный вариант :-)

Я только что пробовал vscode, но из-за отсутствия этой функции я просто не могу использовать эту IDE. Предоставьте эту функцию, поскольку она обязательна для каждой IDE.
Заранее благодарю.

Это очень нужно. Невероятно раздражает отсутствие надлежащего intellisense при помещении кода php в файл html или при помещении html в файл php.

Мне не хватает одной большой функции, которая мешает мне и коллегам использовать vsCode в качестве основного редактора.

Для меня это убийство без этой очень распространенной функции. Позор, однако ... Я ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО люблю эту IDE. Если это добавят, я буду очень счастлив.

@egamma Я сразу же отправлю PR после того, как потрачу ненужное количество времени, пытаясь найти код, который нужно изменить, потому что вы решили быть пассивно-агрессивным и саркастичным вместо того, чтобы предлагать хоть малейшее направление тем, кто мог бы помогать.

@TechnikEmpire, пожалуйста, не зачитывайте слишком много комментариев, которые я сделал в декабре 2015 года, когда мы восстанавливались после большого ноябрьского выпуска VS Code. Приносим извинения, если этот комментарий прозвучал как саркастический.

В отношении Intellisense для PHP наблюдается некоторый прогресс. Если вы хотите внести свой вклад, я предлагаю изучить возможность участия в проекте php-language-server , над которым работает php-debugger . Это связанные репозитории:

Более подробную информацию о подходе языкового сервера и протоколе языкового сервера можно найти здесь.

@egamma Но есть ли способ, которым языковой сервер PHP может «делегировать» языковой сервер VS Code HTML? Похоже, https://github.com/Microsoft/vscode/issues/1751 покроет это

@felixfbecker Теперь, когда мы извлекли языковой сервер HTML, первый сценарий, который мы хотим исследовать, - это интеграция его с языковым сервером CSS, чтобы мы могли предоставить Intellisense в разделах CSS. Это соответствует первому сценарию, который вы упомянули в # 1751 и который также был запрошен в # 8928.

Эта работа не дошла до сентября, теперь она запланирована на октябрь.

Благодаря! Поддержка CSS внутри HTML запланирована на октябрь, а как насчет поддержки JS или <script> ?

@egamma есть какие-то изменения или улучшения? Прошла середина октября, поэтому просто захотелось перепроверить. до сих пор, спустя 5 месяцев, я все еще не использую VS Code в качестве основного редактора из-за проблемы, и я уверен, что существуют сотни молчаливых душ. Я рад, что есть некоторая работа по смешиванию HTML / CSS, но нам действительно нужна полная поддержка HTML + CSS + JS + PHP ...

@luxzg Прогресс HTML + CSS по октябрьскому плану, HTML + CSS + JS - натяжка. Следите за нашим прогрессом здесь: https://github.com/Microsoft/vscode/projects/2

Мне также очень помогают инлайнеры powershell в каких-то файлах DevOps, редактирующие эту функцию. Может быть, у кого-то есть расширение, которое автоматически меняет синтаксис, когда курсор находится в каком-то блоке кода?

FWIW плагин "HTML Snippets" на всех сторонах PHP Intellisense у меня хорошо работает.

@matthewringer плагин у меня не работает

Это тоже проблема для меня ... по этому поводу еще нет никаких движений?

Будем надеяться, что это скоро будет добавлено. Без этого я сомневаюсь, что любой разработчик php будет его использовать.

Возвышенное мне не терпится вернуться назад (TM). VSCode, если вы любите меня, спасите мою душу и добавьте поддержку HTML, CSS и JS, пожалуйста.

Прошло больше года, а поддержки по-прежнему нет? В самом деле? ... и тут я подумал, что MS, наконец, сделала продукт, который не был мусором.

Это единственная особенность, которая для меня делает PHPStorm намного лучше, чем все, что я пробовал. Если они наконец смогут реализовать надлежащую поддержку intellisense / подсветки синтаксиса для PHP с помощью HTML, CSS, Javascript, то у нас, наконец, может быть действительно хороший легкий редактор PHP.

Это способ раздражать прямо сейчас - печатать в HTML, CSS или Javascript и везде получать завершение PHP. С таким же успехом вы можете использовать другой редактор без автозаполнения.

Не может быть так сложно просто классифицировать файлы .php как HTML, а затем анализировать только то, что находится внутри тегов <?php ?> как код PHP, не так ли?

+1 от меня, пожалуйста, смешайте их :)

Я только начал использовать VScode, когда изучал программирование, и это супер - мне нравится скорость, полировка и удобство использования - волшебные вещи. Только сегодня понял, что он не собирает HTML в файлах PHP (как внутри, так и без тегов PHP), что затрудняет сопоставление тегов HTML. Мне нужно переключиться на другой редактор, который не идеален.

Извините, я недостаточно опытен, чтобы попытаться удаленно добавить это / исправить это сам, но был бы очень признателен, если бы кто-нибудь в Microsoft мог добавить это. Я обычно встраиваю код HTML, Javascript, CSS и SQL в свои файлы PHP. Было бы здорово, если бы все это можно было обнаружить, как в других редакторах, хотя я уверен, что добавить эту функциональность нетривиально. Очень не хотелось бы оставлять VScode целиком, так как это делает процесс обучения приятным.

@egamma @aeschli это лежало довольно долго - вы упомянули, что хотите решить эту проблему с помощью языковых серверов HTML и CSS, это закончено? Я думаю, что это сводится к способности языкового сервера определять определенные диапазоны в документе, где все языковые функции должны обрабатываться другим языковым сервером. Таким образом, PHP LS может после синтаксического анализа документа объявить, какие диапазоны являются HTML, HTML LS может объявить, какие части являются JS или CSS, TS / JS LS может объявить, какие части являются SQL или GraphQL.

@felixfbecker да, эта поддержка доступна уже через несколько этапов, пожалуйста, см.

image

Сервер языка html можно найти здесь https://github.com/Microsoft/vscode-html-languageservice.

Подход был воспроизведен для поддержки языка vue https://github.com/octref/vetur

// fyi @aeschli

@egamma Так как же он

оставив это здесь

@felixfbecker В настоящее время у нас нет другой документации, кроме кода, извините. Я предлагаю вам связаться с @aeschli для более глубокого погружения, когда вы хотите начать добавлять эту поддержку для php.

@felixfbecker

Кажется, пока нет универсального способа внедрения языка, но реализация расширения html довольно проста.

Я думаю, что теперь это удачный компромисс: VSCode предлагает пакеты LS для html / css, чтобы облегчить реализацию поддержки встроенных языков. Между тем он сохраняет гибкость, поэтому каждый LS может реагировать по-разному в зависимости от контекста.

По контексту я имею в виду, что расширение html может загружать jquery.d.ts, когда включен тег script с jquery (не применяется к vue), или расширение vue отмечает каждый файл .vue как компонент для разрешения модуля (не применить к html).

Чтобы процитировать @aeschli : https://github.com/Microsoft/vscode/issues/12354#issuecomment -257242426

Есть некоторые ошибки, которые хотят, чтобы мы предложили общее решение для встроенного контента, но я думаю, что нам это не удастся. Есть тонкие различия в каждом случае, когда мы думаем, что лучше иметь конкретную реализацию каждого хост-языка для лучшего взаимодействия с пользователем.

Но я согласен, что документа для реализации поддержки встроенного языка не хватает. Думаю, я напишу кое-что, как только завершу все основные функции моего расширения vue.

Это очень прискорбно. Разве мы не можем добавить эту возможность в LSP? Языковой сервер - это то, что анализирует документы в AST, поэтому только языковой сервер знает, какая часть документа написана на другом языке и должна быть передана. Итак, теперь расширение _также_ должно анализировать документ? В большинстве случаев это даже невозможно, потому что синтаксический анализатор зависит от среды выполнения, отличной от Node (PHP, Java, ...).

Я не думаю, что добавить это в LSP было бы так сложно, например, сервер мог бы просто отправить уведомление для URI с массивом диапазона + языковой режим. Чем любой редактор (не только VS Code) может использовать другой языковой сервер для этого диапазона.

@egamma Я не смог найти в репозитории код, который передает язык, не могли бы вы дать более конкретный указатель? Извините, если я это не заметил.

@felixfbecker Эрих имел в виду: встраивание различных языковых сервисов выполняется внутри _сервера_.
Вы можете увидеть это, например, в зависимостях сервера html.
Таким образом, сервер является автономным и имеет полный контроль над настройкой контекста встроенного языка (библиотеки JavaScript доступны во встроенном содержимом, версия языка (ES5, ES6 ..)).

Вот где решение, которое вы описываете (связь между языковыми серверами), начинает вызывать проблемы. Это, вероятно, приводит к специфическим для языкового сервера API и зависимостям между серверами.
Мы хотели бы, чтобы связь была низкой, а языковые расширения были заменяемыми.

Тем не менее, каждый языковой сервер волен выбирать свой подход. Для этого вы можете использовать пользовательские LS-сообщения. Так мы реализовали это в ноябрьском выпуске. Сервер отправляет запрос обратно клиенту, клиент запрашивает другие расширения на основе виртуальных документов, которые просто содержат содержимое встроенного языка.

Предлагаю продолжить обсуждение - это отдельный вопрос. Может быть, подать новую проблему с предложениями по расширению LSP?

И здесь тоже. Пока нравится VS Code, однако отсутствие конкуренции тегов HTML внутри PHP является серьезным нарушением. Временно я перехожу в режим языка HTML для файлов PHP, но не знаю, как это сработает в итоге.

Я влюбился в VSCode, пока не обнаружил, что ему не хватает этой довольно простой функции. На данный момент вернулся к возвышенному.

Эта особенность удерживает меня от перехода на VSCode.

Это крайне необходимая функция. +99999

Такая основная функция, которая есть во всех других редакторах: |

Отписаться

Есть новости о том, когда мы можем этого ожидать?

На мой взгляд, это было бы напрямую связано с № 765.

: +1: Хороший редактор и в нем нет такой простой функции :(

Я предполагаю, что если это не было закрыто полностью, то однажды это будет исправлено. Я очень на это надеюсь - чем раньше, тем лучше.

ЕДИНСТВЕННОЕ, что удерживает меня от перехода на VSCode с Atom, - это отсутствие этой важной функции :(

Так может ли кто-нибудь предложить какие-либо альтернативные редакторы для полнофункционального веб-PHP / HTML / JS? Мне действительно нравится VSCode, но это отсутствие функции для меня просто блокиратор. PHPStorm или WebStorm хорош?

Как сопровождающий PHP IntelliSense, этот поток - кошмар для подписки. Если вы хотите +1 к проблеме, поднимите палец вверх. Все эти комментарии +1 просто загромождают цепочку и спам-сопровождающих уведомлениями, не добавляя никакой ценности обсуждению. И всем, кто говорит «это такая простая функция»: на самом деле это не так. Но если вы так считаете, смело делайте пиар.

@felixfbecker, я думаю, это подчеркивает, насколько люди разочарованы этой проблемой. Это не столько простая функция; Я согласен с тем, что его сложно реализовать, но более того, люди привыкли ожидать такой функции с текстовым редактором, и, как и я, влюбившись в VScode, весьма шокированы ее отсутствием.

Речь идет об отсутствии дорожной карты по такому важному вопросу. Простая или нет, это функция, необходимая для среды разработки в 2017 году. Сверхпростое исправление позволит нам помечать разделы комментариями или другим ключевым словом, чтобы указать, какой интеллект мы хотим. Дело в блоках кода GitHub, заключить часть текста в теги.

Хотя немного раздражает все это нытье, и я был одним из них
вмешивайтесь в этот вопрос, важно это услышать.

Неважно, есть ли что-то с открытым исходным кодом, вы все равно занимаетесь
доставляя продукт потребителям, и когда это отстой, люди собираются
жаловаться. Когда мой автомобильный дилер добавляет бесплатную стирку с моим ежегодным обслуживанием
и мойщик минимальной заработной платы оставляет полосы на моей машине, я иду
жаловаться.

Бесплатно или нет, со стороны пользователя есть вложения в изменение своих
рабочий процесс с новым редактором. Люди делают это только для того, чтобы узнать, что
они зря теряли время и с таким же успехом могли использовать блокнот. Люди могут
отказаться от подписки, если они не хотят слышать отрицательный отзыв, но это
Важно, что Microsoft слышит эти жалобы. В конце концов, они
вложили значительные средства в производство этого продукта и какие они
возвращаясь за свои деньги? Люди, у которых есть еще одна причина проклинать свои
компании и не использовать продукт, за который они заплатили.

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

В среду, 29 марта 2017 г., в 9:37 Стивен Экелс [email protected]
написал:

Речь идет об отсутствии дорожной карты по такому важному вопросу. Просто или нет
это функция, необходимая для среды разработки в 2017 году. Супер простое исправление
позволит нам пометить разделы комментариями или другим ключевым словом, чтобы указать
какой интеллект мы хотим. Дело в блоках кода GitHub, оберните раздел
текст в тегах.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
.

>

Джесси Николсон

Ответом на всю эту проблему для меня был NETBEANS для PHP

ПРЕКРАСНАЯ ИДЕЯ, КОТОРАЯ Я НЕ МЕНЯЮ ДОЛГО ВРЕМЯ.

@ madruga88 Netbeans - это даже не самое лучшее. Я считаю, что PHPStorm в настоящее время является лучшим редактором PHP. Я считаю, что Jetbrains взяла всю интеллектуальную помощь при кодировании от Microsoft и сделала ее намного лучше.

Когда я впервые начал использовать VSCode, единственная IDE, о которой он мне напомнил, была от IntelliJ Products из-за того, как молниеносно выполнялись завершения. Фактически, и VSCode, и PHPStorm имеют очень похожее ощущение из коробки с точки зрения общих функций редактирования. Единственное место, где VSCode терпит неудачу (и я имею в виду, действительно тяжело) - это PHP со встроенным HTML (который должен был работать с самого начала).

Если бы VSCode наконец получил встроенный HTML для работы с PHP, он легко стал бы лучшим текстовым редактором (не IDE) для PHP.

В настоящее время я придерживаюсь использования Sublime Text, потому что он, по крайней мере, знает, использую ли я HTML, CSS, Javascript или PHP в одном файле, и, по крайней мере, дает правильное завершение.

Забавно то, что Sublime text обрабатывает его как обычный HTML-файл с помощью файла PHP. Может ли VSCode также не добавить поддержку PHP в синтаксис HTML? Нет необходимости иметь для этого два разных синтаксиса?

@ drone540 плохая загрузка и использование (даже кодирование медленное) производительность phpstorm заставила меня выбрать netbeans ... которые имеют все инструменты линтинга и хинтинга, форматирование и отладка идеально из коробки.

Я использовал визуальную студию в течение десяти лет ... и могу сказать, что netbeans - это визуальная студия PHP из-за полноты функций и хорошей производительности.

Я согласен с вами, что единственное, чего не хватает в vscode, - это форматирование синтаксиса html + php.

но даже если бы PHPSTORM был бесплатным ... я бы выбрал netbeans ... из-за его производительности.

Серьезно это не исправлено с 2015 года? Вернуться к возвышенному

Я постоянно проверяю, устранена ли эта проблема, но нет движения. Не переключитесь на VSCode, пока он не станет доступен, независимо от того, сколько у него других замечательных функций. Это очень нужно.

Я постоянно проверяю, устранена ли эта проблема, но нет движения. Не переключитесь на VSCode, пока он не станет доступен, независимо от того, сколько у него других замечательных функций. Это очень нужно.

Какую среду IDE вы используете сейчас?

@icenold У меня довольно изящный рабочий процесс с

К сожалению, хотя мне нравится Visual Studio Code, мне приходится переключаться на Sublime из-за этой проблемы.

Все еще открыт? всем нужна эта функция!

Пожалуйста, внедрите эту функцию. Я много слышал о VS от друзей-разработчиков. Я собирался переключиться с возвышенного этим утром, но я действительно не могу пройти без этой функции.

Ребята, потерпите.

@markpanado Исходная дата билета: «25 ноября 2015 г.»

Пока мы ждем, есть ли способ установить синтаксис HTML по умолчанию для файлов PHP, поскольку я обычно пишу гораздо больше HTML на PHP, чем на PHP. В панели пользовательских настроек нет ничего очевидного.

Благодаря!

@ matt3224 щелкните индикатор языка в нижнем левом углу строки состояния и в быстром выборе выберите «Настроить сопоставление файлов».

image

@egamma Отлично! благодаря

Фактически, php разработан для работы с HTML и использует тег html для прикрытия себя, как javascript / css в HTML. Другие языки так не работают. Поэтому поддержка HTML в файлах .php должна быть встроенной функцией.

Хотя мне нравятся расширения для VS Code, проблема, упомянутая здесь (учитывая, сколько времени существует эта ветка), является нарушением сделки. Конечно, вы можете выполнить работу и без него, но он кажется медленным, достаточно медленным, вы можете просто вернуться в Блокнот и обойтись без каких-либо языковых инструментов.

Так не должно быть.

Привет, энтузиасты vscode php. Возможно, вас заинтересует версия Intelephense 0.7.0.

optimised

Есть несколько причуд в том, что вы должны быть в языковом режиме HTML, а цвет синтаксиса недоступен для php. Форматирование (вырезано из гифки) - это трехэтапный процесс: форматирование html -> переключение на php -> форматирование php.

Надеюсь, вы все хорошо разделяете свои представления и модели, и эти недостатки не являются большой проблемой.

@bmewburn потрясающе! Когда это будет доступно?

@popcorner теперь доступен

Я лично решил это, перейдя в File-> Exit и загрузив Netbeans
с надстройкой для веб-разработки. Superior. Vs code - достойный идеал машинописного текста и не очень
еще. Когда вы перестанете ожидать от него большего, вы перестанете разочаровываться.

В субботу, 24 июня 2017 г., в 17:02 Бен Мьюберн [email protected]
написал:

@popcorner https://github.com/popcorner теперь доступно

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
.

>

Джесси Николсон

@bmewburn Я попробовал Intellephense, но у него все еще есть некоторые вопиющие проблемы. PHP вводится внутри атрибутов тега HTML, например (id = "") теряется автозаполнение. Потеря форматирования темы PHP.

Для этого требуется одно и то же между HTML и PHP, и на это тратится слишком много времени.

На отдельной заметке, я начинаю задаваться вопросом, не является ли вся эта цепочка просто одним большим троллем. Как это может оставаться проблемой через 2 года? Каждый, кто хоть раз открывает похожую проблему, закрыл ее и обратился к этой. Однако за все это время не было сделано никаких успехов.

Я тоже перешел на Netbeans, выяснилось, что PHPStorm может отлично обрабатывать php html js в одном файле. Интеграция удаленной БД через SSH также удобна.

Итак, я провел некоторое тестирование как с Netbeans, так и с PHPStorm.

Похоже, Netbeans в этом неплохо справляется.

Netbeans
Он поддерживает:

  • HTML / CSS / JS в файле PHP внетеги
  • CSS в тегах HTML с атрибутами стиля.
  • Завершение правописания (не знаю, если полезно или нет, но оно есть)

Это не работает с:

  • Кажется, что завершение не знает, какой контент вы вводите, поэтому первое завершение может оказаться не тем, что вам нужно.
  • Нет поддержки HTML в строках PHP. На самом деле завершения здесь так же плохи, как VScode.

PHPStorm

  • Что ж, он работает практически в любом контексте, и работает действительно хорошо, и все завершения являются точными и точными, и вы действительно хотите.

Незначительные ошибки:

  • незначительная проблема, которая, кажется, закрывает автозаполнение при - ключ сс атрибутами стиля. Может быть повторно открыт с помощью ctrl + пробела или продолжения ввода атрибута css
  • активируется только в строках PHP, если присутствует тег HTML (что в любом случае является достаточно хорошей поддержкой)

PHPStorm определенно чувствует себя намного ближе к VSCode (когда он работает), чем Netbeans. Если вы хотите проверить, как на самом деле должно работать автозаполнение. Я бы порекомендовал протестировать его в PHPStorm. Также PHPStorm и VSCode имеют довольно много схожих функций редактирования из коробки. С точки зрения производительности, я думаю, что PHPStorm быстрее. Не было никаких задержек даже с автозаполнением. Netbeans заметил некоторое отставание с автозаполнением.

Не знаю, сколько времени пройдет, прежде чем VSCode на самом деле исправит эту проблему, но я верю, когда это наконец-то сработает. Он будет работать намного ближе к тому, как работает PHPStorm, и станет, по крайней мере, вторым лучшим редактором для автозаполнения PHP за всю историю.

Я недавно перешел на VSCode с SublimeText, только чтобы столкнуться с этой проблемой. Это довольно неприятная проблема, к тому же довольно простая. Из-за этого я должен вернуться к SublimeText. Пытался связать PHP с HTML, но это делает весь PHP-код белым, без подсветки синтаксиса. Ужасно!

Я думал, что через 10 лет у меня, наконец, будет одно программное обеспечение Microsoft, которое будет установлено на моем компьютере навсегда, но если они не могут решить простую проблему в течение 2 лет, оно снова отправится в корзину.

Написание HTML внутри документа PHP вызывает

screen shot 2017-07-28 at 1 32 51 pm

@ingageco Нет, это не так. Это предлагается расширением PHP Intellisense от @felixfbecker. Но он ничего не может сделать, потому что расширения не могут указывать специальные символы активации, поэтому он пока может этого не предлагать.

Я просто хочу знать одну вещь. Он в процессе (постепенно, шаги муравьев) или просто полностью отложен в сторону?

@bsienn О чем? Расширение php intellisense находится в стадии разработки, а команда разработчиков кода не хочет, чтобы это было изначально.

@ jens1o Спасибо за ответ. Итак, php intellisense extension , вы говорите о расширении Fleix Baker?
Итак, эта ветка избыточна? Теперь я смущен. Должен ли я следить за его репозиторием плагинов для прогресса?

Да, я говорю о расширении Феликса, и да, вы должны следить за его репозиторием, чтобы быть в курсе последних событий.

... так что 2 года спустя все еще нет решения для автозаполнения html в файле php? Мне очень нравится VS Code, я не хочу возвращаться к Sublime из-за этого :-(

Прямо сейчас нам просто нужно с этим справиться.

Или вы не знаете, потому что есть другие варианты. Сами по себе Git и отладка не заставят меня отступить в моем рабочем процессе. Никогда - когда есть варианты, которые могут быть не так хорошо реализованы, но в остальном адекватны. Этот вопрос следовало решить с самого начала.

Основная проблема в том, что мы не знаем, кто это предоставит. В идеале расширение PHP ( @felixfbecker ?). Я также открыт для добавления поддержки языкового сервера HTML.
Все возможности HTML также доступны в виде узлового модуля .

@aeschli Как указано выше и в некоторых других потоках, я не думаю, что требование к каждому языковому серверу встраивать языковые серверы для каждого возможного встроенного языка является правильным и надежным подходом. PHP обычно встраивает HTML и SQL. HTML обычно включает CSS и JS. JS снова обычно встраивает HTML. Авторы языковых серверов пошли бы в кроличью нору, поддерживая каждую вложенную комбинацию, и пользователь бы в конечном итоге получил языковые серверы, установленные несколько раз для одного и того же языка, но не могли бы больше контролировать, какой языковой сервер использовать для этих встроенных языков, ни их версию. Как вы сами сказали в https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369 (выделено мной):

Это, вероятно, приводит к специфическим для языкового сервера API и зависимостям между серверами.
Мы хотели бы, чтобы связь была низкой, а языковые расширения были заменяемыми .

Я полностью согласен с этим, и, с моей точки зрения, подход встраивания приводит именно к этому, а не к моему описанному решению:

  • Предоставьте языковым серверам возможность сообщать _клиенту_, какие диапазоны содержат встроенные языки. Например, языковой сервер PHP сообщает VS Code диапазоны встроенного HTML как встроенного HTML, языковой сервер HTML сообщает VS Code диапазоны тегов <style> как встроенные CSS, диапазоны тегов <script> как встроенный JS.
  • Клиент (VS Code) активирует языковые серверы, необходимые для встроенных языков, и отправляет им уведомления didOpen с виртуальным URI и содержимым встроенного диапазона.
  • Всякий раз, когда пользователь запрашивает автозаполнение внутри диапазона встроенного языка, отправьте этот запрос на языковой сервер для встроенного языка (позиции относительно начала встроенного диапазона)
  • Покажите результаты, при необходимости разрешив позиции относительно начала встроенного диапазона.

При таком подходе пользователь имеет полный контроль над тем, какие языковые серверы использовать (их можно заменить ), и отдельным серверам не нужно беспокоиться о встраивании других языковых серверов в качестве зависимостей . Это означает согласованный опыт использования встроенных языков и языков верхнего уровня и поддерживает SoC для каждого языкового сервера, чтобы заботиться только об одном языке.

Уведомление может выглядеть примерно так:

/** Parameters for textDocument/publishEmbeddedScripts, a notification sent from server to the client */
interface PublishEmbeddedScriptsParams extends TextDocumentIdentifier {
  /** All the embedded scripts for this text document */
  embeddedScripts: EmbeddedScript[]
}
interface EmbeddedScript {
  /** Ranges in the text document that form this continuous embedded script */
  ranges: Range[]
  /** The language ID for that script (as also used in MarkedString) */
  languageId: string
}

Пример:

Учитывая такой документ PHP:

<h1>Foo</h1>
<?php echo 'Hello' ?>
<p>Bar</p>

PHP langserver отправит VS Code

{
  embeddedScripts: [{
    languageId: 'html',
    ranges: [
      { start: { line: 0, column: 0 }, end: { line: 0, column: 11 }}
      { start: { line: 2, column: 0 }, end: { line: 2, column: 9 }}
    ]
  }]
}

что приведет к тому, что HTML-сервер langserver получит textDocument/didOpen от VS Code с URI вроде file:///foo.php#embedded1 и этим содержимым:

<h1>Foo</h1>
<p>Bar</p>

Рад обсудить это в отдельном выпуске, если хотите.

@aeschli Я думаю, что тот факт, что это продолжает скрываться как проблема языкового сервера, хотя эта проблема все еще не решена, говорит мне, что она, возможно, никогда не будет исправлена.

@felixfbecker Никто не говорит, что нужно обнаруживать каждый бит форматирования. Это было бы безумием, но было бы неплохо хотя бы минимум обнаружения PHP / HTML внутри друг друга. VSCode делает работу с PHP / HTML излишне сложной по сравнению с другими IDE.

@felixfbecker

Какие файлы нужно отредактировать на языковом сервере, чтобы это вступило в силу? Я посмотрел на языковой сервер HTML и не могу точно понять, что он делает со стилем и скриптом.

Похоже, что он пропускает токенизацию всего, что не HTML, в соответствии с этим файлом: https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/parser/htmlScanner.ts
https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/htmlLanguageService.ts

Но как CSS и Javascript знают, что делать? Я вообще не вижу, как они работают по этому файлу.

@aeschli, языковой сервер php и html уже может достаточно хорошо работать вместе, учитывая, что многие функции vscode позволяют регистрировать несколько провайдеров. Во многих случаях используется первый не ложный результат поставщика или в некоторых случаях используются несколько результатов. Пока каждый сервер игнорирует то, что он не понимает - за пределами <?php ?> для php, внутри для html - он работает. Вы можете увидеть это в действии здесь https://github.com/Microsoft/vscode / issues / 670 # issuecomment -310822851

Чтобы это работало более плавно.

  1. Разрешить несколько ассоциаций файлов идентификаторов языков, чтобы работал каждый языковой сервер.
   "files.associations": {
        "*.myphp": ["php", "html"]
    }  
  1. Используйте комбинированный файл грамматики php / html / css / js для выделения синтаксиса

Есть ли более полные решения для встраивания языков? Вероятно. И я согласен, что встраивание нескольких языков не должно входить в обязанности какого-либо конкретного сервера. Я не думаю, что ответственность за определение того, какой именно язык используется, даже должна лежать на сервере. Пользователь должен определять диапазон документов. Но помимо этого, я не думаю, что это так сложно заставить PHP и HTML работать вместе.

@bmewburn Если это не так сложно, почему мы ждем исправления через 2 года?
@felixfbecker говорит, что это не так просто. Но этот вопрос все еще открыт, поэтому, очевидно, можно было бы подумать, что он может быть приоритетным, но в каждом выпуске его игнорируют. Так что, пока кто-то не внесет изменения, я буду злиться и надеюсь, что это в конечном итоге будет исправлено. А пока я буду использовать то, что работает.

@felixfbecker Как я уже упоминал в своем комментарии , здесь нет требований, каждый языковой сервер может выбирать подход к работе со встроенным контентом: перенаправлять запросы на другие серверы или обрабатывать их самостоятельно. например, используя связанную библиотеку / службу. Все зависит от того, насколько тесно связаны встроенный контент и основной язык, а также от пользовательского опыта, который сервер хочет предоставить. Часто встроенный контент требует контекста из основного языка и должен соответствовать правилам экранирования. Это нелегко передать языковому серверу, который видит только виртуальный документ. Это было причиной того, что мы отказались от этого подхода в HTML-сервере.
Но если это выполнимый подход для PHP, и языковой сервер PHP хочет, чтобы HTML-сервер обрабатывал запросы для заданных диапазонов, давайте сделаем это, все API для него есть, все это можно сделать на клиенте и с помощью настраиваемого протокола LS .
Если я могу чем-то помочь с html-сервером или сервисом, дайте мне знать.

Правила экранирования

Но если это выполнимый подход для PHP, и языковой сервер PHP хочет, чтобы HTML-сервер обрабатывал запросы для заданных диапазонов, давайте сделаем это, все API для него есть, все это можно сделать на клиенте и с помощью настраиваемого протокола LS .

Языковой сервер PHP используется множеством других клиентов, помимо VS Code, sublime, neovim, atom-ide-php, Eclipse Che и т. Д. Как мы можем создать решение, которое (в конечном итоге) будет работать во всех этих клиентов (как это и есть суть LSP), в то же время избегая связывания определенных langservers HTML (и CSS, JS ...) с конкретными требованиями времени выполнения (например, PHP-разработчик neovim установил PHP, но не обязательно NodeJS), поэтому пользователь может решить, какой языковой сервер использовать для встроенных языков? Я был бы очень рад, если бы мы смогли осуществить это универсальным для всех языков способом, поскольку это был бы очень сильный аргумент в пользу LSP.

@aeschli @felixfbecker Значит ли это, что вы оба собираетесь решить эту проблему? Это было бы потрясающе.

Это функция, которая действительно нужна почти каждому программисту PHP. Поэтому, пожалуйста, не игнорируйте это просто потому, что мы не можем сделать это _ правильным_ способом.
Даже если есть нелогичное или уродливое решение, его все равно можно использовать временно, а не откладывать и ничего не делать.

Если мы скованы наручниками, потому что мы хотим быть максимально совместимыми с расширениями, изначально написанными для другого старого редактора, то, возможно, нам стоит подумать о написании нового стандарта кросс-редактора, который превосходит то, что у нас есть сегодня. Не то чтобы Microsoft раньше не выходила за свои границы и работала с другими группами над созданием стандартной языковой модели сервера, используемой как в этом, так и в других редакторах. Нам просто нужно сделать то же самое еще раз в отношении того, как обрабатываются смешанные языковые сценарии.

Очевидно, что из-за этой проблемы блокируются расширения для разных языков, такие как

@wholroyd согласился, я рассказывал людям об этой IDE, как будто это была лучшая вещь со времен нарезки хлеба, и теперь я активно отговариваю людей от нее. Сожалею, что интегрировал его в один из своих проектов.

@aeschli, считаете ли вы следующее на сервере языка html?

  1. Дополнительный languageId для прослушивания phtml . Это предоставит общий идентификатор, который могут прослушивать расширения php и html, и комбинированную грамматику textmate.
  2. При необходимости внесите изменения в сканер сервера языка html, чтобы использовать все в пределах <\?(php|=)?> , \?> как один самозакрывающийся тег.

Следующие провайдеры из отдельных расширений php и html будут хорошо работать вместе без какого-либо встраивания на сервер или взлома клиента.

  • код линзы
  • действие кода
  • завершение
  • определение
  • выделить
  • ссылка
  • символ документа
  • парить
  • реализация
  • Справка
  • подпись
  • символ рабочей области

Чтобы форматирование и переименование работало, потребуются некоторые хаки, и пользователям потребуется называть файлы просмотра с другим расширением и связывать их с phtml, а не с php. Но я думаю, что это было бы неплохое начало с минимальными усилиями и риском.

@bmewburn Да, звучит хорошо, я могу это сделать. В чем идея языка phtml? Будете ли вы использовать его для программной пересылки запросов?

@aeschli без пересылки запросов, идея состоит в том, чтобы позволить html-серверу регистрировать поставщиков для phtml и иметь также php-сервер для регистрации поставщиков для phtml, а vscode обрабатывать отдельные ответы.

Все вышеперечисленные поставщики либо объединяют ответы, либо используют первый не ложный ответ. Итак, пока отдельные серверы html и php не пытаются вернуть результат для диапазона, который они не понимают, все должно работать. Идентификатор phtml - это что-то общее для обоих языковых серверов, возможно, лучше было бы просто иметь несколько языковых ассоциаций файлов, но это может быть гораздо сложнее? Кроме того, я полагаю, что разделение php и phtml позволяет избежать отправки запросов на html-сервер только для файлов php.

"files.associations": {
        "*.php": ["php", "html"]
    }

На данный момент я регистрирую свое расширение php с помощью селекторов html и php doc, но я опасаюсь переопределить конфигурацию языка html в этой настройке.

Связь файлов может быть назначена только идентификатору одного языка. Но языковые серверы могут бесплатно обслуживать документы на любом языке, который они хотят.
Возможность 1: HTML также регистрируется для php , участвует во всех запросах, но будет возвращать результаты только за пределами <?php .../?>
Возможность 2: только языковой сервер PHP регистрируется для php и пересылает все запросы <?php .../?> на все языковые серверы, зарегистрированные для языка phtml .

Значит, переадресацию можно выполнить только с помощью commands.executeCommand ?

@bmewburn Я создал # 36396. Давайте перейдем к этому пункту.
Да, с помощью `commands.executeCommand ', как здесь

Любые обновления, касающиеся html intellisense для php

Привет, ребята, есть ли способ смешать кодирование php и html? Подсветка html не работает правильно в документе php :-(

835b4a9809

Похоже, что почти через 2 года все еще нет правильного решения?

этот вопрос решить пока?

Нет, все еще невозможно. К сожалению, из-за этой проблемы я был вынужден вернуться на ST3. Я надеюсь, что однажды они это исправят, и я смогу вернуться.

@bmewburn Фантастическая работа. Это было нужно так давно. Большое спасибо. Теперь нет причин не переходить на VSCode

@ kilevvri1 поделитесь, пожалуйста, своими настройками. Для меня не работает ..

@ expo87 Я использовал стандартные настройки PHP Intelephense по умолчанию.
"php.suggest.basic": ложь
Других настроек пока не использую.

Облом. Я только что настроил среду VSCode и подготовил все свои плагины. Затем я столкнулся с этим и все еще не исправил.
Жалко, потому что мне действительно начал нравиться VSCode, но теперь я должен вернуться к Sublime Text.

@DannyMexen Попробуйте расширение PHP Intelephense

@ kilevvri1 это расширение требует установки PHP. Мне не нужно устанавливать PHP в систему! Почему я должен это делать? Просто для того, чтобы увидеть нормальный смешанный синтаксис php и другой язык? Почему эта опция не работает из коробки ?! Установочный файл Sublime Text 8,5 Мб - смешанная подсветка работает нормально. Установочный файл CodeLite 50 Мб - смешанная подсветка работает нормально. И не нужно устанавливать PHP!

Я согласен с @ expo87, что эта функциональность должна появиться из коробки в VS Code. PHP Intelliphense уже является шагом вперед и делает возможным автоматическое завершение, однако я вообще не могу выделить подсветку синтаксиса html.

@ kilevvri1 ,

Однако я все еще не могу отформатировать HTML в файле .php. Я также согласен, что такая функциональность должна быть из коробки.

Все остальное в порядке, но только одна вещь портит мой опыт. Очень важно, чтобы мой код был хорошо отформатирован в соответствии с политикой компании. Надеюсь на будущее.

Это громоздко, но для больших файлов я переименовываю файлы в .html, форматирую, а затем переименовываю обратно в .php (поверьте, я пробовал все уловки, но безуспешно).

Мне нравится VSCode, и я дам ему неделю. Если моя работа значительно замедлится, я вернусь к ST 3.

Для тех из вас, кто жалуется на установку PHP для работы расширения, серьезно ли у вас установлен PHP на вашем локальном компьютере? Вы серьезно тратите время, помещая код на свой сервер перед его тестированием, и делаете это снова и снова?

PHP должен быть установлен локально, это кажется само собой разумеющимся. Если ваше приложение не запускается локально, вам нужно решить некоторые проблемы с разработкой.

@TheColorRed мне не нужно просматривать результат моего кода локально, а затем загружать файл на сервер. Использование WinSCP и ST - легкая и быстрая скорость моей работы. И, конечно, я знаю, что делаю :-)

@TheColorRed вы нашли в Интернете человека, который был неправ и пассивно-агрессивно высказывался о ценности времени.

image

Хотя мы все хотели бы, чтобы это было прямо из коробки, на самом деле это не так. Команда VSCode либо считает это не проблемой, либо очень низким приоритетом. @bmewburn создал расширение PHP Intelephense, которым я доволен, по сравнению с альтернативой.

@ expo87 Не нужно объяснять свой рабочий процесс. Все мы делаем что-то по-разному.

из-за этого
Я использую smarty, поэтому я могу переместить весь HTML в файл tpl, а не внутри кода php -_-
и сделай мой код чище

@DannyMexen У меня нет проблем с форматированием HTML внутри файлов PHP. Я отключаю форматирование PHP Intelephense "intelephense.formatProvider.enable": false в settings.json

Все, что я действительно хочу, это чтобы > не запускал предложение автозаполнения (и заставлял меня прекратить то, что я делаю, чтобы отклонить его). Это раздражает, когда вы закрываете HTML-элемент и хотите перейти к следующей строке, но если вы «случайно» нажмете клавишу ввода, вы получите мусор, который вам придется затем удалить вместо новой строки. Похоже, что ни одно из приведенных выше предложений не решает эту конкретную проблему.

Все, что для этого нужно, - это https://github.com/Microsoft/language-server-protocol/issues/138.
@jrieken, не могли бы вы прокомментировать, будет ли предложенное вами промежуточное решение в ближайшее время?

Мы могли бы реализовать многосимвольные триггеры, но это не так тривиально, как кажется. До этого момента расширение должно использовать последний символ в потенциальной последовательности символов триггера.

@ kilevvri1 нет кубиков. Я слежу за вашими постами, но безрезультатно. Могу я увидеть все ваши настройки, пожалуйста? Возможно, список установленных вами расширений, если это не проблема.

Самое близкое, что я получил, - это изменить ассоциацию файлов и возиться с украшением, но даже это не помогло.
В любом случае, спасибо всем. Не похоже, что на этот вопрос есть однозначный ответ.

После нескольких часов попыток я не могу заставить эту штуку работать. Даже плагин "PHP Intelephense" не работал у меня, как предлагал @bmewburn . Введите «php» и нажмите вкладку, он расширится до этого: http://s.zeshanahmed.com/a_1FC81B2B.png

Это самая основная функция при использовании HTML с PHP. По крайней мере, как разработчик тем WordPress.

Я могу вернуться и снова проверить VS Code, но пока вернусь к Sublime. Мне сначала понравилось, насколько мощным VS Code казался мне, но эти небольшие проблемы (или отсутствие функций) заставят многих разработчиков PHP / WP держаться от него подальше.

ааа и я с @zeshanshani и @DannyMexen - если я не могу писать html внутри моих файлов PHP, то этот редактор прямо сейчас.

Блин. Мне он так понравился, но эта (казалось бы, простая) вещь сделала его бесполезным для меня.

Возможно, я здесь немного ошибся, это не совсем то, о чем я имел в виду. В любом случае, как я уже упоминал, мне понравилось, насколько мощным выглядел VS Code, поэтому я продолжил поиск и нашел довольно простое решение проблемы.

Проблема, с которой я столкнулся, заключалась в том, что когда вы находитесь за пределами блоков <?php ?> и пытаетесь открыть блоки PHP с помощью ярлыка, это не работает.

Поэтому я создал собственные фрагменты HTML для расширения блоков PHP. На данный момент я создал эти 3 фрагмента:

  • php - раскрыть в <?php ?>
  • if - открыть IF условный.
  • foreach - открыть цикл FOREACH.

Вот код фрагментов, если кто-то его ищет:

https://gist.github.com/zeshanshani/ccbfe8c0177a2513f0a92d0747349f50

И вот результат:

PHP Expand in HTML

Единственная проблема здесь заключается в том, что он также расширяет фрагменты в файлах .html отличие от Sublime Text, где вы можете определить область действия, чтобы конкретный фрагмент расширялся, только если это PHP: http://s.zeshanahmed.com/a_1FCD4A29.png

Кстати, кто-нибудь пробовал включить настройку emmet.triggerExpansionOnTab ? Он позволяет расширять emmet HTML при поддержке вкладок внутри строк PHP.

Чтобы сделать эту настройку, перейдите в настройки пользователя и добавьте эту строку:

"emmet.triggerExpansionOnTab": true

Скриншот: http://s.zeshanahmed.com/a_1FD14980.png

Вот результат:

HTML Expand in PHP Strings

Я нашел работоспособное решение для себя (и, возможно, других людей).

Я установил расширение «_Auto Close Tag_» Джун Хана. Затем в своих настройках я добавил это:

"php.suggest.basic": false,
"auto-close-tag.SublimeText3Mode": true,

Теперь, находясь в файле .php и вне тегов <?php ?> я не получаю $_cookie после того, как закончу набирать тег html, и когда я набираю </ он автоматически завершает соответствующий закрывающий тег.

надеюсь, это поможет кому-то еще, у кого была такая же проблема, как у меня.

@Chenzo использует ли код вашего обходного формата? Если вы нажмете Ctrl + Shift + I , форматируются ли / с отступом соответственно PHP и HTML-код?

@DannyMexen хммм ... нет. Альтон, это родная вещь для VScode? Кажется, даже мой плагин beautify не знает, что делать с HTML в файле .PHP.

@ Чензо, понятно. Да, здесь то же самое. Это единственная функция, с которой мне нужно работать, чтобы использовать VSC в качестве своего эксклюзивного текстового редактора.

@zeshanshani @DannyMexen
если PHP Intelliphense не может работать
попробуйте переустановить vscode и PHP Intelliphense
или же
попробуйте использовать everedit , это хороший редактор, но не IDE, а только windows

Спасибо за предложение @iscraft, но я использую Linux и использую ST 3 для всех своих проектов PHP.

Итак, если я правильно следую этому, проблемы с блокировкой решаются в LSP (ура!), А также решаются на Felix Language Server (ура!), Но это еще не решено в VS Code Insiders.

Меньшая проблема, связанная с вездесущим автозаполнением <?php присутствует в VS Code Insiders с активным плагином Intellesense Феликса, так что я предполагаю, что он тоже чего-то ждет в VS Code?

https://github.com/felixfbecker/vscode-php-intellisense/issues/205#issuecomment -347794655

Я думаю, он пропустит Insiders Edition и превратится в 1.19?

В settings.json добавление следующего свойства работает нормально.

"files.associations": {"*.php": "html, php"},

Что ж, я думаю, это все-таки неправда. Вернуться к возвышенному тексту?

files.association была одной из вещей, которые я пробовал. У меня никогда не работал.
Официальный аккаунт в Твиттере только что сказал мне поднять эту проблему и, надеюсь,
однажды команда его реализует. Так странно не иметь
это из коробки. Буквально единственное, что мешает мне использовать VScode
как мой эксклюзивный редактор.
@Ken Newman - мое решение для всех проектов PHP.

14 декабря 2017 г., 22:31, Кен Ньюман [email protected]
написал:

Что ж, я думаю, это все-таки неправда. Вернуться к возвышенному тексту?

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
.

-
С Уважением,

Дэнни Мексен.

Возможно ли, что HTML теперь работает с языком / файлами PHP в версии 1.19? Только что протестировал, и я вижу, что он работает, даже без какого-либо расширения ...

@jsieler в 1.19 и 1.20 все еще не работает.

VSCode 1.19 не может автоматически заполнять html, атрибут в файле .php :( !!!!
Выпуск 2 год ...

HTML хорошо работает с файлами PHP с этим расширением. Этот вопрос, вероятно, можно будет закрыть.

phphtml

@bmewburn я тоже так думаю

Нет, лично я жду поддержки без необходимости внешних расширений.

Ключевая проблема касается и других языков.

Давайте проясним проблему, о которой некоторые из нас сообщают здесь.

А пока я буду говорить за себя.

Проблема НЕ в отказе автозаполнения HTML в файлах PHP, а в ФОРМАТИРОВАНИИ HTML-кода в файлах PHP в контексте функции VSCode «Форматировать документ». Это понятно?

Если по умолчанию используется сочетание клавиш Ctrl + Shift + I вы можете обнаружить, что только код PHP будет отформатирован в файле PHP, который также содержит код HTML. Код HTML вообще не отформатирован.

Эта функция, например, поставляется из коробки в ST 3.

Такие вещи, как автозаполнение, автоматическое закрытие тегов и т. Д., Работают нормально. Вставьте строку PHP, а затем строку HTML, попробуйте отформатировать документ, и только код PHP будет иметь правильный отступ.

Я надеюсь, что это проясняет ситуацию для некоторых здесь.

Кто здесь сталкивается с этой проблемой вместе со мной?

@bmewburn работает, только если вы выбираете языковой режим HTML для файлов php, но тогда у вас плохой стиль для части кода php :(

@ Perumal93

"files.associations": {"* .php": "html, php"},

Это вообще не работает! Он просто использует тот язык, который вы использовали последним (в данном случае php). Остальные полностью игнорируются.

@SharakPL какую версию VSCode ru используете?

@ kilevvri1 Я только что обновился с 1.19.1 до 1.19.2. Без изменений :(
Если я выберу PHP в качестве языка файлов, предложения HTML не будут работать.
Если я выберу HTML в качестве языка файла, тогда php-часть будет оформлена как простой текст, а вывод покажет много ошибок.

@SharakPL Есть ли у вас ссылка на телефонный путь в пользовательских настройках VSCode? Меня сейчас нет дома, но когда я вернусь, я помогу, потому что интеллект не идеален, но он творит чудеса, когда работает хорошо, поэтому я постараюсь помочь.

@SharakPL Я имел в виду ваш путь к PHP. Печатаю на телефоне, извини.

@ kilevvri1 да, у меня есть

"php.suggest.basic": правда,
"php.validate.enable": правда,
"php.validate.executablePath": "c: \\ wamp64 \\ bin \ php \ php5.6.25 \ php.exe",
"php.validate.run": "onType",

Это должно быть как в Sublime Text 3, где html-код всегда предлагается соответственно в режиме языка PHP.

@SharakPL
Согласно рекомендациям по расширению:
"php.suggest.basic": ложь

Попробуй и дай мне знать

@ kilevvri1 без изменений :(

О, теперь я понял! В файлах с форматированием PHP есть какой-то HTML intellisense, но он управляется с помощью предложений EMMET: https://docs.emmet.io/cheat-sheet/
Меня все время раздражало то, что я не могу добавить простую ссылку, набрав <a потому что не было предложено ни одного фрагмента. Я решил, что набираю только a показывает, что мне нужно, но, хотя у меня была ссылка, все атрибуты мне приходилось добавлять вручную буква за буквой. С помощью EMMET я могу просто набрать a#mylink.btn.btn-success чтобы получить <a href="" id="mylink" class="btn btn-success"></a> . Это круто, но для получения более точного html я должен использовать a#mylink.btn.btn-success[title="click me" target="_blank"] и эту новую часть снова нужно набирать буква за буквой. Было бы намного лучше стиль SublimeText:
html_is

Есть ли способ вручную добавить .php в список расширений файлов, в которых работает HTML intellisense? Это можно сделать в Eclipse.

@graddev кто-то предложил
"files.associations": {"*.php": "html, php"}
в пользовательских настройках, но у меня это не работает

когда они добавят эту возможность, кто знает?
был 2020 год, они еще этого не сделали ....

Автозаполнение HTML и CSS в файле PHP ... Как?

Нужно добавить эту функцию. Автозаполнение атрибутов для HTML-тегов вообще не работает.

Ребята, я использую крайне омерзительное решение, но оно (вроде как) работает. У меня есть клавиатура с макросами, поэтому я создал макросы для изменения языкового режима. Я нажимаю M1, если мне нужен HTML intellisense, и M2, если мне нужен PHP.

Пожалуйста, попробуйте расширение intelephense .

@aeschli Это НЕ решает ключевую проблему. Та же проблема возникает в расширении, которое я поддерживаю, в расширении Smarty. Очень досадно, что указанное расширение PHP не получает дальнейшей поддержки, и вы пытаетесь отвлечься, рекомендуя использовать другое расширение, которое использует дерьмовый обходной путь. Тем не менее, проблемы лежат глубже. Фактически, эта проблема должна быть решена в следующем спринте, и вам не следует считать, что она ложится в список невыполненных работ и преуменьшает значение проблемы. Где вы чувствуете интересы сообщества?

Извини, но я немного зол.

(На самом деле, я сказал то же самое 3 месяца назад .)

Есть очень много областей, над которыми команда VSCode может работать и обладать экспертными знаниями. К сожалению, мы не PHP-разработчики. Вот почему мы придумали API открытых расширений и рынок. Пожалуйста, поддержите нас, попробовав расширения, и помогите авторам оставить хорошие отзывы.
Я понимаю, что было бы здорово, если бы все расширения были встроены и поставлялись вместе с VSCode, но мы также хотим, чтобы загрузка была небольшой.

Мы работали с Беном, автором расширения intelephense для улучшения завершения HTML в PHP. Я считаю, что выбранный подход - правильный. Только PHP в качестве «основного» языка полностью понимает встроенный HTML-контент (например, как он кодируется, как разрешаются переменные PHP), чтобы обеспечить хорошее взаимодействие с пользователем. По моему опыту, другие общие решения решают только часть проблемы, и в итоге мы получаем сотни открытых проблем для тех случаев, которые они не могут решить.

@ jens1o Мне жаль, что вы расстроены и что в ближайшем будущем в этой области ничего не запланировано. Пожалуйста, помогите нам, поддержав нашу экосистему расширений, или дайте шанс интеллекту (а также другим расширениям PHP).

Хорошо, я глубоко вздохнул и успокоился. Итак, давайте переместим фокус на мое расширение: должен ли я сохранить ветвь языкового сервера HTML, чтобы у моих пользователей было завершение HTML? Это ключевая проблема, о которой я тоже говорю. Я думаю, что другие языки пострадали еще сильнее. Проблема в том, что Smarty настолько гибок, что его можно использовать почти для любого языка (например, csv, json), для чего угодно. Потому что это система шаблонов, не привязанная к каким-либо языковым ограничениям. Итак, мне нужно сохранить вилку языкового сервера csv (которого не существует), XML, JSON ... Интересно, сколько языков позволяют технические ресурсы?

дать шанс интеллекту (а также другим расширениям PHP).

Я собираюсь придерживаться php-intellisense от @felixfbecker , потому что мне нравится кодовая база, даже несмотря на то, что у меня нет HTML intellisense (поэтому я горю над этой проблемой), и это официальное рекомендованное расширение (пока я использовал его задолго до этого). Мне нравится концепция языковых серверов, и я думаю, что несколько языковых серверов, отвечающих за разные части файла, - это следующий шаг к улучшению этой концепции.

@aeschli Как вы думаете, расширение может заставить html-часть в php вести себя так же, как и автономный html-файл? в том числе позволить всем плагинам для html нормально работать в этой части?
Как мы все знаем, система расширений действительно важна, но не все функции подходят для плагинов. На самом деле нам нужно разобрать один файл на несколько языков и обрабатывать их по отдельности. Это должна быть встроенная возможность редактора кода.

И все файлы PHP на самом деле являются HTML со специальнымHTML-тег. Только содержимое этого тега не следует рассматривать как HTML. Это просто язык, встроенный в HTML, и он не может работать без него (кроме CLI). Так что вопрос не в HTML в PHP, HTML - это основной контейнер. А также многие языки могут быть встроены в HTML, например css javascript vbscript svg perl java, я не думаю, что какое-либо расширение может сделать это без официальной поддержки.

Спасибо @popcorner. Я действительно хотел сказать то же самое, но вы написали это намного лучше. :)

Кто-нибудь знает, как ST это делает? Будет оценено даже объяснение высокого уровня.

Давайте оставим этот вопрос о HTML intellisense в PHP. Я дополню нашу документацию методами включения языковых функций для встроенных языков. Я создал # 47288 как отправную точку для этого.

@ jens1o Я перечислил некоторые подходы в описании этой проблемы
@paldepind Я также добавил ответ на ваш комментарий .

Мне все еще это неудобно. Итак, черт возьми, эту проблему можно закрыть, потому что вы не планируете выпускать ее для PHP, а вместо этого живете с этим обходным путем?

проблема все еще без решения?

Я использую Laravel Blade ... Так что здесь нет тегов PHP ... Интересно, как они будут реализовывать эту функцию ...

Решено, но я не знаю почему ... Возможно, обновите php inteliphense или используйте инсайдеров vscode ...
test

@victormongi, какой php inteliphense вы используете?

@jfnadev Я не знаю, как это работает, но это моя версия vscode и версия intelephense:
image

@victormongi у нас такая же конфигурация

@jfnadev это мои установленные расширения:
extension.json:

[
  {
    "metadata": {
      "id": "2cbad5ee-b4ab-4de8-a1c7-77fede846155",
      "publisherId": "patbenatar.advanced-new-file",
      "publisherDisplayName": "patbenatar"
    },
    "name": "advanced-new-file",
    "publisher": "patbenatar",
    "version": "1.1.0"
  },
  {
    "metadata": {
      "id": "697255a9-3f36-44c8-b084-d3b91edfb23a",
      "publisherId": "HookyQR.beautify",
      "publisherDisplayName": "HookyQR"
    },
    "name": "beautify",
    "publisher": "HookyQR",
    "version": "1.3.0"
  },
  {
    "metadata": {
      "id": "9d674f86-f8d2-4fe1-8fa6-a17b40caf4ac",
      "publisherId": "pawelgrzybek.bimbo-theme",
      "publisherDisplayName": "pawelgrzybek"
    },
    "name": "bimbo-theme",
    "publisher": "pawelgrzybek",
    "version": "0.4.5"
  },
  {
    "metadata": {
      "id": "f583eafd-aa0d-4ccb-8f44-d1e610389660",
      "publisherId": "CoenraadS.bracket-pair-colorizer",
      "publisherDisplayName": "CoenraadS"
    },
    "name": "bracket-pair-colorizer",
    "publisher": "CoenraadS",
    "version": "1.0.27"
  },
  {
    "metadata": {
      "id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd",
      "publisherId": "Shan.code-settings-sync",
      "publisherDisplayName": "Shan"
    },
    "name": "code-settings-sync",
    "publisher": "Shan",
    "version": "2.9.0"
  },
  {
    "metadata": {
      "id": "532533c9-a894-4a58-9eee-bbfbe7c06f71",
      "publisherId": "mikestead.dotenv",
      "publisherDisplayName": "mikestead"
    },
    "name": "dotenv",
    "publisher": "mikestead",
    "version": "1.0.1"
  },
  {
    "metadata": {
      "id": "1946e66b-9eea-45a9-816b-316bf9d7d1ab",
      "publisherId": "Zyst.Egoist-One",
      "publisherDisplayName": "Zyst"
    },
    "name": "Egoist-One",
    "publisher": "Zyst",
    "version": "1.18.0"
  },
  {
    "metadata": {
      "id": "7b71fc1b-190d-4f7d-95d1-93e422649b0a",
      "publisherId": "Zignd.html-css-class-completion",
      "publisherDisplayName": "Zignd"
    },
    "name": "html-css-class-completion",
    "publisher": "Zignd",
    "version": "1.17.1"
  },
  {
    "metadata": {
      "id": "8d5687fe-08f5-4a8e-917a-23aef71db6b3",
      "publisherId": "zhengxiaoyao0716.intelligence-change-case",
      "publisherDisplayName": "zhengxiaoyao0716"
    },
    "name": "intelligence-change-case",
    "publisher": "zhengxiaoyao0716",
    "version": "1.1.0"
  },
  {
    "metadata": {
      "id": "6f35c257-7fd5-4bc2-9cd1-01976589c17a",
      "publisherId": "arcticicestudio.nord-visual-studio-code",
      "publisherDisplayName": "arcticicestudio"
    },
    "name": "nord-visual-studio-code",
    "publisher": "arcticicestudio",
    "version": "0.6.0"
  },
  {
    "metadata": {
      "id": "a41c1549-4053-44d4-bf30-60fc809b4a86",
      "publisherId": "christian-kohler.path-intellisense",
      "publisherDisplayName": "christian-kohler"
    },
    "name": "path-intellisense",
    "publisher": "christian-kohler",
    "version": "1.4.2"
  },
  {
    "metadata": {
      "id": "a439d61f-cd9c-453f-b8c7-186f73d44915",
      "publisherId": "MehediDracula.php-constructor",
      "publisherDisplayName": "MehediDracula"
    },
    "name": "php-constructor",
    "publisher": "MehediDracula",
    "version": "0.0.8"
  },
  {
    "metadata": {
      "id": "044b4b31-2969-4af3-895d-855433b8b46d",
      "publisherId": "felixfbecker.php-debug",
      "publisherDisplayName": "felixfbecker"
    },
    "name": "php-debug",
    "publisher": "felixfbecker",
    "version": "1.12.2"
  },
  {
    "metadata": {
      "id": "5e69f001-f945-4c97-baf0-320d82a153b3",
      "publisherId": "felixfbecker.php-intellisense",
      "publisherDisplayName": "felixfbecker"
    },
    "name": "php-intellisense",
    "publisher": "felixfbecker",
    "version": "2.3.1"
  },
  {
    "metadata": {
      "id": "96fa4707-6983-4489-b7c5-d5ffdfdcce90",
      "publisherId": "esbenp.prettier-vscode",
      "publisherDisplayName": "esbenp"
    },
    "name": "prettier-vscode",
    "publisher": "esbenp",
    "version": "1.2.2"
  },
  {
    "metadata": {
      "id": "e52bce95-a629-455f-8626-e7301b9e372a",
      "publisherId": "robinbentley.sass-indented",
      "publisherDisplayName": "robinbentley"
    },
    "name": "sass-indented",
    "publisher": "robinbentley",
    "version": "1.4.8"
  },
  {
    "metadata": {
      "id": "735af542-944f-4b07-b336-9df27d7b8d84",
      "publisherId": "smlombardi.slime",
      "publisherDisplayName": "smlombardi"
    },
    "name": "slime",
    "publisher": "smlombardi",
    "version": "2.31.2"
  },
  {
    "metadata": {
      "id": "d6ba4b7b-539f-456a-b0f6-0348df44cdf3",
      "publisherId": "nikitaKunevich.snippet-creator",
      "publisherDisplayName": "nikitaKunevich"
    },
    "name": "snippet-creator",
    "publisher": "nikitaKunevich",
    "version": "0.0.4"
  },
  {
    "metadata": {
      "id": "529697b9-b343-4b1c-ba2f-f5ef692132d4",
      "publisherId": "ms-vscode.sublime-keybindings",
      "publisherDisplayName": "ms-vscode"
    },
    "name": "sublime-keybindings",
    "publisher": "ms-vscode",
    "version": "3.0.3"
  },
  {
    "metadata": {
      "id": "a150991b-031b-457a-b823-ef4c45425a1b",
      "publisherId": "karyfoundation.theme-karyfoundation-themes",
      "publisherDisplayName": "karyfoundation"
    },
    "name": "theme-karyfoundation-themes",
    "publisher": "karyfoundation",
    "version": "17.0.0"
  },
  {
    "metadata": {
      "id": "2f5dd8cb-d251-4d70-abfe-ddebcb077483",
      "publisherId": "octref.vetur",
      "publisherDisplayName": "octref"
    },
    "name": "vetur",
    "publisher": "octref",
    "version": "0.11.7"
  },
  {
    "metadata": {
      "id": "d96e79c6-8b25-4be3-8545-0e0ecefcae03",
      "publisherId": "vscodevim.vim",
      "publisherDisplayName": "vscodevim"
    },
    "name": "vim",
    "publisher": "vscodevim",
    "version": "0.11.3"
  },
  {
    "metadata": {
      "id": "d637104e-1fd7-4063-98fc-8afe46012c9b",
      "publisherId": "sleistner.vscode-fileutils",
      "publisherDisplayName": "sleistner"
    },
    "name": "vscode-fileutils",
    "publisher": "sleistner",
    "version": "2.8.1"
  },
  {
    "metadata": {
      "id": "aaee577c-f062-495a-9816-0cbd442f1d25",
      "publisherId": "ecmel.vscode-html-css",
      "publisherDisplayName": "ecmel"
    },
    "name": "vscode-html-css",
    "publisher": "ecmel",
    "version": "0.2.0"
  },
  {
    "metadata": {
      "id": "c46b0018-f317-4b6c-a785-d2039b27338f",
      "publisherId": "wix.vscode-import-cost",
      "publisherDisplayName": "wix"
    },
    "name": "vscode-import-cost",
    "publisher": "wix",
    "version": "2.6.2"
  },
  {
    "metadata": {
      "id": "ffda6552-0ad5-431b-a4fa-0905a7e4f3f0",
      "publisherId": "bmewburn.vscode-intelephense-client",
      "publisherDisplayName": "bmewburn"
    },
    "name": "vscode-intelephense-client",
    "publisher": "bmewburn",
    "version": "0.8.8"
  },
  {
    "metadata": {
      "id": "80e9cc3c-eb09-48ed-afda-f1cfd9c9ca3f",
      "publisherId": "phproberto.vscode-php-getters-setters",
      "publisherDisplayName": "phproberto"
    },
    "name": "vscode-php-getters-setters",
    "publisher": "phproberto",
    "version": "1.1.0"
  },
  {
    "metadata": {
      "id": "9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6",
      "publisherId": "akamud.vscode-theme-onedark",
      "publisherDisplayName": "akamud"
    },
    "name": "vscode-theme-onedark",
    "publisher": "akamud",
    "version": "2.1.0"
  },
  {
    "metadata": {
      "id": "ee33fd31-7bb4-4252-8368-fdd5bcd94cf8",
      "publisherId": "akamud.vscode-theme-onelight",
      "publisherDisplayName": "akamud"
    },
    "name": "vscode-theme-onelight",
    "publisher": "akamud",
    "version": "2.1.0"
  }
]

Что-то изменилось? У меня такая же проблема ..

+1 от меня тоже.

Не могу поверить, что проблема, возникшая более 3 лет назад, до сих пор не решена, лучше продолжать использовать SublimeText3

Я считаю, что это существенная особенность. Я просто жду, когда это перейдет на VS Code 😞

Я не уверен, что мы все говорим об одном и том же в данный момент. TBH.

В понедельник, 14 мая 2018 г., в 13:53, Микеяс Пенья [email protected]
написал:

PHP Intelephense
выделение-сопоставление-тег

Работа! s2

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-388790414 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/APewudsZw-Cu5mpgLrBJ8vUPagFUxB5Rks5tyXApgaJpZM4Gpk-J
.

-
С Уважением,

Дэнни Мексен.

vscode не дает информации о php. добавьте это пожалуйста.

Я установил PHP Intelephense. Вопрос решен за меня.

https://github.com/bmewburn/vscode-intelephense

Просто так мы здесь ясно.

HTML-код нельзя форматировать (Ctrl + Shift + I) в файлах PHP.

@venoel Вы говорите, что установка PHP Intelephense позволяет вам делать
тот?

В среду, 30 мая 2018 г., в 20:17 venoel [email protected] написал:

Я установил PHP Intelephense. Вопрос решен за меня.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
.

-
С Уважением,

Дэнни Мексен.

@DannyMexen.
Я имею в виду, что я правильно получаю предложения по тегам, и отступы применяются хорошо.

Microsoft приобретает GitHub!
но этот вопрос все еще!
смешно!

@venoel
Хорошо замечено. Рад, что это работает для вас.

Что бы я ни пытался, я просто не могу форматировать HTML-код в файлах PHP.

В понедельник, 4 июня 2018 г., в 11:00, venoel [email protected] написал:

@DannyMexen https://github.com/DannyMexen .
Я имею в виду, что я правильно получаю предложения по тегам, и отступы применяются хорошо.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
.

-
С Уважением,

Дэнни Мексен.

VSCode определенно должен иметь возможность устанавливать 2 или более языковых режима для определенных типов файлов, чтобы иметь подсветку синтаксиса и intellisense для всех одновременно. У вас есть это даже сейчас с 1 экземпляром VSCode, только в разных файлах с разными языковыми режимами. Honeslty Я не знаю, почему это так сложно реализовать. Кто-то даже использовал его раньше как рабочее решение, хотя оно не работает и никогда не работало, но определенно должно:

"files.associations": {
    "*.phtml": ["html", "php"]
}

Ага, полностью согласен @SharakPL. Я так и не понял полученного ответа, но
некоторые люди более умные, чем я здесь, сказали, что это непросто
вещь для реализации. Я не достаточно сообразителен, чтобы сделать это сам, но потому что это
функция поставляется из коробки, например, с ST3, я ожидаю, что это будет
функция по умолчанию везде.

В среду, 6 июня 2018 г., в 21:33, SharakPL [email protected] написал:

VSCode определенно должен иметь возможность установить 2 или более языковых режима для
определенные типы файлов, чтобы иметь подсветку синтаксиса и intellisense для всех
их одновременно. У вас есть это даже сейчас с 1 экземпляром VSCode,
просто в разных файлах с разными языковыми режимами. Честное слово, я не
знаю, почему это так сложно реализовать. Кто-то даже раньше использовал его как
рабочее решение, хотя оно не работает и никогда не работало, но оно определенно
должен:

"files.associations": {
"* .phtml": ["html", "php"]
}

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
.

-
С Уважением,

Дэнни Мексен.

согласен @DannyMexen даже в блокноте ++ он есть. Сейчас 2018 год, а в vscode по-прежнему нет этой функции. Это безумие.

_Закройте этот вопрос, этого никогда не произойдет.

@bsienn хотите объяснить? Почему в VSCode невозможно что-то обычное в простых текстовых редакторах?

@SharakPL объясни? Прочтите ветку МЕРТВОЙ трехлетней давности, она объяснит вам, что этого не произойдет.

@bsienn Он есть с emnet, html на php использует emnet, попробуйте изучить его .. https://docs.emmet.io/ пожалуйста ... он все равно работает ...

@bsienn, тогда объясни мне: почему ты

@benyaminl emmet в порядке, но работает только тогда, когда я создаю новые теги. Это бесполезно, когда мне нужно редактировать теги, то есть добавлять некоторые атрибуты к ссылке , потому что в файлах php все еще нет intellisense для html

Ах, это то, что я пытался игнорировать, хахаха .. в любом случае это правда. Все еще
когда я думаю, что кто-то пытался это реализовать, это не совсем просто

Отправлено с моего Asus Pegasus X005

Пада Танггал Кам, 14 июня 2018 г., 19.26, SharakPL [email protected]
menulis:

@bsienn https://github.com/bsienn, тогда объясни мне это: почему ты даешь
up должно быть поводом закрыть эту ветку?

@benyaminl https://github.com/benyaminl emmet в порядке, но только
работает, когда создаю новые теги. Бесполезно, когда мне нужно редактировать теги, т.е. добавлять
некоторые атрибуты ссылки <# m_4226514043244462616_issuecomment-359139115>,
потому что до сих пор нет intellisense для html в файлах php

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
.

Я пытаюсь перейти от использования Brackets.io к VS Code, так как я прочитал так много замечательных вещей о Intellisense. Эта основная особенность мешает мне. Меня пугает то, что он возвращается уже 3 года и ничего не сделано.

Кто-нибудь знает, есть ли плагин или способ зарегистрировать файлы .php для использования автозаполнения .html?

Спасибо за вашу помощь.

Есть новости по этому поводу?
Я считаю, что просто делаю ту же реализацию, что и для смешанного редактирования в html файлах, где html + css + js отлично работает.

Другой альтернативой является реализация в Extension API способа просмотра фрагмента файла и изменения выбранного языка.

Я сделал это, потому что меня раздражал вложенный HTML в PHP, он должен быть отформатирован на основе любых собственных настроек, которые у вас есть для html.format и формата редактора при сохранении / вводе Format HTML в PHP .

Также я получаю полное автозаполнение, intellisense делает это таким образом.

@ RiFi2k Привет! Я пытаюсь установить ваше расширение, но для меня ничего не меняется. В описании указано, что этому расширению нечего делать.

@BxDev Привет! Итак, вам понадобится
html.format.enable = true
editor.formatOnSave = true
и любые другие настройки в vscode, связанные с форматированием html или форматированием редактора, которые вы, возможно, захотите настроить.

Затем он хочет отформатировать вложенный HTML в файлы .php, поэтому вам также необходимо убедиться, что у вас есть файл .php с таким кодом:

<?php
$hi = true;

?>
<div class="correct-formatting">
                                     <div class="wrong-formatting">
</div>
</div>

Когда вы сохраняете, он должен исправить HTML div

Если у вас все еще есть проблемы, дайте мне знать, я помогу вам начать работу.

@ RiFi2k спасибо за ответы!
Я пишу это в настройках пользователя:
"html.format.enable": true, "editor.formatOnSave": true
После этого я создаю php файл с вашим примером, но он не работает :-(
l213wgru87dzrr

@BxDev На самом деле похоже, что он отлично справился со своей работой

<?php
$hi = true;

?>
<div class="correct-formatting">
                                     <div class="wrong-formatting">
</div>
</div>

к

<?php
$hi = true;

?>
<div class="correct-formatting">
        <div class="wrong-formatting">
        </div>
</div>

Это все, что он делает, надеюсь, вы не запутались в функциональности.

@ RiFi2k ооо дааа :) Я понял :) Извините за это. Но для меня очень важен тег выделения пары в смешанных документах php / html / js / css. Спасибо за вашу работу!

Я чувствую, что это проблема, возникшая 3 года назад, и она никогда не будет решена.
Это такая простая вещь, которую нужно иметь в редакторе, и это делает мою повседневную работу невероятно раздражающей.

Мне, вероятно, придется вернуться к ST3, потому что я чувствую, что VScode, особенно в последнее время, движется назад, добавляя всевозможные причудливые функции, но игнорируя их основные проблемы.

@TheDutchCoder Это потому, что в наши дни никто не хочет кодировать PHP, и это правильно. : D

@steebcheen, пожалуйста, продолжайте тему. благодаря

@Tyriar В любом случае, кто-нибудь был назначен для этого? Или нет?
РЕДАКТИРОВАТЬ: О, это назначено .. Хорошо

@ RiFi2k Привет и спасибо за попытку помочь! Я пробовал ваше расширение, но оно не работает. Я попробовал настройки, которые вы предоставили, но все еще без кубиков. Может быть, это зависит от используемого форматтера php? Какое расширение вы предлагаете использовать в первую очередь для включения форматирования php?

Хорошо, быстрое обновление: работает при сохранении, и это здорово! Это не работает с контекстным меню, вызываемым правой кнопкой мыши. Думаю, это честный компромисс :)

Я думал, дело только в моих предпочтениях. Когда я смешал HTML-код с php, формат действительно беспорядочный, например, когда я нажимаю вкладку, размер вкладки будет равен 4, а затем добавлен новый, теперь размер вкладки равен 2. Я бы хотел переключиться с ST3 на VSC, но это меня останавливает. от перехода на VSC. Думаю, мне нужно пока оставаться на ST3.

@thanasisHS Извините, только что увидел это.

Мое расширение будет работать, только если настроено форматирование при сохранении, и оно не работает как фактическое средство форматирования PHP, работает onBeforeSave.

Я в значительной степени опубликовал всю свою конфигурацию в виде нескольких сущностей, не стесняйтесь, мне потребовались месяцы работы, чтобы сделать ее идеальной. Для форматирования я использую PHPCBF, но использую этот, я знаю, что у него всего 300 установок, но он обновил и объединил код всех мертвых расширений phpcbf, это деньги.
https://marketplace.visualstudio.com/items?itemName=ValeryanM.vscode-phpcbf

Вот моя суть, если кому-то еще интересна моя конфигурация. Он выполняет php, js, scss, css, vue - автоматическое форматирование и линтинг с помощью eslint, stylelint, phpcbf, phpcs, prettier. Это просто удача, когда вы все это настроите.

Глобальный
https://gist.github.com/RiFi2k/d43e84788b1798252f30cac28b6f6eda

Проект
https://gist.github.com/RiFi2k/42e294f3785bdbbc2641c4b18955e16f

Все точечные файлы, composer.json, package.json, набор правил php
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708

Закрытие этого вопроса. Я объяснил причину в описании проблемы выше.

Благодарю. Код с каждым днем ​​портится все больше. Я думал, что вы в Microsoft хорошо относитесь ко всей этой инициативе FOSS, но она все еще не независима, а сосредоточена на том, чтобы зарабатывать деньги за счет рекламы Github и Azure.

@ jens1o Я сбит с толку, это решение связано с развитием экосистемы OSS. Упомянутые расширения являются проектами OSS, пожалуйста, помогите сделать их лучше. Ресурсы команды VS Code не безграничны.

Кроме того, не забывайте наш Кодекс поведения и давайте общаться уважительно.

Я просто не понимаю, почему вы ставите задачи выше других, хотя сообщество определенно хочет их. Я слышу только «уменьшение количества проблем» и «выход за рамки», и, о да, «ограниченные ресурсы» (вот почему сообщество здесь, смеется). Никто не жалуется на то, что не скоро, но немного больше внимания потребностям сообщества определенно поможет. Почему нам нужно держать номер проблемы на низком уровне, даже если они ничего не загрязняют? На мой взгляд, дорожная карта кода прошла золотую середину 2 итерации назад. Теперь все дело в зарабатывании денег (с большим сообществом, заработанным на протяжении многих лет; я использую его с момента первой демонстрации Build(); каждый день) путем интеграции платных и сторонних продуктов (например, GitHub, принадлежащего Microsoft).

Я говорю, что мне больше не рады в этом сообществе (и я искренне разочарован), я никоим образом не атакую ​​вас лично, поэтому нет причин ссылаться на COC здесь. Открытые обсуждения являются частью программного обеспечения FOSS.

Но, говоря о КОК, я бы процитировал это:

Понять разногласия

Я не понимаю, почему вы хотите меня закрыть, только потому, что я не согласен с вашей политикой.

Я пытаюсь понять, почему вы изменили свою политику, не могли бы вы уточнить?

@egamma Я не думаю, что ваша причина закрытия этого вопроса разумна. Я понимаю, что код Visual Studio не может и не должен предоставлять все функции из коробки, но поддержка HTML для языка PHP должна быть одной из самых основных функций редактора PHP. Возможно, большинство функций PHP должны предоставляться расширениями, но этого не должно быть. Эта функция есть во многих редакторах, даже в простом текстовом редакторе Notepad ++. Это часть базовой грамматики PHP, без которой вы не сможете написать PHP. Редактор не должен говорить, что он поддерживает PHP без этой функции, потому что он не может правильно читать PHP.

И почему Javascript в файле HTML работает хорошо, а CSS в HTML хорошо работает без какого-либо расширения в vscode? Похоже, что vscode имеет эту функцию, но не хочет делать аналогичную для PHP, это несправедливо.

Эта функция действительно важна для пользователей PHP, и большинство пользователей не будут пытаться искать эти проблемы, и они ничего не знают о расширениях, которые могут помочь им получить эти основные и необходимые функции. Эти пользователи могут просто загрузить этот редактор, установить его и найти эту «ошибку», а затем немедленно удалить ее и получить очень плохое впечатление о vscode. Здесь ничего не скажут. Все пользователи, которые хотят здесь поделиться своим мнением, - это люди, которые действительно хотят, чтобы vscode был лучше. Ощущение написания PHP-кода без этой функции действительно слишком болезненно, вы не можете отличить блоки друг от друга, вам нужно вручную подсчитывать теги html или многократно конвертировать формат файла из php в html и из html в php. Все другие языки, которые я когда-либо пробовал на vscode, не вызовут таких неприятностей без установленных расширений. Пользователи не будут знать причину, они просто заботятся о пользовательском опыте. Пожалуйста, подумайте об этом и сделайте что-нибудь, даже добавление небольшого выделения тоже хорошо:

  • обеспечить базовую поддержку HTML, или
  • предоставить официальное расширение с этой функцией и установить автоматически при использовании PHP
  • или даже простая рекомендация для всех пользователей PHP и установка рекомендуемого расширения одним щелчком мыши, затем получите эту функцию и заставьте vscode действительно поддерживать PHP

Согласовано, @popcorner верен, это важно для разработчиков PHP, и учитывая, что WordPress

На самом деле я думаю, что суть всей этой проблемы заключается в том, что вы не можете зарегистрировать несколько расширений форматирования одновременно. По сути, есть своего рода гонка на этом крючке, и только один может выиграть, плюс вы не можете видеть, как пользователь, что пытается запустить, когда и какой на самом деле. Итак, для файла PHP, как ни странно, вы собираетесь использовать расширение форматирования, которое выполняет код PHP поверх HTML. Но если вы могли связать расширения форматирования и был порядок перехвата или что-то, что можно было изменить, вы могли бы зарегистрировать PHP и HTML, а затем установить приоритет / порядок для одного из них, который будет запускаться первым / последним. Например, вся эта проблема решена, если вы можете ...

Шаг первый: запустите PHPCBF или аналогичное расширение форматирования PHP.
Шаг второй: запустите js-beautify html formatting, которое в любом случае просто пропускает весь PHP и делает только HTML, что является тем же самым, что я делаю в своем расширении Format HTML in PHP, чтобы решить проблему. Но мне нужно запустить его onBeforeSave вместо использования регистрации форматирования по умолчанию, но это не должно быть решением.

Подводя итог, это очень необходимо, но вместо того, чтобы исправлять / не исправлять проблему, почему бы не изучить мою идею выше, и тогда вы получите лучший опыт работы с каждым языком и форматированием для пользователей и разработчиков расширений.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги