Presentation Compiler / Language Server API #94
Labels
big-exciting-project
Large projects that we're excited about but might take a long time and possibly not end up working o
interface
command line interface
release/packaging
This issue is meant to track the various language server APIs we think are most important and want to expose via the stanc3 compiler. We'll write out the API specs (stealing them from dart's API as needed) and see if we can come up with a high level description of how we can answer these questions either with existing functions and datastructures or figuring out what we need to change in order to be able to implement these API calls. We can have discussion below and keep this top-level comment updated with the proposals for APIs and their implementation techniques.
. variety of types, including compile time error, hint, lint, static type warning, static warning, syntax error, todo
The responses often include these types:
These all tend to allow someone to stream results and subscribe to certain things, but we can worry more about that when actually implementing the language server. I think for now it's enough to think about returning lists or using generators of some kind.
@matklad you mentioned on the hangout that we should maintain purity and keep file IO to the extreme boundaries. So when we're thinking about these APIs, how should we refer to files or buffers internally? I think that's a major question for me - the LSP and dart APIs seem to talk about files and locations within files a lot, so I'm not sure if we should internally just pass an entire AST and a node pointer everywhere? Can you tell us more about the internal representations of files for this kind of API?
Thanks @matklad for putting this on our radar and helping guide us through it! (from #65)
The text was updated successfully, but these errors were encountered: