import { OnboardingButtons, useDismiss, useNextClick } from '.' import { onboardingPaths } from 'routes/Onboarding/paths' import { useStore } from '../../useStore' import { useBackdropHighlight } from 'hooks/useBackdropHighlight' export default function CodeEditor() { const { buttonDownInStream } = useStore((s) => ({ buttonDownInStream: s.buttonDownInStream, })) const dismiss = useDismiss() const next = useNextClick(onboardingPaths.PARAMETRIC_MODELING) return (

Editing code with kcl

kcl is our language for describing geometry. Building our own language is difficult, but we chose to do it to have a language honed for spatial relationships and geometric computation. It'll always be open-source, and we hope it can grow into a new standard for describing parametric objects.

The left pane is where you write your code. It's a code editor with syntax highlighting and autocompletion for kcl. New features arrive in kcl before they're available as point-and-click tools, so it's good to have a link to{' '} our kcl docs {' '} handy while you design for now. It's also available in the menu in the corner of the code pane.

We've built a{' '} language server {' '} for kcl that provides documentation and autocompletion automatically generated from our compiler code. You can try it out by hovering over some of the function names in the pane now. If you like using VSCode, you can try out our{' '} VSCode extension .

You can resize the pane by dragging the handle on the right, and you can collapse it by clicking the title bar or pressing{' '} Shift + C.

) }