HomeDocumentationFile Browser and Editor
Chapter 3 Chapter 3 of the official user guide

Chapter 3 — File Browser and Editor

The editor is where you spend most of your time inside a connection tab. This chapter covers everything that lives in the center pane and its file-tree neighbours.

Opening files and projects

There are several routes to getting code on screen:

  • File → Open File… (Ctrl+O) — single file picker. Opens the file in the editor of the currently focused connection tab. If no connection is focused, opens in a local editor tab.
  • File → Open Project Folder… (Ctrl+Shift+O) — opens an entire directory as the workspace root. The local file browser tree jumps to that folder.
  • File → New Project from Template… (Ctrl+Shift+N) — scaffolds a starter project. Templates include Python script, Flask API, ESP32 firmware, Raspberry Pi script, FastAPI service, etc.
  • Double-click a file in the file browser — opens it in the editor. Works for remote files too (over SFTP).
  • Drag a file from your OS file manager onto the editor area — opens it.

The recently used items live under File → Recent Files (last 20).

Local file browser

The local tree shows your computer's filesystem. By default it is rooted at your home directory; Open Project Folder changes the root.

Useful right-click items:

  • New File / New Folder — quickly scaffold next to an existing path.
  • Rename, Duplicate, Delete — usual file ops. Delete sends to the OS recycle bin/trash on supported platforms; otherwise prompts for hard delete.
  • Open in OS Explorer / Finder — reveals the file outside AidaIDE.
  • Copy Path — full absolute path to the clipboard.

Remote file browser (SFTP)

Inside a connection tab, the Remote tree shows the file system on the SSH host, fetched on demand via SFTP. The columns are Name, Size, Modified.

Behaviour worth knowing:

  • Right-click an empty area to refresh.
  • Double-click a folder to expand; double-click a file to open it in the editor.
  • Right-click a file for Run (calls a sensible interpreter — python for .py, bash for .sh, node for .js, cat/tail for log-like files), Rename, Delete, Download (copies to local), chmod +x (adds execute), Properties.
  • Drag-and-drop between the local and remote trees uploads / downloads.
  • Permissions stick. Renaming or moving a file does not change its mode bits.

If you delete a file by mistake, there is no remote trash. Be careful with Delete on the remote tree.

The editor

The editor pane has a tab strip at the top — one tab per open file. Files open in the same editor regardless of whether they live locally or on the remote host.

Syntax highlighting

Driven by file extension. Supported out of the box: Python, JavaScript/TypeScript, C/C++, Go, Rust, Java, HTML, CSS, Markdown, JSON, YAML, TOML, INI, Bash/Shell, PowerShell, SQL. New file types can be added via Settings → Editor → Syntax.

If you save a file with a different extension (Save As… .txt.py), the highlighter re-evaluates. If for any reason highlighting does not update, close and reopen the file — this is a known minor trap.

Cursor and selection

  • Standard arrow / shift-arrow navigation.
  • Ctrl+→ / Ctrl+← move by word.
  • Home / End jump to line start/end. Pressing Home twice jumps to column 1 vs. first non-whitespace, like most editors.
  • Ctrl+A selects the whole document.
  • Multi-cursor: Alt+Click adds a cursor at the click point.

Split panes

Open a second editor next to the first to compare files or edit two regions of the same file:

  • Right-click an editor tab → Split Right opens a copy in a side pane.
  • The active pane has a highlighted border. Click in a pane to focus it.
  • Each pane has its own cursor and scroll position; saves apply to the underlying file regardless of pane.

Save and Save As

  • Ctrl+S — save the current file. If it is a remote file, the save goes over SFTP and does not silently fall back to local on failure.
  • File → Save As… — save under a new path. Updates the highlighter if the extension changed.
  • Files with unsaved changes show an asterisk in the tab title.
  • Closing an unsaved tab prompts to save first.

Find and Find in Files

Two related dialogs:

  • Find (Ctrl+F) — search inside the current file. Options: case-sensitive, whole word, regex. Replace with Ctrl+H. Find next is F3 (or Enter in the find box).
  • Find in Files (Ctrl+Shift+F) — search across the project root (set by Open Project Folder). Results list groups by file; double-click a result to jump to the line.
  • Go to Line (Ctrl+G) — type a line number and jump. Accepts 42:10 syntax to put the cursor at column 10 of line 42.

Running files

The editor's top toolbar has a Run () button. It runs the current file using a sensible interpreter:

  • .pypython on the host where the file lives. On a remote file it runs in the remote terminal; on a local file it spawns a process and pipes output to a Run panel.
  • .shbash.
  • .js, .tsnode.
  • .go, .rs, .c, .cpp → compile + run (where toolchains are present).
  • Log/data files (.log, .json, .yaml, .txt, .md) → opened with cat/tail so you can preview without an editor session.

If the file type has no runner, the button is disabled and the tooltip explains why.

Git integration

Tools → Git holds:

  • Git Manager — list of repos AidaIDE knows about, branches, dirty status. Click a repo to drill into a sub-window with file diffs.
  • Quick Push — stages all, commits with a prompt for the message, pushes the current branch.
  • Git Pull — fetches and fast-forwards.
  • Git Status — equivalent of git status in a panel rather than a terminal.
  • Diff Viewer — side-by-side diff of working tree vs. HEAD. Also reachable from the toolbar Git button on the far right.
  • Publish to GitHub — wraps gh repo create if the gh CLI is installed. Otherwise prints instructions.

Branch selector lives on the right side of the toolbar. The button next to it is Push for the current branch.

Diff Viewer

Three modes:

  • Working vs HEAD — current uncommitted changes.
  • Two commits — pick any two from a dropdown.
  • Two files — compare any two open editor tabs side by side. Useful when you have a remote and local copy of the same file.

Editor features worth knowing

  • Auto-save (optional) — off by default. Toggle in Settings → Editor → Save.
  • Format on save — off by default. When on, calls the language's default formatter (black for Python, prettier for JS, etc.).
  • Linting — Python and JavaScript get inline lint warnings if ruff/eslint is on PATH of the host where the file lives.
  • Bookmark a lineCtrl+F2. Jump between bookmarks with F2 / Shift+F2.
  • Multi-line edit / column editAlt+Shift+drag to make a column selection.

Terms & Setup

Workspace

The current set of open tabs, file browser root, and layout. Saved via File → Save Workspace As…. Re-opens with all tabs restored. See Chapter 16.

Local vs remote file

A local file lives on your computer. A remote file lives on the SSH host of the currently focused connection tab. The editor handles both transparently; the tab title shows the host name in front of remote paths.

Project root

The directory passed to Open Project Folder. Find-in-Files and the local file tree both scope to this. Change it any time by opening a different folder.

Run panel

The bottom panel where script output appears when you click Run on a local file. Auto-scrolls. Right-click for Clear and Save Output As….

"I am editing but my changes do not seem to save"

  • Did you click in the correct pane? Saves apply to the focused editor.
  • For remote files, is the connection alive? A red dot on the connection tab means SFTP saves will fail.
  • If the file persists but reopens with old content, you may be looking at a stale local mirror. AidaIDE does not maintain mirrors on purpose — close the tab and re-open the file from the remote tree to verify.

Encoding (UTF-8)

All files are read and written as UTF-8 by default. If you open a legacy CP1252 / Latin-1 file, AidaIDE will show replacement characters (�). Use File → Reopen With… to pick a different encoding. Save back as UTF-8 when possible — mixed encodings cause real data loss across reload cycles.

Line endings

The status bar shows the current file's line ending mode (CRLF or LF). New files default to LF on all platforms. Change with File → Line Endings in the menu.

"How do I open a file in two editors at once?"

Right-click the tab → Split Right, then Ctrl+P (Open File) in the new pane to load the same file. Edits in one pane reflect in the other after each save.

Project templates available

  • Python script (single file)
  • Flask web app
  • FastAPI service
  • ESP32 firmware (PlatformIO layout)
  • Arduino sketch
  • Raspberry Pi Python project
  • Node.js CLI
  • Static HTML site

Pick one in File → New Project from Template… and AidaIDE scaffolds it into the folder you choose.

Ready to try it? Free forever SSH workspace — Pro AI suite optional at $19/mo.

Sign up free