Кіріспе

macOS үшін GUI мәтін редакторы

TextMate – Аллан Одгаард жасаған, macOS үшін тегін және ашық кодты, көп мақсатты GUI мәтін редакторы. TextMate декларативті параметрлеуді, ашық құжаттар үшін түймелерді, жазылатын макростарды, бөлімдерді жиыстыруды, үзінділерді, терминалмен интеграцияны және кеңейтілетін жиынтық жүйесін қамтиды.

Тарих

TextMate 1.0 5 қазан 2004 жылы 5 айлық дамудан кейін, содан кейін 21 қазан 2004 жылы 1.0.1 нұсқасы шығарылды. Бұл релиз мүмкіндіктердің шағын жиынтығын жақсы іске асыруға бағытталған, сондықтан қалау терезесі немесе құралдар панелі болған жоқ, FTP интеграциясы да, басып шығару опциялары да жоқ еді. Бастапқыда тек бірнеше бағдарламалау тілдері қолдау тапты, себебі тек бірнеше «тілдік жиынтық» жасалған болатын. Дегенмен, кейбір әзірлеушілер TextMate-тің бұл ерте және толық емес нұсқасын BBEdit-тің он жылдық үстемдігімен тоқтап қалған деп есептелетін нарыққа жағымды өзгеріс деп тапты. TextMate 1.0.2 10 желтоқсан 2004 жылы жарық көрді. TextMate 1.1 бета-версияларының сериясында TextMate жаңа мүмкіндіктерге ие болды: тақырыптарды жасау және өңдеуге арналған GUI интерфейсі бар қалау терезесі; символдар тізімі бар күй жолағы; тіл мен табу параметрлерін таңдауға арналған мәзірлер және тілге қатысты өзгертулерді өңдеуге арналған «жиынтық редактор». 6 қаңтар 2006 жылы Одгаард TextMate 1.5 нұсқасын шығарды, ол 1.0.2 нұсқасынан кейінгі алғашқы «тұрақты нұсқа» болды. Бұрынғы сынға ұшыраған нұсқалардан өзгеше, сын-пікірлер жағымды болды. TextMate 2006 жылдың ортасына дейін дамуын жалғастырды. 8 тамыз 2006 жылы TextMate Apple компаниясының Сан-Франциско, Калифорнияда өткен Дүниежүзілік әзірлеушілер конференциясында «Үздік әзірлеуші құралы» үшін Apple Design Award сыйлығын алды. 2006 жылдың ақпан айында TextMate блогы болашақ бағыттары туралы ойларын білдірді, оларға жобаны басқаруды жақсарту, FTP сияқты қашықтан файл жүйелерін және Subversion сияқты нұсқаларды басқару жүйелерін қолдау үшін плагиндер жүйесі кірді. 2007 жыл бойы негізгі қосымша минималды түрде ғана өзгерді, бірақ оның «тілдік жиынтықтары» дамуын жалғастырды. 2009 жылдың маусым айында TextMate 2 жобасының 90 пайызға жуығы аяқталғаны жарияланды, бірақ соңғы мүмкіндіктер тізімі жарияланбады. 2011 жылдың желтоқсанында TextMate блогында жүктеуге арналған альфа нұсқасы қолжетімді болды, ал 2016 жылдың соңында шығарылымға үміткер нұсқасы шықты. 2019 жылдың қыркүйегінде соңғы нұсқасы жарық көрді. 2012 жылдың тамызында TextMate 2-нің бастапқы коды GitHub-та GPL 3.0 немесе одан кейінгі шарттармен жарияланды, бұл әзірлеушінің Apple-дің Mac App Store арқылы таратылатын бағдарламалық жасақтамаларға қойған шектеулеріне қарсы жасалған әрекет болды. Одгаард түзетулерді ашық лицензиямен қабылдағанды жөн көретінін айтты, себебі бұл оның болашақ нұсқасын одан да еркін лицензиямен шығаруға немесе Mac App Store-да қолжетімді етуге мүмкіндік береді. Сондай-ақ, Одгаардтың досының бірі TextMate фреймворктерін жабық бастапқы кодты жобада қолданатынын және GPL лицензиясымен шығарылған түзетулерді енгізе алмайтынын айтты. 2021 жылдың қазан айында GitHub-қа соңғы міндеттеме жасалды, бірақ жобаның ресми түрде тоқтатылғаны және оның бастапқы коды әлі де көпшілікке қолжетімді екені туралы хабарлама жоқ.

