enso/engine
Paweł Grabarz 6b14ec5a63
Dynamic dropdown support (#4072)
Implementation of https://www.pivotaltracker.com/story/show/184012743

https://user-images.githubusercontent.com/919491/214082311-cf49e43c-1d1f-4654-903c-a4224cd954d8.mp4

This is also a step towards more general widget support. The widget metadata is queried using `Meta.get_annotation` method through a dedicated visualization. For now only `Single_Choice` case is handled, and always all suggestions are is returned.

# Important Notes
There are limitations as to which node segments receive a widget. Only chain method calls are supported now (`thing.method` syntax), and only outside of lambda scope. Widgets in lambdas will require support for visualisations of lambda subexpressions, which is currently missing in the engine. The IDE technically tries to place the widgets there, but the data never arrives. It should work once the engine support is added.

This PR includes a mock for `Meta.get_annotation` call that only supports `Table.at` method. Real implementation is a separate task that is already in progress.
2023-02-04 00:50:24 +00:00
..
language-server Dynamic dropdown support (#4072) 2023-02-04 00:50:24 +00:00
launcher/src Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
polyglot-api/src Custom type conversion to double from large long (#4099) 2023-01-31 15:13:00 +00:00
runner Custom type conversion to double from large long (#4099) 2023-01-31 15:13:00 +00:00
runtime Prevent errors in log when closing a context (#4107) 2023-02-01 16:27:45 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Add Polyglot Support in Runtime Tests (#4016) 2023-01-03 14:36:26 +00:00
runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument Improve undefined method error message on builtin types (#3907) 2022-11-30 13:37:17 +01:00
runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
runtime-language-epb/src/main/java/org/enso/interpreter/epb All Enso objects are hasheable (#3878) 2023-01-19 10:33:25 +01:00
runtime-with-instruments/src/test Fix vcs-restore edit notification (#4100) 2023-01-30 21:08:30 +00:00
runtime-with-polyglot/src/test Fix vcs-restore edit notification (#4100) 2023-01-30 21:08:30 +00:00
README.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

The Enso Engine

The Enso engine is the codebase responsible for compiling and executing Enso code, as well as providing language server functionality to users of the language. It is subdivided into two major components:

  • Language Server: The Enso language service.
  • Polyglot API: The truffle-boundary safe API for communication between the language server and the runtime.
  • Runner: The command-line interface for Enso.
  • Runtime: The compiler and interpreter for Enso.