PHPファイルにはhtmlタグのオートコンプリートはありません。追加してください。
編集2018年9月13日@egamma :VS CodeはPHPの基本的なサポートのみを提供しますが、市場には強力なPHP拡張機能があります。
この機能は、これらの拡張機能によって提供される必要があります(Intelephenceは実際にはすでにサポートしています)。 これらの拡張機能を試してみて、問題を提出し、リクエストをプルすることで、それらを改善するのを手伝ってください。
この問題は焦点を失い、VSCodeがPHPサポートをすぐに提供する必要があるかどうかの議論になりました。 ただし、C#、C ++、Go、Python、Rustなどの他の多くの言語と同様に、PHPをVS Codeにバンドルするのではなく、優れた拡張エコシステムに依存しています。 したがって、私はこの問題を閉じます。
合理的に聞こえます。 HTMLタグのインテリセンスプロバイダーはここにあります。そのモジュールをPHPコードに接続するだけの問題かもしれません。 また、PHPが正しく機能する方法を覚えていれば、 <?php
タグの外側でのみ使用できることを保証します。
<?php
タグの外側の@Tyriarはどういう意味ですか? PHPファイルの<?php ?>
タグの外にある場合、それらは利用できますか?
<?php ?>
外側はHTMLで、内側はPHPです。 したがって、HTMLオートコンプリートは、 <?php ?>
タグの外部でのみ使用できるようにする必要があります。
@Tyriarしかし、現在は.php
ファイルの<?php ?>
タグの外では使用できません。おそらく、 .html
ファイルでのみ使用できます。
この機能をすぐに追加してください。これは基本的な機能だと思います。ありがとうございます。
@osjnコメントして優先順位付けを手伝ってくれてありがとう。 私たちを助けるさらに良い方法は、実装を伴うプルリクエストです。
私だけかもしれませんが、php文字列内でもインテリセンスが利用できればクールだと思います。
私からの賛成も。 この機能が必要です。
ほとんどすべてのPHP開発者は、VSCodeをプライマリエディターとして選択するためにこの機能を必要とします。
より多くの開発者をターゲットにするには、この問題を修正する必要があります。
昨日、私はこの問題に頭をぶつけようとしましたが、残念ながら、TypeScriptスキルが不足しているため、この問題についてあなたを助けることができません。
私はこれを必要とする!
同じ。 単に+1000
私は助けることができませんが、私からさらに+1000。 PHPのHTML / CSS / JSは、混合ファイルとして一般的です。 私は完全なVisualStudio + VS.phpを試しました-これもサポートされていません。 PHPをサポートしていると思われるすべてのMicrosoft開発ツールで、なぜこれが見落とされているのか疑問に思っています。 はい、PHPのサポートはありますが、HTML / CSS / JS用のIntelliSense(コード補完とコード提案)がない場合は役に立ちません。
同じことがJSブロックとHTMLのインラインCSSにも当てはまります。
settings.jsonで定義した場合:
"files.associations": {"*.php": "html"},
... PHPよりもIntelliSenseは(明らかに)機能せず、HTMLが機能します。しかし、 style=" ...something... ";
を使用したインラインCSSは、スタイル属性の引用符の間に書き込むときにCSSプロパティを提供しません。
同様に、 <script>
ブロックを開始すると、IntelliSense for JSを取得できませんが、.jsファイルを開くと正常に反応します。
私は次の提案を支持します(それが簡単な場合):
<?php ... ?>
はPHPIntelliSenseを開始する必要があります<?php ... ?>
外でHTMLIntelliSenseを開始する必要があります<style> ... </style>
とstyle=" .... "
内部でCSSIntelliSenseを開始する必要があります<script ... >
と<script> ... </script>
内部でJSIntelliSenseを起動する必要がありますまた、可能であれば、 @ TheColorRedによる提案を
<?php ... ?>
が、HTML IntelliSenseの有効化も検討する必要があるよりも、たとえば$string="..."
文字列を書き込んでいます。 つまり、PHP開発者は次のようなものをよく使用します。
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
..次のように、phpタグを常に開いたり閉じたりしてブロックを実行しないようにします。
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>
また、 @ egammaは、恩知らずや怠惰に聞こえるつもりはありませんが、私たちの1人が自分でコーディングするのに十分な能力と知識を持っていれば、
この機能が存在する必要があるというコンセンサスがあり、それがない現在のPHPサポートは、ほとんどのPHP開発者の部分的なサポートにすぎないことを願っています。
PS繰り返しになりますが、批評家のように聞こえないでください。私はこれまでのところVS Codeが本当に好きで、この素晴らしいプロジェクトに貢献し、貢献し続けているすべての人に最も感謝しています。
編集:
ある.tsファイルを別の作品に含める/参照するだけでしょうか?
例:/languages/php/common/php.ts
含める:/languages/html/common/html.ts
含める:/languages/css/common/css.ts
含める:..。
タグ/属性/関数名と重複する可能性はありますが、現時点では何も思い浮かびません...そしてIntelliSenseの場合、それぞれに異なるアイコンがあるので問題はないと思いますが、そのような場合は色分けだけが混乱する可能性があります...私は何か他のものが欠けていますか?
これが追加されない場合は、エディターを切り替える必要があります。現在、2つのエディターを使用しています...
PHPを使用しているときにHTMLIntelliSenseを非アクティブ化するにはどうすればよいですか?
XML / HTMLタグが自動的に作成されるため、変数をタブで移動できないため、このオプションは悪夢です。
PHPコードとHTMLを混在させないので、このエラーが発生することはありません。少なくとも、PHPの「モード」で非アクティブ化するオプションを追加してください。
PHPの場合は、クレーンインテリセンスhttps://marketplace.visualstudio.com/items?itemName=HvyIndustries.craneを試す必要があり
@TheColorRed CraneIntellisenseに問題があります。 これは、これまでで最も人気のあるVS Code PHP拡張機能であるため、ほとんどの人が問題を報告していると思います。
ここでも同じですが、HTMLでCSS / JSのオートコンプリートが必要です。 そうでなければ、モナコに切り替えることは本当の選択肢ではありません:-)
vscodeを試したばかりですが、この機能がないため、このIDEの使用が停止します。 すべてのIDEに必須の機能であるため、この機能を提供してください。
よろしくお願いします。
これは非常に必要です。 phpコードをhtmlファイルに入れたり、htmlをphpファイルに入れたりすると、適切なインテリセンスが得られないのは非常に面倒です。
私が見逃している大きな機能の1つであり、私や同僚がvsCodeをメインエディターとして使用できなくなっています。
これは、この非常に一般的な機能がない私にとっては取引キラーです。 残念ながら...私は本当に、本当に、本当にこのIDEが大好きです。 これを追加すれば、とても嬉しいです。
@egammaできるかもしれない人に少しの指示を与えるのではなく、受動的攻撃的で皮肉なことを決めたので、変更するコードを見つけるのに不必要な時間を費やした後、PRを提出することになります助けるために。
@TechnikEmpireは、11月のVS Codeの大きなリリースから回復している間、2015年12月に私が行ったコメントをあまり読まないでください。 このコメントが皮肉なものとしてやってきた場合はお詫びします。
Intellisense for PHPに関しては、いくつかの良い進歩があります。 貢献したい場合は、 @ felixfbeckerが取り組んでいるphp-language-server
プロジェクトへの貢献を検討することをお勧めします。 Felixは、 php-debuggerの作成者でもあり
言語サーバーのアプローチと言語サーバープロトコルの詳細については、こちらをご覧ください。
@egammaしかし、PHP言語サーバーがVS CodeのHTML言語サーバーに「委任」できる方法はありますか? https://github.com/Microsoft/vscode/issues/1751がこれをカバーするようです
@felixfbecker HTML言語サーバーを抽出したので、調査したい最初のシナリオは、CSSセクションでIntellisenseを提供できるように、それをCSS言語サーバーと統合する方法です。 これは、#1751で言及した最初のシナリオに対応し、#8928でも要求されました。
この作業は9月には成功せず、現在10月に予定されています。
ありがとう! HTML作業内のCSSサポートは10月に予定されていますが、JS別名<script>
サポートはどうですか?
@egamma変更や改善はありますか? 10月中旬が過ぎたので、再確認したかっただけです。 これまでのところ、5か月経っても、この問題のためにVS Codeをプライマリエディターとして使用していません。そこには何百ものサイレントソウルがいると確信しています。 HTML / CSSのミキシングにいくつかの作業があることを嬉しく思いますが、完全なHTML + CSS + JS + PHPサポートが本当に必要です...
@luxzg HTML + CSSは10月の計画に従って進行し、HTML + CSS + JSは一https :
私にとって、この機能を編集するある種のdevopsファイルのPowerShellインライン作成者も大いに役立ちます。 コードブロックの一部にカーソルがあると、構文が特に自動的に変更される拡張子を持っている人がいるかもしれません。
FWIW「HTMLSnippets」プラグインとPHPIntellisenseは、私にとってうまく機能しています。
@matthewringerプラグインが機能しない
これは私にとっても問題です..これについての動きはまだありませんか?
これがすぐに追加されることを期待しましょう。 これがなければ、PHP開発者がそれを使用することはないと思います。
昇華は私を元に戻すのが悪いとかゆいです(TM)。 あなたが私の魂を救い、HTMLCSSとJSサポートを追加するよりも私を愛しているならVSCodeをお願いします。
1年以上経っても、これはまだサポートされていませんか? 本当に? ...そしてここで私はMSがついにゴミではない製品を作ったと思いました。
これは1つの機能だけであり、私にとってはPHPStormを、私が試した他のどの機能よりもはるかに優れたものにします。 彼らが最終的にHTML、CSS、Javascriptを使用したPHPの適切なインテリセンス/構文ハイライトサポートを実装できれば、最終的には本当に優れた軽量のPHPエディターを手に入れることができます。
HTML、CSS、またはJavascriptを入力して、どこでもPHPの補完を取得するのは、今のところ面倒な方法です。 オートコンプリートなしで別のエディターを使用することもできます。
.phpファイルをHTMLとして分類し、 <?php ?>
タグ内の内容のみをPHPコードとして解析するのはそれほど難しいことではありませんか?
私から+1、それらを混ぜてください:)
プログラミングを学びながらVScodeを使い始めたばかりですが、スピード、洗練、使いやすさが大好きで、魔法のようなものです。 ちょうど今日、PHPファイル内(PHPタグ内またはPHPタグなし)でHTMLを取得していないため、HTMLタグの照合が非常に困難であることに気付きました。 理想的ではない別のエディターに切り替える必要があります。
申し訳ありませんが、これをリモートで追加/修正するのに十分な経験はありませんが、Microsoftの誰かが追加していただければ幸いです。PHPファイルにHTML、Javascript、CSS、SQLコードを定期的に埋め込みます。 この機能を追加するのは簡単ではないと確信していますが、他のエディターのようにすべてを検出できれば素晴らしいと思います。 VScodeをそのままにしておくと、学習体験が楽しくなるので、本当に嫌です。
@egamma @aeschliこれはかなり前からありました-HTMLおよびCSS言語サーバーでこの問題を解決したいと
@felixfbeckerはい、このサポートはいくつかのマイルストーン以来利用可能です、plsは参照してください
html言語サーバーはhttps://github.com/Microsoft/vscode-html-languageserviceにあります。
このアプローチは、vue言語サポートhttps://github.com/octref/veturのために模倣されてい
// fyi @aeschli
@egammaでは、どのようにして完了を別の言語サーバーに渡すのでしょうか。 これに関するドキュメントはありますか? これはLSP拡張が必要だと思いました
これをここに残します
@felixfbecker現在、コード以外のドキュメントはありません。申し訳ありません。 このphpのサポートの追加を開始したい場合は、 @ aeschliに接続して確認することをお勧めします。
@felixfbecker
言語インジェクションを行う一般的な方法はまだないようですが、html拡張機能の実装は非常に簡単です。
VSCodeは、組み込み言語サポートの実装を軽減するためにhtml / cssLSパッケージを提供しています。 一方、柔軟性を維持しているため、各LSはコンテキストに基づいて異なる反応をすることができます。
つまり、jqueryを含むスクリプトタグが含まれている場合(vueには適用されない)、html拡張機能はjquery.d.tsをダウンロードするか、vue拡張機能は各.vueファイルをモジュール解決を行うコンポーネントとしてマークします(そうではありません)。 htmlに適用)。
@aeschliを引用https :
埋め込みコンテンツの一般的な解決策を考え出してほしいバグがいくつかありますが、それでは成功しないと思います。 最高のユーザーエクスペリエンスを得るには、すべてのホスト言語を特定に実装する方がよいと考える場合には、微妙な違いがあります。
しかし、組み込み言語のサポートを実装するためのドキュメントが不足していることに同意します。 vue拡張機能のすべての主要な機能が完了したら、いくつかの記事を作成すると思います。
これは非常に残念です。 この機能をLSPに追加できませんか? 言語サーバーは、ドキュメントをASTに解析するものであるため、ドキュメントのどの部分が異なる言語で記述されているかを知っているのは言語サーバーだけであり、引き渡す必要があります。 では、拡張機能はドキュメントを解析する必要がありますか? パーサーはノードとは異なるランタイム(PHP、Javaなど)に依存しているため、ほとんどの場合、これは不可能です。
これをLSPに追加するのがそれほど難しいとは思いません。たとえば、サーバーは、範囲の配列と言語モードを使用してURIの通知を送信するだけで済みます。 (VS Codeだけでなく)どのエディターよりも、その範囲に異なる言語サーバーを使用できます。
@egammaリポジトリで言語を渡すコードが見つかりませんでした。より具体的なポインタを
@felixfbecker Erichの意味:さまざまな言語サービスの埋め込みは_サーバー_内で行われます。
たとえば、htmlサーバーの依存関係でそれを見ることができます。
このようにして、サーバーは自己完結型であり、埋め込み言語のコンテキストを構成するための完全な制御が可能です(JavaScriptライブラリーは、埋め込みコンテンツ、言語のバージョン(ES5、ES6 ..)で使用できます)。
ここで、概要を説明するソリューション(言語サーバー間の通信)が問題になり始めます。 言語サーバー固有のAPIとサーバー間の依存関係につながる可能性があります。
カップリングを低く抑え、言語拡張機能を交換可能にしたいと考えています。
とは言うものの、すべての言語サーバーはそのアプローチを自由に選択できます。 これを行うには、カスタムLSメッセージを使用できます。 これが、11月のリリースで実装した方法です。 サーバーは要求をクライアントに送り返し、クライアントは埋め込まれた言語コンテンツのみを含む仮想ドキュメントに基づいて他の拡張機能を
議論を続けることは別の問題であることをお勧めします。 たぶん、LSPを拡張する方法についての提案で新しい問題を提出しますか?
ここでもチャイム。 これまでのところVSCodeが大好きですが、PHP内にHTMLタグの競合がないことは、大きな問題です。 一時的にPHPファイルのHTML言語モードに切り替えていますが、これが最終的にどのように機能するかわかりません。
VSCodeがこのかなり基本的な機能を欠いていることに気付くまで、VSCodeに恋をしました。 今のところ崇高に戻った。
この1つの機能により、VSCodeに切り替えることができません。
これは非常に必要な機能です。 +99999
他のすべてのエディターに存在するそのような基本的な機能:|
フォロー解除
これをいつ期待できるかについての更新はありますか?
私の考えでは、これは#765に直接関係しています。
:+1:とても良いエディタで、そのような単純な関数が欠けています:(
これが完全に閉じられていなければ、いつか修正される可能性があると思います。 私は確かにそう願っています-早いほど良いです。
AtomからVSCodeへの移行を妨げる唯一のことは、この重要な機能がないことです:(
では、フルスタックWeb PHP / HTML / JS用の代替エディターを誰かが提案できますか? VSCodeは本当に大好きですが、この機能の欠如は私にとって単なるブロッカーです。 PHPStormまたはWebStormは良いですか?
PHP IntelliSenseのメンテナとして、このスレッドはサブスクライブするのは悪夢です。 問題を+1したい場合は、高く評価してください。 これらの+1コメントはすべて、ディスカッションに価値を追加することなく、スレッドとスパムメンテナに通知を表示するだけです。 そして、「これはとても単純な機能です」と言っているすべての人に:実際にはそうではありません。 でもそう思うなら、気軽にPRしてください。
@felixfbecker私はそれがこの問題にどれほど不満を持っているかを浮き彫りにしていると思います。 これはそれほど単純な機能ではありません。 実装が複雑であることに同意しますが、テキストエディターでこの種の機能を期待するようになった人々が増え、VScodeに夢中になった私のように、その機能がないことに非常にショックを受けています。
それは、そのような重要な問題のロードマップの欠如についてです。 単純かどうかは、2017年の開発環境に必要な機能です。非常に単純な修正では、セクションにコメントまたは別のキーワードをタグ付けして、必要なインテリジェンスを指定できます。 GitHubコードブロックのものは、テキストのセクションをタグでラップします。
すべての泣き言を聞くのは少し面倒ですが、私は
この問題についてチャイムを鳴らしてください、それを聞くことは重要です。
何かがオープンソースであるかどうかは関係ありません、あなたはまだ従事しています
消費者に製品を届ける、そしてそれがひどいとき、人々は
不平を言う。 私の車のディーラーが私の年次サービスで無料のウォッシュを投入したとき
そして最低賃金の洗車機は私の車のいたるところに縞を残します、私は行きます
文句を言うために。
無料であろうとなかろうと、ユーザーが自分のユーザーを変更するための投資があります
新しいエディターを使用したワークフロー。 人々はそれを見つけるためだけにこれをやっています
彼らは時間を無駄にし、メモ帳の使用に固執するかもしれません。 人々することができます
彼らが否定的なフィードバックを聞きたくない場合は購読を解除しますが、それは
マイクロソフトがこれらの苦情を聞くことが重要です。 結局のところ、彼らは
この製品の製造に多額の投資を行い、それらは何ですか
彼らのお金のために戻ってきますか? 自分を呪う理由がもう1つある人
会社と彼らが支払った製品を使用しないでください。
プルリクエストに関しては、人々はすでに自分の時間に悩まされています
ワークフローとツールを切り替えるためだけの投資は無駄になっています。 あります
追加の時間を作り始める場所についての洞察はほとんどまたはまったくありません
彼らがより多くの時間を捨てる可能性があると感じたとしても、投資。 この
紙の上では複雑な機能ではないので、実際に使用されている場合は、おそらく
アプリケーションの設計には重大な欠陥があります。 私だけができる
私たちは誰かから報酬を得ていないので、他の誰もができるように推測します
このコードベースを学ぶために。
9:37スティーブンEckelsで水曜日、2017年3月29日には[email protected]
書きました:
それは、そのような重要な問題のロードマップの欠如についてです。 単純かどうか
これは2017年の開発環境に必要な機能です。非常に簡単な修正
セクションにコメントまたは別のキーワードでタグを付けて指定します
どのインテリジェンスが必要か。 GitHubコードブロックのもの、のセクションをラップします
タグ内のテキスト。—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
。>>
ジェシー・ニコルソン
私にとってこのすべての問題に対する答えは、PHPのNETBEANSでした
私が長い間変えたくない素晴らしいIDE。
@ madruga88 Netbeansは、最高のものではありません。 PHPStormは、現在、最高のPHPエディターであると私は信じています。 Jetbrainsは、MicrosoftからIntelligent Coding Assistance全体を取得し、それを大幅に改善したと思います。
私が最初にVSCodeを使い始めたとき、それが私に思い出させた唯一のIDEは、完了が非常に速く表示されたため、IntelliJ製品からのものでした。 実際、VSCodeとPHPStormはどちらも、一般的な編集機能に関して、箱から出してすぐに非常に似た感覚を持っています。 VSCodeがハードに失敗する(そして私は本当にハードを意味する)唯一の場所は、HTMLが埋め込まれたPHPです(これは最初から機能するはずでした)。
VSCodeが最終的にPHPで動作する埋め込みHTMLを取得した場合、それはPHPに最適なテキストエディター(IDE以外)になります。
現在、Sublime Textを使用することに固執しています。これは、少なくともHTML、CSS、Javascript、またはPHPのいずれを使用しているかを認識し、少なくとも適切に補完するためです。
面白いのは、PHPファイルがプレーンHTMLファイルとして処理する場合のSublimetextです。 VSCodeはPHPサポートをHTML構文に追加することもできませんか? 2つの別々の構文を持つ必要はありませんか?
@ drone540 phpstormのロードと使用(コードの入力が遅い)のパフォーマンスが悪いため、netbeansを選択しました...すべてのリンティングおよびヒントツール、フォーマットおよびデバッグをすぐに使用できます。
私は10年間ビジュアルスタジオを使用してきました。完全な機能と優れたパフォーマンスにより、netbeansはPHPのビジュアルスタジオであると言えます。
vscodeに欠けているのはhtml + php構文のフォーマットだけであることに同意します。
しかし、PHPSTORMが無料だったとしても..私はnetbeansを選びます...そのパフォーマンスのために。
真剣にこれは2015年以来修正されていませんか? 崇高に戻る
この問題が修正されたかどうかを確認し続けますが、動きはありません。 他の優れた機能がいくつあるかに関係なく、VSCodeに切り替えません。 それはひどく必要です。
この問題が修正されたかどうかを確認し続けますが、動きはありません。 他の優れた機能がいくつあるかに関係なく、VSCodeに切り替えません。 それはひどく必要です。
現在、どのIDEを使用していますか?
@icenold Bracketsatmを使用したかなり気の利いたワークフローがあります。 それに固執する傾向があります。
残念ながら、私はVisual Studio Codeが大好きですが、この問題のためにSublimeに切り替える必要があります。
まだ開いている? 誰もがこの機能を望んでいます!
この機能を実装してください。 開発者の友達からVSについて素晴らしいことを聞いたことがあります。 今朝、崇高なものから切り替えようとしていましたが、この機能がないと本当に合格できません。
みんな、我慢しましょう。
@markpanado元のチケットの日付:「2015年11月25日」
私が待っている間、私は通常PHPよりもはるかに多くのHTMLをPHPで書いているので、HTML構文をPHPファイルのデフォルトに設定する方法があります。 ユーザー設定パネルには明らかなことは何もありません。
ありがとう!
@ matt3224ステータスバーの左下隅にある言語インジケーターをクリックし、クイックピックで[ファイルの関連付けの構成]を選択します
@egammaすばらしい! ありがとう
実際、phpはHTMLで動作するように設計されており、HTMLのjavascript / cssと同じように、htmlタグを使用してそれ自体をカバーします。 他の言語はそのようには機能しません。 したがって、.phpファイルでのHTMLサポートは組み込み機能である必要があります。
私はVSCodeの拡張機能が大好きですが、ここで言及されている問題(このスレッドがどれだけ前にさかのぼるのかを考えると)は取引を妨げるものです。 もちろん、それなしで作業を行うことはできますが、メモ帳に戻って言語ツールをまったく使用せずに実行できるほど遅く、十分に遅いと感じます。
このようなものであってはなりません。
こんにちはvscodephp愛好家。 Intelephenseの0.7.0リリースに興味があるかもしれません。
HTML言語モードである必要があり、phpでは構文の色付けが利用できないといういくつかの癖があります。 フォーマット(gifから切り取られた)は3ステップのプロセスです:フォーマットhtml-> phpに切り替え->フォーマットphp。
うまくいけば、あなたはすべてあなたの見解とモデルをうまく分離していて、これらの欠点はそれほど問題ではありません。
@bmewburnすごい! それはいつ利用可能になりますか?
@popcornerが利用可能になりました
[ファイル]-> [終了]に移動してNetbeansをダウンロードすることで、これを個人的に解決しました。
Web開発アドオン付き。 優れました。 Vsコードはまともなtypescriptideであり、それほど多くはありません
そうしないと。 あなたがそれからより多くを期待するのをやめるとき、あなたは失望するのをやめます。
17:02ベンMewburn氏の土、2017年6月24日には[email protected]
書きました:
@popcornerhttps ://github.com/popcorner利用可能になりました
—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
。>>
ジェシー・ニコルソン
@bmewburn Intellephenseを試しましたが、まだいくつかの明白な問題があります。 HTMLタグ属性内に入力されたPHPeg(id = "")オートコンプリートが失われます。PHPテーマのフォーマットが失われます。
HTMLとPHPの間で同じことを行ったり来たりする必要があり、それはあまりにも多くの時間を浪費します。
別のメモで、私はこのスレッド全体がただ1つの大きなトロールであるかどうか疑問に思い始めています。 2年経ってもこれがまだ問題になるのはなぜですか? 同様の問題を開いた人は誰でも、それを閉じて、これを参照しました。 しかし、その間ずっと前進はありませんでした。
私もNetbeansに移りましたが、PHPStormが1つのファイルでphp htmljsを完全に処理できることがわかりました。 SSHを介したリモートDB統合も優れています。
そこで、NetbeansとPHPStormの両方でいくつかのテストを行いました。
Netbeansはこれでかなりまともなようです。
Netbeans
それはサポートします:
それは失敗します:
PHPStorm
マイナーな失敗:
PHPStormは間違いなくVSCodeに非常に近いと感じます(動作する場合)、Netbeansはそうします。 オートコンプリートが実際にどのように機能するかをテストしたい場合。 PHPStormでテストすることをお勧めします。 また、PHPStormとVSCodeは、箱から出して非常に多くの同様の編集機能を共有しています。 パフォーマンスに関しては、PHPStormの方が速いと思います。 オートコンプリートを使用しても遅延は発生しませんでした。 Netbeansは、オートコンプリートとの遅れに気づきました。
VSCodeが実際にこの問題を修正するまでにどれくらいの時間がかかるかわからないが、最終的にはいつ機能するかを信じている。 これは、PHPStormの動作に非常に近く動作し、少なくともPHPオートコンプリートの2番目に優れたエディターになります。
最近、SublimeTextからVSCodeに切り替えましたが、この問題が発生しました。 これはかなり厄介な問題であり、かなり基本的な問題でもあります。 そのため、SublimeTextに戻らなければなりません。 PHPをHTMLに関連付けようとしましたが、すべてのPHPコードが白くなり、構文がまったく強調表示されません。 ひどい!
10年後には、最終的に1つのMicrosoftソフトウェアがコンピューターに永続的にインストールされると思いましたが、2年間単純な問題を解決できない場合は、再びゴミ箱に移動します。
PHPドキュメント内にHTMLを書き込むと、
@ingagecoいいえ、
私はただ一つのことを知りたいです。 それは進行中ですか(少しずつ、赤ちゃんアリのステップ)、それとも完全に脇に置かれていますか?
@bsienn何について? phpインテリセンス拡張機能は進行中ですが、コードチームはこれがネイティブに提供されることを望んでいません。
@ jens1o返信ありがとうございます。 それで、 php intellisense extension
はFleix Baker拡張について話しているのですか?
それで、このスレッドは冗長ですか? 今、混乱しています。 進捗状況については、彼のプラグインリポジトリに従う必要がありますか?
はい、私はFelixの拡張機能について話しています。はい、彼のリポジトリをフォローしてup2dateにする必要があります。
...それで2年後、phpファイルにhtmlオートコンプリートを含めるための解決策はまだありませんか? 私はVSCodeが本当に好きです、これについてSublimeに戻る必要はありません:-(
今、私たちは本当にそれに対処する必要があります
または、他にも選択肢があるのでわかりません。 Gitとデバッグだけでは、ワークフローを後退させることはできません。 十分に実装されていないかもしれないが、そうでなければ適切であるオプションがあるときは決してそうではありません。 この問題は最初から解決されているはずです。
主な問題は、誰がそれを提供するのかわからないことです。 理想的にはPHP拡張機能( @felixfbecker ?)。 HTML言語サーバーにサポートを追加することもできます。
すべてのHTMLスマートネスは、ノードモジュールとしても利用でき
@aeschli上記および他のいくつかのスレッドで概説したように、すべての言語サーバーに、考えられるすべての埋め込み言語の言語サーバーを埋め込むことを要求することは、適切で持続可能なアプローチではないと思います。 PHPは通常、HTMLとSQLを埋め込みます。 HTMLは通常、CSSとJSを埋め込みます。 JSも一般的にHTMLを埋め込みます。 言語サーバーの作成者は、ネストされたすべての組み合わせをサポートするうさぎの穴を掘り下げ、ユーザーは同じ言語に対して複数回インストールされた言語サーバーになりますが、これらの埋め込み言語に使用する言語サーバーやそのバージョンを制御することはできません。 https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369(私の強調)であなた自身が言ったように:
言語サーバー固有のAPIとサーバー間の依存関係につながる可能
カップリングを低く抑え、言語拡張機能を交換可能にしたいと考えています。
私はそれに強く同意します。私の観点からは、埋め込みアプローチは、私の概説した解決策ではなく、まさにそれにつながります。
<style>
タグの範囲を埋め込みCSSとしてVS Codeに報告し、 <script>
タグの範囲は埋め込まれたJS。didOpen
通知を送信します。このアプローチでは、ユーザーは使用する言語サーバーを完全に制御でき(それらは交換可能です)、個々のサーバーは依存関係として他の言語サーバーを埋め込むことを気にする必要はありません。 これは、組み込み言語とトップレベル言語の間で一貫したエクスペリエンスを意味し、すべての言語サーバーのSoCを維持して1つの言語のみを考慮します。
通知はおおよそ次のようになります。
/** Parameters for textDocument/publishEmbeddedScripts, a notification sent from server to the client */
interface PublishEmbeddedScriptsParams extends TextDocumentIdentifier {
/** All the embedded scripts for this text document */
embeddedScripts: EmbeddedScript[]
}
interface EmbeddedScript {
/** Ranges in the text document that form this continuous embedded script */
ranges: Range[]
/** The language ID for that script (as also used in MarkedString) */
languageId: string
}
このようなPHPドキュメントがあるとします。
<h1>Foo</h1>
<?php echo 'Hello' ?>
<p>Bar</p>
PHPlangserverはVSCodeに送信します
{
embeddedScripts: [{
languageId: 'html',
ranges: [
{ start: { line: 0, column: 0 }, end: { line: 0, column: 11 }}
{ start: { line: 2, column: 0 }, end: { line: 2, column: 9 }}
]
}]
}
これにより、HTMLlangserverはfile:///foo.php#embedded1
ようなURIと次のコンテンツを含むVSCodeからtextDocument/didOpen
を受け取ります。
<h1>Foo</h1>
<p>Bar</p>
必要に応じて、別の号でこれについて説明してください。
@aeschliこの問題がまだ開いているにもかかわらず、これが言語サーバーの問題としてバウンスされ続けるという事実は、おそらく修正されることはないだろうと私に言っていると思います。
@felixfbeckerフォーマットのすべてのビットを検出できると言っている人は
@felixfbecker
これを有効にするには、言語サーバーで具体的にどのファイルを編集する必要がありますか? HTMLの言語サーバーを調べましたが、スタイルとスクリプトで何が行われるのか正確にはわかりません。
これらのファイルによると、HTML以外のもののトークン化をスキップするように見えます: https :
https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/htmlLanguageService.ts
しかし、CSSとJavascriptはどのようにして何をすべきかを知っていますか? このファイルによると、それらがどのように機能するかはまったくわかりません。
@aeschli phpとhtml言語サーバーは、vscode機能の多くで複数のプロバイダーを登録できることを考えると、すでにかなりうまく連携できます。 多くの場合、最初の偽でないプロバイダーの結果が使用されるか、場合によっては複数の結果が使用されます。 各サーバーが理解できないことを無視する限り(phpの場合は<?php ?>
外側、htmlの場合は内側)、動作します。これは。 / issues / 670#issuecomment -310822851
これをよりスムーズに機能させるため。
"files.associations": {
"*.myphp": ["php", "html"]
}
言語埋め込みのためのより完全なソリューションはありますか? 多分。 また、複数の言語を埋め込むことは特定のサーバーの責任ではないことに同意します。 使用されている特定の言語を特定するのはサーバーの責任ではなく、ユーザーはドキュメントの範囲を特定する必要があると思います。 しかし、それはさておき、PHPとHTMLを連携させるのは、それほど難しいことではないと思います。
@bmewburnそれほど難しくないのなら、なぜ2年後に修正を待っているのですか?
@felixfbeckerは、それはそれほど簡単ではないと言います。 しかし、この問題はまだ未解決であるため、明らかに優先事項と思われるかもしれませんが、すべてのリリースで見落とされています。 ですから、誰かが変更を加えるまで、私は厄介であり続け、最終的には修正されることを願っています。 それまでは、うまくいくものを使い続けます。
@felixfbeckerコメントで述べたように
しかし、これがPHPにとって実行可能なアプローチであり、PHP言語サーバーがHTMLサーバーに特定の範囲の要求を処理させたい場合は、それを実行しましょう。そのAPIはすべてそこにあり、すべてクライアントでカスタムLSプロトコルを使用して実行できます。 。
htmlサーバーまたはサービスで何かお手伝いできることがあれば教えてください。
@aeschliのエスケープルールは良い点なので、範囲の代わりに、言語サーバーはエスケープされていないコンテンツを送り返す必要があります。 それはそれを解決しますか? または、提案で見た他の問題はありますか?
しかし、これがPHPにとって実行可能なアプローチであり、PHP言語サーバーがHTMLサーバーに特定の範囲の要求を処理させたい場合は、それを実行しましょう。そのAPIはすべてそこにあり、すべてクライアントでカスタムLSプロトコルを使用して実行できます。 。
PHP言語サーバーは、VS Code、sublime、neovim、atom-ide-php、Eclipse Cheなど以外の多くのクライアントで使用されています。これらすべてで(最終的に)機能することが期待できるソリューションを構築するにはどうすればよいですか?クライアント(それがLSPのポイントです)と同時に、特定のHTML(およびCSS、JS ...)langserverを特定のランタイム要件(たとえば、neovim PHP開発者がPHPをインストールしているが、必ずしもNodeJSではない)にバンドルすることを避けます。ユーザーは、埋め込み言語に使用する言語サーバーを決定できますか? それがLSPにとって非常に強力な議論になるので、すべての言語に共通の方法でそれを実現できれば、私は非常に興奮します。
@aeschli @felixfbeckerでは、これは、両方がこの問題を解決しようとしていることを意味しますか? それは素晴らしいでしょう。
これは、ほとんどすべてのPHPコーダーが本当に必要とする機能です。 ですから、_正しい_方法でそれを作ることができないという理由だけでそれを無視しないでください。
非論理的または醜い解決策がある場合でも、それを延期して何もしないのではなく、一時的に使用することができます。
元々別の古いエディター用に作成された拡張機能と可能な限り互換性を持たせたいために手錠をかけられている場合は、現在利用可能なものを超える新しいクロスエディター標準の作成を検討する必要があります。 Microsoftが以前にその境界を超えて、他のグループと協力して、このエディターと他のエディターの両方で使用される標準言語サーバーモデルを構築したことがないわけではありません。 混合言語シナリオの処理方法に関して、同じことをもう一度繰り返す必要があります。
@felixfbeckerのphp-intellisense拡張機能や私のvscode-jinja拡張機能のような混合言語拡張機能がこの問題によってブロックされていることは明らかです。 コア言語でそれを行うことができれば素晴らしいのですが、コミュニティがそれを簡単に拡張できない場合、それは一般的にエディター全体に貧弱な経験を与えるだけです。 この時点で、この問題は十分長く続いているので、コミュニティ自体が実際に他の人に他の場所に行くように言っています、そして私は同じことをしています。
@wholroydは同意しました。私は、このIDEについて、スライスされたパン以来の最高のものであると人々に伝えていました。現在、私は積極的に人々をそれから遠ざけています。 私はそれを私のプロジェクトの1つに統合したことを残念に思います。
@aeschli html言語サーバーで次のことを検討しますか?
phtml
をリッスンするための追加のlanguageId。 これにより、phpおよびhtml拡張機能がリッスンできる共有IDと、結合されたテキストメイト文法が提供されます。<\?(php|=)?>
、 \?>
内のすべてを単一の自己終了タグとして消費します。別々のphpおよびhtml拡張機能からの次のプロバイダーは、サーバーに埋め込んだり、クライアントをハッキングしたりすることなく、一緒にうまく機能します。
フォーマットと名前の変更を機能させるには、いくつかのハックが必要になります。ユーザーは、ビューファイルに別の拡張子を付けて、phpではなくphtmlに関連付ける必要があります。 しかし、これは最小限の労力とリスクでかなり良いスタートになると思います。
@bmewburnはい、いいですね、できます。 'phtml'言語のアイデアは何ですか? プログラムでリクエストを転送するために使用しますか?
@aeschliリクエストの転送はありません。アイデアは、htmlサーバーにphtmlのプロバイダーを登録させ、phpサーバーにもphtmlのプロバイダーを登録させ、vscodeに個別の応答を処理させることです。
上記のプロバイダーはすべて、応答がマージされているか、最初の誤っていない応答が使用されています。 別々のhtmlサーバーとphpサーバーが理解できない範囲の結果を返さない限り、すべて機能するはずです。 phtml idは、両方の言語サーバーに共通するものです。複数の言語ファイルの関連付けがある方がよい場合もありますが、それははるかに複雑な場合がありますか? さらに、phpとphtmlを別々に保つことで、phpのみのファイルのリクエストをhtmlサーバーに送信しないようにすることができます。
"files.associations": {
"*.php": ["php", "html"]
}
現時点では、php拡張機能をhtmlおよびphp docセレクターに登録していますが、このセットアップでhtml言語構成をオーバーライドすることには注意が必要です。
ファイルの関連付けは、単一の言語IDにのみ割り当てることができます。 ただし、言語サーバーは、必要な言語のドキュメントを自由に提供できます。
可能性1:HTMLもphp
に登録し、すべてのリクエストに参加しますが、 <?php .../?>
外にある場合にのみ結果を返します
可能性2:PHP言語サーバーのみがphp
に登録し、すべてのリクエスト<?php .../?>
をphtml
言語に登録されているすべての言語サーバーに転送します。
したがって、転送はcommands.executeCommand
介してのみ実現できますか?
@ bmewburn #
はい、ここで行うように `commands.executeCommand 'を使用し
phpのhtmlインテリセンスに関する更新
やあみんな、phpとhtmlのコーディングを混合する方法はありますか? HTMLの強調表示がPHPドキュメントで正しく機能しない:-(
ほぼ2年後、まだ適切な解決策がないように見えますか?
この問題は解決するまでですか?
いいえ、まだ不可能です。 残念ながら、この問題のために私はST3に戻らざるを得ませんでした。 いつか彼らがこれを直して、私が戻ってくることを願っています。
@bmewburn素晴らしい作品。 これは長い間必要とされてきました。 どうもありがとう。 今ではVSCodeに切り替えない理由はありません
@ kilevvri1設定を共有してください。 私にとってはうまくいきません。
@ expo87デフォルトのPHPIntelephenseリクエスト設定セットアップを使用しました
"php.suggest.basic":false
私はまだ他の設定を使用していません。
バマー。 VSCode環境をセットアップし、すべてのプラグインを準備しました。 それから私はこれに遭遇しましたが、まだ修正されていません。
VSCodeが本当に好きになり始めたので残念ですが、今はSublimeTextに戻らなければなりません。
@DannyMexen PHPIntelephense拡張機能を
@ kilevvri1この拡張機能には、PHPのインストールが必要でした。 私にとっては、システムにPHPをインストールする必要はありません! なぜ私はこれをするのですか? 通常の混合構文を参照するためだけにphpと他の言語? なぜこのオプションは箱から出して機能しないのですか?! SublimeTextインストールファイル8,5Mb-混合ハイライトは正常に機能します。 CodeLiteインストールファイル50Mb-混合ハイライトは正常に機能します。 そして、PHPをインストールする必要はありません!
私は@ expo87に同意します。この機能は
@ kilevvri1 、ねえ、
ただし、HTMLを.phpファイルにフォーマットすることはできません。 また、そのような機能はすぐに使用できるようにする必要があることにも同意します。
他のすべては大丈夫ですが、私の経験を台無しにしているのはこれだけです。 会社の方針により、コードを適切にフォーマットすることが非常に重要です。 これが将来の希望です。
面倒ですが、大きなファイルの場合は、ファイルの名前を.htmlに変更し、フォーマットしてから、名前を.phpに戻します(信じてください、私は成功しなかったすべてのトリックを試しました)。
私はVSCodeが好きで、1週間与えます。 作業が大幅に遅くなった場合は、ST3に戻ります。
拡張機能を機能させるためにPHPをインストールすることに不満を持っている人のために、ローカルマシンにPHPを真剣にインストールしていませんか? テストする前にサーバーにコードを配置し、これを何度も繰り返すことに真剣に時間を浪費していますか?
PHPはローカルにインストールする必要がありますが、それは当たり前のようです。 アプリがローカルで実行されない場合は、開発上の問題がいくつかあります。
@TheColorRedは、ローカルでコードの結果を表示する必要がなく、その後サーバーにファイルをアップロードします。 WinSCPとSTの使用-私の仕事の軽くて速いスピード。 そしてもちろん、私は自分が何をしているのか知っています:-)
@TheColorRedあなたはインターネット上で間違っていて、時間の価値について積極的に
私たちは皆、これが箱から出してすぐに使える機能であることを望んでいますが、実際はそうではありません。 VSCodeチームは、これを問題ではないか、優先度が非常に低いと見なしています。 @bmewburnは、PHP Intelephense拡張機能を作成し
@ expo87ワークフローを説明する必要はありません。 私たちは皆、少し違ったやり方をします。
このため
私はsmartyを使用しているので、すべてのHTMLをphpコード内ではなくtplファイルに移動できます-_-
コードをよりクリーンにします
@DannyMexenPHPファイル内のHTMLのフォーマットに問題はありません。 settings.jsonでPHPIntelephenseフォーマット"intelephense.formatProvider.enable": false
をオフにします
私が本当に望んでいるのは、 >
がオートコンプリートの提案をトリガーしないことです(そして、それを却下するために私がしていることをやめさせます)。 HTML要素を閉じて次の行に移動したい場合は煩わしいですが、「誤って」Enterキーを押すと、新しい行の代わりに削除しなければならないゴミが発生します。 上記の提案のいずれも、この特定の問題を修正するようには見えません。
そのために必要なのはhttps://github.com/Microsoft/language-server-protocol/issues/138だけです。
@jriekenは、提案した中間ソリューションがすぐに範囲内にあるかどうかについてコメントを
複数文字のトリガーを実装できるかもしれませんが、それは思ったほど簡単ではありません。 それまでは、拡張機能はトリガー文字の潜在的なシーケンスの最後の文字を使用する必要があります。
@ kilevvri1サイコロなし。 私はあなたの投稿をフォローしましたが、役に立ちませんでした。 すべての設定を確認できますか? それが問題ではない場合は、おそらくインストールした拡張機能のリストです。
私が得た最も近いものは、ファイルの関連付けを変更し、beautifyをいじくり回すことでしたが、それでも役に立ちませんでした。
とにかく、みんなありがとう。 これに対する直接的な答えはないようです。
@WraithKennyはhttps://github.com/felixfbecker/php-language-server/pull/527で修正されました
何時間も試した後、私はこれを機能させることができません。 @bmewburnが示唆したように、「PHPIntelephense」プラグインでさえ私のために機能していません。 「php」と入力してTabキーを押すと、次のように展開されます: http :
これは、PHPでHTMLを使用している場合の最も基本的な機能です。 少なくともWordPressテーマ開発者として。
戻ってVSCodeをもう一度確認するかもしれませんが、今のところ、Sublimeに切り替えます。 最初はVSCodeがいかに強力であるかが気に入りましたが、これらの小さな問題(または機能の欠如)により、多くのPHP / WP開発者はそれを避けられます。
aaand私は@zeshanshaniと@DannyMexenを使用しています-PHPファイル内にhtmlを記述できない場合、このエディターはすぐに使用できます。
ダン。 私はそれがとても好きでしたが、これは(一見単純に見える)もので私には役に立たなくなっています。
たぶん私はここで少し間違っていました、この問題は私が言及していたものではありません。 とにかく、私が言ったように、私はVS Codeが私にどれほど強力に見えるかが好きだったので、さらにチェックインして、問題の非常に簡単な解決策を見つけました。
私が直面した問題は、 <?php ?>
ブロックの外にいて、ショートカットを使用してPHPブロックを開こうとすると、機能しないことでした。
そこで、PHPブロックを拡張するためのカスタムHTMLスニペットを作成しました。 今のところ、次の3つのスニペットを作成しました。
<?php ?>
に展開します誰かがそれを探しているなら、これがスニペットコードです:
https://gist.github.com/zeshanshani/ccbfe8c0177a2513f0a92d0747349f50
そしてこれが結果です:
ここでの唯一の問題は、スコープを定義できるSublime Textとは異なり、 .html
ファイルのスニペットも展開するため、特定のスニペットがPHPの場合にのみ展開されることです: http :
ところで、誰かがemmet.triggerExpansionOnTab
設定を有効にしようとしましたか? これにより、PHP文字列内のタブサポートでemmetHTML拡張が可能になります。
この設定を行うには、 [ユーザー設定]に移動し、次の行を追加します。
"emmet.triggerExpansionOnTab": true
スクリーンショット: http :
結果は次のとおりです。
私(そしておそらく他の人々)にとって実行可能な解決策を見つけました。
JunHanによる「_AutoCloseTag_」拡張機能をインストールしました。 次に、私の設定でこれを追加しました:
"php.suggest.basic": false,
"auto-close-tag.SublimeText3Mode": true,
今の.phpファイル内と外の間、 <?php ?>
私は得ることはありませんタグ$_cookie
私はhtmlタグを入力し終わった後、私が入力したときに</
それ自動完了適切な終了タグ。
うまくいけば、これは私と同じ問題を抱えていた他の誰かを助けるでしょう。
@Chenzoは回避策のフォーマットコードをCtrl
+ Shift
+ I
を押すと、PHPとHTMLコードはそれに応じてフォーマット/インデントされますか?
@DannyMexenうーん...いいえ。 また、それはVScodeのネイティブなものですか? 私のbeautifyプラグインでさえ、.PHPファイルにある間はHTMLをどう処理するかを知らないようです。
@Chenzoなるほど。 ええ、ここでも同じです。 これは、VSCを専用のテキストエディタとして使用するために必要な唯一の機能です。
@zeshanshani @DannyMexen
PHPIntelliphenseが機能しない場合
vscodeとPHPIntelliphenseを再インストールしてみてください
または
evereditを使用してみてください。これは優れたエディターですが、IDEではなく、Windowsのみです。
@iscraftの提案に感謝し
したがって、これに正しく従えば、ブロッキングの問題はLSP(yay!)で解決され、FelixのLanguage Server(yay!)でも解決されますが、VS CodeInsiderではまだ解決されていません。
常に存在する<?php
オートコンプリートに関連する小さな問題は、VS Code Insidersに存在し、FelixのIntellesenseプラグインがアクティブになっているので、VS Codeでも何かを待っていると思いますか?
https://github.com/felixfbecker/vscode-php-intellisense/issues/205#issuecomment -347794655
Insiders Editionをスキップして1.19にするのではないでしょうか?
settings.json
では、次のプロパティを追加すると問題なく機能します。
"files.associations": {"*.php": "html, php"},
まあ、結局それは真実ではなかったと思います。 崇高なテキストに戻る?
files.associationは私が試したことの1つでした。 私のために働いたことはありません。
公式Twitterアカウントから、問題を提起するように言われました。
いつの日か、チームはそれを実装します。 持っていないのはとても奇妙なことです
これは箱から出して。 文字通り、VScodeを使用できない唯一の理由
私の専属編集者として。
@Ken Newmanは、すべてのPHPプロジェクトに対する私のソリューションです。
22:31の木、2017年12月14日には、ケン・ニューマン[email protected]
書きました:
まあ、結局それは真実ではなかったと思います。 崇高なテキストに戻る?
—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
。
-
よろしく、
ダニーメクセン。
1.19でHTMLがPHP言語/ファイル内で機能するようになった可能性はありますか? テストしたところ、拡張機能がなくてもaitが機能していることがわかりました...
1.19および1.20の@jsielerはまだ機能していません。
VSCode 1.19は、.phpファイルのhtml、属性をオートコンプリートできません:( !!!!
発行2年...
HTMLは、この拡張子を持つPHPファイルでうまく機能しています。 この問題はおそらく解決できます。
@bmewburn私もそう思います
いいえ、個人的には、外部拡張機能を必要とせずにサポートを待っています。
重要な問題は他の言語にも当てはまります。
私たちの何人かがここで報告している問題について明確にしましょう。
今のところ、私は自分で話します。
問題は、PHPファイルでのHTMLオートコンプリートの失敗ではなく、VSCodeの「ドキュメントのフォーマット」機能のコンテキストでPHPファイルのHTMLコードをフォーマットすることです。 これは明らかですか?
デフォルトのキーボードショートカットがCtrl
+ Shift
+ I
場合、HTMLコードも含むPHPファイルでPHPコードのみがフォーマットされることがあります。 HTMLコードはまったくフォーマットされていません。
この機能は、たとえばST3ですぐに使用できます。
オートコンプリート、自動終了タグなどは問題なく機能します。 PHP行をタブし、次にHTML行をタブし、ドキュメントをフォーマットしようとすると、PHPコードのみが正しくインデントされます。
これで、ここで問題が解決することを願っています。
ここで誰が私と一緒にこの問題を経験していますか?
@bmewburnこれは、phpファイルにHTML言語モードを選択した場合にのみ機能しますが、コードのphp部分のスタイルが
@ Perumal93
"files.associations":{"*。php": "html、php"}、
それはまったく機能しません! 最後に使用した言語(この場合はphp)を使用するだけです。 その他は完全に無視されます。
@SharakPLどのバージョンのVSCoderuを使用していますか?
@ kilevvri11.19.1から1.19.2にアップグレードしました。 変化なし :(
ファイル言語としてPHPを選択した場合、htmlの提案は機能しません。
ファイル言語としてHTMLを選択すると、php部分はプレーンテキストとしてスタイル設定され、出力には多くのエラーが表示されます。
@SharakPL VSCodeユーザー設定で電話パスがリンクされていますか? 私は今家にいませんが、戻ってきたら、インテレフェンスは完璧ではないので助けますが、うまくいくと不思議に思うので、助けようとします。
@SharakPL私はあなたのPHPパスを意味しました。 電話で入力してごめんなさい。
@ kilevvri1はい、あります
"php.suggest.basic":true、
"php.validate.enable":true、
"php.validate.executablePath": "c:\\ wamp64 \\ bin \ php \ php5.6.25 \ php.exe"、
"php.validate.run": "onType"、
これは、PHP言語モードでは常にHTMLコードが適切に提案されるSublime Text3のようになります。
@SharakPL
拡張機能の推奨事項ごとに:
"php.suggest.basic":false
それを試して、私に知らせてください
@ kilevvri1変更なし:(
ああ、私は今それを手に入れました! PHP形式のファイルにはある種のHTMLインテリセンスがありますが、EMMETの提案によって管理されています:
スニペットが提案されていないため、 <a
と入力して単純なリンクを追加できないことに悩まされ続けました。 a
だけを入力すると必要なものが表示されると思いましたが、リンクがあったとしても、すべての属性を1文字ずつ手動で追加する必要がありました。 EMMETで、私は単純に入力することができますa#mylink.btn.btn-success
取得するために<a href="" id="mylink" class="btn btn-success"></a>
。 かっこいいですが、より正確なhtmlを取得するには、 a#mylink.btn.btn-success[title="click me" target="_blank"]
を使用する必要があり、その新しい部分も1文字ずつ入力する必要があります。 SublimeTextのスタイルの方がはるかに優れています。
HTMLインテリセンスが機能するファイル拡張子のリストに手動で.phpを追加する方法はありますか? これはEclipseで実行できます。
@graddev誰かが提案した"files.associations": {"*.php": "html, php"}
ユーザー設定で、しかしこれは私にとってはうまくいきません
彼らがこの機会を追加するとき、誰が知っていますか?
2020年でしたが、彼らはまだこれをしませんでした...。
PHPファイルでのHTMLとCSSのオートコンプリート...どうやって?
この機能を追加する必要があります。 HTMLタグの属性オートコンプリートはまったく機能しません。
みんな、私は非常に嫌な解決策を使用していますが、それは(ちょっと)うまくいきます。 マクロキー付きのキーボードを持っているので、言語モードを変更するマクロを作成しました。 HTMLインテリセンスが必要な場合はM1を押し、PHPが必要な場合はM2を押します。
インテレフェンスエクステンションをお試しください。
@aeschliこれは重要な問題を解決しません。 Smarty拡張機能で、私が維持している拡張機能でも同じ問題が発生します。 注目のPHP拡張機能がこれ以上サポートされないのは本当に残念です。あなたは、くだらない回避策を使用している別の拡張機能の使用を推奨することで気を散らそうとしています。 それでも、問題はさらに深くなります。 実際、この問題は次のスプリントで解決されるはずであり、バックログに置かれて問題を軽視することを考慮すべきではありません。 コミュニティの利益についてどのように感じていますか?
申し訳ありませんが、私は少し腹を立てています。
(実は3ヶ月前に同じことを言ったんです。)
VSCodeチームが取り組み、専門知識を持っている分野は非常に多くあります。 残念ながら、私たちはPHP開発者ではありません。 そのため、オープン拡張APIとマーケットプレイスを考案しました。 拡張機能を試して私たちをサポートし、著者が良いフィードバックを得るのを手伝ってください。
すべての拡張機能が組み込みでVSCodeと一緒に出荷されれば素晴らしいと思いますが、ダウンロードを少なくしたいとも思っています。
私たちは、Intelephense拡張機能の作成者であるBenと協力して、PHPでのHTML補完を改善しました。 採用されたアプローチは正しいアプローチだと思います。 優れたユーザーエクスペリエンスを提供するために、「メイン」言語としてのPHPのみが、埋め込まれたHTMLコンテンツ(たとえば、エンコード方法、PHP変数の解決方法)を完全に理解します。 私の経験から、他の一般的な解決策は問題の一部しか解決せず、解決できない場合には何百もの未解決の問題が発生します。
@ jens1oご不便をおかけして申し訳ありません。また、近い将来、このエリアでの計画はありません。 拡張エコシステムをサポートするか、Intelephense(および他のPHP拡張)にチャンスを与えることで私たちを助けてください。
さて、私は息を吸って落ち着きました。 それでは、焦点を私の拡張機能に移しましょう。ユーザーがHTMLを完成できるように、HTML言語サーバーのフォークを保持することになっていますか? それは私も言及している重要な問題です。 他の言語はさらに大きな打撃を受けていると思います。 問題は、Smartyが非常に柔軟であるため、あらゆる言語(csv、jsonなど)の近くで使用できることです。 言語の制限に縛られないテンプレートシステムだからです。 したがって、csv言語サーバー(存在しない)、XMLサーバー、JSONサーバーのフォークを保持する必要があります...技術リソースで許可されている言語はいくつあるでしょうか?
intelephense(および他のPHP拡張機能)にチャンスを与えます。
私は@felixfbeckerによるphp- なぜなら、私はHTMLインテリセンスを持っていなくてもコードベースが大好きだからです(これがこの問題のために燃えている理由です)、そしてそれは公式の機能拡張です(私はそのずっと前にそれを使用していました)。 私は言語サーバーの概念が大好きで、ファイルのさまざまな部分を担当する複数の言語サーバーが概念を改善するための次のステップだと思います。
@aeschli拡張機能により、phpのhtml部分がスタンドアロンのhtmlファイルと同じ動作をするようになると思いますか? その部分でhtmlのすべてのプラグインを正常に動作させることを含みますか?
拡張システムは私たち全員が知っているように本当に重要ですが、すべての機能がプラグインに適しているわけではありません。 実際に必要なのは、1つのファイルを複数の言語に解析し、それらを別々に処理することです。 これは、コードエディタに組み込まれている機能である必要があります。
そして、すべてのPHPファイルは実際にはHTMLであり、特別なものがありますHTMLタグ。 このタグのコンテンツのみをHTMLと見なしてはなりません。 これはHTMLに埋め込まれた単なる言語であり、それなしでは機能しません(CLIを除く)。 したがって、問題はPHPのHTMLに関するものではなく、HTMLがメインコンテナです。 また、css javascript vbscript svg perl javaなど、多くの言語をHTMLに埋め込むことができます。公式のサポートがなければ、どの拡張機能でもこれを実行できるとは思いません。
@popcornerに感謝します。 私は実際に同じことを言いたかったのですが、あなたはそれをもっとよく書いています。 :)
STがこれをどのように行うか知っている人はいますか? 高レベルの説明でもありがたいです。
私はまだこれに不快です。 ですから、この問題はPHP向けに公開する予定はなく、代わりにその回避策を実行する予定なので、解決できますか?
まだ解決策のない問題?
私はLaravelBladeを使用しています..したがって、ここにはPHPタグはありません..どのように機能を実装するのか疑問に思います。
解決しましたが、理由はわかりません... php inteliphenseを更新するか、vscodeインサイダーを使用するかもしれません...
@victormongiどのphpinteliphenseを使用していますか?
@jfnadevこれがどのように機能するかはわかりませんが、これは私のvscodeバージョンとintelephenseバージョンです:
@victormongi同じ構成です
@jfnadevこれらは私のインストールされた拡張機能です:
extension.json:
[
{
"metadata": {
"id": "2cbad5ee-b4ab-4de8-a1c7-77fede846155",
"publisherId": "patbenatar.advanced-new-file",
"publisherDisplayName": "patbenatar"
},
"name": "advanced-new-file",
"publisher": "patbenatar",
"version": "1.1.0"
},
{
"metadata": {
"id": "697255a9-3f36-44c8-b084-d3b91edfb23a",
"publisherId": "HookyQR.beautify",
"publisherDisplayName": "HookyQR"
},
"name": "beautify",
"publisher": "HookyQR",
"version": "1.3.0"
},
{
"metadata": {
"id": "9d674f86-f8d2-4fe1-8fa6-a17b40caf4ac",
"publisherId": "pawelgrzybek.bimbo-theme",
"publisherDisplayName": "pawelgrzybek"
},
"name": "bimbo-theme",
"publisher": "pawelgrzybek",
"version": "0.4.5"
},
{
"metadata": {
"id": "f583eafd-aa0d-4ccb-8f44-d1e610389660",
"publisherId": "CoenraadS.bracket-pair-colorizer",
"publisherDisplayName": "CoenraadS"
},
"name": "bracket-pair-colorizer",
"publisher": "CoenraadS",
"version": "1.0.27"
},
{
"metadata": {
"id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd",
"publisherId": "Shan.code-settings-sync",
"publisherDisplayName": "Shan"
},
"name": "code-settings-sync",
"publisher": "Shan",
"version": "2.9.0"
},
{
"metadata": {
"id": "532533c9-a894-4a58-9eee-bbfbe7c06f71",
"publisherId": "mikestead.dotenv",
"publisherDisplayName": "mikestead"
},
"name": "dotenv",
"publisher": "mikestead",
"version": "1.0.1"
},
{
"metadata": {
"id": "1946e66b-9eea-45a9-816b-316bf9d7d1ab",
"publisherId": "Zyst.Egoist-One",
"publisherDisplayName": "Zyst"
},
"name": "Egoist-One",
"publisher": "Zyst",
"version": "1.18.0"
},
{
"metadata": {
"id": "7b71fc1b-190d-4f7d-95d1-93e422649b0a",
"publisherId": "Zignd.html-css-class-completion",
"publisherDisplayName": "Zignd"
},
"name": "html-css-class-completion",
"publisher": "Zignd",
"version": "1.17.1"
},
{
"metadata": {
"id": "8d5687fe-08f5-4a8e-917a-23aef71db6b3",
"publisherId": "zhengxiaoyao0716.intelligence-change-case",
"publisherDisplayName": "zhengxiaoyao0716"
},
"name": "intelligence-change-case",
"publisher": "zhengxiaoyao0716",
"version": "1.1.0"
},
{
"metadata": {
"id": "6f35c257-7fd5-4bc2-9cd1-01976589c17a",
"publisherId": "arcticicestudio.nord-visual-studio-code",
"publisherDisplayName": "arcticicestudio"
},
"name": "nord-visual-studio-code",
"publisher": "arcticicestudio",
"version": "0.6.0"
},
{
"metadata": {
"id": "a41c1549-4053-44d4-bf30-60fc809b4a86",
"publisherId": "christian-kohler.path-intellisense",
"publisherDisplayName": "christian-kohler"
},
"name": "path-intellisense",
"publisher": "christian-kohler",
"version": "1.4.2"
},
{
"metadata": {
"id": "a439d61f-cd9c-453f-b8c7-186f73d44915",
"publisherId": "MehediDracula.php-constructor",
"publisherDisplayName": "MehediDracula"
},
"name": "php-constructor",
"publisher": "MehediDracula",
"version": "0.0.8"
},
{
"metadata": {
"id": "044b4b31-2969-4af3-895d-855433b8b46d",
"publisherId": "felixfbecker.php-debug",
"publisherDisplayName": "felixfbecker"
},
"name": "php-debug",
"publisher": "felixfbecker",
"version": "1.12.2"
},
{
"metadata": {
"id": "5e69f001-f945-4c97-baf0-320d82a153b3",
"publisherId": "felixfbecker.php-intellisense",
"publisherDisplayName": "felixfbecker"
},
"name": "php-intellisense",
"publisher": "felixfbecker",
"version": "2.3.1"
},
{
"metadata": {
"id": "96fa4707-6983-4489-b7c5-d5ffdfdcce90",
"publisherId": "esbenp.prettier-vscode",
"publisherDisplayName": "esbenp"
},
"name": "prettier-vscode",
"publisher": "esbenp",
"version": "1.2.2"
},
{
"metadata": {
"id": "e52bce95-a629-455f-8626-e7301b9e372a",
"publisherId": "robinbentley.sass-indented",
"publisherDisplayName": "robinbentley"
},
"name": "sass-indented",
"publisher": "robinbentley",
"version": "1.4.8"
},
{
"metadata": {
"id": "735af542-944f-4b07-b336-9df27d7b8d84",
"publisherId": "smlombardi.slime",
"publisherDisplayName": "smlombardi"
},
"name": "slime",
"publisher": "smlombardi",
"version": "2.31.2"
},
{
"metadata": {
"id": "d6ba4b7b-539f-456a-b0f6-0348df44cdf3",
"publisherId": "nikitaKunevich.snippet-creator",
"publisherDisplayName": "nikitaKunevich"
},
"name": "snippet-creator",
"publisher": "nikitaKunevich",
"version": "0.0.4"
},
{
"metadata": {
"id": "529697b9-b343-4b1c-ba2f-f5ef692132d4",
"publisherId": "ms-vscode.sublime-keybindings",
"publisherDisplayName": "ms-vscode"
},
"name": "sublime-keybindings",
"publisher": "ms-vscode",
"version": "3.0.3"
},
{
"metadata": {
"id": "a150991b-031b-457a-b823-ef4c45425a1b",
"publisherId": "karyfoundation.theme-karyfoundation-themes",
"publisherDisplayName": "karyfoundation"
},
"name": "theme-karyfoundation-themes",
"publisher": "karyfoundation",
"version": "17.0.0"
},
{
"metadata": {
"id": "2f5dd8cb-d251-4d70-abfe-ddebcb077483",
"publisherId": "octref.vetur",
"publisherDisplayName": "octref"
},
"name": "vetur",
"publisher": "octref",
"version": "0.11.7"
},
{
"metadata": {
"id": "d96e79c6-8b25-4be3-8545-0e0ecefcae03",
"publisherId": "vscodevim.vim",
"publisherDisplayName": "vscodevim"
},
"name": "vim",
"publisher": "vscodevim",
"version": "0.11.3"
},
{
"metadata": {
"id": "d637104e-1fd7-4063-98fc-8afe46012c9b",
"publisherId": "sleistner.vscode-fileutils",
"publisherDisplayName": "sleistner"
},
"name": "vscode-fileutils",
"publisher": "sleistner",
"version": "2.8.1"
},
{
"metadata": {
"id": "aaee577c-f062-495a-9816-0cbd442f1d25",
"publisherId": "ecmel.vscode-html-css",
"publisherDisplayName": "ecmel"
},
"name": "vscode-html-css",
"publisher": "ecmel",
"version": "0.2.0"
},
{
"metadata": {
"id": "c46b0018-f317-4b6c-a785-d2039b27338f",
"publisherId": "wix.vscode-import-cost",
"publisherDisplayName": "wix"
},
"name": "vscode-import-cost",
"publisher": "wix",
"version": "2.6.2"
},
{
"metadata": {
"id": "ffda6552-0ad5-431b-a4fa-0905a7e4f3f0",
"publisherId": "bmewburn.vscode-intelephense-client",
"publisherDisplayName": "bmewburn"
},
"name": "vscode-intelephense-client",
"publisher": "bmewburn",
"version": "0.8.8"
},
{
"metadata": {
"id": "80e9cc3c-eb09-48ed-afda-f1cfd9c9ca3f",
"publisherId": "phproberto.vscode-php-getters-setters",
"publisherDisplayName": "phproberto"
},
"name": "vscode-php-getters-setters",
"publisher": "phproberto",
"version": "1.1.0"
},
{
"metadata": {
"id": "9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6",
"publisherId": "akamud.vscode-theme-onedark",
"publisherDisplayName": "akamud"
},
"name": "vscode-theme-onedark",
"publisher": "akamud",
"version": "2.1.0"
},
{
"metadata": {
"id": "ee33fd31-7bb4-4252-8368-fdd5bcd94cf8",
"publisherId": "akamud.vscode-theme-onelight",
"publisherDisplayName": "akamud"
},
"name": "vscode-theme-onelight",
"publisher": "akamud",
"version": "2.1.0"
}
]
何か変わった? 私はこれと同じ問題を抱えています。
私からも+1。
3年以上前のこの問題がまだ解決されていないなんて信じられません。SublimeText3を使い続ける方がいい
これは本質的な機能だと思います。 それがVSCodeに移行するのを待っています😞
この時点で私たち全員が同じことを指しているかどうかはわかりませんTBH。
13:53時月、2018年5月14日には、Miqueiasペンハ[email protected]
書きました:
PHP Intelephense
ハイライトマッチングタグ作業! s2
—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-388790414 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/APewudsZw-Cu5mpgLrBJ8vUPagFUxB5Rks5tyXApgaJpZM4Gpk-J
。
-
よろしく、
ダニーメクセン。
vscodeはphpについてafを与えません。 これを追加してください。
PHPIntelephenseをインストールしました。 問題は解決しました。
ここで明確になります。
HTMLコードをPHPファイルでフォーマット(Ctrl + Shift + I)することはできません。
@venoel PHP Intelephenseをインストールすると、次のことができると言っていますか?
それ?
20:17の水曜日、2018年5月30日には、venoel [email protected]は書きました:
PHPIntelephenseをインストールしました。 問題は解決しました。
—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
。
-
よろしく、
ダニーメクセン。
@DannyMexen。
つまり、タグの提案が正しく表示され、インデントが適切に適用されます。
MicrosoftはGitHubを買収しています!
しかし、この問題はまだです!
笑!
@venoel
了解しました。 それがあなたのために働くことをうれしく思います。
何をしようとしても、PHPファイルでHTMLコードをフォーマットすることはできません。
午前11:00月、2018年6月4日には、venoel [email protected]は書きました:
@DannyMexenhttps ://github.com/DannyMexen 。
つまり、タグの提案が正しく表示され、インデントが適切に適用されます。—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
。
-
よろしく、
ダニーメクセン。
VSCodeには、特定のファイルタイプに2つ以上の言語モードを設定して、それらすべてに同時に構文の強調表示とインテリセンスを持たせるオプションが確実に必要です。 VSCodeのインスタンスが1つあれば、言語モードが異なるさまざまなファイルにあります。 正直なところ、実装がそれほど難しいのはなぜかわかりません。 誰かが以前にそれを機能するソリューションとして使用しましたが、機能せず、機能しませんでしたが、間違いなく次のようにする必要があります。
"files.associations": {
"*.phtml": ["html", "php"]
}
ええ、@ SharakPLに完全に同意します。 私は与えられた応答を理解していませんでしたが
私がここにいるよりも賢い人たちが、それは簡単ではないと言っています
実装するもの。 私は自分でそれをするのに十分な知識がありませんが、これは
たとえば、機能はST3ですぐに使用できますが、
他のすべてのデフォルト機能。
21:33の水曜日、2018年6月6日には、SharakPL [email protected]は書きました:
VSCodeには、2つ以上の言語モードを設定するオプションが必ずあります。
すべての構文の強調表示とインテリセンスを持つ特定のファイルタイプ
それらを同時に。 あなたは今でもVSCodeの1つのインスタンスでそれを持っています、
異なる言語モードの異なるファイルで。 正直なところ私はしません
なぜ実装が難しいのかを知ってください。 誰かが以前にそれを
動作せず、動作しなかったものの、動作するソリューションですが、間違いなく
すべき:"files.associations":{
"* .phtml":["html"、 "php"]
}—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
。
-
よろしく、
ダニーメクセン。
@DannyMexenに同意します。メモ帳++でもそれがあります。 2018年ですが、vscodeにはまだこの機能がありません。 それはクレイジーです。
_この問題を閉じてください、それは決して起こりません。_
@bsiennは説明する気ですか? 単純なテキストエディタで一般的なことがVSCodeでは不可能なのはなぜですか?
@SharakPLは説明しますか? 3年前のDEADスレッドを読んでください、それはあなたにそれが起こらないことを説明します。
@bsienn emnetがあり、phpのhtmlはemnetを使用しています。学習してみてください。https: //docs.emmet.io/お願いします...とにかく動作しています...
@bsiennは私にこれを説明します:なぜあなたはあきらめることがこの問題を閉じる理由であるはずですか?
@benyaminl emmetは問題ありリンクにいくつかの属性を追加する必要がある場合は、phpファイルにhtmlのインテリセンスがまだないため、役に立ちません。
ああ、それは私がハハハを無視しようとしたと思います..それはとにかく本当です。 それでも
誰かがそれを実装しようとしたと思うとき、それは非常に簡単ではありません
My Asus PegasusX005から送信
PADA tanggalカム、2018年6月14日19.26、SharakPL [email protected]
menulis:
@bsienn https://github.com/bsiennこれを説明して
アップはこのスレッドを閉じる理由になるはずですか?@benyaminl https://github.com/benyaminl emmetは問題ありませんが、それだけです
新しいタグを作成すると機能します。 タグを編集する必要がある場合、つまり追加する必要がある場合は役に立ちません
リンクへのいくつかの属性<#m_4226514043244462616_issuecomment-359139115>、
phpファイルにはまだhtmlのインテリセンスがないためです—
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
。
Intellisenseについて多くのすばらしいことを読んだので、Brackets.ioの使用からVSCodeに変換しようとしています。 この基本的な機能が私を妨げています。 それが3年間戻って、何もされていないのは私を怖がらせます。
.htmlオートコンプリートを使用するために.phpファイルを登録するプラグインまたは方法があるかどうか誰かが知っていますか?
ご協力いただきありがとうございます。
この問題に関するニュースはありますか?
htmlファイルでの混合編集用に作成された同じ実装を実行するだけで、html + css + jsが正常に機能すると思います。
もう1つの方法は、Extension APIに、ファイルの抜粋を監視して選択した言語を変更する方法を実装することです。
これを作成したのは、PHPのネストされたHTMLに悩まされていたためです。これは、html.formatのネイティブ設定と、PHPのHTML形式の保存/入力でのエディター形式に基づいてフォーマットする必要があります。
また、私は完全なオートコンプリートを取得し、インテリセンスはこのようにそれを行います。
@ RiFi2kこんにちは! 私はあなたの拡張機能をインストールしようとしますが、私にとっては何も変わりません。 説明では、この拡張機能に対して何もしないように設定されています。
@BxDevねえ! だからあなたは持っている必要がありますhtml.format.enable = true
editor.formatOnSave = true
必要に応じて、HTMLフォーマットまたはエディターフォーマットに関連するvscodeの他の設定をセットアップします。
次に、ネストされたHTMLを.phpファイルにフォーマットする必要があるため、次のようなコードを含む.phpファイルがあることも確認する必要があります。
<?php
$hi = true;
?>
<div class="correct-formatting">
<div class="wrong-formatting">
</div>
</div>
保存すると、HTMLdivが修正されます。
それでも問題が解決しない場合は、問題を解決するお手伝いをさせていただきます。
@ RiFi2k返信ありがとう
私はこれをユーザー設定で書きます:
"html.format.enable": true, "editor.formatOnSave": true
その後、私はあなたの例でphpファイルを作成しますが、それは機能しません:-(
@BxDev実際、それは完全に仕事をしたように見えます
<?php
$hi = true;
?>
<div class="correct-formatting">
<div class="wrong-formatting">
</div>
</div>
に
<?php
$hi = true;
?>
<div class="correct-formatting">
<div class="wrong-formatting">
</div>
</div>
機能について混乱していなかったといいのですが、これですべてです。
@ RiFi2k ohh yeea :)わかりました:)ごめんなさい。 しかし、私にとって非常に重要なのは、混合php / html / js / cssドキュメントのハイライトペアタグです。 お疲れ様でした!
これは3年前の問題であり、解決されることは決してないだろうと私は感じています。
これは編集者にとって非常に基本的なことであり、私の日常業務を非常に面倒にしています。
VScodeは、特に最近、あらゆる種類の凝った機能を追加することで後退しているように感じますが、それらの主要な問題を無視しているので、おそらくST3に戻す必要があります。
@TheDutchCoder最近、誰もPHPをコーディングしたくないからです。これは、正しいことです。 :D
@steebcheenトピックを続けてください。 ありがとう
@Tyriarとにかく、誰かがこれに割り当てられていますか? またはそうではありませんか?
編集:ああそれは割り当てられています..わかりました
@ RiFi2kこんにちは、助けてくれてありがとう! 拡張機能を試しましたが、機能しません。 あなたが提供した設定を試しましたが、それでもサイコロはありません。 多分それは使用中のphpフォーマッターに依存しますか? そもそもphpフォーマットを有効にするためにどの拡張子を使用することをお勧めしますか?
OK、クイックアップデート:保存時に機能します。これはすばらしいことです。 右クリックのコンテキストメニューでは機能しません。 私はそれが公正な妥協だと思います:)
問題は私の好みだけだと思いました。 HTMLコードをphpにミックスすると、タブを押すとタブサイズが4になり、新しいタブサイズが2になるように、フォーマットが非常に乱雑になります。ST3からVSCに切り替えたいのですが、これで停止します。 VSCへの切り替えから。 今のところST3に留まらなければならないと思います。
@thanasisHS申し訳ありませんがこれを見たばかりです。
私の拡張機能は、保存時のフォーマットが構成されている場合にのみ実行され、実際のPHPフォーマッターとしては実行されず、onBeforeSaveで実行されます。
設定全体をいくつかの要点として公開しましたが、完璧にするのに何ヶ月もかかったのでお気軽に。 フォーマットにはPHPCBFを使用しますが、これを使用します。インストール数は300しかないことはわかっていますが、彼はすべての死んだphpcbf拡張機能のコードを更新してマージしました。
https://marketplace.visualstudio.com/items?itemName=ValeryanM.vscode-phpcbf
他の誰かが私の設定にも興味を持っているなら、ここに私の要点があります。 php、js、scss、css、vueを実行します-eslint、stylelint、phpcbf、phpcs、prettierを使用した自動フォーマットとリンティング。 すべての設定が完了したら、それはビートです。
グローバル
https://gist.github.com/RiFi2k/d43e84788b1798252f30cac28b6f6eda
事業
https://gist.github.com/RiFi2k/42e294f3785bdbbc2641c4b18955e16f
すべてのドットファイル、composer.json、package.json、phpルールセット
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708
この問題を閉じます。 上記の問題の説明で理由を説明しました。
ありがとう。 コードは毎日ますます台無しになっています。 Microsoftの皆さんは、このFOSSイニシアチブのすべてに満足していると思いましたが、それでも独立しているわけではなく、GithubとAzureを宣伝してお金を稼ぐことに重点を置いています。
@ jens1o混乱しています。この決定は、OSSエコシステムの育成に関するものです。 参照されている拡張機能はOSSプロジェクトです。それらを改善するためにご協力ください。 VSCodeチームのリソースは無制限ではありません。
また、行動規範を忘れず、敬意を持ってコミュニケーションを図りましょう。
コミュニティは間違いなくタスクを望んでいますが、なぜあなたが他のタスクよりもタスクを優先するのか理解できません。 「問題の軽減」と「範囲外」、そして「限られたリソース」しか聞こえません(そのため、コミュニティがここにあります、笑)。 物事がすぐに来ないことについて不満を言う人は誰もいませんが、コミュニティのニーズにもう少し焦点を当てることは間違いなく役に立ちます。 何も汚染していないのに、なぜ問題番号を低く抑える必要があるのでしょうか。 私の目には、コードロードマップは2回前にスイートスポットを通過しました。 ;さて、それは(私は最初のデモ以来、それを使用しています年間を通じて獲得した大きなコミュニティでお金を稼ぐについてのすべてであるBuild();
が所有GitHubのような支払い、サードパーティ製品を(、統合することにより、日常) Microsoft)。
私はもうこのコミュニティで歓迎されているとは感じていないと言っています(そして私は正直に失望しています)、私は決してあなたを個人的に攻撃しないので、ここでCOCを参照する理由はありません。 オープンな議論をすることはFOSSソフトウェアの一部です。
しかし、COCについて言えば、私はこれを引用します:
意見の相違を理解する
私はあなたがしている政治に同意しないという理由だけで、あなたが私をシャットダウンしたい理由がわかりません。
なぜあなたが政治を変えたのか理解しようとしているので、詳しく教えていただけますか?
@egammaこの問題を解決する理由は合理的ではないと思います。 Visual Studio Codeがすべての機能をすぐに提供できるわけではなく、提供すべきではないことを理解していますが、PHP言語のHTMLサポートは、PHPエディターの最も基本的な機能の1つである必要があります。 PHPの機能のほとんどは拡張機能によって提供されるべきかもしれませんが、これはそうではありません。 多くのエディターにはこの機能があり、単純なテキストエディターであるNotepad ++にもこの機能があります。 これは基本的なPHP文法の一部であり、これなしでPHPを作成することはできません。 編集者は、PHPを正しい方法で読み取ることができないため、この機能なしでPHPをサポートしていると言ってはなりません。
また、vscodeに拡張子がなくても、HTMLファイルのJavascriptが適切に機能し、HTMLのCSSが適切に機能するのはなぜですか? vscodeにはこの機能があるようですが、PHP用に同様の機能を作りたくないようです。それは不公平です。
この機能はPHPユーザーにとって非常に重要であり、ほとんどのユーザーはこれらの問題を検索しようとせず、これらの基本的で必要な機能を取得するのに役立つ拡張機能について何も知りません。 これらのユーザーは、このエディターをダウンロードしてインストールし、この「バグ」を見つけたら、すぐにアンインストールして、vscodeについて非常に悪い印象を与える可能性があります。 彼らはここでは何も言わないでしょう。 ここで意見を共有したいすべてのユーザーは、vscodeを本当に改善したい人々です。 この機能なしでPHPコードを書く感覚は本当に苦痛で、ブロックを区別することはできません。手動でhtmlタグを数えるか、ファイル形式をphpからhtmlに、そしてhtmlからphpに何度も変換する必要があります。 私がこれまでvscodeで試した他のすべての言語は、拡張機能がインストールされていなければ、それほど悪い感情を抱くことはありません。 ユーザーは理由を知りません。ユーザーエクスペリエンスだけを気にします。 これについて考えて何かをしてください。少しハイライトを追加することも良いです:
同意しました。 @ popcornerは正しいです。これはPHP
実際、この問題全体の核心は、複数のフォーマット拡張機能を同時に登録できないという事実にあると思います。 そのフックには基本的に一種のレースがあり、勝つことができるのは1つだけです。さらに、何をいつ実行しようとしていて、どれが実際に実行されたかをユーザーとして確認することはできません。 したがって、PHPファイルの場合、HTMLを介してPHPコードを実行するフォーマット拡張機能を使用することになります。 ただし、フォーマット拡張機能をチェーンでき、フックの順序など変更可能なものがある場合は、PHPとHTMLを登録してから、最初/最後に実行する優先順位/順序を設定できます。 たとえば、可能であれば、この問題全体が修正されます...
ステップ1PHPCBFまたは同様のPHPフォーマット拡張機能を実行します。
ステップ2js-beautify htmlフォーマットを実行します。これはとにかくすべてのPHPをスキップし、HTMLのみを実行します。これは私の拡張機能であるPHPでHTMLをフォーマットする場合とまったく同じことで問題を修正します。 ただし、デフォルトのフォーマット登録を使用する代わりにonBeforeSaveで実行する必要がありますが、これが解決策である必要はありません。
要約すると、それは非常に必要ですが、問題を修正する/修正しない代わりに、上記の私のアイデアを調べてみてください。そうすれば、ユーザーと拡張機能の開発者にとって、すべての言語とフォーマットでより良い体験をすることができます。
最も参考になるコメント
私は助けることができませんが、私からさらに+1000。 PHPのHTML / CSS / JSは、混合ファイルとして一般的です。 私は完全なVisualStudio + VS.phpを試しました-これもサポートされていません。 PHPをサポートしていると思われるすべてのMicrosoft開発ツールで、なぜこれが見落とされているのか疑問に思っています。 はい、PHPのサポートはありますが、HTML / CSS / JS用のIntelliSense(コード補完とコード提案)がない場合は役に立ちません。
同じことがJSブロックとHTMLのインラインCSSにも当てはまります。
settings.jsonで定義した場合:
"files.associations": {"*.php": "html"},
... PHPよりもIntelliSenseは(明らかに)機能せず、HTMLが機能します。しかし、
style=" ...something... ";
を使用したインラインCSSは、スタイル属性の引用符の間に書き込むときにCSSプロパティを提供しません。同様に、
<script>
ブロックを開始すると、IntelliSense for JSを取得できませんが、.jsファイルを開くと正常に反応します。私は次の提案を支持します(それが簡単な場合):
<?php ... ?>
はPHPIntelliSenseを開始する必要があります<?php ... ?>
外でHTMLIntelliSenseを開始する必要がありますだけでなく
<style> ... </style>
とstyle=" .... "
内部でCSSIntelliSenseを開始する必要があります<script ... >
と<script> ... </script>
内部でJSIntelliSenseを起動する必要がありますまた、可能であれば、 @ TheColorRedによる提案を
<?php ... ?>
が、HTML IntelliSenseの有効化も検討する必要があるよりも、たとえば$string="..."
文字列を書き込んでいます。 つまり、PHP開発者は次のようなものをよく使用します。<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
..次のように、phpタグを常に開いたり閉じたりしてブロックを実行しないようにします。
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>
また、 @ egammaは、恩知らずや怠惰に聞こえるつもりはありませんが、私たちの1人が自分でコーディングするのに十分な能力と知識を持っていれば、
この機能が存在する必要があるというコンセンサスがあり、それがない現在のPHPサポートは、ほとんどのPHP開発者の部分的なサポートにすぎないことを願っています。
PS繰り返しになりますが、批評家のように聞こえないでください。私はこれまでのところVS Codeが本当に好きで、この素晴らしいプロジェクトに貢献し、貢献し続けているすべての人に最も感謝しています。
編集:
ある.tsファイルを別の作品に含める/参照するだけでしょうか?
例:/languages/php/common/php.ts
含める:/languages/html/common/html.ts
含める:/languages/css/common/css.ts
含める:..。
タグ/属性/関数名と重複する可能性はありますが、現時点では何も思い浮かびません...そしてIntelliSenseの場合、それぞれに異なるアイコンがあるので問題はないと思いますが、そのような場合は色分けだけが混乱する可能性があります...私は何か他のものが欠けていますか?