Jump to content

ТекстМейт

ТекстМейт
Разработчик(и) Аллан Одгаард ( MacroMates ), Киаран Уолш
Первоначальный выпуск 5 октября 2004 г .; 19 лет назад ( 05.10.2004 )
Финальный выпуск
2.0.23 [1]  Отредактируйте это в Викиданных / 12 октября 2021 г.
Репозиторий
Операционная система macOS
Тип Редактор исходного кода
Лицензия
Веб-сайт макроматы

TextMate — это бесплатный общего назначения с графическим текстовый редактор интерфейсом пользователя с открытым исходным кодом для macOS, созданный Алланом Одгаардом. TextMate имеет декларативные настройки, вкладки для открытых документов , записываемые макросы , сворачивающиеся разделы , фрагменты , интеграцию с оболочкой и расширяемую систему пакетов.

TextMate 1.0 был выпущен 5 октября 2004 г., после 5 месяцев разработки, а 21 октября 2004 г. последовала версия 1.0.1. [2] [3] [4] В выпуске основное внимание уделялось хорошей реализации небольшого набора функций , в нем не было окна настроек или панели инструментов, не был интегрирован FTP и не было опций для печати. [5] [6] Сначала поддерживалось лишь небольшое количество языков программирования, поскольку было создано лишь несколько «языковых пакетов». Несмотря на это, некоторые разработчики сочли эту раннюю и неполную версию TextMate долгожданным изменением на рынке, который считался застойным из-за десятилетнего доминирования BBEdit . [7]

TextMate 1.0.2 вышел 10 декабря 2004 года. В серии бета-версий TextMate 1.1 TextMate приобрел функции: окно настроек с графическим интерфейсом для создания и редактирования тем; строка состояния со списком символов; меню для выбора языка и настроек вкладок, а также «редактор пакетов» для редактирования настроек для конкретного языка. 6 января 2006 года Одгаард выпустил TextMate 1.5, первую «стабильную версию» после версии 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]

TextMate 2 В августе 2012 года исходный код был опубликован на GitHub на условиях GPL-3.0-или более поздней версии . [14] попытка разработчика противодействовать ограничениям, которые Apple наложила на программное обеспечение, распространяемое через Mac App Store . [15] Одгаард заявил, что предпочитает получать патчи как общественное достояние, поскольку это сохраняет за ним возможность выпускать будущую версию под более либеральной лицензией или делать версию доступной в Mac App Store. Одгаард также заявил, что у него есть друг, который использует некоторые из фреймворков TextMate в проекте с закрытым исходным кодом, и они не могут включать исправления, выпущенные под лицензией GPL. [16] [17]

В октябре 2021 года последний коммит был сделан на GitHub, хотя не было сделано никаких заявлений о том, что проект официально закрыт, а его исходный код по-прежнему находится в публичном доступе. [18]

Языковые грамматики

[ редактировать ]

Грамматики языка TextMate позволяют пользователям создавать свои собственные режимы подсветки синтаксиса произвольной сложности , присваивая каждому ключевому слову документа уникальное имя. [19] Он использует модифицированную версию формата списка свойств 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 предоставляет список имен, обычно используемых в разных языках программирования для обеспечения совместимости между пакетами. [19]

TextMate поддерживает определяемые пользователем и редактируемые пользователем команды, которые интерпретируются bash или интерпретатором , указанным с помощью shebang . TextMate может отправлять команды в различные типы входных данных (текущий документ, выделенный текст, текущее слово и т. д.) в дополнение к переменным среды , а их выходные данные могут аналогичным образом обрабатываться TextMate различными способами. В самом простом случае команда может получить выделенный текст, преобразовать его и повторно вставить в документ, заменяя выделение. Другие команды могут просто показывать всплывающую подсказку , создавать новый документ для вывода или отображать его в виде веб-страницы с помощью встроенного средства обработки HTML TextMate.

