TekstMate — TextMate

TekstMate
TextmateIcon.png
TextMate zrzut ekranu.png
Zrzut ekranu z tekstem
Deweloper(zy) Allan Odgaard ( MacroMates ), Ciarán Walsh
Pierwsze wydanie 5 października 2004 ; 16 lat temu ( 2004-10-05 )
Wersja stabilna
2.0.19  Edytuj to na Wikidanych / 25 lutego 2021 ; 6 miesięcy temu ( 25 lutego 2021 )
Magazyn
System operacyjny System operacyjny Mac
Rodzaj Edytor kodu źródłowego
Licencja
Strona internetowa makromates .com

TextMate to uniwersalny edytor tekstu GUI dla systemu macOS stworzony przez Allana Odgaarda. TextMate zawiera deklaratywne dostosowania, zakładki dla otwartych dokumentów , makra z możliwością nagrywania , sekcje składania , snippety , integrację z powłoką i rozszerzalny system pakietów.

Historia

TextMate 1.0 został wydany 5 października 2004 r., po 5 miesiącach rozwoju, a następnie 21 października 2004 r. pojawiła się wersja 1.0.1. Wydanie koncentrowało się na dobrym zaimplementowaniu małego zestawu funkcji i nie miało okna preferencji ani paska narzędzi, t integruje FTP i nie ma opcji drukowania. Początkowo obsługiwana była tylko niewielka liczba języków programowania, ponieważ utworzono tylko kilka „pakietów językowych”. Mimo to niektórzy programiści uznali tę wczesną i niekompletną wersję TextMate za mile widzianą zmianę na rynku, który został uznany za stagnację przez dziesięcioletnią dominację BBEdit .

TextMate 1.0.2 wyszedł 10 grudnia 2004. W serii beta wersji TextMate 1.1 TextMate zyskał nowe funkcje: okno preferencji z graficznym interfejsem użytkownika do tworzenia i edycji motywów; pasek stanu z listą symboli; menu do wyboru ustawień języka i zakładek oraz „edytor pakietów” do edycji dostosowań specyficznych dla języka. 6 stycznia 2006 r. firma Odgaard wydała TextMate 1.5, pierwsze „stabilne wydanie” od wersji 1.0.2. Recenzje były pozytywne, w przeciwieństwie do wcześniejszych wersji, które były krytykowane.

TextMate rozwijał się do połowy 2006 roku. 8 sierpnia 2006 firma TextMate została nagrodzona nagrodą Apple Design Award za najlepsze narzędzie programistyczne na konferencji Apple Worldwide Developers Conference w San Francisco w Kalifornii za „ogromne brawa”. W lutym 2006 r. blog TextMate wyrażał zamiary dotyczące przyszłych kierunków, w tym ulepszonego zarządzania projektami za pomocą systemu wtyczek do obsługi zdalnych systemów plików, takich jak FTP, oraz systemów kontroli wersji , takich jak Subversion . W 2007 r. podstawowa aplikacja zmieniła się tylko minimalnie, chociaż jej „pakiety językowe” nadal się rozwijały.

W czerwcu 2009 ogłoszono, że TextMate 2 jest ukończony w około 90 procentach, ale z nieujawnioną listą funkcji końcowych. Publiczna wersja alfa została udostępniona do pobrania na blogu TextMate w grudniu 2011 r., a następnie kandydat do wydania pod koniec 2016 r. We wrześniu 2019 r. została wydana ostateczna wersja.

W sierpniu 2012 r. kod źródłowy TextMate 2 został opublikowany w serwisie GitHub na warunkach licencji GPL-3.0-lub nowszej , co było próbą przeciwdziałania restrykcjom Apple nałożonym przez Apple na oprogramowanie dystrybuowane za pośrednictwem Mac App Store . Odgaard stwierdził, że woli otrzymywać łatki w domenie publicznej, ponieważ pozwala to zachować jego możliwość wydania przyszłej wersji na bardziej liberalnej licencji lub udostępnienia wersji w Mac App Store. Odgaard stwierdził również, że ma przyjaciela, który używa niektórych frameworków TextMate w projekcie o zamkniętym kodzie źródłowym i nie może on zawierać łat wydanych na licencji GPL.

Cechy

Zakresy hierarchiczne

TextMate umożliwia użytkownikom tworzenie własnych dowolnie złożonych trybów podświetlania składni przy użyciu zmodyfikowanej wersji formatu listy właściwości Apple ASCII do definiowania gramatyk językowych. Te gramatyki umożliwiają definiowanie reguł zagnieżdżania za pomocą biblioteki wyrażeń regularnych Oniguruma , a następnie przypisywanie określonych „zakresów”: etykiet złożonych, które identyfikują je pod kątem kolorowania.

