mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 21:12:44 +03:00
858e646328
- related #7954 Changelog: - update: Ydoc starts with the language server on the `localhost:1234` by default. The hostname and ports can be configured by setting environment variables `LANGUAGE_SERVER_YDOC_HOSTNAME` and `LANGUAGE_SERVER_YDOC_PORT` - update: by default `npm dev run` uses the node Ydoc server. You can control it with `POLYGLOT_YDOC_SERVER` env variable. For example, ``` env POLYGLOT_YDOC_SERVER='true' npm --workspace=enso-gui2 run dev ``` To connect to the Ydoc server running on the 1234 port (the one started with the language server) ⠀ ``` env POLYGLOT_YDOC_SERVER='ws://127.0.0.1:1235' npm --workspace=enso-gui2 run dev ``` To connect to the provided URL. Can be useful for debugging when you start a separate Ydoc process. - update: run `npm install` before the engine build. It is required to create the Ydoc JS bundle. |
||
---|---|---|
.. | ||
src | ||
README.md |
Enso Language Server
The Enso Language Server is responsibile for providing a remote-communication protocol for the runtime, exposing many of its features to the users. In addition it provides the backing service for much of the IDE functionality associated with the language. It encompasses the following functionality:
- Introspection Services: Giving clients the ability to observe information about their running code including values, types, profiling information, and debugging.
- Code Execution: The ability for clients to execute arbitrary Enso code in arbitrary scopes. This can be used in conjunction with the above to provide a REPL with an integrated debugger.
- Code Completion: Sophisticated completion functionality that refines suggestions intelligently based on context.
- Node Management: Tracking and providing the language server's internal node representation of the Enso program.
- Code Analysis: Analysis functionality for Enso code (e.g. find usages, jump-to-definition, and so on).
- Refactoring: Refactoring functionality for Enso code (e.g. rename, move, extract, and so on).
- Type Interactions: Features for type-driven-development that allow users to interact with the types of their programs.