Vscode: [php] Bereitstellung von HTML Intellisense

Erstellt am 25. Nov. 2015  ·  234Kommentare  ·  Quelle: microsoft/vscode

In PHP-Dateien gibt es keine automatische Vervollständigung von HTML-Tags. Bitte hinzufügen.


EDIT 9/13/2018 @egamma : VS Code bietet nur grundlegende Unterstützung für PHP, aber es gibt leistungsstarke PHP-Erweiterungen auf dem Markt:

Diese Funktion sollte von diesen Erweiterungen bereitgestellt werden (Intelephence unterstützt sie tatsächlich bereits). Bitte probieren Sie diese Erweiterungen aus und helfen Sie, sie zu verbessern, indem Sie Probleme einreichen und Anfragen abrufen.

Dieses Problem hat den Fokus verloren und wurde zu einer Diskussion darüber, ob VS Code sofort PHP-Unterstützung bieten soll. Wie bei vielen anderen Sprachen wie C #, C ++, Go, Python und Rust möchten wir PHP jedoch nicht mit VS Code bündeln, sondern uns auf unser großartiges Erweiterungs-Ökosystem verlassen. Ich schließe daher diese Ausgabe.

feature-request help wanted languages-basic php

Hilfreichster Kommentar

Ich kann nicht helfen, aber noch +1000 von mir. HTML / CSS / JS in PHP ist als gemischte Datei üblich. Ich habe versucht, Visual Studio + VS.php vollständig - auch nicht unterstützt. Ich frage mich immer wieder, warum dies in jedem Microsoft-Entwicklungstool übersehen wird, das angeblich PHP unterstützt. Ja, PHP-Unterstützung ist vorhanden, aber nutzlos, wenn wir nicht auch IntelliSense (Code-Vervollständigung und Code-Vorschläge) für HTML / CSS / JS haben.

Gleiches gilt für JS-Blöcke und Inline-CSS in HTML.
Wenn ich in settings.json definiere:
"files.associations": {"*.php": "html"},
... als PHP IntelliSense (offensichtlich) nicht funktioniert und HTML aktiviert wird. Inline-CSS mit style=" ...something... "; bietet jedoch keine CSS-Eigenschaften, wenn zwischen Anführungszeichen des Stilattributs geschrieben wird.
Wenn ich einen <script> -Block starte, wird IntelliSense für JS ebenfalls nicht angezeigt, während das Öffnen der .js-Datei normal reagiert.

Ich unterstütze den Vorschlag, dass (wenn es einfacher ist):

  • <?php ... ?> sollte PHP IntelliSense starten
  • außerhalb von <?php ... ?> sollte HTML IntelliSense gestartet werden
    aber auch
  • Innerhalb von <style> ... </style> und style=" .... " sollte CSS IntelliSense gestartet werden
  • Innerhalb von <script ... > und <script> ... </script> sollte JS IntelliSense gestartet werden

Wenn möglich, sollte auch ein Vorschlag von @TheColorRed berücksichtigt werden, dh wenn Sie sich im Inneren befinden
<?php ... ?> aber schreiben eine Zeichenfolge, z. B. $string="..." als es in Betracht gezogen werden sollte, auch HTML IntelliSense zu aktivieren. PHP-Entwickler verwenden häufig Folgendes:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. um zu vermeiden, dass ständig Blöcke mit öffnenden / schließenden PHP-Tags erstellt werden, wie z.
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

Auch @egamma , obwohl wir nicht undankbar oder faul klingen wollen, helfen selbstgefällige Kommentare auch nicht viel, wenn einer von uns kompetent und kompetent genug ist, um es selbst zu codieren - ich bin sicher, wir würden es tun. Leider - ich bin nicht: - / Aber wenn ich auf andere Weise helfen kann, würde ich mich freuen (nicht nur durch Kommentieren mit Vorschlägen, sondern durch Testen oder was auch immer).

Ich hoffe, dass es einen Konsens gibt, dass diese Funktion existieren sollte, und dass die aktuelle PHP-Unterstützung ohne sie nur eine teilweise Unterstützung für die meisten PHP-Entwickler ist.

PS Und noch einmal, um nicht als Kritiker zu klingen - ich mag VS Code bisher sehr und bin allen sehr dankbar, die zu diesem wunderbaren Projekt beigetragen haben und weiterhin dazu beitragen!

BEARBEITEN:
Würde es einfach funktionieren, eine .ts-Datei auf eine andere zu verweisen?
ZB in /languages/php/common/php.ts
Dazu gehören: /languages/html/common/html.ts
Dazu gehören: /languages/css/common/css.ts
umfassen: ...

Obwohl es einige Überschneidungen mit den Tag- / Attribut- / Funktionsnamen geben könnte, fällt mir im Moment nichts ein ... Und für IntelliSense ist dies meines Erachtens kein Problem, da jedes Symbol anders sein würde, könnte in solchen Fällen nur die Farbcodierung durcheinander gebracht werden ... Vermisse ich noch etwas?

Alle 234 Kommentare

Klingt vernünftig. Die HTML-Tag-Intellisense-Anbieter befinden sich hier . Möglicherweise müssen Sie dieses Modul nur mit dem PHP-Code verbinden. Ich versichere auch, dass sie nur außerhalb von <?php -Tags verfügbar sind, wenn ich mich daran erinnere, wie PHP richtig funktioniert.

@Tyriar außerhalb von <?php Tags bedeutet was? Sind sie verfügbar, wenn sich außerhalb von <?php ?> Tags in PHP-Dateien befinden?

Außerhalb von <?php ?> ist HTML, innerhalb ist PHP. Daher sollte die automatische Vervollständigung von HTML nur außerhalb der <?php ?> -Tags verfügbar sein.

@Tyriar Aber jetzt sind sie nicht außerhalb der <?php ?> -Tags in .php -Dateien verfügbar. Vielleicht sind sie nur in .html -Dateien verfügbar.

Bitte fügen Sie diese Funktion schnell hinzu. Ich denke, es ist eine grundlegende Funktion. Vielen Dank.

@osjn danke, dass hast . Ein noch besserer Weg, uns zu helfen, wäre eine Pull-Anfrage mit einer Implementierung.

Vielleicht bin ich es nur, aber ich denke, es wäre cool, wenn Intellisense auch in PHP-Strings verfügbar wäre.

Eine Gegenstimme von mir auch. Diese Funktion wird bitte benötigt.

Fast jeder PHP-Entwickler benötigt diese Funktion, um VSCode als primären Editor auszuwählen.

Wir müssen dieses Problem beheben, um mehr Entwickler anzusprechen.

Gestern habe ich versucht, meinen Kopf gegen dieses Problem zu stoßen, aber leider halten mich meine mangelnden TypeScript-Kenntnisse zurück, um Ihnen bei diesem Problem zu helfen.

Ich brauche das!

Gleich. Einfach +1000

Ich kann nicht helfen, aber noch +1000 von mir. HTML / CSS / JS in PHP ist als gemischte Datei üblich. Ich habe versucht, Visual Studio + VS.php vollständig - auch nicht unterstützt. Ich frage mich immer wieder, warum dies in jedem Microsoft-Entwicklungstool übersehen wird, das angeblich PHP unterstützt. Ja, PHP-Unterstützung ist vorhanden, aber nutzlos, wenn wir nicht auch IntelliSense (Code-Vervollständigung und Code-Vorschläge) für HTML / CSS / JS haben.

Gleiches gilt für JS-Blöcke und Inline-CSS in HTML.
Wenn ich in settings.json definiere:
"files.associations": {"*.php": "html"},
... als PHP IntelliSense (offensichtlich) nicht funktioniert und HTML aktiviert wird. Inline-CSS mit style=" ...something... "; bietet jedoch keine CSS-Eigenschaften, wenn zwischen Anführungszeichen des Stilattributs geschrieben wird.
Wenn ich einen <script> -Block starte, wird IntelliSense für JS ebenfalls nicht angezeigt, während das Öffnen der .js-Datei normal reagiert.

Ich unterstütze den Vorschlag, dass (wenn es einfacher ist):

  • <?php ... ?> sollte PHP IntelliSense starten
  • außerhalb von <?php ... ?> sollte HTML IntelliSense gestartet werden
    aber auch
  • Innerhalb von <style> ... </style> und style=" .... " sollte CSS IntelliSense gestartet werden
  • Innerhalb von <script ... > und <script> ... </script> sollte JS IntelliSense gestartet werden

Wenn möglich, sollte auch ein Vorschlag von @TheColorRed berücksichtigt werden, dh wenn Sie sich im Inneren befinden
<?php ... ?> aber schreiben eine Zeichenfolge, z. B. $string="..." als es in Betracht gezogen werden sollte, auch HTML IntelliSense zu aktivieren. PHP-Entwickler verwenden häufig Folgendes:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. um zu vermeiden, dass ständig Blöcke mit öffnenden / schließenden PHP-Tags erstellt werden, wie z.
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

Auch @egamma , obwohl wir nicht undankbar oder faul klingen wollen, helfen selbstgefällige Kommentare auch nicht viel, wenn einer von uns kompetent und kompetent genug ist, um es selbst zu codieren - ich bin sicher, wir würden es tun. Leider - ich bin nicht: - / Aber wenn ich auf andere Weise helfen kann, würde ich mich freuen (nicht nur durch Kommentieren mit Vorschlägen, sondern durch Testen oder was auch immer).

Ich hoffe, dass es einen Konsens gibt, dass diese Funktion existieren sollte, und dass die aktuelle PHP-Unterstützung ohne sie nur eine teilweise Unterstützung für die meisten PHP-Entwickler ist.

PS Und noch einmal, um nicht als Kritiker zu klingen - ich mag VS Code bisher sehr und bin allen sehr dankbar, die zu diesem wunderbaren Projekt beigetragen haben und weiterhin dazu beitragen!

BEARBEITEN:
Würde es einfach funktionieren, eine .ts-Datei auf eine andere zu verweisen?
ZB in /languages/php/common/php.ts
Dazu gehören: /languages/html/common/html.ts
Dazu gehören: /languages/css/common/css.ts
umfassen: ...

Obwohl es einige Überschneidungen mit den Tag- / Attribut- / Funktionsnamen geben könnte, fällt mir im Moment nichts ein ... Und für IntelliSense ist dies meines Erachtens kein Problem, da jedes Symbol anders sein würde, könnte in solchen Fällen nur die Farbcodierung durcheinander gebracht werden ... Vermisse ich noch etwas?

Wenn dies nicht hinzugefügt wird, muss ich den Editor wechseln, jetzt benutze ich 2 Editoren ...

Wie kann ich HTML IntelliSense deaktivieren, wenn ich mit PHP arbeite?

Diese Option ist ein Albtraum, da ich eine Variable nicht eingeben kann, weil automatisch ein XML / HTML-Tag erstellt wird.

Ich mische meinen PHP-Code nicht mit dem HTML-Code und werde diesen Fehler niemals machen. Bitte fügen Sie zumindest die Option hinzu, ihn im PHP- "Modus" zu deaktivieren.

Für PHP sollten Sie Crane Intellisense https://marketplace.visualstudio.com/items?itemName=HvyIndustries.crane ausprobieren

@ TheColorRed Crane Intellisense hat das Problem. Es ist bei weitem die beliebteste VS Code PHP-Erweiterung, daher denke ich, dass dies das ist, womit die meisten Leute ihr Problem melden.

Ebenso benötigen wir die automatische Vervollständigung für CSS / JS in HTML. Ansonsten ist ein Wechsel nach Monaco keine echte Option :-)

Ich habe gerade vscode ausprobiert, aber da mir diese Funktion fehlt, kann ich diese IDE nicht mehr verwenden. Bitte geben Sie diese Funktion an, da sie für jede IDE ein Muss sein muss.
Danke im Voraus.

Dies ist sehr wichtig. Es ist unglaublich ärgerlich, nicht richtig intelligent zu werden, wenn man entweder PHP-Code in eine HTML-Datei oder HTML in eine PHP-Datei einfügt.

Eine große Funktion, die mir fehlt und die mich und meine Kollegen daran hindert, vsCode als Haupteditor zu verwenden.

Dies ist ein Deal Killer für mich ohne diese sehr gemeinsame Funktion. Schade aber ... Ich liebe diese Idee wirklich, wirklich, wirklich. Wenn dies hinzugefügt wird, werde ich so glücklich sein.

