تيكست مات
لقطة شاشة لبرنامج Textmate | |
| المطور(ون) | آلان أودجارد (ماكرومايتس)، سياران والش |
|---|---|
| الإصدار الأولي | 5 أكتوبر 2004 |
| الإصدار النهائي | 2.0.23 [1]
/ 12 أكتوبر 2021 |
| مستودع |
|
| نظام التشغيل | ماك |
| يكتب | محرر الكود المصدر |
| رخصة |
|
| موقع إلكتروني | ماكروماتيس.كوم |
TextMate هو محرر نصوص مجاني ومفتوح المصدر متعدد الأغراض لنظام التشغيل macOS تم إنشاؤه بواسطة Allan Odgaard. يتميز TextMate بتخصيصات إعلانية وعلامات تبويب للمستندات المفتوحة وماكرو قابل للتسجيل وأقسام قابلة للطي ومقتطفات وتكامل shell ونظام حزمة قابل للتوسيع.
تاريخ
تم إصدار TextMate 1.0 في 5 أكتوبر 2004، بعد 5 أشهر من التطوير، تلاه الإصدار 1.0.1 في 21 أكتوبر 2004. [2] [3] [4] ركز الإصدار على تنفيذ مجموعة صغيرة من الميزات بشكل جيد ، ولم يكن به نافذة تفضيلات أو شريط أدوات، ولم يدمج بروتوكول نقل الملفات (FTP) ، ولم يكن به خيارات للطباعة. [5] [6] في البداية، تم دعم عدد قليل فقط من لغات البرمجة، حيث تم إنشاء عدد قليل فقط من "حزم اللغات". ومع ذلك، وجد بعض المطورين أن هذا الإصدار المبكر وغير المكتمل من TextMate يمثل تغييرًا مرحبًا به في سوق كان يُعتبر راكدًا بسبب هيمنة BBEdit التي استمرت لعقد من الزمان . [7]
صدر الإصدار 1.0.2 من TextMate في 10 ديسمبر 2004. وفي سلسلة الإصدارات التجريبية من TextMate 1.1 ، اكتسب TextMate ميزات: نافذة تفضيلات مع واجهة مستخدم رسومية لإنشاء وتحرير السمات؛ وشريط حالة بقائمة رموز؛ وقوائم لاختيار اللغة وإعدادات علامات التبويب، و"محرر حزمة" لتحرير التخصيصات الخاصة باللغة. في 6 يناير 2006، أصدر Odgaard الإصدار 1.5 من TextMate، وهو أول "إصدار مستقر" منذ الإصدار 1.0.2. [8] كانت المراجعات إيجابية، على عكس الإصدارات السابقة التي تعرضت للانتقاد. [9]
استمر تطوير TextMate حتى منتصف عام 2006. في 8 أغسطس 2006، حصل TextMate على جائزة Apple Design Award لأفضل أداة للمطورين، في مؤتمر Apple للمطورين العالميين في سان فرانسيسكو ، كاليفورنيا . [10] في فبراير 2006، أعربت مدونة TextMate عن نواياها للاتجاهات المستقبلية، بما في ذلك تحسين إدارة المشاريع، مع نظام إضافي لدعم أنظمة الملفات البعيدة مثل FTP، وأنظمة التحكم في المراجعة مثل Subversion . [11] طوال عام 2007، تغير التطبيق الأساسي بشكل طفيف فقط، على الرغم من استمرار "حزم اللغة" الخاصة به في التقدم.
في يونيو 2009، تم الإعلان عن اكتمال إصدار TextMate 2 بنسبة 90 بالمائة تقريبًا، ولكن مع قائمة ميزات نهائية غير معلنة. [12] تم توفير إصدار ألفا عام للتنزيل على مدونة TextMate في ديسمبر 2011، تلا ذلك إصدار مرشح في نهاية عام 2016. في سبتمبر 2019، تم إصدار الإصدار النهائي. [13]
في أغسطس 2012، تم نشر الكود المصدري لـ TextMate 2 على GitHub بموجب شروط GPL-3.0 أو أحدث ، [14] في محاولة من المطور لمواجهة القيود التي فرضتها Apple على البرامج الموزعة من خلال متجر تطبيقات Mac . [15] صرح Odgaard أنه يفضل تلقي التصحيحات كحق عام لأن هذا يحافظ على قدرته على إصدار إصدار مستقبلي بموجب ترخيص أكثر تساهلاً، أو جعل الإصدار متاحًا على متجر تطبيقات Mac. صرح Odgaard أيضًا أنه لديه صديق يستخدم بعض أطر عمل TextMate في مشروع مغلق المصدر، ولا يمكنهم دمج التصحيحات الصادرة بموجب GPL. [16] [17]
في أكتوبر 2021، تم إجراء أحدث/آخر التزام على GitHub، على الرغم من عدم الإعلان عن التخلي رسميًا عن المشروع وأن كود المصدر الخاص به لا يزال متاحًا للجمهور. [18]
سمات
قواعد اللغة
تسمح قواعد اللغة TextMate للمستخدمين بإنشاء أوضاع تمييز بناء الجملة المعقدة الخاصة بهم عن طريق تعيين اسم فريد لكل كلمة رئيسية في المستند. [19] تستخدم نسخة معدلة من تنسيق قائمة خصائص Apple ASCII لتحديد قواعد اللغة. [ بحاجة لمصدر ] تسمح قواعد اللغة هذه بتحديد قواعد التعشيش باستخدام مكتبة التعبيرات العادية Oniguruma ، ثم تعيين "نطاقات" محددة: تسميات مركبة تحددها للتلوين.
يتم تعيين نطاق واحد أو أكثر لكل نقطة من المستند، والتي تحدد مكان النقطة في المستند، وكيفية تلوينها، وما يجب أن يكون عليه سلوك TextMate عند تلك النقطة. على سبيل المثال، يحتوي عنوان أحد الروابط في قسم "الروابط الخارجية" على النطاق التالي:
نص.html.mediawiki
قائمة العلامات.mediawiki
meta.link.inline.external.mediawiki
سلسلة.أخرى.رابط.عنوان.وسائط خارجية
يخبرنا هذا النطاق بأننا ننظر إلى عنوان رابط داخل رابط داخل قائمة داخل مستند MediaWiki.
يمكن لموضوعات TextMate وضع علامات على أي نطاق، بمستويات متفاوتة من الدقة. على سبيل المثال، قد يقرر أحد الموضوعات تلوين كل ثابت ( constant.*) بنفس الطريقة، بينما قد يقرر موضوع آخر أن الثوابت الرقمية ( constant.numeric.*) يجب أن تكون ملونة بشكل مختلف عن الأحرف المفلتة ( constant.character.escape.*). يسمح بناء الجملة الهرمي للنطاق لمؤلفي اللغة ومؤلفي الموضوع بمستويات مختلفة من التغطية، بحيث يمكن لكل منهم اختيار البساطة أو الشمولية، حسب الرغبة.
توفر وثائق TextMate قائمة بالتسمية المستخدمة بشكل شائع عبر لغات البرمجة المختلفة للتوافق بين الحزم. [19]
الأوامر
يدعم TextMate الأوامر التي يحددها المستخدم والتي يمكن تعديلها والتي يتم تفسيرها بواسطة bash أو المترجم المحدد باستخدام shebang . يمكن إرسال العديد من أنواع الإدخالات بواسطة TextMate (المستند الحالي، النص المحدد، الكلمة الحالية، إلخ) بالإضافة إلى متغيرات البيئة ويمكن معالجة مخرجاتها بشكل مماثل بواسطة TextMate بعدة طرق. في أبسط صوره، قد يتلقى الأمر النص المحدد ويحوله ويعيد إدخاله في المستند ليحل محل التحديد. قد تعرض أوامر أخرى ببساطة تلميحًا للأداة ، أو تنشئ مستندًا جديدًا لمخرجاتها، أو تعرضه كصفحة ويب باستخدام مُقدم HTML المدمج في TextMate.
تحتوي العديد من الحزم الخاصة بلغات معينة مثل bash أو PHP أو Ruby على أوامر لتجميع و/أو تشغيل المستند أو المشروع الحالي. في العديد من الحالات، سيتم عرض STDOUT وSTDERR لعملية الكود في نافذة في TextMate.
مقتطفات
في أبسط صورها، تعد " مقتطفات " TextMate عبارة عن قطع من النص يمكن إدراجها في المستند في الموقع الحالي من خلال ضغطة مفتاح حساسة للسياق أو إكمال علامة التبويب. تعد المقتطفات "ذكية"، وتدعم التحديث الديناميكي "لعلامات التبويب"، والوصول إلى متغيرات البيئة، والقدرة على تشغيل البرامج النصية المضمنة. وهذا يسمح بسلوكيات معقدة. يمكن تدوير علامات التبويب باستخدام مفتاح "tab" ودعم النص الافتراضي والقوائم المنسدلة لإكمال عناصر المقتطف. يمكن تغيير نتائج علامات التبويب هذه ديناميكيًا في جزء آخر من المقتطف، حيث يملأ المستخدم علامة تبويب. يمكن استخدام متغيرات بيئة TextMate، التي تدعم المعلومات حول النطاق الحالي أو رقم السطر أو اسم المؤلف، وما إلى ذلك. تتمتع المقتطفات أيضًا بالقدرة على تشغيل نصوص shell مضمنة.
الحزم
يمكن تجميع قواعد اللغة والمقاطع والماكرو والأوامر والقوالب في TextMate في "حزم" من الوظائف. يمكن تنفيذ أي مقطع أو ماكرو أو أمر بالضغط على اختصار لوحة المفاتيح، أو كتابة كلمة معينة ثم الضغط على مفتاح "tab" (ما يسمى "مشغلات tab")، أو بتحديد الأمر من القائمة. تعد مشغلات tab مفيدة بشكل خاص؛ حيث يعمل الجمع بين مشغلات tab والمقتطفات على تسهيل الترميز بشكل كبير في اللغات المطولة، أو اللغات ذات الأنماط المكتوبة بشكل شائع.
يمكن تقييد المقاطع والماكرو والأوامر بنطاق معين، بحيث لا يعمل أمر "إغلاق علامة HTML" على سبيل المثال في نص برمجي بلغة بايثون، مما يتيح استخدام اختصار لوحة المفاتيح هذا لشيء آخر. وهذا يسمح للغات الفردية، وحتى النطاقات الفردية، بتجاوز الأوامر المضمنة مثل "إعادة تنسيق الفقرة" بإصدارات أكثر تخصصًا. ويمكن حتى تجاوز المفاتيح الخاصة مثل مفتاح الإرجاع ومفتاح المسافة.
يتوفر مستودع Subversion يحتوي على حزم أكثر بكثير من تلك المرفقة مع حزمة المحرر، لكل شيء من Markdown إلى التدوين إلى لغة التجميع MIPS . [20]
إدارة المشاريع
يمكن فتح عدة مستندات أو مجلدات في وقت واحد في نافذة مشروع TextMate، والتي توفر درجًا على طول جانبه يسرد أسماء الملفات والمجلدات، وسلسلة من علامات التبويب في الأعلى. في TextMate 1.5، يوفر هذا الدرج وسيلة للمستخدمين لتنظيم الملفات والمجلدات من جميع أنحاء نظام الملفات، بالإضافة إلى القدرة على إنشاء مجلدات افتراضية لمزيد من التنظيم. تمت إزالة هذه الميزة من TextMate 2 واستبدالها بمتصفح ملفات عادي . يمكن إجراء البحث والاستبدال عبر مشروع كامل، ويمكن للأوامر التفاعل مع الملفات أو المجلدات المحددة في الدرج. تسمح الحزم الخاصة بـ CVS و Subversion و darcs وأنظمة التحكم في المراجعة الأخرى لـ TextMate بإدارة الكود المنسق.
مميزات اخرى
يتمتع TextMate بالعديد من الميزات المشتركة مع محرري البرمجة:
- يمكن استخدام أقسام التعليمات البرمجية القابلة للطي لإخفاء مناطق من المستند لا يتم تحريرها حاليًا، للحصول على عرض أكثر إحكامًا لهيكل التعليمات البرمجية أو لتجنب التشتيت. يمكن تحديد الأقسام المراد طيها يدويًا، أو يمكن استخدام هيكل المستند نفسه لتحديد الطيات.
- تعمل عمليات البحث والاستبدال القائمة على التعابير العادية على تسريع عمليات معالجة النصوص المعقدة. يستخدم TextMate مكتبة التعابير العادية Oniguruma التي طورها K. Kosako. [21]
- توفر النافذة المنبثقة للوظيفة قائمة بالأقسام أو الوظائف الموجودة في المستند الحالي.
- يتيح سجل الحافظة للمستخدمين قص العديد من أقسام النص مرة واحدة، ثم لصقها.
- يسمح وضع تحرير العمود بإضافة نفس النص إلى عدة صفوف من النص، وهو مفيد جدًا للتعامل مع البيانات الجدولية.
- دعم "rmate" لتشغيل textmate كمحرر للملفات من الخوادم البعيدة - تم تحسينه بشكل كبير مقارنة بالحلول البديلة المطلوبة في الإصدار 1 [22]
بالإضافة إلى ذلك، يدعم TextMate الميزات للتكامل بشكل جيد مع البيئة الرسومية لنظام التشغيل OS X:
- يدعم سجل الرسوم البيانية للحافظة اللصق من النسخ السابقة، بما في ذلك عمليات الإطلاق السابقة.
- يدعم البحث والاستبدال تاريخًا رسوميًا مشابهًا. [ يحتاج إلى توضيح ]
- يتم تحسين عملية التحرير بشكل أكبر من خلال وجود مؤشرات متعددة (نقاط الإدراج)، والقدرة على توسيع التحديد الحالي إلى حالات إضافية من خلال إنشاء مؤشرات متعددة.
- تُظهر نافذة عرض HTML المستندة إلى WebKit تحديثات مباشرة أثناء تحرير مستند HTML.
- يمكن لمستخدمي VoiceOver وZoom استخدام TextMate بفضل دعم إمكانية الوصول. [23]
القيود
هذا القسم يحتاج إلى التحديث . ( أكتوبر 2021 ) |
يحتوي TextMate على بعض القيود عند مقارنته بمحررين آخرين في فئته:
- نظرًا لأن TextMate غير مرتبط ارتباطًا وثيقًا بلغة برمجة نصية، كما هو الحال مع Emacs مع Emacs Lisp ، فمن المستحيل أن يتمتع المستخدمون بالتحكم الكامل في تكوين البرنامج وسلوكه. أوضح آلان أودجارد أفكاره حول هذا الموضوع في رسالة بريد إلكتروني إلى قائمة بريد TextMate، داعيًا إلى حلول "موصى بها من قِبل المنصة". [24]
- لا يوجد محقق HTML مدمج — نظرًا لأن TextMate يستخدم محقق W3C للتحقق من صحة HTML، فيجب أن يكون لدى المستخدمين اتصال شبكة نشط للتحقق من صحة HTML باستخدام الوظيفة القياسية.
- عدم وجود ميزة إكمال التعليمات البرمجية: على الرغم من دعمه الكبير للماكرو والأوامر والمقاطع، فإن TextMate لا يحتوي على دعم مدمج لتلميح التعليمات البرمجية أو إكمال التعليمات البرمجية الموجه، لذا فإن محررات النصوص التي تدعم هذه الميزات قد تكون خيارًا أفضل عند تعلم قواعد لغة جديدة أو الترميز بلغات مطولة. ملاحظة: يمكنك الحصول على اقتراحات التعليمات البرمجية/الكلمات عن طريق كتابة حرف واحد أو أكثر والضغط (بشكل متكرر) على ESC. الاقتراحات هي الكلمات التي تظهر في المستند الحالي.
- TextMate ليس آمنًا للملفات الثنائية . فهو مخصص للنصوص فقط، ولا يضمن الحفاظ على البيانات الثنائية التعسفية في الملف خلال دورة التحميل/الحفظ، بغض النظر عما إذا كانت هذه البيانات محررة أم لا. [ بحاجة لمصدر ]
الجوائز
فاز TextMate 1.5 بجائزة Apple Design Award لأفضل أداة للمطورين في عام 2006.
انظر أيضا
مراجع
- ^ https://github.com/textmate/textmate/releases/tag/v2.0.23.
{{cite web}}: مفقود أو فارغ|title=( مساعدة ) - ^ ديفيد هانسون. "TextMate 1.0 أصبح متاحًا أخيرًا! تم أرشفته في 2008-12-05 على موقع Wayback Machine "، مدونة TextMate ، 5 أكتوبر 2004.
- ^ آلان أودجارد. “Profiles/Allan Odgaard Archived 2007-07-03 at the Wayback Machine ” على ويكيبيديا TextMate، 20 نوفمبر 2005.
- ^ ديفيد هانسون. “إصدار TextMate 1.0.1 يظهر بعد تسعة إصدارات تجريبية أرشيف 2020-09-12 على موقع Wayback Machine ”، مدونة TextMate ، 21 أكتوبر 2005.
- ^ مات ويلمور. "مراجعة TextMate 1.0.1: هل يكون بمثابة كش ملك لـ TextMate؟ مؤرشف من الأصل في 20 أغسطس 2006 على موقع Wayback Machine "، Maczealots.com ، 8 أكتوبر 2004.
- ^ مايكل "drunkenbatman" بيل. "TextMate: The Missing Editor for OS X Archived 2006-05-14 at the Wayback Machine "، Drunkenblog ، 4 نوفمبر 2004.
- ^ كيمبرو ستيكن. “محرر نصوص جديد رائع – TextMate – Mac OS X Archived 2004-12-04 at archive.today ”، Inspirational Technology ، 6 أكتوبر 2004.
- ^ آلان أودجارد. "TextMate 1.5 Archived 2006-03-25 at the Wayback Machine "، مدونة TextMate ، 6 يناير 2006.
- ^ روي كارمو. "المرة الثالثة هي السحر" أرشيف 2006-11-30 على موقع واي باك مشين ، تاو أوف ماك ، 8 يناير 2006.
- ^ سميكل، جيف (9 أغسطس 2006). "إعلان الفائزين بجائزة تصميم أبل". Ars Technica . تم الاسترجاع في 11 يناير 2024 .
- ^ آلان أودجارد. "الاتجاهات المستقبلية" أرشيف 2008-12-05 على موقع واي باك مشين ، مدونة تيكست مايت ، 15 فبراير 2006.
- ^ مدونة TextMate: العمل عليها محفوظ في 2010-03-07 على موقع Wayback Machine ، 14 يونيو 2009
- ^ TextMate Github: [1] تم أرشفته في 2019-09-15 على موقع Wayback Machine ، 16 سبتمبر 2019
- ^ GitHub، [2] محفوظ في 2018-01-31 على موقع Wayback Machine ، 9 أغسطس 2012
- ^ "TextMate 2.0 يصبح مفتوح المصدر استجابة لقيود OS X". 9 أغسطس 2012. مؤرشف من الأصل في 30 ديسمبر 2016 . تم الاسترجاع 15 يونيو 2017 .
أعلن مطور TextMate MacroMates يوم الخميس أن كود TextMate 2.0، الذي لا يزال في مرحلة ألفا، متاح الآن عبر مستودع GitHub عبر الإنترنت. يتم جعل الكود مفتوح المصدر لمواجهة ما يراه بعض المطورين على أنه تقييد متزايد لحرية المستخدم والمطور من قِبل Apple على منصة Mac.
- ^ Odgaard, (2009). CONTRIBUTING.md محفوظ في 2022-06-02 على موقع Wayback Machine .
- ^ "Odgaard: ""سأستمر في العمل على TextMate طالما أنني مستخدم Mac"". 10 أغسطس 2012. مؤرشف من الأصل في 7 يونيو 2017. تم الاسترجاع في 15 يونيو 2017. كان العديد من أنصار المصدر المفتوح والمساهمين المحتملين في الكود صاخبين في معارضتهم لاختيار Odgaard للإصدار 3 من رخصة جنو العمومية ،
في حين طالبوا تصحيحات الكود السابقة بحمل رخصة المجال العام. المشكلة، للأسف، هي شد الحبل بين مبادئ FOSS ورغبات المشاريع التجارية.
- ^ “Github يرتكب textmate/textmate”. جيثب . تم الاسترجاع بتاريخ 29-07-2023 .
- ^ "قواعد اللغة - دليل TextMate 1.x". macromates.com . مؤرشف من الأصل في 2021-10-30 . تم الاسترجاع 2021-10-30 .
- ^ للحصول على معلومات حول كيفية الحصول على المزيد من الحزم، راجع القسم ذي الصلة في دليل TextMate المؤرشف في 2008-10-10 على موقع Wayback Machine .
- ^ "20 تعبيرًا عاديًا". TextMate. مؤرشف من الأصل في 2018-01-21 . تم الاسترجاع في 2009-04-28 .
- ^ كيفية تحرير الملفات من خادم FTP الخاص بي كمشروع TextMate محفوظ في 2017-07-19 على موقع Wayback Machine . TextMate Wiki - الأسئلة الشائعة: المشاريع
- ^ دعم إمكانية الوصول في عرض النص - VoiceOver وZoom محفوظ في 2020-03-14 على موقع Wayback Machine . طلب سحب GitHub
- ^ ألان أودجارد. "إعادة: تغيير موضع المؤشر من الأمر" أرشيف 2016-03-04 على موقع واي باك مشين . قائمة بريدية TextMate . 14 فبراير 2007.
قراءة إضافية
- جراي، جيمس إدوارد الثاني (يناير 2007). Textmate: Power Editing for the Mac . Pragmatic Bookshelf. ISBN 978-0-9787392-3-2.
روابط خارجية
- الموقع الرسمي
