Open a .code-workspace
and get the project it describes.

Most Mac editors treat a workspace file as JSON to read. Linelark reads it as what it is — an ordered list of folders, with the exclusions and aliases someone already agreed on — and opens the project, in a window that belongs to it.

Studio 1.6.1 · macOS 14+6.8 MB download

What is read, what is kept, and what a second window owns.

A workspace file is somebody else’s document, usually checked into the repository. Opening it in Linelark and saving it again should not be something a teammate can detect from the diff.

01

Every local folder becomes a root

In the order the file lists them, with the alias the file gave each one. A directory opened from Finder or the command line is treated the same way: a single-folder project.

02

Search obeys the workspace’s own exclusions

Boolean files.exclude and search.exclude entries are applied to folder search using the portable subset of VS Code glob syntax — *, ? and recursive ** — so **/dist and **/*.generated.swift work as written.

03

Opening a project does not overwrite your folder

A project arriving from outside the app is a launch context, not a preference. Close it and the folder you had chosen yourself is exactly where it was.

04

Roots are added and removed natively

File ▸ Add Folder to Workspace… adds one; a root’s context menu removes it without touching the folder on disk.

05

Save Workspace writes a portable file

File ▸ Save Workspace and Save Workspace As… produce a VS Code-compatible .code-workspace with relative folder paths, so the file survives being cloned to a different machine.

06

Fields Linelark does not use are preserved

Settings, tasks, launch configuration and anything else it does not understand are written back unchanged. An editor that dropped them would be an editor nobody could open a shared workspace in twice.

07

A window is a whole workspace

⇧⌘N opens a second window with its own tabs, panes, folder root, find state, shells and plugin panels. The menu bar acts on the window in front.

08

Windows come back where they were

Every window open at quit is restored, in order, at the size and position it had. Closing one forgets that window rather than the app’s session.

What Linelark does with each part of a workspace file.

Read from the file on open, and written back on save. Everything in the third column is round-tripped rather than interpreted.

Part of the fileWhat happens
folders[].pathOpened as a root, relative paths resolved against the workspace file.
folders[].nameUsed as the root’s display name in the sidebar.
files.excludeBoolean-true globs are skipped by the folder tree and folder search.
search.excludeBoolean-true globs are skipped by folder search.
settings, tasks, launchNot interpreted. Preserved exactly when Linelark saves the file.
Remote or virtual foldersIgnored. Only local folders are opened.

Read from the Linelark Studio 1.6.1 source, not from its documentation. Where the two disagree, this is the one that ships.

Where a workspace stops.

Linelark reads the parts of the format that describe folders and search. It is not a second implementation of the editor the format came from.

  • Only local folders openRemote and virtual roots in a workspace file are ignored rather than approximated. A missing or unreachable root stays unavailable until its path can be reached again.
  • Plugins still see one rootfolderRoot() returns a single folder, so a plugin panel describes one root rather than the whole workspace.
  • Editing preferences are app-wideWord wrap, line numbers, whitespace, the document map, the theme and the status bar change in every window at once, by design. Which panels a window shows, and how tall they are, belongs to that window.
  • Each window loads its own pluginsThat is what keeps two windows’ panels and stores out of each other, but it means N windows cost N JavaScript heaps, and enabling a plugin in one window needs Plugins ▸ Reload Plugins in the others.
  • The folder tree does not watch the diskA file created by a command in the terminal appears after a refresh — the panel header’s button, a folder’s context menu, or View ▸ Refresh Folder Tree.
  • No tasks, no launch configuration, no debuggerThose fields are carried, not run. Linelark is an editor with a terminal in it, not an IDE that will build and debug the project for you.

Open it on
your own files.

Apple-notarized, macOS 14 and newer, Intel and Apple silicon.

Download Studio 1.6.1 6.8 MB · every version, with checksums