Using SourceKit-LSP to visualize SourceKit-LSP 😁

Ben Langmuir and Alex Hoppen had shown tremendous patience multiple times in helping me get a SourceKit-LSP client off the ground. Back then, I promised to be back with visualizations of SourceKit-LSP.

I know the forum also has a dedicated place for showcases, and I won't stretch the SK-LSP category too much, so here we go ...

Edit: elements over which the mouse hovers have blue borders and blue ingoing and outgoing dependencies, but the mouse pointer is invisible in the screenshots :see_no_evil:

  1. High-level overview with many dependencies:

  1. Typing search term "Symbol" narrows it down:

  1. Hitting enter zooms in on the search filter result:

Of course, I'm happy to hear feedback and answer all questions. More about the app is at codeface.io.

5 Likes

Looks fascinating! Though I'm hesitant to try since the LSPService seems so invasive and isn't signed. Is it just a service daemon?

1 Like

Oh that's a very good point! I'm making a note to sign the thing if possible. It's a command line tool that hosts a local Vapor webservice.

Here are 21 images of SourceKit-LSP from the latest Codeface version :blush:

Btw, I made the app's infrastructure open-source:

  • LSPService for providing local LSP servers via WebSocket
  • LSPServiceKit for talking to LSPService from a client
  • SwiftLSP for working with the LSP
  • And now: SwiftNodes for storing stuff in graphs and applying graph algorithms

... Right now, only LSPService is well documented ...

2 Likes