Vscode: [php] توفير تحسس html

تم إنشاؤها على ٢٥ نوفمبر ٢٠١٥  ·  234تعليقات  ·  مصدر: microsoft/vscode

في ملفات PHP ، لا يوجد إكمال تلقائي لعلامات html ، يرجى إضافة.


EDIT 9/13/ 2018egamma : يوفر VS Code الدعم الأساسي فقط لـ PHP ، ولكن هناك امتدادات PHP قوية متوفرة في السوق:

يجب توفير هذه الميزة بواسطة هذه الامتدادات (Intelephence يدعمها بالفعل). يرجى تجربة هذه الملحقات والمساعدة في تحسينها من خلال تقديم المشكلات وسحب الطلبات.

فقدت هذه المشكلة التركيز وتحولت إلى مناقشة حول ما إذا كان يجب أن توفر VS Code دعم PHP خارج الصندوق. ومع ذلك ، كما هو الحال مع العديد من اللغات الأخرى مثل C # و C ++ و Go و Python و Rust ، لا نريد تجميع PHP مع VS Code بل نعتمد على نظام الامتداد البيئي الرائع. لذلك أنا أغلق هذه المسألة.

feature-request help wanted languages-basic php

التعليق الأكثر فائدة

لا يمكنني المساعدة ، لكن مني +1000 أخرى. HTML / CSS / JS في PHP شائع كملف مختلط. لقد جربت Visual Studio + VS.php الكامل - أيضًا غير مدعوم. ما زلت أتساءل لماذا يتم التغاضي عن هذا في كل أداة تطوير من Microsoft يفترض أنها تدعم PHP. نعم ، يتوفر دعم PHP ، ولكنه يكون عديم الفائدة إذا لم يكن لدينا IntelliSense (إكمال التعليمات البرمجية واقتراحات التعليمات البرمجية) لـ HTML / CSS / JS أيضًا.

الشيء نفسه ينطبق على كتل JS و CSS المضمنة في HTML.
إذا حددت في settings.json:
"files.associations": {"*.php": "html"},
... من PHP IntelliSense (من الواضح) لا يعمل ، و HTML يبدأ. لكن Inline-CSS باستخدام style=" ...something... "; لا يقدم أي خصائص CSS عند الكتابة بين علامات الاقتباس الخاصة بسمة النمط.
وبالمثل ، إذا بدأت كتلة <script> ، فلن تحصل على IntelliSense لـ JS ، بينما يتفاعل فتح ملف .js بشكل طبيعي.

أنا أؤيد الاقتراح بأنه (إذا كان أسهل):

  • يجب أن يبدأ <?php ... ?> في PHP IntelliSense
  • خارج <?php ... ?> يجب أن يبدأ HTML IntelliSense
    ولكن أيضا
  • داخل <style> ... </style> و style=" .... " يجب أن يبدأ CSS IntelliSense
  • داخل <script ... > و <script> ... </script> يجب أن يبدأ JS IntelliSense

أيضًا ، إذا أمكن ، يجب النظر في اقتراح من @ TheColorRed ، مما يعني أنك في الداخل
<?php ... ?> لكنك تكتب سلسلة مثل $string="..." مما يجب أن تفكر في تحويل HTML IntelliSense أيضًا. الشيء هو أن مطوري PHP يستخدمون غالبًا شيئًا مثل:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. لتجنب عمل الكتل مع علامات فتح / إغلاق php طوال الوقت ، مثل:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

أيضًا egamma ، على الرغم من أننا لا نعني أن لترميزها بأنفسنا - أنا متأكد من أننا سنفعل ذلك. لسوء الحظ - أنا لست: - / ولكن إذا كان بإمكاني المساعدة بأي طريقة أخرى ، فسأكون سعيدًا (ليس فقط عن طريق التعليق مع الاقتراحات ، ولكن الاختبار ، أو أي شيء آخر).

آمل أن يكون هناك إجماع على أن هذه الميزة يجب أن تكون موجودة ، وأن دعم PHP الحالي بدونها هو فقط دعم جزئي لمعظم مطوري PHP.

ملاحظة ومرة ​​أخرى ، لا أبدو ناقدًا - فأنا معجب حقًا بـ VS Code حتى الآن ، وأنا ممتن جدًا لكل من ساهم وواصل المساهمة في هذا المشروع الرائع!

تعديل:
هل ببساطة تضمين / الرجوع إلى ملف .ts إلى عمل آخر؟
على سبيل المثال ، في /languages/php/common/php.ts
تشمل: /languages/html/common/html.ts
تشمل: /languages/css/common/css.ts
تضمن: ...

على الرغم من أنه قد يكون هناك بعض التداخل مع أسماء العلامات / السمات / الوظائف ، فلا شيء يتبادر إلى ذهني في الوقت الحالي ... وبالنسبة إلى IntelliSense ، أعتقد أنه ليس مشكلة لأن لكل منها رمزًا مختلفًا ، يمكن فقط العبث في ترميز الألوان في مثل هذه الحالات ... هل فاتني شيء آخر؟

ال 234 كومينتر

يبدو معقولا. يوجد هنا موفرو معلمات HTML tag intellisense ، قد يكون الأمر مجرد مسألة ربط هذه الوحدة بكود PHP. يتم أيضًا تأمينها فقط عندما تكون خارج علامات <?php ، إذا كنت أتذكر كيف تعمل PHP بشكل صحيح.

Tyriar خارج علامات <?php ماذا يعني ذلك؟ هل تتوفر عند وجود علامات خارج <?php ?> في ملفات PHP؟

خارج <?php ?> هو HTML ، وداخله PHP. لذلك يجب أن يكون الإكمال التلقائي لـ HTML متاحًا فقط خارج العلامات <?php ?> .

Tyriar لكنها غير متوفرة الآن خارج علامات <?php ?> في ملفات .php ، ربما تكون متوفرة فقط في ملفات .html .

الرجاء إضافة هذه الميزة بسرعة ، أعتقد أنها ميزة أساسية ، شكرًا يا رفاق.

osjn شكرًا لمساعدتنا في تحديد الأولويات من خلال التعليق. أفضل طريقة لمساعدتنا هي طلب السحب مع التنفيذ.

ربما أنا فقط ، لكنني أعتقد أنه سيكون رائعًا إذا كان التحسس متاحًا داخل سلاسل php أيضًا.

تصويت إيجابي مني أيضًا. هذه الميزة مطلوبة من فضلك.

سيحتاج كل مطور PHP تقريبًا إلى هذه الميزة لاختيار VSCode كمحرر أساسي.

نحتاج إلى إصلاح هذه المشكلة لاستهداف المزيد من المطورين.

بالأمس حاولت أن أصطدم برأسي بهذه المشكلة ولكن للأسف ، فإن افتقاري لمهارات TypeScript يمنعني من مساعدتك في هذه المشكلة.

أحتاج هذا!

نفسه. ببساطة +1000

لا يمكنني المساعدة ، لكن مني +1000 أخرى. HTML / CSS / JS في PHP شائع كملف مختلط. لقد جربت Visual Studio + VS.php الكامل - أيضًا غير مدعوم. ما زلت أتساءل لماذا يتم التغاضي عن هذا في كل أداة تطوير من Microsoft يفترض أنها تدعم PHP. نعم ، يتوفر دعم PHP ، ولكنه يكون عديم الفائدة إذا لم يكن لدينا IntelliSense (إكمال التعليمات البرمجية واقتراحات التعليمات البرمجية) لـ HTML / CSS / JS أيضًا.

الشيء نفسه ينطبق على كتل JS و CSS المضمنة في HTML.
إذا حددت في settings.json:
"files.associations": {"*.php": "html"},
... من PHP IntelliSense (من الواضح) لا يعمل ، و HTML يبدأ. لكن Inline-CSS باستخدام style=" ...something... "; لا يقدم أي خصائص CSS عند الكتابة بين علامات الاقتباس الخاصة بسمة النمط.
وبالمثل ، إذا بدأت كتلة <script> ، فلن تحصل على IntelliSense لـ JS ، بينما يتفاعل فتح ملف .js بشكل طبيعي.

أنا أؤيد الاقتراح بأنه (إذا كان أسهل):

  • يجب أن يبدأ <?php ... ?> في PHP IntelliSense
  • خارج <?php ... ?> يجب أن يبدأ HTML IntelliSense
    ولكن أيضا
  • داخل <style> ... </style> و style=" .... " يجب أن يبدأ CSS IntelliSense
  • داخل <script ... > و <script> ... </script> يجب أن يبدأ JS IntelliSense

أيضًا ، إذا أمكن ، يجب النظر في اقتراح من @ TheColorRed ، مما يعني أنك في الداخل
<?php ... ?> لكنك تكتب سلسلة مثل $string="..." مما يجب أن تفكر في تحويل HTML IntelliSense أيضًا. الشيء هو أن مطوري PHP يستخدمون غالبًا شيئًا مثل:
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. لتجنب عمل الكتل مع علامات فتح / إغلاق php طوال الوقت ، مثل:
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

أيضًا egamma ، على الرغم من أننا لا نعني أن لترميزها بأنفسنا - أنا متأكد من أننا سنفعل ذلك. لسوء الحظ - أنا لست: - / ولكن إذا كان بإمكاني المساعدة بأي طريقة أخرى ، فسأكون سعيدًا (ليس فقط عن طريق التعليق مع الاقتراحات ، ولكن الاختبار ، أو أي شيء آخر).

آمل أن يكون هناك إجماع على أن هذه الميزة يجب أن تكون موجودة ، وأن دعم PHP الحالي بدونها هو فقط دعم جزئي لمعظم مطوري PHP.

ملاحظة ومرة ​​أخرى ، لا أبدو ناقدًا - فأنا معجب حقًا بـ VS Code حتى الآن ، وأنا ممتن جدًا لكل من ساهم وواصل المساهمة في هذا المشروع الرائع!

تعديل:
هل ببساطة تضمين / الرجوع إلى ملف .ts إلى عمل آخر؟
على سبيل المثال ، في /languages/php/common/php.ts
تشمل: /languages/html/common/html.ts
تشمل: /languages/css/common/css.ts
تضمن: ...

على الرغم من أنه قد يكون هناك بعض التداخل مع أسماء العلامات / السمات / الوظائف ، فلا شيء يتبادر إلى ذهني في الوقت الحالي ... وبالنسبة إلى IntelliSense ، أعتقد أنه ليس مشكلة لأن لكل منها رمزًا مختلفًا ، يمكن فقط العبث في ترميز الألوان في مثل هذه الحالات ... هل فاتني شيء آخر؟

إذا لم تتم إضافة هذا ، فلا بد لي من تبديل المحرر ، والآن أستخدم محررين ...

من فضلك ، كيف يمكنني إلغاء تنشيط HTML IntelliSense عندما أعمل مع PHP؟

هذا الخيار هو كابوس ، لأنني لا أستطيع جدولة متغير لأنني أقوم تلقائيًا بإنشاء علامة XML / HTML.

لا أخلط كود PHP الخاص بي مع HTML ، ولن أقوم بهذا الخطأ أبدًا ، من فضلك ، على الأقل أضف خيار إلغاء تنشيطه في "وضع" PHP.

بالنسبة لـ PHP ، يجب أن تجرب crane intellisense https://marketplace.visualstudio.com/items؟itemName=HvyIndustries.crane

TheColorRed Crane Intellisense لديها المشكلة. إنه إلى حد بعيد امتداد VS Code PHP الأكثر شيوعًا ، لذلك أعتقد أن هذا هو ما يقوم معظم الناس بالإبلاغ عن مشكلتهم به.

هنا أيضًا ، نحتاج إلى إكمال تلقائي لـ CSS / JS بتنسيق HTML. خلاف ذلك ، فإن التبديل إلى موناكو ليس خيارًا حقيقيًا :-)

لقد جربت للتو vscode ولكن عدم وجود هذه الميزة فقط أوقفني عن استخدام IDE هذا. يرجى تقديم هذه الميزة لأنها ميزة لا غنى عنها لكل IDE.
شكرا مقدما.

هذا مطلوب جدا. إنه أمر مزعج للغاية عدم الحصول على المعلومات المناسبة عند وضع كود php داخل ملف html ، أو وضع html في ملف php.

ميزة واحدة كبيرة أفتقدها وهي تمنعني أنا وزملائي من استخدام vsCode كمحرر رئيسي خارجي.

هذه صفقة قاتلة بالنسبة لي بدون هذه الميزة الشائعة جدًا. بالرغم من العار ... أنا حقًا ، حقًا ، حقًا أحب هذا IDE. إذا تمت إضافة هذا ، سأكون سعيدًا جدًا.

