UNPKG

@bhsd/codemirror-mediawiki

Version:

Modified CodeMirror mode based on wikimedia/mediawiki-extensions-CodeMirror

32 lines (31 loc) 1.28 kB
import { configureNesting } from '@lezer/html'; import { htmlLanguage, htmlCompletionSourceWith } from '@codemirror/lang-html'; import { javascript, javascriptLanguage } from '@codemirror/lang-javascript'; import { cssLanguage } from '@codemirror/lang-css'; import { LanguageSupport } from '@codemirror/language'; import { jsCompletion } from './javascript'; import { mediawiki } from './mediawiki'; import { cssCompletion } from './css'; export default (config) => { const { language, support } = mediawiki(config), lang = new LanguageSupport(htmlLanguage.configure({ wrap: configureNesting([ { tag: 'script', parser: javascriptLanguage.parser }, { tag: 'style', parser: cssLanguage.parser }, { tag: 'noinclude', parser: language.parser }, ], [{ name: 'style', parser: cssLanguage.parser.configure({ top: 'Styles' }) }]), }), [ htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith({ extraTags: { noinclude: { globalAttrs: false }, }, }), }), javascript().support, jsCompletion, cssCompletion(), support, ]); Object.assign(lang, { nestedMWLanguage: language }); return lang; };