@egamma Ich werde gleich mit dem Einreichen einer PR beginnen, nachdem ich unnötig viel Zeit damit verbracht habe, den zu ändernden Code zu finden, weil Sie sich entschieden haben, passiv aggressiv und sarkastisch zu sein, anstatt denjenigen, die dies können, die geringste Richtung zu bieten helfen.

@TechnikEmpire Bitte lesen Sie nicht zu viel in einem Kommentar, den ich im Dezember 2015 abgegeben habe, als wir uns von der großen Veröffentlichung von VS Code im November erholten. Entschuldigung, wenn dieser Kommentar als sarkastisch empfunden wurde.

In Bezug auf Intellisense für PHP sind einige gute Fortschritte zu verzeichnen. Wenn Sie einen Beitrag leisten möchten, schlage ich vor, einen Beitrag zum php-language-server -Projekt zu leisten, an dem @felixfbecker arbeitet. Felix ist auch der Autor des PHP-Debuggers . Dies sind die zugehörigen Repositorys:

Weitere Informationen zum Sprachserver-Ansatz und zum Sprachserver- Protokoll finden Sie hier.

@egamma Aber gibt es eine Möglichkeit, wie der PHP-Sprachserver an den HTML-Sprachserver von VS Code "delegieren" kann? Es scheint, als würde https://github.com/Microsoft/vscode/issues/1751 dies abdecken

@felixfbecker Nachdem wir den HTML-Sprachserver extrahiert haben, möchten wir zunächst untersuchen, wie er in den CSS-Sprachserver integriert werden kann, damit wir Intellisense in CSS-Abschnitten bereitstellen können. Dies entspricht dem ersten Szenario, das Sie in # 1751 erwähnt haben, und das wurde auch in # 8928 angefordert.

Diese Arbeit hat es nicht für September geschafft und ist jetzt für Oktober geplant.

Vielen Dank! Die CSS-Unterstützung in der HTML-Arbeit ist für Oktober geplant. Was ist <script> Unterstützung von JS aka

@egamma gibt es irgendwelche Änderungen oder Verbesserungen? Mitte Oktober verging, also wollte ich nur noch einmal nachsehen. Nach 5 Monaten verwende ich VS Code aufgrund des Problems immer noch nicht als primären Editor, und ich bin mir sicher, dass es Hunderte stiller Seelen gibt. Ich bin froh, dass es einige Arbeiten mit HTML / CSS-Mixing gibt, aber wir brauchen wirklich eine vollständige HTML + CSS + JS + PHP-Unterstützung ...

@luxzg HTML + CSS-Fortschritt gemäß Oktober-Plan, HTML + CSS + JS ist eine Strecke. Verfolgen Sie unsere Fortschritte hier: https://github.com/Microsoft/vscode/projects/2

Für mich helfen Powershell-Inliner in einer Art Devops-Datei, die diese Funktion bearbeitet, ebenfalls sehr. Kann jemand eine Erweiterung haben, deren Syntax besonders automatisch geändert wird, wenn sich ein Cursor in einem Codeblock befindet?

FWIW das "HTML Snippets" Plug-In Allong Seite PHP Intellisense funktioniert gut für mich.

@matthewringer das Plugin funktioniert bei mir nicht

Dies ist auch für mich ein Problem. Hat sich diesbezüglich noch nichts bewegt?

Hoffen wir, dass dies bald hinzugefügt wird. Ohne dies bezweifle ich, dass ein PHP-Entwickler es verwenden wird.

Sublime juckt mich sehr, wenn ich zurückkehre (TM). VSCode Wenn du mich liebst, dann rette meine Seele und füge bitte die HTML CSS & JS Unterstützung hinzu.

Weit über ein Jahr und immer noch keine Unterstützung dafür? "Ja wirklich?" ... und hier dachte ich, MS hat endlich ein Produkt hergestellt, das kein Müll ist.

Dies ist die einzige Funktion, die PHPStorm für mich so viel besser macht als alles andere, was ich versucht habe. Wenn sie endlich die richtige Unterstützung für Intellisense / Syntax-Hervorhebungen für PHP mit HTML, CSS und Javascript implementieren können, könnten wir endlich einen wirklich guten, leichten PHP-Editor haben.

Es ist im Moment sehr ärgerlich, HTML, CSS oder Javascript einzugeben und überall PHP-Vervollständigungen zu erhalten. Sie können auch einen anderen Editor ohne automatische Vervollständigung verwenden.

Es kann nicht so schwer sein, .php-Dateien einfach als HTML zu klassifizieren und dann nur das zu analysieren, was in <?php ?> -Tags als PHP-Code enthalten ist, oder?

+1 von mir, bitte verwechsle sie :)

Ich habe gerade angefangen, VScode zu verwenden, als ich das Programmieren gelernt habe, und es ist super toll - ich mag die Geschwindigkeit, das Polieren und die Benutzerfreundlichkeit - magisches Zeug. Erst heute wurde klar, dass es nicht darum geht, HTML in PHP-Dateien (innerhalb oder außerhalb von PHP-Tags) aufzunehmen, was das Abgleichen von HTML-Tags ziemlich schwierig macht. Ich muss zu einem anderen Editor wechseln, der nicht ideal ist.

Es tut mir leid, dass ich nicht genug Erfahrung habe, um dies aus der Ferne selbst hinzuzufügen / zu beheben, aber ich würde mich sehr freuen, wenn jemand von Microsoft es hinzufügen könnte. Ich binde routinemäßig HTML-, Javascript-, CSS- und SQL-Code in meine PHP-Dateien ein. Wäre großartig, wenn alles wie in anderen Editoren erkannt werden könnte, obwohl ich sicher bin, dass es nicht trivial ist, diese Funktionalität hinzuzufügen. Ich würde es wirklich hassen, VScode alle zusammen verlassen zu müssen, da dies die Lernerfahrung angenehm macht.

@egamma @aeschli das liegt schon eine ganze Weile herum - du hast erwähnt, dass du dieses Problem mit den HTML- und CSS-Sprachservern lösen willst, ist das fertig? Ich denke, dies hängt von der Fähigkeit eines Sprachservers ab, bestimmte Bereiche im Dokument zu definieren, in denen alle Sprachfunktionen von einem anderen Sprachserver verarbeitet werden sollten. Ein PHP-LS kann also nach dem Parsen eines Dokuments deklarieren, welche Bereiche HTML sind, ein HTML-LS kann deklarieren, welche Teile JS oder CSS sind, ein TS / JS-LS kann deklarieren, welche Teile SQL oder GraphQL sind.

@felixfbecker ja diese unterstützung ist seit ein paar meilensteinen verfügbar, bitte siehe

image

Den HTML-Sprachserver finden Sie hier https://github.com/Microsoft/vscode-html-languageservice.

Der Ansatz wurde für die Unterstützung der Vue-Sprache https://github.com/octref/vetur nachgeahmt

// fyi @aeschli

@egamma Wie wird die Fertigstellung an einen anderen Sprachserver übergeben? Gibt es dazu Unterlagen? Ich nahm an, dass dies eine LSP-Erweiterung erforderlich gemacht hätte

Lass das hier

@felixfbecker Wir haben derzeit keine andere Dokumentation als den Code, sorry. Ich schlage vor, dass Sie sich mit @aeschli verbinden, um einen tiefen Tauchgang zu machen, wenn Sie anfangen möchten, diese Unterstützung für PHP hinzuzufügen.

@felixfbecker

Es scheint, dass es noch keine allgemeine Möglichkeit gibt, eine Sprachinjektion durchzuführen, aber die Implementierung der HTML-Erweiterung ist ziemlich einfach.

Ich denke, jetzt trifft es einen guten Mittelweg: VSCode bietet HTML / CSS-LS-Pakete an, um die Implementierung der Unterstützung für eingebettete Sprachen zu vereinfachen. In der Zwischenzeit bleibt die Flexibilität erhalten, sodass jeder LS je nach Kontext unterschiedlich reagieren kann.

Mit Kontext meine ich, dass die HTML-Erweiterung jquery.d.ts herunterladen könnte, wenn ein Skript-Tag mit jquery enthalten ist (würde nicht für vue gelten), oder die vue-Erweiterung jede .vue-Datei als Komponente markieren würde, um die Modulauflösung durchzuführen (würde nicht) gelten für HTML).

Um @aeschli zu zitieren: https://github.com/Microsoft/vscode/issues/12354#issuecomment -257242426

Es gibt einige Fehler, bei denen wir eine allgemeine Lösung für eingebettete Inhalte finden sollen, aber ich denke, dass uns das nicht gelingen wird. Es gibt subtile Unterschiede in jedem Fall, in dem wir der Meinung sind, dass es besser ist, jede Hostsprache spezifisch zu implementieren, um die beste Benutzererfahrung zu erzielen.

Ich stimme jedoch zu, dass das Dokument zur Implementierung der Unterstützung für eingebettete Sprachen fehlt. Ich schätze, ich werde etwas nachschreiben, sobald ich alle wichtigen Funktionen für meine Vue-Erweiterung abgeschlossen habe.

Das ist sehr unglücklich. Können wir diese Funktion nicht zu LSP hinzufügen? Der Sprachserver analysiert die Dokumente in einem AST, sodass nur der Sprachserver weiß, welcher Teil des Dokuments in einer anderen Sprache geschrieben ist und übergeben werden sollte. Also muss die Erweiterung _auch_ das Dokument analysieren? Dies ist in den meisten Fällen nicht einmal möglich, da der Parser von einer anderen Laufzeit als Node (PHP, Java, ...) abhängt.

Ich kann mir nicht vorstellen, dass das Hinzufügen zu LSP so schwierig wäre. Beispielsweise könnte der Server einfach eine Benachrichtigung für einen URI mit einem Array aus einem Bereich + einem Sprachmodus senden. Dann könnte jeder Editor (nicht nur VS Code) einen anderen Sprachserver für diesen Bereich verwenden.

@egamma Ich konnte den Code im Repository, der die Sprache übergibt, nicht finden. angeben ? Entschuldigung, wenn ich das übersehen habe.

@felixfbecker Erich meinte: Die Einbettung verschiedener Sprachdienste erfolgt innerhalb des Servers.
Sie können das zB in den Abhängigkeiten des HTML-Servers sehen.
Auf diese Weise ist der Server in sich geschlossen und hat die volle Kontrolle über die Konfiguration des Kontexts der eingebetteten Sprache (die JavaScript-Bibliotheken sind im eingebetteten Inhalt, Version der Sprache (ES5, ES6 ..) verfügbar).

Hier gerät die von Ihnen skizzierte Lösung (Kommunikation zwischen Sprachservern) in Schwierigkeiten. Dies führt wahrscheinlich zu sprachserverspezifischen APIs und Abhängigkeiten zwischen Servern.
Wir möchten die Kopplung niedrig halten und Spracherweiterungen austauschbar halten.

Trotzdem kann jeder Sprachserver seinen Ansatz frei wählen. Sie können dazu benutzerdefinierte LS-Nachrichten verwenden. So haben wir es in der November-Version implementiert. Der Server sendet die Anforderung an den Client zurück. Der Client fragt andere Erweiterungen basierend auf virtuellen Dokumenten , die nur den Inhalt der eingebetteten Sprache enthalten.

Ich würde vorschlagen, dass wir die Diskussion fortsetzen, ist ein separates Thema. Vielleicht ein neues Problem mit den Vorschlägen einreichen, wie Sie den LSP erweitern können?

Auch hier drin. Bisheriges Lieben von VS-Code, aber das Fehlen eines HTML-Tag-Wettbewerbs innerhalb von PHP ist ein echter Deal Breaker. Vorübergehend wechsle ich in den HTML-Sprachmodus für PHP-Dateien, weiß aber nicht, wie dies am Ende funktionieren wird.

Ich habe mich in VSCode verliebt, bis ich herausfand, dass diese grundlegende Funktion fehlt. Vorerst wieder erhaben.

Diese eine Funktion hindert mich daran, zu VSCode zu wechseln.

Dies ist eine dringend benötigte Funktion. +99999

Eine solche Grundfunktion, die in allen anderen Editoren vorhanden ist: |

Nicht mehr folgen

Gibt es Updates, wann wir damit rechnen können?

Dies würde in meinem Kopf direkt mit # 765 zusammenhängen.

