Vscode: [php] Proporciona html intellisense

Creado en 25 nov. 2015  ·  234Comentarios  ·  Fuente: microsoft/vscode

En los archivos PHP no hay autocompletado de etiquetas html, agregue.


EDITAR 13/9/2018 @egamma : VS Code proporciona solo soporte básico para PHP, pero hay potentes extensiones de PHP disponibles en el mercado:

Esta función debería ser proporcionada por estas extensiones (Intelephence ya la admite). Por favor, pruebe estas extensiones y ayude a mejorarlas presentando problemas y solicitudes de extracción.

Este problema ha perdido el foco y se ha convertido en una discusión sobre si VS Code debería proporcionar soporte PHP de forma inmediata. Sin embargo, al igual que con muchos otros lenguajes como C #, C ++, Go, Python, Rust, no queremos agrupar PHP con VS Code, sino confiar en nuestro gran ecosistema de extensiones. Por tanto, cierro este tema.

feature-request help wanted languages-basic php

Comentario más útil

No puedo ayudar, pero otro +1000 de mi parte. HTML / CSS / JS en PHP es común como archivo mixto. Probé Visual Studio + VS.php completo, pero tampoco es compatible. Sigo preguntándome por qué se pasa por alto esto en todas las herramientas de desarrollo de Microsoft que supuestamente son compatibles con PHP. Sí, el soporte PHP está ahí, pero es inútil si no tenemos IntelliSense (completición de código y sugerencias de código) para HTML / CSS / JS también.

Lo mismo ocurre con los bloques JS y CSS en línea en HTML.
Si defino en settings.json:
"files.associations": {"*.php": "html"},
... que PHP IntelliSense (obviamente) no funciona, y HTML se activa. Pero el CSS en línea al usar style=" ...something... "; no ofrece propiedades CSS cuando se escribe entre comillas del atributo de estilo.
Del mismo modo, si comienzo un bloque <script> , no obtendrá IntelliSense para JS, mientras que abrir el archivo .js reacciona normalmente.

Apoyo la sugerencia de que (si es más fácil):

  • <?php ... ?> debería iniciar PHP IntelliSense
  • fuera de <?php ... ?> debería iniciar HTML IntelliSense
    pero también
  • dentro de <style> ... </style> y style=" .... " deberían iniciar CSS IntelliSense
  • dentro de <script ... > y <script> ... </script> deberían iniciar JS IntelliSense

Además, si es posible, se debe considerar una sugerencia de @TheColorRed , es decir, si está dentro
<?php ... ?> pero están escribiendo una cadena, por ejemplo, $string="..." de lo que debería considerar convertir HTML IntelliSense también. La cuestión es que los desarrolladores de PHP a menudo usan algo como:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. para evitar hacer bloques con la apertura / cierre de etiquetas php todo el tiempo, como:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

También @egamma , aunque no pretendemos sonar ingratos o perezosos, los comentarios engreídos tampoco ayudan mucho, si uno de nosotros fuera competente y lo suficientemente informado como para codificarlo nosotros mismos, estoy seguro de que lo haríamos. Desafortunadamente, no lo soy: - / Pero si puedo ayudar de alguna otra manera, estaría encantado de hacerlo (no solo comentando con sugerencias, sino probando, o lo que sea).

Espero que haya un consenso de que esta característica debería existir, y que el soporte actual de PHP sin ella es solo un soporte parcial para la mayoría de los desarrolladores de PHP.

PD Y de nuevo, para no sonar como un crítico - ¡Realmente me gusta VS Code hasta ahora, y estoy muy agradecido con todos los que contribuyeron y siguen contribuyendo a este maravilloso proyecto!

EDITAR:
¿Funcionaría simplemente incluir / hacer referencia a un archivo .ts con otro?
Por ejemplo, en /languages/php/common/php.ts
incluir: /languages/html/common/html.ts
incluyen: /languages/css/common/css.ts
incluir: ...

Si bien podría haber algo de superposición con los nombres de la etiqueta / atributo / función, nada me viene a la mente en este momento ... Y para IntelliSense no es un problema, creo que ya que cada uno tendría un ícono diferente, solo la codificación de colores podría estropearse en tales casos ... ¿Me estoy perdiendo algo más?

Todos 234 comentarios

Suena razonable. Los proveedores de intellisense de etiquetas HTML se encuentran aquí , podría ser solo una cuestión de conectar ese módulo al código PHP. También asegurándome de que solo estén disponibles cuando estén fuera de las etiquetas <?php , si recuerdo cómo funciona PHP correctamente.

@Tyriar fuera de las etiquetas <?php ¿qué significa? ¿Están disponibles cuando están fuera de las etiquetas <?php ?> en archivos PHP?

Fuera de <?php ?> es HTML, dentro es PHP. Por lo tanto, el autocompletado de HTML solo debería estar disponible fuera de las etiquetas <?php ?> .

@Tyriar Pero ahora no están disponibles fuera de los <?php ?> etiquetas en .php archivos, tal vez sólo están disponibles en .html archivos.

Agregue esta función rápidamente, creo que es una función básica, gracias a todos.

@osjn gracias por ayudarnos con la priorización comentando. Una forma aún mejor de ayudarnos sería una solicitud de extracción con una implementación.

Tal vez sea solo yo, pero creo que sería genial si intellisense también estuviera disponible dentro de cadenas php.

Un voto positivo de mi parte también. Esta función es necesaria, por favor.

Casi todos los desarrolladores de PHP necesitarán esta función para elegir VSCode como su editor principal.

Necesitamos que se solucione este problema para apuntar a más desarrolladores.

Ayer intenté golpearme la cabeza con este problema, pero desafortunadamente mi falta de habilidades en TypeScript me está frenando para ayudarlo en este tema.

¡Necesito este!

Mismo. Simplemente +1000

No puedo ayudar, pero otro +1000 de mi parte. HTML / CSS / JS en PHP es común como archivo mixto. Probé Visual Studio + VS.php completo, pero tampoco es compatible. Sigo preguntándome por qué se pasa por alto esto en todas las herramientas de desarrollo de Microsoft que supuestamente son compatibles con PHP. Sí, el soporte PHP está ahí, pero es inútil si no tenemos IntelliSense (completición de código y sugerencias de código) para HTML / CSS / JS también.

Lo mismo ocurre con los bloques JS y CSS en línea en HTML.
Si defino en settings.json:
"files.associations": {"*.php": "html"},
... que PHP IntelliSense (obviamente) no funciona, y HTML se activa. Pero el CSS en línea al usar style=" ...something... "; no ofrece propiedades CSS cuando se escribe entre comillas del atributo de estilo.
Del mismo modo, si comienzo un bloque <script> , no obtendrá IntelliSense para JS, mientras que abrir el archivo .js reacciona normalmente.

Apoyo la sugerencia de que (si es más fácil):

  • <?php ... ?> debería iniciar PHP IntelliSense
  • fuera de <?php ... ?> debería iniciar HTML IntelliSense
    pero también
  • dentro de <style> ... </style> y style=" .... " deberían iniciar CSS IntelliSense
  • dentro de <script ... > y <script> ... </script> deberían iniciar JS IntelliSense

Además, si es posible, se debe considerar una sugerencia de @TheColorRed , es decir, si está dentro
<?php ... ?> pero están escribiendo una cadena, por ejemplo, $string="..." de lo que debería considerar convertir HTML IntelliSense también. La cuestión es que los desarrolladores de PHP a menudo usan algo como:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. para evitar hacer bloques con la apertura / cierre de etiquetas php todo el tiempo, como:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

También @egamma , aunque no pretendemos sonar ingratos o perezosos, los comentarios engreídos tampoco ayudan mucho, si uno de nosotros fuera competente y lo suficientemente informado como para codificarlo nosotros mismos, estoy seguro de que lo haríamos. Desafortunadamente, no lo soy: - / Pero si puedo ayudar de alguna otra manera, estaría encantado de hacerlo (no solo comentando con sugerencias, sino probando, o lo que sea).

Espero que haya un consenso de que esta característica debería existir, y que el soporte actual de PHP sin ella es solo un soporte parcial para la mayoría de los desarrolladores de PHP.

PD Y de nuevo, para no sonar como un crítico - ¡Realmente me gusta VS Code hasta ahora, y estoy muy agradecido con todos los que contribuyeron y siguen contribuyendo a este maravilloso proyecto!

EDITAR:
¿Funcionaría simplemente incluir / hacer referencia a un archivo .ts con otro?
Por ejemplo, en /languages/php/common/php.ts
incluir: /languages/html/common/html.ts
incluyen: /languages/css/common/css.ts
incluir: ...

Si bien podría haber algo de superposición con los nombres de la etiqueta / atributo / función, nada me viene a la mente en este momento ... Y para IntelliSense no es un problema, creo que ya que cada uno tendría un ícono diferente, solo la codificación de colores podría estropearse en tales casos ... ¿Me estoy perdiendo algo más?

si esto no se agrega, entonces tengo que cambiar de editor, ahora mismo uso 2 editores ...

Por favor, ¿cómo puedo desactivar HTML IntelliSense cuando estoy trabajando con PHP?

Esta opción es una pesadilla, porque no puedo tabular en una variable porque creo automáticamente una etiqueta XML / HTML.

No mezclo mi código PHP con el HTML, y no cometeré este error nunca, por favor, al menos agregue la opción para desactivarlo en "modo" PHP.

@TheColorRed Crane Intellisense tiene el problema. Es, con mucho, la extensión PHP de VS Code más popular, así que supongo que esto es lo que la mayoría de la gente informa sobre su problema.

Lo mismo aquí, necesitamos autocompletar para CSS / JS en HTML. De lo contrario, cambiar a Mónaco no es una opción real :-)

Acabo de probar vscode, pero la falta de esta función solo deja de usar este IDE. Proporcione esta función, ya que es imprescindible para todos los IDE.
Gracias por adelantado.

Esto es muy necesario. Es increíblemente molesto no obtener la inteligencia adecuada cuando se coloca código php dentro de un archivo html o cuando se coloca html en un archivo php.

Una gran característica que me falta y es que me impide a mí y a mis colegas usar vsCode como nuestro editor principal.

Este es un gran problema para mí sin esta característica tan común. Aunque es una pena ... REALMENTE, REALMENTE, REALMENTE amo este IDE. Si esto se agrega, estaré muy feliz.

