index.cjs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var view = require('@codemirror/view');
  4. var state = require('@codemirror/state');
  5. var language = require('@codemirror/language');
  6. var commands = require('@codemirror/commands');
  7. var search = require('@codemirror/search');
  8. var autocomplete = require('@codemirror/autocomplete');
  9. var lint = require('@codemirror/lint');
  10. // (The superfluous function calls around the list of extensions work
  11. // around current limitations in tree-shaking software.)
  12. /**
  13. This is an extension value that just pulls together a number of
  14. extensions that you might want in a basic editor. It is meant as a
  15. convenient helper to quickly set up CodeMirror without installing
  16. and importing a lot of separate packages.
  17. Specifically, it includes...
  18. - [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)
  19. - [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)
  20. - [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)
  21. - [the undo history](https://codemirror.net/6/docs/ref/#commands.history)
  22. - [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)
  23. - [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)
  24. - [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)
  25. - [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)
  26. - [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)
  27. - [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)
  28. - [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)
  29. - [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)
  30. - [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)
  31. - [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)
  32. - [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)
  33. - [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)
  34. - [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)
  35. - [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)
  36. - [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)
  37. (You'll probably want to add some language package to your setup
  38. too.)
  39. This extension does not allow customization. The idea is that,
  40. once you decide you want to configure your editor more precisely,
  41. you take this package's source (which is just a bunch of imports
  42. and an array literal), copy it into your own code, and adjust it
  43. as desired.
  44. */
  45. const basicSetup = (() => [
  46. view.lineNumbers(),
  47. view.highlightActiveLineGutter(),
  48. view.highlightSpecialChars(),
  49. commands.history(),
  50. language.foldGutter(),
  51. view.drawSelection(),
  52. view.dropCursor(),
  53. state.EditorState.allowMultipleSelections.of(true),
  54. language.indentOnInput(),
  55. language.syntaxHighlighting(language.defaultHighlightStyle, { fallback: true }),
  56. language.bracketMatching(),
  57. autocomplete.closeBrackets(),
  58. autocomplete.autocompletion(),
  59. view.rectangularSelection(),
  60. view.crosshairCursor(),
  61. view.highlightActiveLine(),
  62. search.highlightSelectionMatches(),
  63. view.keymap.of([
  64. ...autocomplete.closeBracketsKeymap,
  65. ...commands.defaultKeymap,
  66. ...search.searchKeymap,
  67. ...commands.historyKeymap,
  68. ...language.foldKeymap,
  69. ...autocomplete.completionKeymap,
  70. ...lint.lintKeymap
  71. ])
  72. ])();
  73. /**
  74. A minimal set of extensions to create a functional editor. Only
  75. includes [the default keymap](https://codemirror.net/6/docs/ref/#commands.defaultKeymap), [undo
  76. history](https://codemirror.net/6/docs/ref/#commands.history), [special character
  77. highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars), [custom selection
  78. drawing](https://codemirror.net/6/docs/ref/#view.drawSelection), and [default highlight
  79. style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle).
  80. */
  81. const minimalSetup = (() => [
  82. view.highlightSpecialChars(),
  83. commands.history(),
  84. view.drawSelection(),
  85. language.syntaxHighlighting(language.defaultHighlightStyle, { fallback: true }),
  86. view.keymap.of([
  87. ...commands.defaultKeymap,
  88. ...commands.historyKeymap,
  89. ])
  90. ])();
  91. Object.defineProperty(exports, 'EditorView', {
  92. enumerable: true,
  93. get: function () { return view.EditorView; }
  94. });
  95. exports.basicSetup = basicSetup;
  96. exports.minimalSetup = minimalSetup;