p4analyzer
p4analyzer copied to clipboard
Native File System and File Watcher
The core LSP types define an EnumerableFileSystem
trait. We have an implementation of this trait that sends requests to the LSP client to enumerate the files of workspaces (i.e., as part of indexing), and to retrieve file contents. This implementation uses new LSP request types (extensions), and these are supported directly in Visual Studio Code through our own LSP client implementation.
To support LSP environments outside of Visual Studio Code, we will need another implementation of the EnumerableFileSystem
trait that enumerates and reads the file system directly. This implementation should also be extended to optionally watch for file changes, and report them as appropriate LSP notifications.