Dlatego każdemu punktowi dokumentu przypisywany jest jeden lub więcej zakresów, które definiują, gdzie w dokumencie znajduje się ten punkt, jak powinien być pokolorowany i jakie powinno być zachowanie TextMate w tym punkcie. Na przykład tytuł jednego z linków w sekcji „Linki zewnętrzne” ma zakres:

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

Ten zakres mówi nam, że patrzymy na tytuł linku w linku na liście w dokumencie MediaWiki.

Motywy TextMate mogą oznaczać dowolny zakres z różnymi poziomami dokładności. Na przykład jeden motyw może zdecydować o constant.*identycznym pokolorowaniu każdej stałej ( ), podczas gdy inny może zdecydować, że stałe liczbowe ( constant.numeric.*) powinny być pokolorowane inaczej niż znaki specjalne ( constant.character.escape.*). Składnia zakresu hierarchicznego umożliwia autorom języków i autorom motywów różne poziomy pokrycia, dzięki czemu każdy z nich może wybrać prostotę lub kompleksowość, zgodnie z potrzebami.

Polecenia

TextMate obsługuje polecenia zdefiniowane i edytowalne przez użytkownika, które są interpretowane przez bash lub interpreter określony przez shebang . Polecenia mogą być wysyłane przez TextMate różnego rodzaju danych wejściowych (bieżący dokument, zaznaczony tekst, bieżące słowo itp.) oprócz zmiennych środowiskowych, a ich dane wyjściowe mogą być podobnie obsługiwane przez TextMate na różne sposoby. Najprościej mówiąc, polecenie może odebrać zaznaczony tekst, przekształcić go i ponownie wstawić do dokumentu, zastępując zaznaczenie. Inne polecenia mogą po prostu wyświetlać podpowiedź , tworzyć nowy dokument dla swoich danych wyjściowych lub wyświetlać go jako stronę internetową za pomocą wbudowanego modułu renderowania HTML TextMate.

Wiele pakietów specyficznych dla języka, takich jak bash, PHP lub Ruby, zawiera polecenia do kompilowania i/lub uruchamiania bieżącego dokumentu lub projektu. W wielu przypadkach STDOUT i STDERR procesu kodu będą wyświetlane w oknie TextMate.

Fragmenty

Najprościej mówiąc, „ fragmenty ” TextMate to fragmenty tekstu, które można wstawić do dokumentu w bieżącej lokalizacji za pomocą kontekstowego naciśnięcia klawisza lub uzupełnienia tabulatorem. Fragmenty są „inteligentne”, obsługują dynamiczne aktualizowanie z „zatrzymaniami tabulacji”, dostęp do zmiennych środowiskowych i możliwość uruchamiania skryptów wbudowanych. Pozwala to na skomplikowane zachowania. Tabulatory można przełączać za pomocą klawisza „Tab” i obsługiwać domyślny tekst, listy rozwijane, aby uzupełnić elementy fragmentu. Wyniki tych tabulatorów mogą być dynamicznie zmieniane w innej części fragmentu kodu, gdy użytkownik wypełnia punkt. Można użyć zmiennych środowiskowych TextMate, wspierających informacje o bieżącym zasięgu, numerze wiersza, nazwisku autora itp. Snippety mają również możliwość uruchamiania wbudowanych skryptów powłoki.

Wiązki

Gramatyki, fragmenty, makra, polecenia i szablony języka TextMate można pogrupować w „pakiety” funkcji. Każdy fragment, makro lub polecenie można wykonać, naciskając skrót klawiaturowy, wpisując określone słowo, a następnie naciskając klawisz „tab” (tzw. „wyzwalacze tabulacji”) lub wybierając polecenie z menu. Wyzwalacze kart są szczególnie przydatne; połączenie wyzwalaczy tabulacji i fragmentów kodu znacznie ułatwia kodowanie w językach pełnych lub językach z powszechnie wpisywanymi wzorcami.

Fragmenty, makra i polecenia mogą być ograniczone do określonego zakresu, tak aby na przykład polecenie „zamknij tag HTML” nie działało w skrypcie Pythona, zwalniając ten skrót klawiaturowy do użycia do czegoś innego. Pozwala to poszczególnym językom, a nawet poszczególnym zakresom, zastępować wbudowane polecenia, takie jak „Sformatuj akapit”, bardziej wyspecjalizowanymi wersjami. Nawet klawisze specjalne, takie jak klawisz powrotu i spacja, mogą zostać zastąpione.

Dostępne jest repozytorium Subversion, które zawiera znacznie więcej pakietów niż jest dostarczanych z pakietem edytora, dla wszystkiego, od Markdown, przez blogowanie do asemblera MIPS .

