|
|
@@ -1,8 +1,4 @@
|
|
|
-import { sawCollapsedSpans } from 'codemirror/src/line/saw_special_spans';
|
|
|
-import { getLine } from 'codemirror/src/line/utils_line';
|
|
|
-import { heightAtLine, visualLineEndNo, visualLineNo } from 'codemirror/src/line/spans';
|
|
|
-import { DisplayUpdate } from 'codemirror/src/display/update_display';
|
|
|
-import { adjustView } from 'codemirror/src/display/view_tracking';
|
|
|
+import UpdateDisplayUtil from '../../util/codemirror/update-display-util.ext';
|
|
|
|
|
|
class EmojiAutoCompleteHelper {
|
|
|
|
|
|
@@ -26,35 +22,6 @@ class EmojiAutoCompleteHelper {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Transplant 'updateDisplayIfNeeded' method to fix weseek/growi#703
|
|
|
- *
|
|
|
- * @see https://github.com/weseek/growi/issues/703
|
|
|
- * @see https://github.com/codemirror/CodeMirror/blob/5.42.0/src/display/update_display.js#L125
|
|
|
- *
|
|
|
- * @param {CodeMirror} cm
|
|
|
- */
|
|
|
- forceUpdateDisplay(cm) {
|
|
|
- const doc = cm.doc;
|
|
|
- const display = cm.display;
|
|
|
-
|
|
|
- const update = new DisplayUpdate(cm, cm.getViewport());
|
|
|
-
|
|
|
- // Compute a suitable new viewport (from & to)
|
|
|
- let end = doc.first + doc.size;
|
|
|
- let from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
|
|
|
- let to = Math.min(end, update.visible.to + cm.options.viewportMargin);
|
|
|
- if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);
|
|
|
- if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);
|
|
|
- if (sawCollapsedSpans) {
|
|
|
- from = visualLineNo(cm.doc, from);
|
|
|
- to = visualLineEndNo(cm.doc, to);
|
|
|
- }
|
|
|
- adjustView(cm, from, to);
|
|
|
-
|
|
|
- display.viewOffset = heightAtLine(getLine(doc, display.viewFrom));
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* try to find emoji terms and show hint
|
|
|
* @param {any} editor An editor instance of CodeMirror
|
|
|
@@ -87,7 +54,7 @@ class EmojiAutoCompleteHelper {
|
|
|
* 3. https://github.com/codemirror/CodeMirror/blob/5.42.0/src/measurement/position_measurement.js#L372
|
|
|
* 4. https://github.com/codemirror/CodeMirror/blob/5.42.0/src/measurement/position_measurement.js#L315
|
|
|
*/
|
|
|
- this.forceUpdateDisplay(editor);
|
|
|
+ UpdateDisplayUtil.forceUpdateViewOffset(editor);
|
|
|
|
|
|
// see https://codemirror.net/doc/manual.html#addon_show-hint
|
|
|
editor.showHint({
|