enso/engine/language-server
Hubert Plociniczak cf3624c463
Limit the number of reported warnings (#6577)
Artifically limiting the number of reported warnings to 100. Also added benchmarks with random Ints to investigate perf issues when dealing with warnings (future task).
Ideally we would have a custom set-like collection that allows us internally to specify a maximal number of elements. But `EnsoHashMap` (and potentially `EnsoSet`) are still WIP when it comes to being PE-friendly.

The change also allows for checking if the limit for the number of reported warnings has been reached. It will visualize by adding an additional "Warnings limit reached." to the visualization.

The limit is configurable via `--warnings-limit` parameter to `run`.

Closes #6283.
2023-05-10 11:48:31 +00:00
..
src Limit the number of reported warnings (#6577) 2023-05-10 11:48:31 +00:00
README.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

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.