Functional Overview

The Frege Integrated Development IDE powers language features for the Frege programming language. Language features help developers to write code more efficiently by providing language specific support during the development process. There are many different language features, such as showing compile warnings and errors, providing autocompletion suggestions and additional information while hovering over source code, etc. While the Frege IDE powers the language features with the help of the Frege compiler, the text editor visualises them to provide a fast feedback loop. See the Context page for an overview of all involved systems and users.

Supported Language Features

Compiler Errors and Warnings

Compiler errors are shown with red, warnings with blue squiggles, as can be seen in Figure 1.

errors warnings
Figure 1. Compiler Errors & Warnings: Errors are marked with red, warnings with blue squiggles. Besides, the corresponding messages are accumulated and displayed in the problem tab.

Type Signature on Hover

Hovering over an expression triggers a popup which shows the type signature or the error/warning message, as can be seen in The Hover Feature Video.

The Hover Feature Video

Automatic Gradle Build Tool Support

The Frege IDE automatically recognises Frege projects which have been setup with the Frege Gradle plugin. As a result, the Frege IDE should work out of the box without the need to configure anything.

If you have setup your project manually, you can set the following two environment variables to configure the Frege IDE:

FREGE_LS_SOURCE_DIR

Path to your Frege source directory. Default is <ProjectRoot>/src/main/frege.

FREGE_LS_EXTRA_CLASSPATH

Classpath for additional Frege and Java dependencies. Default is empty.

Visual Studio Code Features Only

The following two features are currently implemented on the client side and are thus only available in the Visual Studio Code extension. Besides, you need to have set up your Frege project with the Frege Gradle plugin.

Code Lens to Run Frege Programs

If your Frege application has a main function, then a code lens with the option to run it will appear above it. If you click on it, then the application will be executed using the Frege Gradle Plugin, as shown in the Run your Frege Application Video.

Run your Frege Application Video

Code Lens to Load a Frege Module Into the Frege Repl

If your Frege application has a main function, then a code lens with the option to load it into the Frege Repl will appear above it. If you click on it, then the current Frege Module will be loaded into the Frege Repl, as shown in the Load your Frege Module Into the Repl Video.

Load your Frege Module Into the Repl Video

In the Frege Repl you can experiment with the loaded module by executing defined functions etc. See the Frege Repl documentation for more information.