JavaFX editor node based on the powerful Monaco editor that drives VS Code
Using MonacoFX is straightforward. Just create a MonacoFX node and add it to the scene graph. Here's a an example on how to use MonacoFX with syntax highlighting and code folding for an existing language:
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// create a new monaco editor node
MonacoFX monacoFX = new MonacoFX();
StackPane root = new StackPane(monacoFX);
// set initial text
monacoFX.getEditor().getDocument().setText(
"#include <stdio.h>\n" +
"int main() {\n" +
" // printf() displays the string inside quotation\n" +
" printf(\"Hello, World!\");\n" +
" return 0;\n" +
"}");
// use a predefined language like 'c'
monacoFX.getEditor().setCurrentLanguage("c");
monacoFX.getEditor().setCurrentTheme("vs-dark");
// the usual scene & stage setup
Scene scene = new Scene(root, 800,600);
primaryStage.setTitle("MonacoFX Demo (running on JDK " + System.getProperty("java.version") + ")");
primaryStage.setScene(scene);
primaryStage.show();
}
}
Visit the MonacoFX tutorial projects and learn more about advanced topics, such as adding custom language support and code folding.
To build the project from an IDE do the following:
assemble
Gradle task to build the projectBuilding the project from the command line is also possible.
Navigate to the project folder and call the assemble
Gradle
task to build the project.
cd Path/To/MonacoFX
./gradlew assemble
cd Path\To\MonacoFX
gradlew assemble
To run the project from an IDE do the following:
run
Gradle task to run the projectRunning the project from the command line is also possible.
Navigate to the project folder and call the run
Gradle
task to run the project.
cd Path/To/MonacoFX
./gradlew run
cd Path\To\MonacoFX
gradlew run