@lawsafrica/bluebell-monaco
v4.8.2
Published
Monaco editor tooling for the Bluebell grammar
Readme
bluebell-monaco
Bluebell grammar support for the Monaco Editor.
- Language/syntax rules and a corresponding theme to enable syntax highlighting. Enabled with
registerLanguage(). - Actions for monaco to apply formatting (eg. bold, italics). Enabled with
installActions()and triggered usingeditor.trigger('...', 'format.bold'). - An Indigo GrammarModel for Bluebell
This repo's AKN-to-text XSLT is automatically updated when
bluebell/akn_text.xsl is updated in the
Bluebell repo.
Installation
Install with
npm install @lawsafrica/bluebell-monacoUsage
Configure syntax highlighting by registering the language with monaco:
import { registerLanguage } from "bluebell-monaco";
registerLanguage();and then specify the language and theme when creating your editor:
import { LANGUAGE_ID, THEME_ID } from "bluebell-monaco";
const editor = monaco.editor.create(elem, {
language: LANGUAGE_ID,
theme: THEME_ID
});Once you have created a monaco editor instance, setup Bluebell-related edit actions like this:
import { installActions } from "bluebell-monaco";
installActions(editor);
// trigger the format.bold action
editor.trigger('your-app', 'format.bold');Running tests
- Install dependencies:
npm install - Run tests:
npm test
Running demo
There's a small demo editor to test functionality. To use it:
cd demonpx webpack- run
demo/index.htmlin PyCharm to launch a webserver
Releasing a new version
- Make your changes.
- Update the version in package.json, according to semver.org
- Commit and push.
- Create a new release in GitHub releases
- Github will package the release automatically
License
Copyright 2020 Laws.Africa.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see https://www.gnu.org/licenses/.
