Guides / Editor tooling

Editor tooling

Run oroc language-server from a project with oro.toml to connect an installed language server to Oro's build model. Choose one language per process; an editor can launch multiple processes for the same project.

oroc language-server --language typescript .

Before you start: Node.js 22+, the selected language server on the editor's PATH, and the relevant target tools. Oro does not download language servers automatically. Stdout is reserved for LSP; build/preparation messages go to stderr. See the complete command options.

Choose a language#

Language Default backend Model and limits
Kotlin kotlin-language-server, fwcd adapter Android model; Java 21 for editor qualification, separate from Java 17 native Android builds
TypeScript / JavaScript / React typescript-language-server --stdio Install TypeScript alongside the server; web editing does not require Gradle or an Android SDK
C / C++ / Objective-C / Objective-C++ clangd Native target model; C-family language-server launch is unavailable on Windows in this release
Swift sourcekit-lsp Swift 6.0+ / Xcode 16+ for compiler settings, rename, and formatting support
Custom language Configured stdio executable Backend owns project discovery unless a dedicated adapter exists

Windows TypeScript editing, C++ model export, and runtime builds remain available despite the C-family language-server launch limit. A model being exportable does not prove that every backend can consume it.

Configure the backend#

Add only necessary overrides to oro.toml:

[language_server.typescript]
command = "typescript-language-server"
args = ["--stdio"]

[language_server.cpp]
command = "clangd"
args = ["--background-index"]

command names one executable, not a shell command. Relative executable paths resolve against the project root; args is an array passed literally and replaces the default arguments. A language-specific table overrides its family table. --server overrides the executable without discarding configured arguments. Custom stdio adapters own discovery and reject Oro's --prepare, --refresh, and --offline model controls.

Export and inspect models#

oroc tooling typescript .
oroc tooling doctor .

Use tooling kotlin, tooling cpp, tooling typescript, and tooling swift for target models. tooling doctor reports prerequisites and model freshness. Check each command's platform/architecture and preparation options before exporting a native target.

The directory containing oro.toml is the recommended workspace root; oro.ini is also recognized. Explicit project directories and --config override editor root discovery. Otherwise the wrapper uses initialize workspace roots and falls back to its working directory only when those roots are absent. Keep installed API/native inputs matched and refresh stale models after source or target changes.

Editor clients and process recovery#

The release includes a VS Code client under editors/vscode; follow its installation instructions. The language-server guide includes Coc configuration, supported combinations, model identity, preparation, and recovery details.

The wrapper owns backend startup, cancellation, and process lifecycle. Its preparation/startup timeout defaults to 300000 ms. Use --startup-timeout deliberately for a slow first preparation; do not route build logs into LSP stdout or assume a failed backend is ready because a model file exists. Release qualification tests backend lifecycle and cancellation, but does not imply every installed editor/server combination has been qualified.

Source repository · Edit this page · View Markdown

Quick links

Type to search across the site. Use the up and down arrow keys to choose a result, Enter to open it, and Escape to close.