egamma ، سأحصل على حق في إرسال العلاقات العامة ، بعد أن أمضي وقتًا غير ضروري في محاولة العثور على الكود لتعديله لأنك قررت أن تكون عدوانيًا سلبيًا وساخرًا بدلاً من تقديم أدنى قدر من التوجيه لأولئك الذين قد يكونوا قادرين للمساعدة.

TechnikEmpire من فضلك لا تقرأ الكثير في تعليق أدليت به في ديسمبر 2015 ، بينما كنا نتعافى من إصدار نوفمبر VS Code الكبير. اعتذر إذا كان هذا التعليق قد جاء على أنه ساخر.

هناك بعض التقدم الجيد فيما يتعلق بـ Intellisense لـ PHP. إذا كنت ترغب في المساهمة ، فأقترح النظر في المساهمة في مشروع php-language-server الذي يعمل عليه felixfbecker . فيليكس هو أيضًا مؤلف مصحح أخطاء php . هذه هي المستودعات ذات الصلة:

يمكن العثور على مزيد من المعلومات حول نهج خادم اللغة وبروتوكول خادم اللغة هنا.

egamma ولكن هل هناك أي طريقة يمكن بها لخادم لغة PHP "التفويض" إلى خادم لغة HTML الخاص بـ VS Code؟ يبدو أن https://github.com/Microsoft/vscode/issues/1751 سيغطي هذا

felixfbecker الآن بعد أن قمنا باستخراج خادم لغة HTML ، فإن السيناريو الأول الذي نريد التحقيق فيه هو كيفية دمجه مع خادم لغة CSS حتى نتمكن من توفير Intellisense في أقسام CSS. هذا يتوافق مع السيناريو الأول الذي ذكرته في # 1751 والذي تم طلبه أيضًا في # 8928.

لم يصل هذا العمل لشهر سبتمبر ومن المقرر الآن في أكتوبر.

شكر! تم التخطيط لدعم CSS داخل عمل HTML في أكتوبر ، فماذا عن JS الملقب بدعم <script> ؟

egamma هل هناك أي تغييرات أو تحسينات؟ مر منتصف أكتوبر ، لذلك أردت فقط إعادة التحقق. حتى الآن ، بعد 5 أشهر ما زلت لا أستخدم VS Code كمحرر أساسي لدي بسبب هذه المشكلة ، وأنا متأكد من وجود المئات من الأشخاص الصامتين هناك. يسعدني أن هناك بعض العمل مع خلط HTML / CSS ، لكننا نحتاج حقًا إلى دعم HTML + CSS + JS + PHP كامل ...

تقدمluxzg HTML + CSS وفقًا لخطة أكتوبر ، HTML + CSS + JS امتداد. تابع تقدمنا ​​هنا: https://github.com/Microsoft/vscode/projects/2

بالنسبة لي ، يساعد استخدام أدوات داخلية بوويرشيل في بعض أنواع ملفات devops التي تعدل هذه الميزة أيضًا كثيرًا. قد يكون لدى شخص ما امتداد يتم تغييره تلقائيًا بشكل خاص عند وجود مؤشر في جزء من كتلة التعليمات البرمجية؟

FWIW يعمل المكون الإضافي "HTML Snippets"

matthewringer البرنامج المساعد لا يعمل لي

هذه قضية بالنسبة لي أيضا .. ألم يتحرك في هذا الأمر بعد؟

دعونا نأمل أن يتم إضافة هذا قريبًا. بدون هذا أشك في أن أي مطور php سيستخدمه.

سامية تزعجني للعودة إلى الوراء (TM). إذا كنت تحبني فأنقذ روحي وأضف دعم HTML CSS & JS من فضلك.

أكثر من عام وما زلت لا تدعم هذا؟ هل حقا؟ ... وهنا اعتقدت أن MS أخيرًا صنعت منتجًا لم يكن قمامة.

هذه هي الميزة الوحيدة ، بالنسبة لي ، تجعل PHPStorm أفضل بكثير من أي شيء آخر جربته. إذا تمكنوا أخيرًا من تطبيق intellisense / syntax المناسب لإبراز دعم PHP مع HTML و CSS و Javascript ، فيمكننا أخيرًا الحصول على محرر PHP خفيف الوزن جيدًا.

إنها طريقة مزعجة الآن أن تكتب بتنسيق HTML أو CSS أو Javascript والحصول على إكمالات PHP في كل مكان. يمكنك أيضًا استخدام محرر آخر بدون الإكمال التلقائي.

ليس من الصعب تصنيف ملفات .php على أنها HTML ثم تحليل ما بداخل علامات <?php ?> كرمز PHP ، أليس كذلك؟

+1 مني ، يرجى خلطها :)

لقد بدأت للتو في استخدام VScode أثناء تعلم البرمجة وهي رائعة جدًا - أحب السرعة والتلميع وسهولة الاستخدام - أشياء سحرية. أدركت اليوم أنها لا تلتقط HTML داخل ملفات PHP (تتلاشى داخل أو بدون علامات PHP) مما يجعل مطابقة علامات HTML أمرًا صعبًا للغاية. أنا مضطر للتبديل إلى محرر آخر وهو ليس مثاليًا.

عذرًا ، لست من ذوي الخبرة الكافية لأحاول عن بُعد إضافة هذا / إصلاح هذا بنفسي ، لكنني سأكون ممتنًا حقًا إذا كان بإمكان شخص ما في Microsoft إضافته. أقوم بشكل روتيني بتضمين HTML و Javascript و CSS و SQL code داخل ملفات PHP الخاصة بي. سيكون رائعًا إذا أمكن اكتشافه جميعًا كما هو الحال في المحررين الآخرين ، على الرغم من أنني متأكد من أنه ليس من السهل إضافة هذه الوظيفة. سأكره حقًا أن تضطر إلى ترك VScode معًا لأنه يجعل تجربة التعلم ممتعة.

egammaaeschli ظل هذا الأمر قائماً منذ فترة طويلة - لقد ذكرت أنك تريد حل هذه المشكلة باستخدام خوادم لغة HTML و CSS ، فهل انتهى ذلك؟ أعتقد أن سبب ذلك هو قدرة خادم اللغة على تحديد نطاقات معينة في المستند حيث يجب التعامل مع جميع ميزات اللغة بواسطة خادم لغة مختلف. لذلك ، يمكن لـ PHP LS بعد تحليل المستند الإعلان عن النطاقات بتنسيق HTML ، ويمكن لـ HTML LS الإعلان عن الأجزاء التي تكون JS أو CSS ، ويمكن لـ TS / JS LS الإعلان عن الأجزاء التي تكون SQL أو GraphQL.

felixfbecker ، نعم ، هذا الدعم متاح منذ بضعة معالم ، يرجى الاطلاع عليها

image

يمكن العثور على خادم لغة html هنا https://github.com/Microsoft/vscode-html-languageservice.

تم تقليد النهج لدعم لغة vue https://github.com/octref/vetur

// fyiaeschli

egamma فكيف يتم تسليم الإكمال إلى خادم لغة مختلف؟ هل هناك أي وثائق حول هذا؟ افترضت أن هذا قد يستغرق تمديد LSP

ترك هذا هنا

felixfbecker ليس لدينا حاليًا أي وثائق أخرى باستثناء الرمز ، آسف. أقترح عليك الاتصال بـ aeschli لتصفح عميق عندما تريد البدء في إضافة هذا الدعم لـ php.

تضمين التغريدة

يبدو أنه لا توجد طريقة عامة للقيام بحقن اللغة حتى الآن ، ولكن تطبيق امتداد html واضح ومباشر.

أعتقد الآن أنه يصل إلى وسط جيد: يقدم VSCode حزم html / css LS للتخفيف من تنفيذ دعم اللغة المضمن. وفي الوقت نفسه ، تحافظ على المرونة بحيث يمكن لكل LS أن يتفاعل بشكل مختلف بناءً على سياقه.

حسب السياق أعني ، يمكن لملحق html تنزيل jquery.d.ts عندما يتم تضمين علامة نصية مع jquery (لن تنطبق على vue) ، أو علامة امتداد vue على كل ملف .vue كمكون للقيام بدقة الوحدة (لن تنطبق على أتش تي أم أل).

لاقتباس aeschli : https://github.com/Microsoft/vscode/issues/12354#issuecomment -257242426

هناك بعض الأخطاء التي تريد منا التوصل إلى حل عام للمحتوى المضمن ، لكنني أعتقد أننا لن ننجح في ذلك. هناك اختلافات طفيفة في كل حالة حيث نعتقد أنه من الأفضل أن يكون لديك تنفيذ محدد لكل لغة مضيفة للحصول على أفضل تجربة للمستخدم.

لكنني أوافق على عدم وجود مستند لتنفيذ دعم اللغة المضمنة. أعتقد أنني سأقوم ببعض عمليات الكتابة بمجرد الانتهاء من جميع الميزات الرئيسية لتمديد vue الخاص بي.

هذا مؤسف جدا. لا يمكننا إضافة هذه القدرة إلى LSP؟ خادم اللغة هو ما يوزع المستندات في AST ، لذلك فقط خادم اللغة لديه معرفة حول أي جزء من المستند مكتوب بلغة مختلفة ويجب تسليمه. إذن الآن يحتاج الامتداد _also_ إلى تحليل المستند؟ هذا غير ممكن في معظم الحالات لأن المحلل اللغوي يعتمد على وقت تشغيل مختلف عن Node (PHP ، Java ، ...).

لا أتخيل أن إضافة هذا إلى LSP سيكون بهذه الصعوبة ، على سبيل المثال ، يمكن للخادم إرسال إشعار لمعرف URI مع مجموعة من النطاق + وضع اللغة. من أي محرر (وليس فقط رمز VS) يمكنه استخدام خادم لغة مختلف لهذا النطاق.

egamma لم أستطع العثور على الكود في المستودع الذي

felixfbecker Erich عنى: يتم تضمين خدمات لغوية مختلفة داخل _the server_.
يمكنك على سبيل المثال رؤية ذلك في تبعيات خادم html.
بهذه الطريقة يكون الخادم محتويًا ذاتيًا ولديه تحكم كامل في تكوين سياق اللغة المضمنة (تتوفر مكتبات JavaScript في المحتوى المضمن ، إصدار اللغة (ES5 ، ES6 ..)).

هذا هو المكان الذي يبدأ فيه الحل الذي تحدده (الاتصال بين خوادم اللغة) في الوقوع في المشاكل. من المحتمل أن يؤدي إلى واجهات برمجة تطبيقات خاصة بخادم اللغة والتبعيات بين الخوادم.
نرغب في الحفاظ على مستوى الاقتران منخفضًا واستبدال امتدادات اللغة.

ومع ذلك ، فإن كل خادم لغة حر في اختيار منهجه. يمكنك استخدام رسائل LS المخصصة للقيام بذلك. هذه هي الطريقة التي طبقنا بها إصدار نوفمبر. يرسل الخادم ويطلب العميل مستندات افتراضية تحتوي فقط على محتوى اللغة المضمنة.

أقترح أن نواصل المناقشة مسألة منفصلة. ربما تقدم مشكلة جديدة مع الاقتراحات التي لديك حول كيفية تمديد LSP؟

الرنين هنا أيضًا. محبة VS Code حتى الآن ، ومع ذلك ، فإن غياب منافسة علامات HTML داخل PHP يمثل عقبة حقيقية في التعامل. أقوم بالتبديل مؤقتًا إلى وضع لغة HTML لملفات PHP ، لكن لا أعرف كيف سينجح ذلك في النهاية.

وقعت في حب VSCode حتى اكتشفت أنها تفتقر إلى هذه الميزة الأساسية إلى حد ما. عاد إلى السمو الآن.

هذه الميزة الوحيدة تمنعني من التبديل إلى VSCode.

هذه ميزة مطلوبة بشدة. +99999

هذه الميزة الأساسية الموجودة في جميع برامج التحرير الأخرى: |

الغاء المتابعة

أي تحديثات على متى يمكننا توقع هذا؟

هذا في رأيي سيكون مرتبطًا بشكل مباشر بالرقم 765.

