Voici l’ébauche d’une contribution qui fournira un mode d’édition de squelette SPIP pour Emacs.
Les sources de la contrib sont disponibles ici
Qu’est ce que cela apporte...
- coloration syntaxique des parties SPIP du squelette,
- fonctions d’ajout de boucles automatiquement, on a juste à entrer un nom, un type et des critères,
- fonctions d’ajout de balises automatiquement, on a juste à entrer le nom et les filtres,
- les types de boucles, critères, balises, filtres sont automatiquement découverts dans vos fichiers mes_fonctions et les sources de SPIP et complétés pour vous.
- fonctions de créations de squelettes,
- créations d’
- fonctions d’extension d’une balise : on sélectionne une région, ce qui se trouve devant la balise dans la région devient le code optionnel avant, ce qui se trouve après devient le code optionnel après et on ajoute les filtres que l’utilisateur veut.
Des raccourcis clavier
- Tous les raccourcis sont précédés de C-c ;, c’est facile.
- Les raccourcis qui sont des versions spéciales d’un autre raccourci sont aussi précédés de C-u (Argument universel)
les raccourcis par défaut sont :
- C-c ; n pour creer un squelette
- C-c ; b pour insérer une boucle
- C-u C-c ; b pour insérer une boucle avec balises optionnelles
- C-c ; r pour insérer une boucle autour d’une région
- C-u C-c ; r pour insérer une boucle avec balises optionnelles
- C-c ; t pour insérer une balise
- C-u C-c ; t pour insérer une balise étendue
- C-c ; x pour étendre la première balise dans une sélection
- C-u C-c ; x pour étendre la dernière balise dans une sélection
- C-c ; i pour mettre un inclure
- C-c ; k pour passer une région dans un inclure
On peut définir ses propres raccourcis et changer le préfixe grâce au groupe de customization spip-raccourcis :
M-x customize-group
spip-raccourcis
Il est conseillé de configurer le mode avec
M-x customize-group
spip
Certaines actions se trouvent aussi dans le menu spip (malheureusement, cela ne marche pas encore sous Xemacs).
Coloration Syntaxique
Ca fait moins mal au yeux de regarder ses squelettes avec des belles couleurs. Actuellement, les boucles, balises, filtres et chaînes localisées sont colorés pour être plus facilement visibles.
Les couleurs peuvent être configurées grâce au groupe de customization spip-font-lock-faces :
M-x customize-group
spip-font-lock-faces
Installation
- téléchargez tous les fichier et placez-les dans un sous repertoire spip-mode sur votre disque.
- Dans votre fichier .emacs, placez les lignes suivantes :
(add-to-list 'load-path "/usr/pandrews/local/programs//share/emacs/site-lisp/spip-mode") ;; mettre ici le bon chemin vers le repertoire d'installation.
(require 'spip-mode)
(add-to-list 'auto-mode-alist '(".[sj]?html?'" . spip-mode))
(add-hook 'spip-mode-hook 'turn-on-font-lock)
Coloration du php et css
Si vous avez aussi installé les modes mmm, php et css, vous pouvez faire l’intégration de ces modes au mode spip :
(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
(add-to-list 'mmm-mode-ext-classes-alist '(spip-mode nil html-js))
(add-to-list 'mmm-mode-ext-classes-alist '(spip-mode nil embedded-css))
(mmm-add-group
'fancy-html
'(
(html-php-tagged
:submode php-mode
:face mmm-code-submode-face
:front "<[?]php"
:back "[?]>")
(html-css-attribute
:submode css-mode
:face mmm-declaration-submode-face
:front "style=""
:back """)))
(add-to-list 'mmm-mode-ext-classes-alist '(spip-mode nil fancy-html))
Personnalisation
On peut personnaliser certains paramètres grâce au groupe spip de customize :
M-x customize-group
spip
Fonctionnalités
Version 0.5 26/05/05 : (un peu en avance sur la date ?)
- complété et branché les fonctions de découverte, spip-mode
découvre les noms de balises, filtres etc. pour la complétion
automatiquement si spip-racine-locale est customizé. - ajouté la fonction pour mettre un inclure (raccourcis : C-c ; i)
la variable spip-racine-locale doit être réglée pour avoir la
completion des fichiers - ajouté une fonction pour creer un squelette (C-c ; n)
- ajouté une fonction pour envoyer une partie d’un squelette dans un inclure (C-c ; k)
la variable spip-repertoire-squelettes-local doit être réglée pour que ca marche bien - divisé en fichiers :
- spip-outils qui contient des ptts outils
- spip-decouvre pour la découverte de plein de chose dans les fichiers spip
- spip-hil pour la coloration
- spip-mode reste le fichier principal
- spip-regexp contient maintenant la plupart des expressions
réguliére (pour la coloration entre autres). Calculé avec sregex
(j’ai enfin capté le truc des backquote !!) - corrigé plein de truc dans les regexps, maintenant les boucles
avec des « » sont bien colorées (un keep oublié) et les critères
et paramètres qui contiennent des balises (avec paramètres) sont
maintenant bien colorés aussi. - nétoyé et ajouté de la doc.
Version 0.4 25/02/05 :
- des raccourcis customizable (ala ecb) pour les fonctions interactives. grâce au groupe spip-raccourcis
- fonction spip-etendre-balise pour rendre une balise étendue. Ajoute [] autour de la selection et ()
autour de la première balise dans la selection et ajoute les filtres spécifiés aprés la balise. Si on
passe un argument, cela etend la derniére balise dans la region.
Version 0.3 22/02/05 :
- fonction spip-insert-balise pour insérer une balise. Demande le nom de la balise. Si on l’appel avec un paramètre, alors une balise étendue est insérée,
- complétions dans le mini-buffer,
- historique séparé dans le mini-buffer,
- variable customize pour ajouter ses propres complétions,
- début de menu.
Version 0.2 21/02/05 :
- fonction spip-insert-boucle pour ajouter une boucle à l’endroit actuel. Demande le nom de la boucle, son type et une liste de critères. Si on l’appel avec un paramètre, alors les balises optionnelles (<b..> </b..> et <//b..>
) sont ajoutées
- fonction spip-insert-boucle-region pour ajouter une boucle autour de la sélection. Si on l’appel avec un paramètre, alors les balises optionnelles (<b..>, </b..> et <//b..>
) sont ajoutées
- correction de la coloration de
Version 0.1 :
La première version du mode ne fait que la coloration syntaxique des boucles, balises, inclure et chaînes localisées.
Liste des choses qui devraient marcher mais ne marchent pas
- indentation,
- menu dans xemacs,
Liste de choses à faire
- restriction sur les completions des types de boucle
- ajouter des fonctions pour ajouter du code facilement :
- insertion balise code optionnel/alternatif
- ajout d’un filtre
- fermeture de la dernière boucle ouverte
- complétions dans le buffer
- des balises
- des critères
- des filtres
- fonctions de localisation des squelettes :
- voir la traduction d’une chaîne,
- transformer une chaîne en chaîne localisée,
- uploader sur le site
- tester la page avec browse-url
- documentation en français.
Propositions de fonctionnalités
Si vous avez des idées de choses qui devraient être proposées par ce mode, ajoutez les ici. On les déplacera ensuite dans la liste de choses à faire.
- un double clic sur le début d’une boucle qui la
marquerait en entier - traduire la documentation,
- des meilleures couleurs.
- idem pour vim ? ;)
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |