Jump to content

Extension:CodeMirror

From mediawiki.org
This page is a translated version of the page Extension:CodeMirror and the translation is 100% complete.
A ne pas confondre avec CodeEditor .
Manuel des extensions MediaWiki
CodeMirror
État de la version : stable
Implémentation Interface utilisateur
Description Fournit la mise en évidence de la syntaxe dans les éditeurs
Auteur(s)
Maintenance Community Tech
Dernière version 6.0.0
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
PHP 8.2+
  • $wgCodeMirrorV6
  • $wgCodeMirrorPrimaryPreferences
  • $wgCodeMirrorConflictingGadgets
  • $wgCodeMirrorEnabledModes
  • $wgCodeMirrorDefaultPreferences
  • $wgCodeMirrorLineNumberingNamespaces
Licence Licence publique générale GNU v2.0 ou ultérieur
Téléchargement
README
Aide Help:Extension:CodeMirror/fr
Traduire l’extension CodeMirror sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L'extension CodeMirror fournit un éditeur indépendant avec la mise en valeur de la syntaxe pour un nombre donné de langages de programmation et de balises, y compris le wikicode, en utilisant la bibliothèque CodeMirror. Peut être utilisé avec d'autres éditeurs tels que WikiEditor , l'Éditeur de wikicode 2017 , Proofread Page , et autres. Pour l'utilisation et la liste des fonctionnalités, voir Aide:Extension:CodeMirror .

En 2024–2025, l'extension a été mise à jour vers la nouvelle version majeure CodeMirror 6 et avec elle, beaucoup de nouvelles fonctionnalités ont été ajoutées.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé CodeMirror dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeMirror
    
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'CodeMirror' );
    
  • Configurer si nécessaire.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Configuration

Pour la personnalisation des couleurs et des diverses fonctionnalités de CodeMirror, voir Aide:Extension:CodeMirror .

Pour activer par défaut CodeMirror sur tous les utilisateurs, ajouter ceci à votre LocalSettings.php  :

# Active l’utilisation de CodeMirror par défaut dans le wikicode, mais permet encore aux utilisateurs de le désactiver
$wgDefaultUserOptions[ 'usecodemirror' ] = true;

Si CodeMirror est utilisé à la place de CodeEditor pour la modification du code, une deuxième option, usecodemirror-code a un effet, qui par défaut est mis à true.


$wgCodeMirrorEnabledModes
Drapeau temporaire de fonctionnalité pour contrôler les conflits avec Extension:CodeEditor . Voir la section ci-dessous concernant l'utilisation de CodeMirror à la place de CodeEditor pour plus d'informations.
$wgCodeMirrorConflictingGadgets
Tableau de noms de gadgets qui, s'ils sont activés, empêcheront CodeMirror de se charger. wikEd par défaut,
$wgCodeMirrorPrimaryPreferences
Préférences pour montrer le panneau des préférences de l'éditeur interne. Celles-ci doivent avoir un effet visuel clair ou être communément utilisées pour garantir un accès plus facile à la sélection de la fonctionnalité. Les préférences qui ne figurent pas ici restent disponibles dans le dialogue complet des préférences.
$wgCodeMirrorDefaultPreferences
Vérifier quelles fonctionnalités sont activées par défaut pour tous les utilisateurs. Voir ci-dessous pour d'autres informations.
$wgCodeMirrorDefaultPreferencesCode
Même chose que $wgCodeMirrorDefaultPreferences appliqué au code; c'est à dire tout mode CodeMirror différent de mediawiki (wikicode).

Préférences par défaut

Les préférences par défaut sont définies soit pour le wikicode ($wgCodeMirrorDefaultPreferences) ou pour tous les autres modes tels que JavaScript, CSS et JSON ($wgCodeMirrorDefaultPreferencesCode). Pour chaque fonctionnalité utiliser true or false pour l'activer (ou la désactiver) complètement, ou fournir un tableau contenant les Id (entiers) des espaces de noms indiquant où la fonctionnalité doit être activée par défaut.

Notez que ce paramètre de configuration ne s'applique qu'à la valeur par défaut. Les utilisateurs peuvent redéfinir les valeurs par défaut dans leurs propres préférences CodeMirror. Lors du changement de préférence, il s'appliquera uniquement soit au wikicode (le mode mediawiki) ou hors wikicode (tous les autres modes).

Par exemple :

# Limiter la mise en valeur de l'espace blanc aux parties non wikicode.
$wgCodeMirrorDefaultPreferences[ 'whitespace' ] = false;
$wgCodeMirrorDefaultPreferencesCode[ 'whitespace' ] = true;

# restreindre l'autocomplétion de CodeMirror aux modèles et au code
$wgCodeMirrorDefaultPreferences[ 'autocomplete' ] = [ NS_TEMPLATE ];
$wgCodeMirrorDefaultPreferencesCode[ 'autocomplete' ] = true;
$wgCodeMirrorDefaultPreferences
Fonctionnalité Compatibilité avec
l'éditeur 2017
Valeur par défaut Valeur par défaut (code)[1]
activeLine N false true
autocomplete N true true
autofocus Yes[2] true true
bidiIsolation[3] N false false
bracketMatching Yes true true
closeBrackets N false true
closeTags[4] N false false
codeFolding N true true
foldAllRefs [5] N false N/A
highlightRefs [6] Yes true N/A
lineNumbering Yes true true
lineWrapping Yes[7] true true
lint N false true
openLinks N true true
specialChars N true true
trailingWhitespace N false false
whitespace N false false

Différences avec CodeMirror 5

Nouvelles fonctionnalités


Obsolescence et autres modifications

  • Les modules du ResourceLoader ont changé. Voir le guide de migration.
  • L'accroche ext.CodeMirror.switch est obsolète. Utiliser ext.CodeMirror.toggle à la place.
  • La classe CSS .cm-mw-mnemonic a été renommée en .cm-mw-html-entity.
  • La classe CSS .cm-mw-doubleUnderscore a été renommée en .cm-mw-double-underscore.
  • La classe .cm-mw-template-name-mnemonic a été supprimée. Utiliser .cm-mw-template-ground.cm-html-entity à la place.
  • Les classes CSS .cm-mw-apostrophes-bold et .cm-mw-apostrophes-italic ont été supprimées. Utiliser .cm-mw-apostrophes à la place.
  • Le style du niveau de la ligne pour <nowiki>, <pre>, ou toute balise sans TagMode associé, a été supprimé (T351686).
  • Avoir différentes langues présentes dans le wikicode n'est pas encore pris en charge (T357480).
  • La fonctionnalité de recherche native du navigateur (utilisant Ctrl+F) a été remplacée par la fonctionnalité de recherche intégrée à CodeMirror. Ceci est nécessaire pour maintenir les performances (T303664).


Guide de migration

Version de MediaWiki :
1.45

Ce guide s'applique à MediaWiki 1.45+. Depuis MediaWiki 1.46, CodeMirror 5 n'est plus pris en charge..

Configuration MediaWiki

  • $wgCodeMirrorLineNumberingNamespaces est obsolète. Configurer $wgCodeMirrorDefaultPreferences à la place.

Modules du ResourceLoader

Vérifiez que vous utilisez les modules ResourceLoader corrects. Parce que CodeMirror 6 ne dépend plus de WikiEditor, il y a quelques changements de noms et de comportement par rapport à l'équivalent de CodeMirror 5 :

Certains noms de module sont affichés sans le préfixe ext.CodeMirror par facilité; remplacer '…' lors de l'utilisation.

Ancien module Ancien module (MW 1.45) Nouveau module (MW 1.46+) Description
ext.CodeMirror ….v6.init ….init Intégration de CodeMirror pour WikiEditor sur #wpTextbox1 (zone textuelle normale d'édition).
N/A ….v6.WikiEditor ….WikiEditor Exporte la classe CodeMirrorWikiEditor
N/A ….v6.init ….init CodeMirror pour #wpTextbox1 et autres pages prises en charge.
….lib ….v6.lib ….lib Exporte les symboles internes de CodeMirror.
….addons N/A N/A Ceci inclut la fonction de correspondance des crochets dans CodeMirror 5. La détection des crochets est le comportement par défaut de CodeMirror 6.
….mode.mediawiki ….v6.mode.mediawiki ….mode.mediawiki Mode de la langue de MediaWiki.
N/A ext.CodeMirror.v6 ext.CodeMirror Export la classe CodeMirror.
….visualEditor ….visualEditor.init ….visualEditor.init Intégration avec Éditeur de wikicode 2017 .
….lib.mode.php N/A CodeMirror 6 fournira éventuellement certains ou l'ensemble de ces modes, mais ils ne seront pas disponibles séparément en tant que modules.
….lib.mode.clike
….lib.mode.htmlmixed
….lib.mode.xml
….lib.mode.javascript ….v6.modes ….modes Ces langues sont prises en charge dans CodeMirror 6.
….lib.mode.css
N/A
N/A
N/A

