Blog Documentation Contact

Codeface Documentation

⚠️ This page is still new and continuously growing. Latest update: March 6, 2023

General Questions

πŸ“• What If I Don't Want to Read an FAQ?

You can always write at to get personal support.

πŸ“• What Does Codeface Do Exactly?

Have a look at this showcase.

πŸ“• How Can I Try It Out Quickly?

Install Codeface from the Mac App Store. Then download and open one of theses files.

General Trouble Shooting

πŸ“• Why Do I Not See Any Arrows?

To see dependency arrows and symbols, Codeface must talk to LSPService while importing a code folder. LSPService is a free open-source webservice that you can download and run on your machine. It can launch LSP servers and thereby provide Codeface detailed information about codebases of virtually all languages.

This tutorial describes how to setup and use LSPService.

Note that automatic Swift support only works for Swift packages, since Apple's LSP server does not support Xcode projects. More on trouble shooting for Swift code is down here.

πŸ“• How Does LSPService Work?

Have a look at this tutorial.

πŸ“• Why Do I Even Need LSPService? That's Cumbersome!

And indeed it is more cumbersome than we would have liked. Because of the App Store rules, it took a lot of work to make Codeface available in the App Store at all without losing its ability to leverage LSP servers. Another recent attempt to replace LSPService by an integrated XPC service also failed.

However, we're working on making LSP server integration easier on multiple fronts. For example, 1) LSPService will be signed, so its installation becomes smoother and 2) You'll be able to configure LSPService via a graphical interface from within Codeface. Because of these efforts, significant new features are currently all on hold.

πŸ“• Why Does The Code Import Take So Long?

When using an LSP server, importing larger codebases does indeed take long because requests to LSP servers can not generally be made in parallel.

You can accelerate loading a codebase visualization again by saving it to a .codebase file. Such a file stores a whole codebase, including all the data retrieved from an LSP server. Loading a codebase from file is much faster. So when you don't need to update the visualization, you can open it in Codeface without waiting for the LSP server.

Trouble Shooting For Swift Code

πŸ“• Why Can I Not Visualize My Xcode Project?

Codeface can import any code folder. But it can not open, import or otherwise know anything about Xcode projects. This is because Apple's LSP server does not support Xcode projects but only Swift packages.

We suspect that Apple's LSP server will never support Xcode projects but that instead the Swift Package Manager might some day support app targets and therebyΒ more or less replace Xcode project files.

If your code is in an Xcode project, you can use a little "trick" to visualize it: Extract as much of it as possible into one or multiple local Swift packages. Many developers do that anyway to speed up compiles and to manifest/enforce architectural boundaries.

πŸ“• Why Is My Swift Package Not Visualized Correctly?

As described in this tutorial under "Add Language Support", you have to `swift build` the package from the terminal before importing it into a .codebase file. This will update what Apple's LSP server can "see" during the import.

Sometimes, it's also necessary to delete the hidden ".build" folder inside the package folder before building the package. You can show and hide hidden files on macOS via shift + ⌘ + . (Shift + Command + Dot).

Copyright © 2022 Sebastian Fichtner