Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
JimWallace committed Dec 7, 2023
1 parent d88c2d6 commit 6c4ba7a
Showing 1 changed file with 7 additions and 69 deletions.
76 changes: 7 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,12 @@
# Advent of Code Swift Starter Project
# Advent of Code 2023 Solutions

[![Language](https://img.shields.io/badge/language-Swift-red.svg)](https://swift.org)

Daily programming puzzles at [Advent of Code](<https://adventofcode.com/>), by
[Eric Wastl](<http://was.tl/>). This is a small example starter project for
building Advent of Code solutions.

## Usage

Swift comes with Xcode, or you can [install it](https://www.swift.org/install/)
on a supported macOS, Linux, or Windows platform.

If you're using Xcode, you can open this project by choosing File / Open and
select the parent directory.

If you prefer the command line, you can run the test suite with `swift test`,
and run the output with `swift run`.

If you're using Visual Studio Code to edit, you might find these Swift
extensions useful:

- [Swift](https://marketplace.visualstudio.com/items?itemName=sswg.swift-lang)
(provides core language edit / debug / test features)
- [apple-swift-format](https://marketplace.visualstudio.com/items?itemName=vknabel.vscode-apple-swift-format)
(supports the [swift-format](https://github.com/apple/swift-format) package)

## Challenges
By Jim Wallace. These are rough, unpolished first passes as time allows.

The challenges assume three files (replace 00 with the day of the challenge).
## Advent of Code Swift Starter Project

- `Data/Day00.txt`: the input data provided for the challenge
- `Sources/Day00.swift`: the code to solve the challenge
- `Tests/Day00.swift`: any unit tests that you want to include

To start a new day's challenge, make a copy of these files and update as
necessary. The `AdventOfCode.swift` file controls which day's challenge is run
with `swift run`. By default that runs the most recent challenge in the package.

To supply command line arguments use `swift run AdventOfCode`. For example,
`swift run -c release AdventOfCode --benchmark 3` builds the binary with full
optimizations, and benchmarks the challenge for day 3.

## Linting and Formatting

Challenge source code can be linted and formatted automatically using the
included dependency on `swift-format`.

Lint source code with the following command:

```shell
$ swift package lint-source-code
```

Format source code with the following command:

```shell
$ swift package format-source-code
Plugin ‘Format Source Code’ wants permission to write to the package directory.
Stated reason: “This command formats the Swift source files”.
Allow this plugin to write to the package directory? (yes/no)
```
[![Language](https://img.shields.io/badge/language-Swift-red.svg)](https://swift.org)

To avoid the interactive prompt when formatting source code, use the
`--allow-writing-to-package-directory` flag.

```shell
$ swift package format-source-code --allow-writing-to-package-directory
```
Daily programming puzzles at [Advent of Code](<https://adventofcode.com/>), by
[Eric Wastl](<http://was.tl/>). Starter project for
building Advent of Code solutions by Apple

swift-format will use the built-in default style to lint and format code. A
`.swift-format` configuration file can be used to customize the style used, see
[Configuration](https://github.com/apple/swift-format/blob/main/Documentation/Configuration.md)
for more details.

0 comments on commit 6c4ba7a

Please sign in to comment.