Avec la sortie de MediaWiki 1.46, les anciens modules sont remplacés par les nouveaux, et les modules .v6 sont complètement supprimés.

Gadgets et scripts utilisateur

La variable globale CodeMirror a été supprimée entièrement. Par exemple CodeMirror.fromTextArea( myTextarea ) ne va plus fonctionner. A la place, chargez d'abord les modules du ResourceLoader désirés, instanciez un objet CodeMirror, et appelez la méthode initialize() .

Si votre script s'appuie sur l'accroche ext.CodeMirror.switch pour modifier la manière dont il interagit avec l'éditeur, vous devrez utiliser l'accroche ext.CodeMirror.toggle à la place, ou alternativement écouter un événement. Voir la section sur l'intégration de JavaScript pour plus d'informations.

CSS

L'élément .CodeMirror n'existe plus. Utilisez à la place .cm-editor pour l'ensemble du DOM codeMirror, ou .cm-content pour le contenu interne (n'inclut pas le panneau de recherche, par exemple).

Voir l'obsolescence et les autres modifications des autres classes CSS.

Intégration

Extensions MediaWiki

Utiliser CodeMirror au lieu de CodeEditor

Version de MediaWiki :
1.44

À partir de MediaWiki 1.44, CodeMirror prend en charge la mise en valeur des langages Lua, JavaScript, CSS, JSON et Vue. Il peut être utilisé comme une alternative à Extension:CodeEditor .

Notez cependant que pas toutes les extensions qui s'intègrent avec CodeEditor ont été mises à jour pour prendre en charge CodeMirror. Si vous utilisez l'une de ces extensions, vous voudrez peut-être garder CodeEditor installé sur votre wiki :

À partir de MediaWiki 1.45, pour que cela fonctionne, vous devrez ajuster $wgCodeMirrorEnabledModes en conséquence, ainsi que *UseCodeEditor et *UseCodeMirror pour toutes les extensions applicables que vous avez également installées :

// modes souhaités devant utiliser CodeMirror (Mediawiki, par ex. wikitext, est activé par défaut)
$wgCodeMirrorEnabledModes['javascript'] = true;
$wgCodeMirrorEnabledModes['json'] = true;
$wgCodeMirrorEnabledModes['css'] = true;
$wgCodeMirrorEnabledModes['lua'] = true;
$wgCodeMirrorEnabledModes['vue'] = true;

// si vous utilisez également CodeEditor désactivez-y les mêmes modes
$wgCodeEditorEnabledModes['javascript'] = false;
$wgCodeEditorEnabledModes['json'] = false;
$wgCodeEditorEnabledModes['css'] = false;
$wgCodeEditorEnabledModes['lua'] = false;
$wgCodeEditorEnabledModes['vue'] = false;

// AbuseFilter (notez qu'il n'y a pas de ''mode'' correspondant à définir ci-dessus)
$wgAbuseFilterUseCodeEditor = false;
$wgAbuseFilterUseCodeMirror = true;

// gadgets (pour modifier les pages JSON de définition des gadgets)
$wgGadgetsDefinitionsUseCodeEditor = false;
$wgGadgetsDefinitionsUseCodeMirror = true;

// JsonConfig
$wgJsonConfigUseCodeEditor = false;
$wgJsonConfigUseCodeMirror = true;

// Scribunto (pour la modification des pages de Modules qui utilisent le mode "lua")
$wgScribuntoUseCodeEditor = false;
$wgScribuntoUseCodeMirror = true;

// TemplateStyles
$wgTemplateStylesUseCodeEditor = false;
$wgTemplateStylesUseCodeMirror = true;

// UploadWizard (pour éditer les pages JSON de Campaign)
$wgUploadWizardUseCodeEditor = false;
$wgUploadWizardUseCodeMirror = true;

Enregistrer une nouvelle balise pour MediaWiki

