@uiw/react-codemirror 4.21.18 → 4.21.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,161 +12,7 @@ return /******/ (() => { // webpackBootstrap
12
12
  /******/ "use strict";
13
13
  /******/ var __webpack_modules__ = ({
14
14
 
15
- /***/ 736:
16
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
17
-
18
- __webpack_require__.r(__webpack_exports__);
19
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20
- /* harmony export */ defaultLightThemeOption: () => (/* reexport safe */ _theme_light__WEBPACK_IMPORTED_MODULE_4__.d),
21
- /* harmony export */ getDefaultExtensions: () => (/* binding */ getDefaultExtensions)
22
- /* harmony export */ });
23
- /* harmony import */ var _codemirror_commands__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79);
24
- /* harmony import */ var _uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(141);
25
- /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105);
26
- /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_codemirror_view__WEBPACK_IMPORTED_MODULE_1__);
27
- /* harmony import */ var _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(362);
28
- /* harmony import */ var _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__);
29
- /* harmony import */ var _codemirror_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(242);
30
- /* harmony import */ var _codemirror_state__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_codemirror_state__WEBPACK_IMPORTED_MODULE_3__);
31
- /* harmony import */ var _theme_light__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(259);
32
- /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
33
- /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__) if(["default","getDefaultExtensions"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__[__WEBPACK_IMPORT_KEY__]
34
- /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
35
- var getDefaultExtensions=function getDefaultExtensions(){var optios=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _optios$indentWithTab=optios.indentWithTab,defaultIndentWithTab=_optios$indentWithTab===void 0?true:_optios$indentWithTab,_optios$editable=optios.editable,editable=_optios$editable===void 0?true:_optios$editable,_optios$readOnly=optios.readOnly,readOnly=_optios$readOnly===void 0?false:_optios$readOnly,_optios$theme=optios.theme,theme=_optios$theme===void 0?'light':_optios$theme,_optios$placeholder=optios.placeholder,placeholderStr=_optios$placeholder===void 0?'':_optios$placeholder,_optios$basicSetup=optios.basicSetup,defaultBasicSetup=_optios$basicSetup===void 0?true:_optios$basicSetup;var getExtensions=[];if(defaultIndentWithTab){getExtensions.unshift(_codemirror_view__WEBPACK_IMPORTED_MODULE_1__.keymap.of([_codemirror_commands__WEBPACK_IMPORTED_MODULE_5__/* .indentWithTab */ .oc]));}if(defaultBasicSetup){if(typeof defaultBasicSetup==='boolean'){getExtensions.unshift((0,_uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_0__/* .basicSetup */ .X)());}else{getExtensions.unshift((0,_uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_0__/* .basicSetup */ .X)(defaultBasicSetup));}}if(placeholderStr){getExtensions.unshift((0,_codemirror_view__WEBPACK_IMPORTED_MODULE_1__.placeholder)(placeholderStr));}switch(theme){case'light':getExtensions.push(_theme_light__WEBPACK_IMPORTED_MODULE_4__/* .defaultLightThemeOption */ .d);break;case'dark':getExtensions.push(_codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__.oneDark);break;case'none':break;default:getExtensions.push(theme);break;}if(editable===false){getExtensions.push(_codemirror_view__WEBPACK_IMPORTED_MODULE_1__.EditorView.editable.of(false));}if(readOnly){getExtensions.push(_codemirror_state__WEBPACK_IMPORTED_MODULE_3__.EditorState.readOnly.of(true));}return[].concat(getExtensions);};
36
-
37
- /***/ }),
38
-
39
- /***/ 259:
40
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
41
-
42
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
43
- /* harmony export */ d: () => (/* binding */ defaultLightThemeOption)
44
- /* harmony export */ });
45
- /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(105);
46
- /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_codemirror_view__WEBPACK_IMPORTED_MODULE_0__);
47
- var defaultLightThemeOption=_codemirror_view__WEBPACK_IMPORTED_MODULE_0__.EditorView.theme({'&':{backgroundColor:'#fff'}},{dark:false});
48
-
49
- /***/ }),
50
-
51
- /***/ 128:
52
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
53
-
54
-
55
- // EXPORTS
56
- __webpack_require__.d(__webpack_exports__, {
57
- U: () => (/* binding */ useCodeMirror)
58
- });
59
-
60
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
61
- function _arrayLikeToArray(arr, len) {
62
- if (len == null || len > arr.length) len = arr.length;
63
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
64
- return arr2;
65
- }
66
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
67
-
68
- function _arrayWithoutHoles(arr) {
69
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
70
- }
71
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/iterableToArray.js
72
- function _iterableToArray(iter) {
73
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
74
- }
75
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
76
-
77
- function _unsupportedIterableToArray(o, minLen) {
78
- if (!o) return;
79
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
80
- var n = Object.prototype.toString.call(o).slice(8, -1);
81
- if (n === "Object" && o.constructor) n = o.constructor.name;
82
- if (n === "Map" || n === "Set") return Array.from(o);
83
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
84
- }
85
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
86
- function _nonIterableSpread() {
87
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
88
- }
89
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
90
-
91
-
92
-
93
-
94
- function _toConsumableArray(arr) {
95
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
96
- }
97
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
98
- function _arrayWithHoles(arr) {
99
- if (Array.isArray(arr)) return arr;
100
- }
101
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
102
- function _iterableToArrayLimit(r, l) {
103
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
104
- if (null != t) {
105
- var e,
106
- n,
107
- i,
108
- u,
109
- a = [],
110
- f = !0,
111
- o = !1;
112
- try {
113
- if (i = (t = t.call(r)).next, 0 === l) {
114
- if (Object(t) !== t) return;
115
- f = !1;
116
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
117
- } catch (r) {
118
- o = !0, n = r;
119
- } finally {
120
- try {
121
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
122
- } finally {
123
- if (o) throw n;
124
- }
125
- }
126
- return a;
127
- }
128
- }
129
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
130
- function _nonIterableRest() {
131
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
132
- }
133
- ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/slicedToArray.js
134
-
135
-
136
-
137
-
138
- function _slicedToArray(arr, i) {
139
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
140
- }
141
- // EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
142
- var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(787);
143
- // EXTERNAL MODULE: external {"root":["CM","@codemirror/state"],"commonjs":"@codemirror/state","commonjs2":"@codemirror/state"}
144
- var state_ = __webpack_require__(242);
145
- // EXTERNAL MODULE: external {"root":["CM","@codemirror/view"],"commonjs":"@codemirror/view","commonjs2":"@codemirror/view"}
146
- var view_ = __webpack_require__(105);
147
- // EXTERNAL MODULE: ./src/getDefaultExtensions.ts
148
- var getDefaultExtensions = __webpack_require__(736);
149
- // EXTERNAL MODULE: ./src/utils.ts
150
- var utils = __webpack_require__(742);
151
- ;// CONCATENATED MODULE: ./src/useCodeMirror.ts
152
- var External=state_.Annotation.define();var emptyExtensions=[];function useCodeMirror(props){var value=props.value,selection=props.selection,onChange=props.onChange,onStatistics=props.onStatistics,onCreateEditor=props.onCreateEditor,onUpdate=props.onUpdate,_props$extensions=props.extensions,extensions=_props$extensions===void 0?emptyExtensions:_props$extensions,autoFocus=props.autoFocus,_props$theme=props.theme,theme=_props$theme===void 0?'light':_props$theme,_props$height=props.height,height=_props$height===void 0?null:_props$height,_props$minHeight=props.minHeight,minHeight=_props$minHeight===void 0?null:_props$minHeight,_props$maxHeight=props.maxHeight,maxHeight=_props$maxHeight===void 0?null:_props$maxHeight,_props$width=props.width,width=_props$width===void 0?null:_props$width,_props$minWidth=props.minWidth,minWidth=_props$minWidth===void 0?null:_props$minWidth,_props$maxWidth=props.maxWidth,maxWidth=_props$maxWidth===void 0?null:_props$maxWidth,_props$placeholder=props.placeholder,placeholderStr=_props$placeholder===void 0?'':_props$placeholder,_props$editable=props.editable,editable=_props$editable===void 0?true:_props$editable,_props$readOnly=props.readOnly,readOnly=_props$readOnly===void 0?false:_props$readOnly,_props$indentWithTab=props.indentWithTab,defaultIndentWithTab=_props$indentWithTab===void 0?true:_props$indentWithTab,_props$basicSetup=props.basicSetup,defaultBasicSetup=_props$basicSetup===void 0?true:_props$basicSetup,root=props.root,initialState=props.initialState;var _useState=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState2=_slicedToArray(_useState,2),container=_useState2[0],setContainer=_useState2[1];var _useState3=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState4=_slicedToArray(_useState3,2),view=_useState4[0],setView=_useState4[1];var _useState5=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState6=_slicedToArray(_useState5,2),state=_useState6[0],setState=_useState6[1];var defaultThemeOption=view_.EditorView.theme({'&':{height:height,minHeight:minHeight,maxHeight:maxHeight,width:width,minWidth:minWidth,maxWidth:maxWidth},'& .cm-scroller':{height:'100% !important'}});var updateListener=view_.EditorView.updateListener.of(function(vu){if(vu.docChanged&&typeof onChange==='function'&&// Fix echoing of the remote changes:
153
- // If transaction is market as remote we don't have to call `onChange` handler again
154
- !vu.transactions.some(function(tr){return tr.annotation(External);})){var doc=vu.state.doc;var _value=doc.toString();onChange(_value,vu);}onStatistics&&onStatistics((0,utils/* getStatistics */.a)(vu));});var defaultExtensions=(0,getDefaultExtensions.getDefaultExtensions)({theme:theme,editable:editable,readOnly:readOnly,placeholder:placeholderStr,indentWithTab:defaultIndentWithTab,basicSetup:defaultBasicSetup});var getExtensions=[updateListener,defaultThemeOption].concat(_toConsumableArray(defaultExtensions));if(onUpdate&&typeof onUpdate==='function'){getExtensions.push(view_.EditorView.updateListener.of(onUpdate));}getExtensions=getExtensions.concat(extensions);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(container&&!state){var config={doc:value,selection:selection,extensions:getExtensions};var stateCurrent=initialState?state_.EditorState.fromJSON(initialState.json,config,initialState.fields):state_.EditorState.create(config);setState(stateCurrent);if(!view){var viewCurrent=new view_.EditorView({state:stateCurrent,parent:container,root:root});setView(viewCurrent);onCreateEditor&&onCreateEditor(viewCurrent,stateCurrent);}}return function(){if(view){setState(undefined);setView(undefined);}};},[container,state]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){return setContainer(props.container);},[props.container]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){return function(){if(view){view.destroy();setView(undefined);}};},[view]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(autoFocus&&view){view.focus();}},[autoFocus,view]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(view){view.dispatch({effects:state_.StateEffect.reconfigure.of(getExtensions)});}// eslint-disable-next-line react-hooks/exhaustive-deps
155
- },[theme,extensions,height,minHeight,maxHeight,width,minWidth,maxWidth,placeholderStr,editable,readOnly,defaultIndentWithTab,defaultBasicSetup,onChange,onUpdate]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(value===undefined){return;}var currentValue=view?view.state.doc.toString():'';if(view&&value!==currentValue){view.dispatch({changes:{from:0,to:currentValue.length,insert:value||''},annotations:[External.of(true)]});}},[value,view]);return{state:state,setState:setState,view:view,setView:setView,container:container,setContainer:setContainer};}
156
-
157
- /***/ }),
158
-
159
- /***/ 742:
160
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
161
-
162
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
163
- /* harmony export */ a: () => (/* binding */ getStatistics)
164
- /* harmony export */ });
165
- var getStatistics=function getStatistics(view){return{line:view.state.doc.lineAt(view.state.selection.main.from),lineCount:view.state.doc.lines,lineBreak:view.state.lineBreak,length:view.state.doc.length,readOnly:view.state.readOnly,tabSize:view.state.tabSize,selection:view.state.selection,selectionAsSingle:view.state.selection.asSingle().main,ranges:view.state.selection.ranges,selectionCode:view.state.sliceDoc(view.state.selection.main.from,view.state.selection.main.to),selections:view.state.selection.ranges.map(function(r){return view.state.sliceDoc(r.from,r.to);}),selectedText:view.state.selection.ranges.some(function(r){return!r.empty;})};};
166
-
167
- /***/ }),
168
-
169
- /***/ 141:
15
+ /***/ 724:
170
16
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
171
17
 
172
18
 
@@ -181,7 +27,7 @@ var view_ = __webpack_require__(105);
181
27
  // EXTERNAL MODULE: external {"root":["CM","@codemirror/state"],"commonjs":"@codemirror/state","commonjs2":"@codemirror/state"}
182
28
  var state_ = __webpack_require__(242);
183
29
  // EXTERNAL MODULE: ../node_modules/@codemirror/commands/dist/index.js
184
- var dist = __webpack_require__(79);
30
+ var dist = __webpack_require__(617);
185
31
  ;// CONCATENATED MODULE: ../node_modules/crelt/index.js
186
32
  function crelt() {
187
33
  var elt = arguments[0]
@@ -1434,7 +1280,7 @@ const searchExtensions = [
1434
1280
 
1435
1281
 
1436
1282
  // EXTERNAL MODULE: ../node_modules/@codemirror/language/dist/index.js + 2 modules
1437
- var language_dist = __webpack_require__(434);
1283
+ var language_dist = __webpack_require__(478);
1438
1284
  ;// CONCATENATED MODULE: ../node_modules/@codemirror/autocomplete/dist/index.js
1439
1285
 
1440
1286
 
@@ -1777,7 +1623,8 @@ const completionConfig = /*@__PURE__*/state_.Facet.define({
1777
1623
  addToOptions: [],
1778
1624
  positionInfo: defaultPositionInfo,
1779
1625
  compareCompletions: (a, b) => a.label.localeCompare(b.label),
1780
- interactionDelay: 75
1626
+ interactionDelay: 75,
1627
+ updateSyncTime: 100
1781
1628
  }, {
1782
1629
  defaultKeymap: (a, b) => a && b,
1783
1630
  closeOnBlur: (a, b) => a && b,
@@ -1907,6 +1754,7 @@ class CompletionTooltip {
1907
1754
  this.dom.className = "cm-tooltip-autocomplete";
1908
1755
  this.updateTooltipClass(view.state);
1909
1756
  this.dom.addEventListener("mousedown", (e) => {
1757
+ let { options } = view.state.field(stateField).open;
1910
1758
  for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {
1911
1759
  if (dom.nodeName == "LI" && (match = /-(\d+)$/.exec(dom.id)) && +match[1] < options.length) {
1912
1760
  this.applyCompletion(view, options[+match[1]]);
@@ -1921,22 +1769,32 @@ class CompletionTooltip {
1921
1769
  e.relatedTarget != view.contentDOM)
1922
1770
  view.dispatch({ effects: closeCompletionEffect.of(null) });
1923
1771
  });
1924
- this.list = this.dom.appendChild(this.createListBox(options, cState.id, this.range));
1772
+ this.showOptions(options, cState.id);
1773
+ }
1774
+ mount() { this.updateSel(); }
1775
+ showOptions(options, id) {
1776
+ if (this.list)
1777
+ this.list.remove();
1778
+ this.list = this.dom.appendChild(this.createListBox(options, id, this.range));
1925
1779
  this.list.addEventListener("scroll", () => {
1926
1780
  if (this.info)
1927
1781
  this.view.requestMeasure(this.placeInfoReq);
1928
1782
  });
1929
1783
  }
1930
- mount() { this.updateSel(); }
1931
1784
  update(update) {
1932
- var _a, _b, _c;
1785
+ var _a;
1933
1786
  let cState = update.state.field(this.stateField);
1934
1787
  let prevState = update.startState.field(this.stateField);
1935
1788
  this.updateTooltipClass(update.state);
1936
1789
  if (cState != prevState) {
1790
+ let { options, selected, disabled } = cState.open;
1791
+ if (!prevState.open || prevState.open.options != options) {
1792
+ this.range = rangeAroundSelected(options.length, selected, update.state.facet(completionConfig).maxRenderedOptions);
1793
+ this.showOptions(options, cState.id);
1794
+ }
1937
1795
  this.updateSel();
1938
- if (((_a = cState.open) === null || _a === void 0 ? void 0 : _a.disabled) != ((_b = prevState.open) === null || _b === void 0 ? void 0 : _b.disabled))
1939
- this.dom.classList.toggle("cm-tooltip-autocomplete-disabled", !!((_c = cState.open) === null || _c === void 0 ? void 0 : _c.disabled));
1796
+ if (disabled != ((_a = prevState.open) === null || _a === void 0 ? void 0 : _a.disabled))
1797
+ this.dom.classList.toggle("cm-tooltip-autocomplete-disabled", !!disabled);
1940
1798
  }
1941
1799
  }
1942
1800
  updateTooltipClass(state) {
@@ -1960,12 +1818,7 @@ class CompletionTooltip {
1960
1818
  let cState = this.view.state.field(this.stateField), open = cState.open;
1961
1819
  if (open.selected > -1 && open.selected < this.range.from || open.selected >= this.range.to) {
1962
1820
  this.range = rangeAroundSelected(open.options.length, open.selected, this.view.state.facet(completionConfig).maxRenderedOptions);
1963
- this.list.remove();
1964
- this.list = this.dom.appendChild(this.createListBox(open.options, cState.id, this.range));
1965
- this.list.addEventListener("scroll", () => {
1966
- if (this.info)
1967
- this.view.requestMeasure(this.placeInfoReq);
1968
- });
1821
+ this.showOptions(open.options, cState.id);
1969
1822
  }
1970
1823
  if (this.updateSelectedOption(open.selected)) {
1971
1824
  this.destroyInfo();
@@ -2105,8 +1958,6 @@ class CompletionTooltip {
2105
1958
  this.destroyInfo();
2106
1959
  }
2107
1960
  }
2108
- // We allocate a new function instance every time the completion
2109
- // changes to force redrawing/repositioning of the tooltip
2110
1961
  function completionTooltip(stateField, applyCompletion) {
2111
1962
  return (view) => new CompletionTooltip(view, stateField, applyCompletion);
2112
1963
  }
@@ -2214,7 +2065,7 @@ class CompletionDialog {
2214
2065
  }
2215
2066
  return new CompletionDialog(options, makeAttrs(id, selected), {
2216
2067
  pos: active.reduce((a, b) => b.hasResult() ? Math.min(a, b.from) : a, 1e8),
2217
- create: completionTooltip(completionState, applyCompletion),
2068
+ create: createTooltip,
2218
2069
  above: conf.aboveCursor,
2219
2070
  }, prev ? prev.timestamp : Date.now(), selected, false);
2220
2071
  }
@@ -2390,6 +2241,7 @@ function applyCompletion(view, option) {
2390
2241
  apply(view, option.completion, result.from, result.to);
2391
2242
  return true;
2392
2243
  }
2244
+ const createTooltip = /*@__PURE__*/completionTooltip(completionState, applyCompletion);
2393
2245
 
2394
2246
  /**
2395
2247
  Returns a command that moves the completion selection forward or
@@ -2456,7 +2308,7 @@ class RunningQuery {
2456
2308
  this.done = undefined;
2457
2309
  }
2458
2310
  }
2459
- const DebounceTime = 50, MaxUpdateCount = 50, MinAbortTime = 1000;
2311
+ const MaxUpdateCount = 50, MinAbortTime = 1000;
2460
2312
  const completionPlugin = /*@__PURE__*/view_.ViewPlugin.fromClass(class {
2461
2313
  constructor(view) {
2462
2314
  this.view = view;
@@ -2497,7 +2349,7 @@ const completionPlugin = /*@__PURE__*/view_.ViewPlugin.fromClass(class {
2497
2349
  if (this.debounceUpdate > -1)
2498
2350
  clearTimeout(this.debounceUpdate);
2499
2351
  this.debounceUpdate = cState.active.some(a => a.state == 1 /* State.Pending */ && !this.running.some(q => q.active.source == a.source))
2500
- ? setTimeout(() => this.startUpdate(), DebounceTime) : -1;
2352
+ ? setTimeout(() => this.startUpdate(), update.state.facet(completionConfig).updateSyncTime) : -1;
2501
2353
  if (this.composing != 0 /* CompositionState.None */)
2502
2354
  for (let tr of update.transactions) {
2503
2355
  if (getUserEvent(tr) == "input")
@@ -2533,7 +2385,7 @@ const completionPlugin = /*@__PURE__*/view_.ViewPlugin.fromClass(class {
2533
2385
  if (this.running.every(q => q.done !== undefined))
2534
2386
  this.accept();
2535
2387
  else if (this.debounceAccept < 0)
2536
- this.debounceAccept = setTimeout(() => this.accept(), DebounceTime);
2388
+ this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);
2537
2389
  }
2538
2390
  // For each finished query in this.running, try to create a result
2539
2391
  // or, if appropriate, restart the query.
@@ -2998,7 +2850,7 @@ const snippetPointerHandler = /*@__PURE__*/view_.EditorView.domEventHandlers({
2998
2850
  });
2999
2851
 
3000
2852
  function wordRE(wordChars) {
3001
- let escaped = wordChars.replace(/[\\[.+*?(){|^$]/g, "\\$&");
2853
+ let escaped = wordChars.replace(/[\]\-\\]/g, "\\$&");
3002
2854
  try {
3003
2855
  return new RegExp(`[\\p{Alphabetic}\\p{Number}_${escaped}]+`, "ug");
3004
2856
  }
@@ -4324,7 +4176,161 @@ var minimalSetup = function minimalSetup(options) {
4324
4176
 
4325
4177
  /***/ }),
4326
4178
 
4327
- /***/ 349:
4179
+ /***/ 180:
4180
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4181
+
4182
+ __webpack_require__.r(__webpack_exports__);
4183
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4184
+ /* harmony export */ defaultLightThemeOption: () => (/* reexport safe */ _theme_light__WEBPACK_IMPORTED_MODULE_4__.d),
4185
+ /* harmony export */ getDefaultExtensions: () => (/* binding */ getDefaultExtensions)
4186
+ /* harmony export */ });
4187
+ /* harmony import */ var _codemirror_commands__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(617);
4188
+ /* harmony import */ var _uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(724);
4189
+ /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105);
4190
+ /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_codemirror_view__WEBPACK_IMPORTED_MODULE_1__);
4191
+ /* harmony import */ var _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(362);
4192
+ /* harmony import */ var _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__);
4193
+ /* harmony import */ var _codemirror_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(242);
4194
+ /* harmony import */ var _codemirror_state__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_codemirror_state__WEBPACK_IMPORTED_MODULE_3__);
4195
+ /* harmony import */ var _theme_light__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
4196
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
4197
+ /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__) if(["default","getDefaultExtensions"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__[__WEBPACK_IMPORT_KEY__]
4198
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
4199
+ var getDefaultExtensions=function getDefaultExtensions(){var optios=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _optios$indentWithTab=optios.indentWithTab,defaultIndentWithTab=_optios$indentWithTab===void 0?true:_optios$indentWithTab,_optios$editable=optios.editable,editable=_optios$editable===void 0?true:_optios$editable,_optios$readOnly=optios.readOnly,readOnly=_optios$readOnly===void 0?false:_optios$readOnly,_optios$theme=optios.theme,theme=_optios$theme===void 0?'light':_optios$theme,_optios$placeholder=optios.placeholder,placeholderStr=_optios$placeholder===void 0?'':_optios$placeholder,_optios$basicSetup=optios.basicSetup,defaultBasicSetup=_optios$basicSetup===void 0?true:_optios$basicSetup;var getExtensions=[];if(defaultIndentWithTab){getExtensions.unshift(_codemirror_view__WEBPACK_IMPORTED_MODULE_1__.keymap.of([_codemirror_commands__WEBPACK_IMPORTED_MODULE_5__/* .indentWithTab */ .oc]));}if(defaultBasicSetup){if(typeof defaultBasicSetup==='boolean'){getExtensions.unshift((0,_uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_0__/* .basicSetup */ .X)());}else{getExtensions.unshift((0,_uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_0__/* .basicSetup */ .X)(defaultBasicSetup));}}if(placeholderStr){getExtensions.unshift((0,_codemirror_view__WEBPACK_IMPORTED_MODULE_1__.placeholder)(placeholderStr));}switch(theme){case'light':getExtensions.push(_theme_light__WEBPACK_IMPORTED_MODULE_4__/* .defaultLightThemeOption */ .d);break;case'dark':getExtensions.push(_codemirror_theme_one_dark__WEBPACK_IMPORTED_MODULE_2__.oneDark);break;case'none':break;default:getExtensions.push(theme);break;}if(editable===false){getExtensions.push(_codemirror_view__WEBPACK_IMPORTED_MODULE_1__.EditorView.editable.of(false));}if(readOnly){getExtensions.push(_codemirror_state__WEBPACK_IMPORTED_MODULE_3__.EditorState.readOnly.of(true));}return[].concat(getExtensions);};
4200
+
4201
+ /***/ }),
4202
+
4203
+ /***/ 8:
4204
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4205
+
4206
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4207
+ /* harmony export */ d: () => (/* binding */ defaultLightThemeOption)
4208
+ /* harmony export */ });
4209
+ /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(105);
4210
+ /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_codemirror_view__WEBPACK_IMPORTED_MODULE_0__);
4211
+ var defaultLightThemeOption=_codemirror_view__WEBPACK_IMPORTED_MODULE_0__.EditorView.theme({'&':{backgroundColor:'#fff'}},{dark:false});
4212
+
4213
+ /***/ }),
4214
+
4215
+ /***/ 80:
4216
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4217
+
4218
+
4219
+ // EXPORTS
4220
+ __webpack_require__.d(__webpack_exports__, {
4221
+ U: () => (/* binding */ useCodeMirror)
4222
+ });
4223
+
4224
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
4225
+ function _arrayLikeToArray(arr, len) {
4226
+ if (len == null || len > arr.length) len = arr.length;
4227
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
4228
+ return arr2;
4229
+ }
4230
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
4231
+
4232
+ function _arrayWithoutHoles(arr) {
4233
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
4234
+ }
4235
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/iterableToArray.js
4236
+ function _iterableToArray(iter) {
4237
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
4238
+ }
4239
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
4240
+
4241
+ function _unsupportedIterableToArray(o, minLen) {
4242
+ if (!o) return;
4243
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
4244
+ var n = Object.prototype.toString.call(o).slice(8, -1);
4245
+ if (n === "Object" && o.constructor) n = o.constructor.name;
4246
+ if (n === "Map" || n === "Set") return Array.from(o);
4247
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
4248
+ }
4249
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
4250
+ function _nonIterableSpread() {
4251
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4252
+ }
4253
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
4254
+
4255
+
4256
+
4257
+
4258
+ function _toConsumableArray(arr) {
4259
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
4260
+ }
4261
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
4262
+ function _arrayWithHoles(arr) {
4263
+ if (Array.isArray(arr)) return arr;
4264
+ }
4265
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
4266
+ function _iterableToArrayLimit(r, l) {
4267
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
4268
+ if (null != t) {
4269
+ var e,
4270
+ n,
4271
+ i,
4272
+ u,
4273
+ a = [],
4274
+ f = !0,
4275
+ o = !1;
4276
+ try {
4277
+ if (i = (t = t.call(r)).next, 0 === l) {
4278
+ if (Object(t) !== t) return;
4279
+ f = !1;
4280
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
4281
+ } catch (r) {
4282
+ o = !0, n = r;
4283
+ } finally {
4284
+ try {
4285
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
4286
+ } finally {
4287
+ if (o) throw n;
4288
+ }
4289
+ }
4290
+ return a;
4291
+ }
4292
+ }
4293
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
4294
+ function _nonIterableRest() {
4295
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4296
+ }
4297
+ ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/slicedToArray.js
4298
+
4299
+
4300
+
4301
+
4302
+ function _slicedToArray(arr, i) {
4303
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
4304
+ }
4305
+ // EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
4306
+ var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(787);
4307
+ // EXTERNAL MODULE: external {"root":["CM","@codemirror/state"],"commonjs":"@codemirror/state","commonjs2":"@codemirror/state"}
4308
+ var state_ = __webpack_require__(242);
4309
+ // EXTERNAL MODULE: external {"root":["CM","@codemirror/view"],"commonjs":"@codemirror/view","commonjs2":"@codemirror/view"}
4310
+ var view_ = __webpack_require__(105);
4311
+ // EXTERNAL MODULE: ./src/getDefaultExtensions.ts
4312
+ var getDefaultExtensions = __webpack_require__(180);
4313
+ // EXTERNAL MODULE: ./src/utils.ts
4314
+ var utils = __webpack_require__(237);
4315
+ ;// CONCATENATED MODULE: ./src/useCodeMirror.ts
4316
+ var External=state_.Annotation.define();var emptyExtensions=[];function useCodeMirror(props){var value=props.value,selection=props.selection,onChange=props.onChange,onStatistics=props.onStatistics,onCreateEditor=props.onCreateEditor,onUpdate=props.onUpdate,_props$extensions=props.extensions,extensions=_props$extensions===void 0?emptyExtensions:_props$extensions,autoFocus=props.autoFocus,_props$theme=props.theme,theme=_props$theme===void 0?'light':_props$theme,_props$height=props.height,height=_props$height===void 0?null:_props$height,_props$minHeight=props.minHeight,minHeight=_props$minHeight===void 0?null:_props$minHeight,_props$maxHeight=props.maxHeight,maxHeight=_props$maxHeight===void 0?null:_props$maxHeight,_props$width=props.width,width=_props$width===void 0?null:_props$width,_props$minWidth=props.minWidth,minWidth=_props$minWidth===void 0?null:_props$minWidth,_props$maxWidth=props.maxWidth,maxWidth=_props$maxWidth===void 0?null:_props$maxWidth,_props$placeholder=props.placeholder,placeholderStr=_props$placeholder===void 0?'':_props$placeholder,_props$editable=props.editable,editable=_props$editable===void 0?true:_props$editable,_props$readOnly=props.readOnly,readOnly=_props$readOnly===void 0?false:_props$readOnly,_props$indentWithTab=props.indentWithTab,defaultIndentWithTab=_props$indentWithTab===void 0?true:_props$indentWithTab,_props$basicSetup=props.basicSetup,defaultBasicSetup=_props$basicSetup===void 0?true:_props$basicSetup,root=props.root,initialState=props.initialState;var _useState=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState2=_slicedToArray(_useState,2),container=_useState2[0],setContainer=_useState2[1];var _useState3=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState4=_slicedToArray(_useState3,2),view=_useState4[0],setView=_useState4[1];var _useState5=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState6=_slicedToArray(_useState5,2),state=_useState6[0],setState=_useState6[1];var defaultThemeOption=view_.EditorView.theme({'&':{height:height,minHeight:minHeight,maxHeight:maxHeight,width:width,minWidth:minWidth,maxWidth:maxWidth},'& .cm-scroller':{height:'100% !important'}});var updateListener=view_.EditorView.updateListener.of(function(vu){if(vu.docChanged&&typeof onChange==='function'&&// Fix echoing of the remote changes:
4317
+ // If transaction is market as remote we don't have to call `onChange` handler again
4318
+ !vu.transactions.some(function(tr){return tr.annotation(External);})){var doc=vu.state.doc;var _value=doc.toString();onChange(_value,vu);}onStatistics&&onStatistics((0,utils/* getStatistics */.a)(vu));});var defaultExtensions=(0,getDefaultExtensions.getDefaultExtensions)({theme:theme,editable:editable,readOnly:readOnly,placeholder:placeholderStr,indentWithTab:defaultIndentWithTab,basicSetup:defaultBasicSetup});var getExtensions=[updateListener,defaultThemeOption].concat(_toConsumableArray(defaultExtensions));if(onUpdate&&typeof onUpdate==='function'){getExtensions.push(view_.EditorView.updateListener.of(onUpdate));}getExtensions=getExtensions.concat(extensions);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(container&&!state){var config={doc:value,selection:selection,extensions:getExtensions};var stateCurrent=initialState?state_.EditorState.fromJSON(initialState.json,config,initialState.fields):state_.EditorState.create(config);setState(stateCurrent);if(!view){var viewCurrent=new view_.EditorView({state:stateCurrent,parent:container,root:root});setView(viewCurrent);onCreateEditor&&onCreateEditor(viewCurrent,stateCurrent);}}return function(){if(view){setState(undefined);setView(undefined);}};},[container,state]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){return setContainer(props.container);},[props.container]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){return function(){if(view){view.destroy();setView(undefined);}};},[view]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(autoFocus&&view){view.focus();}},[autoFocus,view]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(view){view.dispatch({effects:state_.StateEffect.reconfigure.of(getExtensions)});}// eslint-disable-next-line react-hooks/exhaustive-deps
4319
+ },[theme,extensions,height,minHeight,maxHeight,width,minWidth,maxWidth,placeholderStr,editable,readOnly,defaultIndentWithTab,defaultBasicSetup,onChange,onUpdate]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(value===undefined){return;}var currentValue=view?view.state.doc.toString():'';if(view&&value!==currentValue){view.dispatch({changes:{from:0,to:currentValue.length,insert:value||''},annotations:[External.of(true)]});}},[value,view]);return{state:state,setState:setState,view:view,setView:setView,container:container,setContainer:setContainer};}
4320
+
4321
+ /***/ }),
4322
+
4323
+ /***/ 237:
4324
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4325
+
4326
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4327
+ /* harmony export */ a: () => (/* binding */ getStatistics)
4328
+ /* harmony export */ });
4329
+ var getStatistics=function getStatistics(view){return{line:view.state.doc.lineAt(view.state.selection.main.from),lineCount:view.state.doc.lines,lineBreak:view.state.lineBreak,length:view.state.doc.length,readOnly:view.state.readOnly,tabSize:view.state.tabSize,selection:view.state.selection,selectionAsSingle:view.state.selection.asSingle().main,ranges:view.state.selection.ranges,selectionCode:view.state.sliceDoc(view.state.selection.main.from,view.state.selection.main.to),selections:view.state.selection.ranges.map(function(r){return view.state.sliceDoc(r.from,r.to);}),selectedText:view.state.selection.ranges.some(function(r){return!r.empty;})};};
4330
+
4331
+ /***/ }),
4332
+
4333
+ /***/ 426:
4328
4334
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4329
4335
 
4330
4336
  var __webpack_unused_export__;
@@ -4343,13 +4349,13 @@ function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&
4343
4349
 
4344
4350
  /***/ }),
4345
4351
 
4346
- /***/ 501:
4352
+ /***/ 246:
4347
4353
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
4348
4354
 
4349
4355
 
4350
4356
 
4351
4357
  if (true) {
4352
- module.exports = __webpack_require__(349);
4358
+ module.exports = __webpack_require__(426);
4353
4359
  } else {}
4354
4360
 
4355
4361
 
@@ -4505,7 +4511,7 @@ function _objectWithoutProperties(source, excluded) {
4505
4511
 
4506
4512
  /***/ }),
4507
4513
 
4508
- /***/ 79:
4514
+ /***/ 617:
4509
4515
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4510
4516
 
4511
4517
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -4514,11 +4520,11 @@ function _objectWithoutProperties(source, excluded) {
4514
4520
  /* harmony export */ oc: () => (/* binding */ indentWithTab),
4515
4521
  /* harmony export */ wQ: () => (/* binding */ defaultKeymap)
4516
4522
  /* harmony export */ });
4517
- /* unused harmony exports blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, deleteCharBackward, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, historyField, indentLess, indentMore, indentSelection, insertBlankLine, insertNewline, insertNewlineAndIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, transposeChars, undo, undoDepth, undoSelection */
4523
+ /* unused harmony exports blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, deleteCharBackward, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteLineBoundaryBackward, deleteLineBoundaryForward, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, historyField, indentLess, indentMore, indentSelection, insertBlankLine, insertNewline, insertNewlineAndIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, transposeChars, undo, undoDepth, undoSelection */
4518
4524
  /* harmony import */ var _codemirror_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242);
4519
4525
  /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105);
4520
- /* harmony import */ var _codemirror_language__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(434);
4521
- /* harmony import */ var _lezer_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(857);
4526
+ /* harmony import */ var _codemirror_language__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(478);
4527
+ /* harmony import */ var _lezer_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
4522
4528
 
4523
4529
 
4524
4530
 
@@ -5535,12 +5541,15 @@ syntax tree.
5535
5541
  const selectParentSyntax = ({ state, dispatch }) => {
5536
5542
  let selection = updateSel(state.selection, range => {
5537
5543
  var _a;
5538
- let context = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_3__/* .syntaxTree */ .qz)(state).resolveInner(range.head, 1);
5539
- while (!((context.from < range.from && context.to >= range.to) ||
5540
- (context.to > range.to && context.from <= range.from) ||
5541
- !((_a = context.parent) === null || _a === void 0 ? void 0 : _a.parent)))
5542
- context = context.parent;
5543
- return _codemirror_state__WEBPACK_IMPORTED_MODULE_0__.EditorSelection.range(context.to, context.from);
5544
+ let stack = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_3__/* .syntaxTree */ .qz)(state).resolveStack(range.from, 1);
5545
+ for (let cur = stack; cur; cur = cur.next) {
5546
+ let { node } = cur;
5547
+ if (((node.from < range.from && node.to >= range.to) ||
5548
+ (node.to > range.to && node.from <= range.from)) &&
5549
+ ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent))
5550
+ return _codemirror_state__WEBPACK_IMPORTED_MODULE_0__.EditorSelection.range(node.to, node.from);
5551
+ }
5552
+ return range;
5544
5553
  });
