Js-beautify: HTML: اقتراح لتنظيم إعدادات التفاف السمات

تم إنشاؤها على ٣١ مايو ٢٠١٨  ·  9تعليقات  ·  مصدر: beautify-web/js-beautify

مستخرج من # 1297.

ما لدينا

wrap_attributes :

  • auto - يتيح التفاف السمات.
  • force - السمة الأولى تبقى ، والبعض الآخر ملفوف بـ "wrap_attributes_indent_size"
  • force-aligned - تبقى السمة الأولى ، والبعض الآخر ملفوف ومحاذاة للسمة الأولى
  • force-expand-multiline - إذا كان هناك أكثر من سمة واحدة ، يتم تغليف جميع السمات بغض النظر عن ما يتم وضعه بمسافة بادئة بـ "wrap_attributes_indent_size". AND: إغلاق العلامة الافتتاحية موجود أيضًا في السطر الجديد. هذا الوضع معطل حاليًا ، ينتج ملفات ذات مسافة بادئة خاطئة :(

هناك أيضًا جهود متعددة لتوفير بعض الأوضاع الإضافية التي تتعامل مع التفاف عناصر html الطويلة بسمات متعددة: # 1285 و # 1262.

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

لذلك ، دعنا نفصل الالتفاف والمحاذاة وعدد السمات في كل سطر ، إلخ.

عرض

wrap_attributes_mode :

  • none - نحن فقط لا نلف السمات ، الفترة. (ضروري؟)
  • auto - التفاف السمة العادي ، يجب أن يكون هذا هو الافتراضي ، على الأرجح ، باعتباره الحالة الأكثر منطقية. عندما يكون الخط كبيرًا جدًا ، نلتف. إذا كان من الممكن احتواء جميع السمات في سطر واحد ، فإنها تظل في سطر واحد ، بدون التفاف. (تقصير.)
  • force - نحن نلتف بقوة إذا كان هناك أكثر من سمة واحدة موجودة ، وإلا فهي تلقائية.

عندما يكون الالتفاف قيد التشغيل ، يتم تشغيل الخصائص التالية. إذا لم يحدث التفاف ، فلن يلعبوا أي دور.

wrapped_attributes_per_line :

  • multiple - التفاف ناعم ، افتراضي . احتواء العديد من Attrs لكل سطر كما هو مسموح به.
  • single - السمة الأولى تبقى في السطر الأول ، والبعض الآخر في سطور منفصلة.
  • single-all - جميع السمات ، بما في ذلك الأولى ، موضوعة في أسطر منفصلة. لذلك ، كل سمة موجودة في سطر منفصل ، ولا يحتوي سطر العنصر / العلامة على أي سمات متبقية.

wrapped_attributes_indent :

  1. auto - يستخدم wrap_attributes_indent_size افتراضيًا .
  2. محاذاة - تبدأ جميع سطور السمات بمحاذاة السمة الأولى. إذا كانت السمة الأولى في سطر جديد (وضع "الكل" من wrapped_attributes_per_line ) ، فإننا نستخدم wrap_attributes_indent_size لحساب المسافة البادئة.

wrapped_attributes_end :

  • auto - افتراضي
  • multiline - الإغلاق > موجود في السطر المنفصل.

أمثلة

  1. الحالة الافتراضية: نحن نلتف برفق ونحاول ملاءمة أكبر عدد ممكن من السمات لكل سطر ، ولكن في حدود طول السطر.
wrap_attributes_mode = auto
wrapped_attributes_per_line = multiple
wrapped_attributes_indent = auto
wrapped_attributes_end = auto
  1. # 1285 القضية. تشبه إلى حد كبير الحالة الافتراضية ، لكننا نقوم بمحاذاة السمات المغلفة لتكون على نفس مستوى المسافة البادئة مثل السمة الأولى.
wrap_attributes_mode = auto
wrapped_attributes_per_line = multiple
wrapped_attributes_indent = aligned
wrapped_attributes_end = auto
  1. # 1262 القضية. عندما نلتف ، نريد سمة واحدة في كل سطر ، تتماشى مع السطر الأول.
wrap_attributes_mode = auto
wrapped_attributes_per_line = single
wrapped_attributes_indent = aligned
wrapped_attributes_end = auto
  1. الحالة الحالية force-expand-multiline : فرض الالتفاف إذا كان هناك أكثر من سمة واحدة ، مع سمة واحدة في كل سطر ، وبنهاية متعددة الأسطر ، ووضع الإغلاق > على السطر الجديد.
wrap_attributes_mode = force
wrapped_attributes_per_line = single-all
wrapped_attributes_indent = auto
wrapped_attributes_end = multiline
javascript discussion enhancement

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

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

ال 9 كومينتر

vvs
رائع شكرا!

يبدو أن هناك تداخلًا بين force و multiple ، ولكن من المحتمل أن يكون هناك بعض التعارض مع تعقيد الإعدادات

كما قلت ، أحب أسماء القيم التي اخترتها بشكل عام. أعتقد أنني سأغير wrapped_attributes_end إلى expand-multiline - لأنه يتوسع فقط عندما يكون العنصر عنصرًا متعدد الأسطر.

يبدو أنك تعارض استخدام قائمة قيم مفصولة بفواصل بالطريقة التي يعمل بها brace-style ( [collapse|expand|end-expand|none][,preserve-inline] ). أسأل فقط لأنني لا أحب وجود المزيد من حقول الخيارات عندما يمكن لشخص واحد أن يعمل.

مرحباbitwiseman. نعم ، هناك نوع من التداخل بين force و multiple . بشكل أساسي ، فإن "فرض" السمات المتعددة يساوي auto :)

أنا أيضًا موافق مع expand-multiline .

يبدو أنك ستعارض استخدام قيمة مفصولة بفاصلة

أنا شخصياً أستطيع العيش مع أي شيء ، حتى لو كانت الإعدادات عبارة عن قيم مشفرة لـ BASE64! الشيء الرئيسي هو أنني قادر على ضبط سلوك التنسيق لاحتياجاتي / فريقي (والتي تتماشى حاليًا مع # 1262).

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

vvs
نقطة جيدة حول وجود إعدادات منفصلة للسلوكيات المتميزة.

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

أرغب في استخدام "محاذاة متعددة" في حالة استخدام <= 3 سمات ، وإلا "محاذاة بقوة". هل هذا ممكن في الوقت الراهن؟

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

انها غير موجودة حاليا.

ما تطلبه مشابه لـ # 1262 ، وهو في الأساس "السماح للسمات بسطر واحد ما لم تكن ستلتف ، وفي هذه الحالة محاذاة".
يبدو أن Adondriel طلب شيئًا مثل ما تريده (بناءً على عدد السمات) في هذه المشكلة أيضًا.

أي تقدم؟

أي خطط لإعادة النظر في هذا؟

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

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