Some checks failed
farmcontrol/farmcontrol-ui/pipeline/head There was a failure building this commit
- Updated fcTemplateLang to utilize new helper functions for improved template type handling. - Introduced typedScope for better autocompletion support in JavaScript language integration. - Enhanced CodeBlockEditor and TemplateEditor components to support cursor change events and template type management. - Added fetchTemplateIntellisense function in ApiServerContext for improved intellisense capabilities based on cursor position. - Refactored related components to ensure consistent handling of template types and cursor changes, enhancing user experience.
80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
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'
|
|
import { gcodeLang } from '../../../codemirror/gcodeLang'
|
|
|
|
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,
|
|
templateType
|
|
) {
|
|
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, templateType })
|
|
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()
|
|
case 'gcode':
|
|
case 'g-code':
|
|
case 'g':
|
|
return gcodeLang()
|
|
default:
|
|
return javascriptLang({ autoCompleteObject })
|
|
}
|
|
}
|