@egamma Lo haré bien al enviar un PR, después de pasar una cantidad de tiempo innecesaria tratando de encontrar el código para modificar porque decidiste ser pasivo agresivo y sarcástico en lugar de ofrecer la más mínima dirección a aquellos que podrían ser capaces. ayudar.

@TechnikEmpire, por favor, no lea demasiado en un comentario que hice en diciembre de 2015, mientras nos estábamos recuperando del gran lanzamiento de VS Code de noviembre. Disculpas si este comentario resultó sarcástico.

Hay un buen progreso con respecto a Intellisense para PHP. Si quieres contribuir, te sugiero que busques contribuir al proyecto php-language-server que está trabajando @felixfbecker . Felix también es el autor de php-debugger . Estos son los repositorios relacionados:

Puede encontrar más información sobre el enfoque del servidor de idiomas y el protocolo del servidor de idiomas aquí.

@egamma ¿ Pero hay alguna forma de que el servidor de lenguaje PHP pueda "delegar" al servidor de lenguaje HTML de VS Code? Parece que https://github.com/Microsoft/vscode/issues/1751 cubriría esto

@felixfbecker ahora que hemos extraído el servidor de lenguaje HTML, el primer escenario que queremos investigar es cómo integrarlo con el servidor de lenguaje CSS para que podamos proporcionar Intellisense en las secciones CSS. Esto corresponde al primer escenario que menciona en el # 1751 y que también se solicitó en el # 8928.

Este trabajo no llegó para septiembre y ahora está previsto para octubre.

¡Gracias! El soporte de CSS dentro del trabajo de HTML está planeado para octubre, ¿qué pasa con JS, también conocido <script> soporte de

@egamma ¿hay cambios o mejoras? Pasó mediados de octubre, así que solo quería volver a verificar. Hasta ahora, después de 5 meses todavía no estoy usando VS Code como mi editor principal debido al problema, y ​​estoy seguro de que hay cientos de almas silenciosas por ahí. Me alegro de que haya algo de trabajo con la mezcla de HTML / CSS, pero realmente necesitamos un soporte completo de HTML + CSS + JS + PHP ...

@luxzg HTML + CSS progreso según el plan de octubre, HTML + CSS + JS es un tramo. Siga nuestro progreso aquí: https://github.com/Microsoft/vscode/projects/2

Para mí, los inliners de PowerShell en algún tipo de archivos DevOps que editan esta función también ayudan mucho. ¿Es posible que alguien tenga una extensión cuya sintaxis cambie de forma particularmente automática cuando un cursor se encuentra en algún bloque de código?

FWIW, el complemento "HTML Snippets" de PHP Intellisense me está funcionando bien.

@matthewringer el complemento no funciona para mí

Este es un problema para mí también ... ¿no ha habido ningún movimiento al respecto todavía?

Esperemos que esto se agregue pronto. Sin esto, dudo que cualquier desarrollador de php lo use.

Sublime me está picando mucho para revertir (TM). VSCode si me amas, salva mi alma y agrega el soporte HTML, CSS y JS, por favor.

¿Más de un año y TODAVÍA no hay soporte para esto? De Verdad? ... y aquí pensé que MS finalmente hizo un producto que no era basura.

Esta es la única característica que, para mí, hace que PHPStorm sea mucho mejor que cualquier otra cosa que haya probado. Si finalmente pueden implementar el soporte adecuado de resaltado de sintaxis / intellisense para PHP con HTML, CSS, Javascript, entonces finalmente podríamos tener un editor PHP liviano realmente bueno.

Es muy molesto en este momento estar escribiendo HTML o CSS o Javascript y obtener terminaciones de PHP en todas partes. También podría estar usando otro editor sin autocompletar.

No puede ser tan difícil clasificar archivos .php como HTML y luego analizar solo lo que hay dentro de las etiquetas <?php ?> como código PHP, ¿verdad?

+1 de mí, por favor mézclalos :)

Acabo de comenzar a usar VScode mientras aprendía programación y es genial: me encanta la velocidad, el pulido y la facilidad de uso, cosas mágicas. Hoy me di cuenta de que no está recogiendo HTML dentro de archivos PHP (ya sea dentro o sin etiquetas PHP) lo que dificulta bastante la coincidencia de etiquetas HTML. Tengo que cambiarme a otro editor que no es ideal.

Lo siento, no tengo la experiencia suficiente para intentar agregar esto / arreglarlo de forma remota, pero realmente agradecería que alguien en Microsoft pudiera agregarlo. De manera rutinaria incrusto código HTML, Javascript, CSS y SQL dentro de mis archivos PHP. Sería genial si se pudiera detectar todo como en otros editores, aunque estoy seguro de que no es trivial agregar esta funcionalidad. Realmente odiaría tener que dejar VScode todos juntos, ya que hace que la experiencia de aprendizaje sea agradable.

@egamma @aeschli, esto ha estado por ahí durante bastante tiempo: mencionaste que querías resolver este problema con los servidores de lenguaje HTML y CSS, ¿está terminado? Creo que esto se reduce a la capacidad de un servidor de idiomas para definir ciertos rangos en el documento donde todas las características del idioma deben ser manejadas por un servidor de idiomas diferente. Entonces, un PHP LS puede, después de analizar un documento, declarar qué rangos son HTML, un HTML LS puede declarar qué partes son JS o CSS, un TS / JS LS puede declarar qué partes son SQL o GraphQL.

@felixfbecker sí, este soporte está disponible desde un par de hitos, consulte

image

El servidor de idioma html se puede encontrar aquí https://github.com/Microsoft/vscode-html-languageservice.

El enfoque ha sido imitado para el soporte de idioma vue https://github.com/octref/vetur

// fyi @aeschli

@egamma Entonces, ¿cómo se entrega la finalización a un servidor de idioma diferente? ¿Hay alguna documentación de esto? Supuse que esto habría tomado una extensión LSP

dejando esto aquí

@felixfbecker Actualmente no tenemos otra documentación excepto el código, lo siento. Le sugiero que se conecte con @aeschli para una inmersión profunda cuando quiera comenzar a agregar este soporte para php.

@felixfbecker

Parece que todavía no hay una forma generalizada de realizar la inyección de lenguaje, pero la implementación de la extensión html es bastante sencilla.

Creo que ahora llega a un buen término medio: VSCode ofrece paquetes html / css LS para aliviar la implementación de soporte de lenguaje integrado. Mientras tanto, mantiene la flexibilidad para que cada LS pueda reaccionar de manera diferente según su contexto.

Por contexto, quiero decir, la extensión html podría descargar jquery.d.ts cuando se incluye una etiqueta de script con jquery (no se aplicaría a vue), o la extensión vue marca cada archivo .vue como un componente para hacer la resolución del módulo (no lo haría aplicar a html).

Para citar a @aeschli : https://github.com/Microsoft/vscode/issues/12354#issuecomment -257242426

Hay algunos errores que quieren que encontremos una solución general para el contenido incrustado, pero creo que no lo lograremos. Hay diferencias sutiles en todos los casos en los que creemos que es mejor tener una implementación específica de cada idioma de host para la mejor experiencia de usuario.

Pero estoy de acuerdo en que falta un documento para implementar el soporte de lenguaje integrado. Supongo que escribiré un poco una vez que termine todas las funciones principales de mi extensión vue.

Esto es muy lamentable. ¿No podemos agregar esta capacidad a LSP? El servidor de idiomas es lo que analiza los documentos en un AST, por lo que solo el servidor de idiomas tiene conocimiento sobre qué parte del documento está escrito en un idioma diferente y debe entregarse. Entonces, ¿ahora la extensión _también_ necesita analizar el documento? En la mayoría de los casos, eso ni siquiera es posible porque el analizador depende de un tiempo de ejecución diferente al de Node (PHP, Java, ...).

No imagino que agregar esto a LSP sería tan difícil, por ejemplo, el servidor podría simplemente enviar una notificación para un URI con una matriz de un rango + un modo de idioma. Que cualquier editor (no solo VS Code) podría usar un servidor de idioma diferente para ese rango.

@egamma No pude encontrar el código en el repositorio que entrega el idioma, ¿podría dar un puntero más específico? Lo siento si pasé por alto esto.

@felixfbecker Erich quiso decir: la incrustación de diferentes servicios lingüísticos se realiza dentro del _servidor_.
Por ejemplo, puede ver eso en las dependencias del servidor html.
De esa manera, el servidor es autónomo y tiene el control total de la configuración del contexto del lenguaje integrado (las bibliotecas JavaScript están disponibles en el contenido integrado, versión del lenguaje (ES5, ES6 ..)).

Ahí es donde la solución que describe (comunicación entre servidores de idiomas) comienza a tener problemas. Es probable que genere dependencias y API específicas del servidor de idiomas entre servidores.
Nos gustaría mantener el acoplamiento bajo y las extensiones de idioma reemplazables.

Dicho esto, cada servidor de idiomas es libre de elegir su enfoque. Puede utilizar mensajes LS personalizados para hacer esto. Así es como lo implementamos en la versión de noviembre. El servidor envía la solicitud al cliente, el cliente solicita otras extensiones basadas en documentos virtuales que solo contienen el contenido del idioma integrado.

Sugeriría que continuemos la discusión es un tema aparte. ¿Quizás presentar un nuevo problema con las sugerencias que tiene sobre cómo extender el LSP?

Interviniendo aquí también. Amando VS Code hasta ahora, sin embargo, la ausencia de competencia de etiquetas HTML dentro de PHP es un verdadero factor decisivo. Temporalmente estoy cambiando al modo de lenguaje HTML para archivos PHP, pero no sé cómo funcionará esto al final.

Me enamoré de VSCode hasta que descubrí que le faltaba esta característica bastante básica. Volvió a lo sublime por ahora.

Esta característica me impide cambiar a VSCode.

Esta es una característica muy necesaria. +99999

Una característica tan básica que existe en todos los demás editores: |

Dejar de seguir

¿Alguna actualización sobre cuándo podemos esperar esto?

En mi opinión, esto estaría directamente relacionado con el número 765.

