Vscode: [php] Fornece intelisense html

Criado em 25 nov. 2015  ·  234Comentários  ·  Fonte: microsoft/vscode

Em arquivos PHP não há preenchimento automático de tags html, adicione.


EDITAR 13/09/2018 @egamma : VS Code fornece apenas suporte básico para PHP, mas existem extensões PHP poderosas disponíveis no mercado:

Esse recurso deve ser fornecido por essas extensões (na verdade, a Intelephence já o oferece). Experimente essas extensões e ajude a torná-las melhores, preenchendo problemas e solicitando solicitações.

Este problema perdeu o foco e se transformou em uma discussão se o VS Code deve fornecer suporte a PHP pronto para uso. No entanto, como com muitas outras linguagens como C #, C ++, Go, Python, Rust, não queremos empacotar o PHP com o VS Code, mas sim contar com nosso grande ecossistema de extensão. Portanto, estou encerrando este assunto.

feature-request help wanted languages-basic php

Comentários muito úteis

Não posso ajudar, mas outro +1000 meu. HTML / CSS / JS em PHP é comum como um arquivo misto. Tentei Visual Studio + VS.php completo - também sem suporte. Eu fico me perguntando por que isso é esquecido em todas as ferramentas de desenvolvimento da Microsoft que supostamente oferecem suporte a PHP. Sim, o suporte a PHP existe, mas é inútil se não tivermos IntelliSense (conclusão de código e sugestões de código) para HTML / CSS / JS também.

O mesmo vale para blocos JS e CSS inline em HTML.
Se eu definir em settings.json:
"files.associations": {"*.php": "html"},
... do que o PHP IntelliSense (obviamente) não funciona, e o HTML entra em ação. Mas o CSS embutido usando style=" ...something... "; não oferece nenhuma propriedade CSS ao escrever entre aspas do atributo de estilo.
Da mesma forma, se eu iniciar um bloco <script> , você não obterá o IntelliSense para JS, enquanto a abertura do arquivo .js reage normalmente.

Apoio a sugestão de que (se for mais fácil):

  • <?php ... ?> deve iniciar o PHP IntelliSense
  • fora de <?php ... ?> deve iniciar o HTML IntelliSense
    mas também
  • dentro de <style> ... </style> e style=" .... " devem iniciar o CSS IntelliSense
  • dentro de <script ... > e <script> ... </script> devem iniciar o JS IntelliSense

Além disso, se possível, uma sugestão de @TheColorRed deve ser considerada, ou seja, se você estiver dentro
<?php ... ?> mas está escrevendo uma string, por exemplo, $string="..." do que deveria considerar ativar o IntelliSense de HTML também. O fato é que os desenvolvedores de PHP costumam usar algo como:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. para evitar blocos com tags de abertura / fechamento php o tempo todo, como:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

Também @egamma , embora não tenhamos a

Espero que haja um consenso de que esse recurso deve existir, e que o suporte PHP atual sem ele é apenas um suporte parcial para a maioria dos desenvolvedores de PHP.

PS E mais uma vez, sem querer soar como um crítico - eu realmente gosto do VS Code até agora, e sou muito grato a todos que contribuíram e continuam contribuindo para este projeto maravilhoso!

EDITAR:
Simplesmente incluir / referenciar um arquivo .ts para outro trabalho?
Por exemplo, em /languages/php/common/php.ts
incluem: /languages/html/common/html.ts
incluem: /languages/css/common/css.ts
incluir: ...

Embora possa haver alguma sobreposição com os nomes de tag / atributo / função, nada vem à minha mente no momento ... E para o IntelliSense não é um problema, eu acho que cada um teria um ícone diferente, apenas o código de cores poderia ser alterado em tais casos ... Estou faltando alguma coisa?

Todos 234 comentários

Parece razoável. Os provedores de Intellisense de tag HTML estão localizados aqui , pode ser apenas uma questão de conectar esse módulo ao código PHP. Também garantindo que eles só estejam disponíveis fora das tags <?php , se bem me lembro como o PHP funciona corretamente.

@Tyriar fora das tags <?php significa o quê? Eles estão disponíveis fora das tags <?php ?> em arquivos PHP?

Fora de <?php ?> está HTML, dentro está PHP. Portanto, o preenchimento automático de HTML só deve estar disponível fora das tags <?php ?> .

@Tyriar Mas agora eles não estão disponíveis fora das tags <?php ?> em .php arquivos, talvez eles só estejam disponíveis em .html arquivos.

Por favor, adicione esse recurso rapidamente, acho que é um recurso básico, obrigado pessoal.

@osjn obrigado por nos ajudar com a priorização, comentando. Uma maneira ainda melhor de nos ajudar seria uma solicitação pull com uma implementação.

Talvez seja só eu, mas acho que seria legal se o intellisense estivesse disponível dentro das strings de php também.

Um voto positivo de mim também. Este recurso é necessário, por favor.

Quase todo desenvolvedor de PHP precisará desse recurso para escolher o VSCode como seu editor principal.

Precisamos que esse problema seja corrigido para atingir mais desenvolvedores.

Ontem eu tentei bater minha cabeça contra esse problema, mas infelizmente minha falta de habilidades em TypeScript está me impedindo de ajudá-lo nesse assunto.

Eu preciso disso!

Mesmo. Simplesmente +1000

Não posso ajudar, mas outro +1000 meu. HTML / CSS / JS em PHP é comum como um arquivo misto. Tentei Visual Studio + VS.php completo - também sem suporte. Eu fico me perguntando por que isso é esquecido em todas as ferramentas de desenvolvimento da Microsoft que supostamente oferecem suporte a PHP. Sim, o suporte a PHP existe, mas é inútil se não tivermos IntelliSense (conclusão de código e sugestões de código) para HTML / CSS / JS também.

O mesmo vale para blocos JS e CSS inline em HTML.
Se eu definir em settings.json:
"files.associations": {"*.php": "html"},
... do que o PHP IntelliSense (obviamente) não funciona, e o HTML entra em ação. Mas o CSS embutido usando style=" ...something... "; não oferece nenhuma propriedade CSS ao escrever entre aspas do atributo de estilo.
Da mesma forma, se eu iniciar um bloco <script> , você não obterá o IntelliSense para JS, enquanto a abertura do arquivo .js reage normalmente.

Apoio a sugestão de que (se for mais fácil):

  • <?php ... ?> deve iniciar o PHP IntelliSense
  • fora de <?php ... ?> deve iniciar o HTML IntelliSense
    mas também
  • dentro de <style> ... </style> e style=" .... " devem iniciar o CSS IntelliSense
  • dentro de <script ... > e <script> ... </script> devem iniciar o JS IntelliSense

Além disso, se possível, uma sugestão de @TheColorRed deve ser considerada, ou seja, se você estiver dentro
<?php ... ?> mas está escrevendo uma string, por exemplo, $string="..." do que deveria considerar ativar o IntelliSense de HTML também. O fato é que os desenvolvedores de PHP costumam usar algo como:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. para evitar blocos com tags de abertura / fechamento php o tempo todo, como:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

Também @egamma , embora não tenhamos a

Espero que haja um consenso de que esse recurso deve existir, e que o suporte PHP atual sem ele é apenas um suporte parcial para a maioria dos desenvolvedores de PHP.

PS E mais uma vez, sem querer soar como um crítico - eu realmente gosto do VS Code até agora, e sou muito grato a todos que contribuíram e continuam contribuindo para este projeto maravilhoso!

EDITAR:
Simplesmente incluir / referenciar um arquivo .ts para outro trabalho?
Por exemplo, em /languages/php/common/php.ts
incluem: /languages/html/common/html.ts
incluem: /languages/css/common/css.ts
incluir: ...

Embora possa haver alguma sobreposição com os nomes de tag / atributo / função, nada vem à minha mente no momento ... E para o IntelliSense não é um problema, eu acho que cada um teria um ícone diferente, apenas o código de cores poderia ser alterado em tais casos ... Estou faltando alguma coisa?

se não for adicionado, tenho que mudar de editor, agora uso 2 editores ...

Por favor, como posso desativar o HTML IntelliSense quando estou trabalhando com um PHP?

Esta opção é um pesadelo, porque não consigo tabular em uma variável porque crio automaticamente uma tag XML / HTML.

Não misturo meu código PHP com o HTML, e não irei cometer esse erro nunca, por favor, pelo menos acrescente a opção de desativá-lo no "modo" do PHP.

Para PHP, você deve tentar o crane intellisense https://marketplace.visualstudio.com/items?itemName=HvyIndustries.crane

@TheColorRed Crane Intellisense tem o problema. É de longe a extensão PHP do VS Code mais popular, então acho que é com isso que a maioria das pessoas está relatando seus problemas.

mesmo aqui, precisamos de preenchimento automático para CSS / JS em HTML. Caso contrário, mudar para o Mônaco não é uma opção real :-)

Acabei de experimentar o vscode, mas, por falta desse recurso, apenas me impeça de usar este IDE. Forneça este recurso, pois é um recurso obrigatório para cada IDE.
Agradeço antecipadamente.

Isso é muito necessário. É incrivelmente irritante não obter a inteligência adequada ao colocar o código php dentro de um arquivo html ou ao colocar html em um arquivo php.

Um grande recurso que estou perdendo e que está impedindo que eu e meus colegas usemos o vsCode como nosso editor principal.

Este é um assassino de negócios para mim, sem esse recurso muito comum. É uma pena ... EU MUITO, MUITO, MUITO amo esse IDE. Se isso for adicionado, ficarei muito feliz.

@egamma Vou acertar ao enviar um PR, depois de gastar uma quantidade desnecessária de tempo tentando encontrar o código para modificar porque você decidiu ser passivo-agressivo e sarcástico em vez de oferecer a menor orientação para aqueles que podem ser capazes ajudar.

@TechnikEmpire, por favor, não leia muito sobre um comentário que fiz em dezembro de 2015, enquanto estávamos nos recuperando do grande lançamento do VS Code em novembro. Peço desculpas se este comentário soou sarcástico.

