Skip to content

Github mirror of MediaWiki extension CodeMirror - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing

License

Notifications You must be signed in to change notification settings

wikimedia/mediawiki-extensions-CodeMirror

Repository files navigation

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

Extension:CodeMirror is currently in the process of being upgraded to the new major version, CodeMirror 6. See the change log for details.

Use of CodeMirror 6 is controlled by the wgCodeMirrorV6 configuration setting, or by passing in cm6enable=1 in the URL query string.

CodeMirror 6 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 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.
  • 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.
  • Older QUnit tests are in resources/mode/mediawiki/tests/qunit/. These have been replaced and will be removed after the CodeMirror 6 upgrade is complete.

About

Github mirror of MediaWiki extension CodeMirror - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 57