https://github.com/exercism/fsharp-analyzer
https://github.com/exercism/fsharp-analyzer
community-contributions-paused exercism-analyzer exercism-tooling maintained-autonomous
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/exercism/fsharp-analyzer
- Owner: exercism
- License: mit
- Created: 2020-03-26T11:48:44.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-01T05:47:23.000Z (10 months ago)
- Last Synced: 2025-04-29T06:28:43.684Z (8 months ago)
- Topics: community-contributions-paused, exercism-analyzer, exercism-tooling, maintained-autonomous
- Language: Shell
- Size: 140 KB
- Stars: 1
- Watchers: 5
- Forks: 5
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Exercism F# analyzer
An [analyzer][analyzer-introduction] can automatically detect issues with submissions and comment on them.
The F# analyzer implements the [analyzer interface][analyzer-interface]. It uses the [F# Compiler service][fsharp-compiler-service] to parse the submission's source code into syntax trees, which are then analyzed for known patterns.
## Analyzing a solution
To analyze a solution, follow these steps:
1. Open a command prompt in the root directory.
1. Run `./bin/run.sh `. This script will run the analyzer on the specified directory.
1. Once the script has completed, the analysis results will be written to `/analysis.json`.
## Analyzing a solution using Docker
To analyze a solution using a Docker container, follow these steps:
1. Open a command prompt in the root directory.
1. Run `./bin/run-in-docker.sh `. This script will:
1. Build the analyzer Docker image (if necessary).
1. Run the analyzer Docker image (as a container), passing the specified `exercise`, `source-directory` and `output-directory` arguments.
1. Once the script has completed, the analysis result can be found at `/analysis.json`.
Note that the Docker image is built using the [.NET IL Linker](https://github.com/dotnet/core/blob/master/samples/linker-instructions.md#using-the-net-il-linker), which is why building can be quite slow.
[analyzer-introduction]: https://github.com/exercism/automated-analysis/blob/master/docs/analyzers/introduction.md
[analyzer-interface]: https://github.com/exercism/automated-analysis/blob/master/docs/analyzers/interface.md
[fsharp-compiler-service]: https://fsharp.github.io/FSharp.Compiler.Service/