The editor

Tabs, editing, autosave, what the gutter tells you, and the files that open in something other than a code view.

The middle of the window is where files open. It is a real code editor — syntax colour, find and replace, undo, multiple tabs — and it is deliberately a light one. It is built for reading your project and making changes to it, not for competing with the editor you already have open on the other monitor.

Knowing where that line sits will save you ten minutes of hunting for a feature that isn't there, so it's spelled out below rather than left for you to discover.

Opening files#

Click a file in the explorer and it opens. Click another and it takes over the same tab — until you type something. The moment you edit a file, its tab is yours and the next file you open gets a tab of its own.

Files opened any other way — from a search result, from a node in the 3D view, from an import link — always open in a new tab.

If the file is already open somewhere, you just get switched to it.

Note

Nothing marks a tab as reusable. VS Code italicises the title; Semantix doesn't, so which tab is about to be replaced is something you infer rather than see.

Tabs#

The strip along the top holds one tab per open file, each with an icon for its language. Hover a tab to see the file's full path.

  • Close — the × on hover, or middle-click anywhere on the tab.
  • Unsaved — a small dot sits where the × goes. Hover and it becomes the ×.
  • Right-click — the whole file menu from the explorer (rename, delete, copy path, reveal, cut, copy, paste), then Close, Close Others, Close All.
  • The leftmost tab is a globe. That's your project root, it has no close button, and clicking it takes you back to the whole-project view. It's the tab you start with, so opening your first file usually takes it over — the same reuse rule as any other tab.

Tabs never reorder and never collapse into a dropdown — with enough of them open the strip scrolls sideways. Your open tabs, and which one was active, come back when you reopen the project.

There is no keyboard shortcut for closing a tab, moving between tabs, or reopening a closed one. Ctrl+Tab belongs to the chat panel, not to files.

Editing#

Type. That's most of it.

Your work saves itself. Roughly a third of a second after you stop typing, the file is written to disk. Ctrl+S saves immediately if you'd rather not wait. There is no manual-save-only mode and no "you have unsaved changes" prompt, because there generally aren't any.

What's bound and works:

Ctrl+F Find and replace, with case-sensitive, whole-word and regular expression toggles
F3 / Ctrl+G Next match — add Shift for previous
Ctrl+Alt+G Go to line
Ctrl+Z / Ctrl+Y Undo / redo
Ctrl+/ Comment or uncomment the selection
Alt+↑ / Alt+↓ Move the current line up or down
Shift+Alt+↑ / Shift+Alt+↓ Duplicate the line up or down
Ctrl+Shift+K Delete the line
Ctrl+[ / Ctrl+] Indent less / more
Ctrl+I Grow the selection to the enclosing block
Tab Expand an Emmet abbreviation — otherwise indents
Ctrl + / - Resize the interface and the editor text together

What is not here. No suggestions as you type, and no snippets. No code folding. Brackets and quotes don't close themselves, and matching brackets aren't highlighted.

There is no multi-cursor, and the keys you'd expect to make one do something else instead: Ctrl+Alt+↑/↓ move your cursor a line rather than adding one, and Ctrl+D selects the word under the cursor the first time — press it again and it only scrolls to the next occurrence without selecting it.

Long lines always wrap, and that isn't adjustable.

Note

Emmet is the one thing here that behaves like autocomplete: type an abbreviation and a preview of the expansion appears, with Tab to accept it. It's meant for HTML and CSS, but it's live in every file — so an abbreviation-shaped fragment in a .ts or .py file can offer to become markup. Carry on typing and it goes away.

Note

If a save ever fails — a read-only file, a permissions problem — the editor doesn't tell you. The unsaved dot simply stays. It's worth a glance at the tab after editing anything unusual.

What the gutter tells you#

Line numbers on the left, a minimap on the right. The minimap is always on and can't be turned off.

Red squiggles are syntax errors only — an unclosed brace, an unterminated string, a stray token. They appear a moment after you stop typing, with no build step. They are not type errors: nothing here checks that you passed the right argument or that a name exists.

Hover a squiggle and the tooltip carries a small button — Send error to agent chat — which drops the message and the offending line straight into the composer. That is usually faster than describing the problem yourself.

There is no problems panel and no error count — squiggles in the file, and a red badge in the explorer on files that have them.

Reading code#

Hover any name in the editor and hold for a moment: a card appears with what it is, its signature, where it's defined, and how many places use it. For a function it counts callers separately from references. Expand the card and you get up to five of those sites, each one clickable.

F12 with your cursor in a name jumps to where it's defined.

→ Search covers what that card can and can't tell you, and which languages it works for.

Files that aren't code#

Images open as images — png, jpg, jpeg, gif, webp, svg and ico — centred, scaled to fit, on a checkerboard so transparency is visible. There's no zoom or pan. A small button top-right offers to show the file as text instead, which is useful for an .svg and does nothing for the rest.

Anything else that is text opens as text. A .toml, .yaml or .sql file is fully editable; it just won't be coloured, because colouring needs a grammar and there are ten of them:

JavaScript (with JSX), TypeScript, TSX, Rust, Python, Go, HTML, CSS, JSON, Markdown.

Note

A genuinely binary file — a PDF, a zip, a font — opens a tab with an empty pane and no message. Nothing has gone wrong; the editor has nothing to show and doesn't currently say so.

Making it yours#

Settings → General → Editor holds the text size (10 to 24) and a choice of sixteen syntax themes — One Dark, Dracula, Nord, Monokai, Tokyo Night, Gruvbox, Solarized and others, light and dark. Switching is instant and doesn't disturb your scroll position or undo history.

The font family lives in the theme editor rather than here, alongside the rest of the appearance. Seven monospace choices are offered; four of them ship with Semantix and the rest use what your system already has. The ones with programming ligatures render them.

→ Theme editor

When the agent has the file#

If you have editor follow switched on and the agent creates a new file, it opens in a tab and types itself out in front of you, with a banner reading Agent is writing and a live dot. The editor is read-only while that happens, and the view stays pinned to the newest line. When the agent finishes, that tab is replaced by one holding the real file from disk.

Editing an existing file doesn't stream like that — the file opens and its content updates when the edit lands.

If the agent writes to a file you already have open, your editor is refreshed with the new content.

Note

That refresh doesn't ask. Unsaved edits of your own in that file are replaced by the agent's version, and your cursor position is lost. If you're editing a file by hand, it's worth not pointing the agent at it at the same time.

→ Watching it work — the follow modes, and how to turn this off.