Language and Theme provider for Textmate within Monaco
npm install monaco-textmate-providerLanguage Provider and Theme Provider for Textmate within monaco.
``ts
const onLoad = async (resolvedMonaco: typeof Monaco) => {
resolvedMonaco.languages.register({ id: 'myLanguage' });
const languageProvider = new LanguageProvider({
monaco: resolvedMonaco,
wasm: 'https://unpkg.com/vscode-oniguruma@1.7.0/release/onig.wasm',
grammars: {
greyscript: {
scopeName: 'source.src',
tmLanguageFile: 'https://unpkg.com/my-package@1.0.0/dist/myLanguage.tmLanguage.json',
languageConfigurationFile: 'https://unpkg.com/my-package@1.0.0/dist/myLanguageConfig.json',
},
},
});
const themeProvider = new ThemeProvider({
monaco: resolvedMonaco,
registry: await languageProvider.getRegistry(),
themes: {
default: 'https://unpkg.com/my-package@1.0.0/dist/myLanguage.theme.json',
}
});
const model = resolvedMonaco.editor.createModel(
initialContent,
'myLanguage'
);
themeProvider.setTheme('default');
};
``
For additional usage information, you can take a look at the provided example code.
- Thanks to @bolinfest for monaco-tm