: +1: محرر جيد جدًا ويفتقر إلى هذه الوظيفة البسيطة :(

أتخيل أنه إذا لم يتم إغلاق هذا تمامًا ، فمن المحتمل أن يتم إصلاحه يومًا ما. أنا متأكد من آمل ذلك - كلما كان ذلك أفضل.

الشيء الوحيد الذي يمنعني من الانتقال إلى VSCode من Atom هو عدم وجود هذه الميزة الحاسمة :(

فهل يمكن لأي شخص بعد ذلك اقتراح أي برامج تحرير بديلة للويب الكامل PHP / HTML / JS؟ أحب VSCode حقًا ، لكن هذا النقص في الميزة هو مجرد مانع بالنسبة لي. هل PHPStorm أم WebStorm جيد؟

بصفتك مشرف PHP IntelliSense ، يعد هذا الموضوع كابوسًا للاشتراك فيه. إذا كنت تريد إجراء 1+ للمشكلة ، فامنحها إعجابًا. كل تعليقات 1+ هذه تؤدي إلى تشويش سلسلة المحادثات ومشرفي الرسائل غير المرغوب فيها بالإشعارات دون إضافة أي قيمة إلى المناقشة. ولكل من يقول "هذه ميزة بسيطة": إنها في الواقع ليست كذلك. ولكن إذا كنت تعتقد ذلك ، فلا تتردد في إجراء العلاقات العامة.

felixfbecker أعتقد أنه يسلط الضوء على مدى إحباط الناس من هذه المشكلة. إنها ليست ميزة بسيطة ؛ أوافق على تعقيده في التنفيذ ، ولكن أكثر من ذلك ، أصبح الناس يتوقعون هذا النوع من الميزات مع محرر نصوص ، ومثلي بعد الوقوع في حب VScode ، صُدموا تمامًا من فقدها.

إنه يتعلق بعدم وجود خارطة طريق لمثل هذه القضية المهمة. بسيطة أم لا ، هذه ميزة مطلوبة لبيئة التطوير في عام 2017. الإصلاح البسيط للغاية هو السماح لنا بتمييز الأقسام بالتعليقات أو كلمة رئيسية أخرى لتحديد الذكاء الذي نريده. شيء من كتل التعليمات البرمجية لـ GitHub ، قم بلف جزء من النص في العلامات.

في حين أنه أمر مزعج بعض الشيء سماع كل الأنين ، وقد كنت واحدًا
تتناغم في هذه القضية ، من المهم الاستماع إليها.

لا يهم إذا كان هناك شيء مفتوح المصدر ، فأنت لا تزال منخرطًا فيه
تقديم منتج للمستهلكين وعندما يكون سيئًا ، سيقوم الناس بذلك
تذمر. عندما يلقي تاجر سيارتي غسيلًا مجانيًا مع خدمتي السنوية
وغسالة السيارة بالحد الأدنى للأجور تترك خطوطًا على سيارتي ، أنا ذاهب
يشتكي.

مجانًا أم لا ، هناك استثمار من جانب المستخدم لتعديل ملفات
سير العمل باستخدام محرر جديد. الناس يفعلون هذا فقط ليكتشفوا ذلك
لقد أضاعوا الوقت وقد يلتزمون أيضًا باستخدام المفكرة. الناس يستطيعون
إلغاء الاشتراك إذا كانوا لا يريدون سماع ردود الفعل السلبية ، لكنها كذلك
من المهم أن تسمع Microsoft هذه الشكاوى. بعد كل شيء ، لقد فعلوا
استثمرت بشكل كبير في إنتاج هذا المنتج وما هي
العودة لأموالهم؟ الأشخاص الذين لديهم سبب آخر يلعنهم
الشركة وعدم استخدام المنتج الذي دفعوا فيه.

بقدر طلبات السحب ، يشعر الناس بالانزعاج بالفعل من وقتهم
تم إهدار الاستثمار فقط لتبديل سير العمل والأدوات. هناك
القليل من التبصر أو عدم معرفة المكان الذي يجب أن تبدأ فيه تخصيص وقت إضافي
حتى لو شعروا برغبة في إهدار المزيد من الوقت. هذه
ليست ميزة معقدة على الورق ، لذلك إذا كانت عملية ، فربما
هناك أوجه قصور شديدة في تصميم التطبيق. استطيع فقط
التكهن ، كما يمكن لأي شخص آخر ، لأننا لا نتقاضى رواتبنا من قبل شخص ما
لتعلم قاعدة التعليمات البرمجية هذه.

يوم الأربعاء ، 29 مارس ، 2017 الساعة 9:37 صباحًا ، ستيفن إيكلز ، إخطارات github.com
كتب:

إنه يتعلق بعدم وجود خارطة طريق لمثل هذه القضية المهمة. بسيط أم لا
هذه ميزة مطلوبة لبيئة التطوير في عام 2017. إصلاح بسيط للغاية
لنسمح لنا بوضع علامة على الأقسام بالتعليقات أو كلمة رئيسية أخرى لتحديدها
أي ذكاء نريد. شيء من كتل التعليمات البرمجية لـ GitHub ، قم بلف جزء من
النص في العلامات.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
.

>

جيسي نيكلسون

الإجابة على كل هذه المشكلة بالنسبة لي كانت شبكات لـ PHP

فكرة رائعة لن أغيرها لفترة طويلة.

@ madruga88 إن Netbeans ليس حتى أفضل شيء. أعتقد أن PHPStorm هو أفضل محرر PHP حاليًا. أعتقد أن Jetbrains استحوذت على مساعدة البرمجة الذكية بالكامل من Microsoft ، وجعلتها أفضل كثيرًا.

عندما بدأت في استخدام VSCode لأول مرة ، كان IDE الوحيد الذي ذكرني به هو تلك الموجودة في IntelliJ Products نظرًا لمدى سرعة الإكمال التي ظهرت بها. Infact ، يتمتع كل من VSCode و PHPStorm بشعور مشابه جدًا خارج الصندوق من حيث ميزات التحرير العامة. الشيء الوحيد الذي يفشل فيه VSCode بشدة (وأعني صعبًا حقًا) هو PHP مع HTML المضمن (والذي كان يجب أن يعمل منذ البداية).

إذا حصل VSCode أخيرًا على HTML مضمن للعمل مع PHP ، فسيصبح بسهولة أفضل محرر نصوص (بخلاف IDE) لـ PHP.

حاليًا أنا ملتزم باستخدام Sublime Text لأنه يعرف على الأقل ما إذا كنت في HTML أو CSS أو Javascript أو PHP كلها داخل نفس الملف ويعطي الإكمالات المناسبة على الأقل.

الشيء المضحك هو النص السامي عندما يكون لديك ملف PHP يقوم بمعالجته كملف HTML عادي. ألا يمكن لـ VSCode إضافة دعم PHP إلى بناء جملة HTML أيضًا؟ لا حاجة إلى بناء جملتين منفصلتين لذلك؟

@ drone540 ، التحميل والاستخدام السيئين (حتى كتابة التعليمات البرمجية بطيئة) جعلني أداء phpstorm أختار netbeans ... التي تحتوي على جميع أدوات الفحص والتلميح ، وتشكيل وتصحيح الأخطاء بشكل مثالي خارج الصندوق.

لقد استخدمت الاستوديو البصري لمدة عقد .. ويمكنني القول أن netbeans هو الاستوديو المرئي لـ PHP بسبب الميزات الكاملة والأداء الرائع.

أتفق معك في أن الشيء الوحيد المفقود في vscode هو تنسيق بناء الجملة html + php.

ولكن حتى لو كانت PHPSTORM مجانية .. سأختار netbeans ... بسبب أدائها.

بجدية لم يتم إصلاح هذا منذ 2015؟ العودة إلى سامية

أستمر في التحقق مرة أخرى لمعرفة ما إذا تم حل هذه المشكلة ولكن لا توجد حركة. لن يتم التبديل إلى VSCode حتى يتم ذلك بغض النظر عن عدد الميزات الرائعة الأخرى التي يتمتع بها. هناك حاجة ماسة.

أستمر في التحقق مرة أخرى لمعرفة ما إذا تم حل هذه المشكلة ولكن لا توجد حركة. لن يتم التبديل إلى VSCode حتى يتم ذلك بغض النظر عن عدد الميزات الرائعة الأخرى التي يتمتع بها. هناك حاجة ماسة.

ما IDE الذي تستخدمه الآن؟

icenold لدي سير عمل أنيق للغاية مع Brackets atm. يميل إلى التمسك بذلك.

لسوء الحظ ، على الرغم من أنني أحب Visual Studio Code ، لا بد لي من التبديل إلى Sublime بسبب هذه المشكلة.

لا يزال مفتوحا؟ الكل يريد هذه الميزة!

يرجى تنفيذ هذه الميزة. لقد سمعت أشياء رائعة عن VS من الأصدقاء المطورين. كنت على وشك التحول من حالة رائعة هذا الصباح ، لكنني حقًا لا يمكنني تجاوز عدم امتلاك هذه الميزة.

يا رفاق ، دعونا نتحلى بالصبر.

markpanado تاريخ التذكرة الأصلية: "25 نوفمبر 2015"

بينما ننتظر ، هناك طريقة يمكنني من خلالها تعيين بناء جملة HTML ليكون الافتراضي لملفات PHP لأنني عادةً أكتب HTML في PHP أكثر بكثير من PHP. لا يوجد شيء واضح في لوحة إعدادات المستخدم.

شكر!

@ matt3224 انقر فوق مؤشر اللغة في الزاوية اليسرى السفلية من شريط الحالة وفي الاختيار السريع حدد "تكوين اقتران الملف"

image

egamma ممتاز! شكر

في الواقع ، تم تصميم php للعمل مع HTML واستخدام علامة html لتغطية نفسها ، تمامًا مثل javascript / css في HTML. لغات أخرى لا تعمل هكذا. لذا يجب أن يكون دعم HTML في ملفات .php ميزة مضمنة.

بينما أحب امتدادات VS Code ، فإن المشكلة المذكورة هنا (بالنظر إلى المدة التي يعود تاريخها إلى الوراء) تعد بمثابة كسر للصفقة. بالطبع يمكنك إنجاز العمل بدونه ، لكنه يبدو بطيئًا وبطيئًا بدرجة كافية بحيث يمكنك العودة إلى المفكرة والذهاب بدون أي أدوات لغوية على الإطلاق.

لا ينبغي أن يكون الأمر هكذا.

مرحبا عشاق vscode php. قد تكون مهتمًا بإصدار 0.7.0 من Intelephense .

optimised

هناك بعض المراوغات في أنه يجب أن تكون في وضع لغة HTML ولا يتوفر تلوين بناء الجملة لـ php. التنسيق (تم قطعه من gif) عبارة عن عملية من 3 خطوات: تنسيق html -> التبديل إلى php -> تنسيق php.

آمل أن تفصل بين وجهات نظرك ونماذجك بشكل جيد وأن أوجه القصور هذه ليست مشكلة كبيرة.

bmewburn مذهل! متى سيكون ذلك متاحًا؟

popcorner إنه متاح الآن

لقد قمت بحل هذه المشكلة شخصيًا بالانتقال إلى File-> Exit وتنزيل Netbeans
ث / ملحق تطوير الويب. متفوق. كود Vs هو بيئة تطوير متكاملة مناسبة للطباعة وليس كثيرًا
آخر. عندما تتوقف عن توقع المزيد منه تتوقف عن الشعور بخيبة الأمل.

يوم السبت 24 يونيو 2017 الساعة 5:02 مساءً Ben Mewburn [email protected]
كتب:

popcorner https://github.com/popcorner أصبح متاحًا الآن

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
.

>

جيسي نيكلسون

bmewburn لقد جربت Intellephense ولكن لا يزال لديها بعض المشكلات الصارخة. تمت كتابة PHP داخل سمات علامة HTML على سبيل المثال (id = "") تفقد الإكمال التلقائي. فقدان تنسيق سمة PHP.

يتطلب الأمر نفس الانتقال بين HTML و PHP وهذا يضيع الكثير من الوقت.

في ملاحظة منفصلة ، بدأت أتساءل عما إذا كان هذا الموضوع برمته مجرد قزم كبير. كيف يمكن أن يظل هذا مشكلة بعد عامين؟ كل شخص حتى يفتح مشكلة مماثلة ، هل أغلقها وأشار إلى هذه المشكلة. ومع ذلك ، لم يتم إحراز أي تقدم في كل ذلك الوقت.

انتقلت أيضًا إلى Netbeans ، واكتشفت أن PHPStorm قادر على التعامل مع php html js في ملف واحد بشكل مثالي. يعد تكامل DB عن بُعد عبر SSH أنيقًا أيضًا.

لذلك ، أجريت بعض الاختبارات باستخدام كل من Netbeans و PHPStorm.

يبدو أن Netbeans لائق جدًا في هذا الأمر.

نتبينز
انها تؤيد:

  • HTML / CSS / JS في ملف PHP خارج نطاقالعلامات
  • CSS في علامات HTML مع سمات النمط.
  • الإكمالات الإملائية (dunno إذا لم يكن مفيدًا ولكنه موجود)

فشل مع:

  • لا يبدو أن الإكمالات تدرك المحتوى الذي تكتبه ، لذلك قد لا يكون الإكمال الأول هو ما تريده.
  • لا يوجد دعم لـ HTML في سلاسل PHP. في الواقع الإكمالات هنا سيئة مثل VScode.

PHPStorm

  • حسنًا ، إنه يعمل إلى حد كبير في أي سياق ، ويعمل بشكل جيد حقًا وجميع الإكمالات دقيقة للغاية وما تريده بالفعل.

فشل طفيف:

  • مشكلة صغيرة يبدو أنها تغلق الإكمال التلقائي عندها - مفتاح معمع سمات النمط. يمكن إعادة فتحه باستخدام ctrl + space أو الكتابة المستمرة لسمة css
  • ينشط فقط في سلاسل PHP في حالة وجود علامة HTML (وهو حقًا دعم كافٍ على أي حال)

يبدو أن PHPStorm أقرب كثيرًا إلى VSCode (عندما يعمل) ، فإن Netbeans يفعل ذلك. إذا كنت تريد اختبار كيفية عمل الإكمال التلقائي حقًا. أوصي باختباره في PHPStorm. كما أن PHPStorm و VSCode يشتركان في الكثير من ميزات التحرير المماثلة خارج الصندوق. من ناحية الأداء ، أعتقد أن PHPStorm أسرع. لم تواجه أي تأخيرات حتى مع الإكمال التلقائي. لاحظ Netbeans بعض التأخير في الإكمال التلقائي.

Dunno كم من الوقت سيستغرق قبل أن يصلح VSCode هذه المشكلة بالفعل ، لكنني أعتقد أنه عندما يعمل في النهاية. ستعمل بشكل أقرب إلى كيفية عمل PHPStorm ، وستصبح على الأقل ثاني أفضل محرر لإكمال PHP التلقائي على الإطلاق.

لقد تحولت مؤخرًا إلى VSCode من SublimeText ، فقط لأواجه هذه المشكلة. إنها مشكلة مزعجة جدًا ، وهي مشكلة أساسية أيضًا. لا بد لي من العودة إلى SublimeText بسبب ذلك. حاولت ربط PHP بـ HTML ، لكن هذا يجعل جميع أكواد PHP بيضاء ، ولا يوجد تمييز في بناء الجملة على الإطلاق. رهيب!

اعتقدت أنه بعد 10 سنوات سيكون لدي أخيرًا برنامج Microsoft واحد سيتم تثبيته على جهاز الكمبيوتر الخاص بي بشكل دائم ، ولكن إذا لم يتمكنوا من حل مشكلة بسيطة لمدة عامين ، فسيتم نقلها إلى سلة المهملات مرة أخرى.

تؤدي كتابة HTML داخل مستند PHP

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

ingageco لا ، ليس كذلك. تم اقتراحه بواسطة امتداد PHP Intellisense بواسطةfelixfbecker. ولكن لا يوجد شيء يمكنه فعله ، لأن الامتدادات غير قادرة على تحديد أحرف تنشيط خاصة ، لذلك يمكنها تجنب اقتراح ذلك ، حتى الآن.

أنا فقط أريد أن أعرف شيئًا واحدًا. هل هي قيد التقدم (شيئًا فشيئًا ، خطوات نملة صغيرة) أم تم وضعها جانبًا تمامًا؟

bsienn حول ماذا؟ ملحق php intellisense قيد التقدم ، بينما لا يرغب فريق Code في توفير ذلك محليًا.

@ jens1o شكرا على الرد. إذن ، php intellisense extension هل تتحدث عن امتداد Fleix Baker؟
إذن هذا الخيط زائدة عن الحاجة؟ أنا في حيرة من أمري الآن أنا. هل يجب أن أتبع مستودع الإضافات الخاص به للتقدم؟

نعم ، أنا أتحدث عن امتداد Felix ، ونعم ، يجب عليك اتباع مستودعه حتى تكون up2date.

... بعد عامين ، لا يوجد حل لوجود الإكمال التلقائي لـ html في ملف php؟ أنا حقًا أحب VS Code ، لا أريد أن أعود إلى Sublime على هذا :-(

الآن علينا فقط التعامل معها حقًا

أو لا تعرف لأن هناك خيارات أخرى هناك. لن يجعلني Git وتصحيح الأخطاء وحدهما أتراجع في سير العمل. لا يحدث ذلك أبدًا عندما تكون هناك خيارات قد لا يتم تنفيذها بشكل جيد ولكنها مناسبة بخلاف ذلك. كان يجب حل هذه المشكلة منذ البداية.

المشكلة الرئيسية هي أننا لا نعرف من سيوفر ذلك. من الناحية المثالية ، امتداد PHP ( felixfbecker ؟). أنا أيضًا منفتح على إضافة دعم إلى خادم لغة HTML.
كل ذكاء HTML متاح أيضًا كوحدة عقدة .

aeschli كما هو موضح أعلاه وفي بعض المواضيع الأخرى ، لا أعتقد أن مطالبة كل خادم لغة بتضمين خوادم اللغة لكل لغة مضمنة ممكنة هو النهج الصحيح والمستدام. عادة ما تقوم PHP بتضمين HTML و SQL. يدمج HTML عادة CSS و JS. تقوم JS مرة أخرى بتضمين HTML بشكل شائع. سينتقل مؤلفو خادم اللغة إلى حفرة أرنب تدعم كل مجموعة متداخلة وينتهي الأمر بالمستخدم مع خوادم اللغة المثبتة عدة مرات للغة نفسها ، لكن لا يمكنه التحكم في خادم اللغة الذي يجب استخدامه لهذه اللغات المضمنة بعد الآن ، ولا الإصدار الخاص بها. كما قلت لنفسك في https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369 (منجم التركيز):

من المحتمل أن يؤدي إلى واجهات برمجة تطبيقات خاصة بخادم اللغة والتبعيات بين الخوادم.
نرغب في الحفاظ على مستوى الاقتران منخفضًا واستبدال امتدادات اللغة.

أنا أتفق بشدة مع ذلك ، ومن وجهة نظري ، يؤدي نهج التضمين إلى ذلك بالضبط ، وليس الحل الذي حددته:

  • امنح خوادم اللغة القدرة على الإعلان إلى العميل عن النطاقات التي تحتوي على اللغات المضمنة. على سبيل المثال ، يقدم خادم لغة PHP تقارير إلى VS Code عن نطاقات HTML المضمنة مثل HTML مضمن ، ويبلغ خادم لغة HTML إلى VS Code نطاقات علامات <style> أنها CSS مضمنة ، ونطاقات <script> tags كـ شبيبة مضمنة.
  • يقوم العميل (VS Code) بتنشيط خوادم اللغة المطلوبة للغات المضمنة ويرسل إليها إشعارات didOpen مع URI الظاهري ومحتويات النطاق المضمن.
  • عندما يطلب المستخدم الإكمال التلقائي داخل نطاق لغة مضمنة ، أرسل هذا الطلب إلى خادم اللغة للغة المضمنة (المواضع المتعلقة ببداية النطاق المضمن)
  • اعرض النتائج ، وحل المواضع المتعلقة ببداية النطاق المضمن حسب الحاجة.

باستخدام هذا النهج ، يتمتع المستخدم بالتحكم الكامل في خوادم اللغة التي يجب استخدامها (يمكن استبدالها ) ولا تحتاج الخوادم الفردية إلى عناء تضمين خوادم اللغة الأخرى باعتبارها تبعيات . هذا يعني تجربة متسقة عبر اللغات المضمنة مقابل لغات المستوى الأعلى ويحافظ على SoC لكل خادم لغة ليهتم فقط بلغة واحدة.

يمكن أن يبدو الإشعار تقريبًا مثل هذا:

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

مثال:

بالنظر إلى مستند PHP مثل هذا:

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

يرسل PHP langserver إلى VS Code

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

مما يؤدي إلى تلقي خادم HTML langserver textDocument/didOpen من VS Code مع URI مثل file:///foo.php#embedded1 وهذا المحتوى:

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

يسعدني مناقشة هذا في قضية منفصلة إذا كنت تريد.

aeschli أعتقد أن حقيقة أن هذا يستمر في

felixfbecker لا أحد يقول أن كل جزء من التنسيق يمكن اكتشافه. سيكون هذا جنونًا ولكن الحد الأدنى من PHP / HTML يمكن اكتشافه داخل بعضهما البعض سيكون أمرًا رائعًا. VSCode يجعل العمل مع PHP / HTML أمرًا صعبًا دون داع مقارنة مع IDE الأخرى

تضمين التغريدة

ما هي الملفات التي يجب تحريرها على وجه التحديد في خادم اللغة حتى يتم تفعيل ذلك؟ نظرت إلى خادم اللغة لـ HTML ولا أستطيع أن أرى بالضبط ما يفعله بالأسلوب والنص.

يبدو أن ما يفعله هو تخطي أي شيء ليس HTML وفقًا لهذا الملف: https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/parser/htmlScanner.ts
https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/htmlLanguageService.ts

ولكن كيف يعرف CSS و Javascript ما يجب القيام به؟ لا أرى كيف يعملون على الإطلاق وفقًا لهذا الملف.

aeschli يمكن لخادم لغة php و html أن يعمل بشكل جيد معًا نظرًا لأن العديد من ميزات vscode تسمح بتسجيل العديد من مقدمي الخدمة. في كثير من الحالات يتم استخدام أول نتيجة غير خاطئة لمقدم الخدمة أو في بعض الحالات يتم استخدام نتائج متعددة. طالما أن كل خادم يتجاهل ما لا يفهمه - خارج <?php ?> لـ php ، بالداخل لـ html - فإنه يعمل. يمكنك رؤية هذا في العمل هنا https://github.com/Microsoft/vscode / issues / 670 # issuecomment -310822851

لجعل هذا يعمل بشكل أكثر سلاسة.

  1. السماح بعدة اقترانات ملف معرف اللغة بحيث يتم تشغيل كل خادم lang.
   "files.associations": {
        "*.myphp": ["php", "html"]
    }  
  1. استخدم ملف قواعد php / html / css / js مدمج لإبراز بناء الجملة

هل هناك حلول أكثر اكتمالا لتضمين اللغة؟ المحتمل. وأنا أوافق على أنه لا ينبغي أن تكون مسؤولية أي خادم معين تضمين لغات متعددة. لا أعتقد أنه يجب أن تكون مسؤولية الخوادم هي تحديد لغة معينة يتم استخدامها ، يجب على المستخدم تحديد نطاق المستند. لكن بغض النظر ، لجعل PHP و HTML تعملان معًا ، لا أعتقد أنه من الصعب ذلك.

bmewburn إذا لم يكن الأمر بهذه الصعوبة ، فلماذا ننتظر بعد عامين لإصلاح المشكلة؟
felixfbecker يقول إنه ليس من السهل القيام بذلك. لكن هذه المشكلة لا تزال مفتوحة لذلك من الواضح أن المرء قد يعتقد أنها قد تكون أولوية ولكن كل إصدار يرى أنه تم التغاضي عنه. لذا حتى يقوم شخص ما بإجراء تغيير ، سأظل مزخرفًا وآمل أن يتم إصلاحه في النهاية. حتى ذلك الحين سأستمر في استخدام ما يصلح.

felixfbecker كما ذكرت في تعليقي ، لا توجد متطلبات هنا ، كل خادم لغة حر في اختيار الأسلوب الخاص بكيفية التعامل مع المحتوى المضمن: إعادة توجيه الطلبات إلى خوادم أخرى ، أو التعامل معها بنفسها. على سبيل المثال استخدام مكتبة / خدمة مرتبطة. كل هذا يتوقف على مدى قوة اقتران المحتوى المضمن واللغة الرئيسية وتجربة المستخدم التي يريد الخادم توفيرها. غالبًا ما يحتاج المحتوى المضمن إلى سياق من اللغة الرئيسية ويجب أن يلتزم بقواعد الإفلات. لا يمكن توصيل ذلك بسهولة إلى خادم لغة لا يرى سوى مستندًا افتراضيًا. كان هذا هو السبب في أننا ابتعدنا عن هذا النهج في خادم HTML.
ولكن إذا كان هذا أسلوبًا ممكنًا لـ PHP ، ويريد خادم لغة PHP أن يتعامل خادم HTML مع الطلبات لنطاقات معينة ، فلنفعل ذلك ، فواجهات برمجة التطبيقات الخاصة به كلها موجودة ، ويمكن إجراؤها جميعًا في العميل وبروتوكول LS المخصص .
إذا كان هناك أي شيء يمكنني مساعدته في خادم أو خدمة html ، فأعلمني بذلك.

تعد قواعد الهروب

ولكن إذا كان هذا أسلوبًا ممكنًا لـ PHP ، ويريد خادم لغة PHP أن يتعامل خادم HTML مع الطلبات لنطاقات معينة ، فلنفعل ذلك ، فواجهات برمجة التطبيقات الخاصة به كلها موجودة ، ويمكن إجراؤها جميعًا في العميل وبروتوكول LS المخصص .

يتم استخدام خادم لغة PHP من قبل العديد من العملاء الآخرين غير VS Code ، و sublime ، و neovim ، و atom-ID-php ، و Eclipse Che ، وما إلى ذلك. كيف يمكننا بناء حل يمكن توقع أن يعمل (في النهاية) في كل هذه العملاء (حيث أن هذا هو الهدف من LSP) ، مع تجنب في نفس الوقت تجميع خوادم langservers محددة بتنسيق HTML (و CSS و JS ...) بمتطلبات وقت تشغيل محددة (على سبيل المثال ، تم تثبيت PHP لمطور PHP ، ولكن ليس بالضرورة NodeJS) يمكن للمستخدم أن يقرر أي خادم لغة يستخدمه للغات المضمنة؟ سأكون متحمسًا جدًا إذا تمكنا من تحقيق ذلك بطريقة عالمية لجميع اللغات لأن ذلك سيكون حجة قوية جدًا لـ LSP.

aeschlifelixfbecker فهل هذا يعني أنكما ستحاولان حل هذه المشكلة؟ سيكون ذلك مذهلاً.

هذه ميزة يحتاجها كل مبرمج PHP تقريبًا. لذا من فضلك ، لا تتجاهلها لمجرد أننا لا نستطيع أن نجعلها بطريقة صحيحة.
حتى لو كان هناك حل غير منطقي أو قبيح ، فلا يزال من الممكن استخدامه مؤقتًا ، بدلاً من تأجيله وعدم القيام بأي شيء.

إذا كنا مقيدين لأننا نريد أن نكون متوافقين قدر الإمكان مع الإضافات المكتوبة في الأصل لمحرر أقدم آخر ، فربما يجب أن نفكر في كتابة معيار محرر مشترك جديد يتجاوز ما هو متاح لدينا اليوم. ليس الأمر كما لو أن Microsoft لم تخرج عن حدودها من قبل وعملت مع مجموعات أخرى لبناء نموذج خادم لغة قياسي يستخدم في كل من هذا والمحررين الآخرين. نحتاج فقط إلى فعل الشيء نفسه مرة أخرى فيما يتعلق بكيفية التعامل مع سيناريوهات اللغة المختلطة.

ومن الواضح أن ملحقات اللغة مختلطة مثلfelixfbecker الصورة تمديد PHP-التحسس أو بلدي تمديد vscode-جينجا هو الحصول على سدت هذه المسألة. إنه لأمر رائع إذا كنت قادرًا على القيام بذلك باللغات الأساسية ، ولكن إذا لم يتمكن المجتمع من التوسع فيه بسهولة ، فسيؤدي ذلك فقط إلى إعطاء تجربة سيئة للمحرر بأكمله بشكل عام. في هذه المرحلة ، استمرت هذه المشكلة لفترة طويلة لدرجة أن المجتمع نفسه يخبر الآخرين بالفعل بالذهاب إلى مكان آخر ، وأنا أفعل الشيء نفسه.

وافق wholroyd ، كنت أخبر الناس عن IDE هذا كما لو كان أفضل شيء منذ تقطيع الخبز والآن أقوم بتوجيه الناس بعيدًا عنه. يؤسفني دمجها في أحد مشاريعي.

aeschli هل تفكر في ما يلي في خادم لغة html؟

  1. معرف لغة إضافي للاستماع إلى phtml . سيوفر هذا معرفًا مشتركًا يمكن أن تستمع إليه ملحقات php و html وقواعد نحوية مشتركة.
  2. إذا لزم الأمر تعديلات على الماسح الضوئي لخادم لغة html لاستهلاك الكل ضمن <\?(php|=)?> ، \?> كعلامة إغلاق ذاتية واحدة.

سيعمل الموفرون التاليون من امتدادات php و html المنفصلة معًا بشكل جيد دون أي تضمين في الخادم أو اختراق العميل.

  • عدسة كود
  • عمل كود
  • إكمال
  • تعريف
  • تسليط الضوء
  • حلقة الوصل
  • رمز المستند
  • يحوم
  • التنفيذ
  • مرجع
  • التوقيع
  • رمز مساحة العمل

قد تكون هناك حاجة إلى بعض الاختراقات للحصول على التنسيق وإعادة تسمية العمل وسيحتاج المستخدمون إلى تسمية ملفات العرض بامتداد مختلف وربطها بـ phtml بدلاً من php. لكنني أعتقد أن هذه ستكون بداية جيدة بأقل جهد ومخاطرة.

bmewburn نعم ، يبدو جيدًا ، يمكنني فعل ذلك. ما هي فكرة لغة phtml؟ هل ستستخدمه لإعادة توجيه الطلبات برمجيًا؟

aeschli لا يوجد إعادة توجيه للطلبات ، الفكرة هي فقط السماح لخادم html بتسجيل موفري phtml والحصول على خادم php يسجل موفري phtml أيضًا والسماح لـ vscode بمعالجة الاستجابات المنفصلة.

جميع الموفرين المذكورين أعلاه إما لديهم ردود مدمجة أو تم استخدام أول استجابة غير خاطئة. طالما أن خوادم html و php المنفصلة لا تحاول إرجاع نتيجة لنطاق لا يفهمونه ، فيجب أن تعمل جميعها. معرف phtml هو مجرد شيء شائع لكلا خادمي اللغة ، قد يكون من الأفضل أن يكون لديك فقط اقترانات متعددة لملفات اللغة ولكن قد يكون ذلك أكثر تعقيدًا؟ بالإضافة إلى ذلك ، أفترض أن الاحتفاظ بـ php و phtml منفصلين لتجنب إرسال الطلبات إلى خادم html لملفات php فقط.

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

في الوقت الحالي ، أقوم بتسجيل امتداد php الخاص بي باستخدام محددات html و php doc ، لكني أحذر من تجاوز تهيئة لغة html في هذا الإعداد.

لا يمكن تعيين اقتران الملف إلا لمعرف لغة واحد. لكن خوادم اللغة مجانية لخدمة المستندات من أي لغة يريدونها.
الاحتمال 1: يسجل HTML أيضًا php ، ويشارك في جميع الطلبات ، لكنه لا يعرض النتائج إلا عندما يكون خارج <?php .../?>
الاحتمال 2: يقوم خادم لغة PHP فقط بالتسجيل لـ php ، وسيعيد توجيه جميع الطلبات <?php .../?> إلى كل خادم اللغة المسجل في لغة phtml .

هل يمكن تحقيق إعادة التوجيه فقط عبر commands.executeCommand ؟

bmewburn لقد خلقت # 36396. لنأخذ مناقشتنا إلى هذا البند.
نعم ، مع الأمر "commands.executeCommand" كما هو متبع هنا

أي تحديث يتعلق بـ html intellisense لـ php

مرحبًا يا رفاق ، هل هناك أي طريقة لخلط ترميز php و html؟ تمييز Html لا يعمل بشكل صحيح في مستند php :-(

835b4a9809

يبدو أنه بعد عامين تقريبًا لا يوجد حل مناسب؟

هل هذه المشكلة تحل حتى؟

كلا ، لا يزال غير ممكن. للأسف تم إجباري على العودة إلى ST3 بسبب هذه المشكلة. آمل أن يصلحوا هذا يومًا ما ويمكنني العودة.

bmewburn عمل رائع. كان هذا مطلوبًا لفترة طويلة. شكرا جزيلا. الآن لا يوجد سبب لعدم التبديل إلى VSCode

@ kilevvri1 الرجاء مشاركة الإعداد الخاص بك. بالنسبة لي لا يعمل ..

@ expo87 لقد استخدمت إعداد إعدادات PHP Intelephense الافتراضي المطلوب
"php.suggest.basic": خطأ
لا أستخدم أي إعدادات أخرى حتى الآن.

المشكله. لقد قمت للتو بإعداد بيئة VSCode الخاصة بي وأصبحت جميع المكونات الإضافية جاهزة. ثم واجهت هذا ولم أجد حلًا.
إنه لأمر مخز لأنني كنت قد بدأت حقًا في الإعجاب بـ VSCode ولكن الآن يجب أن أعود إلى Sublime Text.

DannyMexen جرب امتداد PHP Intelephense

@ kilevvri1 هذا الامتداد يتطلب تثبيت PHP. بالنسبة لي التثبيت في نظام PHP لا حاجة! لماذا أصررت على القيام بذلك؟ فقط لرؤية التركيب الطبيعي المختلط php ولغة أخرى؟ لماذا هذا الخيار لا يعمل خارج الصندوق ؟! ملف التثبيت Sublime Text 8.5 ميجا بايت - يعمل التمييز المختلط بشكل جيد. ملف تثبيت CodeLite 50 ميجا بايت - يعمل التمييز المختلط بشكل جيد. ولا حاجة لتثبيت PHP!

أتفق مع @ expo87 على أن هذه الوظيفة يجب أن تخرج من منطقة الجزاء في رمز VS. PHP Intelliphense هي بالفعل خطوة للأمام وتجعل الإكمال التلقائي ممكنًا ، ولكن لا يمكنني تمييز أي بناء جملة html على الإطلاق.

@ kilevvri1 ، مهلا ، كيف الحال؟ لقد فعلت ذلك ، لم ينجح.

ومع ذلك ، ما زلت لا أستطيع تنسيق HTML في ملف .php. أوافق أيضًا على أن هذه الوظيفة يجب أن تكون خارج الصندوق.

كل شيء آخر على ما يرام ولكن هذا الشيء الوحيد الذي يفسد تجربتي. من المهم جدًا أن يتم تنسيق الكود الخاص بي جيدًا بسبب سياسات الشركة. إليكم الأمل في المستقبل.

إنه أمر مرهق ولكن بالنسبة للملفات الكبيرة ، فأنا أقوم بإعادة تسمية الملفات إلى .html ، ثم التنسيق ثم إعادة التسمية مرة أخرى إلى .php (صدقوني ، لقد جربت كل خدعة دون نجاح).

أنا أحب VSCode وسأمنحه أسبوعًا. إذا تباطأ عملي بشكل ملحوظ ، فسأعود إلى ST 3.

بالنسبة لأولئك الذين يشتكون من تثبيت PHP لكي يعمل الامتداد ، هل ليس لديك بالفعل PHP مثبتًا على جهازك المحلي؟ هل تضيع الوقت بجدية في وضع الشفرة على خادمك قبل اختبارها ، والقيام بذلك مرارًا وتكرارًا؟

يجب تثبيت PHP محليًا ، وهذا يبدو وكأنه ملف. إذا لم يتم تشغيل تطبيقك محليًا ، فلديك بعض مشكلات التطوير التي يجب حلها.

TheColorRed بالنسبة لي لا حاجة لعرض نتيجة الكود الخاص بي محليًا وبعد ذلك تحميل الملف على الخادم. باستخدام WinSCP و ST - سرعة العمل الخفيف والسريع. وبالطبع أعرف ما أفعله :-)

TheColorRed ، لقد وجدت شخصًا ما على الإنترنت كان خاطئًا

image

بينما نود جميعًا أن يكون هذا مباشرًا من خارج الصندوق ، إلا أن الحقيقة هي أنه ليس كذلك. يرى فريق VSCode أن هذا ليس مشكلة أو أولوية منخفضة للغاية. جعلتbmewburn تمديد PHP Intelephense وأنا سعيد مقابل بديل.

@ expo87 لا داعي لشرح سير العمل الخاص بك. كلنا نفعل الأشياء بشكل مختلف قليلاً.

و لهذا
أنا أستخدم smarty ، لذا يمكنني نقل كل ملفات HTML إلى tpl ، وليس داخل كود php -_-
وجعل الكود الخاص بي أكثر نظافة

DannyMexen ليس لدي مشكلة في تنسيق HTML داخل ملفات PHP. أقوم بإيقاف تشغيل PHP Intelephense format "intelephense.formatProvider.enable": false في settings.json

كل ما أريده حقًا هو > لعدم تشغيل اقتراح الإكمال التلقائي (وجعلني أتوقف عما أفعله لرفضه). إنه أمر مزعج عندما تغلق عنصر HTML وترغب في الانتقال إلى السطر التالي ، ولكن إذا قمت "بطريق الخطأ" بالضغط على مفتاح الإدخال ، ينتهي بك الأمر مع القمامة ، فيجب عليك حذفها بدلاً من سطر جديد. لا يبدو أن أيًا من الاقتراحات الواردة أعلاه تعمل على إصلاح هذه المشكلة بالذات.

كل ما هو مطلوب لذلك هو https://github.com/Microsoft/language-server-protocol/issues/138.
jrieken هل يمكنك إبداء تعليق حول ما إذا كان الحل الوسيط الذي اقترحته في نطاقه في أي وقت قريبًا؟

قد نكون قادرين على تنفيذ مشغلات متعددة الأحرف ولكنها ليست تافهة كما تبدو. حتى ذلك الحين ، يجب أن يستخدم الامتداد الحرف الأخير في التسلسل المحتمل لأحرف المشغل.

@ kilevvri1 لا النرد. لقد تابعت مشاركاتك ولكن دون جدوى. هل يمكنني رؤية جميع إعداداتك من فضلك؟ ربما قائمة بالامتدادات التي قمت بتثبيتها إذا لم تكن هذه مشكلة.

أقرب ما حصلت عليه هو تغيير اقتران الملف والعبث بالتجميل ولكن حتى ذلك لم يساعد.
على أي حال ، شكرا للجميع. لا يبدو أن هناك إجابة مباشرة لهذا السؤال.

بعد ساعات من المحاولة ، لا يمكنني تشغيل هذا الشيء. ولا حتى البرنامج المساعد "PHP Intelephense" يعمل معي كما اقترح bmewburn . اكتب 'php' واضغط على علامة التبويب ، يتم توسيعها إلى هذا: http://s.zeshanahmed.com/a_1FC81B2B.png

هذه هي الميزة الأساسية عند استخدام HTML مع PHP. على الأقل كمطور قوالب WordPress.

قد أعود وأتحقق من VS Code مرة أخرى ، لكن في الوقت الحالي ، أعود إلى Sublime. لقد أحببت كيف بدا لي VS Code قويًا في البداية ، لكن هذه المشكلات الصغيرة (أو نقص الميزات) ستبقي العديد من مطوري PHP / WP بعيدًا عنها.

aa وأنا مع zeshanshani و DannyMexen - إذا لم أتمكن من كتابة html داخل ملفات PHP الخاصة بي ، فهذا المحرر

دانغ. لقد أحببته كثيرًا ولكن هذا الشيء (الذي يبدو بسيطًا) جعله عديم الفائدة بالنسبة لي.

ربما كنت مخطئًا بعض الشيء هنا ، فهذه المشكلة ليست حقًا ما كنت أشير إليه. على أي حال ، كما ذكرت ، أحببت كيف تبدو قوية بالنسبة لي VS Code ، لذلك قمت بالتحقق أكثر من ذلك ووجدت حلًا سهلًا جدًا للمشكلة.

كانت المشكلة التي واجهتها أنه عندما تكون خارج كتل <?php ?> وتحاول فتح كتل PHP باختصار ، فهذا لا يعمل.

لذلك قمت بإنشاء مقتطفات HTML مخصصة لتوسيع كتل PHP. لقد أنشأت هذه المقتطفات الثلاثة الآن:

  • php - للتوسيع إلى <?php ?>
  • إذا - لفتح IF الشرطي.
  • foreach - لفتح حلقة FOREACH.

إليك رمز المقتطفات إذا كان أي شخص يبحث عنها:

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

وهذه هي النتيجة:

PHP Expand in HTML

المشكلة الوحيدة هنا هي أنها توسع أيضًا المقتطفات في ملفات .html على عكس Sublime Text حيث يمكنك تحديد النطاق بحيث يتم توسيع مقتطف معين فقط إذا كان PHP: http://s.zeshanahmed.com/a_1FCD4A29.png

راجع للشغل ، هل حاول أي شخص تمكين إعداد emmet.triggerExpansionOnTab ؟ يتيح توسيع emmet HTML على دعم علامات التبويب داخل سلاسل PHP.

لإجراء هذا الإعداد ، انتقل إلى إعدادات المستخدم وأضف هذا السطر:

"emmet.triggerExpansionOnTab": true

لقطة الشاشة: http://s.zeshanahmed.com/a_1FD14980.png

ها هي النتيجة:

HTML Expand in PHP Strings

لقد وجدت حلاً عمليًا بالنسبة لي (وربما لأشخاص آخرين).

لقد قمت بتثبيت امتداد "_Auto Close Tag_" بواسطة Jun Han. ثم أضفت هذا في إعداداتي:

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

الآن أثناء التواجد في ملف .php وخارج علامات <?php ?> ، لا أحصل على $_cookie بعد أن انتهيت من كتابة علامة html ، وعندما أكتب </ يكمل تلقائيًا علامة إغلاق مناسبة.

آمل أن يساعد هذا شخصًا آخر كان يعاني من نفس المشكلة مثلي.

Chenzo هل رمز تنسيق الحل الخاص بك؟ إذا ضغطت على Ctrl + Shift + I ، فهل يتم تنسيق / وضع مسافة بادئة لكل من PHP وكود HTML وفقًا لذلك؟

تضمين التغريدة Altho ، هل هذا شيء أصلي لـ VScode؟ حتى البرنامج المساعد الخاص بي لا يبدو أنه يعرف ما يجب فعله باستخدام HTML أثناء وجوده في ملف .PHP.

Chenzo أرى. نعم نفسه هنا. هذه هي الميزة الوحيدة التي أحتاجها للعمل من أجل استخدام VSC كمحرر نصوص حصري.

تضمين التغريدة
إذا كان PHP Intelliphense لا يعمل
حاول إعادة تثبيت vscode و PHP Intelliphense
أو
حاول استخدام everedit ، هذا محرر جيد ، لكن ليس IDE ، والنوافذ فقط

شكرًا على اقتراح iscraft ولكني أقوم بتشغيل Linux

لذلك ، إذا كنت أتابع هذا بشكل صحيح ، فسيتم حل مشكلات الحظر في LSP (yay!) ، ويتم حلها أيضًا في Felix's Language Server (yay!) ، ولكن لم يتم حلها بعد في VS Code Insiders.

المشكلة الأصغر ذات الصلة مع الإكمال التلقائي الحالي <?php موجودة في VS Code Insiders ، مع المكون الإضافي Intellesense الخاص بـ Felix نشط ، لذلك أعتقد أنه ينتظر أيضًا شيئًا ما في VS Code؟

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

أعتقد أنه سيتخطى إصدار المطلعين ويجعله 1.19؟

في settings.json ، تعمل إضافة الخاصية التالية بشكل جيد.

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

حسنًا ، أعتقد أنه لم يكن صحيحًا بعد كل شيء. العودة إلى نص سامية؟

من الملفات التي جربتها. لم أعمل من أجلي.
أخبرني حساب Twitter الرسمي للتو بإثارة المشكلة وآمل
ذات يوم ، سيقوم الفريق بتنفيذه. إنه شيء غريب ألا يكون لديك
هذا من خارج منطقة الجزاء. حرفيا الشيء الوحيد الذي يمنعني من استخدام VScode
كمحرر حصري.
Ken Newman هذا هو الحل لجميع مشاريع PHP.

يوم الخميس ، 14 كانون الأول (ديسمبر) 2017 الساعة 10:31 مساءً ، Ken Newman [email protected]
كتب:

حسنًا ، أعتقد أنه لم يكن صحيحًا بعد كل شيء. العودة إلى نص سامية؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
.

-
مع تحياتي،

داني مكسن.

هل من الممكن أن تعمل HTML الآن ضمن لغة / ملفات PHP في 1.19؟ تم اختباره للتو وأرى أنه يعمل ، حتى بدون أي امتداد ...

jsieler في 1.19 و 1.20 ما زالت لا تعمل.

لا يمكن لـ VSCode 1.19 إكمال HTML تلقائيًا ، السمة في ملف .php :( !!!!
الإصدار 2 سنة ...

يعمل HTML جيدًا في ملفات PHP بهذا الامتداد. من المحتمل إغلاق هذه المشكلة.

phphtml

bmewburn أعتقد ذلك أيضًا

لا ، أنا شخصياً أنتظر الدعم دون الحاجة إلى ملحقات خارجية.

المشكلة الرئيسية تنطبق أيضًا على اللغات الأخرى.

لنكن واضحين بشأن المشكلة التي يبلغ عنها بعضنا هنا.

في الوقت الحالي ، سأتحدث عن نفسي.

المشكلة ليست فشل الإكمال التلقائي لـ HTML في ملفات PHP ، إنها تنسيق كود HTML في ملفات PHP في سياق ميزة "تنسيق المستند" الخاصة بـ VSCode. هل هذا واضح؟

إذا كان اختصار لوحة المفاتيح الافتراضي هو Ctrl + Shift + I فقد تجد أنه سيتم تنسيق رمز PHP فقط في ملف PHP يحتوي أيضًا على كود HTML. لم يتم تنسيق كود HTML على الإطلاق.

تأتي هذه الميزة خارج الصندوق في ST 3 ، على سبيل المثال.

تعمل أشياء مثل الإكمال التلقائي وعلامات الإغلاق التلقائي وما إلى ذلك بشكل جيد. ضع علامة على سطر PHP ، ثم اضغط على سطر HTML ، وحاول تنسيق المستند وسيتم وضع مسافة بادئة فقط لكود PHP بشكل صحيح.

آمل أن يوضح هذا الأمور للبعض هنا.

من هنا يواجه هذه المشكلة بجانبي؟

bmewburn يعمل فقط إذا اخترت وضع لغة HTML لملفات php ، ولكن بعد ذلك يكون لديك تصميم سيئ لجزء php من الكود :(

تضمين التغريدة

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

إنه لا يعمل على الإطلاق! إنه يستخدم أي لغة استخدمتها آخر مرة (php في هذه الحالة). يتم تجاهل الآخرين تمامًا.

SharakPL ما هو إصدار VSCode ru الذي تستخدمه؟

@ kilevvri1 لقد قمت للتو بالترقية من 1.19.1 إلى 1.19.2. لا تغيير :(
إذا اخترت PHP كلغة ملف ، فلن تعمل اقتراحات html.
إذا اخترت HTML كلغة ملف ، فسيتم تصميم جزء php كنص عادي ويظهر الإخراج العديد من الأخطاء.

SharakPL هل لديك مسار هاتفك مرتبط في إعدادات مستخدم VSCode؟ أنا لست في المنزل الآن ولكن عندما أعود سأساعد لأن intellephense ليست مثالية ولكنها تتساءل عندما تعمل بشكل جيد لذلك سأحاول المساعدة.

SharakPL قصدت مسار PHP الخاص بك. أنا أكتب على هاتفي ، آسف.

@ kilevvri1 نعم ، لدي

"php.suggest.basic": صحيح ،
"php.validate.enable": صحيح ،
"php.validate.executablePath": "c: \\ wamp64 \\ bin \ php \ php5.6.25 \ php.exe"،
"php.validate.run": "onType"،

يجب أن يكون كما في Sublime Text 3 ، حيث يتم دائمًا اقتراح كود html وفقًا لذلك أثناء وضع لغة PHP

تضمين التغريدة
حسب توصيات التمديد:
"php.suggest.basic": خطأ

جرب ذلك وأبلغني

@ kilevvri1 لا تغيير :(

أوه فهمت الآن! هناك نوع من تحسس HTML في الملفات المنسقة بلغة PHP ولكن تتم إدارتها من خلال اقتراحات EMMET: https://docs.emmet.io/cheat-sheet/
ظللت أزعجني لعدم قدرتي على إضافة رابط بسيط عن طريق كتابة <a لأنه لا يوجد مقتطف مقترح. لقد اكتشفت أن كتابة a يظهر ما أحتاجه ولكن على الرغم من أن لدي الرابط الخاص بي ، إلا أنه كان عليّ إضافة جميع السمات يدويًا حرفًا بحرف. باستخدام EMMET ، يمكنني ببساطة كتابة a#mylink.btn.btn-success للحصول على <a href="" id="mylink" class="btn btn-success"></a> . هذا رائع ، ولكن للحصول على لغة html أكثر دقة ، يجب أن أستخدم a#mylink.btn.btn-success[title="click me" target="_blank"] وهذا الجزء الجديد يجب كتابته مرة أخرى حرفًا بحرف. سيكون أسلوب SublimeText أفضل بكثير:
html_is

هل هناك أي طريقة يمكننا من خلالها إضافة .php يدويًا إلى قائمة امتدادات الملفات التي يعمل بها HTML intellisense؟ يمكن القيام بذلك في Eclipse.

graddev اقترح شخص ما
"files.associations": {"*.php": "html, php"}
في إعدادات المستخدم ، لكن هذا لا يعمل بالنسبة لي

عندما يضيفون هذه الفرصة ، من يدري؟
كان عام 2020 ، وما زالوا لم يفعلوا هذا ...

الإكمال التلقائي لـ HTML و CSS في ملف PHP ... كيف؟

تحتاج هذه الميزة المضافة. لا يعمل الإكمال التلقائي لسمات علامات HTML على الإطلاق.

يا رفاق ، أنا أستخدم حلاً مثيرًا للاشمئزاز للغاية ، لكنه (كيندا) يعمل. لديّ لوحة مفاتيح بها مفاتيح ماكرو ، لذلك صممت وحدات ماكرو لتغيير وضع اللغة. أضغط على M1 إذا كنت أريد تحسس HTML و M2 إذا كنت أريد PHP.

يرجى محاولة تمديد intelephense .

aeschli هذا لا يحل المشكلة الرئيسية. تحدث نفس المشكلة أيضًا في امتداد أحافظ عليه ، في امتداد Smarty. إنه لأمر مخيب للآمال حقًا أن امتداد PHP المميز لا يحصل على أي دعم إضافي وأنك تحاول تشتيت الانتباه عن طريق التوصية باستخدام ملحق آخر يستخدم حلًا بديلًا. لا تزال المشاكل أعمق. في الواقع ، يجب حل هذه المشكلة في السباق التالي ، ويجب ألا تفكر في أنها تتراكم وتقلل من أهمية المشكلة. ما هو شعورك تجاه اهتمامات المجتمع؟

آسف ، لكنني غاضب قليلاً.

(في الواقع ، لقد قلت نفس الشيء منذ 3 أشهر ).

لا يوجد سوى العديد من المجالات التي يمكن لفريق VSCode العمل عليها ولديها معرفة متخصصة. للأسف ، نحن لسنا مطورين PHP. لهذا السبب توصلنا إلى واجهة برمجة تطبيقات مفتوحة وسوق. يرجى دعمنا من خلال تجربة الامتدادات ومساعدة المؤلفين بتعليقات جيدة.
أتفهم أنه سيكون من الرائع أن تكون جميع الإضافات مدمجة وشحنها مع VSCode ، لكننا نريد أيضًا إبقاء التنزيل صغيرًا.

لقد عملنا مع Ben ، مؤلف ملحق intelephense لتحسين إكمال HTML في PHP. أعتقد أن النهج المتبع هو النهج الصحيح. فقط PHP باعتبارها اللغة "الرئيسية" تفهم محتوى HTML المضمن تمامًا (على سبيل المثال ، كيف يتم ترميزها ، وكيف يتم حل متغيرات PHP) من أجل توفير تجربة مستخدم جيدة. من واقع خبرتي ، فإن الحلول العامة الأخرى تحل جزءًا فقط من المشكلة وينتهي بنا الأمر بمئات المشكلات المفتوحة للحالات التي لا يمكنهم حلها.

@ jens1o أنا آسف لأنك محبط ، وأنه لا يوجد شيء مخطط له في هذا المجال في المستقبل القريب. الرجاء مساعدتنا من خلال دعم نظام الامتداد الخاص بنا أو إعطاء فرصة intelephense (وأيضًا ملحقات PHP الأخرى).

حسنًا ، أخذت نفسًا جيدًا وهدأت. لذلك ، دعنا ننتقل التركيز إلى الامتداد الخاص بي: هل من المفترض أن احتفظ بمجموعة من خوادم لغة HTML حتى يتمكن المستخدمون من إكمال HTML؟ هذه هي المشكلة الرئيسية التي أشير إليها أيضًا. أعتقد أن اللغات الأخرى هي الأكثر تضررا. تكمن المشكلة في أن Smarty هي تلك المرونة التي يمكن استخدامها بالقرب من أي لغة (مثل csv ، json) ، أيا كان. لأنه نظام قالب غير ملزم بأي قيود لغوية. لذلك أحتاج إلى الاحتفاظ بمقطع مفترق لخادم لغة csv (غير موجود) ، وخادم XML ، وخادم JSON ... أتساءل عن عدد اللغات التي تسمح بها الموارد التقنية؟

إعطاء intelephense (وأيضًا امتدادات PHP الأخرى) فرصة.

سألتزم بـ php-intellisense بواسطة

aeschli هل تعتقد أن الامتداد يمكن أن يجعل جزء html في php يحصل على نفس سلوك ملف html المستقل؟ بما في ذلك السماح لجميع البرنامج المساعد لـ html بالعمل بشكل جيد في هذا الجزء؟
نظام الامتداد مهم حقًا كما نعلم جميعًا ، ولكن ليست كل الميزات مناسبة للإضافات. ما نحتاجه في الواقع هو تحليل ملف واحد إلى لغات متعددة ومعاملتها بشكل منفصل. يجب أن تكون هذه قدرة مضمنة لمحرر الكود.

وجميع ملفات PHP هي في الواقع ملفات HTML ، بامتدادعلامة HTML. فقط المحتوى الموجود في هذه العلامة لا يجب اعتباره HTML. إنها مجرد لغة مضمنة في HTML ولا يمكنها العمل بدونها (باستثناء CLI). لذا فإن السؤال ليس حول HTML في PHP ، HTML هي الحاوية الرئيسية. وأيضًا يمكن تضمين الكثير من اللغات في HTML ، مثل css javascript vbscript svg perl java ، لا أعتقد أن أي امتداد يمكنه القيام بذلك بدون دعم رسمي.

شكراpopcorner. أردت بالفعل أن أقول الشيء نفسه ، لكنك كتبته بشكل أفضل كثيرًا. :)

لا أحد يعرف كيف تفعل ST هذا؟ حتى التفسير رفيع المستوى سيكون موضع تقدير.

دعنا نحتفظ بهذه المشكلة حول HTML intellisense في PHP. سوف أقوم بتحسين مستنداتنا بتقنيات حول كيفية تمكين ميزات اللغة للغات المضمنة. لقد أنشأت # 47288 كنقطة انطلاق لهذا.

@ jens1o قمت بإدراج بعض الأساليب في وصف هذه المشكلة
paldepind لقد أضفت أيضًا ردًا على تعليقك .

ما زلت غير مرتاح لهذا. حسنًا ، يمكن إغلاق هذه المشكلة لأنك لا تخطط لإخراجها من أجل PHP ولكن بدلاً من ذلك تتعايش مع هذا الحل؟

ما زالت المشكلة بدون حل؟

أنا أستخدم Laravel Blade .. لذلك لا توجد هنا وسوم PHP .. أتساءل كيف سيتم تطبيق هذه الميزة ..

تم حلها ، لكن لا أعرف لماذا ... ربما تقوم بتحديث php inteliphense أو استخدام المطلعين على vscode ...
test

@ victormongi ما هو php inteliphense الذي تستخدمه؟

jfnadev لا أعرف كيف يعمل هذا ولكن هذا هو إصدار vscode وإصدار intelephense:
image

victormongi لدينا نفس التكوين

jfnadev هذه امتداداتي المثبتة:
ملحقات. json:

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

شيء يتغير؟ لدي نفس هذه المشكلة..

+1 مني أيضًا.

لا أصدق أن هذه المشكلة منذ أكثر من 3 سنوات لم يتم حلها بعد ، من الأفضل الاستمرار في استخدام SublimeText3

أعتقد أن هذه ميزة أساسية. أنا فقط في انتظار ذلك للانتقال إلى VS Code

لست متأكدًا من أننا نشير جميعًا إلى نفس الشيء في هذه المرحلة TBH.

يوم الإثنين 14 مايو 2018 الساعة 1:53 مساءً ، Miqueias Penha [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 لا يعطي af عن php. أضف هذا من فضلك.

لقد قمت بتثبيت PHP Intelephense. تم حل المشكلة بالنسبة لي.

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

فقط لذلك نحن واضحون هنا.

لا يمكن تنسيق كود HTML (Ctrl + Shift + I) في ملفات PHP.

venoel هل تقول أن تثبيت PHP Intelephense يسمح لك بذلك
هذا؟

في الأربعاء 30 مايو 2018 الساعة 8:17 مساءً ، كتب venoel [email protected] :

لقد قمت بتثبيت PHP Intelephense. تم حل المشكلة بالنسبة لي.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
.

-
مع تحياتي،

داني مكسن.

تضمين التغريدة
أعني أنني أحصل على اقتراح للعلامات بشكل صحيح ويتم تطبيق المسافات البادئة جيدًا.

مايكروسوفت تستحوذ على GitHub!
لكن هذه القضية ما زالت!
هههه!

تضمين التغريدة
لاحظ جيدا. يسعدني أنه نجح معك.

بغض النظر عما أحاول ، لا يمكنني تنسيق كود HTML في ملفات PHP.

في يوم الإثنين 4 يونيو 2018 الساعة 11:00 صباحًا ، كتب venoel [email protected] :

DannyMexen https://github.com/DannyMexen .
أعني أنني أحصل على اقتراح للعلامات بشكل صحيح ويتم تطبيق المسافات البادئة جيدًا.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
.

-
مع تحياتي،

داني مكسن.

يجب أن يكون لدى VSCode بالتأكيد خيار لتعيين وضعين أو أكثر من أوضاع اللغة لأنواع معينة من الملفات للحصول على تمييز بناء الجملة والتحسس لكل منهم في نفس الوقت. لديك ذلك حتى الآن مع مثيل واحد من VSCode ، فقط في ملفات مختلفة بأوضاع لغة مختلفة. Honeslty لا أعرف لماذا يصعب تنفيذها. حتى أن شخصًا ما استخدمه في وقت سابق كحل عملي على الرغم من أنه لا يعمل ولم ينجح أبدًا ، ولكن بالتأكيد يجب:

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

نعم ، موافق تمامًاSharakPL. لم أفهم أبدًا الرد المقدم ولكن
قال بعض الأشخاص الأكثر ذكاءً مني هنا أن الأمر ليس بالأمر السهل
شيء لتنفيذه. أنا لست خبيرًا بما يكفي للقيام بذلك بنفسي ولكن بسبب هذا
تأتي الميزة من منطقة الجزاء مع ST3 على سبيل المثال ، أتوقع أن تكون ملف
الميزة الافتراضية في أي مكان آخر.

في الأربعاء 6 يونيو 2018 الساعة 9:33 مساءً ، كتب موقع SharakPL [email protected] :

يجب أن يكون لدى VSCode بالتأكيد خيار لتعيين وضعين أو أكثر من أوضاع اللغة لـ
أنواع ملفات محددة لإبراز بناء الجملة واستشعارها لجميع ملفات
لهم في نفس الوقت. لديك ذلك حتى الآن مع مثيل واحد من VSCode ،
فقط في ملفات مختلفة بأوضاع لغة مختلفة. Honeslty أنا لا
تعرف لماذا يصعب تنفيذها. حتى أن شخص ما استخدمه في وقت سابق كملف
حل عملي على الرغم من أنه لا يعمل ولم ينجح أبدًا ، ولكنه بالتأكيد
ينبغي:

"ارتباطات الملفات": {
"* .phtml": ["html"، "php"]
}

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
.

-
مع تحياتي،

داني مكسن.

موافق DannyMexen حتى المفكرة ++ لديك. إنه 2018 ولا يزال vscode لا يحتوي على هذه الميزة. هذا جنون.

_ أغلق هذه المشكلة ، لن يحدث ذلك أبدًا ._

sienn الرعاية لشرح؟ لماذا من المستحيل وجود شيء شائع في برامج تحرير النصوص البسيطة في VSCode؟

SharakPL شرح؟ اقرأ خيط DEAD البالغ من العمر 3 سنوات ، وسوف يشرح لك أنه لن يحدث.

bsienn إنه https://docs.emmet.io/ من فضلك ... إنه يعمل على أي حال ...

bsienn اشرح لي هذا إذن: لماذا يجب أن يكون الاستسلام سببًا لإغلاق هذه المشكلة؟

benyaminl emmet جيد ، لكنه يعمل فقط عندما أقوم بإنشاء إضافة بعض السمات إلى رابط ، لأنه لا يوجد حتى الآن حساسية لـ html في ملفات php

آه هذا هو التفكير الذي حاولت تجاهله هههههه .. هذا صحيح على أي حال. ما يزال
عندما أعتقد أن شخصًا ما حاول تنفيذه ، فليس من السهل تمامًا

مرسلة من My Asus Pegasus X005

Pada tanggal Kam ، 14 يونيو 2018 19.26 ، SharakPL [email protected]
مينوليس:

bsienn https://github.com/bsienn اشرح لي هذا إذن: لماذا تعطي
يجب أن يكون سببا لإغلاق هذا الموضوع؟

benyaminl https://github.com/benyaminl emmet جيد ، لكنه فقط
يعمل عندما أقوم بإنشاء علامات جديدة. إنه غير مجدي عندما أحتاج إلى تعديل العلامات مثل إضافة
بعض سمات الارتباط <# m_4226514043244462616_issuecomment-359139115> ،
لأنه لا يوجد حتى الآن حساسية لـ html في ملفات php

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
.

أحاول التحويل من استخدام Brackets.io إلى VS Code منذ أن قرأت الكثير من الأشياء الرائعة حول Intellisense. هذه الميزة الأساسية تمنعني. يخيفني أنه يعود إلى 3 سنوات ولم يتم فعل أي شيء.

هل يعرف أي شخص ما إذا كان هناك مكون إضافي أو طريقة لتسجيل ملفات .php لاستخدام .html الإكمال التلقائي؟

شكرا لمساعدتك.

أي أخبار بشأن هذه المسألة؟
أعتقد أن مجرد القيام بنفس التنفيذ المصمم للتحرير المختلط في ملفات html ، حيث يعمل html + css + js بشكل جيد.

بديل آخر هو أن تنفذ في Extension API طريقة لمشاهدة مقتطفات من الملف وتغيير اللغة المحددة.

لقد صنعت هذا لأنني كنت منزعجًا من HTML المتداخلة في PHP ، يجب أن يتم التنسيق بناءً على أي إعدادات أصلية لديك لتنسيق html.format وتنسيق المحرر على حفظ / كتابة تنسيق HTML في PHP .

كما أنني أحصل على الإكمال التلقائي الكامل ، والتحسس للقيام بذلك بهذه الطريقة.

@ RiFi2k مرحبا! أحاول تثبيت الامتداد الخاص بك ، ولكن بالنسبة لي لا يتغير شيء. في الوصف يتم تعيين أي شيء يجب القيام به لهذا الامتداد للعمل.

تضمين التغريدة لذلك سوف تحتاج إلى
html.format.enable = true
editor.formatOnSave = true
وأي إعدادات أخرى في vscode تتعلق بتنسيق html أو تنسيق المحرر الذي قد ترغب فيه ، قم بإعداد.

ثم يريد تنسيق HTML المتداخلة في ملفات .php ، لذلك تحتاج أيضًا إلى التأكد من أن لديك ملف .php مع بعض التعليمات البرمجية مثل هذا:

<?php
$hi = true;

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

عند حفظه ، يجب إصلاح ملفات HTML div

إذا كنت لا تزال تواجه مشكلات ، فيرجى إبلاغي بأنني سأساعدك في حل المشكلة.

@ RiFi2k شكرا على الردود!
أكتب هذا في إعداد المستخدم:
"html.format.enable": true, "editor.formatOnSave": true
بعد ذلك ، أقوم بإنشاء ملف php مع مثالك ، لكنه لا يعمل :-(
l213wgru87dzrr

BxDev في الواقع يبدو كما لو أنه قام بعمله على أكمل وجه

<?php
$hi = true;

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

إلى

<?php
$hi = true;

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

هذا كل ما يفعله ، آمل ألا تكون مرتبكًا بشأن الوظيفة

@ RiFi2k أوه

هذه مشكلة عمرها 3 سنوات ولن يتم حلها أبدًا حسب شعوري.
يعد هذا أمرًا أساسيًا في المحرر ويجعل عملي اليومي مزعجًا بشكل لا يصدق.

ربما سأضطر إلى العودة إلى ST3 ، لأنني أشعر أن VScode ، خاصةً مؤخرًا ، كان يتحرك للخلف بإضافة جميع أنواع الميزات الفاخرة مع تجاهل مشاكلها الأساسية.

TheDutchCoder لأنه لا أحد يريد ترميز PHP هذه الأيام ، وهو الشيء الصحيح الذي يجب فعله. :د

steebcheen يرجى متابعة الموضوع. شكر

Tyriar على أي حال هل تم تعيين أي شخص لهذا؟ أم لا؟
تحرير: أوه تم تعيينه .. حسنًا

@ RiFi2k مرحبًا وشكرًا لمحاولة المساعدة! حاولت التمديد الخاص بك لكنه لا يعمل. لقد جربت الإعدادات التي قدمتها ، ولكن لا يوجد نرد. ربما يعتمد ذلك على منسق php المستخدم؟ ما الامتداد الذي تقترح استخدامه لتمكين تنسيق php في المقام الأول؟

حسنًا ، تحديث سريع: إنه يعمل على الحفظ ، وهو أمر رائع! لا يعمل مع قائمة سياق النقر بزر الماوس الأيمن. أعتقد أنه حل وسط عادل :)

اعتقدت أن المشكلة هي فقط في تفضيلي. عندما قمت بخلط كود HTML مع php ، يكون التنسيق فوضويًا حقًا كما هو الحال عندما أضغط على علامة التبويب ، فسيكون حجم علامة التبويب 4 ثم إضافة حجم علامة تبويب جديد الآن هو 2. أود التبديل من ST3 إلى VSC ولكن هذا يمنعني من التبديل إلى VSC. أعتقد أنني يجب أن أبقى على ST3 في الوقت الحالي.

thanasisHS آسف فقط رأيت هذا.

لن يعمل الملحق الخاص بي إلا إذا تم تكوين التنسيق عند الحفظ ، ولا يتم تشغيله كمنسق PHP فعلي ، يعمل onBeforeSave.

لقد قمت بنشر التكوين الكامل الخاص بي إلى حد كبير في عدد قليل من العناصر ، ولا تتردد في ذلك ، فقد استغرق الأمر شهورًا من العمل للحصول عليه بشكل مثالي. بالنسبة للتنسيق ، أستخدم PHPCBF ولكني أستخدم هذا ، أعلم أنه يحتوي على 300 تثبيت فقط ولكنه قام بتحديث ودمج الكود من جميع امتدادات phpcbf الميتة ، إنها أموال.
https://marketplace.visualstudio.com/items؟itemName=ValeryanM.vscode-phpcbf

إليك موضوعاتي ، إذا كان أي شخص آخر مهتمًا أيضًا بتكوين. يقوم بعمل php و js و scss و css و vue - التنسيق التلقائي والفحص باستخدام eslint و stylelint و phpcbf و phpcs و prettier. إنها نبضة بمجرد الانتهاء من إعدادها بالكامل.

عالمي
https://gist.github.com/RiFi2k/d43e84788b1798252f30cac28b6f6eda

مشروع
https://gist.github.com/RiFi2k/42e294f3785bdbbc2641c4b18955e16f

جميع ملفات dotfiles و composer.json و package.json و php ruleset
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708

إغلاق هذه القضية. لقد شرحت السبب في وصف المشكلة أعلاه.

شكر. يزداد تدمير الكود كل يوم. اعتقدت أنك في Microsoft رائع مع كل هذه البرامج التي تعتمد على البرمجيات الحرة والمفتوحة المصدر ، لكنها لا تزال غير مستقلة ، ولكنها تركز على جني الأموال من خلال الإعلان عن Github و Azure.

@ jens1o أنا في حيرة من

أيضًا ، يرجى عدم نسيان مدونة قواعد السلوك الخاصة بنا ودعنا نتواصل بطريقة محترمة.

أنا فقط لا أفهم لماذا تعطي الأولوية للمهام على غيرها ، على الرغم من أن المجتمع يريدها بالتأكيد. أسمع فقط "تقليل المشكلات" و "خارج النطاق" ، و ، نعم ، "الموارد المحدودة" (وهذا هو سبب وجود المجتمع هنا ، لول). لا أحد يشكو من أن الأشياء لن تأتي قريبًا ، ولكن التركيز قليلاً على احتياجات المجتمع سيساعد بالتأكيد. لماذا نحتاج إلى إبقاء رقم المشكلة منخفضًا ، على الرغم من أنها لا تلوث أي شيء؟ في نظري ، مرت خارطة طريق Code منذ 2 تكرارات حلوة. الآن ، الأمر كله يتعلق بكسب المال (مع كسب المجتمع الكبير على مر السنين ؛ أنا أستخدمه منذ أول عرض تجريبي Build(); كل يوم) من خلال دمج المنتجات المدفوعة ومنتجات الجهات الخارجية (مثل GitHub ، المملوكة من قبل مايكروسوفت).

أنا أقول إنني لم أعد أشعر بالترحيب في هذا المجتمع بعد الآن (وأنا محبط بصراحة) ، ولا أهاجمك شخصيًا بأي شكل من الأشكال ، لذلك لا يوجد سبب للإشارة إلى COC هنا. إجراء مناقشات مفتوحة جزء من برنامج البرمجيات الحرة والمفتوحة المصدر.

لكن بالحديث عن COC ، أود أن أقتبس هذا:

افهم الخلافات

لا أفهم سبب رغبتك في إسكاتي ، فقط لأنني لا أتفق مع السياسة التي تفعلها.

أحاول أن أفهم سبب تغييرك لسياساتك ، فهل يمكنك التوضيح؟

egamma لا أعتقد أن سبب أكثر الميزات الأساسية لمحرر PHP. ربما يجب توفير معظم ميزات PHP من خلال الإضافات ، ولكن هذا لا ينبغي. يمتلك الكثير من المحررين هذه الميزة ، حتى محرر النصوص البسيط ، Notepad ++ ، لديه هذه الميزة. هذا جزء من قواعد PHP الأساسية ، ولا يمكنك كتابة PHP بدونها. يجب ألا يقول المحرر أنه يدعم PHP بدون هذه الميزة ، لأنه لا يمكنه قراءة PHP بالطريقة الصحيحة.

ولماذا يعمل Javascript في ملف HTML بشكل جيد ويعمل CSS في HTML بشكل جيد دون أي امتداد في vscode؟ يبدو أن vscode لديها هذه الميزة ولكن لا تريد إنشاء ميزة مشابهة لـ PHP ، هذا غير عادل.

هذه الميزة مهمة حقًا لمستخدمي PHP ، ولن يحاول معظم المستخدمين البحث في هذه المشكلات ولا يعرفون شيئًا عن الملحقات التي يمكن أن تساعدهم في الحصول على هذه الميزات الأساسية والضرورية. قد يقوم هؤلاء المستخدمون ببساطة بتنزيل هذا المحرر وتثبيته والعثور على هذا "الخطأ" ، ثم إلغاء تثبيته على الفور والحصول على انطباع سيء للغاية حول vscode. لن يقولوا أي شيء هنا. جميع المستخدمين الذين يرغبون في مشاركة آرائهم هنا هم الأشخاص الذين يريدون حقًا أن يكون vscode أفضل. إن الشعور بكتابة كود PHP بدون هذه الوظيفة مؤلم للغاية ، فلا يمكنك التمييز بين الكتل ، وعليك حساب علامات html يدويًا ، أو تحويل تنسيق الملف من php إلى html ، ومن html إلى php عدة مرات. جميع اللغات الأخرى التي جربتها على vscode لن يكون لها مثل هذه المشاعر السيئة بدون تثبيت أي ملحق. لن يعرف المستخدمون السبب ، فهم يهتمون فقط بتجربة المستخدم. يرجى التفكير في هذا والقيام بشيء ما ، حتى إضافة القليل من التمييز أمر جيد أيضًا:

  • تقديم بعض الدعم الأساسي لـ HTML ، أو
  • توفير امتداد رسمي بهذه الميزة وتثبيته تلقائيًا عند استخدام PHP
  • أو حتى إعادة صياغة بسيطة لجميع مستخدمي PHP وقم بتثبيت الامتداد الموصى به بنقرة واحدة ، ثم احصل على هذه الميزة وجعل vscode قادرًا على دعم PHP حقًا

متفق عليه ، popcorner صحيح ، هذا ضروري

الآن أعتقد أن جوهر هذه المشكلة برمتها يكمن في حقيقة أنه لا يمكنك تسجيل امتدادات تنسيق متعددة في نفس الوقت. هناك نوع أساسي من السباق على هذا الخطاف ولا يمكن الفوز به إلا لواحد ، بالإضافة إلى أنه لا يمكنك أن ترى كمستخدم ما الذي يحاول الجري ومتى ، وأي واحد ركض بالفعل. لذلك بالنسبة لملف PHP ، من المستغرب أن تذهب بامتداد تنسيق يقوم بعمل كود PHP عبر HTML. ولكن إذا كان بإمكانك سلسلة امتدادات التنسيق وكان هناك أمر ربط أو شيء كان قابلاً للتغيير ، فيمكنك تسجيل PHP و HTML ثم تعيين الأولوية / الترتيب لتشغيل أحدهما أولاً / أخيرًا. على سبيل المثال ، تم إصلاح هذه المشكلة برمتها إذا كان بإمكانك ...

الخطوة الأولى قم بتشغيل PHPCBF أو امتداد تنسيق PHP مشابه.
الخطوة الثانية قم بتشغيل تنسيق html js-beautify الذي يتخطى فقط PHP على أي حال ويقوم بتنفيذ HTML فقط ، وهو نفس الشيء بالضبط الذي أفعله في ملحقي ، تنسيق HTML في PHP ، لإصلاح المشكلة. ولكن لا بد لي من تشغيله onBeforeSave بدلاً من استخدام تسجيل التنسيق الافتراضي ، ولكن لا ينبغي أن يكون هذا هو الحل.

لتلخيص ذلك ، هناك حاجة ماسة إليه ، ولكن بدلاً من إصلاح / عدم إصلاح المشكلة ، لماذا لا تستكشف فكرتي أعلاه ثم ينتهي بك الأمر إلى تجربة أفضل مع كل لغة وتنسيق للمستخدمين ومطوري الإضافات.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات