mediawiki-extensions-CodeMi.../extension.json
MusikAnimal c670344851 Implement core MediaWiki stream parser for CodeMirror 6
This is more or less a exact port of the old stream parser, with the big
notable change being that all configuration-related code lives in a
separate class, CodeMirrorModeMediaWikiConfig. A smaller change is that
closing HTML tags that are marked as errors now have the ending '>'
character highlighted red, when it didn't before.

Integration with other extensions and modes is saved for a future patch
(T348684). This means <nowiki>, <ref> and other extension-supplied
markup is not yet highlighted.

The entry point for WikiEditor integration is now at
ext.CodeMirror.v6.WikiEditor.init.js, which needs to first require the
virtual file set via the DataScript (PHP) class. This can't be
integrated into the CM6 code because it needs to be precompiled before
ResourceLoader can use it (T281781).

Known issues, to be addressed separately:

* No support for TagModes / PluginModes (T348684)
* Identical adjacent tokens produce excess markup (T352917)
* Section headings do not have line-level styling (T351686)

Bug: T348019
Change-Id: I8f8a81f362bed60dea14ecde9487a2b0c89225e8
2024-01-02 23:18:32 -05:00

251 lines
5.8 KiB
JSON

{
"name": "CodeMirror",
"version": "5.0.0",
"author": [
"[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]",
"[https://www.mediawiki.org/wiki/User:Florianschmidtwelzow Florian Schmidt]",
"Marijn Haverbeke",
"MusikAnimal",
"[https://raw.githubusercontent.com/codemirror/CodeMirror/master/AUTHORS CodeMirror contributors]"
],
"url": "https://www.mediawiki.org/wiki/Extension:CodeMirror",
"descriptionmsg": "codemirror-desc",
"type": "editor",
"license-name": "GPL-2.0-or-later",
"requires": {
"MediaWiki": ">= 1.42.0"
},
"config": {
"CodeMirrorLineNumberingNamespaces": {
"value": null,
"description": "List of namespace IDs where line numbering should be enabled, or `null` to enable for all namespaces. Set to [] to disable everywhere. Defaults to `null` for all namespaces.",
"public": true
},
"CodeMirrorV6": {
"value": false,
"description": "Temporary feature flag for the CodeMirror 6 upgrade."
},
"CodeMirrorConflictingGadgets": {
"value": [
"wikEd"
],
"description": "An array of gadget names that, if enabled, will prevent CodeMirror from loading on action=edit and action=submit.",
"public": true
}
},
"MessagesDirs": {
"CodeMirror": [
"i18n"
]
},
"AutoloadNamespaces": {
"MediaWiki\\Extension\\CodeMirror\\": "includes/"
},
"ResourceModules": {
"ext.CodeMirror": {
"dependencies": [
"mediawiki.api",
"mediawiki.user",
"user.options"
],
"packageFiles": [
"ext.CodeMirror.js",
{
"name": "ext.CodeMirror.data.js",
"callback": "MediaWiki\\Extension\\CodeMirror\\DataScript::makeScript"
}
]
},
"ext.CodeMirror.WikiEditor": {
"dependencies": [
"ext.CodeMirror",
"jquery.textSelection",
"mediawiki.user",
"user.options",
"jquery.ui",
"oojs-ui.styles.icons-editing-styling"
],
"packageFiles": [
"ext.CodeMirror.WikiEditor.js"
],
"styles": [
"ext.CodeMirror.less"
],
"messages": [
"codemirror-toggle-label"
]
},
"ext.CodeMirror.lib": {
"scripts": [
"lib/codemirror/lib/codemirror.js"
],
"styles": [
"lib/codemirror/lib/codemirror.css",
"lib/codemirror-fixes.less"
]
},
"ext.CodeMirror.addons": {
"scripts": [
"addon/edit/matchbrackets-wmde.js"
],
"dependencies": [
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.mode.mediawiki": {
"packageFiles": "mode/mediawiki/mediawiki.js",
"styles": [
"mode/mediawiki/mediawiki.less",
"mode/mediawiki/colorblind-colors.less"
],
"dependencies": [
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.lib.mode.css": {
"scripts": "lib/codemirror/mode/css/css.js",
"dependencies": [
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.lib.mode.javascript": {
"scripts": "lib/codemirror/mode/javascript/javascript.js",
"dependencies": [
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.lib.mode.xml": {
"scripts": "lib/codemirror/mode/xml/xml.js",
"dependencies": [
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.lib.mode.htmlmixed": {
"scripts": "lib/codemirror/mode/htmlmixed/htmlmixed.js",
"dependencies": [
"ext.CodeMirror.lib.mode.xml",
"ext.CodeMirror.lib.mode.javascript",
"ext.CodeMirror.lib.mode.css",
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.lib.mode.clike": {
"scripts": "lib/codemirror/mode/clike/clike.js",
"dependencies": [
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.lib.mode.php": {
"scripts": "lib/codemirror/mode/php/php.js",
"dependencies": [
"ext.CodeMirror.lib.mode.htmlmixed",
"ext.CodeMirror.lib.mode.clike",
"ext.CodeMirror.lib"
]
},
"ext.CodeMirror.visualEditor": {
"dependencies": [
"ext.visualEditor.mwcore",
"ext.visualEditor.mwmeta",
"mediawiki.api",
"user.options",
"ext.CodeMirror"
],
"scripts": [
"modules/ve-cm/ve.ui.CodeMirrorAction.js",
"modules/ve-cm/ve.ui.CodeMirrorTool.js"
],
"styles": [
"modules/ve-cm/ve.ui.CodeMirror.less"
],
"messages": [
"codemirror-toggle-label"
]
},
"ext.CodeMirror.v6.WikiEditor.init": {
"packageFiles": [
"ext.CodeMirror.v6.WikiEditor.init.js",
{
"name": "ext.CodeMirror.data.js",
"callback": "MediaWiki\\Extension\\CodeMirror\\DataScript::makeScript"
}
]
},
"ext.CodeMirror.v6.WikiEditor": {
"dependencies": [
"web2017-polyfills",
"mediawiki.api",
"mediawiki.user",
"user.options"
],
"packageFiles": [
"dist/main.js"
],
"styles": [
"ext.CodeMirror.v6.WikiEditor.less",
"mode/mediawiki/mediawiki.less",
"mode/mediawiki/colorblind-colors.less"
],
"messages": [
"codemirror-toggle-label"
]
}
},
"ResourceFileModulePaths": {
"localBasePath": "resources",
"remoteExtPath": "CodeMirror/resources"
},
"ForeignResourcesDir": "resources/lib",
"DefaultUserOptions": {
"usecodemirror": 0
},
"QUnitTestModule": {
"localBasePath": "resources/mode/mediawiki/tests",
"remoteExtPath": "CodeMirror/resources/mode/mediawiki/tests",
"packageFiles": [
"qunit/CodeMirror.mediawiki.test.js"
],
"dependencies": [
"ext.CodeMirror",
"ext.CodeMirror.lib",
"ext.CodeMirror.mode.mediawiki"
]
},
"Hooks": {
"BeforePageDisplay": "main",
"GetPreferences": "main",
"ResourceLoaderGetConfigVars": "main"
},
"HookHandlers": {
"main": {
"class": "MediaWiki\\Extension\\CodeMirror\\Hooks",
"services": [
"UserOptionsLookup",
"MainConfig"
]
}
},
"attributes": {
"CodeMirror": {
"PluginModules": [
"ext.CodeMirror.addons"
],
"TagModes": {
"pre": "mw-tag-pre",
"nowiki": "mw-tag-nowiki"
}
},
"VisualEditor": {
"PluginModules": [
"ext.CodeMirror.visualEditor"
]
},
"EventLogging": {
"Schemas": {
"CodeMirrorUsage": "/analytics/legacy/codemirrorusage/1.0.0"
}
}
},
"manifest_version": 2
}