Clone this repo:
  1. f1064b3 jest: add mockUserOptionsGet helper to global functions by MusikAnimal · 3 hours ago master
  2. d5cda44 mediawiki worker: upgrade wikiparser-node by bhsd · 13 days ago wmf/branch_cut_pretest wmf/next
  3. 0a17657 Localisation updates from https://translatewiki.net. by Translation updater bot · 4 days ago
  4. 7ec550e Localisation updates from https://translatewiki.net. by Translation updater bot · 5 days ago
  5. ea61cb2 Localisation updates from https://translatewiki.net. by Translation updater bot · 7 days ago wmf/1.47.0-wmf.4

The CodeMirror extension provides syntax highlighting in MediaWiki wikitext editors using the CodeMirror library.

Extension homepage: https://www.mediawiki.org/wiki/Extension:CodeMirror

JS documentation: https://doc.wikimedia.org/CodeMirror

Development

Preface

CodeMirror requires the use of NPM to bundle the dependencies. These are built using Rollup and packaged as ResourceLoader-compatible modules under lib/. If you make changes to the versions of @codemirror or @lezer packages, you will need to run npm run build to update the ResourceLoader modules.

NPM commands

NOTE: Consider using Fresh to run these tasks.

  • npm install to install dependencies.
  • npm run doc to generate the API documentation.
  • npm test to run the linting tools, JavaScript unit tests, and build checks.
  • npm run test:lint for linting of JS/LESS/CSS.
  • npm run test:lint:js for linting of just JavaScript.
  • npm run test:lint:styles for linting of just Less/CSS.
  • npm run test:i18n for linting of i18n messages with banana-checker.
  • npm run test:unit for the new Jest unit tests.
  • npm run selenium-test for the Selenium tests.
  • npm run update-parser-tests to update the Jest parser tests in tests/jest/parser/tests.json after making changes to the MediaWiki Stream parser.
  • npm run build to rebundle the CodeMirror library. If changes are made to the @codemirror or @lezer dependencies in package.json, this command must be run before sending the patch or CI will fail. This also calls the build:eslint, build:stylelint, and build:luacheck commands.
  • npm run build:eslint to rebundle the ESLint library. If changes are made to the @bhsd/eslint-browserify dependency in package.json or the JavaScript worker, this command must be run before sending the patch.
  • npm run build:stylelint to rebundle the Stylelint library. If changes are made to the @bhsd/stylelint-browserify dependency in package.json or the CSS worker, this command must be run before sending the patch.
  • npm run build:luacheck to rebundle the LuaCheck library. If changes are made to the luacheck-browserify dependency in package.json or the Lua worker, this command must be run before sending the patch.
  • npm run build:wikilint to rebundle the WikiParser-Node library. If changes are made to the wikiparser-node dependency in package.json or the MediaWiki worker, this command must be run before sending the patch.