Skip to content

Commit e822817

Browse files
authored
feat: add language-mode plugin recommendation system (Acode-Foundation#2368)
1 parent b5ba27c commit e822817

40 files changed

Lines changed: 653 additions & 61 deletions

src/components/searchbar/index.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ function searchBar(
190190
*/
191191
function cloneSearchItem($item) {
192192
const $clone = $item.cloneNode(true);
193+
syncCheckboxState($clone, $item);
193194
$clone.addEventListener("click", () => {
194195
$item.addEventListener(
195196
"settings-item-interaction-end",
@@ -213,6 +214,26 @@ function searchBar(
213214
function syncSearchClone($clone, $item) {
214215
$clone.className = $item.className;
215216
$clone.innerHTML = $item.innerHTML;
217+
syncCheckboxState($clone, $item);
218+
}
219+
220+
/**
221+
* Sync the checked property of checkbox and radio elements, since cloneNode and innerHTML do not copy/preserve dynamic checked state.
222+
* @param {HTMLElement} $clone
223+
* @param {HTMLElement} $item
224+
*/
225+
function syncCheckboxState($clone, $item) {
226+
const $itemCheckbox = $item.querySelector(
227+
'input[type="checkbox"], input[type="radio"]',
228+
);
229+
if ($itemCheckbox) {
230+
const $cloneCheckbox = $clone.querySelector(
231+
'input[type="checkbox"], input[type="radio"]',
232+
);
233+
if ($cloneCheckbox) {
234+
$cloneCheckbox.checked = $itemCheckbox.checked;
235+
}
236+
}
216237
}
217238
}
218239

src/lang/ar-ye.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "إيقاف",
767767
"quick tools height": "ارتفاع الأدوات السريعة",
768768
"quick tools toggler": "مبدل الأدوات السريعة",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/be-by.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "Выкл",
767767
"quick tools height": "Вышыня хуткіх інструментаў",
768768
"quick tools toggler": "Пераключальнік хуткіх інструментаў",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/bn-bd.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "বন্ধ",
767767
"quick tools height": "কুইক টুলসের উচ্চতা",
768768
"quick tools toggler": "কুইক টুলস টগলার",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/cs-cz.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "Vypnuto",
767767
"quick tools height": "Výška rychlých nástrojů",
768768
"quick tools toggler": "Přepínač rychlých nástrojů",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/de-de.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "Aus",
767767
"quick tools height": "Schnellwerkzeug-Höhe",
768768
"quick tools toggler": "Schnellwerkzeug-Schaltfläche",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/en-us.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
"live autocompletion": "Live autocompletion",
137137
"local word completion": "Local word completion",
138138
"language package completion": "Language package completion",
139+
"recommend extensions": "Recommend extensions",
139140
"auto close tags": "Auto close tags",
140141
"auto rename tags": "Auto rename tags",
141142
"file properties": "File properties",
@@ -689,6 +690,13 @@
689690
"settings-info-editor-live-autocomplete": "Show suggestions while you type.",
690691
"settings-info-editor-local-word-completion": "Suggest words from the current file.",
691692
"settings-info-editor-language-completion": "Suggest keywords, snippets, and other completions from CodeMirror language packages.",
693+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
694+
"extension recommendation title": "Extensions available for {extension}",
695+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
696+
"extension request title": "No extension found for {extension}",
697+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
698+
"search plugins": "Search plugins",
699+
"request plugin": "Request plugin",
692700
"settings-info-editor-auto-close-tags": "Automatically insert closing tags in HTML, XML, Vue, Angular, and PHP template files.",
693701
"settings-info-editor-auto-rename-tags": "Rename the matching opening or closing tag while editing HTML-like tags.",
694702
"settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",

src/lang/es-sv.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "Apagado",
767767
"quick tools height": "Altura de herramientas rápidas",
768768
"quick tools toggler": "Alternador de herramientas rápidas",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/fr-fr.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "Désactivé",
767767
"quick tools height": "Hauteur des outils rapides",
768768
"quick tools toggler": "Bascule des outils rapides",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

src/lang/he-il.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,5 +766,13 @@
766766
"off": "כבוי",
767767
"quick tools height": "גובה כלים מהירים",
768768
"quick tools toggler": "מחליף כלים מהירים",
769-
"running processes": "Running processes"
769+
"running processes": "Running processes",
770+
"recommend extensions": "Recommend extensions",
771+
"settings-info-editor-recommend-extensions": "Suggest plugins when a file opens as plain text because no language mode is available.",
772+
"extension recommendation title": "Extensions available for {extension}",
773+
"extension recommendation message": "No syntax mode is installed for {extension}. Search plugins for \"{keyword}\".",
774+
"extension request title": "No extension found for {extension}",
775+
"extension request message": "Ask for a plugin so Acode can highlight this file type.",
776+
"search plugins": "Search plugins",
777+
"request plugin": "Request plugin"
770778
}

0 commit comments

Comments
 (0)