mediawiki-extensions-CodeMi.../extension.json
MusikAnimal 75f5c9b2be CodeMirror: highlight special characters and non-breaking spaces
The highlightSpecialChars() should act mostly identical to CM5. An
example is the soft hyphen (U+00AD). These are highlighted as a red dot
because they are non-printable characters.

The i18n may seem like overkill, but CM6 would otherwise actually print
the same message in plain English and without a way to localize it.

Per request at T181677, we also highlight non-breaking space and the
narrow non-breaking space. These are shown as a faint gray dot, to match
CM6's highlightWhiteSpace() extension. That extension isn't used here
because it would also highlight normal spaces, which we don't want.

Bug: T181677
Change-Id: Iac1a8cf78e4cd0a27abc917f4b70bdfbaf86252a
2024-02-13 14:57:06 -05:00

290 lines
7.2 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",
"ext.CodeMirror.v6.messages"
],
"packageFiles": [
"dist/main.js"
],
"styles": [
"ext.CodeMirror.v6.WikiEditor.less",
"mode/mediawiki/mediawiki.less",
"mode/mediawiki/colorblind-colors.less"
],
"messages": [
"codemirror-toggle-label"
]
},
"ext.CodeMirror.v6.messages": {
"messages": [
"codemirror-find",
"codemirror-next",
"codemirror-previous",
"codemirror-all",
"codemirror-match-case",
"codemirror-regexp",
"codemirror-by-word",
"codemirror-replace",
"codemirror-replace-placeholder",
"codemirror-replace-all",
"codemirror-control-character",
"codemirror-special-char-null",
"codemirror-special-char-bell",
"codemirror-special-char-backspace",
"codemirror-special-char-newline",
"codemirror-special-char-vertical-tab",
"codemirror-special-char-carriage-return",
"codemirror-special-char-escape",
"codemirror-special-char-nbsp",
"codemirror-special-char-zero-width-space",
"codemirror-special-char-zero-width-non-joiner",
"codemirror-special-char-zero-width-joiner",
"codemirror-special-char-left-to-right-mark",
"codemirror-special-char-right-to-left-mark",
"codemirror-special-char-line-separator",
"codemirror-special-char-left-to-right-override",
"codemirror-special-char-right-to-left-override",
"codemirror-special-char-narrow-nbsp",
"codemirror-special-char-left-to-right-isolate",
"codemirror-special-char-right-to-left-isolate",
"codemirror-special-char-pop-directional-isolate",
"codemirror-special-char-paragraph-separator",
"codemirror-special-char-zero-width-no-break-space",
"codemirror-special-char-object-replacement"
]
}
},
"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
}