Insérez vos préférences de TextMate à votre code source

by Joris on août 5, 2010

textmate logo

J’ai développé un petit bundle TextMate pour ajouter automatiquement les préférences d’édition de votre fichier, en y ajoutant quelques statistiques…
J’ai cherché un peu sur le Net pour savoir si ce genre de bundle existait déjà pour TextMate mais je n’ai rien trouvé ou peut-être ne sais-je tout simplement pas comment se nomme ce bloc d’informations qu’on ajoute à la fin d’un code source.

Désormais, j’ajouterai les informations sur l’édition de mes fichiers :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
/**
 * Exception
 * 
 * @copyright Copyright (c) 2010, Joris Berthelot
 * @author Joris Berthelot <admin@eexit.net>
 * @since 1.00
 * @version 1.00
 * @package Foo
 */
class Exception extends \Exception
{
}
 
/*
Filename: Exception.php
Date: Thu, 05 Aug 2010 12:02:12 CEST
Tab size: 4
Soft tabs: YES
Column limit: 80
Word count: 34
*/
?>

C’est pas magnifique tout ça ? Ainsi, très rapidement, le lecteur pourra obtenir les informations pour l’affichage optimal du fichier qu’il est en train de visualiser.

Code source

Ce bundle est exclusivement développé pour PHP. Allez dans le menu Bundles » Bundle Editor » Edit Snippets. Allez ensuite dans l’arbre PHP et créez un nouveau « snippet » que vous nommerez Editor Informations (par exemple).

Collez le code suivant dans la zone principale

`echo "$TM_COMMENT_START_3"`
Filename: $TM_FILENAME
Date: `date +%a\,\ %d\ %b\ %Y\ %X\ %Z`
Tab size: $TM_TAB_SIZE
Soft tabs: $TM_SOFT_TABS
Column limit: $TM_COLUMNS
Word count: `wc -w $TM_FILEPATH | cut -c 1-8 | sed -e "s/^[ ]*//g"`
`echo "$TM_COMMENT_END_3"`

Mettez le raccourcis que vous voulez (j’ai choisi un « Tab Trigger » edinf) et mettez dans « Scope Selector » source.php. Rechargez les bundles via le même menu que pour ouvrir l’éditeur et go !

Bon triggage !

7 comments

Comme à mon habitude, je vais être franc : c’est nul.
Cela suppose que toute l’équipe de développement est sous TextMate. Ce qui est rarement le cas (voir jamais).

Qui plus est, cela rends toute migration vers un autre IDE fortement compliquée.

J’en déconseille fortement l’utilisation (mais ce n’est que mon point de vue bien évidemment).

by Damien on 05/08/2010 at 12:45. #

En quoi l’affichage de ce bloc d’informations rend la migration vers un autre IDE compliquée ?
C’est purement à titre informatif…

by Joris on 05/08/2010 at 12:51. #

Eh bien tu ajoute des commentaires spécifiques à TextMate et ce dans chaque fichier.
Lorsque tu va migrer vers un autre IDE, ces commentaires ne vont peut-être pas géner l’application. Mais ils seront tout de même totalement inutile.
Par ailleurs tu sera obligé de refaire un truc assez contraignant pour obtenir quelque chose de similaire.

by Damien on 05/08/2010 at 12:53. #

Ouais mais non, je ne vois pas en quoi cela pose une contrainte… C’est utile quand tu développe une librairie mais évidemment pas forcément adapté pour un projet qui sera sensé évolué avec différentes équipe.
Ouais, bon, je fais mon @fabpot :P

by Joris on 05/08/2010 at 14:52. #

Même si l’idée n’est pas mauvaise en soit, je trouve cela complètement idiot de spécifier cette information fichier par fichier.
La même information sera donc très souvent répercutée sur une infinité de fichier différents. Quid de la redondance (qui est censé être l’ennemie du développeur).

Arriver à normaliser les meta-données sur les projets que stockent les IDE serait vachement plus intéressant en fait.
Imaginez un fichier définissant le projet et compatible VIM, Eclipse, NetBeans … Ca c’est plus sympa comme perspective :)

by Méthylbro on 05/08/2010 at 22:04. #

C’est parce que je regarde beaucoup les codes source de PHP et en C c’est assez fréquent de voir ces informations…

En tout cas, c’est vrai que ce serait une très bonne chose d’avoir un fichier de configuration de projet interopérable… Mais où irait-on ?
Vers l’unicité des IDE… comme les frameworks ? :D

by Joris on 06/08/2010 at 12:34. #

Dans les sources de php, et dans beaucoup d’autres sources, ces infos qu’on voit en début ou fin de fichier sont des modelines.

Ce qui serait mieux, c’est que le bloc d’info ne soit pas passif mais actif: le bundle « lirait » les lignes (ou la ligne, en changeant le format) et configurerait tout seul l’éditeur. Il me semble que TabMate est un bundle qui fait ça.

by metagoto on 08/08/2010 at 04:12. #

Leave your comment

Not published