TextMate
1471541
30613532
2008-06-13T17:13:47Z
192.42.249.1
/* Commandes */ redondance
{{Infobox Logiciel
| logo =
| nom = TextMate
| logo =
| image =
| description = capture d'écran de TextMate
| développeur = Allan Odgaard
| dernière version = 1.5.7 révision 1455
| date de dernière version = {{Date|29|décembre|2007}}
| environnement = [[Mac OS X]]
| type = [[Éditeur de texte]]
| licence = [[Logiciel propriétaire|Licence propriétaire]]
| site web = [http://macromates.com/ macromates.com]
}}
'''TextMate''' est un [[éditeur de texte]] générique pour [[Mac OS X]]. Il combine la puissance des éditeurs de texte tels que [[Vim]] et [[Emacs]]
avec la simplicité et l'élégance du [[GUI]] d'un programme Macintosh.
La plupart de ses utilisateurs sont des [[programmeur]]s parce que TextMate est conçu pour s'intégrer naturellement dans le [[workflow]] de la [[programmation agile]].
La plupart des contributeurs principaux de [[Ruby on Rails]] utilisent TextMate<ref>{{en}} http://developer.apple.com/tools/rubyonrails.html</ref>.
La puissance de TextMate a pour conséquence que la [[courbe d'apprentissage]] est plus difficile que celle d'éditeurs plus simples<ref>{{en}} Scott McNulty TextMate: ''Power Editing for the Mac'', 28 février 2007< http://www.tuaw.com/2007/02/28/textmate-power-editing-for-the-mac > </ref>.
Les fonctionnalités les plus notables sont les projets dont les fichiers sont sélectionnables par des [[onglet (informatique)|onglets]], les [[Macro-définition|macros]] enregistrables, le [[pliage de code]], la gestion de [[snippet]]s, l'intégration au [[shell (informatique)|shell]] et le support d'extensions appelées paquets (bundles).
TextMate 1.5 a gagné l'[[Apple Design Awards|Apple Design Award]] du meilleur outil de développement informatique en 2006.
<br>La version 2.0 de TextMate utilisera des fonctionnalités spécifiques à [[Mac OS X 10.5]] comme [[Chinois, japonais et coréen|CJC]]. Il sera donc postérieur à la sortie de ce dernier prévue pour octobre 2007. <ref>{{en}} Allan Ogaard. ''2.0 Will Require Leopard'', 9 novembre 2006 < http://macromates.com/blog/archives/2006/11/09/20-will-require-leopard/ ></ref>
<ref>{{en}} Allan Ogaard. ''Faking CJK Support'', 9 novembre 2006 < http://macromates.com/blog/archives/2006/11/09/faking-cjk-support/ ></ref>
Fort de cette reconnaissance, le logiciel est régulièrement imité, notamment pour des portages vers [[Linux]] ou [[Windows]].
== Fonctionnalités ==
TextMate inclut des fonctionnalités qui le distinguent d'autres éditeurs. Ses macros, commandes et snippets permettent l'optimisation de comportements complexes et son système de portées inspiré du système de [[feuilles de style en cascade]] de [[Hypertext Markup Language|HTML]] le distingue aujourd'hui des autres éditeurs de texte, permettant la [[coloration syntaxique]] d'entités arbitrairement imbriquées.
=== Portées imbriquées ===
TextMate permet aux utilisateurs de créer leur propre [[coloration syntaxique]]
en utilisant une version modifiée des [[liste de propriétés|listes de propriétés]] d'Apple en [[ASCII]] pour définir des grammaires de langage. Ces grammaires permettent
l'imbrication de règles. Ces règles sont définies en utilisant la
[[bibliothèque logicielle|bibliothèque]] d'[[expression régulière|expressions régulières]] de [[Onigurama]].
Chaque endroit du document appartient donc à une ou plusieurs portées, qui définissent où cet endroit est dans le document, comment il doit être coloré, et quel comportement TextMate doit avoir à cet endroit.
Par exemple, le titre de l'un de ces liens dans la section "liens externes"
aura la portée :
<div style="padding-left:4em; text-indent:-3ex"><code>text.html.mediawiki markup.list.mediawiki meta.link.inline.external.mediawiki string.other.link.title.external.mediawiki</code></div>
Cette portée nous dit que nous avons affaire à un titre de lien dans un lien
dans une liste dans un document MediaWiki.
Les thèmes de TextMate peuvent colorer toutes les portées qu'ils choisissent, à différents degrés de précision. Par exemple, un thème peut décider de colorer
chaque constante (<code>constant.*</code>) de manière identique, alors qu'un autre
peut décider de colorer les constantes numériques (<code>constant.numeric.*</code>)
de manière différente des caractères échappés (<code>constant.character.escape.*</code>). La syntaxe des portées imbriquées permet aux auteurs des grammaires de langages et aux auteurs des thèmes différents niveaux de couverture, de sorte que chacun peut choisir entre la simplicité ou la complétude.
=== Snippets ===
Sous sa forme la plus simple, la gestion de snippets permet d"insérer un snippet au point d'insertion courant. Mais des comportement plus sophistiqués sont possibles, fondés sur des généralisations de la notion de snippet. D'abord les snippets peuvent inclure une ou plusieurs "stations de tabulations" au travers desquelles on peut cycler avec la touche de tabulation. Ensuite, les résultats de ces "stations de tabulations' peuvent être dynamiquement changés dans d'autres portions du snippet, lorsque l'utilisateur remplit le contenu de la station courante. Finalement, les snippets ont accès aux variables d'environnement courantes de TextMate telles que la portée courante, le numéro de ligne courant, le nom de l'auteur et ont aussi la capacité d'appeler des [[Langage de script|scripts]].
=== Macros ===
TextMate, comme beaucoup d'éditeurs avant lui, permet à l'utilisateur d'enregistrer une série d'actions dans des macros temporaires pour l'optimisation des
tâches répétitives. Les macros utilisées peuvent être sauvées pour une utilisation ultérieure. Les macros peuvent inclure d'autre fonctionnalités d'automation dont d'autres macros.
=== Commandes ===
Comme la plupart des éditeurs de texte, TextMate permet aux utilisateurs d'exécuter des scripts appelés par des [[raccourcis claviers]] ou des menus. Les commandes lisent la ligne de [[shebang]] pour déterminer le [[langage de script]] utilisé par la commande. Ce peut être par exemple [[Bourne-Again shell|Bash]], [[Ruby]], [[Python (langage)|Python]] ou [[AppleScript]].
Via AppleScript, les commandes TextMate peuvent interagir avec d'autres programmes
Mac. Le texte du document ou de la [[Sélection (informatique)|sélection]] peut être envoyé dans un [[tube Unix|tube]] UNIX
et est disponible pour les scripts via [[stdin]]. Ces scripts reçoivent aussi l'état du document via des [[variable d'environnement|variables d'environnement]].
Il existe diverses options de sortie, telles que la visualisation dans une fenêtre séparée via le [[WebKit]], le remplacement du texte sélectionné, ou l'insertion du texte comme snippet.
=== Paquets ===
Les grammaires de langage, les snippets, les macros, les commandes et les patrons peuvent être groupés en des "paquets" de fonctionnalités. La plupart des snippets, macros ou commandes peuvent être exécutés grâce à un raccourci clavier, en tapant un mot particulier et en pressant la touche tabulation (appelé déclencheur par tabulation) ou en sélectionnant la commande dans un menu. Les déclencheurs par tabulation sont particulièrement utiles. La combinaison de déclencheurs par tabulation et de snippets facilite beaucoup la programmation dans les langages verbeux ou les langages avec des motifs textuels récurrents.
Les snippets, macros et commandes peuvent être limités à une portée particulière. Ainsi, la balise de fermeture html n'a pas d'intérêt dans un script Python, libérant ainsi le raccourci clavier pour quelque chose d'autre. Cela permet à des langages individuels, voire même des portées individuelles, de prendre le pas sur les commandes par défaut. On peut ainsi remplacer le "reformattage de paragraphe" par des versions plus spécialisées. Même les touches les plus communes comme la touche retour chariot ou l'espace peuvent avoir leur comportement modifié pour rendre plus facile le codage en un langage particulier.
36 paquets sont délivrés avec TextMate, et un dépôt Subversion contient 121 paquets, qui supportent des choses aussi diverses que
[[Markdown]], l'activé de [[blog]] ou le [[langage d'assemblage]] de [[architecture MIPS|MIPS]]<ref>
Pour plus d'information sur l'obtention de ces paquets, voir le manuel TextMate.
{{en}} http://macromates.com/textmate/manual/bundles#getting_more_bundles</ref>.
Un paquet [[MediaWiki]] a été récemment ajouté.
=== Gestion de projet ===
Plusieurs documents ou [[Répertoire (informatique)|répertoires]] peuvent être ouverts en même temps dans une fenêtre de projet TextMate qui fournit un tiroir sur le côté. Ce tiroir liste les noms de fichier ou de répertoire. Une série d'onglets au sommet de la fenêtre TextMate liste les fichiers ouverts. Les recherches et les remplacements peuvent être faits à travers tout un projet, et les commandes peuvent interagir avec les fichiers ou répertoires sélectionnés dans le tiroir. Les paquets pour [[CVS]], [[Subversion]], [[darcs]], [[SVK (informatique)|SVK]] ou d'autres [[logiciel de gestion de versions|Logiciels de gestion de versions]] permettent de gérer du code versionné à l'intérieur même de TextMate.
=== Autres fonctionnalités ===
TextMate propose d'autres fonctionnalités notables :
* Le [[pliage de code]] permet de cacher des portées entières du document en cours d'édition, ce qui donne une vue plus compacte du code édité. Les sections à plier peuvent être sélectionnées manuellement ou la structure du document détermine les zones pliables.
* Des fonctionnalités de recherche et de remplacement avec support des expression régulières facilitent les manipulations complexes de texte.
* Un popup fournit la liste des sections ou fonctions du document courant.
* L'[[historique]] du [[presse-papiers]] permet aux utilisateurs de [[Copier-coller|couper]] plusieurs sections de code en même temps et de les colller.
* Un mode d'édition par colonne rend facile l'édition de données tabulaires.
* Une fenêtre utilisant [[WebKit]] permet la mise à jour automatique de la vue générée à partir du document html édité.
=== Limitations ===
TextMate comporte quelques limitations:
* Le support pour les [[polices de caractères]] à largeur variable est manquant. Cela signifie que le support de langues telles que le chinois, le japonais ou le coréen est inexistant.
* Il n'y a pas de support pour les langues qui s'écrivent de droite à gauche, comme l'arabe ou l'hébreu.
* Les gros fichiers peuvent ralentir considérablement TextMate. D'autres éditeurs ont un meilleur support pour l'édition de gros fichiers.
* TextMate n'a pas de support intégré pour ([[SFTP|S]])[[File Transfer Protocol|FTP]] bien qu'un tel support soit planifié pour TextMate 2.0. <!-- this should probably link to that 'future directions' post already referenced earlier -->
* TextMate n'est pas couplé étroitement à un langage de script, comme l'est Emacs, donc il est impossible d'avoir un contrôle complet sur le comportement de certaines commandes internes telles celles qui indentent des sections de texte ou celles qui déplacent des colonnes. Mais on peut accomplir presque toutes les actions utiles avec des commandes ou des macros. Allan Odgaard a expliqué ses idées sur le sujet dans un courriel dans la liste TextMate : "Vous négligez le pouvoir des abstractions déclaratives qui est un des avantages fondamentaux de TextMate. Résoudre des problèmes avec du code est souvent contreproductif à la recherche de nouvelles abstractions; et ces abstractions, conçues correctement, apportent beaucoup plus à long terme". <ref>{{en}} Allan Odgaard. “Re: Changing cursor position from command”. ''TextMate mailing list''. 14 février 2007. http://comox.textdrive.com/pipermail/textmate/2007-February/017457.html</ref>
* Pas de validateur HTML intégré. TextMate utilise [[Service de validation du W3C|W3C validator]] pour la validation de html validation: l'utilisateur doit donc être en ligne pour une telle validation.
== Communauté ==
Bien que TextMate ne soit pas une application [[Open Source]],
comme beaucoup de produits Open Source, il a une base d'utilisateurs
large et active dont des douzaines contribuent au dépôt subversion de paquets. Le [[wiki]] de TextMate donne de nombreux conseils, des suggestions de fonctionnalités et des liens vers des ressources externes.
Le trafic de la liste de courriels est moyen avec un bon rapport signal/bruit. Il y a un système de tickets pour enregistrer des rapports de bogue et des requêtes de fonctionnalités. Enfin, un canal IRC ([irc://irc.freenode.net/##textmate ##textmate]) est réactif aux questions des utilisateurs.
Bien que les utilisateurs de TextMate écrivent du code en différents langages de programmation, le support de TextMate pour Ruby et [[Ruby on Rails]] est notable car les développeurs principaux de Rails utilisent Mac OS X et TextMate, dont [[David Heinemeier Hansson]], le créateur de Rails.
== Versions pour d'autres plateformes ==
Allan a reçu de nombreuses requêtes pour des versions [[Microsoft Windows]] et [[Linux]] de TextMate, mais a publiquement affirmé qu'il n'est pas intéressé au développement de tels [[Portage informatique|ports]].
<ref>{{en}} Odgaard, Allan. “Windows/Linux Alternative?” ''TextMate Blog'', 7 novembre 2005. http://macromates.com/blog/archives/2005/11/07/windowslinux-alternative</ref>.
Au moins deux tentatives sont en cours, dont l'une tente d'être compatible avec les paquets TextMate.
<ref>{{en }}“The Power of Textmate on Windows”, ''E Text Editor Blog'', 20 novembre 2006. http://e-texteditor.com/blog/2006/textmate_on_windows</ref>{{,}}<ref>{{en}}“Is Intype a clone of TextMate?” ''Intype Frequently Asked Questions''. http://intype.info/faq/#faq-basic-6</ref>
InType qui tourne sous Windows est volontairement très inspiré. <ref>{{en}} http://intype.info/home/index.php</ref>
== Historique ==
En 2004, Allan Odgaard, insatisfait par les éditeurs de texte Macintosh tels que [[TextEdit]], [[BBedit]] et [[Xcode]], qu'il trouvait rigides et limités, et par les éditeurs Unix tels que [[Vim]] et [[Emacs]] qui ne se comportaient pas comme des applications natives Mac, décida de créer un éditeur de texte. TextMate 1.0 fut délivré le 5 octobre 2004, après seulement 5 mois de développement à plein temps.
<!--
unsatisfied both with existing Macintosh text editors such as [[TextEdit]], [[BBEdit]], and [[XCode]], which he felt were inflexible and limited, and with Unix editors such as [[Vim (text editor)|Vim]] and [[Emacs]], which do not feel like native Mac applications, set out to create a text editor. TextMate 1.0 came out on [[5 October]] [[2004]], after only 5 months of full-time development, quickly followed on [[21 October]] [[2004]] by 1.0.1.<ref>David Hansson. “TextMate 1.0 is finally here!”, ''TextMate Blog'', [[5 October]] [[2004]]. http://macromates.com/blog/archives/2004/10/05/hello-world/</ref><ref>Allan Odgaard. “Profiles/Allan Odgaard” on the TextMate wiki, [[20 November]] [[2005]]. http://macromates.com/wiki/Profiles/AllanOdgaard</ref><ref>David Hansson. “TextMate 1.0.1 emerges after nine betas”, ''TextMate Blog'', [[21 October]] [[2005]]. http://macromates.com/blog/archives/2004/10/21/textmate-101-emerges-after-nine-betas/</ref> The release focused on implementing a small feature set well, and didn’t have a preference window or a toolbar, didn’t integrate [[File Transfer Protocol|FTP]] as [[BBEdit]] does, and had no options for printing, to the chagrin of some reviewers, who didn’t know what to make of the spartan editor window.<ref>Matt Willmore. “TextMate 1.0.1 Review: A Checkmate for TextMate?”, ''Maczealots.com'', [[8 October]] [[2004]]. http://maczealots.com/reviews/textmate/</ref><ref>Michael “drunkenbatman” Bell. “TextMate: The Missing Editor for OS X”, ''Drunkenblog'', [[4 November]] [[2004]]. http://www.drunkenblog.com/drunkenblog-archives/000347.html</ref> At the beginning only a small number of programming languages were supported, as only a few “language bundles” had been created. On the other hand, many raved about its unique features, and welcomed a new editor to a market they felt had stagnated with the dominance of [[BBEdit]].<ref>Kimbro Staken. “A cool new text editor - TextMate - Mac OS X”, ''Inspirational Technology'', [[6 October]] [[2004]]. http://www.xmldatabases.org/WK/blog/2129_A_cool_new_text_editor_-_TextMate_-_Mac_OS_X.item</ref>--><!-- need references here -->
L'année suivante après TextMate 1.0.2, qui fut délivré le 10 décembre 2004,
<!-- Over the next year after TextMate 1.0.2, which came out on [[10 December]] [[2004]], a series of TextMate 1.1 [[development stage#Beta|betas]] shipped, and the program steadily improved, in the process picking up a preferences window with a GUI for creating and editing themes, a status bar with a symbol list, and menus for choosing language and tab settings, a “bundle editor” for editing language grammars, commands, snippets, etc., and lots of general polish. Then on [[6 January]] [[2006]], MacroMates released TextMate 1.5, the first “stable release” since 1.0.2.<ref> Allan Odgaard. “TextMate 1.5”, ''TextMate Blog'', [[6 January]] [[ 2006]]. http://macromates.com/blog/archives/2006/01/06/textmate-15/</ref> Reviews were overwhelmingly positive, and many reviewers who had previously found fault with the program now enthusiastically endorsed it.<ref>Rui Carmo. “Third Time’s The Charm”, ''Tao of Mac'', [[8 January]] [[2006]]. http://the.taoofmac.com/space/blog/2006-01-08</ref> need some more references -->
TextMate est encore développé à un rythme soutenu, et sa version courante est 1.5.7. En février 2006, le blog de TextMate exprimait les intentions de l'auteur pour les directions futures dont une amélioration de la gestion de projets, un système de greffons pour le support de fichiers distants via FTP, et le contrôle de version
<ref>{{en}} Allan Odgaard. “Directions futures”, ''Blog TextMate Blog'', 15 février 2006. http://macromates.com/blog/archives/2006/02/15/future-directions/</ref>
<!--
On [[8 August]] [[2006]], TextMate was awarded the Apple Design Award for Best Developer Tool, at Apple’s [[Worldwide Developers Conference]] in [[San Francisco]], [[California]], to “raucous applause.”<ref>John Gruber. “ADA: TextMate 1.5.2”, ''Daring Fireball Linked List'', [[8 August]] [[2006]]. http://daringfireball.net/linked/2006/august#tue-08-textmate</ref> It was recently the “Featured Download” among developer tools at Apple’s website.<ref>Development Tools downloads at Apple.com. TextMate is the “Featured Download”. Accessed [[13 August]] [[2006]] http://www.apple.com/downloads/macosx/development_tools/</ref>
-->
<!--
== Bibliography ==
* {{cite book
| last = Gray
| first = James Edward II
| title = Textmate: Power Editing for the Mac
| publisher = Pragmatic Bookshelf
| year = 2007
| month = January
| isbn = 097873923X
| url = http://www.pragmaticprogrammer.com/titles/textmate/
}}
-->
== Liens externes ==
* {{en}} [http://www.macromates.com/ TextMate]
** {{en}} [http://macromates.com/blog/ Blog de TextMate]
** {{en}} [http://macromates.com/wiki/ Wiki de TextMate]
** {{en}} [http://macromates.com/textmate/manual/ Manuel de TextMate]
* {{en}}[http://www.podtech.net/home/technology/1864/talk-about-textmate-at-macworld-2007/ podcast interview at the TextMate booth] at the Macworld 2007 expo, by PodTech.net
==Source==
{{Traduction/Référence|en|TextMate}}
==Notes==
<references/>
{{Portail|informatique|Apple Macintosh}}
[[Catégorie:Éditeur de texte]]
[[Catégorie:Logiciel pour Mac OS]]
[[de:Textmate]]
[[en:TextMate]]
[[pl:TextMate]]
[[zh:Textmate]]