Textmate grammars support for CodeMirror
Bring TM grammar driven tokenization to your CodeMirror editors.
Say goodbye to the not-so-cool and not-so-accurate syntax highlighting you've been living with and up your game with ease!
WARNING
This package will only work in browsers with WebAssembly
support. Here's a recommended way to deal with it:
if ('WebAssembly' in window) {
const [{
loadWASM
},
{
activateLanguage,
addGrammar
}
] = await Promise.all([
import('onigasm'),
import('codemirror-textmate'),
])
}
else {
await Promise.all([
import('codemirror/mode/javascript/javascript'),
import( 'codemirror/mode/htmlmixed/htmlmixed'),
])
}
const editor = CodeMirror.fromTextArea( )
Usage
Install
$ npm i codemirror-textmate
npm i onigasm codemirror
See ./demo/index.ts
for instructions on how to light it up!
API
This package is written in TypeScript and is published with TS declaration files. Once you install the package
see node_modules/codemirror-textmate/dist/typings/index.d.ts
for available stuff along with expected data types.
VSCode's intellisense will also pick up the declaration files and guide you nicely with auto-complete and errors.
License
MIT