Há um bom progresso em relação ao Intellisense para PHP. Se você deseja contribuir, sugiro contribuir para o projeto php-language-server qual @felixfbecker está trabalhando. Felix também é o autor do php-debugger . Estes são os repositórios relacionados:

Mais informações sobre a abordagem do servidor de linguagem e o protocolo do servidor de linguagem podem ser encontradas aqui.

@egamma Mas há alguma maneira de o servidor de linguagem PHP "delegar" ao servidor de linguagem HTML do VS Code? Parece que https://github.com/Microsoft/vscode/issues/1751 cobriria isso

@felixfbecker agora que extraímos o servidor de linguagem HTML, o primeiro cenário que queremos investigar é como integrá-lo ao servidor de linguagem CSS para que possamos fornecer o Intellisense em seções CSS. Isso corresponde ao primeiro cenário que você menciona no # 1751 e que também foi solicitado no # 8928.

Este trabalho não foi feito para setembro e agora está planejado para outubro.

Obrigado! O suporte a CSS dentro do trabalho HTML está planejado para outubro, e quanto ao suporte a JS, também conhecido <script> ?

@egamma há alguma mudança ou melhoria? Meados de outubro passou, então só queria verificar novamente. até agora, depois de 5 meses, ainda não estou usando o VS Code como meu editor principal por causa do problema e tenho certeza de que há centenas de almas silenciosas por aí. Estou feliz que haja algum trabalho com mistura de HTML / CSS, mas realmente precisamos de um suporte completo para HTML + CSS + JS + PHP ...

@luxzg HTML + CSS progresso de acordo com o plano de outubro, HTML + CSS + JS é um exagero. Siga nosso progresso aqui: https://github.com/Microsoft/vscode/projects/2

Para mim, os inliners do PowerShell em algum tipo de arquivo devops, editar esse recurso também ajudam muito. Pode ser alguém ter uma extensão cuja sintaxe é alterada automaticamente quando um cursor está localizado em algum bloco de código?

FWIW, o plug-in "HTML Snippets"

@matthewringer o plugin não está funcionando para mim

Este é um problema para mim também .. não houve nenhum movimento sobre isso ainda?

Esperamos que isso seja adicionado em breve. Sem isso, tenho dúvidas de que qualquer desenvolvedor de php irá usá-lo.

Sublime está me coçando muito para reverter (TM). VSCode se você me ama do que salvar minha alma e adicionar o suporte HTML CSS e JS, por favor.

Bem mais de um ano e AINDA nenhum suporte para isso? Mesmo? ... e aqui eu pensei que a MS finalmente fez um produto que não era lixo.

Este é o único recurso que, para mim, torna o PHPStorm muito melhor do que qualquer outra coisa que experimentei. Se eles pudessem finalmente implementar o suporte de realce de intellisense / sintaxe adequado para PHP com HTML, CSS, Javascript, então poderíamos finalmente ter um editor de PHP leve realmente bom.

É muito chato agora digitar HTML, CSS ou Javascript e obter conclusões de PHP em todos os lugares. Você também pode usar outro editor sem o preenchimento automático.

Não pode ser tão difícil apenas classificar arquivos .php como HTML e, em seguida, analisar apenas o que está dentro das tags <?php ?> como código PHP, pode?

+1 de mim, por favor, misture-os :)

Acabei de começar a usar o VScode enquanto aprendia a programar e é ótimo - amando a velocidade, o polimento e a facilidade de uso - coisas mágicas. Só hoje percebi que não é pegar HTML dentro de arquivos PHP (murchar dentro ou sem tags PHP), o que está dificultando a correspondência de tags HTML. Estou tendo que mudar para outro editor que não é o ideal.

Desculpe, não tenho experiência o suficiente para tentar remotamente adicionar / corrigir isso sozinho, mas realmente apreciaria se alguém da Microsoft pudesse adicioná-lo. Eu costumo incorporar código HTML, Javascript, CSS e SQL em meus arquivos PHP. Seria ótimo se tudo pudesse ser detectado como em outros editores, embora eu tenha certeza que não é trivial adicionar essa funcionalidade. Eu realmente odiaria ter que deixar o VScode todo junto, pois isso torna a experiência de aprendizado agradável.

@egamma @aeschli, isso está acontecendo há um bom tempo - você mencionou que queria resolver esse problema com os servidores de linguagem HTML e CSS, acabou? Acho que isso se resume à capacidade de um servidor de idioma definir certos intervalos no documento em que todos os recursos de idioma devem ser tratados por um servidor de idioma diferente. Assim, um LS PHP pode, após analisar um documento, declarar quais intervalos são HTML, um LS HTML pode declarar quais partes são JS ou CSS, um TS / JS LS pode declarar quais partes são SQL ou GraphQL.

@felixfbecker sim, este suporte está disponível desde alguns marcos, por favor, veja

image

O servidor de idioma html pode ser encontrado aqui https://github.com/Microsoft/vscode-html-languageservice.

A abordagem foi imitada para o suporte à linguagem vue https://github.com/octref/vetur

// fyi @aeschli

@egamma Então, como ele entrega a conclusão para um servidor de idioma diferente? Existe alguma documentação sobre isso? Presumi que seria necessária uma extensão LSP

deixando isso aqui

@felixfbecker Atualmente não temos nenhuma outra documentação exceto o código, desculpe. Eu sugiro que você se conecte com @aeschli para um mergulho profundo quando você quiser começar a adicionar este suporte para php.

@felixfbecker

Parece que ainda não há uma maneira generalizada de fazer injeção de linguagem, mas a implementação da extensão html é bastante direta.

Acho que agora atingiu um bom meio-termo: o VSCode oferece pacotes LS html / css para aliviar a implementação do suporte à linguagem embarcada. Enquanto isso, ele mantém a flexibilidade para que cada LS possa reagir de maneira diferente com base em seu contexto.

Por contexto, quero dizer, a extensão html pode baixar jquery.d.ts quando uma tag de script com jquery é incluída (não se aplica ao vue), ou a extensão vue marca cada arquivo .vue como um componente para fazer a resolução do módulo (não aplicar a html).

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

Existem alguns bugs que querem que encontremos uma solução geral para conteúdo incorporado, mas acho que não teremos sucesso nisso. Existem diferenças sutis em todos os casos em que pensamos que é melhor ter uma implementação específica de cada idioma do host para a melhor experiência do usuário.

Mas concordo que faltam documentos para a implementação de suporte a linguagens incorporadas. Acho que vou escrever um pouco assim que terminar todos os recursos principais de minha extensão vue.

Isso é muito lamentável. Não podemos adicionar esse recurso ao LSP? O servidor de idioma é o que analisa os documentos em um AST, portanto, apenas o servidor de idioma tem conhecimento sobre qual parte do documento está escrita em um idioma diferente e deve ser entregue. Portanto, agora a extensão _também_ precisa analisar o documento? Isso na maioria dos casos nem mesmo é possível porque o analisador depende de um tempo de execução diferente do Node (PHP, Java, ...).

Não imagino que adicionar isso ao LSP seja tão difícil, por exemplo, o servidor poderia apenas enviar uma notificação para um URI com uma matriz de um intervalo + um modo de idioma. Do que qualquer editor (não apenas VS Code) poderia usar um servidor de idioma diferente para esse intervalo.

@egamma Não consegui encontrar o código no repositório que

@felixfbecker Erich quis dizer: a incorporação de serviços de idiomas diferentes é feita dentro do _o servidor_.
Você pode, por exemplo, ver isso nas dependências do servidor html.
Dessa forma o servidor é autocontido e tem total controle configurando o contexto da linguagem embarcada (as bibliotecas JavaScript estão disponíveis no conteúdo embarcado, versão da linguagem (ES5, ES6 ..)).

É aí que a solução que você delineou (comunicação entre servidores de linguagem) começa a ter problemas. Provavelmente leva a APIs específicas do servidor de linguagem e dependências entre os servidores.
Gostaríamos de manter o acoplamento baixo e as extensões de idioma substituíveis.

Dito isso, cada servidor de idioma é livre para escolher sua abordagem. Você pode usar mensagens LS personalizadas para fazer isso. É assim que implementamos no lançamento de novembro. O servidor envia a solicitação de volta ao cliente, o cliente pede outras extensões com base em documentos virtuais que contêm apenas o conteúdo da linguagem embutida.

Eu sugiro que continuemos a discussão é um assunto separado. Pode registrar um novo problema com as sugestões que você tem sobre como estender o LSP?

Chiming aqui também. Amando o VS Code até agora, no entanto, a ausência de competição de tags HTML dentro do PHP é um verdadeiro obstáculo. Temporariamente, estou mudando para o modo de linguagem HTML para arquivos PHP, mas não sei como isso vai funcionar no final.

Me apaixonei pelo VSCode até descobrir que faltava esse recurso básico. Voltou ao sublime por enquanto.

Esse recurso está me impedindo de mudar para o VSCode.

Este é um recurso extremamente necessário. +99999

Uma característica básica que existe em todos os outros editores: |

Deixar de seguir

Alguma atualização sobre quando podemos esperar isso?

Em minha opinião, isso estaria diretamente relacionado ao # 765.

