Documentation
Everything you need to get productive with SD Code: requirements, first steps, shortcuts, settings, extensions and the limitations you should know about before relying on it.
Requirements
First steps
Open a project
- Use the Welcome tab or press Ctrl + K then Ctrl + O to choose a folder.
- The Explorer shows the tree; the watcher keeps it in sync with the disk.
- The last folder and open files are restored the next time you start SD Code.
Edit and save
- Files open in tabs. Drag a tab to reorder it, middle-click to close it.
- Ctrl + S writes to disk atomically. Unsaved buffers are drafted to disk every second or so.
- Use the tab context menu for close others, close to the right, save as, or open to the side.
Run code
- Press F5 to run the active file with the matching runtime.
- HTML files open in a dedicated preview window instead of running.
- If the runtime is missing, the Output panel explains exactly what to install and links to the download page.
Debug JavaScript
- Click the gutter or press F9 to place a breakpoint in a .js file.
- Press Ctrl + Shift + F5 (or use Run and Debug) to attach the Node.js inspector.
- Use the Variables, Watch and Call Stack sections, then step with F10/F11 or continue with F8.
Use source control
- Open the Source Control view: the branch, changed files and commit box are all there.
- Stage files, type a message and commit. Diffs open beside the editor.
- Push, pull, fetch, stash and tag from the same view. SD Code reports the real git output.
Install an extension
- Open Extensions and choose “Install from file” to select a .sdcx or .zip package.
- Or drop a folder containing a package.json manifest into the extensions folder shown in the view.
- Extensions are declarative: languages, snippets, themes and formatters. No code is executed.
Keyboard shortcuts
Editor-level shortcuts such as Ctrl+F, Ctrl+H, Ctrl+/, Alt+Up, Ctrl+D, F2 and Ctrl+. are handled by Monaco and follow the same conventions as other editors.
Settings
Settings live in the app (Ctrl + ,). They are stored locally in the application profile and can be exported and imported as JSON, so a configuration can be moved between machines. Groups cover the editor, IntelliSense, saving and formatting, appearance, terminal and workspace behaviour. Restoring defaults is a single button.
Editor
Font size and family, tab size, line height, word wrap, minimap, gutter, whitespace, guides, brackets, smooth caret, sticky scroll and breadcrumbs.
Saving
Format on save, format on paste, trim trailing whitespace, insert final newline, auto save after a delay or on focus change.
Appearance
Three themes, accent colour, liquid-glass panels, animations, reduced motion, sidebar side, status bar and activity bar visibility.
Terminal
Font size, scrollback length and cursor blinking.
Workspace
Hidden files, explorer exclusion list, delete confirmation, reopen last workspace and draft recovery.
IntelliSense
Suggestions on type, parameter hints, inlay hints and linked editing for HTML tag pairs.
Extensions
SD Code ships with six bundled extensions and accepts local packages. A package is a folder with a package.json manifest that declares one or more contributions:
{
"id": "your.publisher-name",
"name": "My Extension",
"publisher": "Your Name",
"version": "1.0.0",
"description": "What it contributes",
"categories": ["Snippets"],
"engines": { "sdcode": "^1.0.0" },
"contributes": {
"snippets": [{ "language": "javascript", "path": "./snippets/javascript.json" }],
"languages": [{ "id": "mylang", "extensions": [".ml"], "aliases": ["MyLang"] }],
"themes": [{ "id": "my-theme", "label": "My Theme", "uiTheme": "dark", "colors": {} }],
"formatters": [{ "id": "json", "label": "JSON", "languages": ["json"] }]
}
}Extensions cannot execute code. That is a deliberate security decision: a package can contribute data, not JavaScript.
Known limitations
- The integrated terminal runs each command in its own shell process, so interactive full-screen programs are not supported.
- Debugging is Node.js only. Other languages are edited and highlighted, and can be run, but not stepped through.
- IntelliSense is limited to the language services Monaco ships: JavaScript, TypeScript, JSON, CSS and HTML.
- There is no extension marketplace, and extension packages are declarative only.
- The Windows build is not code-signed, so SmartScreen may warn on first launch.
- There is no auto-update; new versions are installed manually from this site.