Si vous voulez simplement que CodeMirror reconnaisse une balise ajoutée par une extension, vous pouvez faire ainsi en utilisant l'attribut de l'extension CodeMirrorTagModes. Par exemple, pour enregistrer la balise ‎<foo> comme quelque chose contenant du wikicode, vous ajouterez ceci à extension.json :

{
	"attributes": {
		"CodeMirror": {
			"TagModes": [
				"foo": "mediawiki"
			]
		}
	}
}

CodeMirror mettra alors en valeur le contenu à l'intérieur de ‎<foo>...‎</foo> comme du wikicode.

Enregistrer une balise afin que CodeMirror traite le contenu comme autre chose que du wikicode n'est pas actuellement pris en charge (T357480). Si une balise n'est pas enregistrée, CodeMirror mettra en évidence le contenu comme étant autre chose que du wikicode, de la même manière qu'il met en évidence le contenu de la balise ‎<nowiki>...‎</nowiki>.

Accroche PHP

Version de MediaWiki :
1.44

Depuis MediaWiki 1.44, le moyen préféré d'intégrer CodeMirror en PHP est l'implémentation de l'interface CodeMirrorGetModeHook :

class CodeMirrorHooks implements CodeMirrorGetModeHook {
	public function onCodeMirrorGetMode(Title $title, ?string &$mode, string $model ): bool {
		// Logique pour déterminer si CodeMirror doit être utilisé
		if ( $title->hasContentModel( 'JsonLikeContentModel' ) ) {
			$mode = 'json';
			return false;
		}

		return true;
	}
}

Enregistrer l'accroche dans extension.json :

"Hooks": {
	"CodeMirrorGetMode": "codemirror"
},
"HookHandlers": {
	"codemirror": {
		"class": "MediaWiki\\Extension\\MyExtension\\CodeMirrorHooks"
	}
}

Modules greffons

CodeMirrorPluginModules est un attribut d'extension qui permet de charger en parallèle un module avec CodeMirror. Ceci charge systématiquement le module à chaque fois que le module ext.CodeMirror est chargé.

extension.json:

{
	"attributes": {
		"CodeMirror": {
			"PluginModules": [
				"ext.MyExtension.CodeMirror"
			]
		}
	}
}

JavaScript

L'éditeur CodeMirror n'est pas une zone de texte actuelle, mais un contenu éditable. Habituellement les développeurs doivent vérifier que leur coe fonctionne avec les deux état donné que CodeMirror peut être désactivé.

Pour détecter la modification du document, la manière la plus simple est d'utiliser un événement ou une accroche. Pour la lecture et les modifications, jQuery.textSelection peut s'avérer pratique.

Pour des intégrations plus complexes ou celles qui nécessitent de meilleures performances, vous pouvez ajouter votre propre exetension à une nouvelle instance (ou une instance existante) de CodeMirror.

Utiliser jQuery.textSelection

Si vous souhaitez simplement récupérer ou faire des modifications dans le texte du document, jQuery.textSelection est la manière la plus facile et la plus fiable pour le faire. L'utilisation de jQuery.textSelection sur la zone de texte est liée à CodeMirror, vous n'avez donc pas besoin de savoir si CodeMirror est activé ou pas :

const $textarea = $( '#wpTextbox1' )
const content = $textarea.textSelection( 'getContents' );
// Append "Foobar" to the content.
$textarea.textSelection( 'setContents', content + '\nFoobar' );

jQuery's .val() sur #wpTextbox1 ne peut pas être utilisé,[8] mais cela n'est pas recommandé et peut ne pas fonctionner avec tous les éditeurs, tels que Éditeur de wikicode 2017 .

Utiliser le ResourceLoader

L'extension CodeMirror fournit un nombre de modules ResourceLoader à utiliser par les scripts utilisateurs, les gadgets, et les extensions. Pour utiliser CodeMirror, vous aurez besoin au minimum du module ext.CodeMirror avec le mode souhaité.

Les modes peuvent être extraits à partir des modules ResourceLoader, en utilisant une méthode exportée portant le même nom que le mode. Pour MediaWiki, utiliser ext.CodeMirror.mode.mediawiki, et pour JavaScript, JSON, CSS, Vue et Lua, utiliser ext.CodeMirror.modes :

