From f7c755f2d6aebb3ac6c2ff1a19955ab39ed360db Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Thu, 30 Jul 2026 08:57:38 +0500 Subject: [PATCH] editor: sort code block languages by recently used (#10144) --- .../src/extensions/code-block/component.tsx | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/editor/src/extensions/code-block/component.tsx b/packages/editor/src/extensions/code-block/component.tsx index b515663ff..bc5ca93c8 100644 --- a/packages/editor/src/extensions/code-block/component.tsx +++ b/packages/editor/src/extensions/code-block/component.tsx @@ -236,8 +236,27 @@ type LanguageSelectorProps = { onClose: () => void; }; function LanguageSelector(props: LanguageSelectorProps) { - const { onLanguageSelected, selectedLanguage, onClose } = props; - const [languages, setLanguages] = useState(Languages); + const { selectedLanguage, onClose } = props; + const recentlyUsed = + config.get>("recentlyUsedCodeBlockLanguages", {}) ?? + {}; + + const [languages, setLanguages] = useState(() => + [...Languages].sort((a, b) => { + const aCount = recentlyUsed[a.filename] || 0; + const bCount = recentlyUsed[b.filename] || 0; + if (aCount !== bCount) return bCount - aCount; + return 0; + }) + ); + + const onLanguageSelected = (language: string) => { + props.onLanguageSelected(language); + config.set("recentlyUsedCodeBlockLanguages", { + ...recentlyUsed, + [language]: Date.now() + }); + }; return (