IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 26.2 de GNU Emacs est disponible
Et apporte la compatibilité à la version 11.0 du standard Unicode

Le , par Patrick Ruiz

485PARTAGES

6  0 
La deuxième version de la branche 26.x de GNU Emacs est disponible pratiquement une année après la sortie de la première version. Pour cette mouture, l’équipe de développement met en avant trois fonctionnalités.

La première est liée à la gestion des modules Emacs – une fonctionnalité introduite dès la version 25 pour étendre les fonctionnalités d’Emacs à l’aide de code natif. Jusqu’ici, les utilisateurs lancés dans le processus de compilation de modules devaient se munir d’une copie récente des sources d’Emacs, les compiler avec le support des modules activé et se munir du fichier d’entête emacs.h. Illustration avec l’exemple de la compilation d’un module monmod.c pour emacs 25.0.92:

Code C : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <emacs-module.h> 
  
/* Declare mandatory GPL symbol.  */ 
int plugin_is_GPL_compatible; 
  
/* New emacs lisp function. All function exposed to Emacs must have this prototype. */ 
static emacs_value 
Fmymod_test (emacs_env *env, int nargs, emacs_value args[], void *data) 
{ 
  return env->make_integer (env, 42); 
} 
  
/* Bind NAME to FUN.  */ 
static void 
bind_function (emacs_env *env, const char *name, emacs_value Sfun) 
{ 
  /* Set the function cell of the symbol named NAME to SFUN using 
     the 'fset' function.  */ 
  
  /* Convert the strings to symbols by interning them */ 
  emacs_value Qfset = env->intern (env, "fset"); 
  emacs_value Qsym = env->intern (env, name); 
  
  /* Prepare the arguments array */ 
  emacs_value args[] = { Qsym, Sfun }; 
  
  /* Make the call (2 == nb of arguments) */ 
  env->funcall (env, Qfset, 2, args); 
} 
  
/* Provide FEATURE to Emacs.  */ 
static void 
provide (emacs_env *env, const char *feature) 
{ 
  /* call 'provide' with FEATURE converted to a symbol */ 
  
  emacs_value Qfeat = env->intern (env, feature); 
  emacs_value Qprovide = env->intern (env, "provide"); 
  emacs_value args[] = { Qfeat }; 
  
  env->funcall (env, Qprovide, 1, args); 
} 
  
int 
emacs_module_init (struct emacs_runtime *ert) 
{ 
  emacs_env *env = ert->get_environment (ert); 
  
  /* create a lambda (returns an emacs_value) */ 
  emacs_value fun = env->make_function (env, 
              0,            /* min. number of arguments */ 
              0,            /* max. number of arguments */ 
              Fmymod_test,  /* actual function pointer */ 
              "doc",        /* docstring */ 
              NULL          /* user pointer of your choice (data param in Fmymod_test) */ 
  ); 
  
  bind_function (env, "mymod-test", fun); 
  provide (env, "mymod"); 
  
  /* loaded successfully */ 
  return 0; 
}
Code du module


Code : Sélectionner tout
1
2
3
4
$ make ROOT=$HOME/prog/emacs-25.0.92 
gcc -ggdb3 -Wall -I/home/aaptel/prog/emacs-25.0.92/src -fPIC -c monmod.c 
gcc -shared  -o monmod.so monmod.o 
rm monmod.o
Compilation du module


L’équipe de développement annonce que la compilation des modules est désormais possible en dehors de l’arborescence Emacs sur laquelle l’exemple précédent s’appuie.

Les autres nouvelles à propos d’Emacs 26.2 sont, primo, qu’il est désormais compatible avec la version 11.0 du standard Unicode. Noter en sus que l’éditeur de répertoire n’est pas en reste dans cette mouture. « L’application de la commande 'Z' sur le nom d’un répertoire compresse tous ses fichiers. Elle génère une archive compressée '.tar.gz' qui contient tous les fichiers ainsi que tous les sous-répertoires », précise l’équipe de développement Emacs.


GNU Emacs : simple éditeur de texte ou plus ?

GNU Emacs est souvent présenté comme un éditeur de texte extensible, personnalisable, gratuit et libre créé par Richard Stallman. Sur la toile, un internaute recadre : « Emacs est souvent considéré comme un éditeur, mais ce n’est pas le cas. »

« Il abrite quelques éditeurs différents dont Vim. Emacs est de façon basique une plateforme informatique centrée sur le texte et extensible à partir d’une variante du langage Lisp. Elle dispose désormais de plusieurs milliers d’applications et paquetages. À l’époque, l’une des blagues courantes était qu’Emacs est un système d’exploitation sans éditeur de texte décent. De nos jours, on en compte plusieurs. Aujourd’hui, on devrait plutôt s’amuser de ce qu’il lui manque un logo décent et un département marketing », ajoute-t-il.

Elpy (un environnement de développement en langage Python pour Emacs), web-beautify (un paquetage pour le formatage de HTML, CSS, JavaScript/JSON pour Emacs), PHPUnit (un gestionnaire de tests unitaires PHP pour Emacs), etc. La liste est longue et entièrement consultable sur le GitHub dédié.

Utilisation du paquetage web-beautify


Sources : Notes de version, GitHub des paquetages Emacs

Et vous ?

Qu’en pensez-vous ?

Emacs pour vous c’est quoi ? Un simple éditeur de texte ou plus ?

Pour quels usages vous appuyez-vous sur Emacs ?

Que pensez-vous des nouveautés introduites dans GNU Emacs 26.2 ?

Lesquelles trouvez-vous les plus utiles ? Qu'attendez-vous encore de l'éditeur de texte ?

Voir aussi :

Org Mode de l'éditeur de texte GNU Emacs débarque sur Visual Studio Code sous forme d'extension, actuellement disponible en version alpha
Vim : la version 8.1 de l'éditeur de texte multiplateforme est disponible, avec le support de l'exécution d'un terminal dans une fenêtre Vim
Visual Studio Code 1.23 est disponible : tour d'horizon des nouveautés dans l'éditeur de code open source et multiplateformes de Microsoft
Sublime Text 3.1 est disponible, au menu : meilleure prise en charge des moniteurs à très haute densité de pixels et plus

Une erreur dans cette actualité ? Signalez-nous-la !