MCPcopy
hub / github.com/Dokploy/dokploy / CodeEditor

Function CodeEditor

apps/dokploy/components/shared/code-editor.tsx:140–198  ·  view source on GitHub ↗
({
	className,
	wrapperClassName,
	language = "yaml",
	lineNumbers = true,
	...props
}: Props)

Source from the content-addressed store, hash-verified

138}
139
140export const CodeEditor = ({
141 className,
142 wrapperClassName,
143 language = "yaml",
144 lineNumbers = true,
145 ...props
146}: Props) => {
147 const { resolvedTheme } = useTheme();
148 return (
149 <div className={cn("overflow-auto", wrapperClassName)}>
150 <CodeMirror
151 basicSetup={{
152 lineNumbers,
153 foldGutter: true,
154 highlightSelectionMatches: true,
155 highlightActiveLine: !props.disabled,
156 allowMultipleSelections: true,
157 }}
158 theme={resolvedTheme === "dark" ? githubDark : githubLight}
159 extensions={[
160 search(),
161 keymap.of(searchKeymap),
162 language === "yaml"
163 ? yaml()
164 : language === "json"
165 ? json()
166 : language === "css"
167 ? css()
168 : language === "shell"
169 ? StreamLanguage.define(shell)
170 : StreamLanguage.define({
171 ...properties,
172 // The legacy properties mode lacks comment metadata, so
173 // CodeMirror's toggle-comment shortcut (Mod-/) has no comment
174 // token to use. Declare `#` as the line comment for env editors.
175 languageData: { commentTokens: { line: "#" } },
176 }),
177 props.lineWrapping ? EditorView.lineWrapping : [],
178 language === "yaml"
179 ? autocompletion({
180 override: [dockerComposeComplete],
181 })
182 : [],
183 ]}
184 {...props}
185 editable={!props.disabled}
186 className={cn(
187 "w-full h-full text-sm leading-relaxed relative",
188 `cm-theme-${resolvedTheme}`,
189 className,
190 )}
191 >
192 {props.disabled && (
193 <div className="absolute top-0 rounded-md left-0 w-full h-full flex items-center justify-center z-[10] [background:var(--overlay)] h-full" />
194 )}
195 </CodeMirror>
196 </div>
197 );

Callers

nothing calls this directly

Calls 1

cnFunction · 0.90

Tested by

no test coverage detected