Многие пакеты, специфичные для конкретного языка, такие как bash, PHP или Ruby, содержат команды для компиляции и/или запуска текущего документа или проекта. Во многих случаях STDOUT и STDERR процесса кода будут отображаться в окне TextMate.

Фрагменты

[ редактировать ]

В самом простом виде « фрагменты » TextMate — это фрагменты текста, которые можно вставить в документ в текущем местоположении с помощью контекстно-зависимого нажатия клавиши или завершения табуляции. Фрагменты являются «интеллектуальными», поддерживают динамическое обновление «остановок табуляции», доступ к переменным среды и возможность запуска встроенных сценариев. Это допускает сложное поведение. Остановки табуляции можно переключать с помощью клавиши «Tab», а также поддерживать текст по умолчанию и раскрывающиеся списки для завершения элементов фрагмента. Результаты этих табуляций могут быть динамически изменены в другой части фрагмента по мере того, как пользователь заполняет остановку. Можно использовать переменные среды TextMate, поддерживающие информацию о текущей области, номере строки, имени автора и т. д. Фрагменты также имеют возможность запускать встроенные сценарии оболочки.

Грамматики языка TextMate, фрагменты кода, макросы, команды и шаблоны можно группировать в «наборы» функций. Любой фрагмент, макрос или команду можно выполнить, нажав сочетание клавиш, набрав определенное слово и затем нажав клавишу «tab» (так называемые «триггеры табуляции») или выбрав команду из меню. Триггеры вкладок особенно полезны; сочетание триггеров табуляции и фрагментов значительно упрощает кодирование на многословных языках или языках с часто типизированными шаблонами.

Фрагменты, макросы и команды могут быть ограничены определенной областью действия, так что, например, команда «закрыть тег html» не работает в скрипте Python, освобождая это сочетание клавиш для использования для чего-то другого. Это позволяет отдельным языкам и даже отдельным областям действия заменять встроенные команды, такие как «Переформатировать абзац», более специализированными версиями. Даже специальные клавиши, такие как клавиша возврата и пробел, могут быть переопределены.

Доступен репозиторий Subversion, содержащий гораздо больше пакетов, чем поставляется с пакетом редактора, для всего: от Markdown до ведения блогов и MIPS . языка ассемблера [20]

Управление проектом

[ редактировать ]

Несколько документов или папок можно открыть одновременно в окне проекта TextMate, в котором есть ящик с именами файлов и папок сбоку, а также ряд вкладок вверху. В TextMate 1.5 этот ящик предоставляет пользователям возможность упорядочивать файлы и папки в файловой системе, а также возможность создавать виртуальные папки для дальнейшей организации. Эта функция была удалена из TextMate 2 и заменена обычным файловым браузером . Поиск и замену можно выполнять по всему проекту, а команды могут взаимодействовать с выбранными файлами или папками в ящике. Пакеты для CVS , Subversion, darcs и других систем контроля версий позволяют TextMate управлять версиями кода.

Другие особенности

[ редактировать ]

TextMate имеет множество функций, общих для редакторов программирования:

  • Сворачивание разделов кода можно использовать, чтобы скрыть области документа, которые в данный момент не редактируются, для более компактного представления структуры кода или для того, чтобы не отвлекать внимание. Разделы, которые нужно сложить, можно выбрать вручную или использовать для определения сгиба структуру самого документа.
  • Поиск и замена на основе регулярных выражений ускоряют сложные манипуляции с текстом. TextMate использует библиотеку регулярных выражений Oniguruma, разработанную К. Косако. [21]
  • Всплывающее окно функции предоставляет список разделов или функций в текущем документе.
  • История буфера обмена позволяет пользователям вырезать несколько разделов текста одновременно, а затем вставлять их.
  • Режим редактирования столбцов позволяет добавлять один и тот же текст в несколько строк текста и очень полезен для манипулирования табличными данными.
  • Поддержка «rmate» для запуска textmate в качестве редактора файлов с удаленных серверов — значительно улучшена по сравнению с обходными путями, необходимыми в версии 1. [22]

