CodeMirror 6 extensions for ZenUML syntax highlighting, linting, autocomplete, and theming.
# Using npm
npm install @zenuml/codemirror-extensions
# Using yarn
yarn add @zenuml/codemirror-extensions
# Using pnpm
pnpm add @zenuml/codemirror-extensions
The package includes a demo application that showcases the extensions in action:
# Install dependencies
pnpm install
# Run the demo
pnpm demo
This will start a development server and open the demo in your browser.
This project uses Biome for code formatting and linting:
# Check for linting issues
pnpm lint
# Fix linting issues
pnpm lint:fix
# Format code
pnpm format
# Format code and fix issues
pnpm format:fix
VS Code users can install the Biome extension for automatic formatting on save.
To build the package for distribution:
pnpm build
- Syntax highlighting for ZenUML
- Linting for ZenUML syntax
- Autocomplete suggestions
import { EditorState } from '@codemirror/state';
import { EditorView } from '@codemirror/view';
import {
zenumlHighlighter,
zenumlLinter,
zenumlCompletions,
zenumlCompletionKeyMaps,
zenumlParticipantStateField,
} from '@zenuml/codemirror-extensions';
// Create a new editor
const editor = new EditorView({
state: EditorState.create({
extensions: [
zenumlParticipantStateField,
zenumlHighlighter(),
zenumlLinter(),
autocompletion({
override: [zenumlCompletions],
closeOnBlur: true,
activateOnTyping: true,
selectOnOpen: true,
icons: true,
}),
keymap.of([...zenumlCompletionKeyMaps]),
]
}),
parent: document.getElementById('editor')
});
You can import and use individual extensions as needed:
// Import only what you need
import { zenumlHighlighter } from '@zenuml/codemirror-extensions/extensions';
import { toggleDarkMode } from '@zenuml/codemirror-extensions/dark-mode';
zenumlHighlighter()
- Provides syntax highlighting for ZenUML syntax.
zenumlLinter()
- Provides linting capabilities for ZenUML syntax.
zenumlAutocomplete()
- Provides autocompletion suggestions for ZenUML.
MIT