Тіл грамматикасы

TextMate тілінің грамматикасы пайдаланушыларға әрбір құжаттағы кілт сөздерге бірегей атау беріп, өздерінің кез келген күрделігі бар синтаксистік бояу режимдерін жасауға мүмкіндік береді. Ол тілдік грамматиканы анықтау үшін Apple ASCII қасиеттері тізімі форматының өңделген нұсқасын пайдаланады. Бұл грамматикалар Oniguruma тұрақты өрнектер кітапханасын қолдана отырып, ішкі ережелерді анықтауға мүмкіндік береді, содан кейін оларға белгілі бір «ауқымдар» – оларды бояу үшін анықталатын күрделі таңбалар тағайындалады. Құжаттың әрбір нүктесіне бір немесе бірнеше ауқым тағайындалады, олар құжаттағы нүктенің орнын, оның қалай боялуын және TextMate-тің сол нүктеде қалай жұмыс істеуін анықтайды. Мысалы, «Сыртқы сілтемелер» бөліміндегі сілтемелердің бірінің тақырыбы мынадай ауқымға ие:

text.html.mediawiki
markup.list.mediawiki
meta.link.inline.external.mediawiki
string.other.link.title.external.mediawiki

Бұл ауқым MediaWiki құжатындағы тізімдегі сілтемедегі сілтеме тақырыбын қарастыратынымызды көрсетеді. TextMate тақырыптары әртүрлі дәлдікпен кез келген ауқымды белгілей алады. Мысалы, бір тақырып барлық тұрақтыларды (constant.*) бірдей бояуға шешім қабылдауы мүмкін, ал екіншісі сандық тұрақтыларды (constant.numeric.*) әріптік тұрақтылардан (constant.character.escape.*) басқа түспен бояуға шешім қабылдауы мүмкін. Иерархиялық ауқым синтаксисі тіл авторлары мен тақырып авторларына әртүрлі деңгейдегі жабуды ұсынады, осылайша әрқайсысы қалауынша қарапайымдылықты немесе толықтықты таңдай алады. TextMate құжаттамасында бундельдер арасындағы үйлесімділік үшін әртүрлі бағдарламалау тілдерінде жиі қолданылатын атаулардың тізімі келтірілген.

Жобаларды басқару

TextMate жобасының терезесінде бірнеше құжат немесе қалта бірден ашылуы мүмкін, оның бір жағында файлдар мен қалталардың тізімі бар, ал жоғарғы жағында – бірнеше қойындылар. TextMate 1.5 нұсқасында бұл тізім пайдаланушыларға файлдар мен қалталарды бүкіл файлдық жүйеден ұйымдастыруға, сондай-ақ одан әрі ұйымдастыру үшін виртуалды қалталар жасауға мүмкіндік береді. Бұл мүмкіндік TextMate 2-де алынып тасталды және оның орнына қарапайым файлдар шарлаушысы (файл браузері) қосылды. Іздеу және алмастыру бүкіл жоба бойынша жүргізілуі мүмкін, ал командалар тізімдегі таңдалған файлдармен немесе қалталармен өзара әрекеттесе алады. CVS, Subversion, darcs және басқа да нұсқаларды басқару жүйелеріне арналған жиынтықтар TextMate-ке нұсқаланған кодты басқаруға мүмкіндік береді.

Марапаттар

TextMate 1.5 2006 жылы Apple Design Award сыйлығын, ең жақсы дамытушы құралы номинациясы бойынша жеңіп алды.