Zarządzanie projektami

Kilka dokumentów lub folderów można otworzyć jednocześnie w oknie projektu TextMate, które zawiera po bokach szufladę z listą nazw plików i folderów oraz szereg zakładek u góry. W TextMate 1.5 ta szuflada zapewnia użytkownikom możliwość organizowania plików i folderów z całego systemu plików, a także możliwość tworzenia wirtualnych folderów w celu dalszej organizacji. Ta funkcja została usunięta z TextMate 2 i zastąpiona zwykłą przeglądarką plików . Wyszukiwanie i zamienianie można wykonywać w całym projekcie, a polecenia mogą wchodzić w interakcje z wybranymi plikami lub folderami w szufladzie. Pakiety dla CVS , Subversion , darcs i innych systemów kontroli wersji umożliwiają TextMate zarządzanie wersjonowanym kodem.

Inne funkcje

TextMate ma wiele cech wspólnych dla edytorów programistycznych:

  • Zginane sekcje kodu mogą służyć do ukrywania obszarów dokumentu, które nie są aktualnie edytowane, w celu uzyskania bardziej zwartego widoku struktury kodu lub uniknięcia rozpraszania uwagi. Sekcje, które mają być składane, mogą być wybierane ręcznie lub struktura samego dokumentu może być wykorzystana do określenia falcowania.
  • Wyszukiwanie i zastępowanie oparte na wyrażeniach regularnych przyspiesza skomplikowane manipulacje tekstem. TextMate korzysta z biblioteki wyrażeń regularnych Oniguruma opracowanej przez K. Kosako.
  • Wyskakujące okienko funkcji zawiera listę sekcji lub funkcji w bieżącym dokumencie.
  • Historia schowka umożliwia użytkownikom jednoczesne wycinanie wielu sekcji tekstu, a następnie wklejanie ich.
  • Tryb edycji kolumn umożliwia dodawanie tego samego tekstu do kilku wierszy tekstu i jest bardzo przydatny do manipulowania danymi tabelarycznymi.
  • Wsparcie "rmate" dla uruchamiania textmate jako edytora dla plików ze zdalnych serwerów - znacznie ulepszone w stosunku do obejść potrzebnych w wersji 1

Ponadto TextMate obsługuje funkcje, które dobrze integrują się ze środowiskiem graficznym OS X:

  • Historia graficzna schowka obsługuje wklejanie z poprzednich kopii, w tym z wcześniejszych uruchomień.
  • Znajdź i zamień obsługują analogiczną historię graficzną.
  • Edycję dodatkowo usprawnia wiele kursorów (punkty wstawiania) oraz możliwość rozszerzenia bieżącego zaznaczenia na dodatkowe instancje tworzące wiele kursorów.
  • Okno widoku HTML oparte na oprogramowaniu WebKit pokazuje aktualizacje na żywo podczas edytowania dokumentu HTML.
  • Użytkownicy VoiceOver i Zoom mogą korzystać z TextMate dzięki obsłudze ułatwień dostępu.

Ograniczenia

TextMate ma kilka ograniczeń w porównaniu z innymi edytorami w swojej klasie:

  • Ponieważ TextMate nie jest ściśle powiązany z językiem skryptowym, tak jak Emacs z Emacs Lisp , użytkownicy nie mogą mieć pełnej kontroli nad konfiguracją i zachowaniem programu. Allan Odgaard wyjaśnił swoje przemyślenia na ten temat w e-mailu do listy dyskusyjnej TextMate, opowiadając się za rozwiązaniami „zalecanymi przez platformę”.
  • Brak wbudowanego walidatora HTML — ponieważ TextMate używa walidatora W3C do walidacji HTML, użytkownicy muszą mieć aktywne połączenie sieciowe, aby walidować HTML przy użyciu standardowych funkcji.
  • Pomimo znacznej obsługi makr, poleceń i fragmentów kodu TextMate nie ma wbudowanej obsługi podpowiedzi do kodu ani wspomaganego uzupełniania kodu, więc edytory tekstu obsługujące te funkcje mogą okazać się lepszym wyborem podczas nauki składni nowego język lub kodowanie w językach gadatliwych.
  • TextMate nie jest bezpieczny dla plików binarnych . Jest to wyłącznie tekst i nie gwarantuje, że dowolne dane binarne w pliku zostaną zachowane w cyklu ładowania/zapisywania, niezależnie od tego, czy dane są edytowane.

Nagrody

TextMate 1.5 zdobył nagrodę Apple Design Award za najlepsze narzędzie programistyczne w 2006 roku.

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki