diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index bb1a746..8dd0274 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -2,8 +2,8 @@
"version": 1,
"isRoot": true,
"tools": {
- "fantomas-tool": {
- "version": "4.6.0-beta-001",
+ "fantomas": {
+ "version": "6.3.0-alpha-003",
"commands": [
"fantomas"
]
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..6d9c86f
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*.{fs,fsi,fsx}]
+end_of_line = lf
+fsharp_keep_max_number_of_blank_lines = 1
+fsharp_multi_line_lambda_closing_newline = true
+fsharp_alternative_long_member_definitions = true
+fsharp_align_function_signature_to_indentation = true
+fsharp_experimental_keep_indent_in_branch = true
+fsharp_bar_before_discriminated_union_declaration = true
+fsharp_multiline_bracket_style = aligned
+
+# Expecto looks a bit nicer with stroustrup
+[test/**/*.fs]
+fsharp_multiline_bracket_style = stroustrup
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..e3ca87a
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,7 @@
+# Automatically normalize line endings
+* text=auto
+
+# Always use lf for F# files
+*.fs text eol=lf
+*.fsx text eol=lf
+*.fsi text eol=lf
\ No newline at end of file
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..10e38e9
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,14 @@
+version: 2
+updates:
+
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+
+ - package-ecosystem: "nuget"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ ignore:
+ - dependency-name: "FSharp.Core"
diff --git a/.github/workflows/buildAndTest.yml b/.github/workflows/buildAndTest.yml
index 7da9f06..0e2970b 100644
--- a/.github/workflows/buildAndTest.yml
+++ b/.github/workflows/buildAndTest.yml
@@ -12,6 +12,10 @@ jobs:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
+ - name: Tool restore
+ run: dotnet tool restore
+ - name: Format Check
+ run: dotnet fantomas . --check || echo "The code was not formatted, run `dotnet fantomas .` to format all code."
- name: Restore
run: dotnet restore
- name: Run Build
diff --git a/Directory.Build.props b/Directory.Build.props
index 86a0b40..8cc5816 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -6,6 +6,11 @@
version;changelog;keepachangelog
true
ionide.png
+ $(NoWarn);3186,0042
+ $(NoWarn);NU1902
+ $(WarnOn);1182
+ $(WarnOn);3390
+ true
diff --git a/src/Ionide.KeepAChangelog.Tasks/Library.fs b/src/Ionide.KeepAChangelog.Tasks/Library.fs
index 63f9382..e78d61a 100644
--- a/src/Ionide.KeepAChangelog.Tasks/Library.fs
+++ b/src/Ionide.KeepAChangelog.Tasks/Library.fs
@@ -24,8 +24,10 @@ module Util =
item.SetMetadata("Removed", data.Removed)
item.SetMetadata("Fixed", data.Fixed)
item.SetMetadata("Security", data.Security)
- for (KeyValue(heading, lines)) in data.Custom do
+
+ for KeyValue(heading, lines) in data.Custom do
item.SetMetadata(heading, lines)
+
item
type ParseChangelogs() =
@@ -41,7 +43,7 @@ type ParseChangelogs() =
member val CurrentReleaseChangelog: ITaskItem = null with get, set
[