UNPKG

@atlaskit/editor-plugin-code-block-advanced

Version:

CodeBlockAdvanced plugin for @atlaskit/editor-core

127 lines 4.3 kB
import { LanguageDescription, LanguageSupport } from '@codemirror/language'; import { languages } from '@codemirror/language-data'; // getLanguageIdentifier defines `language.alias[0]` export var mapLanguageToCodeMirror = function mapLanguageToCodeMirror(language) { if (!language || language === 'none') { return undefined; } switch (language) { case 'markdown': return LanguageDescription.of({ name: 'Markdown', extensions: ['md', 'markdown', 'mkd'], load: function load() { return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-markdown" */ '@codemirror/lang-markdown').then(function (m) { return m.markdown({ codeLanguages: languages }); }); } }); case 'coldfusion': return languages.find(function (l) { return l.name.toLowerCase() === 'xml'; }); case 'matlab': return languages.find(function (l) { return l.name.toLowerCase() === 'octave'; }); case 'javafx': return languages.find(function (l) { return l.name.toLowerCase() === 'java'; }); case 'vbnet': return languages.find(function (l) { return l.name === 'VB.NET'; }); case 'pas': return languages.find(function (l) { return l.name.toLowerCase() === 'pascal'; }); case 'cuda': return languages.find(function (l) { return l.name.toLowerCase() === 'c++'; }); case 'racket': return languages.find(function (l) { return l.name === 'Common Lisp'; }); case 'abap': return languages.find(function (l) { return l.name === 'SQL'; }); case 'standardmL': return languages.find(function (l) { return l.name === 'SML'; }); case 'objective-j': return languages.find(function (l) { return l.name === 'Objective-C'; }); case 'docker': return languages.find(function (l) { return l.name === 'Dockerfile'; }); case 'arduino': return languages.find(function (l) { return l.name === 'C++'; }); case 'visualbasic': return languages.find(function (l) { return l.name === 'VB.NET'; }); case 'gherkin': return languages.find(function (l) { return l.name === 'Gherkin'; }); case 'toml': return languages.find(function (l) { return l.name === 'TOML'; }); case 'handlebars': return LanguageDescription.of({ name: 'Handlebars', load: function load() { return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-handlebars" */ '@xiechao/codemirror-lang-handlebars').then(function (m) { return new LanguageSupport(m.handlebarsLanguage); }); } }); case 'elixir': return LanguageDescription.of({ name: 'Elixir', load: function load() { return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-elixir" */ 'codemirror-lang-elixir').then(function (m) { return m.elixir(); }); } }); case 'graphql': return LanguageDescription.of({ name: 'GraphQL', load: function load() { return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-graphql" */ 'cm6-graphql').then(function (m) { return m.graphqlLanguageSupport(); }); } }); case 'actionscript': return LanguageDescription.of({ name: 'ActionScript', load: function load() { return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-actionscript" */ './actionscript/languageSupport').then(function (m) { return m.actionscriptLanguageSupport(); }); } }); default: return languages.find(function (l) { return l.alias.includes(language) || l.name.toLowerCase() === (language === null || language === void 0 ? void 0 : language.toLowerCase()); }); } };