dev-docs/architecture.md
SPM. Swift package manager and Swift build tool. In other words, swift CLI tool
../Sources.
The majority of AeroSpace source code. Managed by SPM ../Package.swift../Sources/AppBundle/.
AeroSpace.app server. Technically, it's a SPM library that is exposed to xcode-app-bundle-launcher../Sources/Cli/.
CLI client. CLI client is built purely using SPM, no Xcode involved (phew!)../Sources/Common/.
Shared code between server and client. Mainly command line args parsing and util functions are shared.../xcode-app-bundle-launcher/.
Very small technical directory that defines entry point for Xcode project.
Xcode projects are ugly and hard to manage without using the Xcode itself.
And Swift LSP doesn't support Xcode projects, it only support SPM projects.
Unfortunately, SPM doesn't allow building macOS apps (aka "App Bundle").
SPM is only capable of defining libraries and building CLI apps.
All code is pushed as much as possible to SPM "library" located in ../Sources/.
The Xcode project model is located in ../AeroSpace.xcodeproj/ and generated by ../project.yml "skeleton"../Sources/AppBundleTests/.
Tests../docs/.
Documentation sources for site and man pages in Asciidoc format https://asciidoc.org/aerospace CLI binary is client. AeroSpace.app is server. Client and server talk to each other via predefined UNIX file.
Each time you run a CLI command:
-h/--help is passed.todo
../Sources/AppBundle/command/ ../Sources/Common/cmdArgs/
Command checklist:
../docs/aerospace-* and ../docs/commands.adoc
./.site/commands.html./.man--window-id and/or --workspace flags make sense for the command?../grammar/commands-bnf-grammar.txttodo
../Sources/AppBundle/config/
todo
../Sources/AppBundle/tree/
todo
../Sources/AppBundle/layout/