: +1: Bom editor e não tem uma função tão simples :(

Imagino que, se isso não tiver sido fechado imediatamente, será potencialmente consertado um dia. Espero que sim - quanto mais cedo melhor.

A ÚNICA coisa que me impede de fazer a transição do Atom para o VSCode é a falta desse recurso crucial :(

Então, alguém pode sugerir algum editor alternativo para PHP / HTML / JS da web full stack? Realmente amo o VSCode, mas essa falta de recurso é apenas um bloqueador para mim. O PHPStorm ou o WebStorm são bons?

Como mantenedor do PHP IntelliSense, esse segmento é um pesadelo para se inscrever. Se você quiser marcar o problema com +1, dê um polegar para cima. Todos esses comentários de +1 apenas bagunçam o tópico e os mantenedores de spam com notificações, sem adicionar qualquer valor à discussão. E para todos dizendo "este é um recurso tão simples": na verdade não é. Mas se você pensa assim, fique à vontade para fazer uma RP.

@felixfbecker eu acho que ele destaca como as pessoas estão frustradas com esse problema. Não é tanto um recurso simples; Eu concordo que é complexo de implementar, mas é mais que as pessoas esperam esse tipo de recurso com um editor de texto e, como eu, depois de me apaixonar pelo VScode, estão bastante chocadas com a sua falta.

É sobre a falta de um roteiro para uma questão tão importante. Simples ou não, este é um recurso necessário para um ambiente de desenvolvimento em 2017. Uma correção super simples seria deixar-nos marcar as seções com comentários ou outra palavra-chave para especificar qual inteligência queremos. Coisa dos blocos de código do GitHub, envolva uma seção de texto em tags.

Embora seja um pouco chato ouvir todas as lamentações, eu sempre fui
fale sobre este assunto, é importante ouvi-lo.

Não importa se algo é de código aberto, você ainda está engajado em
entregar um produto aos consumidores e quando for uma merda, as pessoas vão
reclamar. Quando meu revendedor de automóveis oferece uma lavagem gratuita com meu serviço anual
e o lavador de carros de salário mínimo deixa marcas em todo o meu carro, vou
reclamar.

Gratuito ou não, há um investimento por parte do usuário para modificar seu
fluxo de trabalho com um novo editor. As pessoas estão fazendo isso apenas para descobrir que
eles perderam tempo e podem muito bem continuar usando o bloco de notas. Pessoas podem
cancele a inscrição se não quiserem ouvir o feedback negativo, mas é
importante que a Microsoft ouça essas reclamações. Afinal, eles têm
investiu significativamente na produção deste produto e quais são eles
voltando pelo dinheiro? Pessoas com mais um motivo para amaldiçoar seus
empresa e não usar o produto para o qual pagou.

No que diz respeito às solicitações de pull, as pessoas já estão incomodadas porque seu tempo
o investimento apenas para mudar o fluxo de trabalho e as ferramentas foi desperdiçado. Há
pouco ou nenhum insight sobre por onde começar para ganhar mais tempo
investimento, mesmo que sentissem que estavam potencialmente desperdiçando mais tempo. este
não é um recurso complexo no papel, então, se estiver na prática, talvez
existem graves deficiências no design do aplicativo. Eu posso apenas
especular, como todo mundo, porque não estamos sendo pagos por ninguém
para aprender esta base de código.

Na quarta-feira, 29 de março de 2017 às 9h37 Stephen Eckels [email protected]
escrevi:

É sobre a falta de um roteiro para uma questão tão importante. Simples ou não
este é um recurso necessário para um ambiente de desenvolvimento em 2017. Correção super simples
seria deixar-nos marcar seções com comentários ou outra palavra-chave para especificar
que inteligência queremos. Coisa dos blocos de código do GitHub, envolva uma seção de
texto em tags.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
.

>

Jesse Nicholson

A RESPOSTA PARA TODO ESSE PROBLEMA PARA MIM FOI NETBEANS PARA PHP

UM GRANDE IDE QUE NÃO VOU MUDAR POR MUITO MUITO TEMPO.

@ madruga88 Netbeans nem é a melhor coisa. Acredito que o PHPStorm seja atualmente o melhor editor de PHP que existe. Acredito que o Jetbrains pegou toda a Assistência de Codificação Inteligente da Microsoft e a tornou muito melhor.

Quando comecei a usar o VSCode, o único IDE que me lembrava era o da IntelliJ Products, por causa da rapidez com que as conclusões apareciam. De fato, tanto o VSCode quanto o PHPStorm têm uma sensação muito semelhante fora da caixa em termos de recursos gerais de edição. O único lugar em que o VSCode falha muito (e realmente muito) é em PHP com HTML incorporado (que deveria ter funcionado desde o início).

Se o VSCode finalmente tivesse o HTML integrado para trabalhar com PHP, ele se tornaria facilmente o melhor editor de texto (não IDE) para PHP.

Atualmente estou usando Sublime Text porque pelo menos ele sabe se estou em HTML, CSS, Javascript ou PHP, todos dentro do mesmo arquivo e fornece pelo menos completamentos adequados.

O engraçado é que o texto Sublime quando você tem um arquivo PHP o processa como um arquivo HTML simples. O VSCode também não pode adicionar suporte a PHP à sintaxe HTML? Não há necessidade de ter 2 sintaxes separadas para isso?

@ drone540 o

Eu uso o Visual Studio há uma década ... e posso dizer que o netbeans é o Visual Studio do PHP por causa de recursos completos e bom desempenho.

Eu concordo com você que a única coisa que falta no vscode é a formatação da sintaxe html + php.

mas mesmo que PHPSTORM fosse grátis .. eu escolheria netbeans ... por causa de seu desempenho.

Sério isso não é consertado desde 2015? De volta ao sublime

Eu sempre volto para ver se o problema foi corrigido, mas nenhum movimento. Não mudará para o VSCode até que seja independente de quantos outros recursos excelentes ele tenha. É muito necessário.

Eu sempre volto para ver se o problema foi corrigido, mas nenhum movimento. Não mudará para o VSCode até que seja independente de quantos outros recursos excelentes ele tenha. É muito necessário.

Qual IDE você está usando agora?

@icenold Eu tenho um fluxo de trabalho muito bacana com Brackets atm. Inclinado a ficar com isso.

Infelizmente, embora eu adore o Visual Studio Code, tenho que mudar para o Sublime por causa desse problema.

Ainda aberto? todo mundo quer esse recurso!

Implemente este recurso. Tenho ouvido grandes coisas sobre o VS de amigos desenvolvedores. Eu estava prestes a deixar de ser sublime esta manhã, mas eu realmente não posso deixar de ter esse recurso.

Pessoal, vamos ser pacientes.

@markpanado Data original do ingresso: "25 de novembro de 2015"

Enquanto esperamos, há uma maneira de definir a sintaxe HTML como padrão para arquivos PHP, já que normalmente escrevo muito mais HTML em PHP do que em PHP. Não há nada óbvio no painel de configurações do usuário.

Obrigado!

@ matt3224 clique no indicador de idioma no canto inferior esquerdo da barra de status e na seleção rápida selecione 'Configurar associação de arquivo'

image

@egamma Excelente! obrigado

Na verdade, php é projetado para trabalhar com HTML e usar a tag html para se cobrir, assim como javascript / css em HTML. Outras línguas não funcionam assim. Portanto, o suporte a HTML em arquivos .php deve ser um recurso embutido.

Embora eu ame as extensões para o VS Code, o problema mencionado aqui (considerando há quanto tempo esse tópico é anterior) é um obstáculo. Claro que você pode fazer o trabalho sem ele, mas parece lento, lento o suficiente para você simplesmente voltar ao Bloco de notas e ir sem nenhuma ferramenta de linguagem.

Não deveria ser assim.

Olá entusiastas do vscode php. Você pode estar interessado na versão 0.7.0 do Intelephense .

optimised

Existem algumas peculiaridades em que você deve estar no modo de linguagem HTML e a coloração de sintaxe não está disponível para php. A formatação (cortada do gif) é um processo de 3 etapas: formatar html -> mudar para php -> formatar php.

Esperançosamente, vocês estão separando bem suas visões e modelos e essas deficiências não são um grande problema.

@bmewburn incrível! Quando isso estará disponível?

@popcorner agora está disponível

Eu pessoalmente resolvi isso indo para Arquivo-> Sair e baixando o Netbeans
c / addon dev web. Superior. O código Vs é um ide datilografado decente e não muito
outro. Quando você para de esperar mais, para de ficar desapontado.

No sábado, 24 de junho de 2017 às 17h02 Ben Mewburn [email protected]
escrevi:

@popcorner https://github.com/popcorner agora está disponível

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
.

>

Jesse Nicholson

@bmewburn Eu experimentei o Intellephense, mas ainda tem alguns problemas gritantes. PHP digitado dentro de atributos de tag HTML, por exemplo (id = "") perde o preenchimento automático. A perda da formatação do tema PHP.

Exige o mesmo vaivém entre HTML e PHP e isso simplesmente desperdiça muito tempo.

Em uma nota separada, estou começando a me perguntar se todo este tópico é apenas um grande troll. Como isso ainda pode ser um problema depois de 2 anos? Todo mundo que até abre um problema semelhante, fechou e se referiu a este. No entanto, nenhum progresso foi feito em todo esse tempo.

Eu também mudei para o Netbeans, descobri que o PHPStorm é capaz de lidar perfeitamente com php html js em um arquivo. A integração remota de banco de dados via SSH também é interessante.

Então, fiz alguns testes com o Netbeans e o PHPStorm.

Parece que o Netbeans é bastante decente nisso.

Netbeans
Suporta:

  • HTML / CSS / JS em um arquivo PHP fora deTag
  • CSS em tags HTML com atributos de estilo.
  • Conclusões de ortografia (não sei, se útil ou não, mas está lá)

Ele falha com:

  • As conclusões parecem não reconhecer o conteúdo que você está digitando, portanto, a primeira conclusão pode não ser o que você deseja.
  • Não há suporte para HTML em Strings PHP. Na verdade, as conclusões aqui são tão ruins quanto o VScode.

PHPStorm

  • Bem, ele funciona muito bem em qualquer contexto, e funciona muito bem e todas as conclusões são precisas e o que você realmente deseja.

Pequenas falhas:

  • pequeno problema que parece fechar o autocomplete - pressione comcom atributos de estilo. Pode ser reaberto com ctrl + espaço ou digitação contínua do atributo css
  • só ativa em strings PHP se uma tag HTML estiver presente (o que realmente é um suporte bom o suficiente de qualquer maneira)

O PHPStorm definitivamente se sente muito mais próximo do VSCode (quando funciona), do que o Netbeans. Se você quiser testar como o preenchimento automático realmente deve funcionar. Eu recomendo testá-lo no PHPStorm. Além disso, o PHPStorm e o VSCode compartilham muitos recursos de edição semelhantes prontos para uso. Em termos de desempenho, estou pensando que o PHPStorm é mais rápido. Não houve atrasos, mesmo com o preenchimento automático. O Netbeans notou algum atraso com o preenchimento automático.

Não sei quanto tempo levará até que o VSCode realmente conserte esse problema, mas acredito que quando finalmente funcionar. Ele funcionará muito mais perto de como o PHPStorm funciona, e se tornará pelo menos o segundo melhor editor para preenchimento automático de PHP de todos os tempos.

Recentemente, mudei para VSCode do SublimeText, apenas para me deparar com esse problema. É uma questão muito chata e bastante básica também. Eu tenho que voltar ao SublimeText por causa disso. Tentei associar PHP com HTML, mas isso torna todo o código PHP branco, sem nenhum realce de sintaxe. Terrível!

Pensei que depois de 10 anos finalmente terei um único software da Microsoft que será instalado no meu computador permanentemente, mas se eles não conseguirem resolver um problema simples por 2 anos, ele irá para o lixo novamente.

Escrever HTML dentro de um documento PHP causa

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

@ingageco Não, não é. É sugerido pela extensão PHP Intellisense por @felixfbecker. Mas não há nada que ele possa fazer, porque as extensões não são capazes de especificar caracteres especiais de ativação, então pode evitar sugerir isso, ainda.

Eu só quero saber uma coisa. Está em andamento (aos poucos, passos de formiga bebê) ou apenas foi colocado de lado completamente?

@bsienn Sobre o quê? A extensão do php intellisense está em andamento, enquanto a equipe do Código não deseja que seja fornecida nativamente.

@ jens1o Obrigado pela resposta. Então, php intellisense extension você está falando sobre a extensão Fleix Baker?
Portanto, este tópico é redundante? Estou confuso agora. Devo seguir Seu repositório de plugins para o progresso?

Sim, estou falando sobre a extensão do Felix, e sim, você deve seguir o repositório dele para ser up2date.

... então, 2 anos depois, ainda não há solução para o autocompletar html em um arquivo php? Eu realmente gosto do VS Code, não quero ter que voltar ao Sublime por causa disso :-(

Agora só temos que lidar com isso

Ou você não sabe porque existem outras opções lá fora. Git e depuração por si só não vão me fazer retroceder no meu fluxo de trabalho. Nunca, não quando há opções que podem não ser tão bem implementadas, mas são adequadas. Esse problema deveria ter sido resolvido desde o início.

O principal problema é que não sabemos quem forneceria isso. Idealmente, a extensão do PHP ( @felixfbecker ?). Também estou aberto para adicionar suporte ao servidor de linguagem HTML.
Toda a inteligência HTML também está disponível como um módulo de nó .

@aeschli Conforme descrito acima e em alguns outros tópicos, não acho que exigir que todos os servidores de idiomas incorporem servidores de idiomas para cada idioma incorporado possível seja a abordagem certa e sustentável. PHP comumente incorpora HTML e SQL. O HTML geralmente incorpora CSS e JS. JS mais uma vez comumente incorpora HTML. Os autores de servidores de idiomas entrariam em uma situação difícil, oferecendo suporte a cada combinação aninhada, e o usuário acabaria com os servidores de idiomas instalados várias vezes para o mesmo idioma, mas não pode mais controlar qual servidor de idiomas usar para esses idiomas incorporados, nem sua versão. Como você mesmo disse em https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369 (ênfase minha):

Provavelmente leva a APIs específicas do servidor de linguagem e dependências entre os servidores.
Gostaríamos de manter o acoplamento baixo e as extensões de idioma substituíveis .

Eu concordo totalmente com isso e, do meu ponto de vista, a abordagem de incorporação leva exatamente a isso, não à minha solução delineada:

  • Dê aos servidores de linguagem a capacidade de anunciar ao _cliente_ quais intervalos contêm linguagens incorporadas. Por exemplo, o servidor de linguagem PHP relata para o código VS as faixas de HTML embutido como HTML incorporado, o servidor de linguagem HTML relata para o código VS as faixas de <style> tags como CSS incorporado, faixas de <script> tags como JS incorporado.
  • O cliente (VS Code) ativa os servidores de linguagem necessários para as linguagens incorporadas e envia a eles didOpen notificações com um URI virtual e conteúdo do intervalo incorporado.
  • Sempre que o usuário solicitar o preenchimento automático dentro do intervalo de uma linguagem incorporada, envie essa solicitação para o servidor de linguagem para a linguagem incorporada (posições relativas ao início do intervalo incorporado)
  • Mostre os resultados, resolvendo as posições relativas ao início do intervalo incorporado conforme necessário.

Com essa abordagem, o usuário tem controle total sobre quais servidores de idioma usar (eles são substituíveis ) e os servidores individuais não precisam se preocupar em incorporar outros servidores de idioma como dependências . Isso significa uma experiência consistente em linguagens incorporadas versus linguagens de nível superior e mantém SoC para cada servidor de linguagem para se preocupar apenas com uma linguagem.

A notificação pode ser mais ou menos assim:

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

Exemplo:

Dado um documento PHP como este:

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

o langserver PHP enviaria para o 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 }}
    ]
  }]
}

o que resultaria no langserver HTML recebendo textDocument/didOpen do código VS com um URI como file:///foo.php#embedded1 e este conteúdo:

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

Fico feliz em discutir isso em uma edição separada, se você quiser.

@aeschli Acho que o fato de que isso continua sendo divulgado como um problema do servidor de linguagem, embora esse problema ainda esteja aberto, está me dizendo que possivelmente nunca será corrigido.

@felixfbecker Ninguém está dizendo para que cada bit de formatação seja detectável. Isso seria uma loucura, mas um mínimo de PHP / HTML sendo detectável dentro do outro seria bom. VSCode torna o trabalho com PHP / HTML desnecessariamente difícil em comparação com outros IDE

@felixfbecker

Quais arquivos especificamente precisam ser editados no servidor de idioma para que isso tenha efeito? Procurei HTML no servidor de linguagem e não consigo ver exatamente o que ele faz com o estilo e o script.

Parece que ele pula a tokenização de qualquer coisa que não seja HTML de acordo com este arquivo: 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

Mas como CSS e Javascript sabem o que fazer? Não vejo como eles funcionam de acordo com este arquivo.

@aeschli um servidor de linguagem php e html já pode funcionar razoavelmente bem juntos, uma vez que muitos dos recursos do vscode permitem que vários provedores sejam registrados. Em muitos casos, o primeiro resultado do provedor não falsey é usado ou, em alguns casos, vários resultados são usados. Portanto, contanto que cada servidor ignore o que não entende - fora de <?php ?> para php, dentro de html - ele funciona. Você pode ver isso em ação aqui https://github.com/Microsoft/vscode / issues / 670 # issuecomment -310822851

Para que isso funcione de maneira mais suave.

  1. Permitir associações de arquivos de identificação de vários idiomas para que cada servidor de idioma seja executado.
   "files.associations": {
        "*.myphp": ["php", "html"]
    }  
  1. Use um arquivo combinado de gramática php / html / css / js para realçar a sintaxe

Existem soluções mais completas para a incorporação de linguagem? Provavelmente. E concordo que não deve ser responsabilidade de nenhum servidor em particular incorporar vários idiomas. Não creio que deva ser responsabilidade nem dos servidores identificar que idioma específico está sendo usado, o usuário deve identificar a gama de documentos. Mas tirando isso, não acho que seja tão difícil fazer o PHP e o HTML trabalharem juntos.

@bmewburn Se não é tão difícil, por que esperamos 2 anos depois por uma solução?
@felixfbecker diz que não é tão fácil de fazer. Mas esse problema ainda está aberto, então, obviamente, pode-se pensar que pode ser uma prioridade, mas toda versão é esquecido. Então, até que alguém faça uma mudança, continuarei sendo teimoso e espero que eventualmente seja consertado. Até lá, continuarei usando o que funciona.

@felixfbecker Como mencionei em meu comentário , sem requisitos aqui, cada servidor de linguagem é livre para escolher a abordagem de como lidar com conteúdo incorporado: encaminhar solicitações para outros servidores ou tratá-las por conta própria. por exemplo, usando uma biblioteca / serviço vinculado. Tudo depende de quão fortemente acoplados estão o conteúdo incorporado e o idioma principal e a experiência do usuário que o servidor deseja fornecer. Freqüentemente, o conteúdo incorporado precisa do contexto do idioma principal e precisa obedecer a regras de escape. Isso não pode ser facilmente comunicado a um servidor de linguagem que vê apenas um documento virtual. Essa foi a razão pela qual mudamos essa abordagem no servidor HTML.
Mas se esta for uma abordagem viável para PHP, e o servidor de linguagem PHP deseja que o servidor HTML trate de solicitações para determinados intervalos, vamos fazer isso, as APIs para isso estão todas lá, tudo pode ser feito no cliente e com protocolo LS personalizado .
Se houver alguma coisa que eu possa ajudar no serviço ou servidor html, me avise.

Regras de escape

Mas se esta for uma abordagem viável para PHP, e o servidor de linguagem PHP deseja que o servidor HTML trate de solicitações para determinados intervalos, vamos fazer isso, as APIs para isso estão todas lá, tudo pode ser feito no cliente e com protocolo LS personalizado .

O servidor de linguagem PHP é usado por muitos outros clientes além do VS Code, sublime, neovim, atom-ide-php, Eclipse Che, etc. Como podemos construir uma solução que pode (eventualmente) funcionar em todos eles clientes (já que esse é o ponto do LSP), ao mesmo tempo em que evita agrupar servidores HTML específicos (e CSS, JS ...) langservers com requisitos de tempo de execução específicos (por exemplo, um desenvolvedor neovim PHP tem PHP instalado, mas não necessariamente NodeJS). o usuário pode decidir qual servidor de idioma usar para os idiomas incorporados? Eu ficaria muito animado se pudéssemos fazer isso de uma forma universal para todos os idiomas, pois isso seria um argumento super forte para o LSP.

