summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/gfm_auto_complete.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/gfm_auto_complete.js')
-rw-r--r--app/assets/javascripts/gfm_auto_complete.js51
1 files changed, 23 insertions, 28 deletions
diff --git a/app/assets/javascripts/gfm_auto_complete.js b/app/assets/javascripts/gfm_auto_complete.js
index dcb27434a07..cf9ff87f25e 100644
--- a/app/assets/javascripts/gfm_auto_complete.js
+++ b/app/assets/javascripts/gfm_auto_complete.js
@@ -15,7 +15,7 @@ function sanitize(str) {
}
export function membersBeforeSave(members) {
- return members.map(member => {
+ return members.map((member) => {
const GROUP_TYPE = 'Group';
let title = '';
@@ -103,6 +103,7 @@ class GfmAutoComplete {
at: '/',
alias: 'commands',
searchKey: 'search',
+ limit: 100,
skipSpecialCharacterTest: true,
skipMarkdownCharacterTest: true,
data: GfmAutoComplete.defaultLoadingData,
@@ -156,7 +157,7 @@ class GfmAutoComplete {
...this.getDefaultCallbacks(),
beforeSave(commands) {
if (GfmAutoComplete.isLoading(commands)) return commands;
- return $.map(commands, c => {
+ return $.map(commands, (c) => {
let search = c.name;
if (c.aliases.length > 0) {
search = `${search} ${c.aliases.join(' ')}`;
@@ -237,7 +238,7 @@ class GfmAutoComplete {
});
// return to the form atwho wants
- return results.map(name => ({ name }));
+ return results.map((name) => ({ name }));
},
},
});
@@ -285,13 +286,10 @@ class GfmAutoComplete {
...this.getDefaultCallbacks(),
beforeSave: membersBeforeSave,
matcher(flag, subtext) {
- const subtextNodes = subtext
- .split(/\n+/g)
- .pop()
- .split(GfmAutoComplete.regexSubtext);
+ const subtextNodes = subtext.split(/\n+/g).pop().split(GfmAutoComplete.regexSubtext);
// Check if @ is followed by '/assign', '/reassign', '/unassign' or '/cc' commands.
- command = subtextNodes.find(node => {
+ command = subtextNodes.find((node) => {
if (Object.values(MEMBER_COMMAND).includes(node)) {
return node;
}
@@ -301,7 +299,7 @@ class GfmAutoComplete {
// Cache assignees list for easier filtering later
assignees =
SidebarMediator.singleton?.store?.assignees?.map(
- assignee => `${assignee.username} ${assignee.name}`,
+ (assignee) => `${assignee.username} ${assignee.name}`,
) || [];
const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);
@@ -319,10 +317,10 @@ class GfmAutoComplete {
if (command === MEMBER_COMMAND.ASSIGN) {
// Only include members which are not assigned to Issuable currently
- return data.filter(member => !assignees.includes(member.search));
+ return data.filter((member) => !assignees.includes(member.search));
} else if (command === MEMBER_COMMAND.UNASSIGN) {
// Only include members which are assigned to Issuable currently
- return data.filter(member => assignees.includes(member.search));
+ return data.filter((member) => assignees.includes(member.search));
}
return data;
@@ -349,7 +347,7 @@ class GfmAutoComplete {
callbacks: {
...this.getDefaultCallbacks(),
beforeSave(issues) {
- return $.map(issues, i => {
+ return $.map(issues, (i) => {
if (i.title == null) {
return i;
}
@@ -383,7 +381,7 @@ class GfmAutoComplete {
callbacks: {
...this.getDefaultCallbacks(),
beforeSave(milestones) {
- return $.map(milestones, m => {
+ return $.map(milestones, (m) => {
if (m.title == null) {
return m;
}
@@ -416,7 +414,7 @@ class GfmAutoComplete {
callbacks: {
...this.getDefaultCallbacks(),
beforeSave(merges) {
- return $.map(merges, m => {
+ return $.map(merges, (m) => {
if (m.title == null) {
return m;
}
@@ -457,7 +455,7 @@ class GfmAutoComplete {
...this.getDefaultCallbacks(),
beforeSave(merges) {
if (GfmAutoComplete.isLoading(merges)) return merges;
- return $.map(merges, m => ({
+ return $.map(merges, (m) => ({
title: sanitize(m.title),
color: m.color,
search: m.title,
@@ -465,13 +463,10 @@ class GfmAutoComplete {
}));
},
matcher(flag, subtext) {
- const subtextNodes = subtext
- .split(/\n+/g)
- .pop()
- .split(GfmAutoComplete.regexSubtext);
+ const subtextNodes = subtext.split(/\n+/g).pop().split(GfmAutoComplete.regexSubtext);
// Check if ~ is followed by '/label', '/relabel' or '/unlabel' commands.
- command = subtextNodes.find(node => {
+ command = subtextNodes.find((node) => {
if (
node === LABEL_COMMAND.LABEL ||
node === LABEL_COMMAND.RELABEL ||
@@ -492,7 +487,7 @@ class GfmAutoComplete {
return null;
}
const lastCandidate = subtext.split(flag).pop();
- if (labels.find(label => label.title.startsWith(lastCandidate))) {
+ if (labels.find((label) => label.title.startsWith(lastCandidate))) {
return lastCandidate;
}
} else {
@@ -519,10 +514,10 @@ class GfmAutoComplete {
// because we want to return all the labels (unfiltered) for that command.
if (command === LABEL_COMMAND.LABEL) {
// Return labels with set: undefined.
- return data.filter(label => !label.set);
+ return data.filter((label) => !label.set);
} else if (command === LABEL_COMMAND.UNLABEL) {
// Return labels with set: true.
- return data.filter(label => label.set);
+ return data.filter((label) => label.set);
}
return data;
@@ -549,7 +544,7 @@ class GfmAutoComplete {
callbacks: {
...this.getDefaultCallbacks(),
beforeSave(snippets) {
- return $.map(snippets, m => {
+ return $.map(snippets, (m) => {
if (m.title == null) {
return m;
}
@@ -654,7 +649,7 @@ class GfmAutoComplete {
this.loadEmojiData($input, at).catch(() => {});
} else if (dataSource) {
AjaxCache.retrieve(dataSource, true)
- .then(data => {
+ .then((data) => {
this.loadData($input, at, data);
})
.catch(() => {
@@ -696,11 +691,11 @@ class GfmAutoComplete {
}
lookup[key].push({ kind, emoji });
};
- Object.values(emojis).forEach(emoji => {
+ Object.values(emojis).forEach((emoji) => {
add(emoji.name, 'name', emoji);
add(emoji.d, 'description', emoji);
add(emoji.e, 'unicode', emoji);
- emoji.aliases.forEach(a => add(a, 'alias', emoji));
+ emoji.aliases.forEach((a) => add(a, 'alias', emoji));
});
this.emojiLookup = lookup;
@@ -772,7 +767,7 @@ GfmAutoComplete.atTypeMap = {
};
GfmAutoComplete.typesWithBackendFiltering = ['vulnerabilities'];
-GfmAutoComplete.isTypeWithBackendFiltering = type =>
+GfmAutoComplete.isTypeWithBackendFiltering = (type) =>
GfmAutoComplete.typesWithBackendFiltering.includes(GfmAutoComplete.atTypeMap[type]);
function findEmoji(name) {