Skip to content

Latest commit

 

History

History
274 lines (175 loc) · 8.05 KB

GETTING_STARTED.md

File metadata and controls

274 lines (175 loc) · 8.05 KB

Getting Started with Bowling Game kata in Haskell

Important Note

The instructions provided below are for running the kata locally on your machine. This implies in particular that Haskell tools have been previously installed locally.

If for any reason you do not wish to install these tools but would like to give the kata a try, you can refer to this guide in order to run it in a Dev Container instead.

Prerequisites

  • macOS, Linux or Windows

  • git client

  • curl command line utility

  • haskell

    Haskell Version

    The kata is configured to run with Stack's LTS Haskell 21.25 (GHC 9.4.8) by default.

    To use a different version, simply modify the line below in stack.yaml.

    resolver: lts-21.25

Getting ready

1 - Clone the kata repository

git clone https://github.com/murex/Kata-BowlingGame.git

2 - Go to the kata's haskell directory

cd Kata-BowlingGame/haskell

Running the kata

You can run the kata from the command line or from your IDE of choice.

You may also run it using TCR if you want to add a bit of spice.

Running the kata from a terminal

Reminder: the commands below should be run from Kata-BowlingGame/haskell directory

To build the project:

stack build

To run the tests:

stack test

Running the kata from a terminal with TCR

Note to Windows users

Use a git bash terminal for running the command below. Windows CMD and PowerShell are not supported

Reminder: the command below should be run from Kata-BowlingGame/haskell directory

Type the following to start TCR:

./tcrw

Refer to Using TCR section for additional details about TCR and available options.

Running the kata from IntelliJ

Important: This requires to have IntelliJ IDEA Ultimate edition.

IntelliJ's Haskell plugin is not available with the Community edition. You can still use it as an editor for Haskell files, but you will not be able to use the benefits brought by the Haskell plugin, such as syntax highlighting, code refactoring or integration with IntelliJ's test navigator.

Installing Haskell plugin:

  • Open IntelliJ and select:File > Settings > Plugins > Marketplace
  • Search for Haskell and click Install
  • Restart IntelliJ to activate the plugin

Open IntelliJ and select:

File > Open > Kata-BowlingGame > haskell

Run all the tests in the project.

The "Run" tool window should display all the executed tests.

Running the kata from IntelliJ with TCR

Important: This requires to have IntelliJ IDEA Ultimate edition.

Refer to the section Running the kata from IntelliJ for instructions related to installation of IntelliJ's Haskell plugin.

TCR is provided as a command line utility running in a terminal. You can run it from IntelliJ directly, through leveraging on its built-in terminal.

1. Open the kata

Open IntelliJ and select:

File > Open > Kata-BowlingGame > haskell

2. Turn off auto-save

TCR is constantly watching the filesystem for changes. For this reason you need to turn off IntelliJ's auto-save in order for it to behave as expected.

File > Settings > Appearance & Behavior > System Settings

Under Autosave section, uncheck the 2 following options:

  • Save files if the IDE is idle for ___ seconds
  • Save files when switching to a different application or a built-in terminal

3. Configure the built-in terminal to run git bash

Windows Only

Skip this step if you're on macOS or Linux

IntelliJ for Windows is usually set up to run PowerShell by default in its built-in terminal. TCR does not run in PowerShell.

File > Settings > Tools > Terminal

Under Application Settings section, set the Shell path to C:\Program Files\Git\bin\bash.exe

The above path is for a default git installation location. You may need to adjust it in case you have installed git at a different location.

4. Open a built-in terminal

View > Tool Windows > Terminal

5. Launch TCR

Reminder: the command below should be run from Kata-BowlingGame/haskell directory

From the built-in terminal:

./tcrw

Refer to Using TCR section for additional details about TCR and available options.

Running the kata from Visual Studio Code

Open Visual Studio Code, choose Open Folder, navigate to Kata-BowlingGame / haskell then click Select Folder.

Reminder: the command below should be run from Kata-BowlingGame/haskell directory

From the built-in terminal:

stack test

Running the kata from Visual Studio Code with TCR

TCR is provided as a command line utility running in a terminal. You can run it from Visual Studio Code directly, through leveraging on its built-in terminal.

1. Open the kata

Open Visual Studio Code, choose Open Folder, navigate to Kata-BowlingGame / haskell then click Select Folder.

2. Turn off auto-save

TCR is constantly watching the filesystem for changes. For this reason you need to make sure that Visual Studio Code's auto-save is turned off in order for TCR to behave as expected.

File > Preferences > Settings

In Text Editor > Files section, make sure that Auto Save setting is set to off

3. Configure the built-in terminal to run git bash

Windows Only

Skip this step if you're on macOS or Linux

Visual Studio Code for Windows is usually set up to run PowerShell by default in its built-in terminal. TCR does not run in PowerShell.

File > Preferences > Settings

In Features > Terminal section, set External: Windows Exec to C:\Program Files\Git\bin\bash.exe

The above path is for a default git installation location. You may need to adjust it in case you have installed git at a different location.

4. Open a built-in terminal

Terminal > New Terminal

5. Launch TCR

Reminder: the command below should be run from Kata-BowlingGame/haskell directory

From the built-in terminal:

./tcrw

Refer to Using TCR section for additional details about TCR and available options.

Using TCR

Cheat Sheet

Here are the main shortcuts available once TCR utility is running:

Shortcut Description
o / O Open in browser (with web subcommand only)
d / D Enter driver role
n / N Enter navigator role
t / T Query timer status
p / P Toggle on/off git auto-push
l / L Pull from remote
s / S Push to remote
q / Q Quit current role / Quit TCR
? List available options

Additional Details

Refer to TCR - Test && Commit || Revert page for additional details and explanations about TCR utility.