@aeschli @felixfbecker Então, isso significa que vocês dois vão tentar resolver o problema? Isso seria incrível.

Este é um recurso que quase todo programador de PHP realmente precisa. Então, por favor, não ignore simplesmente porque não podemos fazer de uma maneira _correta_.
Mesmo que haja uma solução ilógica ou feia, ela ainda pode ser usada temporariamente, em vez de adiá-la e não fazer nada.

Se formos algemados porque queremos ser o mais compatíveis possível com as extensões originalmente escritas para outro editor mais antigo, talvez devêssemos considerar escrever um novo padrão de editor cruzado que vá além do que temos disponível hoje. Não é como se a Microsoft não tivesse saído de seus limites antes e trabalhado com outros grupos para construir um modelo de servidor de linguagem padrão usado neste e em outros editores. Só precisamos fazer a mesma coisa novamente em relação a como os cenários de idiomas mistos são tratados.

É óbvio que as extensões de idioma misto como @felixfbecker 's extensão php-intellisense ou minha extensão vscode-jinja é ficar bloqueado por este problema. É ótimo se você é capaz de fazer isso nas linguagens principais, mas se a comunidade não puder expandir isso facilmente, isso apenas proporcionará uma experiência ruim para o editor em geral. A essa altura, esse problema já dura o suficiente para que a própria comunidade esteja realmente dizendo aos outros para irem a outro lugar, e estou fazendo o mesmo.

@wholroyd concordou, eu estava falando às pessoas sobre esse IDE como se fosse a melhor coisa desde o pão fatiado e agora estou ativamente afastando as pessoas dele. Lamento tê-lo integrado em um de meus projetos.

@aeschli , você consideraria o seguinte no servidor de linguagem html?

  1. Um languageId adicional para ouvir phtml . Isso forneceria um id compartilhado que as extensões php e html poderiam ouvir e uma gramática textmate combinada.
  2. Se necessário, modificações no scanner do servidor de linguagem html para consumir tudo dentro de <\?(php|=)?> , \?> como uma única tag de fechamento automático.

Os seguintes provedores de extensões separadas de php e html funcionariam bem juntos sem qualquer incorporação no servidor ou hackear o cliente.

  • lente de código
  • ação de código
  • conclusão
  • definição
  • realçar
  • ligação
  • símbolo doc
  • flutuar
  • implementação
  • referência
  • assinatura
  • símbolo de espaço de trabalho

Alguns hacks seriam necessários para que a formatação e renomeação funcionassem e os usuários precisariam nomear os arquivos de exibição com uma extensão diferente e associá-los a phtml em vez de php. Mas acho que seria um bom começo com o mínimo de esforço e risco.

@bmewburn Sim, parece bom, posso fazer isso. Qual é a ideia da linguagem 'phtml'? Você o usará para encaminhar as solicitações de maneira programática?

@aeschli sem encaminhamento de solicitações, a ideia é apenas deixar o servidor html registrar os provedores para phtml e ter um servidor php registrar os provedores para phtml também e deixar o vscode lidar com as respostas separadas.

Todos os provedores acima têm respostas mescladas ou a primeira resposta não falsey usada. Portanto, desde que servidores html e php separados não tentem retornar um resultado para uma faixa que eles não entendem, então tudo deve funcionar. O id de phtml é algo comum para os dois servidores de idioma, pode ser melhor apenas ter várias associações de arquivo de idioma, mas isso pode estar muito mais envolvido? Além disso, suponho que manter php e phtml separados evita o envio de solicitações ao servidor html para arquivos somente php.

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

No momento eu registro minha extensão de php com seletores de doc html e php, mas estou cauteloso de substituir a configuração de idioma html nesta configuração.

Uma associação de arquivo só pode ser atribuída a um único id de idioma. Mas os servidores de idiomas são gratuitos para servir documentos em qualquer idioma que desejarem.
Possibilidade 1: HTML também se registra para php , participa de todas as solicitações, mas só retornará resultados fora de <?php .../?>
Possibilidade 2: Apenas o servidor da linguagem PHP se registra para php , e irá encaminhar todas as solicitações <?php .../?> para todos os servidores de linguagem registrados na linguagem phtml .

Portanto, o encaminhamento pode ser realizado apenas por meio de commands.executeCommand ?

