p4lang / p4analyzer

A Language Server Protocol (LSP) compliant analyzer for the P4 language
Apache License 2.0
19 stars 3 forks source link

Native File System and File Watcher #38

Open timjroberts opened 1 year ago

timjroberts commented 1 year ago

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.

AndrewF001 commented 1 year ago

Native filesystem for non-wasm build of P4Analyzer has been merged. Unit tests are passing & system is working on Unix, but it's not working on Windows.

Native file watcher wasn't implemented, but a draft was started. That was later removed from the merge and can be seen in this commit