Кроме того, TextMate поддерживает функции для хорошей интеграции с графической средой OS X:

  • Графическая история буфера обмена поддерживает вставку из предыдущих копий, включая предыдущие запуски.
  • Поиск и замена поддерживают аналогичную графическую историю. [ нужны разъяснения ]
  • Редактирование дополнительно расширяется за счет нескольких курсоров (точек вставки) и возможности расширить текущий выбор на дополнительные экземпляры, создавая несколько курсоров.
  • Окно просмотра HTML на основе WebKit показывает текущие обновления по мере редактирования HTML-документа.
  • Пользователи VoiceOver и Zoom могут использовать TextMate благодаря поддержке специальных возможностей. [23]

Ограничения

[ редактировать ]

TextMate имеет несколько ограничений по сравнению с другими редакторами этого класса:

  • Поскольку TextMate не связан тесно с языком сценариев, как Emacs с Emacs Lisp , пользователи не могут иметь полный контроль над конфигурацией и поведением программы. Аллан Одгаард изложил свои мысли по этому поводу в электронном письме в список рассылки TextMate, выступая за «рекомендуемые для платформы» решения. [24]
  • Нет встроенного средства проверки HTML — поскольку TextMate использует средство проверки W3C для проверки HTML, пользователям необходимо иметь активное сетевое подключение для проверки HTML с использованием стандартных функций.
  • Отсутствие функции завершения кода: несмотря на существенную поддержку макросов, команд и фрагментов, TextMate не имеет встроенной поддержки подсказок кода или управляемого завершения кода, поэтому текстовые редакторы, поддерживающие эти функции, могут оказаться лучшим выбором. при изучении синтаксиса нового языка или кодировании на многословных языках. Примечание. Вы можете получить предложения кода/слова, набрав одну или несколько букв и (неоднократно) нажимая ESC. Предложения — это слова, которые встречаются в текущем документе.
  • TextMate не является бинарно-безопасным . Это явно только текст и не гарантирует, что произвольные двоичные данные в файле будут сохранены в течение цикла загрузки/сохранения, независимо от того, редактируются ли эти данные. [ нужна ссылка ]

TextMate 1.5 получил премию Apple Design Award как лучший инструмент для разработчиков в 2006 году.

См. также

[ редактировать ]
  1. ^ https://github.com/textmate/textmate/releases/tag/v2.0.23 . {{cite web}}: Отсутствует или пусто |title= ( помощь )
  2. ^ Дэвид Ханссон. « TextMate 1.0 наконец-то здесь! Архивировано 5 декабря 2008 г. в Wayback Machine », блог TextMate , 5 октября 2004 г.
  3. ^ Аллан Одгаард. « Профили / Аллан Одгаард. Архивировано 3 июля 2007 г. в Wayback Machine » на вики TextMate, 20 ноября 2005 г.
  4. ^ Дэвид Ханссон. « TextMate 1.0.1 появляется после девяти бета-версий. Архивировано 12 сентября 2020 г. на Wayback Machine », блог TextMate , 21 октября 2005 г.
  5. ^ Мэтт Уиллмор. Обзор TextMate 1.0.1: мат для TextMate? Архивировано 20 августа 2006 г. на Wayback Machine », Maczealots.com , 8 октября 2004 г.
  6. ^ Майкл «пьяный Бэтмен» Белл. « TextMate: недостающий редактор для OS X. Архивировано 14 мая 2006 г. в Wayback Machine », Drunkenblog , 4 ноября 2004 г.
  7. ^ Кимбро Стакен. « Новый крутой текстовый редактор — TextMate — Mac OS X. Архивировано 4 декабря 2004 г. на archive.today », Inspirational Technology , 6 октября 2004 г.
  8. ^ Аллан Одгаард. « TextMate 1.5. Архивировано 25 марта 2006 г. на Wayback Machine », блог TextMate , 6 января 2006 г.
  9. ^ Руи Кармо. « Очарование третьего раза. Архивировано 30 ноября 2006 г. в Wayback Machine », Tao of Mac , 8 января 2006 г.
  10. ^ Смыкил, Джефф (9 августа 2006 г.). «Объявлены победители премии Apple Design Award» . Арс Техника . Проверено 11 января 2024 г.
  11. ^ Аллан Одгаард. « Направления будущего. Архивировано 5 декабря 2008 г. в Wayback Machine », блог TextMate , 15 февраля 2006 г.
  12. Блог TextMate: Работа над этим. Архивировано 7 марта 2010 г. в Wayback Machine , 14 июня 2009 г.
  13. ^ TextMate Github: [1] Архивировано 15 сентября 2019 г. на Wayback Machine , 16 сентября 2019 г.
  14. ^ GitHub, [2] Архивировано 31 января 2018 г. на Wayback Machine , 9 августа 2012 г.
  15. ^ «TextMate 2.0 становится открытым исходным кодом в ответ на ограничения OS X» . 9 августа 2012 года. Архивировано из оригинала 30 декабря 2016 года . Проверено 15 июня 2017 г. Разработчик TextMate MacroMates объявил в четверг, что код TextMate 2.0, который в настоящее время находится в альфа-версии, теперь доступен через онлайн-репозиторий GitHub. Код выпускается с открытым исходным кодом, чтобы противодействовать тому, что некоторые разработчики считают все более ограничивающим свободу пользователей и разработчиков со стороны Apple на платформе Mac.
  16. ^ Одгаард, (2009). CONTRIBUTING.md. Архивировано 2 июня 2022 г. в Wayback Machine .
  17. ^ «Одгаард: «Я буду продолжать работать над TextMate, пока являюсь пользователем Mac» » . 10 августа 2012 года. Архивировано из оригинала 7 июня 2017 года . Проверено 15 июня 2017 г. Многие сторонники открытого исходного кода и потенциальные участники кода громко возражали против выбора Одгаардом версии 3 Стандартной общественной лицензии GNU, одновременно требуя, чтобы исправления исходного кода содержали лицензию общественного достояния. Проблема, к сожалению, заключается в перетягивании каната между принципами FOSS и желаниями коммерческих предприятий.
  18. ^ «Github фиксирует textmate/textmate» . Гитхаб . Проверено 29 июля 2023 г.
  19. ^ Перейти обратно: а б «Грамматики языка — Руководство по TextMate 1.x» . Macromate.com . Архивировано из оригинала 30 октября 2021 г. Проверено 30 октября 2021 г.
  20. ^ Информацию о получении дополнительных пакетов см. в соответствующем разделе руководства TextMate. Архивировано 10 октября 2008 г. на Wayback Machine .
  21. ^ «20 регулярных выражений» . ТекстМейт. Архивировано из оригинала 21 января 2018 г. Проверено 28 апреля 2009 г.
  22. ^ Как редактировать файлы с моего FTP-сервера в виде проекта TextMate . Архивировано 19 июля 2017 г. на Wayback Machine . TextMate Wiki - Часто задаваемые вопросы: Проекты
  23. ^ Поддержка специальных возможностей в текстовом представлении — VoiceOver и Zoom. Архивировано 14 марта 2020 г. на Wayback Machine . Запрос на извлечение GitHub
  24. ^ Аллан Одгаард. « Re: Изменение положения курсора с помощью команды. Архивировано 4 марта 2016 г. на Wayback Machine ». Список рассылки TextMate . 14 февраля 2007 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4e221f2c95feb0af4ae28e78ec38a7d7__1711876140
URL1:https://arc.ask3.ru/arc/aa/4e/d7/4e221f2c95feb0af4ae28e78ec38a7d7.html
Заголовок, (Title) документа по адресу, URL1:
TextMate - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)