تيكست مايت (محرر نصوص)
تيكست مايت هو محرر نصوص مبني على واجهة المستخدم الرسومية ومخصص للعمل على أنظمة ماك أو أس أكس وقد تم تطويره على يد آلان أودغارد، ومن مزاياه الملحوظة:
بدأ آلان أودغارد بتطوير تيكست مايت في عام 2004 وكانت نتيجة عمله هو إطلاق النسخة 1.0 من تيكست مايت في الخامس من أوكتوبر من العام 2004 وتم بعدها إطلاق النسخة 1.0.1 بتاريخ 21 أوكتوبر من نفس العام وقد تم التركيز في هذه الإطلاقة على وظائف بسيطة بحيث أنها لم تحوِ وظائف المفضلات أو شريط الأدوات ولم تحمل أي دعم لعملية نقل الملفات من خلال بروتوكول نقل الملفات بالإضافة إلى عدم توفر أي من وظائف الطباعة وعلى الرغم من كل تلك النواقص الوظيفية للمحرر إلا أنه قدم الدعم لتحرير نصوص الشيفرات المصدرية لعدد بسيط من لغات البرمجة ويعود السبب في ذلك إلى تطوير عدد من "حزم اللغات" - والتي أصبحت فيما بعد إحدى أهم خصائص المحرر تيكست مايت- ومن المثير للإهتمام أنه وفي تلك الفترة وجد عدد من المطورين اللذين أبدوا اهتمامهم بهذه النسخة المبسطة من تيكست مايت ووجدوا فيها منافساً جيداً لكسر احتكار محرر النصوص بي بي إديت الذي كان يهيمن على سوق البرمجيات الإحتكارية لمحررات النصوص على أنظمة ماك أو أس أكس.
وبتاريخ 10 ديسمبر من العام 2004 تم إطلاق النسخة الفرعية 1.0.2 والتي كانت جزءاً من سلسلة إطلاقات بيتا المخصصة للإطلاقة الرئيسية 1.1 وفي هذه المرحلة اكتسب تيكست مايت مزايا ووظائف جديدة ومنها:
وبتاريخ 6 يناير من العام 2006 أعلن آلان أودغارد عن إطلاق النسخة الرئيسية 1.5 من تيكست مايت وهي النسخة الرئيسية المستقرة منذ الإطلاقة 1.0.2، وتلقت هذه النسخة القبول والإستحسان من طرف العديد من المراجعين والمستخدمين للمحرر وبالأخص اللذين قاموا بنقد النسخة السابقة
واستمر التطوير على تيكست مايت حتى أواسط العام 2006، وفي الثامن من أغسطس من نفس العام تم منح تيكست مايت جائزة أبل للتصميم كأفضل أداة للمطورين (Apple Design Award for Best Developer Tool) وكان ذلك خلال مؤتمر آبل العالمي للمطورين الذي تم عقده في مدينة سان فرانسيسكو بولاية كاليفورنيا الأمريكية. وفي شهر شباط من العام 2006 تم نشر التوجهات المنوي العمل بها لتحديد مستقبل المحرر وكان ذلك من خلال تدوينة تم نشرها على مدونة تيكست مايت، وتشمل هذه التوجهات تحسين وظيفة مدير المشاريع، وتطوير نظام الإضافات لدعم بروتوكول نقل الملفات، بالإضافة إلى استقدام نظام تحكم بالمراجعات مثل أباتشي سبفيرجن بهدف ترتيب مراجعات الشيفرة المصدرية للمحرر، ولكن وعلى أيت حال فقد تم تطبيق هذه التغييرات بشكل بطيء ويدلل على ذلك صغر كم التغييرات الجوهرية المطبقة على المحرر خلال العام 2007 وذلك على الرغم من التركيز على تطوير خاصية "حزم اللغات".
و في شهر يونيو من العام 2009 تم الإعلان عن تطوير النسخة الرئيسية الثانية من المحرر تيكست مايت حيث تم الإنتهاء من تسعة أعشار العمل عليها وعلى الرغم من ذلك لم يتم الكشف عن مزايا هذه النسخة، وفي شهر ديسمبر من العام 2011 تم إطلاق النسخة 2.0 الرئيسية من المرحلة ألفا وفتحها أمام الجمهور وتم ذلك من خلال تدوينة على مدونة تيكست مايت، وفي شهر أوكتوبر من العام 2012 تم إطلاق النسخة النهائية من الإصدارة 2.0 ومن الجدير بالذكر أنه وفي شهر أغسطس من العام 2012 تم نشر الشيفرة المصدرية للإصدارة 2.0 على منصة غيت هاب وتم إدراج نصوص استخدام هذه الشيفرة تحت بنود رخصة جنو العمومية.
يسمح تيكست مايت للمستخدمين بالقيام بإنشاء أنماط تمييز الصيغة الخاصة بهم وذلك باستخدام نسخة معدلة من نظام أسكي الخاص بأبل وهو ما يعرف بقائمة الخصائص وذلك بهدف تعريف قواعد اللغة المستهدفة، وتسمح هذه القواعد بتعريف قوانين النطاقات المتداخلة ويتم ذلك عن طريق المكتبة البرمجية المسمى (أونيغوروما) -و هي مكتبة برمجية للتعابير النمطية تندرج بنود استخدامها تحت رخصة بي أس دي- ومن ثم يتم تعيين نطاقات محددة لهذه القواعد وهذه النطاقات يتم تحديدها عن طريق علامات مركبة بهدف تمييزها عن طريق الألوان. ولهذا السبب يتم تعيين كل منطقة في شاشة التحرير بنطاق واحد على الأقل بهدف التمييز والذي يعمل بدوره على تحديد المنطقة المراد تمييزها وكيفية تلوينها بالإضافة إلى تحديد السلوك الذي سيقوم تيكست مايت بتطبيقه على تلك المنطقة من شاشة المحرر، فعلى سبيل المثال العنوان المخصص لأحد الروابط في مقطع "الروابط الخارجية" يمكن تعيينه بالنطاق التالي:
حيث يخبرنا هذا النطاق أننا نبحث عن عنوان رابط (link title) متداخل مع رابط آخر (link) والذي بدوره يتداخل مع قائمة (list) والتي بدورها تتداخل مع وثيقة ميدياويكي (MediaWiki document).
تستطيع سمات تيكست مايت وضع علامات على أي نطاق وذلك على أي مستوى من مستويات الضبط، فعلى سبيل المثال تستطيع إحدى السمات القيام بتلوين جميع الثوابت (codice_1) -و الثابت هو قيمة محفوظة في الذاكرة الرئيسية للنظام ولا تتغير هذه القيمة أثناء تنفيذ البرنامج ويمكن أن تحمل أي نوع من أنواع البيانات- وذلك بشكل مماثل لجميع الثوابت المكتوبة على وثيقة التحرير، بينما تقوم سمة أخرى بتلوين الثوابت العددية (codice_2) بلون مختلف عن ما قامت به السمة السابقة (لاحظ هنا أن السمة الأولى تصرفت بجميع أنواع الثوابت -بما فيها العددية- وأن السمة الثانية قامت بتمييز الثوابت العددية فقط ومن هنا يأتي معنى النطاقات المتداخلة).
يدعم تيكست مايت أوامر المستخدم المعرفة (user-defined commands) وأوامر المستخدم المعدلة (user-editable commands) والتي يتم تنفيذها عن طريق مفسر سطر الأوامر باش أو المفسر الذي يتم تحديده عن طريق علامة شي بانغ (Shebang أو ما يعرف بعلامة "!#")، ويمكن للمستخدمين القيام بإرسال أنواع عديدة من المدخلات لهذه الأوامر عبر المحرر تيكست مايت وتشمل أنواع هذه المدخلات (الملف الذي يتم تحريره، والنصوص المحددة "التي يتم تحديدها بواسطة فأرة"، والكلمة الحالية) وغيرها من أنواع المدخلات بالإضافة إلى متغيرات البيئة التنفيذية، وأما بالنسبة إلى المخرجات فيتم التعامل معها وعلاجها بشكل مماثل وبطرق متعددة، وكمثال بسيط لتطبيق خاصية الأوامر في تيكست مايت يتم تحديد إحدى الكلمات كمدخلة للأمر المراد تنفيذه ويقوم الأمر بمعالجة هذه الكلمة ومن ثم يقوم باستبدال الكلمة المدخلة بمخرجات عملية التنفيذ ووضعها في الملف الذي يتم تحريره في مكان الكلمة المدخلة، وهناك أوامر أخرى تقوم باظهار تلميح وظيفي، ويمكن أيضاً استخدام مخرجات الأوامر لإنشاء ملف جديد أو اظهاره على شكل صفحة ويب باستخدام مفسر لغة أتش تي أم أل الخاص بتيكست مايت والمضمن معه.
هناك العديد من حزم لغات البرمجة مثل باش وبي أتش بي وروبي التي تحوي أوامر لترجمة الشيفرة المصدرية وتنفيذ برامجها وذلك من خلال نفس ملف التحرير وفي حالات عديدة يتم إظهار نتيجة تنفيذ هذه البرامج على نافذة مضمنة بتيكست مايت.
بأبسط أشكالها تعتبر المقاطع النصية مجموعة من الكلمات التي يتم ادخالها إلى الملف المحرر في مكان تواجد المؤشر ولكنها قد تبلغ درجة أكبر من التعقيد، ومن أنواع المقاطع النصية في تيكست مايت ما يلي:
يمكن حصر قواعد اللغات والمقاطع النصية والماكروات والأوامر والقوالب في وظيفة واحدة لحزمة لغة بحيث يمكن تنفيذ أي أمر أو مقطع نصي أو ماكرو من خلال اختصارات لوحة المفاتيح فعلى سبيل المثال يمكن للمستخدم القيام بكتابة كلمة محددة ومن ثم الضغط على زر لتنفيذ الأوامر أو الماكروات أو تضمين المقاطع النصية المحددة في الحزمة.
يتضمن تيكست مايت وبشكل إفتراضي 36 حزمة ولكن يوجد أكثر من 120 حزمة إضافية في مستودع سبفيرجن المخصص لتيكست مايت وتشمل العديد من الوظائف المعروفة.
يستطيع المستخدمون القيام بفتح أكثر من ملف وأكثر من مجلد باستخدام نافذة نظام مدير المشاريع والذي يقدم بدوره خاصية فتح الملفات باستخدام عملية السحب والافلات من قائمة العرض التي تعرض أسماء الملفات والمجلدات والمتواجدة على جانب نافذة المحرر ويتم فتح هذه الملفات والمجلدات باستخدام خاصية نوافذ الألسن وعرضها على المقطع العلوي من نافذة المحرر، ويستطيع المستخدمون أيضاً القيام بعمليات البحث (و البحث والاستبدال) على مستوى المشاريع بالاضافة إلى قابلية تنفيذ الأوامر على مستوى الملفات أو المجلدات التي يتم سردها على قائمة العرض الجانبية.
يحوي تيكست مايت العديد من المزايا والوظائف الأخرى والتي يتم إيجادها عادةً في معظم محررات النصوص الحديثة ومنها:
كغيره من محررات النصوص يحوي تيكست مايت أيضاً بعض المحدوديات ومنها:
يوجد لدى تيكست مايت مجتمع مكون من المطورين والمستخدمين اللذين يقومون بالمساهمة في حزم اللغات المفتوحة المصدر ويقومون برفع هذه المساهمات على مستودع سبفيرجن المخصص لتيكست مايت. ، ويوجد أيضاً لدى مجتمع تيكست مايت موقع ويكي مخصص للتلميحات والنصائح والإقتراحات والروابط للمصادر الخارجية، كما ويوجد كذلك نظام للتبليغ عن العلل والأخطاء البرمجية باللإضافة إلى وجود قناة آي آر سي مخصصة للنقاش والتحاور وتقديم المساعدة حول تيكست مايت (و عادةً ما تكون قناة textmate# فعالة).
ويقوم مستخدمو تيكست مايت بكتابة النصوص البرمجية باستخدام العديد من لغات البرمجة ومن البديهي أن يوجد لكل لغة برمجة حزمة خاصة بها، ومن المثير للاهتمام أن معظم حزم اللغات يتم دعمها بواسطة مستخدمين رئيسيين فعلى سبيل المثال يقوم دافيد هاينماير هانسون (مبتكر إطار روبي أون ريلز) بدعم الحزمة الخاصة بلغة روبي.