: +1: Muy buen editor y carece de una función tan simple :(

Me imagino que si esto no se ha cerrado por completo, potencialmente se solucionará algún día. Seguro que así es, cuanto antes, mejor.

Lo ÚNICO que me impide hacer la transición a VSCode desde Atom es la falta de esta característica crucial :(

Entonces, ¿alguien puede sugerir editores alternativos para PHP / HTML / JS web de pila completa? Realmente amo VSCode, pero esta falta de función es solo un bloqueador para mí. ¿PHPStorm o WebStorm son buenos?

Como mantenedor de PHP IntelliSense, suscribirse a este hilo es una pesadilla. Si quieres hacer +1 en el problema, dale un visto bueno. Todos estos comentarios +1 simplemente saturan el hilo y los mantenedores de spam con notificaciones sin agregar ningún valor a la discusión. Y para todos los que dicen "esta es una característica tan simple": en realidad no lo es. Pero si lo cree, no dude en hacer un PR.

@felixfbecker , creo que destaca lo frustrada que está la gente con este problema. No es una característica tan simple; Estoy de acuerdo en que es complejo de implementar, pero es más que la gente ha llegado a esperar este tipo de función con un editor de texto y, como yo, después de enamorarme de VScode, está bastante sorprendido de que no esté.

Se trata de la falta de una hoja de ruta de un tema tan importante. Simple o no, esta es una característica requerida para un entorno de desarrollo en 2017. La solución súper simple sería permitirnos etiquetar secciones con comentarios u otra palabra clave para especificar qué inteligencia queremos. Cosa de los bloques de código de GitHub, envuelve una sección de texto en etiquetas.

Si bien es un poco molesto escuchar todos los quejidos, y yo he sido uno de
intervenga en este tema, es importante escucharlo.

No importa si algo es de código abierto, todavía estás involucrado
entregar un producto a los consumidores y, cuando apesta, la gente va a
quejar. Cuando mi concesionario de automóviles ofrece un lavado gratuito con mi servicio anual
y la lavadora de autos del salario mínimo deja rayas en todo mi auto, voy
quejarse.

Gratis o no, hay una inversión por parte del usuario para modificar su
flujo de trabajo con un nuevo editor. La gente hace esto solo para descubrir que
Perdieron el tiempo y bien podrían seguir usando el bloc de notas. La gente puede
darse de baja si no quieren escuchar los comentarios negativos, pero es
importante que Microsoft escuche estas quejas. Después de todo, han
invertido significativamente en la producción de este producto y cuáles son
recuperar su dinero? Personas con una razón más para maldecir a sus
empresa y no utilizar el producto en el que han pagado.

En cuanto a las solicitudes de extracción, a la gente ya le molesta que su tiempo
la inversión solo para cambiar el flujo de trabajo y las herramientas se ha desperdiciado. Hay
poca o ninguna información sobre dónde empezar a hacer un tiempo adicional
inversión incluso si tenían la posibilidad de perder más tiempo. Esta
no es una característica compleja en papel, así que si está en la práctica, tal vez
hay graves deficiencias en el diseño de la aplicación. yo solo puedo
especular, como todos los demás, porque nadie nos paga
para aprender esta base de código.

El miércoles 29 de marzo de 2017 a las 9:37 a.m. Stephen Eckels [email protected]
escribió:

Se trata de la falta de una hoja de ruta de un tema tan importante. Simple o no
esta es una característica requerida para un entorno de desarrollo en 2017. Solución súper simple
sería dejarnos etiquetar secciones con comentarios u otra palabra clave para especificar
qué inteligencia queremos. Cosa de los bloques de código de GitHub, envuelva una sección de
texto en etiquetas.

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
.

>

Jesse Nicholson

LA RESPUESTA PARA TODO ESTE PROBLEMA PARA MÍ FUE NETBEANS PARA PHP

UNA GRAN IDEA QUE NO CAMBIARÉ DURANTE MUCHO TIEMPO.

@ madruga88 Netbeans ni siquiera es lo mejor. PHPStorm Creo que actualmente es el mejor editor de PHP que existe. Creo que Jetbrains tomó toda la Asistencia de codificación inteligente de Microsoft y la hizo mucho mejor.

Cuando comencé a usar VSCode, el único IDE al que me recordó fue a los de IntelliJ Products debido a lo rápido que aparecían las terminaciones. De hecho, tanto VSCode como PHPStorm tienen una sensación muy similar desde el primer momento en términos de funciones generales de edición. El único lugar donde VSCode falla mucho (y me refiero a realmente difícil) es en PHP con HTML incrustado (que debería haber funcionado desde el principio).

Si VSCode finalmente consiguiera HTML incrustado para trabajar con PHP, se convertiría fácilmente en el mejor editor de texto (no IDE) para PHP.

Actualmente me quedo con el uso de Sublime Text porque al menos sabe si estoy en HTML, CSS, Javascript o PHP, todo dentro del mismo archivo y, al menos, proporciona las terminaciones adecuadas.

Lo curioso es que el texto Sublime cuando tienes un archivo PHP lo procesa como un archivo HTML simple. ¿VSCode no puede agregar el soporte PHP a la sintaxis HTML también? ¿No es necesario tener 2 sintaxis separadas para ello?

@ drone540 la mala carga y uso (incluso la escritura de código es lenta) el rendimiento de phpstorm me hizo elegir netbeans ... que tienen todas las herramientas de linting y sugerencias, formateo y depuración perfectos desde el primer momento.

He usado Visual Studio durante una década ... y puedo decir que netbeans es el estudio visual de PHP debido a sus características completas y su buen rendimiento.

Estoy de acuerdo con usted en que lo único que falta en vscode es el formato de sintaxis html + php.

pero incluso si PHPSTORM fuera gratuito ... elegiría netbeans ... debido a su rendimiento.

¿En serio esto no está arreglado desde 2015? Volver a lo sublime

Sigo revisando para ver si este problema está solucionado pero no hay movimiento. No cambiará a VSCode hasta que sea, independientemente de cuántas otras funciones excelentes tenga. Es muy necesario.

Sigo revisando para ver si este problema está solucionado pero no hay movimiento. No cambiará a VSCode hasta que sea, independientemente de cuántas otras funciones excelentes tenga. Es muy necesario.

¿Qué IDE estás usando en este momento?

@icenold Tengo un flujo de trabajo bastante ingenioso con Brackets atm. Inclinado a seguir con eso.

Desafortunadamente, aunque me encanta Visual Studio Code, tengo que cambiarme a Sublime debido a este problema.

¿Sigue abierto? ¡todos quieren esta función!

Implemente esta función. He escuchado grandes cosas sobre VS de amigos desarrolladores. Estaba a punto de hacer el cambio de sublime esta mañana, pero realmente no puedo dejar de tener esta función.

Chicos, seamos pacientes.

@markpanado Fecha de entrada original: "25 de noviembre de 2015"

Mientras esperamos, ¿hay alguna forma en que pueda configurar la sintaxis HTML para que sea la predeterminada para los archivos PHP, ya que normalmente escribo mucho más HTML en PHP que en PHP? No hay nada obvio en el panel de configuración del usuario.

¡Gracias!

@ matt3224 haga clic en el indicador de idioma en la esquina inferior izquierda de la barra de estado y en la selección rápida seleccione 'Configurar asociación de archivos'

image

@egamma ¡Excelente! Gracias

En realidad, php está diseñado para trabajar con HTML y usar etiquetas html para cubrirse a sí mismo, al igual que javascript / css en HTML. Otros idiomas no funcionan así. Por lo tanto, el soporte HTML en archivos .php debería ser una función incorporada.

Si bien me encantan las extensiones para VS Code, el problema mencionado aquí (dado el tiempo de antigüedad de este hilo) es un factor decisivo. Por supuesto, puede hacer el trabajo sin él, pero se siente lento, lo suficientemente lento como para volver al Bloc de notas e ir sin ninguna herramienta de idioma.

No debería ser así.

Hola, entusiastas de vscode php. Puede que le interese la versión 0.7.0 de Intelephense .

optimised

Hay algunas peculiaridades en cuanto a que debe estar en modo de lenguaje HTML y la coloración de sintaxis no está disponible para php. El formateo (se cortó del gif) es un proceso de 3 pasos: formatear html -> cambiar a php -> formatear php.

Es de esperar que todos estén separando muy bien sus puntos de vista y modelos y estas deficiencias no sean un gran problema.

@bmewburn ¡increíble! ¿Cuándo estará disponible?

@popcorner ya está disponible

Personalmente resolví esto yendo a Archivo-> Salir y descargando Netbeans
con complemento web dev. Superior. El código Vs es un ide mecanografiado decente y no mucho
más. Cuando dejas de esperar más de él, dejas de decepcionarte.

El sábado 24 de junio de 2017 a las 5:02 p.m. Ben Mewburn [email protected]
escribió:

@popcorner https://github.com/popcorner ya está disponible

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
.

>

Jesse Nicholson

@bmewburn Probé Intellephense pero todavía tiene algunos problemas evidentes. PHP escrito dentro de los atributos de la etiqueta HTML, por ejemplo (id = "") pierde la finalización automática. La pérdida del formato del tema PHP.

Requiere el mismo ida y vuelta entre HTML y PHP y eso es una pérdida de tiempo.

En una nota aparte, estoy empezando a preguntarme si todo este hilo es solo un gran troll. ¿Cómo puede esto seguir siendo un problema después de 2 años? Todos los que incluso abren un tema similar, lo han cerrado y referido a este. Sin embargo, no se ha avanzado en todo ese tiempo.

Yo también pasé a Netbeans, descubrí que PHPStorm es capaz de manejar php html js en un archivo perfectamente. La integración remota de bases de datos a través de SSH también es buena.

Entonces, hice algunas pruebas con Netbeans y PHPStorm.

Parece que Netbeans es bastante decente en esto.

Netbeans
Soporta:

  • HTML / CSS / JS en un archivo PHP fuera deetiquetas
  • CSS en etiquetas HTML con atributos de estilo.
  • Terminaciones de ortografía (no sé si es útil o no, pero está ahí)

Falla con:

  • Las terminaciones no parecen ser conscientes del contenido que está escribiendo, por lo que es posible que la primera terminación no sea la que desea.
  • No hay soporte para HTML en PHP Strings. De hecho, las terminaciones aquí son tan malas como VScode.

PHPStorm

  • Bueno, funciona prácticamente en cualquier contexto, y funciona realmente bien y todas las terminaciones son precisas y lo que realmente quieres.

Fallos menores:

  • problema menor que parece cerrarse en autocompletar - clave concon atributos de estilo. Se puede volver a abrir con ctrl + espacio o escribiendo continuamente el atributo css
  • solo se activa en cadenas PHP si hay una etiqueta HTML presente (que de todos modos es un soporte suficientemente bueno)

PHPStorm definitivamente se siente mucho más cerca de VSCode (cuando funciona), luego Netbeans. Si quieres probar cómo debería funcionar realmente la función de autocompletar. Recomiendo probarlo en PHPStorm. Además, PHPStorm y VSCode comparten muchas funciones de edición similares listas para usar. En cuanto al rendimiento, creo que PHPStorm es más rápido. No experimentó ningún retraso incluso con la función de autocompletar. Netbeans notó cierto retraso con el autocompletado.

No sé cuánto tiempo pasará antes de que VSCode realmente solucione este problema, pero creo que cuando finalmente funcione. Funcionará mucho más cerca de cómo funciona PHPStorm y se convertirá al menos en el segundo mejor editor para autocompletar de PHP.

Recientemente cambié a VSCode de SublimeText, solo para encontrarme con este problema. Es un problema bastante molesto y también bastante básico. Tengo que volver a SublimeText por eso. Intenté asociar PHP con HTML, pero eso hace que todo el código PHP sea blanco, sin resaltado de sintaxis. ¡Terrible!

Pensé que después de 10 años finalmente tendría un solo software de Microsoft que se instalaría en mi computadora de forma permanente, pero si no pueden resolver un problema simple durante 2 años, volverá a la basura.

Escribir HTML dentro de un documento PHP causa

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

@ingageco No, no lo es. Lo sugiere la extensión PHP Intellisense de @felixfbecker. Pero no hay nada que pueda hacer, porque las extensiones no pueden especificar caracteres especiales de activación, por lo que puede evitar sugerir eso todavía.

Solo quiero saber una cosa. ¿Está en progreso (poco a poco, pasos de hormiga bebé) o simplemente se ha dejado de lado por completo?

@bsienn ¿Sobre qué? La extensión php intellisense está en progreso, mientras que el equipo de Code no quiere que se proporcione de forma nativa.

@ jens1o Gracias por responder. Entonces, php intellisense extension ¿estás hablando de la extensión Fleix Baker?
¿Entonces este hilo es redundante? Estoy confundido ahora. ¿Debo seguir su repositorio de complementos para progresar?

Sí, estoy hablando de la extensión de Felix, y sí, debes seguir su repositorio para estar actualizado.

... así que 2 años después, ¿todavía no hay solución para tener el autocompletado html en un archivo php? Realmente me gusta VS Code, no quiero tener que volver a Sublime por esto :-(

Ahora mismo solo tenemos que lidiar con eso

O no lo sabes porque hay otras opciones por ahí. Git y depurar por sí solos no me hará retroceder en mi flujo de trabajo. Nunca, cuando hay opciones que pueden no estar tan bien implementadas pero que por lo demás son adecuadas. Este problema debería haberse resuelto desde el principio.

El principal problema es que no sabemos quién lo proporcionaría. Idealmente, la extensión PHP ( @felixfbecker ?). También estoy abierto a agregar soporte al servidor de lenguaje HTML.
Toda la inteligencia HTML también está disponible como módulo de nodo .

@aeschli Como se describió anteriormente y en algunos otros hilos, no creo que exigir que todos los servidores de idiomas incorporen servidores de idiomas para todos los idiomas integrados posibles sea el enfoque correcto y sostenible. PHP comúnmente incorpora HTML y SQL. HTML comúnmente incorpora CSS y JS. JS de nuevo comúnmente incrusta HTML. Los autores de servidores de idiomas se hundirían en el soporte de todas las combinaciones anidadas y el usuario terminaría con servidores de idiomas instalados varias veces para el mismo idioma, pero ya no puede controlar qué servidor de idiomas usar para estos idiomas integrados, ni su versión. Como dijiste en https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369 (énfasis mío):

Es probable que genere dependencias y API específicas del servidor de idiomas entre servidores.
Nos gustaría mantener el acoplamiento bajo y las extensiones de idioma reemplazables .

Estoy totalmente de acuerdo con eso, y desde mi punto de vista, el enfoque de incrustación conduce exactamente a eso, no a mi solución descrita:

  • Brinde a los servidores de idiomas la capacidad de anunciar al _cliente_ qué rangos contienen idiomas integrados. Por ejemplo, el servidor de lenguaje PHP informa a VS Code los rangos de HTML en línea como HTML incrustado, el servidor de lenguaje HTML informa a VS Code los rangos de etiquetas <style> como CSS incrustado, rangos de etiquetas <script> como JS incrustado.
  • El cliente (VS Code) activa los servidores de idiomas necesarios para los idiomas integrados y les envía notificaciones didOpen con un URI virtual y el contenido del rango integrado.
  • Siempre que el usuario solicite el autocompletado dentro del rango de un idioma integrado, envíe esa solicitud al servidor de idiomas para el idioma integrado (posiciones relativas al inicio del rango integrado)
  • Muestre los resultados, resolviendo posiciones relativas al inicio del rango incrustado según sea necesario.

Con este enfoque, el usuario tiene control total sobre qué servidores de idioma usar (son reemplazables ) y los servidores individuales no necesitan molestarse en incorporar otros servidores de idioma como dependencias . Esto significa una experiencia consistente en todos los idiomas integrados frente a los idiomas de nivel superior y mantiene el SoC para que cada servidor de idiomas solo se preocupe por un idioma.

La notificación podría verse más o menos así:

/** 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
}

Ejemplo:

Dado un documento PHP como este:

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

el PHP langserver enviaría a 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 }}
    ]
  }]
}

lo que daría como resultado que el servidor de lenguaje HTML reciba textDocument/didOpen de VS Code con un URI como file:///foo.php#embedded1 y este contenido:

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

Encantado de discutir esto en un número separado si lo desea.

@aeschli Creo que el hecho de que esto siga rebotando como un problema del servidor de idiomas a pesar de que este problema todavía está abierto me dice que posiblemente nunca se solucionará.

@felixfbecker Nadie está diciendo que cada bit de formato sea detectable. Eso sería una locura, pero un mínimo de PHP / HTML detectable entre sí sería bueno. VSCode hace que trabajar con PHP / HTML sea innecesariamente difícil en comparación con otros IDE

@felixfbecker

¿Qué archivos deben editarse específicamente en el servidor de idiomas para que esto surta efecto? Miré el servidor de idiomas para HTML y no puedo ver exactamente qué hace con el estilo y el script.

Parece lo que hace: omite tokenizar cualquier cosa que no sea HTML de acuerdo con este archivo: 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

Pero, ¿cómo saben CSS y Javascript qué hacer? No veo cómo funcionan en absoluto según este archivo.

@aeschli, un servidor de lenguaje php y html ya puede funcionar razonablemente bien juntos dado que muchas de las características de vscode permiten que se registren múltiples proveedores. En muchos casos, se utiliza el primer resultado del proveedor que no es falso o, en algunos casos, se utilizan resultados múltiples. Entonces, siempre que cada servidor ignore lo que no entiende, fuera de <?php ?> para php, dentro de html, funciona. Puede ver esto en acción aquí https://github.com/Microsoft/vscode / issues / 670 # issuecomment -310822851

Para que esto funcione mejor.

  1. Permita asociaciones de archivos de identificación de varios idiomas para que se ejecute cada servidor de idioma.
   "files.associations": {
        "*.myphp": ["php", "html"]
    }  
  1. Use un archivo de gramática php / html / css / js combinado para resaltar la sintaxis

¿Existen soluciones más completas para la integración de idiomas? Probablemente. Y estoy de acuerdo en que no debería ser responsabilidad de ningún servidor en particular incorporar varios idiomas. No creo que ni siquiera deba ser responsabilidad de los servidores identificar qué idioma en particular se está utilizando, el usuario debe identificar el rango de documentos. Pero aparte de eso, para que PHP y HTML funcionen juntos, no creo que sea tan difícil.

@bmewburn Si no es tan difícil, ¿por qué esperamos 2 años después para una solución?
@felixfbecker dice que no es tan fácil de hacer. Pero este problema todavía está abierto, por lo que obviamente uno pensaría que podría ser una prioridad, pero cada lanzamiento lo ve pasado por alto. Entonces, hasta que alguien haga un cambio, seguiré siendo irritable y espero que eventualmente se solucione. Hasta entonces seguiré usando lo que funciona.

@felixfbecker Como mencioné en mi comentario , no hay requisitos aquí, cada servidor de idioma es libre de elegir el enfoque sobre cómo manejar el contenido incrustado: reenviar solicitudes a otros servidores o manejarlo por sí mismo. por ejemplo, utilizando una biblioteca / servicio vinculado. Todo depende de cuán estrechamente acoplados estén el contenido integrado y el idioma principal y la experiencia de usuario que el servidor quiera brindar. A menudo, el contenido incrustado necesita el contexto del idioma principal y debe adherirse a las reglas de escape. Eso no se puede comunicar fácilmente a un servidor de idiomas que solo ve un documento virtual. Esa fue la razón por la que nos alejamos de ese enfoque en el servidor HTML.
Pero si este es un enfoque factible para PHP, y el servidor de lenguaje PHP quiere que el servidor HTML maneje solicitudes para rangos dados, hagámoslo, las API para ello están todas ahí, todo se puede hacer en el cliente y con el protocolo LS personalizado .
Si hay algo en lo que pueda ayudar en el servidor o servicio html, hágamelo saber.

Las reglas de escape de

Pero si este es un enfoque factible para PHP, y el servidor de lenguaje PHP quiere que el servidor HTML maneje solicitudes para rangos dados, hagámoslo, las API para ello están todas ahí, todo se puede hacer en el cliente y con el protocolo LS personalizado .

El servidor de lenguaje PHP es utilizado por muchos otros clientes además de VS Code, sublime, neovim, atom-ide-php, Eclipse Che, etc. ¿Cómo podemos construir una solución que se pueda esperar que (eventualmente) funcione en todos estos clientes (ya que ese es el punto de LSP), mientras que al mismo tiempo se evita agrupar servidores HTML específicos (y CSS, JS ...) con requisitos de tiempo de ejecución específicos (por ejemplo, un desarrollador de PHP neovim tiene PHP instalado, pero no necesariamente NodeJS) el usuario puede decidir qué servidor de idioma utilizar para los idiomas integrados? Estaría muy emocionado si pudiéramos lograrlo de una manera universal para todos los idiomas, ya que sería un argumento súper fuerte para LSP.

@aeschli @felixfbecker Entonces, ¿esto significa que ambos van a intentar solucionar este problema? Eso sería sorprendente.

Esta es una característica que casi todos los codificadores PHP realmente la necesitan. Así que, por favor, no lo ignore simplemente porque no podemos hacerlo de una manera _correcta_.
Incluso si hay una solución ilógica o fea, todavía se puede usar temporalmente, en lugar de posponerla y no hacer nada.

Si estamos esposados ​​porque queremos ser lo más compatibles posible para las extensiones escritas originalmente para otro editor anterior, entonces tal vez deberíamos considerar escribir un nuevo estándar entre editores que supere lo que tenemos disponible hoy. No es que Microsoft no haya salido de sus límites antes y haya trabajado con otros grupos para construir un modelo de servidor de lenguaje estándar utilizado tanto en este como en otros editores. Solo tenemos que hacer lo mismo una vez más con respecto a cómo se manejan los escenarios de idiomas mixtos.

Es obvio que las extensiones de lenguaje mixto como @felixfbecker 's extensión PHP-intelisense o mi extensión vscode-jinja está siendo bloqueadas por este problema. Es genial si puede hacerlo en los idiomas principales, pero si la comunidad no puede expandirse fácilmente, simplemente le dará una mala experiencia a todo el editor en general. En este punto, este problema ha durado lo suficiente como para que la comunidad misma esté diciendo a otros que se vayan a otra parte, y yo estoy haciendo lo mismo.

@wholroyd estuvo de acuerdo, le estaba contando a la gente sobre este IDE como si fuera lo mejor desde el pan de molde y ahora estoy alejando activamente a la gente de él. Lamento haberlo integrado en uno de mis proyectos.

@aeschli ¿consideraría lo siguiente en el servidor de idioma html?

  1. Un languageId adicional para escuchar phtml . Esto proporcionaría una identificación compartida que las extensiones php y html podrían escuchar y una gramática textmate combinada.
  2. Si es necesario realizar modificaciones al escáner del servidor de idioma html para consumir todo dentro de <\?(php|=)?> , \?> como una sola etiqueta de cierre automático.

Los siguientes proveedores de extensiones php y html independientes funcionarían bien juntos sin incrustarlos en el servidor o piratear en el cliente.

  • lente de código
  • acción de código
  • terminación
  • definición
  • realce
  • enlace
  • símbolo doc
  • flotar
  • implementación
  • referencia
  • firma
  • símbolo del espacio de trabajo

Se necesitarían algunos trucos para que el formateo y el cambio de nombre funcionaran y los usuarios tendrían que nombrar los archivos de vista con una extensión diferente y asociarlos con phtml en lugar de php. Pero creo que este sería un buen comienzo con un mínimo de esfuerzo y riesgo.

@bmewburn Sí, suena bien, puedo hacerlo. ¿Cuál es la idea con el lenguaje 'phtml'? ¿Lo usará para reenviar las solicitudes mediante programación?

@aeschli sin reenvío de solicitudes, la idea es simplemente permitir que el servidor html registre proveedores para phtml y que un servidor php registre proveedores también para phtml y deje que vscode maneje las respuestas por separado.

Todos los proveedores anteriores tienen respuestas fusionadas o se ha utilizado la primera respuesta que no es falsa. Entonces, siempre que los servidores html y php separados no intenten devolver un resultado para un rango que no entienden, entonces todo debería funcionar. La identificación phtml es algo común para ambos servidores de idiomas, podría ser mejor tener asociaciones de archivos de múltiples idiomas, pero eso podría ser mucho más complicado. Además, supongo que mantener php y phtml separados evita enviar solicitudes al servidor html para archivos solo php.

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

Por el momento, registro mi extensión php con los selectores de documentos html y php, pero desconfío de anular la configuración del idioma html en esta configuración.

Una asociación de archivos solo se puede asignar a una única identificación de idioma. Pero los servidores de idiomas son libres de entregar documentos en cualquier idioma que deseen.
Posibilidad 1: HTML también se registra para php , participa en todas las solicitudes, pero solo devolverá resultados fuera de <?php .../?>
Posibilidad 2: Solo el servidor de idioma PHP se registra para php y reenviará todas las solicitudes <?php .../?> a todos los servidores de idioma registrados en el idioma phtml .

Entonces, el reenvío se puede lograr solo a través de commands.executeCommand ?

@bmewburn Creé # 36396. Llevemos nuestra discusión a ese tema.
Sí, con `commands.executeCommand 'como se hace aquí

Cualquier actualización relativa a html intellisense para php

Hola chicos, ¿hay alguna forma de mezclar la codificación php y html? El resaltado de HTML no funciona correctamente en el documento php :-(

835b4a9809

¿Parece que casi después de 2 años todavía no hay una solución adecuada?

¿Se resuelve este problema hasta?

No, todavía no es posible. Desafortunadamente, me vi obligado a regresar a ST3 debido a este problema. Espero que algún día solucionen esto y pueda volver.

@bmewburn Trabajo fantástico. Esto ha sido necesario durante tanto tiempo. Muchas gracias. Ahora no hay razón para no cambiar a VSCode

@ kilevvri1 comparte tu configuración. Para mi no funciona ..

@ expo87 Usé la configuración de configuración solicitada por defecto de PHP Intelephense
"php.suggest.basic": falso
Todavía no uso ninguna otra configuración.

Gorrón. Acababa de configurar mi entorno VSCode y tenía todos mis complementos listos. Luego me encontré con esto y todavía no hay solución.
Es una pena porque realmente me estaba empezando a gustar VSCode, pero ahora tengo que volver a Sublime Text.

@DannyMexen Prueba la extensión PHP Intelephense

@ kilevvri1 esta extensión requería instalar PHP. ¡Para mí, instalar en el sistema PHP no es necesario! ¿Por qué debería hacer esto? ¿Solo para ver php de sintaxis mixta normal y otro lenguaje? ¿Por qué esta opción no funciona de inmediato? Archivo de instalación de Sublime Text de 8,5 Mb: el resaltado mixto funciona bien. Archivo de instalación de CodeLite 50 Mb - el resaltado mixto funciona bien. ¡Y no es necesario instalar PHP!

Estoy de acuerdo con @ expo87 en que esta funcionalidad debería salir de la caja en VS Code. PHP Intelliphense ya es un paso adelante y hace posible la finalización automática, sin embargo, no puedo obtener ningún resaltado de sintaxis html.

@ kilevvri1 , oye, ¿cómo te va? Lo hice, no funcionó.

Sin embargo, todavía no puedo formatear HTML en un archivo .php. También estoy de acuerdo en que dicha funcionalidad debería estar lista para usar.

Todo lo demás está bien, pero solo una cosa que está arruinando mi experiencia. Es muy importante que mi código esté bien formateado debido a las políticas de la empresa. Aquí está la esperanza en el futuro.

Es engorroso, pero para archivos grandes, estoy cambiando el nombre de los archivos a .html, formateándolos y luego cambiando el nombre a .php (créanme, he intentado todos los trucos sin éxito).

Me gusta VSCode y le daré una semana. Si mi trabajo se ralentiza significativamente, volveré a ST 3.

Para aquellos de ustedes que se quejan de instalar PHP para que la extensión funcione, ¿en serio no tienen PHP instalado en su máquina local? ¿Está perdiendo el tiempo en serio poniendo el código en su servidor antes de probarlo y haciendo esto una y otra vez?

PHP debe instalarse localmente, eso parece un hecho. Si su aplicación no se ejecuta localmente, entonces tiene algunos problemas de desarrollo que resolver.

@TheColorRed para mí no es necesario ver el resultado de mi código localmente y luego cargar el archivo en el servidor. Usando WinSCP y ST - velocidad ligera y rápida de mi trabajo. Y, por supuesto, sé lo que hago :-)

@TheColorRed encontraste a alguien en Internet que estaba equivocado y pasivo y agresivamente despotricado sobre el valor del tiempo.

image

Si bien a todos nos encantaría que esto fuera una funcionalidad directa, el hecho es que no lo es. El equipo de VSCode considera que esto no es un problema o tiene una prioridad muy baja. @bmewburn ha creado la extensión PHP Intelephense con la que estoy contento frente a la alternativa.

@ expo87 No es necesario que explique su flujo de trabajo. Todos hacemos las cosas de manera un poco diferente.

Debido a esto
uso Smarty, por lo que puedo mover todo el HTML al archivo tpl, no dentro del código PHP -_-
y hacer mi código más limpio

@DannyMexen No tengo problemas para formatear HTML dentro de los archivos PHP. Apago el formato PHP Intelephense "intelephense.formatProvider.enable": false en settings.json

Todo lo que realmente quiero es que > no active una sugerencia de autocompletar (y me haga detener lo que estoy haciendo para descartarla). Es molesto cuando cierras un elemento HTML y quieres ir a la siguiente línea, pero si "accidentalmente" presionas enter, terminas con basura que debes eliminar en lugar de una nueva línea. Ninguna de las sugerencias anteriores parece solucionar este problema en particular.

Todo lo que se necesita para eso es https://github.com/Microsoft/language-server-protocol/issues/138.
@jrieken, ¿ podría comentar si la solución intermedia que propuso está dentro del alcance en el corto plazo?

Es posible que podamos implementar activadores de varios caracteres, pero no es tan trivial como parece. Hasta entonces, una extensión debe utilizar el último carácter de una posible secuencia de caracteres desencadenantes.

@ kilevvri1 sin dados. He seguido sus publicaciones pero fue en vano. ¿Puedo ver todas sus configuraciones, por favor? Quizás una lista de las extensiones que ha instalado si eso no es un problema.

Lo más cerca que estuve fue cambiar la asociación de archivos y jugar con embellecer, pero incluso eso no ayudó.
De todos modos, gracias a todos. No parece que haya una respuesta sencilla a esto.

Después de horas de intentarlo, no puedo hacer que esto funcione. Ni siquiera el complemento "PHP Intelephense" funciona para mí como sugirió @bmewburn . Escriba 'php' y presione tabulador, se expande en esto: http://s.zeshanahmed.com/a_1FC81B2B.png

Esta es la característica más básica cuando usa HTML con PHP. Al menos como desarrollador de temas de WordPress.

Puedo volver y revisar VS Code nuevamente, pero por ahora, volviendo a Sublime. Me encantó lo poderoso que me pareció VS Code al principio, pero estos pequeños problemas (o la falta de funciones) mantendrán a muchos desarrolladores de PHP / WP alejados de ellos.

aay estoy con @zeshanshani y @DannyMexen ; si no puedo escribir html dentro de mis archivos PHP, entonces este editor está

Maldita sea. Me gustó mucho, pero esta cosa (aparentemente simple) la ha vuelto inútil para mí.

Tal vez me equivoqué un poco aquí, este tema no es realmente a lo que me refería. De todos modos, como mencioné, me encantó lo poderoso que me parecía VS Code, así que revisé más y encontré una solución bastante fácil al problema.

El problema que enfrenté fue que cuando estás fuera de los bloques <?php ?> e intentas abrir bloques PHP con un atajo, no funciona.

Así que creé fragmentos HTML personalizados para expandir bloques PHP. Creé estos 3 fragmentos por ahora:

  • php - para expandirse a <?php ?>
  • if - para abrir IF condicional.
  • foreach - para abrir el bucle FOREACH.

Aquí está el código de fragmentos si alguien lo está buscando:

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

Y este es el resultado:

PHP Expand in HTML

El único problema aquí es que también expande fragmentos en archivos .html diferencia de Sublime Text, donde puede definir el alcance para que un fragmento en particular solo se expanda si es PHP: http://s.zeshanahmed.com/a_1FCD4A29.png

Por cierto, ¿alguien intentó habilitar la configuración emmet.triggerExpansionOnTab ? Permite la expansión de emmet HTML en el soporte de pestañas dentro de cadenas PHP.

Para realizar esta configuración, vaya a Configuración de usuario y agregue esta línea:

"emmet.triggerExpansionOnTab": true

Captura de pantalla: http://s.zeshanahmed.com/a_1FD14980.png

Aquí está el resultado:

HTML Expand in PHP Strings

Encontré una solución viable para mí (y posiblemente para otras personas).

Instalé la extensión "_Auto Close Tag_" de Jun Han. Luego, en mi configuración, agregué esto:

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

Ahora, mientras estoy en un archivo .php y fuera de las etiquetas <?php ?> , no obtengo $_cookie después de terminar de escribir una etiqueta html, y cuando escribo </ se completa automáticamente etiqueta de cierre apropiada.

Con suerte, esto ayudará a alguien más que estaba teniendo el mismo problema que yo.

@Chenzo, ¿su código de formato de solución alternativa? Si presiona Ctrl + Shift + I , ¿el código PHP y HTML se formatean / sangran en consecuencia?

@DannyMexen hmmm ... no. Aunque, ¿es algo nativo de VScode? Incluso mi complemento beautify no parece saber qué hacer con HTML mientras está en un archivo .PHP.

@Chenzo ya veo. Sí, lo mismo aquí. Esta es la única característica que necesito para trabajar para usar VSC como mi editor de texto exclusivo.

@zeshanshani @DannyMexen
si PHP Intelliphense no puede funcionar
intente reinstalar vscode y PHP Intelliphense
o
intente usar everedit , es un buen editor, pero no IDE, y solo windows

Gracias por la sugerencia @iscraft, pero estoy ejecutando Linux y estoy usando ST 3 para todos mis proyectos PHP.

Entonces, si sigo esto correctamente, los problemas de bloqueo se resuelven en el LSP (¡yay!), Y también se resuelven en el servidor de idiomas de Felix (¡yay!), Pero aún no se resuelve en VS Code Insiders.

El problema relacionado más pequeño con el autocompletado <?php presente está presente en VS Code Insiders, con el complemento Intellesense de Felix activo, así que supongo que también está esperando algo en VS Code.

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

Supongo que se saltará Insiders Edition y pasará a 1.19.

En settings.json , agregar la siguiente propiedad funciona bien.

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

Bueno, supongo que después de todo no era cierto. ¿Volver a Sublime Text?

files.association fue una de las cosas que probé. Nunca funcionó para mí.
La cuenta oficial de Twitter me acaba de decir que plantee el problema y, con suerte,
algún día, el equipo lo implementará. Es algo tan extraño no tener
esto fuera de la caja. Literalmente, lo único que me impide usar VScode
como mi editor exclusivo.
@Ken Newman esa es mi solución para todos los proyectos PHP.

El jueves 14 de diciembre de 2017 a las 10:31 p.m., Ken Newman [email protected]
escribió:

Bueno, supongo que después de todo no era cierto. ¿Volver a Sublime Text?

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
.

-
Saludos,

Danny Mexen.

¿Es posible que HTML ahora esté funcionando dentro del lenguaje / archivos PHP en 1.19? Acabo de probarlo y veo que funciona, incluso sin ninguna extensión ...

@jsieler en 1.19 y 1.20 todavía no funciona.

VSCode 1.19 no puede autocompletar html, atributo en archivo .php :( !!!!
Edición 2 año ...

HTML ha funcionado bien en archivos PHP con esta extensión. Probablemente este problema pueda resolverse.

phphtml

@bmewburn Yo también lo creo

No, personalmente, estoy esperando soporte sin necesidad de extensiones externas.

El problema clave también se aplica a otros idiomas.

Seamos claros sobre el problema que algunos de nosotros estamos informando aquí.

Por ahora, hablaré por mí mismo.

El problema NO es la falla del autocompletado HTML en archivos PHP, es FORMATEAR el código HTML en archivos PHP en el contexto de la función 'Formato de documento' de VSCode. ¿Está claro esto?

Si su método abreviado de teclado predeterminado es Ctrl + Shift + I es posible que solo se formatee el código PHP en un archivo PHP que también contenga código HTML. El código HTML no tiene ningún formato.

Esta característica viene de fábrica en ST 3, por ejemplo.

Cosas como autocompletar, etiquetas de cierre automático, etc. funcionan bien. Tab una línea PHP, y luego tabula una línea HTML, intente formatear el documento y sólo el código PHP se sangrará correctamente.

Espero que esto aclare las cosas para algunos aquí.

¿Quién de aquí está experimentando este problema junto a mí?

@bmewburn funciona solo si elige el modo de lenguaje HTML para archivos php, pero luego tiene un estilo incorrecto para la parte php del código :(

@ Perumal93

"archivos.asociaciones": {"* .php": "html, php"},

¡No funciona en absoluto! Simplemente usa el idioma que usó por última vez (php en este caso). Otros son completamente ignorados.

@SharakPL ¿Qué versión de VSCode estás usando?

@ kilevvri1 Acabo de actualizar de 1.19.1 a 1.19.2. Ningún cambio :(
Si elijo PHP como lenguaje de archivo, las sugerencias de html no funcionan.
Si elijo HTML como lenguaje de archivo, la parte de php tiene un estilo de texto sin formato y la salida muestra muchos errores.

@SharakPL ¿Tiene la ruta de su teléfono vinculada en la configuración de usuario de VSCode? No estoy en casa en este momento, pero cuando regrese ayudaré porque intellephense no es perfecto, pero hace maravillas cuando funciona bien, así que intentaré ayudar.

@SharakPL Me refiero a tu ruta PHP. Escribiendo en mi teléfono, lo siento.

@ kilevvri1 sí, tengo

"php.suggest.basic": verdadero,
"php.validate.enable": verdadero,
"php.validate.executablePath": "c: \\ wamp64 \\ bin \ php \ php5.6.25 \ php.exe",
"php.validate.run": "onType",

Debería ser como en Sublime Text 3, donde el código html siempre se sugiere en consecuencia en el modo de lenguaje PHP

@SharakPL
Según las recomendaciones de extensión:
"php.suggest.basic": falso

Prueba eso y házmelo saber

@ kilevvri1 sin cambios :(

¡Oh Ahora lo entiendo! Hay algún tipo de intellisense HTML en archivos con formato PHP, pero se administra a través de sugerencias de EMMET: https://docs.emmet.io/cheat-sheet/
Me seguía molestando no poder agregar un enlace simple escribiendo <a porque no hay ningún fragmento sugerido. Pensé que escribir solo a muestra lo que necesito, pero aunque tenía mi enlace, todos los atributos los tenía que agregar manualmente letra por letra. Con EMMET, simplemente puedo escribir a#mylink.btn.btn-success para obtener <a href="" id="mylink" class="btn btn-success"></a> . Eso es genial, pero para obtener un html más preciso, debería usar a#mylink.btn.btn-success[title="click me" target="_blank"] y esa nueva parte nuevamente debe escribirse letra por letra. Sería mucho mejor el estilo de SublimeText:
html_is

¿Hay alguna forma de que podamos agregar manualmente .php a la lista de extensiones de archivo en las que funciona HTML intellisense? Esto se puede hacer en Eclipse.

@graddev alguien sugirió
"files.associations": {"*.php": "html, php"}
en la configuración del usuario, pero esto no me funciona

cuando agregan esta oportunidad, ¿quién sabe?
era 2020, todavía no hicieron esto ....

Autocompletar HTML y CSS en un archivo PHP ... ¿Cómo?

Necesita agregar esta característica. El autocompletado de atributos para etiquetas HTML no funciona en absoluto.

Chicos, estoy usando una solución extremadamente desagradable, pero (un poco) funciona. Tengo un teclado con teclas de macro, así que construí macros para cambiar el modo de idioma. Presiono M1 si quiero HTML intellisense y M2 si quiero PHP.

@aeschli Esto NO resuelve el problema clave. El mismo problema también ocurre en una extensión que mantengo, en la extensión Smarty. Es realmente decepcionante que la extensión PHP destacada no tenga más soporte y que estés tratando de distraerte recomendando usar otra extensión que esté usando una solución de mierda. Aún así, el problema es más profundo. De hecho, este problema debe resolverse en el próximo sprint, y no debe considerar que se queda en el trabajo pendiente y restarle importancia al problema. ¿Dónde está su sentimiento por los intereses de la comunidad?

Lo siento, pero estoy un poco cabreado.

(De hecho, dije lo mismo hace 3 meses ).

Hay un número limitado de áreas en las que el equipo de VSCode puede trabajar y tener conocimientos expertos. Desafortunadamente, no somos desarrolladores de PHP. Es por eso que creamos una API de extensiones abiertas y un mercado. Por favor apóyenos probando las extensiones y ayude a los autores con buenos comentarios.
Entiendo que sería genial si todas las extensiones estuvieran integradas y se enviaran junto con VSCode, pero también queremos que la descarga sea pequeña.

Trabajamos con Ben, el autor de la extensión intelephense para mejorar la finalización de HTML en PHP. Creo que el enfoque adoptado es el correcto. Solo PHP como el lenguaje 'principal' comprende completamente el contenido HTML incrustado (por ejemplo, cómo está codificado, cómo se resuelven las variables de PHP) para brindar una buena experiencia de usuario. Según mi experiencia, otras soluciones genéricas resuelven solo una parte del problema y terminamos con cientos de problemas abiertos para los casos que no pueden resolver.

@ jens1o Lamento que esté frustrado y que no haya nada planeado en esta área en el futuro cercano. Ayúdenos apoyando nuestro ecosistema de extensiones o déle una oportunidad a intelephense (y también a otras extensiones PHP).

Muy bien, respiro bien y me calmé. Entonces, movamos el foco a mi extensión: ¿Se supone que debo mantener una bifurcación del servidor de lenguaje HTML para que mis usuarios completen HTML? Ese es el problema clave al que me refiero también. Creo que otros idiomas se ven aún más afectados. El problema es que Smarty es tan flexible que podría usarse para casi cualquier idioma (como csv, json), lo que sea. Porque es un sistema de plantillas que no está sujeto a restricciones de idioma. Entonces necesito mantener una bifurcación de un servidor de lenguaje csv (que no existe), uno XML, el JSON ... Me pregunto cuántos idiomas permiten los recursos técnicos

dale una oportunidad a intelephense (y también a otras extensiones de PHP).

Me voy a quedar con php-intellisense de @felixfbecker , porque me encanta el código base, aunque no tengo HTML intellisense (por eso estoy quemando este problema), y esa es la extensión oficial destacada (mientras lo estaba usando mucho antes de eso). Me encanta el concepto de servidores de idiomas, y creo que el siguiente paso para mejorar el concepto es contar con varios servidores de idiomas responsables de diferentes partes de un archivo.

@aeschli ¿Crees que una extensión puede hacer que la parte html en php tenga el mismo comportamiento que el archivo html independiente? incluyendo dejar que todos los complementos para html funcionen bien en esa parte?
El sistema de extensión es realmente importante como todos sabemos, pero no todas las funciones son adecuadas para complementos. Lo que realmente necesitamos es analizar un archivo en varios idiomas y tratarlos por separado. Esta debería ser una capacidad incorporada para un editor de código.

Y todos los archivos PHP son en realidad HTML, con un especialEtiqueta HTML. Solo el contenido de esta etiqueta no debe considerarse HTML. Es solo un lenguaje incrustado en HTML y no puede funcionar sin él (excepto CLI). Entonces, la pregunta no es sobre HTML en PHP, HTML es el contenedor principal. Y también se pueden incrustar muchos lenguajes en HTML, como css javascript vbscript svg perl java, no creo que ninguna extensión pueda hacer esto sin soporte oficial.

Gracias @popcorner. De hecho, quería decir lo mismo, pero lo escribiste mucho mejor. :)

¿Alguien sabe cómo ST hace esto? Incluso se agradecerá una explicación de alto nivel.

Mantengamos este problema sobre HTML intellisense en PHP. Mejoraré nuestros documentos con técnicas sobre cómo habilitar funciones de lenguaje para lenguajes incrustados. Creé # 47288 como punto de partida para esto.

@ jens1o enumeré algunos enfoques en la descripción de ese problema
@paldepind También agregué una respuesta a tu comentario .

Todavía me siento incómodo con esto. Entonces, afaik, este problema se puede cerrar porque no planea sacarlo para PHP, sino que vive con esa solución.

problema aún sin solución?

Estoy usando Laravel Blade ... Entonces no hay etiquetas PHP aquí ... Me pregunto cómo implementarán la función ...

Resuelto, pero no sé por qué ... Tal vez actualice el php inteliphense o use información privilegiada de vscode ...
test

@victormongi ¿qué php inteliphense usas?

@jfnadev No sé cómo funciona esto, pero esta es mi versión de vscode y mi versión de intelephense:
image

@victormongi tenemos la misma configuración

@jfnadev estas son mis extensiones instaladas:
extensions.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"
  }
]

¿Algo cambio? Tengo este mismo problema ...

+1 de mí también.

No puedo creer que este problema de hace más de 3 años aún no se haya resuelto, es mejor seguir usando SublimeText3

Creo que esta es una característica esencial. Solo estoy esperando que eso migre a VS Code 😞

No estoy seguro de que todos nos estemos refiriendo a lo mismo en este momento, TBH.

El lunes 14 de mayo de 2018 a las 13:53, Miqueias Penha [email protected]
escribió:

PHP Intelephense
resaltar-etiqueta-coincidente

¡Trabajo! s2

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-388790414 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/APewudsZw-Cu5mpgLrBJ8vUPagFUxB5Rks5tyXApgaJpZM4Gpk-J
.

-
Saludos,

Danny Mexen.

vscode no le importa nada sobre php. agregue esto por favor.

He instalado PHP Intelephense. El problema me resolvió.

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

Solo para que quede claro aquí.

El código HTML no se puede formatear (Ctrl + Shift + I) en archivos PHP.

@venoel ¿Estás diciendo que instalar PHP Intelephense te permite hacer
¿ese?

El miércoles 30 de mayo de 2018 a las 8:17 p.m., venoel [email protected] escribió:

He instalado PHP Intelephense. El problema me resolvió.

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
.

-
Saludos,

Danny Mexen.

@DannyMexen.
Quiero decir, recibo sugerencias para las etiquetas correctamente y las sangrías se aplican bien.

¡Microsoft está adquiriendo GitHub!
¡Pero este problema todavía!
lol!

@venoel
Debidamente notificado. Me alegra que funcione para ti.

No importa lo que intente, simplemente no puedo formatear el código HTML en archivos PHP.

El lunes 4 de junio de 2018 a las 11:00 a. M., Venoel [email protected] escribió:

@DannyMexen https://github.com/DannyMexen .
Quiero decir, recibo sugerencias para las etiquetas correctamente y las sangrías se aplican bien.

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
.

-
Saludos,

Danny Mexen.

VSCode definitivamente debería tener la opción de configurar 2 o más modos de idioma para tipos de archivos específicos para tener resaltado de sintaxis e intellisense para todos ellos al mismo tiempo. Lo tiene incluso ahora con 1 instancia de VSCode, solo en diferentes archivos con diferentes modos de idioma. Sinceramente, no sé por qué es tan difícil de implementar. Alguien incluso lo usó antes como una solución de trabajo, aunque no funciona y nunca lo hizo, pero definitivamente debería:

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

Sí, completamente de acuerdo @SharakPL. Nunca entendí la respuesta dada pero
Algunas personas más inteligentes que yo aquí han dicho que no es fácil
cosa a implementar. No soy lo suficientemente inteligente para hacerlo yo mismo, pero porque esto
La función viene de fábrica con ST3, por ejemplo, espero que sea un
característica predeterminada en cualquier otro lugar.

El miércoles 6 de junio de 2018 a las 9:33 p.m., SharakPL [email protected] escribió:

VSCode definitivamente debería tener la opción de configurar 2 o más modos de idioma para
tipos de archivos específicos para tener resaltado de sintaxis e intellisense para todos los
ellos al mismo tiempo. Tienes eso incluso ahora con 1 instancia de VSCode,
solo en diferentes archivos con diferentes modos de idioma. Honeslty yo no
saber por qué es tan difícil de implementar. Alguien incluso lo usó antes como
solución de trabajo aunque no funciona y nunca lo hizo, pero definitivamente
debería:

"archivos.asociaciones": {
"* .phtml": ["html", "php"]
}

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
.

-
Saludos,

Danny Mexen.

de acuerdo @DannyMexen incluso el bloc de notas ++ lo tiene. es 2018 y vscode todavía no tiene esta función. Es una locura.

_Cierra este problema, nunca va a suceder_

@bsienn ¿te importaría explicar? ¿Por qué algo común en los editores de texto simples es imposible en VSCode?

@SharakPL explicar? Lea el hilo de DEAD de 3 años, le explicará que no va a suceder.

@bsienn Está ahí con emnet, html en php está usando emnet, intenta aprenderlo ... https://docs.emmet.io/ por favor ... está funcionando de todos modos ...

@bsienn explícame esto entonces: ¿por qué te

@benyaminl emmet está bien, pero solo funciona cuando creo nuevas etiquetas. Es inútil cuando necesito editar etiquetas, es decir, agregar algunos atributos a un enlace , porque todavía no hay intellisense para html en archivos php

Ah, eso es lo que traté de ignorar jajaja ... es cierto de todos modos. Todavía
cuando creo que alguien intentó implementarlo, no es tan fácil

Enviado desde My Asus Pegasus X005

Pada tanggal Kam, 14 de junio de 2018 19.26, SharakPL [email protected]
menulis:

@bsienn https://github.com/bsienn explícame esto entonces: ¿por qué estás dando
¿Debería ser una razón para cerrar este hilo?

@benyaminl https://github.com/benyaminl emmet está bien, pero solo
funciona cuando creo nuevas etiquetas. Es inútil cuando necesito editar etiquetas, es decir, agregar
algunos atributos a un enlace <# m_4226514043244462616_issuecomment-359139115>,
porque todavía no hay intellisense para html en archivos php

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
.

Estoy tratando de convertir el uso de Brackets.io a VS Code ya que he leído muchas cosas buenas sobre Intellisense. Esta característica básica me lo impide. Me asusta que se remonta a 3 años y no se ha hecho nada.

¿Alguien sabe si hay un complemento o una forma de registrar archivos .php para usar .html autocompletar?

gracias por tu ayuda.

¿Alguna novedad sobre este asunto?
Creo que simplemente hacer la misma implementación para la edición mixta en archivos html, donde html + css + js funciona bien.

Otra alternativa es implementar en la API de extensión una forma de ver el extracto del archivo y cambiar el idioma seleccionado.

Hice esto porque me molestaba el HTML anidado en PHP, esto debería formatear en función de la configuración nativa que tenga para html.format y el formato del editor en guardar / escribir Formato HTML en PHP .

También obtengo autocompletado completo, intellisense haciéndolo de esta manera.

@ RiFi2k ¡Hola! Intento instalar tu extensión, pero para mí nada cambia. En la descripción se establece nada que hacer para que esta extensión funcione.

@BxDev ¡Oye! Entonces necesitarías tener
html.format.enable = true
editor.formatOnSave = true
y cualquier otra configuración en vscode relacionada con el formato html o el formato del editor que desee, configure.

Luego, quiere formatear HTML anidado en archivos .php, por lo que también debe asegurarse de tener un archivo .php con un código como este:

<?php
$hi = true;

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

Cuando guarde, debería corregir los divs de HTML

Si sigues teniendo problemas, avísame que te ayudaré a ponerlo en marcha.

@ RiFi2k gracias por las respuestas!
Escribo esto en la configuración del usuario:
"html.format.enable": true, "editor.formatOnSave": true
Después, creo un archivo php con tu ejemplo, pero no funciona :-(
l213wgru87dzrr

@BxDev En realidad, parece que hizo su trabajo perfectamente

<?php
$hi = true;

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

a

<?php
$hi = true;

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

Eso es todo lo que hace, con suerte no estaba confundido acerca de la funcionalidad

@ RiFi2k ohh yeea :) Lo tengo :) Lo siento. Pero para mí, muy importante, es resaltar la etiqueta de par en documentos mixtos php / html / js / css. ¡Gracias por tu trabajo!

Este es un problema de 3 años y nunca se resolverá, según mi opinión.
Esto es algo tan básico en un editor y hace que mi trabajo diario sea increíblemente molesto.

Probablemente tendré que volver a ST3, porque siento que VScode, especialmente últimamente, se ha estado moviendo hacia atrás al agregar todo tipo de características sofisticadas pero ignorando sus problemas centrales.

@TheDutchCoder Es porque nadie quiere codificar PHP en estos días, que es lo correcto. :RE

@steebcheen, por favor, continúe con el tema. Gracias

@Tyriar De
EDITAR: Oh, está asignado ... Está bien

@ RiFi2k ¡Hola y gracias por intentar ayudar! Probé tu extensión pero no funciona. Probé la configuración que proporcionaste, pero aún no hay dados. ¿Quizás depende del formateador php en uso? ¿Qué extensión sugieres usar para habilitar el formato php en primer lugar?

OK, actualización rápida: funciona al guardar, ¡lo cual es genial! No funciona con el menú contextual del botón derecho. Supongo que es un compromiso justo :)

Pensé que el problema es solo de mi preferencia. Cuando mezclé el código HTML con php, el formato es realmente desordenado, como cuando presiono la pestaña, el tamaño de la pestaña será 4 y luego agregue una nueva ahora el tamaño de la pestaña es 2. Me gustaría cambiar de ST3 a VSC, pero esto me detiene de cambiar a VSC. Supongo que tengo que quedarme en ST3 por ahora.

@thanasisHS Lo siento, acabo de ver esto.

Mi extensión solo se ejecutará si el formato al guardar está configurado y no se ejecuta como un formateador PHP real, se ejecuta enBeforeSave.

Prácticamente publiqué toda mi configuración como algunos gists, siéntete libre de que me tomó meses de trabajo hacerlo perfecto. Para formatear, uso PHPCBF pero uso este, sé que solo tiene 300 instalaciones, pero actualizó y fusionó el código de todas las extensiones phpcbf muertas, es dinero.
https://marketplace.visualstudio.com/items?itemName=ValeryanM.vscode-phpcbf

Aquí están mis ideas, si alguien más está interesado también en mi configuración. Hace php, js, scss, css, vue - formateo automático y linting con eslint, stylelint, phpcbf, phpcs, más bonito. Es un latido una vez que lo tienes todo configurado.

Global
https://gist.github.com/RiFi2k/d43e84788b1798252f30cac28b6f6eda

Proyecto
https://gist.github.com/RiFi2k/42e294f3785bdbbc2641c4b18955e16f

Todos los dotfiles, composer.json, package.json, php ruleset
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708

Cerrando este tema. He explicado el motivo en la descripción del problema anterior.

Gracias. El código se arruina más cada día. Pensé que en Microsoft estaba bien con toda esta iniciativa de FOSS, pero aún no es independiente, sino que se enfoca en ganar dinero publicitando Github y Azure.

@ jens1o Estoy confundido, esta decisión tiene que ver con fomentar el ecosistema OSS. Las extensiones a las que se hace referencia son proyectos de OSS, por favor ayude a mejorarlos. Los recursos del equipo de VS Code no son ilimitados.

Además, no olvide nuestro Código de Conducta y comunicémonos de manera respetuosa.

Simplemente no entiendo por qué priorizas tareas sobre otras, aunque la comunidad definitivamente las quiere. Solo escucho "reducción de problemas" y "fuera de alcance", y, oh sí, "recursos limitados" (es por eso que la comunidad está aquí, jejeje). Nadie se queja de que las cosas no lleguen pronto, pero un poco más de enfoque en las necesidades de la comunidad definitivamente ayudaría. ¿Por qué debemos mantener bajo el número de problemas, aunque no contaminen nada? En mi opinión, la hoja de ruta del Código pasó el punto óptimo hace 2 iteraciones. Ahora, se trata de ganar dinero (con la gran comunidad ganada a lo largo de los años; lo estoy usando desde la primera demostración de Build(); todos

Estoy diciendo que ya no me siento bienvenido en esta comunidad (y honestamente estoy decepcionado), no lo ataco personal de ninguna manera, por lo que no hay razón para hacer referencia al COC aquí. Es parte del software FOSS tener discusiones abiertas.

Pero hablando de COC, citaría esto:

Entender los desacuerdos

No entiendo por qué quieres cerrarme, solo porque no estoy de acuerdo con la política que haces.

Estoy tratando de entender por qué cambió su política, así que, ¿podría darme más detalles?

@egamma No creo que su razón para cerrar este problema sea razonable. Entiendo que el código de Visual Studio no puede y no debería proporcionar todas las funciones listas para usar, pero el soporte HTML para el lenguaje PHP debería ser una de las funciones más básicas para un editor PHP. Quizás la mayoría de las funciones de PHP deberían ser proporcionadas por extensiones, pero esta no. Muchos editores tienen esta función, incluso el editor de texto simple, Notepad ++, tiene esta función. Esto es parte de la gramática básica de PHP y no puede escribir PHP sin él. Un editor no debería decir que es compatible con PHP sin esta función, ya que no puede leer PHP de la manera correcta.

¿Y por qué Javascript en archivo HTML funciona bien y CSS en HTML funciona bien sin ninguna extensión en vscode? Parece que vscode tiene esta característica pero no quiere hacer una similar para PHP, eso es injusto.

Esta característica es realmente importante para los usuarios de PHP, y la mayoría de los usuarios no intentarán buscar estos problemas y no saben nada sobre las extensiones que pueden ayudarlos a obtener estas características básicas y necesarias. Estos usuarios pueden simplemente descargar este editor, instalarlo y encontrar este "error", luego desinstalarlo inmediatamente y obtener una muy mala impresión sobre vscode. No dirán nada aquí. Todos los usuarios que quieran compartir sus opiniones aquí son las personas que realmente quieren que vscode sea mejor. La sensación de escribir código PHP sin esta función es realmente demasiado dolorosa, no puede distinguir los bloques, debe contar las etiquetas html manualmente o convertir el formato de archivo de php a html, y de html a php muchas veces. Todos los demás idiomas que he probado en vscode no tendrán tan malos sentimientos sin ninguna extensión instalada. Los usuarios no sabrán el motivo, solo se preocupan por la experiencia del usuario. Considere esto y haga algo, incluso agregar un poco de resaltado también es bueno:

  • proporcionar algún soporte básico para HTML, o
  • proporcione una extensión oficial con esta función e instálela automáticamente cuando utilice PHP
  • o incluso una simple recomendación para todos los usuarios de PHP e instale la extensión recomendada con un clic, luego obtenga esta función y haga que vscode sea realmente compatible con PHP

De acuerdo, @popcorner está en lo correcto, esto es esencial para los desarrolladores de PHP y considerando que WordPress potencia ~ 30% de Internet o más y casi todos los temas o complementos tienen PHP anidado con HTML en cada archivo de plantilla. Así que básicamente hay una cantidad ridícula de usuarios que necesitan esto.

Ahora, en realidad, creo que el núcleo de todo este problema radica en el hecho de que no puede registrar múltiples extensiones de formato al mismo tiempo. Básicamente, hay una especie de carrera en ese anzuelo y solo uno puede ganar, además, como usuario, no puedes ver qué está tratando de correr, cuándo y cuál realmente corrió. Entonces, para un archivo PHP, curiosamente va a ir con una extensión de formato que hace código PHP sobre HTML. Pero si pudiera encadenar extensiones de formato y hubiera un orden de enlace o algo que se pudiera cambiar, entonces podría registrar un PHP y un HTML y luego establecer la prioridad / orden para que uno se ejecute primero / último. Por ejemplo, todo este problema se soluciona si puede ...

Paso uno ejecute PHPCBF o una extensión de formato PHP similar.
Paso dos ejecute el formato html js-beautify, que de todos modos omite todo el PHP y solo hace el HTML, que es exactamente lo mismo que hago en mi extensión, Format HTML in PHP, para solucionar el problema. Pero tengo que ejecutarlo onBeforeSave en lugar de usar el registro de formato predeterminado, pero esta no debería ser la solución.

Entonces, para resumir, es muy necesario, pero en lugar de solucionar / no solucionar el problema, ¿por qué no explorar mi idea anterior y luego terminar teniendo una experiencia mucho mejor con cada idioma y formato, para usuarios y desarrolladores de extensiones?

¿Fue útil esta página
0 / 5 - 0 calificaciones