: +1: So guter Editor und es fehlt eine so einfache Funktion :(

Ich stelle mir vor, wenn dies nicht vollständig geschlossen wurde, wird es möglicherweise eines Tages behoben. Ich hoffe es sehr - je früher, desto besser.

Das EINZIGE, was mich davon abhält, von Atom zu VSCode zu wechseln, ist das Fehlen dieser entscheidenden Funktion :(

Kann jemand dann alternative Editoren für Full-Stack-Web-PHP / HTML / JS vorschlagen? Ich liebe VSCode wirklich, aber dieser Mangel an Funktionen ist nur ein Blocker für mich. Ist PHPStorm oder WebStorm gut?

Als Betreuer von PHP IntelliSense ist dieser Thread ein Albtraum, den man abonnieren muss. Wenn Sie das Problem +1 möchten, geben Sie ihm einen Daumen hoch. Alle diese +1 Kommentare überladen nur die Thread- und Spam-Betreuer mit Benachrichtigungen, ohne der Diskussion einen Mehrwert zu verleihen. Und zu allen, die sagen "das ist so ein einfaches Feature": Es ist eigentlich nicht so. Aber wenn Sie so denken, können Sie gerne eine PR machen.

@felixfbecker Ich denke, es zeigt, wie frustriert die Leute mit diesem Problem sind. Es ist nicht so sehr eine einfache Funktion; Ich bin damit einverstanden, dass die Implementierung komplex ist, aber es ist mehr so, dass die Leute diese Art von Funktion mit einem Texteditor erwarten und wie ich, nachdem sie sich in VScode verliebt haben, ziemlich schockiert sind, dass sie fehlt.

Es geht um das Fehlen einer Roadmap für ein so wichtiges Thema. Einfach oder nicht, dies ist eine Funktion, die für eine Entwicklungsumgebung im Jahr 2017 erforderlich ist. Eine supereinfache Lösung besteht darin, Abschnitte mit Kommentaren oder einem anderen Schlüsselwort zu versehen, um anzugeben, welche Informationen wir benötigen. Bei GitHub-Codeblöcken wird ein Textabschnitt in Tags eingeschlossen.

Es ist zwar ein bisschen nervig, all das Jammern zu hören, und ich war einer davon
Wenn Sie sich mit diesem Thema befassen, ist es wichtig, es zu hören.

Es spielt keine Rolle, ob etwas Open Source ist, Sie sind immer noch damit beschäftigt
ein Produkt an Verbraucher zu liefern und wenn es scheiße ist, werden die Leute es tun
beschweren. Wenn mein Autohändler mit meinem jährlichen Service eine kostenlose Wäsche einwirft
und die Autowaschanlage mit Mindestlohn hinterlässt überall in meinem Auto Streifen, ich gehe
sich beschweren.

Kostenlos oder nicht, es gibt eine Investition seitens des Benutzers, um seine zu ändern
Workflow mit einem neuen Editor. Die Leute tun dies nur, um das herauszufinden
Sie verschwendeten Zeit und konnten sich genauso gut an die Verwendung des Notizblocks halten. Leute können
Abbestellen, wenn sie das negative Feedback nicht hören möchten, aber es ist
wichtig, dass Microsoft diese Beschwerden hört. Immerhin haben sie
erheblich in die Herstellung dieses Produkts investiert und was sind sie
für ihr Geld zurückkommen? Menschen mit einem weiteren Grund, ihre zu verfluchen
Unternehmen und verwenden Sie nicht das Produkt, in das sie eingezahlt haben.

Was Pull-Anfragen angeht, ärgern sich die Leute schon über ihre Zeit
Investitionen, nur um Workflow und Tools zu wechseln, wurden verschwendet. Es gibt
wenig bis gar kein Einblick, wo man überhaupt anfangen kann, zusätzliche Zeit zu gewinnen
Investition, auch wenn sie Lust hatten, mehr Zeit wegzuwerfen. Diese
ist auf dem Papier kein komplexes Merkmal. Wenn es also in der Praxis ist, dann vielleicht
Das Anwendungsdesign weist schwerwiegende Mängel auf. Ich kann nur
spekulieren, wie alle anderen auch, weil wir nicht von jemandem bezahlt werden
um diese Codebasis zu lernen.

Am Mittwoch, den 29. März 2017 um 09:37 Uhr Stephen Eckels [email protected]
schrieb:

Es geht um das Fehlen einer Roadmap für ein so wichtiges Thema. Einfach oder nicht
Dies ist eine Funktion, die 2017 für eine Entwicklungsumgebung erforderlich ist. Super einfache Lösung
Lassen Sie uns Abschnitte mit Kommentaren oder einem anderen Schlüsselwort versehen, um sie anzugeben
welche Intelligenz wir wollen. Umhüllen Sie einen Abschnitt von GitHub-Codeblöcken
Text in Tags.

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
.

>

Jesse Nicholson

Die Antwort auf all dieses Problem für mich war NETBEANS für PHP

Eine großartige Idee, die ich für eine lange Zeit nicht ändern werde.

@ madruga88 Netbeans ist nicht einmal das Beste. Ich glaube, PHPStorm ist derzeit der beste PHP-Editor auf dem Markt. Ich glaube, Jetbrains hat die gesamte Unterstützung für intelligente Codierung von Microsoft übernommen und sie erheblich verbessert.

Als ich anfing, VSCode zu verwenden, war die einzige IDE, an die ich mich erinnerte, die von IntelliJ Products, da die Fertigstellungen blitzschnell angezeigt wurden. Tatsächlich haben sowohl VSCode als auch PHPStorm ein sehr ähnliches Gefühl in Bezug auf die allgemeinen Bearbeitungsfunktionen. Der einzige Ort, an dem VSCode schwer ausfällt (und ich meine wirklich schwer), ist PHP mit eingebettetem HTML (was von Anfang an hätte funktionieren sollen).

Wenn VSCode endlich eingebettetes HTML für PHP erhalten würde, wäre es leicht der beste Texteditor (keine IDE) für PHP.

Momentan bleibe ich bei der Verwendung von Sublime Text, weil es zumindest weiß, ob ich HTML, CSS, Javascript oder PHP in derselben Datei habe und zumindest die richtigen Vervollständigungen liefert.

Lustige Sache ist Sublime Text, wenn Sie eine PHP-Datei haben, die es als einfache HTML-Datei verarbeitet. Kann VSCode die PHP-Unterstützung nicht auch zur HTML-Syntax hinzufügen? Keine Notwendigkeit, 2 separate Syntaxen dafür zu haben?

@ drone540 Die schlechte Lade- und Verwendungsleistung (auch wenn die Code-Eingabe langsam ist) von phpstorm hat mich dazu gebracht, Netbeans zu wählen ... die alle Flusen- und Hinweis-Tools haben, die perfekt formatiert und debuggt.

Ich benutze Visual Studio seit einem Jahrzehnt. Und ich kann sagen, dass Netbeans das Visual Studio von PHP ist, aufgrund der vollständigen Funktionen und der guten Leistung.

Ich stimme Ihnen zu, dass das einzige, was in vscode fehlt, die HTML + PHP-Syntaxformatierung ist.

aber selbst wenn PHPSTORM kostenlos wäre ... würde ich Netbeans auswählen ... wegen seiner Leistung.

Ernsthaft ist dies seit 2015 nicht mehr behoben? Zurück zum Erhabenen

Ich überprüfe immer wieder, ob dieses Problem behoben ist, aber keine Bewegung. Wechselt nicht zu VSCode, bis es unabhängig von der Anzahl der anderen großartigen Funktionen ist. Es wird dringend benötigt.

Ich überprüfe immer wieder, ob dieses Problem behoben ist, aber keine Bewegung. Wechselt nicht zu VSCode, bis es unabhängig von der Anzahl der anderen großartigen Funktionen ist. Es wird dringend benötigt.

Welche IDE verwenden Sie gerade?

@icenold Ich habe einen ziemlich raffinierten Workflow mit Brackets atm. Neigt dazu, dabei zu bleiben.

Obwohl ich Visual Studio Code liebe, muss ich leider wegen dieses Problems zu Sublime wechseln.

immer noch offen? Jeder möchte diese Funktion!

Bitte implementieren Sie diese Funktion. Ich habe von Freunden von Entwicklern großartige Dinge über VS gehört. Ich wollte heute Morgen von sublime wechseln, aber ich kann wirklich nicht überholt werden, wenn ich diese Funktion nicht habe.

Leute, lasst uns geduldig sein.

@markpanado Ursprüngliches

Während wir warten, gibt es eine Möglichkeit, die HTML-Syntax als Standard für PHP-Dateien festzulegen, da ich normalerweise viel mehr HTML in PHP als in PHP schreibe. Im Benutzereinstellungsfeld ist nichts ersichtlich.

Vielen Dank!

@ matt3224 Klicken Sie auf die Sprachanzeige in der unteren linken Ecke der Statusleiste und wählen Sie in der Schnellauswahl "Dateizuordnung konfigurieren".

image

@egamma Ausgezeichnet! Vielen Dank

Tatsächlich ist PHP so konzipiert, dass es mit HTML arbeitet und sich mit dem HTML-Tag abdeckt, genau wie Javascript / CSS in HTML. Andere Sprachen funktionieren so nicht. Daher sollte die HTML-Unterstützung in .php-Dateien eine integrierte Funktion sein.

Obwohl ich die Erweiterungen für VS Code liebe, ist das hier erwähnte Problem (angesichts der Dauer dieses Threads) ein Deal Breaker. Natürlich können Sie die Arbeit ohne sie erledigen, aber es fühlt sich langsam an, langsam genug, dass Sie einfach zum Editor zurückkehren und überhaupt keine Sprachwerkzeuge verwenden können.

Es sollte nicht so sein.

Hallo vscode PHP-Enthusiasten. Sie könnten an der Version 0.7.0 von

optimised

Es gibt ein paar Macken, dass Sie sich im HTML-Sprachmodus befinden müssen und die Syntaxfärbung für PHP nicht verfügbar ist. Das Formatieren (es wurde aus dem GIF herausgeschnitten) ist ein dreistufiger Prozess: Formatieren von HTML -> Wechseln zu PHP -> Formatieren von PHP.

Hoffentlich trennen Sie alle Ihre Ansichten und Modelle gut voneinander und diese Mängel sind kein allzu großes Problem.

@bmewburn erstaunlich! Wann wird das verfügbar sein?

@popcorner es ist jetzt verfügbar

Ich persönlich habe dieses Problem gelöst, indem ich zu Datei-> Beenden gegangen bin und Netbeans heruntergeladen habe
w / Web Dev Addon. Überlegen. Vs-Code ist eine anständige Typoskript-Idee und nicht viel
sonst. Wenn Sie aufhören, mehr davon zu erwarten, werden Sie nicht mehr enttäuscht.

Am Samstag, 24. Juni 2017, um 17:02 Uhr Ben Mewburn [email protected]
schrieb:

@popcorner https://github.com/popcorner es ist jetzt verfügbar

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
.

>

Jesse Nicholson

@bmewburn Ich habe ") Automatische Vervollständigung verlieren. Der Verlust der Formatierung des PHP-Themas.

Es erfordert das gleiche Hin und Her zwischen HTML und PHP und das verschwendet einfach zu viel Zeit.

In einem separaten Hinweis frage ich mich, ob dieser ganze Thread nur ein großer Troll ist. Wie kann dies nach 2 Jahren noch ein Problem sein? Jeder, der sogar ein ähnliches Problem eröffnet, hat es geschlossen und auf dieses verwiesen. In all dieser Zeit wurden jedoch keine Fortschritte erzielt.

Auch ich bin zu Netbeans übergegangen und habe herausgefunden, dass PHPStorm in der Lage ist, PHP-HTML-JS in einer Datei perfekt zu verarbeiten. Die Remote-DB-Integration über SSH ist ebenfalls ordentlich.

Also habe ich einige Tests mit Netbeans und PHPStorm durchgeführt.

Es sieht so aus, als ob Netbeans diesbezüglich ziemlich anständig ist.

Netbeans
Es unterstützt:

  • HTML / CSS / JS in einer PHP-Datei außerhalb vonStichworte
  • CSS in HTML-Tags mit Stilattributen.
  • Rechtschreibvervollständigungen (keine Ahnung, ob dies nützlich ist, aber es ist da)

Es schlägt fehl mit:

  • Die Vervollständigungen scheinen den von Ihnen eingegebenen Inhalt nicht zu kennen, daher entspricht die erste Vervollständigung möglicherweise nicht Ihren Wünschen.
  • Keine Unterstützung für HTML in PHP-Strings. Tatsächlich sind die Vervollständigungen hier so schlecht wie bei VScode.

PHPStorm

  • Nun, es funktioniert so ziemlich in jedem Kontext und funktioniert wirklich gut und alle Vervollständigungen sind punktgenau und genau das, was Sie tatsächlich wollen.

Kleinere Fehler:

  • kleines Problem, das die automatische Vervollständigung zu schließen scheint - Schlüssel mitmit Stilattributen. Kann mit Strg + Leertaste erneut geöffnet oder das CSS-Attribut weiter eingegeben werden
  • Wird in PHP-Strings nur aktiviert, wenn ein HTML-Tag vorhanden ist (was ohnehin wirklich gut genug ist).

PHPStorm fühlt sich VSCode definitiv viel näher (wenn es funktioniert) als Netbeans. Wenn Sie testen möchten, wie die automatische Vervollständigung wirklich funktionieren sollte. Ich würde empfehlen, es in PHPStorm zu testen. Auch PHPStorm und VSCode haben viele ähnliche Bearbeitungsfunktionen gemeinsam. In Bezug auf die Leistung denke ich, dass PHPStorm schneller ist. Selbst bei der automatischen Vervollständigung sind keine Verzögerungen aufgetreten. Netbeans bemerkte eine gewisse Verzögerung bei der automatischen Vervollständigung.

Keine Ahnung, wie lange es dauern wird, bis VSCode dieses Problem tatsächlich behebt, aber ich glaube, wenn es endlich funktioniert. Es wird viel näher an der Funktionsweise von PHPStorm arbeiten und mindestens der zweitbeste Editor für die automatische Vervollständigung von PHP aller Zeiten werden.

Ich bin erst kürzlich von SublimeText zu VSCode gewechselt, um auf dieses Problem zu stoßen. Es ist ein ziemlich nerviges Problem und auch ein ziemlich einfaches. Ich muss deswegen zu SublimeText zurückkehren. Es wurde versucht, PHP mit HTML zu verknüpfen, aber dadurch wird der gesamte PHP-Code weiß, und es wird überhaupt keine Syntax hervorgehoben. Furchtbar!

Ich dachte, dass ich nach 10 Jahren endlich eine einzige Microsoft-Software haben werde, die dauerhaft auf meinem Computer installiert wird, aber wenn sie ein einfaches Problem 2 Jahre lang nicht lösen kann, wird sie wieder in den Papierkorb geworfen.

Das Schreiben von HTML in ein PHP-Dokument verursacht

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

@ingageco Nein, das ist es nicht. Es wird von der PHP Intellisense-Erweiterung von @felixfbecker vorgeschlagen. Er kann jedoch nichts tun, da Erweiterungen keine speziellen Aktivierungszeichen angeben können, sodass dies noch vermieden werden kann.

Ich möchte nur eines wissen. Ist es im Gange (Stück für Stück, Babyameisenstufen) oder wurde es einfach komplett beiseite gelegt?

@bsienn Über was? Die PHP-Intellisense-Erweiterung ist in Bearbeitung, während das Code-Team nicht möchte, dass dies nativ bereitgestellt wird.

@ jens1o Danke für die Antwort. Also, php intellisense extension sprechen Sie über die Erweiterung von Fleix Baker?
Also ist dieser Thread redundant? Jetzt bin ich verwirrt. Sollte ich seinem Plugin-Repository folgen, um Fortschritte zu erzielen?

Ja, ich spreche von Felix 'Erweiterung, und ja, Sie sollten seinem Repository folgen, um auf dem neuesten Stand zu sein.

... also 2 Jahre später gibt es immer noch keine Lösung für die automatische Vervollständigung von HTML in einer PHP-Datei? Ich mag VS Code wirklich, ich möchte darüber nicht zu Sublime zurückkehren müssen :-(

Im Moment müssen wir uns nur wirklich damit befassen

Oder Sie wissen es nicht, weil es andere Möglichkeiten gibt. Git und Debugging allein bringen mich nicht dazu, in meinem Workflow einen Schritt zurückzutreten. Niemals nicht, wenn es Optionen gibt, die möglicherweise nicht so gut implementiert sind, aber ansonsten angemessen sind. Dieses Problem sollte von Anfang an gelöst worden sein.

Das Hauptproblem ist, dass wir nicht wissen, wer das bereitstellen würde. Idealerweise die PHP-Erweiterung ( @felixfbecker ?). Ich bin auch offen dafür, dem HTML-Sprachserver Unterstützung hinzuzufügen.
Alle HTML-Smartness ist auch als Knotenmodul verfügbar.

@aeschli Wie oben und in einigen anderen Threads beschrieben, ist es nicht der richtige und nachhaltige Ansatz, dass jeder Sprachserver Sprachserver für jede mögliche eingebettete Sprache einbetten muss. PHP bettet üblicherweise HTML und SQL ein. HTML bettet normalerweise CSS und JS ein. JS bettet wieder häufig HTML ein. Die Autoren von Sprachservern würden in ein Kaninchenloch gehen, das jede verschachtelte Kombination unterstützt, und der Benutzer würde am Ende mehrere Male für dieselbe Sprache installierte Sprachserver haben, kann jedoch nicht mehr steuern, welcher Sprachserver für diese eingebetteten Sprachen oder deren Version verwendet werden soll. Wie Sie selbst in https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369 (Hervorhebung von mir) gesagt haben:

Dies führt wahrscheinlich zu sprachserverspezifischen APIs und Abhängigkeiten zwischen Servern.
Wir möchten die Kopplung niedrig halten und Spracherweiterungen austauschbar halten .

Ich stimme dem voll und ganz zu, und aus meiner Sicht führt der Einbettungsansatz zu genau dem, nicht zu meiner skizzierten Lösung:

  • Geben Sie Sprachservern die Möglichkeit, dem Kunden mitzuteilen, welche Bereiche eingebettete Sprachen enthalten. Beispielsweise meldet der PHP-Sprachserver die Bereiche von Inline-HTML als eingebettetes HTML an VS Code, der HTML-Sprachserver meldet an VS Code die Bereiche von <style> Tags als eingebettetes CSS und Bereiche von <script> Tags als eingebettetes JS.
  • Der Client (VS-Code) aktiviert die für eingebettete Sprachen erforderlichen Sprachserver und sendet ihnen didOpen Benachrichtigungen mit einer virtuellen URI und Inhalten des eingebetteten Bereichs.
  • Wenn der Benutzer eine automatische Vervollständigung innerhalb des Bereichs einer eingebetteten Sprache anfordert, senden Sie diese Anforderung an den Sprachserver für die eingebettete Sprache (Positionen relativ zum Beginn des eingebetteten Bereichs).
  • Zeigen Sie die Ergebnisse an und lösen Sie die Positionen nach Bedarf relativ zum Beginn des eingebetteten Bereichs auf.

Mit diesem Ansatz hat der Benutzer die volle Kontrolle darüber, welche Sprachserver verwendet werden sollen (sie sind austauschbar ), und die einzelnen Server müssen sich nicht darum Abhängigkeiten einzubetten . Dies bedeutet eine konsistente Erfahrung zwischen eingebetteten Sprachen und Sprachen der obersten Ebene und verwaltet den SoC für jeden Sprachserver, sodass nur eine Sprache berücksichtigt wird.

Die Benachrichtigung könnte ungefähr so ​​aussehen:

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

Beispiel:

Bei einem PHP-Dokument wie diesem:

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

Der PHP-Langserver würde an VS Code senden

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

Dies würde dazu führen, dass der HTML-Langserver textDocument/didOpen von VS Code mit einem URI wie file:///foo.php#embedded1 und diesem Inhalt erhält:

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

Gerne besprechen wir dies in einer separaten Ausgabe, wenn Sie möchten.

@aeschli Ich denke, die Tatsache, dass dies immer wieder als Sprachserver-Problem

@felixfbecker Niemand sagt, dass jedes einzelne Formatierungsbit erkennbar sein soll. Das wäre verrückt, aber ein Minimum an PHP / HTML, das ineinander erkennbar ist, wäre schön. VSCode macht die Arbeit mit PHP / HTML im Vergleich zu anderen IDEs unnötig schwierig

@felixfbecker

Welche Dateien müssen speziell auf dem Sprachserver bearbeitet werden, damit dies wirksam wird? Ich habe auf dem Sprachserver nach HTML gesucht und kann nicht genau sehen, was er mit Stil und Skript macht.

Es sieht so aus, als würde es das Token für alles überspringen, was nicht HTML ist, gemäß dieser Datei: 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

Aber woher wissen CSS und Javascript, was zu tun ist? Ich sehe nicht, wie sie laut dieser Datei überhaupt funktionieren.

@aeschli Ein <?php ?> für PHP, innerhalb von HTML - funktioniert es. Sie können dies hier in Aktion sehen https://github.com/Microsoft/vscode / issue / 670 # issuecomment -310822851

Damit dies reibungsloser funktioniert.

  1. Ermöglichen Sie die Zuordnung mehrerer Sprach-ID-Dateien, damit jeder Lang-Server ausgeführt wird.
   "files.associations": {
        "*.myphp": ["php", "html"]
    }  
  1. Verwenden Sie eine kombinierte Grammatikdatei php / html / css / js zur Hervorhebung der Syntax

Gibt es umfassendere Lösungen für die Einbettung von Sprachen? Wahrscheinlich. Und ich stimme zu, dass es nicht in der Verantwortung eines bestimmten Servers liegen sollte, mehrere Sprachen einzubetten. Ich denke nicht, dass es sogar in der Verantwortung des Servers liegen sollte, zu identifizieren, welche bestimmte Sprache verwendet wird. Der Benutzer sollte den Dokumentbereich identifizieren. Abgesehen davon denke ich nicht, dass es so schwer ist, PHP und HTML zusammenzubringen.

@bmewburn Wenn es nicht so schwer ist, warum warten wir 2 Jahre später auf eine Lösung?
@felixfbecker sagt, es ist nicht so einfach zu tun. Aber dieses Problem ist noch offen, so dass man offensichtlich denken würde, dass es eine Priorität sein könnte, aber jede Veröffentlichung sieht es übersehen. Also, bis jemand eine Änderung vornimmt, werde ich weiterhin ornery sein und hoffen, dass es irgendwann behoben wird. Bis dahin werde ich weiter verwenden, was funktioniert.

@felixfbecker Wie ich in meinem Kommentar erwähnt umgegangen werden soll: Anforderungen an andere Server weiterleiten oder selbst bearbeiten. zB mit einer verknüpften Bibliothek / einem verknüpften Dienst. Es hängt alles davon ab, wie eng die eingebetteten Inhalte und die Hauptsprache miteinander verbunden sind und welche Benutzererfahrung der Server bieten möchte. Oft benötigen eingebettete Inhalte Kontext aus der Hauptsprache und müssen sich an Regeln halten. Dies kann nicht einfach an einen Sprachserver kommuniziert werden, der nur ein virtuelles Dokument sieht. Das war der Grund, warum wir uns vom Ansatz im HTML-Server entfernt haben.
Wenn dies jedoch ein praktikabler Ansatz für PHP ist und der PHP-Sprachserver möchte, dass der HTML-Server Anforderungen für bestimmte Bereiche verarbeitet, lassen Sie uns dies tun. Die APIs dafür sind alle vorhanden. Dies kann alles im Client und mit einem benutzerdefinierten LS-Protokoll erfolgen .
Wenn ich auf dem HTML-Server oder im HTML-Dienst etwas tun kann, lass es mich wissen.

@aeschli Escape- Regeln sind ein guter Punkt, daher müsste der Sprachserver anstelle von Bereichen den nicht entkoppelten Inhalt zurücksenden. Würde das das lösen? Oder andere Probleme, die Sie mit dem Vorschlag sehen?

Wenn dies jedoch ein praktikabler Ansatz für PHP ist und der PHP-Sprachserver möchte, dass der HTML-Server Anforderungen für bestimmte Bereiche verarbeitet, lassen Sie uns dies tun. Die APIs dafür sind alle vorhanden. Dies kann alles im Client und mit einem benutzerdefinierten LS-Protokoll erfolgen .

Der PHP-Sprachserver wird von vielen anderen Clients als VS Code, Sublime, Neovim, Atom-Ide-PHP, Eclipse Che usw. verwendet. Wie können wir eine Lösung erstellen, von der erwartet werden kann, dass sie (irgendwann) in all diesen funktioniert? Clients (wie das der Punkt von LSP ist), während gleichzeitig vermieden wird, bestimmte HTML- (und CSS-, JS- ...) Langserver mit bestimmten Laufzeitanforderungen zu bündeln (z. B. hat ein neovim PHP-Entwickler PHP installiert, aber nicht unbedingt NodeJS) Der Benutzer kann entscheiden, welcher Sprachserver für die eingebetteten Sprachen verwendet werden soll. Ich wäre sehr aufgeregt, wenn wir das auf universelle Weise für alle Sprachen durchziehen könnten, da dies ein sehr starkes Argument für LSP wäre.

@aeschli @felixfbecker Heißt das, Sie beide werden versuchen, dieses Problem zu

Dies ist eine Funktion, die fast jeder PHP-Codierer wirklich benötigt. Also bitte, ignorieren Sie es nicht einfach, weil wir es nicht richtig machen können.
Selbst wenn es eine unlogische oder hässliche Lösung gibt, kann sie dennoch vorübergehend verwendet werden, anstatt sie zu verschieben und nichts zu tun.

Wenn wir mit Handschellen gefesselt sind, weil wir für Erweiterungen, die ursprünglich für einen anderen älteren Editor geschrieben wurden, so kompatibel wie möglich sein möchten, sollten wir möglicherweise in Betracht ziehen, einen neuen Editor-übergreifenden Standard zu schreiben, der über den heute verfügbaren Standard hinausgeht. Es ist nicht so, dass Microsoft noch nie zuvor seine Grenzen überschritten und mit anderen Gruppen zusammengearbeitet hat, um ein Standard-Sprachservermodell zu erstellen, das sowohl in diesem als auch in anderen Editoren verwendet wird. Wir müssen nur noch einmal das Gleiche tun, wenn es darum geht, wie Szenarien mit gemischten Sprachen behandelt werden.

Es ist offensichtlich , dass gemischtsprachigen Erweiterungen wie @felixfbecker ‚s php-Intellisense Erweiterung oder meine vscode-jinja - Erweiterung wird von diesem Problem nicht blockiert zu werden . Es ist großartig, wenn Sie es in den Kernsprachen tun können, aber wenn die Community es nicht einfach erweitern kann, wird es dem gesamten Editor im Allgemeinen nur eine schlechte Erfahrung geben. Zu diesem Zeitpunkt hat dieses Problem lange genug gedauert, dass die Community selbst anderen tatsächlich sagt, sie sollen woanders hingehen, und ich mache das Gleiche.

@wholroyd stimmte zu, ich erzählte den Leuten von dieser IDE, als wäre es das Beste seit geschnittenem Brot, und jetzt

@aeschli würdest du folgendes auf dem HTML-Sprachserver beachten?

  1. Eine zusätzliche Sprach-ID zum Anhören von phtml . Dies würde eine gemeinsame ID liefern, die PHP- und HTML-Erweiterungen abhören könnten, und eine kombinierte Textmate-Grammatik.
  2. Falls erforderlich, ändern Sie den HTML-Sprachserver-Scanner so, dass alle Daten innerhalb von <\?(php|=)?> , \?> als einzelnes selbstschließendes Tag verwendet werden.

Die folgenden Anbieter von separaten PHP- und HTML-Erweiterungen würden gut zusammenarbeiten, ohne sich in den Server einzubetten oder in den Client zu hacken.

  • Code-Objektiv
  • Codeaktion
  • Fertigstellung
  • Definition
  • Markieren
  • Verknüpfung
  • Dokumentsymbol
  • schweben
  • Implementierung
  • Referenz
  • Unterschrift
  • Arbeitsbereichssymbol

Einige Hacks wären erforderlich, damit die Formatierung und das Umbenennen funktionieren, und Benutzer müssten Ansichtsdateien mit einer anderen Erweiterung benennen und eher mit HTML als mit PHP verknüpfen. Aber ich denke, dies wäre ein ziemlich guter Start mit minimalem Aufwand und Risiko.

@bmewburn Ja, hört sich gut an, das kann ich. Was ist die Idee mit der 'phtml'-Sprache? Werden Sie es verwenden, um die Anfragen programmgesteuert weiterzuleiten?

@aeschli keine Weiterleitung von Anfragen, die Idee ist nur, den HTML-Server Anbieter für HTML registrieren zu lassen und einen PHP-Server auch Anbieter für HTML registrieren zu lassen und vscode die separaten Antworten verarbeiten zu lassen.

Bei den oben genannten Anbietern werden entweder alle Antworten zusammengeführt oder die erste nicht falsche Antwort verwendet. Solange also separate HTML- und PHP-Server nicht versuchen, ein Ergebnis für einen Bereich zurückzugeben, den sie nicht verstehen, sollte alles funktionieren. Die phtml-ID ist nur für beide Sprachserver gleich. Es ist möglicherweise besser, nur mehrere Sprachdateizuordnungen zu haben, aber das ist möglicherweise viel komplizierter. Außerdem nehme ich an, dass durch das Trennen von PHP und HTML vermieden wird, dass nur PHP-Dateien an den HTML-Server gesendet werden.

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

Im Moment registriere ich meine PHP-Erweiterung bei HTML- und PHP-Doc-Selektoren, aber ich bin vorsichtig, die HTML-Sprachkonfiguration in diesem Setup zu überschreiben.

Eine Dateizuordnung kann nur einer einzelnen Sprach-ID zugewiesen werden. Es steht den Sprachservern jedoch frei, Dokumente in jeder gewünschten Sprache bereitzustellen.
Möglichkeit 1: HTML registriert sich auch für php , nimmt an allen Anfragen teil, gibt jedoch nur Ergebnisse zurück, wenn diese außerhalb von <?php .../?>
Möglichkeit 2: Nur der PHP-Sprachserver registriert sich für php und leitet alle Anfragen <?php .../?> an alle in der Sprache phtml registrierten Sprachserver weiter.

Die Weiterleitung kann also nur über commands.executeCommand ?

@bmewburn Ich habe # 36396 erstellt. Nehmen wir unsere Diskussion zu diesem Punkt.
Ja, mit `command.executeCommand 'wie hier ausgeführt

Jedes Update bezüglich HTML Intellisense für PHP

Hey Leute, gibt es eine Möglichkeit, PHP- und HTML-Codierung zu mischen? HTML-Hervorhebung funktioniert im PHP-Dokument nicht richtig :-(

835b4a9809

Sieht aus wie fast nach 2 Jahren gibt es noch keine richtige Lösung?

Ist dieses Problem bis gelöst?

Nein, immer noch nicht möglich. Leider wurde ich aufgrund dieses Problems gezwungen, auf ST3 zurückzukehren. Ich hoffe, eines Tages beheben sie das und ich kann zurückkommen.

@bmewburn Fantastische Arbeit. Dies wurde so lange benötigt. Vielen Dank. Jetzt gibt es keinen Grund, nicht auf VSCode umzusteigen

@ kilevvri1 Bitte teilen Sie Ihre Einstellung. Für mich nicht arbeiten ..

@ expo87 Ich habe das von PHP Intelephense angeforderte Standard-Setup verwendet
"php.suggest.basic": false
Ich verwende noch keine anderen Einstellungen.

Schade. Ich hatte gerade meine VSCode-Umgebung eingerichtet und alle meine Plugins fertig gemacht. Dann bin ich darauf gestoßen und habe immer noch keine Lösung gefunden.
Es ist eine Schande, weil ich anfing, VSCode wirklich zu mögen, aber jetzt muss ich zu Sublime Text zurückkehren.

@DannyMexen Probieren Sie die PHP Intelephense-Erweiterung aus

@ kilevvri1 Diese Erweiterung erfordert die Installation von PHP. Für mich Installation im System PHP nicht erforderlich! Warum sollte ich das tun? Nur um normale gemischte Syntax PHP und andere Sprache zu sehen? Warum funktioniert diese Option nicht sofort?! Sublime Text-Installationsdatei 8,5 MB - gemischte Hervorhebungen funktionieren einwandfrei. CodeLite-Installationsdatei 50 MB - gemischte Hervorhebungen funktionieren einwandfrei. Und das muss nicht PHP installiert werden!

Ich bin mit @ expo87 einverstanden, dass diese Funktionalität in VS Code

@ kilevvri1 , hey, wie geht es

Ich kann HTML jedoch immer noch nicht in einer .php-Datei formatieren. Ich bin auch damit einverstanden, dass eine solche Funktionalität sofort einsatzbereit sein sollte.

Alles andere ist in Ordnung, aber nur diese eine Sache ruiniert meine Erfahrung. Es ist sehr wichtig, dass mein Code aufgrund von Unternehmensrichtlinien gut formatiert ist. Wir hoffen auf die Zukunft.

Es ist umständlich, aber bei großen Dateien benenne ich die Dateien in .html um, formatiere sie und benenne sie dann wieder in .php um (glauben Sie mir, ich habe jeden Trick ausprobiert, den es gibt, ohne Erfolg).

Ich mag VSCode und ich werde es eine Woche geben. Wenn sich meine Arbeit erheblich verlangsamt, kehre ich zu ST 3 zurück.

Haben Sie für diejenigen unter Ihnen, die sich über die Installation von PHP beschweren, damit die Erweiterung funktioniert, ernsthaft kein PHP auf Ihrem lokalen Computer installiert? Verschwenden Sie ernsthaft Zeit damit, den Code vor dem Testen auf Ihren Server zu stellen und dies immer wieder zu tun?

PHP sollte lokal installiert werden, das scheint nur eine Selbstverständlichkeit zu sein. Wenn Ihre App nicht lokal ausgeführt wird, müssen Sie einige Entwicklungsprobleme lösen.

@TheColorRed für mich kein benötigtes

@TheColorRed Sie haben im Internet jemanden gefunden, der falsch und passiv aggressiv über den Wert der Zeit geschimpft hat.

image

Wir alle würden es lieben, wenn dies sofort einsatzbereit wäre, aber Tatsache ist, dass dies nicht der Fall ist. Das VSCode-Team sieht dies entweder als kein Problem oder als sehr niedrige Priorität an. @bmewburn hat die PHP Intelephense-Erweiterung entwickelt, mit der ich im Vergleich zur Alternative zufrieden bin.

@ expo87 Sie müssen Ihren Workflow nicht erklären. Wir alle machen die Dinge ein bisschen anders.

deswegen
Ich benutze Smarty, damit ich alles HTML in die TPL-Datei verschieben kann, nicht in den PHP-Code -_-
und mache meinen Code sauberer

@DannyMexen Ich habe kein Problem damit, HTML in PHP-Dateien zu formatieren. Ich deaktiviere die PHP Intelephense-Formatierung "intelephense.formatProvider.enable": false in settings.json

Alles, was ich wirklich möchte, ist, dass > keinen Vorschlag zur automatischen Vervollständigung auslöst (und mich dazu bringt, aufzuhören, was ich tue, um ihn zu verwerfen). Es ist ärgerlich, wenn Sie ein HTML-Element schließen und zur nächsten Zeile wechseln möchten. Wenn Sie jedoch "versehentlich" die Eingabetaste drücken, entsteht Müll, den Sie anstelle einer neuen Zeile löschen müssen. Keiner der obigen Vorschläge scheint dieses spezielle Problem zu beheben.

Dazu ist lediglich https://github.com/Microsoft/language-server-protocol/issues/138 erforderlich
@jrieken Könnten Sie einen Kommentar dazu verfügbar ist?

Wir sind möglicherweise in der Lage, Trigger mit mehreren Zeichen zu implementieren, aber es ist nicht so trivial, wie es sich anhört. Bis dahin sollte eine Erweiterung das letzte Zeichen in einer möglichen Folge von Triggerzeichen verwenden.

@ kilevvri1 keine Würfel. Ich habe Ihre Beiträge verfolgt, aber ohne Erfolg. Kann ich bitte alle Ihre Einstellungen sehen? Möglicherweise eine Liste der von Ihnen installierten Erweiterungen, wenn dies kein Problem darstellt.

Das nächste, was ich bekam, war das Ändern der Dateizuordnung und das Basteln mit Verschönern, aber selbst das half nichts.
Trotzdem danke an alle. Es scheint keine direkte Antwort darauf zu geben.

Nach stundenlangen Versuchen kann ich dieses Ding nicht zum Laufen bringen. Nicht einmal das "PHP Intelephense" -Plugin funktioniert für mich, wie @bmewburn vorgeschlagen hat. Geben Sie 'php' ein und drücken Sie die Tabulatortaste. Es wird folgendermaßen erweitert: http://s.zeshanahmed.com/a_1FC81B2B.png

Dies ist die grundlegendste Funktion, wenn Sie HTML mit PHP verwenden. Zumindest als WordPress-Theme-Entwickler.

Ich kann zurückkommen und den VS-Code erneut überprüfen, aber vorerst wieder zu Sublime wechseln. Ich fand es toll, wie leistungsfähig VS Code für mich zuerst aussah, aber diese kleinen Probleme (oder das Fehlen von Funktionen) werden viele PHP / WP-Entwickler davon abhalten, sich davon fernzuhalten.

aaund ich bin bei @zeshanshani und @DannyMexen - wenn ich kein HTML in meine PHP-Dateien schreiben kann, dann ist dieser Editor genau richtig.

Dang. Es hat mir so gut gefallen, aber diese eine (scheinbar einfache) Sache hat es für mich nutzlos gemacht.

Vielleicht habe ich mich hier ein bisschen geirrt, dieses Problem ist nicht wirklich das, worauf ich mich bezog. Wie ich bereits erwähnte, fand ich es toll, wie leistungsfähig VS Code für mich war, also habe ich weiter eingecheckt und eine ziemlich einfache Lösung für das Problem gefunden.

Das Problem, mit dem ich konfrontiert war, war, dass es nicht funktioniert, wenn Sie sich außerhalb von <?php ?> -Blöcken befinden und versuchen, PHP-Blöcke mit einer Verknüpfung zu öffnen.

Also habe ich benutzerdefinierte HTML-Snippets zum Erweitern von PHP-Blöcken erstellt. Ich habe diese 3 Schnipsel für jetzt erstellt:

  • php - um in <?php ?> zu expandieren
  • if - IF bedingt öffnen.
  • foreach - um die FOREACH-Schleife zu öffnen.

Hier ist der Snippets-Code, wenn jemand danach sucht:

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

Und das ist das Ergebnis:

PHP Expand in HTML

Das einzige Problem hierbei ist, dass es im Gegensatz zu Sublime Text auch Snippets in .html -Dateien erweitert, in denen Sie den Bereich definieren können, sodass ein bestimmtes Snippet nur erweitert wird, wenn es sich um PHP handelt: http://s.zeshanahmed.com/a_1FCD4A29.png

Übrigens, hat jemand versucht, die Einstellung emmet.triggerExpansionOnTab aktivieren? Es ermöglicht die Emmet-HTML-Erweiterung für die Tab-Unterstützung in PHP-Strings.

Um diese Einstellung vorzunehmen, gehen Sie zu den Benutzereinstellungen und fügen Sie diese Zeile hinzu:

"emmet.triggerExpansionOnTab": true

Screenshot: http://s.zeshanahmed.com/a_1FD14980.png

Hier ist das Ergebnis:

HTML Expand in PHP Strings

Ich habe eine praktikable Lösung für mich (und möglicherweise für andere Personen) gefunden.

Ich habe die Erweiterung "_Auto Close Tag_" von Jun Han installiert. Dann habe ich in meinen Einstellungen Folgendes hinzugefügt:

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

Jetzt, während ich mich in einer .php-Datei und außerhalb der <?php ?> -Tags befinde, erhalte ich keine $_cookie nachdem ich ein HTML-Tag eingegeben habe, und wenn ich </ eingebe, wird das automatisch abgeschlossen entsprechendes schließendes Tag.

hoffentlich hilft dies jemand anderem, der das gleiche Problem hatte wie ich.

@Chenzo führt Ihre Ctrl + Shift + I drücken, werden sowohl PHP als auch HTML-Code entsprechend formatiert / eingerückt?

@DannyMexen hmmm ... nein. Trotzdem, ist das eine native Sache für VScode? Selbst mein Verschönerungs-Plugin scheint nicht zu wissen, was mit HTML in einer PHP-Datei zu tun ist.

@ Chenzo ich

@zeshanshani @DannyMexen
wenn PHP Intelliphense nicht funktionieren kann
Versuchen Sie, vscode und PHP Intelliphense neu zu installieren
oder
Versuchen Sie, everedit zu verwenden , das ist ein guter Editor, aber keine IDE und nur Windows

Vielen Dank für den Vorschlag @iscraft, aber ich verwende Linux und verwende ST 3 für alle meine PHP-Projekte.

Wenn ich das richtig befolge, werden die Blockierungsprobleme im LSP (yay!) Und auch in Felix 'Language Server (yay!) Gelöst, aber in VS Code Insiders noch nicht gelöst.

Das kleinere Problem mit der allgegenwärtigen automatischen Vervollständigung von <?php ist in VS Code Insidern vorhanden, wobei das Intellesense-Plugin von Felix aktiv ist. Ich denke, das wartet auch auf etwas in VS Code?

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

Ich denke, es wird Insiders Edition überspringen und es in 1.19 schaffen?

In settings.json funktioniert das Hinzufügen der folgenden Eigenschaft einwandfrei.

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

Nun, ich denke, es stimmte doch nicht. Zurück zum erhabenen Text?

files.association war eines der Dinge, die ich versucht habe. Ich habe nie für mich gearbeitet.
Der offizielle Twitter-Account hat mir gerade gesagt, dass ich das Problem ansprechen soll und hoffentlich
Eines Tages wird das Team es umsetzen. Es ist so eine bizarre Sache, nicht zu haben
dies aus der Box. Im wahrsten Sinne des Wortes das einzige, was mich davon abhält, VScode zu verwenden
als mein exklusiver Herausgeber.
@ Ken Newman, das ist meine Lösung für alle PHP-Projekte.

Am Do, 14. Dezember 2017, um 22:31 Uhr, Ken Newman [email protected]
schrieb:

Nun, ich denke, es stimmte doch nicht. Zurück zum erhabenen Text?

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
.

- -
Grüße,

Danny Mexen.

Ist es möglich, dass HTML jetzt in PHP-Sprache / -Dateien in 1.19 funktioniert? Gerade getestet und ich sehe, dass es funktioniert, auch ohne Erweiterung ...

@ jsieler in 1.19 und 1.20 funktioniert es immer noch nicht.

VSCode 1.19 kann HTML nicht automatisch vervollständigen, Attribut in .php-Datei :( !!!!
Ausgabe 2 Jahr ...

HTML hat in PHP-Dateien mit dieser Erweiterung gut funktioniert. Dieses Problem kann wahrscheinlich geschlossen werden.

phphtml

@bmewburn Ich denke auch

Nein, ich persönlich warte auf Unterstützung, ohne dass externe Erweiterungen erforderlich sind.

Das Hauptproblem gilt auch für andere Sprachen.

Lassen Sie uns das Problem klarstellen, über das einige von uns hier berichten.

Im Moment werde ich für mich selbst sprechen.

Das Problem ist NICHT der Fehler bei der automatischen Vervollständigung von HTML in PHP-Dateien, sondern das FORMATIEREN von HTML-Code in PHP-Dateien im Kontext der VSCode-Funktion "Dokument formatieren". Ist das klar?

Wenn Ihre Standardtastenkürzel Ctrl + Shift + I , werden möglicherweise nur PHP-Code in einer PHP-Datei formatiert, die auch HTML-Code enthält. Der HTML-Code ist überhaupt nicht formatiert.

Diese Funktion ist beispielsweise in ST 3 sofort einsatzbereit.

Dinge wie Autocomplete, Auto Closing Tags usw. funktionieren einwandfrei. Tippen Sie auf eine PHP-Zeile und dann auf eine HTML-Zeile. Versuchen Sie, das Dokument zu formatieren, und nur der PHP-Code wird korrekt eingerückt.

Ich hoffe, das klärt die Dinge für einige hier auf.

Wer hier hat dieses Problem neben mir?

@bmewburn es funktioniert nur, wenn Sie den HTML-Sprachmodus für PHP-Dateien wählen, aber dann haben Sie ein schlechtes Styling für PHP-Teile des Codes :(

@ Perumal93

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

Es funktioniert überhaupt nicht! Es wird einfach die Sprache verwendet, die Sie zuletzt verwendet haben (in diesem Fall PHP). Andere werden völlig ignoriert.

@ SharakPL welche Version von VSCode ru verwendet?

@ kilevvri1 Ich habe gerade ein Upgrade von 1.19.1 auf 1.19.2 durchgeführt. Keine Änderung :(
Wenn ich PHP als Dateisprache wähle, funktionieren HTML-Vorschläge nicht.
Wenn ich HTML als Dateisprache wähle, wird der PHP-Teil als einfacher Text gestaltet und die Ausgabe zeigt viele Fehler.

@SharakPL Haben Sie Ihren Telefonpfad in Ihren VSCode-Benutzereinstellungen verknüpft? Ich bin gerade nicht zu Hause, aber wenn ich zurück bin, werde ich helfen, weil Intellephense nicht perfekt ist, aber es wundert sich, wenn es gut funktioniert, also werde ich versuchen zu helfen.

@ SharakPL Ich meinte deinen PHP-Pfad. Tippe auf meinem Handy, sorry.

@ kilevvri1 ja, ich habe

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

Es sollte wie in Sublime Text 3 sein, wo HTML-Code im PHP-Sprachmodus immer entsprechend vorgeschlagen wird

@ SharakPL
Gemäß den Erweiterungsempfehlungen:
"php.suggest.basic": false

Versuchen Sie das und lassen Sie es mich wissen

@ kilevvri1 keine Änderung :(

Oh, ich verstehe es jetzt! In PHP-formatierten Dateien gibt es eine Art HTML-Intellisense, die jedoch über EMMET-Vorschläge verwaltet wird: https://docs.emmet.io/cheat-sheet/
Ich ärgerte mich immer wieder darüber, dass ich keinen einfachen Link hinzufügen konnte, indem ich <a eingab, weil kein Snippet vorgeschlagen wurde. Ich dachte, nur a einzugeben zeigt, was ich brauche, aber obwohl ich meinen Link hatte, mussten alle Attribute manuell Buchstabe für Buchstabe hinzugefügt werden. Mit EMMET kann ich einfach a#mylink.btn.btn-success eingeben, um <a href="" id="mylink" class="btn btn-success"></a> . Das ist cool, aber um genaueres HTML zu erhalten, sollte ich a#mylink.btn.btn-success[title="click me" target="_blank"] und dieser neue Teil muss wieder Buchstabe für Buchstabe eingegeben werden. Es wäre viel besser SublimeText's Stil:
html_is

Gibt es eine Möglichkeit, .php manuell zur Liste der Dateierweiterungen hinzuzufügen, in denen HTML Intellisense funktioniert? Dies kann in Eclipse erfolgen.

@graddev jemand vorgeschlagen
"files.associations": {"*.php": "html, php"}
in Benutzereinstellungen, aber das funktioniert bei mir nicht

Wer weiß, wenn sie diese Gelegenheit hinzufügen?
war 2020, sie haben das immer noch nicht gemacht ....

HTML- und CSS-Autovervollständigung in PHP-Datei ... Wie?

Muss diese Funktion hinzugefügt werden. Die automatische Vervollständigung von Attributen für HTML-Tags funktioniert überhaupt nicht.

Leute, ich benutze eine extrem ekelhafte Lösung, aber sie funktioniert (irgendwie). Ich habe eine Tastatur mit Makrotasten, deshalb habe ich Makros erstellt, um den Sprachmodus zu ändern. Ich drücke M1, wenn ich HTML Intellisense möchte, und M2, wenn ich PHP möchte.

Bitte versuchen Sie es mit der Intelephense-Erweiterung .

@aeschli Dies löst NICHT das Schlüsselproblem. Das gleiche Problem tritt auch bei einer von mir gepflegten Erweiterung in der Smarty-Erweiterung auf. Es ist wirklich enttäuschend, dass die vorgestellte PHP-Erweiterung keine weitere Unterstützung erhält und Sie versuchen abzulenken, indem Sie empfehlen, eine andere Erweiterung zu verwenden, die eine beschissene Problemumgehung verwendet. Dennoch liegen die Probleme tiefer. Tatsächlich sollte dieses Problem im nächsten Sprint behoben werden, und Sie sollten nicht in Betracht ziehen, dass es auf dem Rückstand liegt und das Problem herunterspielt. Wo fühlen Sie sich für die Interessen der Gemeinschaft?

Entschuldigung, aber ich bin ein bisschen sauer.

(Eigentlich habe ich vor 3 Monaten dasselbe

Es gibt nur so viele Bereiche, an denen das VSCode-Team arbeiten und über Expertenwissen verfügen kann. Leider sind wir keine PHP-Entwickler. Aus diesem Grund haben wir eine offene Erweiterungs-API und einen Marktplatz entwickelt. Bitte unterstützen Sie uns, indem Sie die Erweiterungen ausprobieren und den Autoren mit gutem Feedback helfen.
Ich verstehe, es wäre großartig, wenn alle Erweiterungen integriert und zusammen mit VSCode ausgeliefert würden, aber wir möchten auch den Download klein halten.

Wir haben mit Ben, dem Autor der Intelephense-Erweiterung, zusammengearbeitet, um die HTML-Vervollständigung in PHP zu verbessern. Ich denke, der Ansatz ist der richtige. Nur PHP als Hauptsprache versteht den eingebetteten HTML-Inhalt vollständig (z. B. wie er codiert ist, wie PHP-Variablen aufgelöst werden), um eine gute Benutzererfahrung zu bieten. Nach meiner Erfahrung lösen andere generische Lösungen nur einen Teil des Problems, und wir haben am Ende Hunderte offener Probleme für die Fälle, die sie nicht lösen können.

@ jens1o Es tut mir leid, dass Sie frustriert sind und dass in diesem Bereich in naher Zukunft nichts geplant ist. Bitte helfen Sie uns, indem Sie unser Erweiterungs-Ökosystem unterstützen, oder geben Sie Intelephense (und auch anderen PHP-Erweiterungen) eine Chance.

Okay, ich atme gut ein und beruhige mich. Verschieben wir also den Fokus auf meine Erweiterung: Soll ich einen Zweig des HTML-Sprachservers behalten, damit meine Benutzer HTML-Vervollständigung haben? Das ist das Hauptproblem, auf das ich mich auch beziehe. Ich denke, andere Sprachen sind noch stärker betroffen. Das Problem ist, dass Smarty so flexibel ist, dass es für nahezu jede Sprache (wie z. B. csv, json) verwendet werden kann. Weil es sich um ein Vorlagensystem handelt, das an keine Sprachbeschränkungen gebunden ist. Ich muss also einen Zweig eines CSV-Sprachservers (der nicht vorhanden ist), einen XML-Server und einen JSON-Server behalten. Ich frage mich, wie viele Sprachen die technischen Ressourcen zulassen.

Geben Sie Intelephense (und auch anderen PHP-Erweiterungen) eine Chance.

Ich werde mich an php-Intellisense von @felixfbecker halten , weil ich die Codebasis liebe, obwohl ich kein HTML-Intellisense habe (weshalb ich für dieses Problem brenne), und das ist die offizielle Erweiterung (während ich benutzte es lange vorher). Ich liebe das Konzept von Sprachservern und ich denke, dass mehrere Sprachserver, die für verschiedene Teile einer Datei verantwortlich sind, der nächste Schritt zur Verbesserung des Konzepts sind.

@aeschli Glaubst du, dass eine Erweiterung dazu führen kann, dass der HTML-Teil in PHP das gleiche Verhalten wie die eigenständige HTML-Datei erhält? einschließlich lassen Sie alle Plugin für HTML in diesem Teil gut funktionieren?
Das Erweiterungssystem ist bekanntlich sehr wichtig, aber nicht alle Funktionen sind für Plugins geeignet. Was wir tatsächlich brauchen, ist, eine Datei in mehrere Sprachen zu analysieren und sie separat zu behandeln. Dies sollte eine integrierte Funktion für einen Code-Editor sein.

Und alle PHP-Dateien sind tatsächlich HTML, mit einem besonderenHTML-Tag. Nur der Inhalt dieses Tags sollte nicht als HTML betrachtet werden. Es ist nur eine in HTML eingebettete Sprache und kann ohne sie nicht funktionieren (außer CLI). Die Frage bezieht sich also nicht auf HTML in PHP, sondern auf HTML. Und auch viele Sprachen können in HTML eingebettet werden, wie z. B. CSS Javascript VBScript SVG Perl Java. Ich glaube, keine Erweiterung kann dies ohne offizielle Unterstützung tun.

Danke @popcorner. Eigentlich wollte ich dasselbe sagen, aber du hast es viel besser geschrieben. :) :)

Weiß jemand, wie ST das macht? Sogar eine Erklärung auf hoher Ebene wird geschätzt.

Lassen Sie uns dieses Problem mit HTML Intellisense in PHP beibehalten. Ich werde unsere Dokumente mit Techniken zum Aktivieren von Sprachfunktionen für eingebettete Sprachen verbessern. Ich habe # 47288 als Ausgangspunkt dafür erstellt.

@ jens1o Ich habe einige Ansätze in der Beschreibung dieses Problems aufgeführt
@paldepind Ich habe auch eine Antwort auf Ihren Kommentar hinzugefügt.

Ich fühle mich immer noch unwohl damit. Afaik, dieses Problem kann geschlossen werden, weil Sie nicht planen, es für PHP herauszubringen, sondern mit dieser Problemumgehung leben?

Problem noch ohne Lösung?

Ich verwende Laravel Blade. Es gibt hier also keine PHP-Tags. Ich frage mich, wie sie die Funktion implementieren werden.

Gelöst, aber ich weiß nicht warum ... Vielleicht aktualisieren Sie die PHP-Inteliphense oder verwenden Sie Vscode-Insider ...
test

@ Victorormongi Welche PHP-Inteliphense verwenden Sie?

@jfnadev Ich weiß nicht, wie das funktioniert, aber dies ist meine vscode-Version und intelephense-Version:
image

@ Victorormongi wir haben die gleiche Konfiguration

@jfnadev das sind meine installierten Erweiterungen:
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"
  }
]

Etwas ändern? Ich habe das gleiche Problem ..

+1 von mir auch.

Ich kann nicht glauben, dass dieses Problem von vor mehr als 3 Jahren noch nicht gelöst wurde. Es ist besser, SublimeText3 weiter zu verwenden

Ich denke, das ist ein wesentliches Merkmal. Ich warte nur darauf, dass das auf VS Code 😞 migriert wird

Ich bin mir nicht sicher, ob wir uns an dieser Stelle alle auf dasselbe beziehen.

Am Montag, 14. Mai 2018 um 1:53 Uhr, Miqueias Penha [email protected]
schrieb:

PHP Intelephense
Highlight-Matching-Tag

Arbeit! s2

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-388790414 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/APewudsZw-Cu5mpgLrBJ8vUPagFUxB5Rks5tyXApgaJpZM4Gpk-J
.

- -
Grüße,

Danny Mexen.

vscode gibt keine af über php. füge dies bitte hinzu.

Ich habe PHP Intelephense installiert. Das Problem wurde für mich gelöst.

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

Nur damit wir hier klar sind.

HTML-Code kann in PHP-Dateien nicht formatiert werden (Strg + Umschalt + I).

@venoel Wollen Sie damit sagen, dass Sie mit der Installation von PHP Intelephense dies tun können?
Das?

Am Mittwoch, den 30. Mai 2018 um 20:17 Uhr schrieb venoel [email protected] :

Ich habe PHP Intelephense installiert. Das Problem wurde für mich gelöst.

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
.

- -
Grüße,

Danny Mexen.

@DannyMexen.
Ich meine, ich bekomme Vorschläge für Tags richtig und Einrückungen werden gut angewendet.

Microsoft erwirbt GitHub!
aber dieses Problem immer noch!
lol!

@venoel
Gut erkannt. Ich bin froh, dass es für dich funktioniert.

Egal was ich versuche, ich kann HTML-Code in PHP-Dateien einfach nicht formatieren.

Am Montag, den 4. Juni 2018 um 11:00 Uhr schrieb venoel [email protected] :

@DannyMexen https://github.com/DannyMexen .
Ich meine, ich bekomme Vorschläge für Tags richtig und Einrückungen werden gut angewendet.

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
.

- -
Grüße,

Danny Mexen.

VSCode sollte auf jeden Fall die Option haben, zwei oder mehr Sprachmodi für bestimmte Dateitypen festzulegen, damit Syntaxhervorhebung und Intellisense für alle gleichzeitig ausgeführt werden. Sie haben das sogar jetzt mit 1 Instanz von VSCode, nur in verschiedenen Dateien mit verschiedenen Sprachmodi. Honeslty Ich weiß nicht, warum es so schwer zu implementieren ist. Jemand hat es sogar früher als funktionierende Lösung verwendet, obwohl es nicht funktioniert und nie funktioniert hat, aber es sollte definitiv:

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

Ja, stimme @SharakPL vollkommen zu. Ich habe die Antwort aber nie verstanden
Einige klügere Leute als ich hier haben gesagt, dass es nicht einfach ist
etwas zu implementieren. Ich bin nicht klug genug, es selbst zu tun, sondern weil dies
Feature kommt mit ST3 zum Beispiel aus der Box, ich erwarte, dass es ein ist
Standardfunktion überall sonst.

Am Mittwoch, den 6. Juni 2018 um 21:33 Uhr schrieb SharakPL [email protected] :

VSCode sollte auf jeden Fall die Option haben, zwei oder mehr Sprachmodi für festzulegen
Bestimmte Dateitypen für Syntaxhervorhebung und Intellisense für alle
sie zur gleichen Zeit. Sie haben das sogar jetzt mit 1 Instanz von VSCode,
nur in verschiedenen Dateien mit verschiedenen Sprachmodi. Honeslty tue ich nicht
weiß, warum es so schwer zu implementieren ist. Jemand hat es sogar früher als
funktionierende Lösung funktioniert zwar nicht und hat es nie getan, aber es ist definitiv
sollte:

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

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
.

- -
Grüße,

Danny Mexen.

stimme @DannyMexen sogar Notepad ++ zu. Es ist 2018 und vscode hat diese Funktion immer noch nicht. Es ist verrückt.

Schließen Sie dieses Problem, es wird nie passieren.

@bsienn gerne erklären? Warum ist etwas, das in einfachen Texteditoren üblich ist, in VSCode nicht möglich?

@ SharakPL erklären? Lesen Sie den 3 Jahre alten DEAD-Thread. Er wird Ihnen erklären, dass es nicht passieren wird.

@bsienn Es ist da mit Emnet, HTML auf PHP verwendet Emnet, versuchen Sie es zu lernen .. https://docs.emmet.io/ bitte ... es funktioniert trotzdem ...

@bsienn erkläre mir das dann: Warum solltest du aufgeben, um dieses Problem zu schließen?

@benyaminl emmet ist in Ordnung, funktioniert aber nur, wenn ich neue Tags erstelle. Es ist nutzlos, wenn ich Tags bearbeiten muss, dh einem Link einige Attribute hinzufügen muss , da es in PHP-Dateien immer noch kein Intellisense für HTML gibt

Ah, das ist der Gedanke, den ich versucht habe zu ignorieren, hahaha. Es ist sowieso wahr. Immer noch
Wenn ich denke, dass jemand versucht hat, es zu implementieren, ist es nicht ganz einfach

Gesendet von My Asus Pegasus X005

Pada tanggal Kam, 14. Juni 2018, 19.26 Uhr, SharakPL [email protected]
Menulis:

@bsienn https://github.com/bsienn erkläre mir das dann: warum du gibst
sollte ein Grund sein, diesen Thread zu schließen?

@benyaminl https://github.com/benyaminl emmet ist in Ordnung, aber nur
funktioniert, wenn ich neue Tags erstelle. Es ist nutzlos, wenn ich Tags bearbeiten muss, dh hinzufügen
einige Attribute zu einem Link <# m_4226514043244462616_issuecomment-359139115>,
weil es in PHP-Dateien immer noch kein Intellisense für HTML gibt

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
.

Ich versuche, von Brackets.io zu VS-Code zu konvertieren, da ich so viele großartige Dinge über Intellisense gelesen habe. Diese Grundfunktion hindert mich daran. Es macht mir Angst, dass es 3 Jahre zurückreicht und nichts getan wurde.

Weiß jemand, ob es ein Plug-In oder eine Möglichkeit gibt, .php-Dateien zu registrieren, um die automatische Vervollständigung von .html zu verwenden?

danke für Ihre Hilfe.

Gibt es Neuigkeiten zu diesem Thema?
Ich glaube, dass genau die gleiche Implementierung für die gemischte Bearbeitung in HTML-Dateien gemacht wird, wobei HTML + CSS + JS gut funktioniert.

Eine andere Alternative besteht darin, in der Erweiterungs-API eine Möglichkeit zu implementieren, den Dateiauszug anzusehen und die ausgewählte Sprache zu ändern.

Ich habe dies gemacht, weil ich mich über verschachteltes HTML in PHP geärgert habe. Dieses Format sollte auf den nativen Einstellungen basieren, die Sie für html.format und das Editorformat für Speichern / Typ Format HTML in PHP haben .

Außerdem bekomme ich vollautomatisch, Intellisense macht es so.

@ RiFi2k Hi! Ich versuche, Ihre Erweiterung zu installieren, aber für mich ändert sich nichts. In der Beschreibung ist festgelegt, dass für diese Erweiterung nichts zu tun ist.

@ BxDev Hey! Also müsstest du haben
html.format.enable = true
editor.formatOnSave = true
und alle anderen Einstellungen in vscode, die sich auf die gewünschte HTML-Formatierung oder Editor-Formatierung beziehen, werden eingerichtet.

Dann möchte es verschachteltes HTML in .php-Dateien formatieren, daher müssen Sie auch sicherstellen, dass Sie eine .php-Datei mit einem Code wie dem folgenden haben:

<?php
$hi = true;

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

Wenn Sie speichern, sollte es die HTML-Divs beheben

Wenn Sie immer noch Probleme haben, lassen Sie mich wissen, dass ich Ihnen helfen werde, es ins Rollen zu bringen.

@ RiFi2k danke für die Antworten!
Ich schreibe dies in der Benutzereinstellung:
"html.format.enable": true, "editor.formatOnSave": true
Danach erstelle ich eine PHP-Datei mit Ihrem Beispiel, aber es funktioniert nicht :-(
l213wgru87dzrr

@BxDev Eigentlich sieht es so aus, als hätte es seinen Job perfekt gemacht

<?php
$hi = true;

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

zu

<?php
$hi = true;

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

Das ist alles, was Sie tun, hoffentlich waren Sie nicht verwirrt über die Funktionalität

@ RiFi2k ohh yeea :) Ich habe es :) Entschuldigung. Aber für mich ist es sehr wichtig, das Pairing-Paar-Tag in gemischten PHP / HTML / JS / CSS-Dokumenten hervorzuheben. Danke für deine Arbeit!

Dies ist ein 3 Jahre altes Problem und es wird nie gelöst werden, ist mein Gefühl.
Dies ist eine so grundlegende Sache in einem Editor und macht meine tägliche Arbeit unglaublich nervig.

Ich werde wahrscheinlich wieder zu ST3 wechseln müssen, da ich der Meinung bin, dass VScode, insbesondere in letzter Zeit, rückwärts gegangen ist, indem alle Arten von ausgefallenen Funktionen hinzugefügt wurden, aber ihre Kernprobleme ignoriert wurden.

@TheDutchCoder Es ist, weil

@steebcheen bitte weiter zum Thema. Vielen Dank

@ Tyriar Wie auch immer, wurde jemand dafür beauftragt? Oder nicht?
EDIT: Oh, es ist zugewiesen .. Okay

@ RiFi2k Hallo und danke, dass hast zu helfen! Ich habe Ihre Erweiterung ausprobiert, aber sie funktioniert nicht. Ich habe die von Ihnen angegebenen Einstellungen ausprobiert, aber immer noch keine Würfel. Vielleicht hängt es vom verwendeten PHP-Formatierer ab? Welche Erweiterung schlagen Sie vor, um die PHP-Formatierung überhaupt zu aktivieren?

OK, schnelles Update: Es funktioniert beim Speichern, was großartig ist! Es funktioniert nicht mit dem Kontextmenü mit der rechten Maustaste. Ich denke es ist ein fairer Kompromiss :)

Ich dachte, das Problem liegt nur in meiner Präferenz. Wenn ich den HTML-Code zu PHP gemischt habe, ist das Format wirklich chaotisch, wenn ich auf Tab drücke, wird die Tab-Größe auf 4 gesetzt und dann eine neue hinzugefügt. Jetzt ist die Tab-Größe 2. Ich möchte von ST3 zu VSC wechseln, aber das hält mich auf vom Umschalten auf VSC. Ich muss wohl erstmal auf ST3 bleiben.

@thanasisHS Sorry, habe das gerade gesehen.

Meine Erweiterung wird nur ausgeführt, wenn das Format beim Speichern konfiguriert ist und nicht als tatsächlicher PHP-Formatierer ausgeführt wird. Sie wird onBeforeSave ausgeführt.

Ich habe meine gesamte Konfiguration als ein paar Kernpunkte veröffentlicht. Fühlen Sie sich frei, ich habe Monate der Arbeit gebraucht, um sie perfekt zu machen. Für die Formatierung verwende ich PHPCBF, aber ich weiß, dass es nur 300 Installationen gibt, aber er hat den Code von allen toten phpcbf-Erweiterungen aktualisiert und zusammengeführt, es ist Geld.
https://marketplace.visualstudio.com/items?itemName=ValeryanM.vscode-phpcbf

Hier sind meine Kernpunkte, falls sich noch jemand für meine Konfiguration interessiert. Es macht php, js, scss, css, vue - automatische Formatierung und Flusen mit eslint, stylelint, phpcbf, phpcs, hübscher. Es ist ein Schlag, wenn Sie alles eingerichtet haben.

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

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

Alle Punktdateien, composer.json, package.json, PHP-Regelsatz
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708

Dieses Problem schließen. Ich habe den Grund in der Beschreibung des obigen Problems erklärt.

Vielen Dank. Der Code wird von Tag zu Tag ruinierter. Ich dachte, Sie bei Microsoft wären cool mit all dieser FOSS-Initiative, aber sie ist immer noch nicht unabhängig, sondern darauf ausgerichtet, durch Werbung für Github und Azure Geld zu verdienen.

@ jens1o Ich bin verwirrt, bei dieser Entscheidung geht es darum, das OSS-Ökosystem zu fördern. Die Erweiterungen, auf die verwiesen wird, sind OSS-Projekte. Bitte helfen Sie, sie zu verbessern. Die Ressourcen des VS Code-Teams sind nicht unbegrenzt.

Bitte vergessen Sie auch nicht unseren Verhaltenskodex und lassen Sie uns respektvoll kommunizieren.

Ich verstehe nur nicht, warum Sie Aufgaben vor anderen priorisieren, obwohl die Community diese definitiv will. Ich höre nur "Issue Reduction" und "Out of Scope" und, oh ja, "begrenzte Ressourcen" (deshalb ist die Community hier, lol). Niemand beschwert sich über Dinge, die nicht bald kommen, aber ein bisschen mehr Konzentration auf die Bedürfnisse der Community würde definitiv helfen. Warum müssen wir die Ausgabenummer niedrig halten, obwohl sie nichts verschmutzen? In meinen Augen hat die Code-Roadmap vor zwei Iterationen den Sweet Spot überschritten. Jetzt geht es darum, Geld zu verdienen (mit der großen Community, die im Laufe der Jahre verdient wurde; ich benutze es seit der ersten Demo von Build(); jeden Tag), indem bezahlte Produkte und Produkte von Drittanbietern (wie GitHub, im Besitz von) integriert werden Microsoft).

Ich sage, dass ich mich in dieser Community nicht mehr willkommen fühle (und ich bin ehrlich enttäuscht). Ich greife Sie in keiner Weise persönlich an, daher gibt es keinen Grund, hier auf das COC zu verweisen. Es gehört zur FOSS-Software, offene Diskussionen zu führen.

Aber wenn ich von COC spreche, würde ich Folgendes zitieren:

Meinungsverschiedenheiten verstehen

Ich verstehe nicht, warum Sie mich schließen wollen, nur weil ich mit Ihrer Politik nicht einverstanden bin.

Ich versuche zu verstehen, warum Sie Ihre Politik geändert haben. Könnten Sie das bitte näher erläutern?

@egamma Ich denke nicht, dass Ihr Grund für das Schließen dieses Problems vernünftig ist. Ich verstehe, dass Visual Studio-Code nicht alle Funktionen sofort bereitstellen kann und sollte, aber die HTML-Unterstützung für die PHP-Sprache sollte eine der grundlegendsten Funktionen für einen PHP-Editor sein. Vielleicht sollten die meisten Funktionen für PHP von Erweiterungen bereitgestellt werden, aber diese sollten nicht. Viele Editoren verfügen über diese Funktion, selbst der einfache Texteditor Notepad ++ verfügt über diese Funktion. Dies ist Teil der grundlegenden PHP-Grammatik, und ohne sie können Sie kein PHP schreiben. Ein Editor sollte nicht sagen, dass er PHP ohne diese Funktion unterstützt, da er PHP nicht richtig lesen kann.

Und warum funktioniert Javascript in HTML-Dateien gut und CSS in HTML ohne Erweiterung in vscode? Es scheint, dass vscode diese Funktion hat, aber keine ähnliche für PHP erstellen möchte. Das ist unfair.

Diese Funktion ist für PHP-Benutzer sehr wichtig, und die meisten Benutzer werden nicht versuchen, diese Probleme zu suchen, und sie wissen nichts über die Erweiterungen, die ihnen helfen können, diese grundlegenden und erforderlichen Funktionen zu erhalten. Diese Benutzer können diesen Editor einfach herunterladen, installieren und diesen "Fehler" finden, ihn dann sofort deinstallieren und einen sehr schlechten Eindruck von vscode bekommen. Sie werden hier nichts sagen. Alle Benutzer, die hier ihre Meinung mitteilen möchten, sind diejenigen, die wirklich möchten, dass vscode besser wird. Das Gefühl, PHP-Code ohne diese Funktion zu schreiben, ist wirklich zu schmerzhaft. Man kann die Blöcke nicht auseinanderhalten, man muss die HTML-Tags manuell zählen oder das Dateiformat viele Male von PHP in HTML und von HTML in PHP konvertieren. Alle anderen Sprachen, die ich jemals auf dem vscode ausprobiert habe, werden ohne installierte Erweiterung keine so schlechten Gefühle haben. Benutzer kennen den Grund nicht, sie kümmern sich nur um die Benutzererfahrung. Bitte denken Sie darüber nach und tun Sie etwas. Auch das Hinzufügen eines kleinen Highlights ist gut:

  • bieten grundlegende Unterstützung für HTML oder
  • Stellen Sie eine offizielle Erweiterung mit dieser Funktion bereit und installieren Sie diese automatisch, wenn Sie PHP verwenden
  • oder sogar eine einfache Empfehlung für alle PHP-Benutzer und installieren Sie die empfohlene Erweiterung mit einem Klick. Holen Sie sich dann diese Funktion und lassen Sie vscode PHP wirklich unterstützen

Einverstanden, @popcorner ist richtig, dies ist wichtig für PHP-Entwickler und unter Berücksichtigung von WordPress-Fähigkeiten ~ 30% des Internets oder mehr und so ziemlich jedes Thema oder Plugin hat PHP mit HTML in jeder Vorlagendatei verschachtelt. Also im Grunde eine lächerliche Menge von Benutzern genau dort, die dies benötigen.

Jetzt denke ich tatsächlich, dass der Kern dieses ganzen Problems in der Tatsache liegt, dass Sie nicht mehrere Formatierungserweiterungen gleichzeitig registrieren können. Es gibt im Grunde eine Art Rennen an diesem Haken und nur eines kann gewinnen, und Sie können als Benutzer nicht sehen, was wann versucht zu laufen und welches tatsächlich gelaufen ist. Für eine PHP-Datei sollten Sie sich also für eine Formatierungserweiterung entscheiden, die PHP-Code über HTML ausführt. Wenn Sie jedoch Formatierungserweiterungen verketten könnten und es eine Hook-Reihenfolge oder etwas gab, das geändert werden konnte, könnten Sie ein PHP und ein HTML registrieren und dann die Priorität / Reihenfolge festlegen, damit eine zuerst / zuletzt ausgeführt wird. Zum Beispiel ist das ganze Problem behoben, wenn Sie können ...

Schritt 1 Führen Sie PHPCBF oder eine ähnliche PHP-Formatierungserweiterung aus.
Schritt 2 Führen Sie die HTML-Formatierung js-beautify aus, bei der sowieso nur das gesamte PHP übersprungen wird und nur das HTML ausgeführt wird. Dies ist genau das gleiche, was ich in meiner Erweiterung Format HTML in PHP formatiere, um das Problem zu beheben. Aber ich muss es onBeforeSave ausführen, anstatt die Standardformatierungsregistrierung zu verwenden, aber dies sollte nicht die Lösung sein.

Um es zusammenzufassen, es ist sehr notwendig, aber anstatt das Problem zu beheben / nicht zu beheben, warum nicht meine Idee oben untersuchen und dann haben Sie eine viel bessere Erfahrung mit jeder Sprache und Formatierung für Benutzer und Erweiterungsentwickler.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen