Skip to content

SuperPaintman/exercism-dart

Repository files navigation

Exercism Dart Track

Linux Build

Logo

Exercism exercises in Dart


How to add new exercise

1. Initialize a new exercise

# "bob" - this is an example slug
# $ ./tool/create-exercise <slug>

$ ./tool/create-exercise bob

2. Go to exercism/<slug> and edit it

$ cd exercism/bob

# vim / emacs / code / subl / (other editor)
$ vim .

3. Add the exercise to config.json

Add the exercise to the config.json file, by adding an entry to the exercises array:

{
  "slug": "dart",
  "language": "Dart",
  "repository": "https://github.com/exercism/dart",
  "active": true,
  "exercises": [
    // ...
    {
      "slug": "bob",
      "difficulty": 1,
      "topics": [
        "Control flow (conditionals)",
        "Polymorfism",
        "Strings",
        "Unicode",
        "Pattern recognition",
        "Regular expressions"
      ]
    },
    // ...
  ],
  // ...
}

4. Run tests

$ pub run test

5. Format code

pub run dart_style:format -l 120 -w .

6. Commit and make PR

$ git checkout -b feature/exercise-bob
$ git commit -am 'Added exercise: bob'
$ git push origin feature/exercise-bob

Code Style

Follow the Dart style guide

Maximum line length - 120

Exercise dirname in kebab-case

# good
exercises/complex-numbers

# bad
exercises/complex_numbers
exercises/complexNumbers
exercises/complex\ numbers

Filenames in snake_case

# good
exercises/complex-numbers/lib/complex_numbers.dart
exercises/complex-numbers/test/complex_numbers_test.dart

# bad
exercises/complex-numbers/lib/complex-numbers.dart
exercises/complex-numbers/test/complex-numbers_test.dart

exercises/complex-numbers/lib/complexNumbers.dart
exercises/complex-numbers/test/complexNumbers_test.dart

exercises/complex-numbers/lib/complex\ numbers.dart
exercises/complex-numbers/test/complex\ numbers_test.dart

Variables / methods / functions in camelCase

// good
void complexNumbers() { }

// bad
void complex_numbers() { }

Classes in PascalCase

// good
class ComplexNumbers { }

// bad
class complexNumbers { }
class complex_numbers { }
class Complex_numbers { }

Constatns in UPPER_SNAKE_CASE

// good
const SECRET_ANSWER = 42;

// bad
const secret_answer = 42;
const secretAnswer = 42;
const SecretAnswer = 42;

Contributing

  1. Fork it (https://github.com/SuperPaintman/exercism-dart/fork)
  2. Create your feature branch (git checkout -b feature/exercise-<slug>)
  3. Commit your changes (git commit -am 'Added exercise: <slug>')
  4. Push to the branch (git push origin feature/exercise-<slug>)
  5. Create a new Pull Request

Contributors


License

MIT