-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d88c2d6
commit 6c4ba7a
Showing
1 changed file
with
7 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
||
[](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) | ||
``` | ||
[](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. |