From 406fbe9b9514d4c29d874c69c997356ce5b53574 Mon Sep 17 00:00:00 2001 From: Eric Loots Date: Mon, 21 Aug 2023 17:07:24 +0200 Subject: [PATCH 1/3] Update course setup instructions --- README.md | 217 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 160 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index 7e120737d..dcc398882 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,7 @@ The target audience for this course is the Scala _Application_ Developer Community. In other words, the focus is on people who use the language to develop 'end-user' applications and not necessarily those developers who design and write libraries, toolkits or frameworks (although they may benefit from what is in this course if they haven't already worked with Scala 3). -The goal of the course is to explore the new features in the Scala language brought by [the Scala 3 project](https://dotty.epfl.ch). Even though it is still early days and the first release candidate of the Scala 3 language is probably not out for another 6 months, it is our believe that one can never start too early to learn Scala 3 for the following reasons: - -- There is a lot to learn, so if you wait until everything is ready, you risk having to play catchup. -- There are many opportunities to contribute to the Scala 3 project, which will accelerate its development in the coming months. Using Scala 3 will provide opportunities to identity issues to be fixed sooner rather than later. +The goal of the course is to explore the new features in the Scala language brought by [the Scala 3 project](https://dotty.epfl.ch). ## Approach @@ -17,40 +14,137 @@ Through a series of exercises, we look at specific Scala 3 features and apply th Note that this is work in progress, so keep watching this space! -## Usage - -This repository is structured in such a way that it can be transformed into two different artifacts for specific use cases: - -- A _studentified_ repository: this is a standalone sbt project which is typically used for teaching or learning purposes. A user of this repository will be working on one exercise at any one point in time and will be able to use a number of commands via the `cmtc` cli: - - - `cmtc set-course-root`: Sets the location of the current course as the default location for subsequent cmtc command invocations. - - `cmtc list-exercises`: will print a list of all available exercises. The current exercise is marked with a **_*_**. - - `cmtc next-exercise`: move to the next exercise and pull in the tests (if any) and exercise instructions for that exercise. This command preserves the current state of the application leaving any code added or changed by the student unmodified. - - `cmtc previous-exercise`: the opposite of the `next-exercise` command. - - `cmtc pull-solution`: pulls in the reference solution code for the current exercise. This command is handy in a class room setting where at some point in time, the instructor wants to move to the next exercise and the student hasn't completed the current exercise. Note that it will overwrite any code written by the student. Before pulling the exercise - solution, the student can save the current state of their work with the `cmtc save-state` command. - - `cmtc goto-exercise `: jump to an exercise specified by the exerciseID. - Remember that this will pull in tests for the exercise and probably you'll want to - pull in the solution by running the `pullSolution` command. - - `cmtc save-state`: can be executed prior to executing the `cmtc pull-solution` - command: it will save the current state of an exercise so that it can be restored - later. - - `cmtc list-saved-states`: show the exercise ids of all exercises for which a - state was saved. - - `cmtc restore-state `: restore a previously save exercise state. - -- A _linearized_ repository: this is a git repository in which every exercise in the - master repository is turned into a commit: - - Used to edit the master repository: In general this is a scratch pad repository that + +## Course installation + +### Install Coursier + +The course can be installed using [Coursier](https://github.com/coursier/coursier/). + +Coursier will, as part of its base installation, install a number of useful applications among which: + +* `sbt` - the Scala Build Tool +* `scala-cli` - the Scala interactive toolkit +* `scala` - the Scala REPL +* `scalac` - the Scala compiler + +Coursier, once installed, will make it extremely easy to switch between different versions of the +installed tools (such as the Scala compiler and REPL). + +**If you haven't installed Coursier, install it first by following the [Install Scala on your computer](https://docs.scala-lang.org/getting-started/index.html#install-scala-on-your-computer) instructions.** + +### Install `cmtc` + +During the course, you will use the `cmtc` command, the **C**ourse **M**anagement **T**ools **C**lient* CLI. + +Install it using Coursier from the command line (all Linux, Mac, or Windows platforms) as follows: + +``` +$ cs install --contrib cmtc +Wrote cmtc +``` + +Verify that the installation was successful by running the `cmtc` command. You should see the following output: + +```bash +$ cmtc +Usage: cmtc + +Commands: + goto-exercise Move to a given exercise. Pull in tests and readme files for that exercise + goto-first-exercise Move to the first exercise. Pull in tests and readme files for that exercise + install Install a course - from either a local directory, a zip file on the local file system or a Github project + list-exercises List all exercises and their IDs in the repo. Mark the active exercise with a star + list-saved-states List all saved exercise states, if any. + next-exercise Move to the next exercise. Pull in tests and readme files for that exercise + previous-exercise Move to the previous exercise. Pull in tests and readme files for that exercise + pull-solution Pull in all code for the active exercise. All local changes are discarded + pull-template Selectively pull in a given file or folder for the active exercise + restore-state Restore a previously saved exercise state + save-state Save the state of the active exercise + set-current-course Sets the current course to point to a directory + version Print version info +``` + +### Install the course + +Installing this course can be done via the `cmtc install` command as follows: + +```bash +$ cmtc install -f -s lunatech-labs/lunatech-scala2-to-scala3-course +Downloading studentified course from 'https://github.com/lunatech-labs/lunatech-scala2-to-scala3-course/releases/download/3.0.2/lunatech-scala2-to-scala3-course-student.zip' to courses directory + +Project lunatech-scala2-to-scala3-course (3.0.2) successfully installed to: + /Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course + +Current course set to '/Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course' + +Exercises in repository: + 1. * exercise_000_sudoku_solver_initial_state + 2. exercise_001_dotty_deprecated_syntax_rewriting + 3. exercise_002_dotty_new_syntax_and_indentation_based_syntax + 4. exercise_003_top_level_definitions + 5. exercise_004_parameter_untupling + 6. exercise_005_extension_methods + 7. exercise_006_using_and_summon + 8. exercise_007_givens + 9. exercise_008_enum_and_export + 10. exercise_009_union_types + 11. exercise_010_opaque_type_aliases + 12. exercise_011_multiversal_equality + 13. exercise_020_opaque_type_aliases_alt + 14. exercise_021_multiversal_equality +``` + +As can be seen in the above output, `cmtc` installed the course in the `/Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course` folder. Note that this location is OS specific, so, take a note of the location. + +### Loading the course exercises + +You can now load the course exercises in the development environment of your choice. You will be +positioned at the first exercise in the exercise series. During the course, you will use the `cmtc` +command to move around the different exercises in the course, specifically 'pull' code bits, save +the current state of the current exercise (and restore it in exactly the same state at a later point +in time). + +Here is a short summary of the different `cmtc` commands: + +- `cmtc set-course-root`: Sets the location of the current course as the default location for subsequent cmtc command invocations. +- `cmtc list-exercises`: will print a list of all available exercises. The current exercise is marked with a **_*_**. +- `cmtc next-exercise`: move to the next exercise and pull in the tests (if any) and exercise instructions for that exercise. This command preserves the current state of the application leaving any code added or changed by the student unmodified. +- `cmtc previous-exercise`: the opposite of the `next-exercise` command. +- `cmtc pull-template `: pulls parts of the reference solution, either a single file or a folder. +- `cmtc pull-solution`: pulls in the reference solution code for the current exercise. This command is handy in a class room setting where at some point in time, the instructor wants to move to the next exercise and the student hasn't completed the current exercise. Note that it will overwrite any code written by the student. Before pulling the exercise + solution, the student can save the current state of their work with the `cmtc save-state` command. +- `cmtc goto-exercise `: jump to an exercise specified by the exerciseID. + Remember that this will pull in tests for the exercise and probably you'll want to + pull in the solution by running the `pullSolution` command. +- `cmtc save-state`: can be executed prior to executing the `cmtc pull-solution` + command: it will save the current state of an exercise so that it can be restored + later. +- `cmtc list-saved-states`: show the exercise ids of all exercises for which a + state was saved. +- `cmtc restore-state `: restore a previously save exercise state. + +## A note to course authors & contributors + +For starters, install the `cmta` command as follows: + +```bash +$ cs install --contrib cmta +Wrote cmta +``` + +Using the `cmta` command, two artefacts can be generated from this repo: + +- a so-called `studentified` repo. This artefact is distributed to course students. +- a `linearized` repo. This is git repository in which every exercise in the +master repository is turned into a commit. It can be used to: + - edit the master repository: In general this is a scratch pad repository that is discarded once it has served its purpose. In this use case, interactive rebasing on the linearized repo is used to transform the code across a range of exercises. Once this rebasing is finished, all applied changes can be applied on the master repo by a process of `delinearization` - - _There is a second use case for a linearized repo: it can can be used to inspect the differences between consecutive exercises (using a tools such as `SourceTree` or `GitKraken`)_ - -_Studentification_, _linearization_, and _delinearization_ as well as some administrative tasks (such as renumbering exercises), is done using the so-called [Course Management Tools](https://github.com/lunatech-labs/course-management-tools). - -In the following sections, we'll explain how to `studentify` this course. + - to inspect the differences between consecutive exercises (using a tools such as `SourceTree`) ### How to _"studentify"_ a master repository @@ -63,10 +157,10 @@ $ mkdir ~/Courses $ cd ~/Courses -$ git clone git@github.com:lunatech-labs/lunatech-scala-2-to-scala3-course.git +$ git clone git@github.com:lunatech-labs/lunatech-scala2-to-scala3-course.git $ ls -l -drwxr-xr-x@ 17 ericloots staff 544 11 Mar 08:55 lunatech-scala-2-to-scala3-course +drwxr-xr-x@ 17 ericloots staff 544 11 Mar 08:55 lunatech-scala2-to-scala3-course ``` @@ -83,26 +177,35 @@ $ mkdir ~/tmp/stu Run the `cmta` command to _studentify_ the main repo: ```bash -$ cmta studentify -f -g -m ~/Courses/lunatech-scala-2-to-scala3-course -d ~/tmp/stu - -$ cd ~/tmp/stu/lunatech-scala-2-to-scala3-course - -$ ls -l -drwxr-xr-x@ 10 ericloots staff 320 10 Mar 13:23 code +$ cmta studentify -f -g -m ~/Courses/lunatech-scala2-to-scala3-course -d ~/tmp/stu +Studentifying lunatech-scala2-to-scala3-course to /Users/ericloots/tmp/stu/lunatech-scala2-to-scala3-course +.............. +Processed exercises: + exercise_000_sudoku_solver_initial_state + exercise_001_dotty_deprecated_syntax_rewriting + exercise_002_dotty_new_syntax_and_indentation_based_syntax + exercise_003_top_level_definitions + exercise_004_parameter_untupling + exercise_005_extension_methods + exercise_006_using_and_summon + exercise_007_givens + exercise_008_enum_and_export + exercise_009_union_types + exercise_010_opaque_type_aliases + exercise_011_multiversal_equality + exercise_020_opaque_type_aliases_alt + exercise_021_multiversal_equality + +$ cd ~/tmp/stu/lunatech-scala2-to-scala3-course + +$ ls -l ~/tmp/stu/lunatech-scala2-to-scala3-course/ +total 32 +-rw-r--r--@ 1 ericloots staff 1305 21 Aug 16:54 IDE_setup.md +-rw-r--r--@ 1 ericloots staff 7254 21 Aug 16:54 README.md +-rw-r--r--@ 1 ericloots staff 429 21 Aug 16:54 build.sbt +drwxr-xr-x@ 3 ericloots staff 96 21 Aug 16:54 images +drwxr-xr-x@ 5 ericloots staff 160 21 Aug 16:54 project +drwxr-xr-x@ 4 ericloots staff 128 21 Aug 16:54 src +drwxr-xr-x@ 3 ericloots staff 96 21 Aug 16:54 sudokus ``` -The `code` folder holds the exercise source code as an sbt project. - -## Where can I find the `cmta` and `cmtc` tools? - -These are located in the `CMT-tools` folder in the root of this repo. - -Copy them to a suitable folder on your system and make sure that this folder is on -your PATH (for windows users, copy both the `.bat` files too. - -### `cmtc` and `cmta` prerequisites - -- Your system should have a JDK (>= Java 11) installed. - -For `cmta`, you should have a recent version of `git` installed. - From f150fef9b387465af547014ba99c8d1c585fae6b Mon Sep 17 00:00:00 2001 From: Eric Loots Date: Thu, 24 Aug 2023 08:34:21 +0200 Subject: [PATCH 2/3] Update course set-up instructions - Add instructions about IDE setup - Verification of the course installation --- README.md | 111 +++++++++++++----- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- exercises/exercise_007_givens/IDE-Setup.md | 26 ++++ exercises/exercise_007_givens/IDE_setup.md | 19 --- .../exercise_008_enum_and_export/IDE-Setup.md | 26 ++++ .../exercise_008_enum_and_export/IDE_setup.md | 19 --- .../exercise_009_union_types/IDE-Setup.md | 26 ++++ .../exercise_009_union_types/IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- .../IDE-Setup.md | 26 ++++ .../IDE_setup.md | 19 --- 29 files changed, 447 insertions(+), 294 deletions(-) create mode 100644 exercises/exercise_000_sudoku_solver_initial_state/IDE-Setup.md delete mode 100644 exercises/exercise_000_sudoku_solver_initial_state/IDE_setup.md create mode 100644 exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md delete mode 100644 exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE_setup.md create mode 100644 exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE-Setup.md delete mode 100644 exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE_setup.md create mode 100644 exercises/exercise_003_top_level_definitions/IDE-Setup.md delete mode 100644 exercises/exercise_003_top_level_definitions/IDE_setup.md create mode 100644 exercises/exercise_004_parameter_untupling/IDE-Setup.md delete mode 100644 exercises/exercise_004_parameter_untupling/IDE_setup.md create mode 100644 exercises/exercise_005_extension_methods/IDE-Setup.md delete mode 100644 exercises/exercise_005_extension_methods/IDE_setup.md create mode 100644 exercises/exercise_006_using_and_summon/IDE-Setup.md delete mode 100644 exercises/exercise_006_using_and_summon/IDE_setup.md create mode 100644 exercises/exercise_007_givens/IDE-Setup.md delete mode 100644 exercises/exercise_007_givens/IDE_setup.md create mode 100644 exercises/exercise_008_enum_and_export/IDE-Setup.md delete mode 100644 exercises/exercise_008_enum_and_export/IDE_setup.md create mode 100644 exercises/exercise_009_union_types/IDE-Setup.md delete mode 100644 exercises/exercise_009_union_types/IDE_setup.md create mode 100644 exercises/exercise_010_opaque_type_aliases/IDE-Setup.md delete mode 100644 exercises/exercise_010_opaque_type_aliases/IDE_setup.md create mode 100644 exercises/exercise_011_multiversal_equality/IDE-Setup.md delete mode 100644 exercises/exercise_011_multiversal_equality/IDE_setup.md create mode 100644 exercises/exercise_020_opaque_type_aliases_alt/IDE-Setup.md delete mode 100644 exercises/exercise_020_opaque_type_aliases_alt/IDE_setup.md create mode 100644 exercises/exercise_021_multiversal_equality/IDE-Setup.md delete mode 100644 exercises/exercise_021_multiversal_equality/IDE_setup.md diff --git a/README.md b/README.md index dcc398882..261250df9 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,21 @@ We start from an existing Scala 2 application: an [[Akka](https://akka.io)] acto Through a series of exercises, we look at specific Scala 3 features and apply these to the Scala 2 code, thereby transforming it step-by-step into a version that exploits a whole series of nice features offered by the new language. -Note that this is work in progress, so keep watching this space! +Note that this course gets updated on regular basis, so keep watching this space! ## Course installation +Some prerequisites need to be met in order to install the course. The following components +need to be installed: + +* Coursier +* A Java JDK (JDK 11 or 17). Note that Coursier allows you to install a JDK +* The `cmtc` Course Management Tools Client CLI +* An IDE + +The following sections detail how these components. + ### Install Coursier The course can be installed using [Coursier](https://github.com/coursier/coursier/). @@ -27,15 +37,36 @@ Coursier will, as part of its base installation, install a number of useful appl * `scala-cli` - the Scala interactive toolkit * `scala` - the Scala REPL * `scalac` - the Scala compiler +* `java` - JDK 8 by default (we will need to install a more recent version of the JDK) Coursier, once installed, will make it extremely easy to switch between different versions of the installed tools (such as the Scala compiler and REPL). **If you haven't installed Coursier, install it first by following the [Install Scala on your computer](https://docs.scala-lang.org/getting-started/index.html#install-scala-on-your-computer) instructions.** +### Install a JDK + +If you haven't installed a JDK yet (version 11 or 17), you can do this in the following manner. +In a terminal on your system, issue the following command to install JDK 11: + +```bash +$ cs java --jvm temurin:1.11 --setup +Checking if ~/.profile, ~/.zprofile, ~/.bash_profile need(s) updating. +Some shell configuration files were updated. It is recommended to close this terminal once the setup command is done, and open a new one for the changes to be taken into account +``` + +Close the current terminal and start a new one. Verify that the JDK is installed correctly: + +```bash +$ java -version +openjdk version "11.0.20" 2023-07-18 +OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8) +OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode) +``` + ### Install `cmtc` -During the course, you will use the `cmtc` command, the **C**ourse **M**anagement **T**ools **C**lient* CLI. +During the course, you will use the `cmtc` command, the **C**ourse **M**anagement **T**ools **C**lient CLI. Install it using Coursier from the command line (all Linux, Mac, or Windows platforms) as follows: @@ -98,32 +129,56 @@ Exercises in repository: As can be seen in the above output, `cmtc` installed the course in the `/Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course` folder. Note that this location is OS specific, so, take a note of the location. -### Loading the course exercises - -You can now load the course exercises in the development environment of your choice. You will be -positioned at the first exercise in the exercise series. During the course, you will use the `cmtc` -command to move around the different exercises in the course, specifically 'pull' code bits, save -the current state of the current exercise (and restore it in exactly the same state at a later point -in time). - -Here is a short summary of the different `cmtc` commands: - -- `cmtc set-course-root`: Sets the location of the current course as the default location for subsequent cmtc command invocations. -- `cmtc list-exercises`: will print a list of all available exercises. The current exercise is marked with a **_*_**. -- `cmtc next-exercise`: move to the next exercise and pull in the tests (if any) and exercise instructions for that exercise. This command preserves the current state of the application leaving any code added or changed by the student unmodified. -- `cmtc previous-exercise`: the opposite of the `next-exercise` command. -- `cmtc pull-template `: pulls parts of the reference solution, either a single file or a folder. -- `cmtc pull-solution`: pulls in the reference solution code for the current exercise. This command is handy in a class room setting where at some point in time, the instructor wants to move to the next exercise and the student hasn't completed the current exercise. Note that it will overwrite any code written by the student. Before pulling the exercise - solution, the student can save the current state of their work with the `cmtc save-state` command. -- `cmtc goto-exercise `: jump to an exercise specified by the exerciseID. - Remember that this will pull in tests for the exercise and probably you'll want to - pull in the solution by running the `pullSolution` command. -- `cmtc save-state`: can be executed prior to executing the `cmtc pull-solution` - command: it will save the current state of an exercise so that it can be restored - later. -- `cmtc list-saved-states`: show the exercise ids of all exercises for which a - state was saved. -- `cmtc restore-state `: restore a previously save exercise state. +#### Verifying the course installation + +Verify that the the course was installed correctly by launching `sbt test` in the root folder of the +course exercises. You should see the following output: + +```bash +$ sbt test +[info] welcome to sbt 1.9.3 (Eclipse Adoptium Java 11.0.20) +[info] loading settings for project global-plugins from idea.sbt ... +[info] loading global plugins from /Users/ericloots/.sbt/1.0/plugins +[info] loading settings for project lunatech-scala2-to-scala3-course-build from plugins.sbt ... +[info] loading project definition from /Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course/project +[info] compiling 1 Scala source to /Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course/project/target/scala-2.12/sbt-1.0/classes ... +[info] loading settings for project moving-from-scala-2-to-scala-3 from build.sbt ... +[info] set current project to moving-from-scala-2-to-scala-3 (in build file:/Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course/) +[info] compiling 11 Scala sources to /Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course/target/scala-2.13/classes ... +[warn] /Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course/src/main/scala/org/lunatechlabs/dotty/sudoku/SudokuProblemSender.scala:81:44: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method next, +[warn] or remove the empty argument list from its definition (Java-defined methods are exempt). +[warn] In Scala 3, an unapplied method like this will be eta-expanded into a function. +[warn] val nextRowUpdates = rowUpdatesSeq.next +[warn] ^ +[warn] one warning found +[info] compiling 4 Scala sources to /Users/ericloots/Library/Caches/com.lunatech.cmt/Courses/lunatech-scala2-to-scala3-course/target/scala-2.13/test-classes ... +org.lunatechlabs.dotty.sudoku.CellMappingSuite: +org.lunatechlabs.dotty.sudoku.ReductionRuleSuite: + + Mapping row coordinates should result in correct column & block coordinates 0.02s + + Mapping column coordinates should result in correct row & block coordinates 0.001s + + Mapping block coordinates should result in correct row & column coordinates 0.001s + + Applying reduction rules should eliminate values in isolated complete sets from occurrences in other cells (First reduction rule) 0.045s + + Applying reduction rules should eliminate values in isolated complete sets of 5 values from occurrences in other cells (First reduction rule) 0.001s + + Applying reduction rules should eliminate values in 2 isolated complete sets of 3 values from occurrences in other cells (First reduction rule) 0.001s + + Applying reduction rules should eliminate values in shadowed complete sets from occurrences in same cells (Second reduction rule) 0.001s + + Applying reduction rules should eliminate values in shadowed complete (6 value) sets from occurrences in same cells (Second reduction rule) 0.001s +SLF4J: A number (1) of logging calls during the initialization phase have been intercepted and are +SLF4J: now being replayed. These are subject to the filtering rules of the underlying logging system. +SLF4J: See also http://www.slf4j.org/codes.html#replay +org.lunatechlabs.dotty.sudoku.SudokuDetailProcessorSuite: + + Sending no updates to a sudoku detail processor should result in sending a SudokuDetailUnchanged messsage 0.007s + + Sending an update to a fresh instance of the SudokuDetailProcessor that sets one cell to a single value should result in sending an update that reflects this update 0.002s + + Sending a series of subsequent Updates to a SudokuDetailProcessor should result in sending updates and ultimately return no changes 0.003s +[info] Passed: Total 11, Failed 0, Errors 0, Passed 11 +[success] Total time: 5 s, completed 24 Aug 2023, 08:30:54 +``` + +Observe that all (11) tests passed successfully. + +### Installing an IDE + +Instructions are provided in the `IDE-Setup.md` file in the root folder of the installed +course. ## A note to course authors & contributors diff --git a/exercises/exercise_000_sudoku_solver_initial_state/IDE-Setup.md b/exercises/exercise_000_sudoku_solver_initial_state/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_000_sudoku_solver_initial_state/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_000_sudoku_solver_initial_state/IDE_setup.md b/exercises/exercise_000_sudoku_solver_initial_state/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_000_sudoku_solver_initial_state/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md b/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE_setup.md b/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE-Setup.md b/exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE-Setup.md new file mode 100644 index 000000000..5cacbac0b --- /dev/null +++ b/exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentationgit st diff --git a/exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE_setup.md b/exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_002_dotty_new_syntax_and_indentation_based_syntax/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_003_top_level_definitions/IDE-Setup.md b/exercises/exercise_003_top_level_definitions/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_003_top_level_definitions/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_003_top_level_definitions/IDE_setup.md b/exercises/exercise_003_top_level_definitions/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_003_top_level_definitions/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_004_parameter_untupling/IDE-Setup.md b/exercises/exercise_004_parameter_untupling/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_004_parameter_untupling/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_004_parameter_untupling/IDE_setup.md b/exercises/exercise_004_parameter_untupling/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_004_parameter_untupling/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_005_extension_methods/IDE-Setup.md b/exercises/exercise_005_extension_methods/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_005_extension_methods/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_005_extension_methods/IDE_setup.md b/exercises/exercise_005_extension_methods/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_005_extension_methods/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_006_using_and_summon/IDE-Setup.md b/exercises/exercise_006_using_and_summon/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_006_using_and_summon/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_006_using_and_summon/IDE_setup.md b/exercises/exercise_006_using_and_summon/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_006_using_and_summon/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_007_givens/IDE-Setup.md b/exercises/exercise_007_givens/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_007_givens/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_007_givens/IDE_setup.md b/exercises/exercise_007_givens/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_007_givens/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_008_enum_and_export/IDE-Setup.md b/exercises/exercise_008_enum_and_export/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_008_enum_and_export/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_008_enum_and_export/IDE_setup.md b/exercises/exercise_008_enum_and_export/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_008_enum_and_export/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_009_union_types/IDE-Setup.md b/exercises/exercise_009_union_types/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_009_union_types/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_009_union_types/IDE_setup.md b/exercises/exercise_009_union_types/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_009_union_types/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_010_opaque_type_aliases/IDE-Setup.md b/exercises/exercise_010_opaque_type_aliases/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_010_opaque_type_aliases/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_010_opaque_type_aliases/IDE_setup.md b/exercises/exercise_010_opaque_type_aliases/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_010_opaque_type_aliases/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_011_multiversal_equality/IDE-Setup.md b/exercises/exercise_011_multiversal_equality/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_011_multiversal_equality/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_011_multiversal_equality/IDE_setup.md b/exercises/exercise_011_multiversal_equality/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_011_multiversal_equality/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_020_opaque_type_aliases_alt/IDE-Setup.md b/exercises/exercise_020_opaque_type_aliases_alt/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_020_opaque_type_aliases_alt/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_020_opaque_type_aliases_alt/IDE_setup.md b/exercises/exercise_020_opaque_type_aliases_alt/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_020_opaque_type_aliases_alt/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation diff --git a/exercises/exercise_021_multiversal_equality/IDE-Setup.md b/exercises/exercise_021_multiversal_equality/IDE-Setup.md new file mode 100644 index 000000000..150b760d2 --- /dev/null +++ b/exercises/exercise_021_multiversal_equality/IDE-Setup.md @@ -0,0 +1,26 @@ +# Moving Forward from Scala 2 to Scala 3 + +### Installing an IDE + +We recommend to use either IntelliJ with the Scala language plugin, or Visual Code +Studio with the Metals extension installed. + +If you haven't installed an IDE that support the Scala Language, install either +IntelliJ or VSCode by following the instructions linked in the following sections. + +> Note: in our experience, VSCode with the Metals extension definitely has an edge on the +> IntelliJ IDE for Scala Worksheet support. + +#### Installing IntelliJ with the Scala Language Plugin + +* [Install the IntelliJ IDE](https://www.jetbrains.com/help/idea/installation-guide.html#standalone) (Community or Ultimate edition) + * [Install the Scala Language](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html) + +#### Installing Visual Code Studio with the Metals extension + +* [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) + * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + +### Other Scala source editors + +There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation \ No newline at end of file diff --git a/exercises/exercise_021_multiversal_equality/IDE_setup.md b/exercises/exercise_021_multiversal_equality/IDE_setup.md deleted file mode 100644 index 1a2af48a0..000000000 --- a/exercises/exercise_021_multiversal_equality/IDE_setup.md +++ /dev/null @@ -1,19 +0,0 @@ -# Setting up IntelliJ Idea or Visual Code Studio for Scala development - -## Setting up IntelliJ Idea for Scala development - -- If you haven't already installed the IntelliJ Idea, follow the [Getting started](https://www.jetbrains.com/help/idea/installation-guide.html) instructions on the JetBrains website. The Community Edition should be sufficient for this workshop. - -- After installing the IDE, install the Scala plugin for IntelliJ Idea by following [these instructions](https://www.jetbrains.com/help/idea/discover-intellij-idea-for-scala.html#scala_plugin). - -## Setting up Visual Code Studio for Scala development - -- Download the installation binary for your system (Windows, Mac, Linux) [here](https://code.visualstudio.com/download). - -- Follow the set-up instructions [here](https://code.visualstudio.com/docs/setup/setup-overview). - -- Install the Metals (a Scala language server with rich IDE features) plugin for Visual Code Studio by following the instructions [here](https://scalameta.org/metals/docs/editors/vscode/) - -## Other Scala source editors - -There are plenty of other options for Source Code editing. For example, Metals supports Vim, Sublime Text and Emacs. For more information, have a look at the [Text Editors section](https://scalameta.org/metals/docs) in the Metals Documentation From 135c5fae1833c08b6c680b901e45426d4374e3db Mon Sep 17 00:00:00 2001 From: Eric Loots Date: Thu, 24 Aug 2023 09:55:15 +0200 Subject: [PATCH 3/3] Update exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md Co-authored-by: adpi2 --- .../exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md b/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md index 150b760d2..1422748d2 100644 --- a/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md +++ b/exercises/exercise_001_dotty_deprecated_syntax_rewriting/IDE-Setup.md @@ -19,7 +19,7 @@ IntelliJ or VSCode by following the instructions linked in the following section #### Installing Visual Code Studio with the Metals extension * [Install Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) - * [Install the Visual Code Studio Metals extension](https://scalameta.org/metals/docs/editors/vscode/) + * [Install Metals, the Scala extension](https://scalameta.org/metals/docs/editors/vscode/) ### Other Scala source editors