You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Scala REPL additions are nice, but they are also very specific to O1 and Scala. They make it more challenging to add support for courses that use other programming languages than Scala. They are also one of the main (but not the only) reasons that we have a dependency on the Scala plugin. The REPL modifications can also be distracting to users who want to use the plugin for a course, but don't need the REPL additions. Furthermore, the REPL improvements are the only part of our code base that is written in Scala, while everything else is written in Java.
Separating the Scala REPL enhancements into a separate plugin would fix the aforementioned issues. It would also add other benefits, such as the ability to make updates to the REPL functionality without publishing an update of the current plugin. IntelliJ also handles plugin dependencies in a very user-friendly way now, so having them separate shouldn't cause issues for students.
The REPL functionality currently has the following dependencies on other plugin functionality:
The initial commands that are executed when the REPL is launched are read from the course configuration file.
The REPL defaults to the first auto-installed module if no module is selected while launching the REPL.
The suggested solutions are as follows:
Put initial commands into a specially named file inside modules, such as .initial-commands. The current implementation already creates a file like that for the initial commands, so this would be very easy. It also doesn't really impose an additional burden on the course teacher, since currently the teacher has to write the initial commands in the course configuration file.
If no module is selected, show the module selection dialog that is already available (but usually not shown).
I would suggest the following roadmap for this:
Create a new plugin with the REPL functionality (written in Scala).
Publish the plugin and ensure that everything works.
Remove the REPL functionality from this plugin (and as a nice side effect, get rid of Scala code and things related to it, such as scalastyle).
The text was updated successfully, but these errors were encountered:
superseacat
changed the title
Separate Scala REPL enhancements into a separate plugin
Separate Scala REPL enhancements into a separate plugin (REPkeLe)
Feb 12, 2021
The Scala REPL additions are nice, but they are also very specific to O1 and Scala. They make it more challenging to add support for courses that use other programming languages than Scala. They are also one of the main (but not the only) reasons that we have a dependency on the Scala plugin. The REPL modifications can also be distracting to users who want to use the plugin for a course, but don't need the REPL additions. Furthermore, the REPL improvements are the only part of our code base that is written in Scala, while everything else is written in Java.
Separating the Scala REPL enhancements into a separate plugin would fix the aforementioned issues. It would also add other benefits, such as the ability to make updates to the REPL functionality without publishing an update of the current plugin. IntelliJ also handles plugin dependencies in a very user-friendly way now, so having them separate shouldn't cause issues for students.
The REPL functionality currently has the following dependencies on other plugin functionality:
The suggested solutions are as follows:
.initial-commands
. The current implementation already creates a file like that for the initial commands, so this would be very easy. It also doesn't really impose an additional burden on the course teacher, since currently the teacher has to write the initial commands in the course configuration file.I would suggest the following roadmap for this:
The text was updated successfully, but these errors were encountered: