@atlaskit/editor-plugin-code-block-advanced
Version:
CodeBlockAdvanced plugin for @atlaskit/editor-core
464 lines (457 loc) • 10.6 kB
text/typescript
import { SUPPORTED_LANGUAGES } from '@atlaskit/code/constants';
// We expect alias[0] to be used for the ADF attribute, see ED-2813
export const DEFAULT_LANGUAGES: (
| {
readonly name: 'PHP';
readonly alias: readonly ['php', 'php3', 'php4', 'php5'];
readonly value: 'php';
}
| {
readonly name: 'Java';
readonly alias: readonly ['java'];
readonly value: 'java';
}
| {
readonly name: 'CSharp';
readonly alias: readonly ['csharp', 'c#'];
readonly value: 'cs';
}
| {
readonly name: 'Python';
readonly alias: readonly ['python', 'py'];
readonly value: 'python';
}
| {
readonly name: 'JavaScript';
readonly alias: readonly ['javascript', 'js'];
readonly value: 'javascript';
}
| {
readonly name: 'Html';
readonly alias: readonly ['html'];
readonly value: 'xml';
}
| {
readonly name: 'C++';
readonly alias: readonly ['c++', 'cpp', 'clike'];
readonly value: 'cpp';
}
| {
readonly name: 'Ruby';
readonly alias: readonly ['ruby', 'rb', 'duby'];
readonly value: 'ruby';
}
| {
readonly name: 'Objective-C';
readonly alias: readonly ['objective-c', 'objectivec', 'obj-c', 'objc'];
readonly value: 'objectivec';
}
| {
readonly name: 'C';
readonly alias: readonly ['c'];
readonly value: 'cpp';
}
| {
readonly name: 'Swift';
readonly alias: readonly ['swift'];
readonly value: 'swift';
}
| {
readonly name: 'TeX';
readonly alias: readonly ['tex', 'latex'];
readonly value: 'tex';
}
| {
readonly name: 'Shell';
readonly alias: readonly ['shell', 'bash', 'sh', 'ksh', 'zsh'];
readonly value: 'shell';
}
| {
readonly name: 'Scala';
readonly alias: readonly ['scala'];
readonly value: 'scala';
}
| {
readonly name: 'Go';
readonly alias: readonly ['go'];
readonly value: 'go';
}
| {
readonly name: 'ActionScript';
readonly alias: readonly ['actionscript', 'actionscript3', 'as'];
readonly value: 'actionscript';
}
| {
readonly name: 'ColdFusion';
readonly alias: readonly ['coldfusion'];
readonly value: 'xml';
}
| {
readonly name: 'JavaFX';
readonly alias: readonly ['javafx', 'jfx'];
readonly value: 'java';
}
| {
readonly name: 'VbNet';
readonly alias: readonly ['vbnet', 'vb.net', 'vfp', 'clipper', 'xbase'];
readonly value: 'vbnet';
}
| {
readonly name: 'JSON';
readonly alias: readonly ['json'];
readonly value: 'json';
}
| {
readonly name: 'MATLAB';
readonly alias: readonly ['matlab'];
readonly value: 'matlab';
}
| {
readonly name: 'Groovy';
readonly alias: readonly ['groovy'];
readonly value: 'groovy';
}
| {
readonly name: 'SQL';
readonly alias: readonly [
'sql',
'postgresql',
'postgres',
'plpgsql',
'psql',
'postgresql-console',
'postgres-console',
'tsql',
't-sql',
'mysql',
'sqlite',
];
readonly value: 'sql';
}
| {
readonly name: 'R';
readonly alias: readonly ['r'];
readonly value: 'r';
}
| {
readonly name: 'Perl';
readonly alias: readonly ['perl', 'pl'];
readonly value: 'perl';
}
| {
readonly name: 'Lua';
readonly alias: readonly ['lua'];
readonly value: 'lua';
}
| {
readonly name: 'Pascal';
readonly alias: readonly ['pas', 'pascal', 'objectpascal', 'delphi'];
readonly value: 'pascal';
}
| {
readonly name: 'XML';
readonly alias: readonly ['xml'];
readonly value: 'xml';
}
| {
readonly name: 'TypeScript';
readonly alias: readonly ['typescript', 'ts'];
readonly value: 'typescript';
}
| {
readonly name: 'CoffeeScript';
readonly alias: readonly ['coffeescript', 'coffee-script', 'coffee'];
readonly value: 'coffeescript';
}
| {
readonly name: 'Haskell';
readonly alias: readonly ['haskell', 'hs'];
readonly value: 'haskell';
}
| {
readonly name: 'Puppet';
readonly alias: readonly ['puppet'];
readonly value: 'puppet';
}
| {
readonly name: 'Arduino';
readonly alias: readonly ['arduino'];
readonly value: 'arduino';
}
| {
readonly name: 'Fortran';
readonly alias: readonly ['fortran'];
readonly value: 'fortran';
}
| {
readonly name: 'Erlang';
readonly alias: readonly ['erlang', 'erl'];
readonly value: 'erlang';
}
| {
readonly name: 'PowerShell';
readonly alias: readonly ['powershell', 'posh', 'ps1', 'psm1'];
readonly value: 'powershell';
}
| {
readonly name: 'Haxe';
readonly alias: readonly ['haxe', 'hx', 'hxsl'];
readonly value: 'haxe';
}
| {
readonly name: 'Elixir';
readonly alias: readonly ['elixir', 'ex', 'exs'];
readonly value: 'elixir';
}
| {
readonly name: 'Verilog';
readonly alias: readonly ['verilog', 'v'];
readonly value: 'verilog';
}
| {
readonly name: 'Rust';
readonly alias: readonly ['rust'];
readonly value: 'rust';
}
| {
readonly name: 'VHDL';
readonly alias: readonly ['vhdl'];
readonly value: 'vhdl';
}
| {
readonly name: 'Sass';
readonly alias: readonly ['sass'];
readonly value: 'less';
}
| {
readonly name: 'OCaml';
readonly alias: readonly ['ocaml'];
readonly value: 'ocaml';
}
| {
readonly name: 'Dart';
readonly alias: readonly ['dart'];
readonly value: 'dart';
}
| {
readonly name: 'CSS';
readonly alias: readonly ['css'];
readonly value: 'css';
}
| {
readonly name: 'reStructuredText';
readonly alias: readonly ['restructuredtext', 'rst', 'rest'];
readonly value: 'rest';
}
| {
readonly name: 'Kotlin';
readonly alias: readonly ['kotlin'];
readonly value: 'kotlin';
}
| {
readonly name: 'D';
readonly alias: readonly ['d'];
readonly value: 'd';
}
| {
readonly name: 'Octave';
readonly alias: readonly ['octave'];
readonly value: 'matlab';
}
| {
readonly name: 'QML';
readonly alias: readonly ['qbs', 'qml'];
readonly value: 'qml';
}
| {
readonly name: 'Prolog';
readonly alias: readonly ['prolog'];
readonly value: 'prolog';
}
| {
readonly name: 'FoxPro';
readonly alias: readonly ['foxpro', 'purebasic'];
readonly value: 'purebasic';
}
| {
readonly name: 'Scheme';
readonly alias: readonly ['scheme', 'scm'];
readonly value: 'scheme';
}
| {
readonly name: 'CUDA';
readonly alias: readonly ['cuda', 'cu'];
readonly value: 'cpp';
}
| {
readonly name: 'Julia';
readonly alias: readonly ['julia', 'jl'];
readonly value: 'julia';
}
| {
readonly name: 'Racket';
readonly alias: readonly ['racket', 'rkt'];
readonly value: 'lisp';
}
| {
readonly name: 'Ada';
readonly alias: readonly ['ada', 'ada95', 'ada2005'];
readonly value: 'ada';
}
| {
readonly name: 'Tcl';
readonly alias: readonly ['tcl'];
readonly value: 'tcl';
}
| {
readonly name: 'Mathematica';
readonly alias: readonly ['mathematica', 'mma', 'nb'];
readonly value: 'mathematica';
}
| {
readonly name: 'Autoit';
readonly alias: readonly ['autoit'];
readonly value: 'autoit';
}
| {
readonly name: 'StandardML';
readonly alias: readonly ['standardmL', 'sml', 'standardml'];
readonly value: 'sml';
}
| {
readonly name: 'Objective-J';
readonly alias: readonly ['objective-j', 'objectivej', 'obj-j', 'objj'];
readonly value: 'objectivec';
}
| {
readonly name: 'Smalltalk';
readonly alias: readonly ['smalltalk', 'squeak', 'st'];
readonly value: 'smalltalk';
}
| {
readonly name: 'Vala';
readonly alias: readonly ['vala', 'vapi'];
readonly value: 'vala';
}
| {
readonly name: 'LiveScript';
readonly alias: readonly ['livescript', 'live-script'];
readonly value: 'livescript';
}
| {
readonly name: 'XQuery';
readonly alias: readonly ['xquery', 'xqy', 'xq', 'xql', 'xqm'];
readonly value: 'xquery';
}
| {
readonly name: 'PlainText';
readonly alias: readonly ['text', 'plaintext'];
readonly value: 'text';
}
| {
readonly name: 'Yaml';
readonly alias: readonly ['yaml', 'yml'];
readonly value: 'yaml';
}
| {
readonly name: 'GraphQL';
readonly alias: readonly ['graphql'];
readonly value: 'graphql';
}
| {
readonly name: 'AppleScript';
readonly alias: readonly ['applescript'];
readonly value: 'applescript';
}
| {
readonly name: 'Clojure';
readonly alias: readonly ['clojure'];
readonly value: 'clojure';
}
| {
readonly name: 'Diff';
readonly alias: readonly ['diff'];
readonly value: 'diff';
}
| {
readonly name: 'VisualBasic';
readonly alias: readonly ['visualbasic'];
readonly value: 'visual-basic';
}
| {
readonly name: 'JSX';
readonly alias: readonly ['jsx'];
readonly value: 'jsx';
}
| {
readonly name: 'TSX';
readonly alias: readonly ['tsx'];
readonly value: 'tsx';
}
| {
readonly name: 'SplunkSPL';
readonly alias: readonly ['splunk-spl'];
readonly value: 'splunk-spl';
}
| {
readonly name: 'Dockerfile';
readonly alias: readonly ['docker', 'dockerfile'];
readonly value: 'dockerfile';
}
| {
readonly name: 'HCL';
readonly alias: readonly ['hcl', 'terraform'];
readonly value: 'hcl';
}
| {
readonly name: 'NGINX';
readonly alias: readonly ['nginx'];
readonly value: 'nginx';
}
| {
readonly name: 'Protocol Buffers';
readonly alias: readonly ['protobuf', 'proto'];
readonly value: 'protobuf';
}
| {
readonly name: 'TOML';
readonly alias: readonly ['toml'];
readonly value: 'toml';
}
| {
readonly name: 'Handlebars';
readonly alias: readonly ['handlebars', 'mustache'];
readonly value: 'handlebars';
}
| {
readonly name: 'Gherkin';
readonly alias: readonly ['gherkin', 'cucumber'];
readonly value: 'gherkin';
}
| {
readonly name: 'ABAP';
readonly alias: readonly ['abap'];
readonly value: 'abap';
}
| {
readonly name: 'Markdown';
readonly alias: readonly ['markdown'];
readonly value: 'markdown';
}
| {
name: string;
alias: string[];
value: string;
}
)[] = [{ name: '(None)', alias: ['none'], value: 'none' }, ...SUPPORTED_LANGUAGES];
export type Language = (typeof DEFAULT_LANGUAGES)[number];
const getLanguageName = (languageValue: string): string | undefined => {
if (!languageValue) {
return undefined;
}
const language = (SUPPORTED_LANGUAGES as readonly Language[]).find((l) => {
return l.value === languageValue || (l.alias && (l.alias as string[]).includes(languageValue));
});
return language ? language.name : undefined;
};
export default getLanguageName;