5545
5554
  dispatch(setSel(state, selection));
5546
5555
  return true;
@@ -5568,7 +5577,7 @@ function deleteBy(target, by) {
5568
5577
  let changes = state.changeByRange(range => {
5569
5578
  let { from, to } = range;
5570
5579
  if (from == to) {
5571
- let towards = by(from);
5580
+ let towards = by(range);
5572
5581
  if (towards < from) {
5573
5582
  event = "delete.backward";
5574
5583
  towards = skipAtomic(target, towards, false);
@@ -5584,7 +5593,7 @@ function deleteBy(target, by) {
5584
5593
  from = skipAtomic(target, from, false);
5585
5594
  to = skipAtomic(target, to, true);
5586
5595
  }
5587
- return from == to ? { range } : { changes: { from, to }, range: _codemirror_state__WEBPACK_IMPORTED_MODULE_0__.EditorSelection.cursor(from) };
5596
+ return from == to ? { range } : { changes: { from, to }, range: _codemirror_state__WEBPACK_IMPORTED_MODULE_0__.EditorSelection.cursor(from, from < range.head ? -1 : 1) };
5588
5597
  });
5589
5598
  if (changes.changes.empty)
5590
5599
  return false;
@@ -5604,8 +5613,8 @@ function skipAtomic(target, pos, forward) {
5604
5613
  });
5605
5614
  return pos;
5606
5615
  }
5607
- const deleteByChar = (target, forward) => deleteBy(target, pos => {
5608
- let { state } = target, line = state.doc.lineAt(pos), before, targetPos;
5616
+ const deleteByChar = (target, forward) => deleteBy(target, range => {
5617
+ let pos = range.from, { state } = target, line = state.doc.lineAt(pos), before, targetPos;
5609
5618
  if (!forward && pos > line.from && pos < line.from + 200 &&
5610
5619
  !/[^ \t]/.test(before = line.text.slice(0, pos - line.from))) {
5611
5620
  if (before[before.length - 1] == "\t")
@@ -5631,12 +5640,12 @@ const deleteCharBackward = view => deleteByChar(view, false);
5631
5640
  Delete the selection or the character after the cursor.
5632
5641
  */
5633
5642
  const deleteCharForward = view => deleteByChar(view, true);
5634
- const deleteByGroup = (target, forward) => deleteBy(target, start => {
5635
- let pos = start, { state } = target, line = state.doc.lineAt(pos);
5643
+ const deleteByGroup = (target, forward) => deleteBy(target, range => {
5644
+ let pos = range.head, { state } = target, line = state.doc.lineAt(pos);
5636
5645
  let categorize = state.charCategorizer(pos);
5637
5646
  for (let cat = null;;) {
5638
5647
  if (pos == (forward ? line.to : line.from)) {
5639
- if (pos == start && line.number != (forward ? state.doc.lines : 1))
5648
+ if (pos == range.head && line.number != (forward ? state.doc.lines : 1))
5640
5649
  pos += forward ? 1 : -1;
5641
5650
  break;
5642
5651
  }
@@ -5645,7 +5654,7 @@ const deleteByGroup = (target, forward) => deleteBy(target, start => {
5645
5654
  let nextCat = categorize(nextChar);
5646
5655
  if (cat != null && nextCat != cat)
5647
5656
  break;
5648
- if (nextChar != " " || pos != start)
5657
+ if (nextChar != " " || pos != range.head)
5649
5658
  cat = nextCat;
5650
5659
  pos = next;
5651
5660
  }
@@ -5666,18 +5675,34 @@ Delete the selection, or, if it is a cursor selection, delete to
5666
5675
  the end of the line. If the cursor is directly at the end of the
5667
5676
  line, delete the line break after it.
5668
5677
  */
5669
- const deleteToLineEnd = view => deleteBy(view, pos => {
5670
- let lineEnd = view.lineBlockAt(pos).to;
5671
- return pos < lineEnd ? lineEnd : Math.min(view.state.doc.length, pos + 1);
5678
+ const deleteToLineEnd = view => deleteBy(view, range => {
5679
+ let lineEnd = view.lineBlockAt(range.head).to;
5680
+ return range.head < lineEnd ? lineEnd : Math.min(view.state.doc.length, range.head + 1);
5672
5681
  });
5673
5682
  /**
5674
5683
  Delete the selection, or, if it is a cursor selection, delete to
5675
5684
  the start of the line. If the cursor is directly at the start of the
5676
5685
  line, delete the line break before it.
5677
5686
  */
5678
- const deleteToLineStart = view => deleteBy(view, pos => {
5679
- let lineStart = view.lineBlockAt(pos).from;
5680
- return pos > lineStart ? lineStart : Math.max(0, pos - 1);
5687
+ const deleteToLineStart = view => deleteBy(view, range => {
5688
+ let lineStart = view.lineBlockAt(range.head).from;
5689
+ return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);
5690
+ });
5691
+ /**
5692
+ Delete the selection, or, if it is a cursor selection, delete to
5693
+ the start of the line or the next line wrap before the cursor.
5694
+ */
5695
+ const deleteLineBoundaryBackward = view => deleteBy(view, range => {
5696
+ let lineStart = view.moveToLineBoundary(range, false).head;
5697
+ return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);
5698
+ });
5699
+ /**
5700
+ Delete the selection, or, if it is a cursor selection, delete to
5701
+ the end of the line or the next line wrap after the cursor.
5702
+ */
5703
+ const deleteLineBoundaryForward = view => deleteBy(view, range => {
5704
+ let lineStart = view.moveToLineBoundary(range, true).head;
5705
+ return range.head < lineStart ? lineStart : Math.min(view.state.doc.length, range.head + 1);
5681
5706
  });
5682
5707
  /**
5683
5708
  Delete all whitespace directly before a line end from the
@@ -6048,8 +6073,8 @@ property changed to `mac`.)
6048
6073
  - Delete: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)
6049
6074
  - Ctrl-Backspace (Alt-Backspace on macOS): [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)
6050
6075
  - Ctrl-Delete (Alt-Delete on macOS): [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)
6051
- - Cmd-Backspace (macOS): [`deleteToLineStart`](https://codemirror.net/6/docs/ref/#commands.deleteToLineStart).
6052
- - Cmd-Delete (macOS): [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd).
6076
+ - Cmd-Backspace (macOS): [`deleteLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryBackward).
6077
+ - Cmd-Delete (macOS): [`deleteLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryForward).
6053
6078
  */
6054
6079
  const standardKeymap = /*@__PURE__*/[
6055
6080
  { key: "ArrowLeft", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },
@@ -6076,8 +6101,8 @@ const standardKeymap = /*@__PURE__*/[
6076
6101
  { key: "Delete", run: deleteCharForward },
6077
6102
  { key: "Mod-Backspace", mac: "Alt-Backspace", run: deleteGroupBackward },
6078
6103
  { key: "Mod-Delete", mac: "Alt-Delete", run: deleteGroupForward },
6079
- { mac: "Mod-Backspace", run: deleteToLineStart },
6080
- { mac: "Mod-Delete", run: deleteToLineEnd }
6104
+ { mac: "Mod-Backspace", run: deleteLineBoundaryBackward },
6105
+ { mac: "Mod-Delete", run: deleteLineBoundaryForward }
6081
6106
  ].concat(/*@__PURE__*/emacsStyleKeymap.map(b => ({ mac: b.key, run: b.run, shift: b.shift })));
6082
6107
  /**
6083
6108
  The default keymap. Includes all bindings from
@@ -6133,7 +6158,7 @@ const indentWithTab = { key: "Tab", run: indentMore, shift: indentLess };
6133
6158
 
6134
6159
  /***/ }),
6135
6160
 
6136
- /***/ 434:
6161
+ /***/ 478:
6137
6162
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6138
6163
 
6139
6164
 
@@ -6157,7 +6182,7 @@ __webpack_require__.d(__webpack_exports__, {
6157
6182
  // UNUSED EXPORTS: DocInput, HighlightStyle, LRLanguage, Language, LanguageDescription, LanguageSupport, ParseContext, StreamLanguage, StringStream, TreeIndentContext, bracketMatchingHandle, codeFolding, continuedIndent, defineLanguageFacet, delimitedIndent, ensureSyntaxTree, flatIndent, foldAll, foldCode, foldEffect, foldInside, foldNodeProp, foldService, foldState, foldable, foldedRanges, forceParsing, highlightingFor, indentNodeProp, indentRange, indentService, language, languageDataProp, sublanguageProp, syntaxParserRunning, syntaxTreeAvailable, toggleFold, unfoldAll, unfoldCode, unfoldEffect
6158
6183
 
6159
6184
  // EXTERNAL MODULE: ../node_modules/@lezer/common/dist/index.js
6160
- var dist = __webpack_require__(857);
6185
+ var dist = __webpack_require__(59);
6161
6186
  // EXTERNAL MODULE: external {"root":["CM","@codemirror/state"],"commonjs":"@codemirror/state","commonjs2":"@codemirror/state"}
6162
6187
  var state_ = __webpack_require__(242);
6163
6188
  // EXTERNAL MODULE: external {"root":["CM","@codemirror/view"],"commonjs":"@codemirror/view","commonjs2":"@codemirror/view"}
@@ -9723,7 +9748,7 @@ function docID(data) {
9723
9748
 
9724
9749
  /***/ }),
9725
9750
 
9726
- /***/ 857:
9751
+ /***/ 59:
9727
9752
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
9728
9753
 
9729
9754
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -11921,8 +11946,8 @@ __webpack_require__.r(__webpack_exports__);
11921
11946
  /* harmony import */ var _home_runner_work_react_codemirror_react_codemirror_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(808);
11922
11947
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(787);
11923
11948
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
11924
- /* harmony import */ var _useCodeMirror__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(128);
11925
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(501);
11949
+ /* harmony import */ var _useCodeMirror__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80);
11950
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(246);
11926
11951
  /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(105);
11927
11952
  /* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_codemirror_view__WEBPACK_IMPORTED_MODULE_3__);
11928
11953
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
@@ -11933,12 +11958,12 @@ __webpack_require__.r(__webpack_exports__);
11933
11958
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
11934
11959
  /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _codemirror_state__WEBPACK_IMPORTED_MODULE_4__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _codemirror_state__WEBPACK_IMPORTED_MODULE_4__[__WEBPACK_IMPORT_KEY__]
11935
11960
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
11936
- /* harmony import */ var _uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(141);
11937
- /* harmony import */ var _getDefaultExtensions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(736);
11961
+ /* harmony import */ var _uiw_codemirror_extensions_basic_setup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(724);
11962
+ /* harmony import */ var _getDefaultExtensions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(180);
11938
11963
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
11939
11964
  /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _getDefaultExtensions__WEBPACK_IMPORTED_MODULE_6__) if(["default","basicSetup","minimalSetup","useCodeMirror"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _getDefaultExtensions__WEBPACK_IMPORTED_MODULE_6__[__WEBPACK_IMPORT_KEY__]
11940
11965
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
11941
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(742);
11966
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(237);
11942
11967
  var _excluded=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"];var ReactCodeMirror=/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function(props,ref){var className=props.className,_props$value=props.value,value=_props$value===void 0?'':_props$value,selection=props.selection,_props$extensions=props.extensions,extensions=_props$extensions===void 0?[]:_props$extensions,onChange=props.onChange,onStatistics=props.onStatistics,onCreateEditor=props.onCreateEditor,onUpdate=props.onUpdate,autoFocus=props.autoFocus,_props$theme=props.theme,theme=_props$theme===void 0?'light':_props$theme,height=props.height,minHeight=props.minHeight,maxHeight=props.maxHeight,width=props.width,minWidth=props.minWidth,maxWidth=props.maxWidth,basicSetup=props.basicSetup,placeholder=props.placeholder,indentWithTab=props.indentWithTab,editable=props.editable,readOnly=props.readOnly,root=props.root,initialState=props.initialState,other=(0,_home_runner_work_react_codemirror_react_codemirror_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(props,_excluded);var editor=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);var _useCodeMirror=(0,_useCodeMirror__WEBPACK_IMPORTED_MODULE_1__/* .useCodeMirror */ .U)({container:editor.current,root:root,value:value,autoFocus:autoFocus,theme:theme,height:height,minHeight:minHeight,maxHeight:maxHeight,width:width,minWidth:minWidth,maxWidth:maxWidth,basicSetup:basicSetup,placeholder:placeholder,indentWithTab:indentWithTab,editable:editable,readOnly:readOnly,selection:selection,onChange:onChange,onStatistics:onStatistics,onCreateEditor:onCreateEditor,onUpdate:onUpdate,extensions:extensions,initialState:initialState}),state=_useCodeMirror.state,view=_useCodeMirror.view,container=_useCodeMirror.container;(0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(ref,function(){return{editor:editor.current,state:state,view:view};},[editor,container,state,view]);// check type of value
11943
11968
  if(typeof value!=='string'){throw new Error("value must be typeof string but got ".concat(typeof value));}var defaultClassNames=typeof theme==='string'?"cm-theme-".concat(theme):'cm-theme';return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div",(0,_home_runner_work_react_codemirror_react_codemirror_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({ref:editor,className:"".concat(defaultClassNames).concat(className?" ".concat(className):'')},other));});ReactCodeMirror.displayName='CodeMirror';/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactCodeMirror);
11944
11969
  })();