-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Language Service Implementation (LSP) #1104
Comments
LSP (Python and Java Intellisense) #1104
Python / Java Intellisense is now available in our latest TestFlight build. |
Hi, I would like to share my thoughts on this task. currently the ipad does not have a real good capability to support many languages and their tools. I guess combining codeapp with cloud launched lsp servers for indexing, crawling, compiling, and debugging large software projects would be quite interesting. as such I think the lsp server shouldn't be local but launched on the cloud. I'm about to clone this project to test the idea of launching actions on a cloud based project (with a local mirror that is using file synchronisation) best |
Hope to see markdown and clangd language server integrated with the CodeApp, and a outline sidebar like that in VSCode. By the way, cloud-based language server may suffer from lagging and disconnection problems under many edge scenarios, for example on mobile traveling and in less connected areas. |
Background
Language Service Protocol is a protocol between code editor and a language server that provides code analysis features like autocompletion. Now with the mature local languages and app extension support in Code App, it is time to design and build the architecture necessary to implement LSP features.
Architecture
Server
We would run the language server implementation in an iOS app extension because:
This implies the language server must keep its memory usage low (~120MB). Careful configuration and crash recovery are necessary.
Websocket endpoints:
lsp/{language_identifier}
: Request to start language serverexecution/
: Request to start code executionRequests are then accepted / rejected subject to resources availability. If accepted, stream stdio over web socket.
Client
Use monaco-languageclient to connect monaco editor to LSP using WebSocket.
(To be added..)
TODOs:
Some candidates of language server to integrate:
The text was updated successfully, but these errors were encountered: