Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-20 15:26:25 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-20 15:26:25 +0300
commita09983ae35713f5a2bbb100981116d31ce99826e (patch)
tree2ee2af7bd104d57086db360a7e6d8c9d5d43667a /app/assets/javascripts/lib/utils/text_markdown.js
parent18c5ab32b738c0b6ecb4d0df3994000482f34bd8 (diff)
Add latest changes from gitlab-org/gitlab@13-2-stable-ee
Diffstat (limited to 'app/assets/javascripts/lib/utils/text_markdown.js')
-rw-r--r--app/assets/javascripts/lib/utils/text_markdown.js43
1 files changed, 37 insertions, 6 deletions
diff --git a/app/assets/javascripts/lib/utils/text_markdown.js b/app/assets/javascripts/lib/utils/text_markdown.js
index 0dfc144c363..4d25ee9e4bd 100644
--- a/app/assets/javascripts/lib/utils/text_markdown.js
+++ b/app/assets/javascripts/lib/utils/text_markdown.js
@@ -27,9 +27,28 @@ function lineAfter(text, textarea) {
.split('\n')[0];
}
+function convertMonacoSelectionToAceFormat(sel) {
+ return {
+ start: {
+ row: sel.startLineNumber,
+ column: sel.startColumn,
+ },
+ end: {
+ row: sel.endLineNumber,
+ column: sel.endColumn,
+ },
+ };
+}
+
+function getEditorSelectionRange(editor) {
+ return window.gon.features?.monacoBlobs
+ ? convertMonacoSelectionToAceFormat(editor.getSelection())
+ : editor.getSelectionRange();
+}
+
function editorBlockTagText(text, blockTag, selected, editor) {
const lines = text.split('\n');
- const selectionRange = editor.getSelectionRange();
+ const selectionRange = getEditorSelectionRange(editor);
const shouldRemoveBlock =
lines[selectionRange.start.row - 1] === blockTag &&
lines[selectionRange.end.row + 1] === blockTag;
@@ -90,8 +109,12 @@ function moveCursor({
const endPosition = startPosition + select.length;
return textArea.setSelectionRange(startPosition, endPosition);
} else if (editor) {
- editor.navigateLeft(tag.length - tag.indexOf(select));
- editor.getSelection().selectAWord();
+ if (window.gon.features?.monacoBlobs) {
+ editor.selectWithinSelection(select, tag);
+ } else {
+ editor.navigateLeft(tag.length - tag.indexOf(select));
+ editor.getSelection().selectAWord();
+ }
return;
}
}
@@ -115,7 +138,11 @@ function moveCursor({
}
} else if (editor && editorSelectionStart.row === editorSelectionEnd.row) {
if (positionBetweenTags) {
- editor.navigateLeft(tag.length);
+ if (window.gon.features?.monacoBlobs) {
+ editor.moveCursor(tag.length * -1);
+ } else {
+ editor.navigateLeft(tag.length);
+ }
}
}
}
@@ -140,7 +167,7 @@ export function insertMarkdownText({
let textToInsert;
if (editor) {
- const selectionRange = editor.getSelectionRange();
+ const selectionRange = getEditorSelectionRange(editor);
editorSelectionStart = selectionRange.start;
editorSelectionEnd = selectionRange.end;
@@ -237,7 +264,11 @@ export function insertMarkdownText({
}
if (editor) {
- editor.insert(textToInsert);
+ if (window.gon.features?.monacoBlobs) {
+ editor.replaceSelectedText(textToInsert, select);
+ } else {
+ editor.insert(textToInsert);
+ }
} else {
insertText(textArea, textToInsert);
}