88 lines
3.8 KiB
JavaScript
88 lines
3.8 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
var view = require('@codemirror/view');
|
|
var state = require('@codemirror/state');
|
|
var language = require('@codemirror/language');
|
|
var commands = require('@codemirror/commands');
|
|
var search = require('@codemirror/search');
|
|
var autocomplete = require('@codemirror/autocomplete');
|
|
var lint = require('@codemirror/lint');
|
|
|
|
/**
|
|
This is an extension value that just pulls together a number of
|
|
extensions that you might want in a basic editor. It is meant as a
|
|
convenient helper to quickly set up CodeMirror without installing
|
|
and importing a lot of separate packages.
|
|
|
|
Specifically, it includes...
|
|
|
|
- [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)
|
|
- [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)
|
|
- [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)
|
|
- [the undo history](https://codemirror.net/6/docs/ref/#commands.history)
|
|
- [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)
|
|
- [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)
|
|
- [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)
|
|
- [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)
|
|
- [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)
|
|
- [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)
|
|
- [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)
|
|
- [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)
|
|
- [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)
|
|
- [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)
|
|
- [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)
|
|
- [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)
|
|
- [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)
|
|
- [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)
|
|
- [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)
|
|
|
|
(You'll probably want to add some language package to your setup
|
|
too.)
|
|
|
|
This package does not allow customization. The idea is that, once
|
|
you decide you want to configure your editor more precisely, you
|
|
take this package's source (which is just a bunch of imports and
|
|
an array literal), copy it into your own code, and adjust it as
|
|
desired.
|
|
*/
|
|
const basicSetup = [
|
|
view.lineNumbers(),
|
|
view.highlightActiveLineGutter(),
|
|
view.highlightSpecialChars(),
|
|
commands.history(),
|
|
language.foldGutter(),
|
|
view.drawSelection(),
|
|
view.dropCursor(),
|
|
state.EditorState.allowMultipleSelections.of(true),
|
|
language.indentOnInput(),
|
|
language.syntaxHighlighting(language.defaultHighlightStyle, { fallback: true }),
|
|
language.bracketMatching(),
|
|
autocomplete.closeBrackets(),
|
|
autocomplete.autocompletion(),
|
|
view.rectangularSelection(),
|
|
view.crosshairCursor(),
|
|
view.highlightActiveLine(),
|
|
search.highlightSelectionMatches(),
|
|
view.keymap.of([
|
|
...autocomplete.closeBracketsKeymap,
|
|
...commands.defaultKeymap,
|
|
...search.searchKeymap,
|
|
...commands.historyKeymap,
|
|
...language.foldKeymap,
|
|
...autocomplete.completionKeymap,
|
|
...lint.lintKeymap
|
|
])
|
|
];
|
|
|
|
Object.defineProperty(exports, 'EditorView', {
|
|
enumerable: true,
|
|
get: function () { return view.EditorView; }
|
|
});
|
|
Object.defineProperty(exports, 'EditorState', {
|
|
enumerable: true,
|
|
get: function () { return state.EditorState; }
|
|
});
|
|
exports.basicSetup = basicSetup;
|