aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
AgeCommit message (Collapse)Author
2022-06-24Interact better with gradle java pluginfeature/intellij-newnea
2022-06-23Add support for the frege-intellij pluginnea
This commit adds support for the frege intellij plugin by - exposing the frege compiler jar as a dependency, so the plugin can recognize the standard library. - adding the name 'fregeRun' as that is used by the plugin to run files - add support for overriding the main module executed by runFrege so that arbitary files can be run by the plugin
2022-03-10fix: renames configuration implementation -> fregeThibault Gagnaux
The name implementation is already used by the java plugin and it leads to conflicts when combining both plugins.
2022-03-09feat: adds testFrege taskThibault Gagnaux
2022-03-08feat: adds new initFrege taskThibault Gagnaux
2022-03-08feat: applies gradle base pluginThibault Gagnaux
This adds the following common tasks: - clean - check - assemble - build - buildConfiguration task rule - clean task rule
2022-02-25fix: runFrege and replFrege task compile only the specified module andThibault Gagnaux
its dependencies
2022-02-23feat: simplifies the replFrege taskThibault Gagnaux
The replFregeTask has the following new logic: 1. Compiles the specified fregeRepl module (either in the `build.gradle` via command line option `--replModule=...`) and all its dependencies. 2. Sets up the correct classpath so that dependent modules don't have to be imported manually. In addition, it solves the shadowing problem by removing the replModule java and class file from the classpath. 3. It prints one single command to directly start the repl and load the specified module. Bonus: I designed the task so that you can even automate step 3 with the following bash command: `eval $(./gradlew -q replFrege)`.
2022-02-23refactor: finishes the replFregeTask refactoringThibault Gagnaux
2022-02-11refactor: finishes the compileFregeTask refactoringThibault Gagnaux
2022-02-09refactor: continues with staged builder refactoringThibault Gagnaux
2022-02-09refactor: introduces staged builder patterns for frege project setupThibault Gagnaux
(WIP)
2022-02-02feat: simplifies the whole gradle pluginThibault Gagnaux
- the `compileFregeTask` has a new optional input called `mainModuleName`. If it is set, it and only its dependencies will be compiled, otherwise all `.fr`files in the `mainSourceDir`will be compiled. - the internal `DependencyFregeTask` is deleted because it was only used by the vscode plugin and I decided to remove this gradle plugin as a dependency. - an example project folder was added to test the plugin manually.
2021-12-21fix: only compile `*.fr` filesThibault Gagnaux
2021-12-21chore: renames `replModule` -> `replSource` and updates readmeThibault Gagnaux
2021-12-21feat: adds `replSource` property and command-line optionThibault Gagnaux
The `replSource` property specifies the frege source file that you want to load into the repl. It is excluded in the `fregeCompile` task so that we don't get two java class files (one from `compileFrege` and one from the fregeRepl `:l` command) that shadow each other on the classpath. As a result, we can make interactive changes to the `replSource` file and use the `:r` reload command to see them.
2021-12-21refactor: extracts common `setupClasspath` logic to util classThibault Gagnaux
2021-12-21feat: adds `outputDir` to classpathThibault Gagnaux
2021-12-10refactor: adds an internal `depsFrege` task and simplifes `replFrege`Thibault Gagnaux
- `depsFregeTask`: only internal use for the vscode plugin to automate the repl code lens. - `replFregeTask`: simplified to only print the command to start the repl because starting and interacting through a console is not gradle's core strength. See https://github.com/tricktron/frege-gradle-plugin/issues/11.
2021-12-08feat: replFrege task v2 returns classpath with all dependenciesThibault Gagnaux
2021-11-28fix: adds `System.in` as StandardInput to make `ReplFrege` task interactivelyThibault Gagnaux
2021-11-24feat: adds `replFrege` taskf-repl-taskThibault Gagnaux
2021-11-24refactor: allows to configure the classpath with the groovy dependency notationThibault Gagnaux
e.g: ```groovy dependencies { implementation 'org.frege-lang:fregefx:0.8.2-SNAPSHOT' } ```
2021-11-17feat: Adds incremental build and build cache support for the `fregeCompile` taskThibault Gagnaux
2021-11-16feat: adds `compilerFlags` property to configure the Frege compilerThibault Gagnaux
2021-11-10feat: `mainModule` property can be configured with command-line optionThibault Gagnaux
2021-11-09feat: adds two tests and makes them pass for new `runFregeTask`Thibault Gagnaux
2021-07-07Refactors testsThibault Gagnaux
- Uses the builder pattern to simplify the creation of `build.gradle` test files. - Adds `gradlew clean test` github workflow
2021-07-02Adds `fregeCompile` task with some testsThibault Gagnaux
Upgrades gradle-wrapper to version `7.1`.
2021-07-01Refactors `SetupFregeCompilerTask` testsThibault Gagnaux
2021-06-30Adds first `SetupFregeCompilerTaks` with some testsThibault Gagnaux
2021-06-29Switches from groovy's spock testing framework back to javaThibault Gagnaux