WARSHALL
Docs/Workspace/Projects and the explorer

Projects and the explorer

A project is a folder you opened. The switcher moves between your projects, and the explorer is the file tree of the one you are in.

The project switcher

It sits at the left end of the top bar and shows the current project's name with its folder beside it. Click it for the list.

  • Every open project is a row, with its folder beside its name.
  • A project reads Working while any of its terminals has a run going.
  • The x at the end of a row closes that project.
  • Open folder… at the bottom adds another project.

The arrows on either side of the name step to the previous and next project, and wrap around at the ends.

The Terminals view has no switcher, because it shows every project at once. Each project there has its own section, and the section head carries the project name, a + that adds a terminal, the worktree history and an x that closes the project.

Opening a folder

Every folder you open starts with one terminal, ready to work and not bound to any WorkMap node. Opening a folder that is already open brings it forward instead of adding it twice.

When the folder is a git repository without a WorkMap, Warshall offers to create one. See Generating a WorkMap.

Parallel terminals need a git repository, because each one works in its own worktree. A folder without git runs one terminal at a time, and asking for a second one explains why it was refused.

Closing a project

Closing a project closes every terminal in it. With nothing running it closes at once.

When a run is still going, it asks first and says how many sessions are still working. Close anyway stops them mid task and retires their worktrees.

The explorer

The explorer is the left column of the workspace, headed Explorer.

  • The panel button in its head folds it away and brings it back. Ctrl and B, or Ctrl and Shift and E, do the same.
  • Drag its right edge to change its width.
  • The tree starts at the project root. Click a folder to open or close it, and click a file to open it in the editor.
  • A chain of folders that each hold only one folder is shown as a single row, so deep package paths take one line.
  • Folders and files a build or a tool makes, such as node_modules, .git, dist and target, are shown dimmed.

The root row carries a new file and a new folder control. The new entry goes into the folder you clicked last.

Searching files

The field under the head searches file names across the project. Ctrl and P puts the cursor in it from anywhere.

  • Up and Down move through the results, and Enter opens the highlighted one.
  • Escape clears the field and leaves it. The x in the field clears it and keeps the cursor there.
  • When nothing matches, the list reads no files found.

The row menu

Right-click a file or folder in the tree for its menu.

ItemWhat it does
OpenOpens the file in the editor. Files only.
CopyCopies the whole file to the clipboard, text as text and an image as an image. Files only.
Copy PathCopies the full path.
RenameTurns the row into a field so you rename it in place.
DeleteMoves it to the Recycle Bin. An empty file or folder goes straight away. Anything else asks first.

On a project whose editor profile is Java, the menu starts with a New submenu holding Java Class, Package and File, and it has no Open item. See the editor profile.

Files that change underneath

The explorer and the editor show what is on disk now, not what was there when the project opened. Warshall watches the folders it is showing, which are the project root, every folder the tree has listed and the folder of the file in the editor. When something changes in one of them, that folder is listed again, whoever made the change. It could be an agent in a terminal, a git pull or another program.

The editor reloads the open file when that file changed and you have no unsaved edit in it. An unsaved edit is treated as the newer version and is left alone.

A change deep inside a folder the tree has never listed is not watched. It is read from disk the moment you open that folder.