monaco-vscode-textmate-theme-converter
TypeScript icon, indicating that this package has built-in type declarations

0.1.7 • Public • Published

monaco-vscode-textmate-theme-converter

VSCode themes are directly not compatible with monaco-editor themes. The problem here is that vscode uses tmGrammar tokens for colorization support while monaco uses its own code editor to generate language tokens. (See more about it here).

You can use monaco-textmate to make your monaco-editor tmGrammar compatible.

Once the tokens are tmGrammar compatible, you need to convert vscode generated theme data to monaco-editor compatible api. This package does exactly that.

CLI Usage:

npx monaco-vscode-textmate-theme-converter -i <input-file-or-folder-path> -o <output-file-or-folder-path>

# e.g. convert a single file
# npx monaco-vscode-textmate-theme-converter -i ./vscode-theme.json -o ./monaco-converted-theme.json

# e.g. convert a directory of vscode theme files
# npx monaco-vscode-textmate-theme-converter -i ./vscode-themes -o ./monaco-converted-themes

Programmatic Usage:

import { convertTheme, convertThemeFromDir } from 'monaco-vscode-textmate-theme-converter'; // UMD module
// import { convertTheme, convertThemeFromDir } from 'monaco-vscode-textmate-theme-converter/lib/cjs'; // cjs module

/*
 * In vscode use command: `Developer: Generate Color Theme From Current Settings`
 * Copy the generated JSON and use it as input for the function below.
 */
const theme : IVSCodeTheme = {...}
convertTheme(theme);

/*
 * Convert multiple vscode themes to monaco themes.
 * This function takes as arguments an input directory with generated vscode json files and generated output files with the same names at output directory.
 */
convertThemeFromDir(inputDir: './my-vscode-themes-collection-dir/in', outDir: './my-vscode-themes-collection-dir/out');

Package Sidebar

Install

npm i monaco-vscode-textmate-theme-converter

Weekly Downloads

584

Version

0.1.7

License

MIT

Unpacked Size

62 kB

Total Files

20

Last publish

Collaborators

  • nishkal