From d190865d6494d4d6a3e6a21a02f38045cc01a495 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Fri, 28 Apr 2023 09:46:37 +0100 Subject: [PATCH] Merge pull request #12805 from overleaf/ae-markdown-types [cm6] Fix type for Markdown language loader GitOrigin-RevId: 725e1b28dd73e9090638f5d682e48e658c957a04 --- .../features/source-editor/languages/index.ts | 1 - .../source-editor/languages/markdown/index.ts | 23 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/services/web/frontend/js/features/source-editor/languages/index.ts b/services/web/frontend/js/features/source-editor/languages/index.ts index 99dfe80d98..9f03fa2aa6 100644 --- a/services/web/frontend/js/features/source-editor/languages/index.ts +++ b/services/web/frontend/js/features/source-editor/languages/index.ts @@ -53,7 +53,6 @@ export const languages = [ LanguageDescription.of({ name: 'markdown', extensions: ['md', 'markdown'], - // @ts-ignore TODO: find out how to add support extensions load: () => { return import('./markdown').then(m => m.markdown()) }, diff --git a/services/web/frontend/js/features/source-editor/languages/markdown/index.ts b/services/web/frontend/js/features/source-editor/languages/markdown/index.ts index 4234ac8bc0..23d3597967 100644 --- a/services/web/frontend/js/features/source-editor/languages/markdown/index.ts +++ b/services/web/frontend/js/features/source-editor/languages/markdown/index.ts @@ -1,20 +1,25 @@ import { markdown as markdownLanguage } from '@codemirror/lang-markdown' import { shortcuts } from './shortcuts' import { languages } from '../index' -import { Extension } from '@codemirror/state' import { Strikethrough } from '@lezer/markdown' -import { HighlightStyle, syntaxHighlighting } from '@codemirror/language' +import { + HighlightStyle, + LanguageSupport, + syntaxHighlighting, +} from '@codemirror/language' import { tags } from '@lezer/highlight' -export const markdown = (): Extension => { - return [ - markdownLanguage({ - codeLanguages: languages, - extensions: [Strikethrough], - }), +export const markdown = () => { + const { language, support } = markdownLanguage({ + codeLanguages: languages, + extensions: [Strikethrough], + }) + + return new LanguageSupport(language, [ + support, shortcuts(), syntaxHighlighting(markdownHighlightStyle), - ] + ]) } const markdownHighlightStyle = HighlightStyle.define([