import { python } from '@codemirror/lang-python' import { javascriptLang } from '../../../codemirror/javascriptLang' import { json } from '@codemirror/lang-json' import { css } from '@codemirror/lang-css' import { html } from '@codemirror/lang-html' import { markdown } from '@codemirror/lang-markdown' import { sql } from '@codemirror/lang-sql' import { java } from '@codemirror/lang-java' import { cpp } from '@codemirror/lang-cpp' import { rust } from '@codemirror/lang-rust' import { go } from '@codemirror/lang-go' import { php } from '@codemirror/lang-php' import { yaml } from '@codemirror/lang-yaml' import { xml } from '@codemirror/lang-xml' import { fcTemplateLang } from '../../../codemirror/fcTemplateLang' export function toEditorCode(code, language = 'javascript') { if (code == null) return '' if (typeof code === 'object' && language === 'json') { return JSON.stringify(code, null, 2) } return String(code) } export function getCodeLanguageExtension( language = 'javascript', autoCompleteObject = null ) { const lang = Array.isArray(language) ? language[0] : language switch (String(lang || 'javascript').toLowerCase()) { case 'javascript': case 'js': return javascriptLang({ autoCompleteObject }) case 'python': case 'py': return python() case 'json': return json() case 'xml': return xml() case 'fctemplatelang': case 'ejs': return fcTemplateLang({ autoCompleteObject }) case 'html': return html() case 'css': return css() case 'markdown': case 'md': return markdown() case 'sql': return sql() case 'java': return java() case 'cpp': case 'c++': case 'c': return cpp() case 'rust': case 'rs': return rust() case 'go': return go() case 'php': return php() case 'yaml': case 'yml': return yaml() default: return javascriptLang({ autoCompleteObject }) } }