هل يمكنك تضمين ملخص موجز للمشكلة التي تواجهها/لماذا سيكون تفضيل المستخدم هذا مفيدًا هنا في المنشور الأصلي أيضًا. إنه يجعل طلب الميزة أكثر شمولاً (ويوفر على الأشخاص عناء البحث عن المعلومات في الروابط )
بصفتي فرنسيًا، غالبًا ما أكتب <space> : <return>. ( <return> يريد إنشاء سطر جديد، وليس التحقق من صحة الرموز التعبيرية المقترحة.)
غالبًا ما أكتب أيضًا الوجوه المبتسمة، لا سيما " :-) "، ولا يزال في نهاية السطر. يتم تحويله إلى " :slight_smile: ". لا أحب ذلك، لأنه حتى لو أعطى نفس النتيجة، فإنه يجعل من الصعب مراجعة الرسالة قبل نشرها.
أنا مستخدم لـ discourse.gnome.org، ويقولون إنهم لا يستطيعون مساعدتي لأنها إعداد على مستوى الموقع. لهذا السبب أود منك جعله إعدادًا على مستوى المستخدم، من فضلك.
بديل: يمكنك إيجاد طريقة أخرى للتحقق من صحة الرموز التعبيرية المقترحة في ميزة الإكمال التلقائي (ربما <tab>؟)، بحيث يتم اعتبار <return> بمثابة متابعة الكتابة، وتجاهل الاقتراحات، مثل <space>.
عذرًا، هل هذا يعني أنه يجب عليّ تعديل المنشور الأول بدلاً من وضعه أسفله؟
بصفتي مطورًا، أكره ترك مسافات ضائعة حيث لا تكون مفيدة. أجد أن هذا عمل قذر.
لذلك لدي عادة كتابة مسافة : إدخال، ولن أود كثيرًا اكتساب رد الفعل مسافة : مسافة إدخال.
مسافة : مسافة مسافة الرجوع إدخال لا تعمل أيضًا، لأنها تفتح مربع الإكمال التلقائي مرة أخرى.
النقطة هي: لدي عادة كتابة مسافة : إدخال في أي محرر نصوص عادي، وأود بشدة أن يعطي نفس النتيجة في Discourse. أي، سيتم اعتبار كل هذه المفاتيح كتدفق نصي / تدفق نصي (وليس فقط مسافة)، لذلك يجب تجاهل اقتراحات الإكمال التلقائي.
لماذا لا تستخدم إدخال بدلاً من إدخال (الموجود على الجزء الرقمي من لوحة المفاتيح)؟
نظرًا لأنه يستخدم سهم لأعلى / سهم لأسفل لاختيار الرمز التعبيري، يمكنه أيضًا استخدام سهم لليمين للتحقق من صحته، نظرًا لأن سهم لليسارسهم لليمين لا يفتح مربع الإكمال التلقائي مرة أخرى.
هممم، عذرًا، أنا لا أتبع حجتك. للتوضيح فقط - لقد قدمت لك حلاً بسيطًا، لكنك تقول إنه ليس جيدًا بما يكفي لأن لديك عادة استخدام :return؛ لذلك تشعر أنه يجب علينا تقديم وظيفة جديدة لتفضيلات المستخدم لهذا؟ على أي حال، لا أعتقد أنني رأيت طلب الميزة هذا بالتحديد بعد.
ولن أود اكتساب رد فعل :<space><return> وكتابته في أي محرر نصوص عادي، لأنه سيجعل العمل قذرًا، خاصة في التعليمات البرمجية والوثائق الرسمية.
ما هي الوظيفة الجديدة؟
ما فهمته هو: يوجد بالفعل إعداد على مستوى الموقع، وأقترح جعل هذا الإعداد على مستوى المستخدم.
لقد اكتشفت للتو أن GitLab لديها أيضًا ميزة الإكمال التلقائي، مشابهة لميزة Discourse، باستثناء أنه لا يوجد رمز تعبيري محدد عند فتح مربع الإكمال التلقائي، لذلك يتعين على المستخدم كتابة <arrow-down> لاختيار الرمز التعبيري المقترح الأول.
بعد ذلك، يُعتبر :<return> تدفقًا للكتابة / تدفقًا للنص، ويتم تجاهل اقتراحات الإكمال التلقائي.
يفتح مربع الإكمال التلقائي حتى عند كتابة : بعد الأحرف، ولا أعتقد أن هذا يزعج أي شخص.
يتعين على المستخدمين كتابة <arrow-down><return> بدلاً من <return> للحصول على الرمز التعبيري المقترح الأول.
هل يريد المستخدمون لديك عرض Discourse لـ :-) بدلاً من :-)؟
في هذه الحالة، إذا كنت مسؤولاً، يمكنك بالفعل تعطيل الرموز التعبيرية للخادم بأكمله (تعطيل على مستوى الموقع).
إذا كنت تريد تعطيلًا على مستوى المستخدم، فهل يمكنك تحديد ما إذا كنت تريد لمستخدم معين تعطيل الرموز التعبيرية لجميع المشاركات التي يقرأها، أو فقط لمشاركاته الخاصة؟
في الحالة الأولى، كن حذرًا، لا أعتقد أن Discourse سيترجم :slight_smile: إلى :-) عندما كتبه مستخدم لم يعطل الرموز التعبيرية.
بالنسبة لي، طلبت تعطيل الإكمال التلقائي للرموز التعبيرية فقط، لأنها تزعجني فقط أثناء كتابة المشاركات، ورؤية :slight_smile: بدلاً من :-). لكنها لا تزعجني لرؤية سواء في لوحة المعاينة أو أثناء قراءة المشاركات.
لدي مستخدم لا يمانع في رؤية الرموز التعبيرية ولكنه يريد إظهارها بنفسه على شكل :-).\n\nلذلك يريد من الآخرين عدم رؤية الرموز التعبيرية من مشاركاته.\n\nطلب غريب بعض الشيء. سأخبرهم عن هذه العلامات المائلة العكسية على الرغم من أنها قد تؤدي الغرض!
إذا أراد شخص ما منطقًا لتعطيل مُوصي الرموز التعبيرية في مكون سمة، فإن شيئًا مثل ما يلي سيعمل. (لقد بدأت إثبات مفهوم، لكن هذا لا يزال يسمح بعرض الرموز التعبيرية، فقط لا يُوصى بها في المُؤلِّف).
ستحتاج إلى ترميز الشروط التي يتم تجاوز الموصي بموجبها. إنه يعطل الموصي فقط، على الرغم من ذلك. لا تزال الرموز التعبيرية تُعرض إذا كتبوا شيئًا مثل :persevering_face:
import { withPluginApi } from "discourse/lib/plugin-api";
export default {
name: "disable-emoji-autocomplete-non-staff",
initialize() {
withPluginApi("0.8.12", (api) => {
api.modifyClass("component:d-editor", {
_applyEmojiAutocomplete() {
let isGroupMember = ...logic to get members...
});
// Only apply emoji autocomplete for staff
if (!isGroupMember) {
// or maybe you want to make it not suggest emoji for members of the hate_emoji group
return; // disables autocompletion for non-staff
}
// Fallback to the original behavior otherwise
this._super(...arguments);
},
});
});
},
};
إذا كنت تريد مكون سمة يعمل بشكل صحيح يعطل/يسمح بمُوصي الرموز التعبيرية حسب المجموعة (أو ربما شيء آخر؟) ولديك ميزانية، فلا تتردد في الاتصال بي.