I don't fully have my head around this, but I think I understand @jasonsanjose's point--it would make sense to pass the root into all the provider functions, rather than the providers having an upward dependency on ProjectManager. For example, if we later want to have multiple projects open at once in different windows, and have this same server service all of them, we wouldn't be able to rely on just the "current project" in a particular window.

How difficult would that change be? Does it make sense for all types of server providers we would envision?