@atlaskit/editor-plugin-code-block-advanced
Version:
CodeBlockAdvanced plugin for @atlaskit/editor-core
127 lines • 4.3 kB
JavaScript
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());
});
}
};