@bmewburn eu criei # 36396. Vamos levar nossa discussão a esse item.
Sim, com `commands.executeCommand 'como feito aqui

Qualquer atualização sobre o Intellisense html para php

Ei pessoal, existe alguma maneira de codificação php e html misturada? O realce de html não funciona corretamente no documento php :-(

835b4a9809

Parece que depois de 2 anos ainda não há uma solução adequada?

esse problema é resolvido até?

Não, ainda não é possível. Infelizmente, fui forçado a voltar para o ST3 por causa desse problema. Espero que um dia eles consertem isso e eu possa voltar.

@bmewburn Trabalho fantástico. Isso foi necessário por muito tempo. Muito obrigado. Agora não há razão para não mudar para VSCode

@ kilevvri1 compartilhe sua configuração. Pra mim não funciona ..

@ expo87 Eu usei a configuração padrão solicitada do PHP Intelephense
"php.suggest.basic": false
Eu não uso nenhuma outra configuração ainda.

Vadio. Eu tinha acabado de configurar meu ambiente VSCode e deixar todos os meus plug-ins prontos. Então eu corri para isso e ainda sem conserto.
É uma pena porque eu estava começando a gostar muito do VSCode, mas agora tenho que voltar ao Sublime Text.

@DannyMexen Experimente a extensão PHP Intelephense

@ kilevvri1 esta extensão requer a instalação do PHP. Para mim, instale no sistema PHP não é necessário! Por que devo fazer isso? Apenas para ver a sintaxe mista normal de php e outra linguagem? Por que essa opção não funciona fora da caixa ?! Arquivo de instalação do Sublime Text de 8,5 Mb - realce misto funciona bem. CodeLite install file 50 Mb - destaque misto funciona bem. E não é necessário instalar o PHP!

Eu concordo com @ expo87 que esta funcionalidade deve vir fora da caixa no VS Code. PHP Intelliphense já é um passo à frente e torna o preenchimento automático possível, porém não consigo obter nenhum realce de sintaxe html.

@ kilevvri1 , ei, como vai? Eu fiz, não deu certo.

No entanto, ainda não consigo formatar HTML em um arquivo .php. Também concordo que essa funcionalidade deve estar pronta para uso.

Tudo o resto está bem, mas apenas uma coisa que está arruinando minha experiência. É muito importante que meu código esteja bem formatado devido às políticas da empresa. Aqui está a esperança no futuro.

É complicado, mas para arquivos grandes, estou renomeando os arquivos para .html, formatando e renomeando para .php (acredite, tentei todos os truques que existem sem sucesso).

Eu gosto do VSCode e vou esperar uma semana. Se meu trabalho diminuir significativamente, voltarei ao ST 3.

Para aqueles de vocês que estão reclamando sobre a instalação do PHP para que a extensão funcione, vocês realmente não têm o PHP instalado em sua máquina local? Você está realmente perdendo tempo colocando o código em seu servidor antes de testá-lo, e fazendo isso repetidamente?

O PHP deve ser instalado localmente, isso parece um dado adquirido. Se o seu aplicativo não for executado localmente, você terá que resolver alguns problemas de desenvolvimento.

@TheColorRed para mim não é necessário visualizar o resultado do meu código localmente e depois fazer upload do arquivo no servidor. Usando WinSCP e ST - velocidade leve e rápida do meu trabalho. E é claro que sei o que estou fazendo :-)

@TheColorRed você encontrou alguém na internet que estava errado e passivo e agressivamente discursou sobre o valor do tempo.

image

Embora todos nós adoraríamos que isso fosse uma funcionalidade pronta para uso, o fato é que não é. A equipe do VSCode vê isso como um problema ou uma prioridade muito baixa. @bmewburn fez a extensão do PHP Intelephense que estou feliz com a alternativa.

@ expo87 Não há necessidade de explicar seu fluxo de trabalho. Todos nós fazemos as coisas de maneira um pouco diferente.

Por causa disso
eu uso o smarty, então posso mover todo o HTML para o arquivo tpl, não dentro do código php -_-
e tornar meu código mais limpo

@DannyMexen Não tenho problemas para formatar HTML dentro de arquivos PHP. Desativei a formatação do PHP Intelephense "intelephense.formatProvider.enable": false em settings.json

Tudo que eu realmente quero é que > não acione uma sugestão de preenchimento automático (e me faça parar o que estou fazendo para descartá-la). É irritante quando você fecha um elemento HTML e quer ir para a próxima linha, mas se você "acidentalmente" apertar Enter, acabará com um lixo que terá de excluir em vez de uma nova linha. Nenhuma das sugestões acima parece resolver esse problema específico.

Tudo o que é necessário para isso é https://github.com/Microsoft/language-server-protocol/issues/138.
@jrieken você poderia comentar se a solução intermediária que você propôs

Podemos ser capazes de implementar gatilhos de vários caracteres, mas não é tão trivial quanto parece. Até então, uma extensão deve usar o último caractere em uma sequência potencial de caracteres de gatilho.

@ kilevvri1 sem dados. Eu tenho seguido suas postagens, mas sem sucesso. Posso ver todas as suas configurações, por favor? Talvez uma lista das extensões que você instalou, se isso não for um problema.

O mais perto que cheguei foi mudar a associação do arquivo e mexer no embelezamento, mas mesmo isso não ajudou.
Enfim, obrigado a todos. Não parece haver uma resposta direta para isso.

Depois de horas tentando, não consigo fazer isso funcionar. Nem mesmo o plugin "PHP Intelephense" está funcionando para mim como sugeriu @bmewburn . Digite 'php' e pressione tab, que se expande em: http://s.zeshanahmed.com/a_1FC81B2B.png

Este é o recurso mais básico quando você usa HTML com PHP. Pelo menos como desenvolvedor de temas WordPress.

Posso voltar e verificar o VS Code novamente, mas, por enquanto, voltando para o Sublime. Eu amei como o VS Code pareceu poderoso para mim no início, mas esses pequenos problemas (ou falta de recursos) manterão muitos desenvolvedores de PHP / WP longe disso.

aae estou com @zeshanshani e @DannyMexen - se eu não consigo escrever html dentro dos meus arquivos PHP, então este editor está

Droga. Eu gostei muito, mas essa coisa (aparentemente simples) tornou-o inútil para mim.

Talvez eu esteja um pouco errado aqui, esse problema não é realmente o que eu estava me referindo. De qualquer forma, como mencionei, adorei o quão poderoso o VS Code parecia para mim, então eu verifiquei mais e encontrei uma solução muito fácil para o problema.

O problema que enfrentei foi que, quando você está fora dos blocos <?php ?> e tenta abrir blocos PHP com um atalho, isso não funciona.

Portanto, criei snippets HTML personalizados para expandir os blocos de PHP. Eu criei estes 3 snippets por agora:

  • php - para expandir em <?php ?>
  • if - para abrir IF condicional.
  • foreach - para abrir o loop FOREACH.

Este é o código dos snippets, se alguém estiver procurando por ele:

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

E este é o resultado:

PHP Expand in HTML

O único problema aqui é que ele também expande trechos em arquivos .html ao contrário do Texto Sublime, onde você pode definir o escopo de forma que um trecho específico se expanda apenas se for PHP: http://s.zeshanahmed.com/a_1FCD4A29.png

A propósito, alguém tentou ativar a configuração emmet.triggerExpansionOnTab ? Ele permite a expansão do emmet HTML no suporte de guias dentro de strings PHP.

Para fazer essa configuração, vá para as Configurações do

"emmet.triggerExpansionOnTab": true

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

Aqui está o resultado:

HTML Expand in PHP Strings

Eu encontrei uma solução viável para mim (e possivelmente para outras pessoas).

Eu instalei a extensão "_Auto Close Tag_" de Jun Han. Então, nas minhas configurações, adicionei isto:

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

Agora, enquanto estou em um arquivo .php e fora das tags <?php ?> eu não recebo $_cookie depois de terminar de digitar uma tag html, e quando eu digito </ ele automaticamente completa tag de fechamento apropriada.

espero que isso ajude alguém que estava tendo o mesmo problema que eu.

@Chenzo sua solução alternativa formata o código? Se você pressionar Ctrl + Shift + I , o PHP e o código HTML são formatados / indentados de acordo?

@DannyMexen hmmm ... não. Altho, isso é uma coisa nativa do VScode? Mesmo meu plug-in de embelezamento não parece saber o que fazer com HTML enquanto está em um arquivo .PHP.

@Chenzo entendo. Sim, o mesmo aqui. Este é o único recurso de que preciso trabalhar para usar o VSC como meu editor de texto exclusivo.

@zeshanshani @DannyMexen
se o PHP Intelliphense não funcionar
tente reinstalar vscode e PHP Intelliphense
ou
tente usar everedit , que é um bom editor, mas não IDE, e apenas windows

Obrigado pela sugestão @iscraft, mas estou executando Linux e estou usando ST 3 para todos os meus projetos PHP.

Então, se estou seguindo corretamente, os problemas de bloqueio foram resolvidos no LSP (yay!), E também resolvidos no servidor de linguagem do Felix (yay!), Mas ainda não foi resolvido no VS Code Insiders.

O menor problema relacionado com o sempre presente <?php autocomplete está presente no VS Code Insiders, com o plugin Intellesense do Felix ativo, então eu acho que também está esperando por algo no VS Code?

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

Eu acho que ele vai pular a Insiders Edition e chegar ao 1.19?

Em settings.json , adicionar a seguinte propriedade funciona bem.

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

Bem, acho que não era verdade, afinal. Voltar ao Sublime Text?

files.association foi uma das coisas que tentei. Nunca funcionou para mim.
A conta oficial do Twitter acabou de me dizer para levantar a questão e espero
um dia, a equipe vai implementá-lo. É uma coisa tão bizarra não ter
isso fora da caixa. Literalmente, a única coisa que me impede de usar VScode
como meu editor exclusivo.
@Ken Newman é minha solução para todos os projetos PHP.

Na quinta-feira, 14 de dezembro de 2017 às 22h31, Ken Newman [email protected]
escrevi:

Bem, acho que não era verdade, afinal. Voltar ao Sublime Text?

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
.

-
Saudações,

Danny Mexen.

É possível que o HTML agora esteja funcionando com a linguagem / arquivos PHP no 1.19? Acabei de testar e vejo que está funcionando, mesmo sem nenhuma extensão ...

@jsieler em 1.19 e 1.20 ainda não está funcionando.

O VSCode 1.19 não pode preencher automaticamente html, atributo no arquivo .php :( !!!!
Edição de 2 anos ...

HTML tem funcionado bem em arquivos PHP com esta extensão. Este problema provavelmente pode ser resolvido.

phphtml

@bmewburn também acho

Não, pessoalmente, estou aguardando suporte sem a necessidade de ramais externos.

O principal problema também se aplica a outras línguas.

Vamos ser claros sobre o problema que alguns de nós estamos relatando aqui.

Por enquanto, vou falar por mim.

O problema NÃO é falha no preenchimento automático de HTML em arquivos PHP, mas sim FORMATANDO o código HTML em arquivos PHP no contexto do recurso 'Formatar Documento' do VSCode. Isso está claro?

Se o seu atalho de teclado padrão for Ctrl + Shift + I você pode descobrir que apenas o código PHP será formatado em um arquivo PHP que também contém código HTML. O código HTML não está formatado.

Esse recurso sai da caixa no ST 3, por exemplo.

Coisas como preenchimento automático, tags de fechamento automático etc. funcionam perfeitamente. Tabule uma linha PHP e, em seguida, tabule uma linha HTML, tente formatar o documento e apenas o código PHP será indentado corretamente.

Espero que isso esclareça as coisas para alguns aqui.

Quem aqui está enfrentando esse problema comigo?

@bmewburn funciona apenas se você escolher o modo de linguagem HTML para arquivos php, mas então você tem um estilo ruim para a parte php do código :(

@ Perumal93

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

Não funciona de jeito nenhum! Ele simplesmente usa o idioma que você usou por último (php neste caso). Outros são completamente ignorados.

@SharakPL qual versão do VSCode ru está usando?

@ kilevvri1 Acabei de atualizar de 1.19.1 para 1.19.2. Sem alteração :(
Se eu escolher PHP como linguagem de arquivo, as sugestões de html não funcionam.
Se eu escolher HTML como linguagem de arquivo, a parte php é estilizada como texto simples e a Saída mostra muitos erros.

@SharakPL Você tem o caminho do seu telefone vinculado nas configurações de usuário do VSCode? Não estou em casa agora, mas quando voltar irei ajudar porque o intellephense não é perfeito, mas faz maravilhas quando funciona bem, então tentarei ajudar.

@SharakPL eu quis dizer seu caminho PHP. Digitando no meu telefone, desculpe.

@ kilevvri1 sim, eu tenho

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

Deve ser como no Sublime Text 3, onde o código html é sempre sugerido de acordo enquanto estiver no modo de linguagem PHP

@SharakPL
De acordo com as recomendações de extensão:
"php.suggest.basic": false

Tente isso e me diga

@ kilevvri1 sem alteração :(

Oh, eu entendo agora! Existe algum tipo de intelisense HTML em arquivos formatados em PHP, mas é gerenciado por meio de sugestões EMMET: https://docs.emmet.io/cheat-sheet/
Fiquei irritado por não ser capaz de adicionar um link simples digitando <a porque não há nenhum snippet sugerido. Achei que digitar apenas a mostra o que eu preciso, mas embora eu tivesse meu link, todos os atributos que tive que adicionar manualmente, letra por letra. Com o EMMET, posso simplesmente digitar a#mylink.btn.btn-success para obter <a href="" id="mylink" class="btn btn-success"></a> . Isso é legal, mas para obter um html mais preciso, devo usar a#mylink.btn.btn-success[title="click me" target="_blank"] e essa nova parte deve ser digitada letra por letra. Seria muito melhor o estilo do SublimeText:
html_is

Existe alguma maneira de adicionarmos manualmente .php à lista de extensões de arquivo em que o intellisense HTML funciona? Isso pode ser feito no Eclipse.

@graddev alguém sugeriu
"files.associations": {"*.php": "html, php"}
nas configurações do usuário, mas isso não funciona para mim

quando eles adicionam essa oportunidade, quem sabe?
era 2020, eles ainda não faziam isso ....

HTML e CSS autocomplete em arquivo PHP ... Como?

Precisa deste recurso adicionado. O preenchimento automático de atributos para tags HTML não funciona de todo.

Pessoal, estou usando uma solução extremamente nojenta, mas funciona (meio). Eu tenho um teclado com teclas de macro, então criei macros para alterar o modo de idioma. Eu pressiono M1 se quiser HTML intellisense e M2 se quiser PHP.

@aeschli Isso NÃO resolve o problema principal. O mesmo problema também ocorre em uma extensão que mantenho, na extensão Smarty. É realmente decepcionante que a extensão PHP em destaque não receba mais suporte e você esteja tentando se distrair, recomendando o uso de outra extensão que está usando uma solução alternativa de merda. Ainda assim, os problemas são mais profundos. Na verdade, esse problema deve ser resolvido no próximo sprint e você não deve considerá-lo sobrecarregado e minimizar o problema. Onde está sua opinião sobre os interesses da comunidade?

Desculpe, mas estou um pouco chateado.

(Na verdade, eu disse a mesma coisa há 3 meses .)

Existem apenas algumas áreas nas quais a equipe VSCode pode trabalhar e ter conhecimento especializado. Infelizmente, não somos desenvolvedores de PHP. É por isso que criamos uma API de extensões abertas e um mercado. Apoie-nos experimentando as extensões e ajude os autores com bons comentários.
Eu entendo que seria ótimo se todas as extensões fossem integradas e enviadas junto com o VSCode, mas também queremos manter o download pequeno.

Trabalhamos com Ben, o autor da extensão intelephense para melhorar o preenchimento de HTML em PHP. Acho que a abordagem escolhida é a abordagem correta. Apenas o PHP como a linguagem 'principal' entende completamente o conteúdo HTML embutido (por exemplo, como ele é codificado, como as variáveis ​​do PHP são resolvidas) para fornecer uma boa experiência ao usuário. Pela minha experiência, outras soluções genéricas resolvem apenas parte do problema e terminamos com centenas de questões abertas para os casos que eles não conseguem resolver.

@ jens1o Lamento que esteja frustrado e que não haja nada planejado nesta área em um futuro próximo. Por favor, ajude-nos apoiando nosso ecossistema de extensões ou dê uma chance ao intelephense (e também a outras extensões PHP).

Tudo bem, eu respirei bem e me acalmei. Então, vamos mover o foco para minha extensão: Devo manter um fork do servidor de linguagem HTML para que meus usuários tenham preenchimento HTML? Esse é o principal problema que estou me referindo também. Acho que outras línguas são atingidas ainda mais. O problema é que o Smarty é tão flexível que poderia ser usado para quase qualquer linguagem (como csv, json), qualquer que seja. Porque é um sistema de template que não está sujeito a nenhuma restrição de idioma. Então preciso manter um fork de um servidor de linguagem csv (que não existe), um XML, o JSON ... Gostaria de saber quantas linguagens os recursos técnicos permitem?

dê uma chance ao intelephense (e também a outras extensões PHP).

Vou ficar com php-intellisense de @felixfbecker , porque adoro a base de código, embora não tenha HTML intellisense (é por isso que estou queimando esse problema), e essa é a extensão oficial em destaque (enquanto eu estava usando muito antes disso). Eu amo o conceito de servidores de idioma e acho que vários servidores de idioma responsáveis ​​por diferentes partes de um arquivo é o próximo passo para melhorar o conceito.

@aeschli Você acha que uma extensão pode fazer a parte html no php ter o mesmo comportamento que o arquivo html autônomo? incluindo deixar todo o plugin para html funcionar bem nessa parte?
O sistema de extensão é muito importante, como todos sabemos, mas nem todos os recursos são adequados para plug-ins. O que realmente precisamos é analisar um arquivo em vários idiomas e tratá-los separadamente. Essa deve ser uma capacidade integrada para um editor de código.

E, todos os arquivos PHP são na verdade HTML, com um especialTag HTML. Apenas o conteúdo desta tag não deve ser considerado HTML. É apenas uma linguagem embutida em HTML e não pode funcionar sem ela (exceto CLI). Portanto, a questão não é sobre HTML em PHP, HTML é o contêiner principal. E também muitas linguagens podem ser embutidas em HTML, como css javascript vbscript svg perl java, eu não acho que qualquer extensão pode fazer isso sem suporte oficial.

Obrigado @popcorner. Na verdade, eu queria dizer o mesmo, mas você escreveu muito melhor. :)

Alguém sabe como o ST faz isso? Mesmo uma explicação de alto nível será apreciada.

Vamos manter este problema sobre a intellisense HTML em PHP. Vou aprimorar nossos documentos com técnicas sobre como habilitar recursos de linguagem para linguagens incorporadas. Criei o # 47288 como ponto de partida para isso.

@ jens1o Listei algumas abordagens na descrição desse problema
@paldepind Eu também adicionei uma resposta ao seu comentário .

Ainda estou desconfortável com isso. Então afaik, este problema pode ser fechado porque você não planeja trazê-lo para PHP, mas sim viver com essa solução alternativa?

problema ainda sem solução?

Estou usando o Laravel Blade .. Portanto, não há tags PHP aqui .. Gostaria de saber como eles irão implementar o recurso ..

Resolvido, mas não sei porque ... Talvez atualize o php inteliphense ou use insiders vscode ...
test

@victormongi qual php inteliphense você usa?

@jfnadev Eu não sei como isso funciona, mas esta é minha versão vscode e versão intelephense:
image

@victormongi temos a mesma configuração

@jfnadev estas são minhas extensões 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 mudou? Eu tenho esse mesmo problema ..

+1 de mim também.

Não acredito que esse problema de mais de 3 anos atrás ainda não tenha sido resolvido, é melhor continuar usando SublimeText3

Acho que esse é um recurso essencial. Estou apenas esperando a migração para o VS Code 😞

Não tenho certeza se estamos todos nos referindo à mesma coisa neste momento, TBH.

Na segunda-feira, 14 de maio de 2018 às 13h53, Miqueias Penha [email protected]
escrevi:

PHP Intelephense
destaque-correspondente-tag

Trabalhos! s2

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-388790414 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/APewudsZw-Cu5mpgLrBJ8vUPagFUxB5Rks5tyXApgaJpZM4Gpk-J
.

-
Saudações,

Danny Mexen.

vscode não dá a mínima para php. adicione isso, por favor.

Instalei o PHP Intelephense. O problema foi resolvido para mim.

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

Só para ficarmos claros aqui.

O código HTML não pode ser formatado (Ctrl + Shift + I) em arquivos PHP.

@venoel Você está dizendo que instalar o PHP Intelephense permite que você faça
este?

Na quarta-feira, 30 de maio de 2018 às 20h17, venoel [email protected] escreveu:

Instalei o PHP Intelephense. O problema foi resolvido para mim.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
.

-
Saudações,

Danny Mexen.

@DannyMexen.
Quer dizer, recebo sugestões de tags corretamente e os recuos são bem aplicados.

A Microsoft está adquirindo o GitHub!
mas esse problema ainda!
ri muito!

@venoel
Bem notado. Ainda bem que funciona para você.

Não importa o que eu tente, simplesmente não consigo formatar o código HTML em arquivos PHP.

Na segunda-feira, 4 de junho de 2018 às 11h, venoel [email protected] escreveu:

@DannyMexen https://github.com/DannyMexen .
Quer dizer, recebo sugestões de tags corretamente e os recuos são bem aplicados.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
.

-
Saudações,

Danny Mexen.

O VSCode definitivamente deve ter a opção de definir 2 ou mais modos de linguagem para tipos de arquivo específicos para ter destaque de sintaxe e intellisense para todos eles ao mesmo tempo. Você tem isso mesmo agora com 1 instância do VSCode, apenas em arquivos diferentes com modos de linguagem diferentes. Honeslty Não sei por que é tão difícil de implementar. Alguém até o usou antes como uma solução funcional, embora não funcione e nunca funcionou, mas definitivamente deveria:

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

Sim, concordo totalmente com @SharakPL. Eu nunca entendi a resposta dada, mas
algumas pessoas mais espertas do que eu disseram que não é fácil
coisa a ser implementada. Não sou experiente o suficiente para fazer isso sozinho, mas porque isso
recurso sai da caixa com ST3, por exemplo, espero que seja um
recurso padrão em todos os outros lugares.

Na quarta-feira, 6 de junho de 2018 às 21h33, SharakPL [email protected] escreveu:

VSCode definitivamente deve ter a opção de definir 2 ou mais modos de idioma para
tipos de arquivo específicos para ter destaque de sintaxe e intellisense para todos
eles ao mesmo tempo. Você tem isso mesmo agora com 1 instância de VSCode,
apenas em arquivos diferentes com modos de linguagem diferentes. Honestamente eu não
sei por que é tão difícil de implementar. Alguém até o usou antes como um
solução funcional, embora não funcione e nunca funcionou, mas definitivamente
devemos:

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

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
.

-
Saudações,

Danny Mexen.

concordo @DannyMexen mesmo notepad ++ tem. é 2018 e o vscode ainda não tem esse recurso. É louco.

_Feche esta questão, isso nunca vai acontecer._

@bsienn se preocupa em explicar? Por que algo comum em editores de texto simples é impossível no VSCode?

@SharakPL explica? Leia o tópico DEAD de 3 anos, Ele vai explicar para você que não vai acontecer.

@bsienn Está lá com emnet, html no php está usando emnet, tente aprender .. https://docs.emmet.io/ por favor ... está funcionando mesmo assim ...

@bsienn me explique isso então: por que desistir deveria ser um motivo para encerrar esta edição?

@benyaminl emmet está bem, mas só funciona quando eu crio novas tags. É inútil quando eu preciso editar tags, ou seja, adicionar alguns atributos a um link , porque ainda não há intellisense para html em arquivos php

Ah, isso é o que eu tentei ignorar hahaha .. é verdade de qualquer maneira. Ainda
quando penso que alguém tentou implementá-lo, não é muito fácil

Enviado do My Asus Pegasus X005

Pada tanggal Kam, 14 de junho de 2018 19,26, SharakPL [email protected]
menulis:

@bsienn https://github.com/bsienn me explique isso então: por que você está dando
deve ser um motivo para fechar este tópico?

@benyaminl https://github.com/benyaminl emmet está bem, mas só
funciona quando eu crio novas tags. É inútil quando preciso editar tags, ou seja, adicionar
alguns atributos para um link <# m_4226514043244462616_issuecomment-359139115>,
porque ainda não há intellisense para html em arquivos php

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
.

Estou tentando converter o uso de Brackets.io em VS Code, pois li muitas coisas boas sobre o Intellisense. Esse recurso básico está me impedindo. Assusta-me que remonta a 3 anos e nada foi feito.

Alguém sabe se existe um plug-in ou uma maneira de registrar arquivos .php para usar o preenchimento automático .html?

Obrigado pela ajuda.

Alguma notícia sobre este assunto?
Acredito que apenas fazer a mesma implementação feita para edição mista em arquivos html, onde html + css + js funciona bem.

Outra alternativa é implementar na API Extension uma forma de observar o trecho do arquivo e alterar o idioma selecionado.

Fiz isso porque estava irritado com HTML aninhado em PHP, deve formatar com base nas configurações nativas que você tem para html.format e formato do editor em salvar / digitar Formato HTML em PHP .

Também obtenho o preenchimento automático completo, o intellisense fazendo desta forma.

@ RiFi2k Hi! Tento instalar sua extensão, mas para mim não muda nada. Na descrição está definido como nada a fazer para esta extensão funcionar.

@BxDev Ei! Então você precisaria ter
html.format.enable = true
editor.formatOnSave = true
e quaisquer outras configurações no vscode relacionadas à formatação html ou formatação do editor que você desejar, configure.

Em seguida, ele deseja formatar HTML aninhado em arquivos .php, então você também precisa ter certeza de ter um arquivo .php com algum código como este:

<?php
$hi = true;

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

Quando você salvá-lo, deve corrigir o div HTML

Se você ainda estiver tendo problemas, me avise que vou ajudá-lo a começar.

@ RiFi2k obrigado pelas respostas!
Escrevo isso na configuração do usuário:
"html.format.enable": true, "editor.formatOnSave": true
Depois, crio um arquivo php com o seu exemplo, mas não funciona :-(
l213wgru87dzrr

@BxDev Na verdade, parece que fez o seu trabalho perfeitamente

<?php
$hi = true;

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

para

<?php
$hi = true;

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

Isso é tudo que faz, espero que você não esteja confuso sobre a funcionalidade

@ RiFi2k ohh yeea :) Entendi :) Desculpe por isso. Mas para mim, muito importante, é destacar a tag de par em documentos php / html / js / css mistos. Obrigado pelo seu trabalho!

Este é um problema de 3 anos e nunca será resolvido, é o que sinto.
Isso é algo tão básico para se ter em um editor e está tornando meu trabalho do dia-a-dia incrivelmente chato.

Provavelmente terei que voltar para o ST3, porque sinto que o VScode, especialmente nos últimos tempos, está retrocedendo, adicionando todos os tipos de recursos sofisticados, mas ignorando seus principais problemas.

@TheDutchCoder É porque ninguém quer codificar PHP atualmente, que é a coisa certa a se fazer. : D

@steebcheen , continue no tópico. obrigado

@Tyriar De qualquer forma, alguém foi designado para isso? Ou não é?
EDIT: Oh, está atribuído .. Ok

@ RiFi2k Olá e obrigado por tentar ajudar! Tentei sua extensão, mas não funciona. Tentei as configurações que você forneceu, mas ainda não há dados. Talvez dependa do formatador php em uso? Qual extensão você sugere usar para habilitar a formatação php em primeiro lugar?

OK, atualização rápida: funciona ao salvar, o que é ótimo! Não funciona com o menu de contexto do botão direito. Acho que é um compromisso justo :)

Achei que o problema estava apenas na minha preferência. Quando eu misturei o código HTML para php, o formato é realmente confuso, como quando eu clico na guia, o tamanho da guia vai para 4 e, em seguida, adiciono um novo, agora o tamanho da guia é 2. Eu gostaria de mudar de ST3 para VSC, mas isso me impede de mudar para VSC. Acho que tenho que ficar no ST3 por enquanto.

@thanasisHS Desculpe, acabei de ver isso.

Minha extensão só será executada se o formato ao salvar estiver configurado e não funcionar como um formatador PHP real, é executado noBeforeSave.

Eu praticamente publiquei minha configuração inteira como alguns pontos essenciais, fique à vontade, levei meses de trabalho para torná-la perfeita. Para formatar eu uso PHPCBF, mas uso este, eu sei que tem apenas 300 instalações, mas ele atualizou e mesclou o código de todas as extensões phpcbf mortas, é dinheiro.
https://marketplace.visualstudio.com/items?itemName=ValeryanM.vscode-phpcbf

Aqui estão meus pontos principais, se alguém também estiver interessado em minha configuração. Ele faz php, js, scss, css, vue - formatação automática e linting com eslint, stylelint, phpcbf, phpcs, mais bonito. É uma batida depois que você configurar tudo.

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

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

Todos os dotfiles, composer.json, package.json, conjunto de regras php
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708

Fechando esta questão. Expliquei o motivo na descrição do problema acima.

obrigado. O código está ficando mais arruinado a cada dia. Achei que você da Microsoft foi legal com toda essa iniciativa FOSS, mas ainda não é independente, mas focada em ganhar dinheiro anunciando o Github e o Azure.

@ jens1o Estou confuso, esta decisão tem tudo a ver com promover o ecossistema OSS. As extensões referenciadas são projetos OSS, por favor ajude a torná-los melhores. Os recursos da equipe do VS Code não são ilimitados.

Além disso, não se esqueça do nosso Código de Conduta e comuniquemos de forma respeitosa.

Só não entendo por que você prioriza tarefas em detrimento de outras, embora a comunidade definitivamente as queira. Eu só ouço "redução de problemas" e "fora do escopo" e, oh sim, "recursos limitados" (é por isso que a comunidade está aqui, lol). Ninguém reclama sobre coisas que não acontecerão em breve, mas um pouco mais de foco nas necessidades da comunidade definitivamente ajudaria. Por que precisamos manter o número de problemas baixo, embora eles não poluam nada? A meu ver, o roteiro do Código passou do ponto ideal 2 iterações atrás. Agora, é tudo uma questão de ganhar dinheiro (com a grande comunidade ganhando ao longo dos anos; estou usando desde a primeira demonstração de Build(); todos os dias) integrando produtos pagos e de terceiros (como o GitHub, de propriedade de Microsoft).

Estou dizendo que não me sinto mais bem-vindo nesta comunidade (e estou sinceramente desapontado), não ataco você pessoalmente de forma alguma, então não há razão para fazer referência ao COC aqui. É parte do software FOSS ter discussões abertas.

Mas falando em COC, eu citaria o seguinte:

Entenda divergências

Não entendo por que você quer me fechar, só porque discordo da política que você faz.

Estou tentando entender por que você mudou sua política, então poderia explicar melhor?

@egamma Não acho que seu motivo para encerrar este problema seja razoável. Eu entendo que o código do Visual Studio não pode e não deve fornecer todos os recursos prontos para uso, mas o suporte HTML para a linguagem PHP deve ser um dos recursos mais básicos para um editor de PHP. Talvez a maioria dos recursos do PHP devam ser fornecidos por extensões, mas este não deveria. Muitos editores têm esse recurso, até mesmo o editor de texto simples, Notepad ++, tem esse recurso. Isso faz parte da gramática básica do PHP e você não pode escrever PHP sem ela. Um editor não deveria dizer que suporta PHP sem esse recurso, pois não consegue ler PHP da maneira certa.

E por que o Javascript em arquivo HTML funciona bem e CSS em HTML funciona bem sem qualquer extensão em vscode? Parece que o vscode tem esse recurso, mas não quero fazer um semelhante para o PHP, isso é injusto.

Este recurso é realmente importante para usuários de PHP, e a maioria dos usuários não tentará pesquisar esses problemas e eles não sabem nada sobre as extensões que podem ajudá-los a obter esses recursos básicos e necessários. Esses usuários podem simplesmente baixar este editor, instalá-lo e encontrar esse "bug", desinstalá-lo imediatamente e obter uma impressão muito ruim sobre o vscode. Eles não vão dizer nada aqui. Todos os usuários que desejam compartilhar suas opiniões aqui são as pessoas que realmente desejam que o vscode seja melhor. A sensação de escrever código PHP sem essa função é realmente muito dolorosa, você não pode diferenciar os blocos, você tem que contar as tags html manualmente ou converter o formato do arquivo de php para html e de html para php muitas vezes. Todas as outras linguagens que já experimentei no vscode não terão esses sentimentos ruins sem nenhuma extensão instalada. Os usuários não saberão o motivo, eles apenas se preocupam com a experiência do usuário. Por favor, pense sobre isso e faça algo, até mesmo adicionar um pouco de destaque também é bom:

  • fornecer algum suporte básico para HTML, ou
  • fornecer uma extensão oficial com este recurso e instalar automaticamente ao usar PHP
  • ou mesmo uma recomendação simples para todos os usuários de PHP e instale a extensão recomendada com um clique, então obtenha este recurso e faça com que o vscode seja capaz de realmente suportar PHP

Concordo, @popcorner está correto, isso é essencial para desenvolvedores de PHP e considerando os poderes do WordPress ~ 30% da Internet ou mais e quase todo tema ou plugin tem PHP aninhado com HTML em cada arquivo de modelo. Então, basicamente, uma quantidade ridícula de usuários bem ali precisando disso.

Na verdade, acho que o cerne de todo esse problema está no fato de que você não pode registrar várias extensões de formatação ao mesmo tempo. Há basicamente uma espécie de corrida nesse gancho e apenas um pode vencer, além disso, você não pode ver como um usuário o que está tentando correr, quando e qual realmente correu. Então, para um arquivo PHP, odiosamente você vai usar uma extensão de formatação que faz código PHP em vez de HTML. Mas se você pudesse encadear extensões de formatação e houvesse uma ordem de gancho ou algo que pudesse ser alterado, você poderia registrar um PHP e um HTML e então definir a prioridade / ordem para que um rodasse primeiro / último. Por exemplo, todo esse problema será corrigido se você puder ...

Passo Um execute PHPCBF ou extensão de formatação PHP semelhante.
Passo dois execute a formatação js-beautify html que simplesmente ignora todo o PHP de qualquer maneira e faz apenas o HTML, que é exatamente a mesma coisa que faço na minha extensão, Formatar HTML em PHP, para corrigir o problema. Mas eu tenho que executá-lo noBeforeSave em vez de usar o registro de formatação padrão, mas essa não deve ser a solução.

Resumindo, é muito necessário, mas ao invés de consertar / não consertar o problema, por que não explorar minha ideia acima e você acaba tendo uma experiência muito melhor com cada linguagem e formatação, para usuários e desenvolvedores de extensões.

Esta página foi útil?
0 / 5 - 0 avaliações