const require = await mw.loader.using( [ 'ext.CodeMirror', 'ext.CodeMirror.mode.mediawiki' ] );
const CodeMirror = require( 'ext.CodeMirror' );
const { mediawiki } = require( 'ext.CodeMirror.mode.mediawiki' );
const cm = new CodeMirror( myTextarea, mediawiki() );
cm.initialize();

Et si vous souhaitez aussi WikiEditor :

const require = await mw.loader.using( [
	'ext.wikiEditor',
	'ext.CodeMirror.WikiEditor',
	'ext.CodeMirror.mode.mediawiki'
] );
const textarea = document.getElementById( 'wpTextbox1' );
mw.addWikiEditor( $( textarea ) );
const CodeMirrorWikiEditor = require( 'ext.CodeMirror.WikiEditor' );
const { mediawiki } = require( 'ext.CodeMirror.mode.mediawiki' );
const cmWe = new CodeMirrorWikiEditor( textarea, mediawiki() );
cmWe.mode = 'mediawiki';
cmWe.initialize();

Créer une nouvelle instance JavaScript :

const require = await mw.loader.using( [ 'ext.CodeMirror', 'ext.CodeMirror.modes' ] );
const CodeMirror = require( 'ext.CodeMirror' );
const { javascript } = require( 'ext.CodeMirror.modes' );
const cm = new CodeMirror( myTextarea, javascript() );
cm.initialize();
Modules ResourceLoader
Module Description
ext.CodeMirror.lib Bibliothèque du noyau CodeMirror. A initialiser que si vous souhaitez utiliser une API CodeMirror de l'amont.
ext.CodeMirror Intégration de base de CodeMirror pour les éditeurs de MediaWiki. Ce module exporte la classe CodeMirror.
ext.CodeMirror.WikiEditor Intégration de CodeMirror pour WikiEditor. Ce module exporte la classe CodeMirrorWikiEditor.
ext.CodeMirror.mode.mediawiki Exporte le mode mediawiki pour mettre en valeur le wikicode MediaWiki.
ext.CodeMirror.modes Comprend les modes suivants : javascript, json, css, vue, lua.
ext.CodeMirror.init
(interne)
Point d'entrée principal pour les requêtes action=edit. Non destiné à une utilisation externe.
ext.CodeMirror.visualEditor.init
(interne)
Intégration de CodeMirror avec Éditeur de wikicode 2017 , et seulement pour wikitext.

Utiliser les accroches

Vous pouvez aussi intégrer CodeMirror en utilisant les accroches de l'interface utilisateur. Celles-ci vous permettent d'exécuter du code juste avant ou après que CodeMirror se soit chargé, ou ait réagi à la modification du document.

Accroches de l'interface utilisateur
Accroche Description
ext.CodeMirror.initialize Appelé juste avant l'initialisation de CodeMirror. Cela peut être utilisé pour manipuler le DOM pour qu'il corresponde à CodeMirror (par exemple, si vous manipulez le DOM de WikiEditor, vous en aurez peut-être besoin).

Paramètres

  • (HTMLTextAreaElement) Editeur actuel, le plus souvent #wpTextbox1.
  • (ve.ui.Surface) Surface VisualEditor à laquelle CodeMirror est lié, si c'est le cas.
ext.CodeMirror.ready Appelé juste après que CodeMirror ait été initialisé.

Paramètres

ext.CodeMirror.toggle Appelé lorsque CodeMirror est activé ou désactivé.

Paramètres

  • (boolean) Si CodeMirror est maintenant activé.
  • (CodeMirror) Instance de CodeMirror.
  • (HTMLTextAreaElement) Zone de texte originale.
ext.CodeMirror.destroy Appelé juste après que CodeMirror soit détruit et que la zone de texte originale soit restituée.

Paramètres

  • (HTMLTextAreaElement) Zone de texte originale.
ext.CodeMirror.input Appelé lorsque des modifications du document sont faites dans CodeMirror. Notez que la zone de texte peut ne pas encore être à jour.

Paramètres

ext.CodeMirror.preferences.ready Lancé juste avant que CodeMirrorPreferences soit instancié.

Paramètres

ext.CodeMirror.preferences.apply Lancé quand une préférence de CodeMirror est activée ou appliquée initialement.

Paramètres

ext.CodeMirror.preferences.apply Déclenché lorsqu'une préférence CodeMirror est modifiée ou appliquée initialement dans une session d'édition.

Paramètres

  • (string) Nom de la préférence.
  • (boolean) Nouvelle valeur de la préférence.
ext.CodeMirror.preferences.display
(interne)
Déclenché lorsque le panneau des préférences est construit, juste avant son affichage.

Paramètres

  • (HTMLDivElement) Conteneur du panneau des préférences.
ext.CodeMirror.gotoLine
(interne)
Déclenché lorsque le panneau de passage à la ligne est ouvert ou fermé.
ext.CodeMirror.keymap
(interne)
Déclenché lorsque le dialogue d'aide du raccourci clavier est ouvert.
ext.CodeMirror.search
(interne)
Déclenché lorsque le panneau de recherche est ouvert ou fermé.

Utiliser les événements

Les événements suivants sont liés à la zone de texte par facilité pour les développeurs :

En utilisant ces événements, vous pouvez intégrer CodeMirror en utilisant le même code que la zone de texte originale :

myTextarea.addEventListener( 'keyup', ( event ) => {
	console.log( event.key );
} );

Etendre CodeMirror

Vous pouvez importer le module ext.CodeMirror.lib pour accéder à l'API CodeMirror amont. Avec ceci, vous pouvez fournir votre propre extension lorsque vous instanciez un objet CodeMirror ou CodeMirrorWikiEditor.

Par exemple, pour fournir votre propre extension qui réagit aux modifications faites dans CodeMirror :

const require = await mw.loader.using( [ 'ext.CodeMirror', 'ext.CodeMirror.mode.mediawiki' ] );
const CodeMirror = require( 'ext.CodeMirror' );
const { mediawiki } = require( 'ext.CodeMirror.mode.mediawiki' );
// ext.CodeMirror.lib est une dépendance de ext.CodeMirror, donc à cette étape il est déjà chargé
const { EditorView } = require( 'ext.CodeMirror.lib' );
const myExtension = EditorView.updateListener.of( ( /** @type {ViewUpdate} */ update ) => {
	if ( update.docChanged ) {
	    // instructions...
	    console.log( update.changes );
	}
} );
const cm = new CodeMirror( myTextarea, mediawiki() );
cm.initialize( [ cm.defaultExtensions, myExtension ] );

Ou si vous voulez interagir avec une instance existante de CodeMirror :

// Vérifier d'abord que CodeMirror est initialisé
mw.hook( 'ext.CodeMirror.ready' ).add( ( cm ) => {
	const { EditorView } = require( 'ext.CodeMirror.lib' );
	const myExtension = EditorView.updateListener.of( ( /** @type {ViewUpdate} */ update ) => {
		if ( update.docChanged ) {
		    // faire quelque chose
		    console.log( update.changes );
		}
	} );
	cm.applyExtension( myExtension );
} );

D'autres manières de suivre les modifications est d'utiliser l'accroche ext.CodeMirror.input :

mw.hook( 'ext.CodeMirror.input' ).add( ( update ) => {
	// Imprime le ChangeSet à la console
	console.log( update.changes.toJSON() );
} );

Historique des versions

  • novembre 2024 – La version CodeMirror 6 de l'extension a été introduite en version bêta.
  • – Après deux ans de développement et de test, l'"Amélioration de la mise en valeur de la syntaxe" (CodeMirror 6) a été officiellement promue hors de la version bêta. Cette mise à jour a apporté des fonctionnalités avancées telles que le repli du code, l'autocomplétion et le lint à tous les utilisateurs de l'outil de mise en valeur de la syntaxe standard, tout en améliorant considérablement la lisibilité du wikicode.[10]

Voir aussi

Notes

  1. $wgCodeMirrorDefaultPreferencesCode
  2. Le focus est toujours mis sur l'éditeur dans l'éditeur 2017.
  3. Cette fonctionnalité n'est pas encore stable.
  4. N'a d'effet que dans du wikicode.
  5. Uniquement applicable au wikicode.
  6. Uniquement applicable au wikicode.
  7. Le repli des lignes ne peut pas être désactivé dans l'éditeur 2017.
  8. phab:T384556
  9. Cet événement n'est pas déclenché pour le wikicode (T401271)
  10. Tech News 2026 – Issue 17, Wikimedia Diff. Published April 20, 2026.