Skip to content

Commit 7b9702e

Browse files
authored
Merge branch 'master' into wip/multi-loop-2
2 parents 8b3a381 + d38af0d commit 7b9702e

File tree

106 files changed

+1456
-411
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+1456
-411
lines changed

.github/actions/setup-build/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ runs:
3131
sudo chown -R $USER /usr/local/.ghcup
3232
shell: bash
3333

34-
- uses: haskell-actions/[email protected].1
34+
- uses: haskell-actions/[email protected].3
3535
id: HaskEnvSetup
3636
with:
3737
ghc-version : ${{ inputs.ghc }}

.github/scripts/test.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ test_all_hls() {
4848
fi
4949
fi
5050
done
51+
# install the recommended GHC version so the wrapper can launch HLS
52+
ghcup install ghc --set recommended
5153
"$bindir/haskell-language-server-wrapper${ext}" typecheck "${test_module}" || fail "failed to typecheck with HLS wrapper"
5254
}
5355

.github/workflows/bench.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,14 @@ jobs:
4646
strategy:
4747
fail-fast: false
4848
matrix:
49+
# benching the two latest GHCs we support now
50+
# since benchmark are expansive.
51+
# choosing the two latest are easier to maintain and more forward looking
52+
# see discussion https://github.com/haskell/haskell-language-server/pull/4118
53+
# also possible to add more GHCs if we performs better in the future.
4954
ghc:
50-
- '9.2'
51-
- '9.4'
55+
- '9.6'
56+
- '9.8'
5257
os:
5358
- ubuntu-latest
5459

@@ -115,13 +120,13 @@ jobs:
115120
strategy:
116121
fail-fast: false
117122
matrix:
118-
ghc: ['9.2', '9.4']
123+
ghc: ['9.6', '9.8']
119124
os: [ubuntu-latest]
120125
cabal: ['3.10']
121126
example: ['cabal', 'lsp-types']
122127

123128
steps:
124-
- uses: haskell-actions/[email protected].1
129+
- uses: haskell-actions/[email protected].3
125130
with:
126131
ghc-version : ${{ matrix.ghc }}
127132
cabal-version: ${{ matrix.cabal }}

.github/workflows/nix.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
steps:
5050
- uses: actions/checkout@v3
5151

52-
- uses: cachix/install-nix-action@v25
52+
- uses: cachix/install-nix-action@v26
5353
with:
5454
extra_nix_config: |
5555
experimental-features = nix-command flakes

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1013,7 +1013,7 @@ jobs:
10131013
shell: bash
10141014

10151015
- name: Release
1016-
uses: softprops/action-gh-release@v1
1016+
uses: softprops/action-gh-release@v2
10171017
with:
10181018
draft: true
10191019
files: |

.github/workflows/test.yml

Lines changed: 44 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
- ubuntu-latest
7575
- macOS-latest
7676
- windows-latest
77-
test:
77+
test:
7878
- true
7979
- false
8080
exclude:
@@ -112,140 +112,147 @@ jobs:
112112
113113
- if: matrix.test
114114
name: Test hls-graph
115-
run: cabal test hls-graph
115+
run: cabal test hls-graph
116116

117117
- if: needs.pre_job.outputs.should_skip_ghcide != 'true' && matrix.test
118118
name: Test ghcide
119119
# run the tests without parallelism to avoid running out of memory
120-
run: cabal test ghcide || cabal test ghcide
120+
run: cabal test ghcide || cabal test ghcide
121121

122122
- if: matrix.test
123123
name: Test hls-plugin-api
124-
run: cabal test hls-plugin-api || cabal test hls-plugin-api
124+
run: cabal test hls-plugin-api || cabal test hls-plugin-api
125125

126126
- if: matrix.test
127127
name: Test func-test suite
128128
env:
129129
HLS_TEST_EXE: hls
130130
HLS_WRAPPER_TEST_EXE: hls-wrapper
131-
run: cabal test func-test || cabal test func-test
131+
run: cabal test func-test || cabal test func-test
132132

133133
- if: matrix.test
134134
name: Test wrapper-test suite
135135
env:
136136
HLS_TEST_EXE: hls
137137
HLS_WRAPPER_TEST_EXE: hls-wrapper
138-
run: cabal test wrapper-test
138+
run: cabal test wrapper-test
139139

140140
- if: matrix.test
141141
name: Test hls-refactor-plugin
142-
run: cabal test hls-refactor-plugin-tests || cabal test hls-refactor-plugin-tests
142+
run: cabal test hls-refactor-plugin-tests || cabal test hls-refactor-plugin-tests
143143

144-
- if: matrix.test
144+
- if: matrix.test
145145
name: Test hls-floskell-plugin
146-
run: cabal test hls-floskell-plugin-tests || cabal test hls-floskell-plugin-tests
146+
run: cabal test hls-floskell-plugin-tests || cabal test hls-floskell-plugin-tests
147147

148148
- if: matrix.test
149149
name: Test hls-class-plugin
150-
run: cabal test hls-class-plugin-tests || cabal test hls-class-plugin-tests
150+
run: cabal test hls-class-plugin-tests || cabal test hls-class-plugin-tests
151151

152152
- if: matrix.test
153153
name: Test hls-pragmas-plugin
154-
run: cabal test hls-pragmas-plugin-tests || cabal test hls-pragmas-plugin-tests
154+
run: cabal test hls-pragmas-plugin-tests || cabal test hls-pragmas-plugin-tests
155155

156156
- if: matrix.test
157157
name: Test hls-eval-plugin
158-
run: cabal test hls-eval-plugin-tests || cabal test hls-eval-plugin-tests
158+
run: cabal test hls-eval-plugin-tests || cabal test hls-eval-plugin-tests
159159

160160
- if: matrix.test
161161
name: Test hls-splice-plugin
162-
run: cabal test hls-splice-plugin-tests || cabal test hls-splice-plugin-tests
162+
run: cabal test hls-splice-plugin-tests || cabal test hls-splice-plugin-tests
163163

164164
- if: matrix.test && matrix.ghc != '9.2'
165165
name: Test hls-stan-plugin
166-
run: cabal test hls-stan-plugin-tests || cabal test hls-stan-plugin-tests
166+
run: cabal test hls-stan-plugin-tests || cabal test hls-stan-plugin-tests
167167

168168
- if: matrix.test
169169
name: Test hls-stylish-haskell-plugin
170-
run: cabal test hls-stylish-haskell-plugin-tests || cabal test hls-stylish-haskell-plugin-tests
170+
run: cabal test hls-stylish-haskell-plugin-tests || cabal test hls-stylish-haskell-plugin-tests
171171

172-
- if: matrix.test
172+
- if: matrix.test
173173
name: Test hls-ormolu-plugin
174-
run: cabal test hls-ormolu-plugin-tests || cabal test hls-ormolu-plugin-tests
174+
run: cabal test hls-ormolu-plugin-tests || cabal test hls-ormolu-plugin-tests
175175

176-
- if: matrix.test
176+
- if: matrix.test
177177
name: Test hls-fourmolu-plugin
178-
run: cabal test hls-fourmolu-plugin-tests || cabal test hls-fourmolu-plugin-tests
178+
run: cabal test hls-fourmolu-plugin-tests || cabal test hls-fourmolu-plugin-tests
179179

180180
- if: matrix.test
181181
name: Test hls-explicit-imports-plugin test suite
182-
run: cabal test hls-explicit-imports-plugin-tests || cabal test hls-explicit-imports-plugin-tests
182+
run: cabal test hls-explicit-imports-plugin-tests || cabal test hls-explicit-imports-plugin-tests
183183

184184
- if: matrix.test
185185
name: Test hls-call-hierarchy-plugin test suite
186-
run: cabal test hls-call-hierarchy-plugin-tests || cabal test hls-call-hierarchy-plugin-tests
186+
run: cabal test hls-call-hierarchy-plugin-tests || cabal test hls-call-hierarchy-plugin-tests
187187

188188
- if: matrix.test && matrix.os != 'windows-latest'
189189
name: Test hls-rename-plugin test suite
190-
run: cabal test hls-rename-plugin-tests || cabal test hls-rename-plugin-tests
190+
run: cabal test hls-rename-plugin-tests || cabal test hls-rename-plugin-tests
191191

192-
- if: matrix.test
192+
- if: matrix.test
193193
name: Test hls-hlint-plugin test suite
194-
run: cabal test hls-hlint-plugin-tests || cabal test hls-hlint-plugin-tests
194+
run: cabal test hls-hlint-plugin-tests || cabal test hls-hlint-plugin-tests
195195

196196
- if: matrix.test
197197
name: Test hls-module-name-plugin test suite
198-
run: cabal test hls-module-name-plugin-tests || cabal test hls-module-name-plugin-tests
198+
run: cabal test hls-module-name-plugin-tests || cabal test hls-module-name-plugin-tests
199199

200200
- if: matrix.test
201201
name: Test hls-alternate-number-format-plugin test suite
202-
run: cabal test hls-alternate-number-format-plugin-tests || cabal test hls-alternate-number-format-plugin-tests
202+
run: cabal test hls-alternate-number-format-plugin-tests || cabal test hls-alternate-number-format-plugin-tests
203203

204204
- if: matrix.test
205205
name: Test hls-qualify-imported-names-plugin test suite
206-
run: cabal test hls-qualify-imported-names-plugin-tests || cabal test hls-qualify-imported-names-plugin-tests
206+
run: cabal test hls-qualify-imported-names-plugin-tests || cabal test hls-qualify-imported-names-plugin-tests
207207

208208
- if: matrix.test
209209
name: Test hls-code-range-plugin test suite
210-
run: cabal test hls-code-range-plugin-tests || cabal test hls-code-range-plugin-tests
210+
run: cabal test hls-code-range-plugin-tests || cabal test hls-code-range-plugin-tests
211211

212212
- if: matrix.test
213213
name: Test hls-change-type-signature test suite
214-
run: cabal test hls-change-type-signature-plugin-tests || cabal test hls-change-type-signature-plugin-tests
214+
run: cabal test hls-change-type-signature-plugin-tests || cabal test hls-change-type-signature-plugin-tests
215215

216216
- if: matrix.test
217217
name: Test hls-gadt-plugin test suit
218-
run: cabal test hls-gadt-plugin-tests || cabal test hls-gadt-plugin-tests
218+
run: cabal test hls-gadt-plugin-tests || cabal test hls-gadt-plugin-tests
219219

220220
- if: matrix.test
221221
name: Test hls-explicit-fixity-plugin test suite
222-
run: cabal test hls-explicit-fixity-plugin-tests || cabal test hls-explicit-fixity-plugin-tests
222+
run: cabal test hls-explicit-fixity-plugin-tests || cabal test hls-explicit-fixity-plugin-tests
223223

224224
- if: matrix.test
225225
name: Test hls-explicit-record-fields-plugin test suite
226-
run: cabal test hls-explicit-record-fields-plugin-tests || cabal test hls-explicit-record-fields-plugin-tests
226+
run: cabal test hls-explicit-record-fields-plugin-tests || cabal test hls-explicit-record-fields-plugin-tests
227227

228228
## version needs to be limited since the tests depend on cabal-fmt which only builds using specific ghc versions
229229
- if: matrix.test && matrix.ghc == '9.2'
230230
name: Test hls-cabal-fmt-plugin test suite
231-
run: cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests || cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests
231+
run: cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests || cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests
232+
233+
- if: matrix.test
234+
name: Test hls-cabal-gild-plugin test suite
235+
run: cabal test hls-cabal-gild-plugin-tests --flag=isolateCabalGildTests || cabal test hls-cabal-gild-plugin-tests --flag=isolateCabalGildTests
232236

233237
- if: matrix.test
234238
name: Test hls-cabal-plugin test suite
235-
run: cabal test hls-cabal-plugin-tests || cabal test hls-cabal-plugin-tests
239+
run: cabal test hls-cabal-plugin-tests || cabal test hls-cabal-plugin-tests
236240

237241
- if: matrix.test
238242
name: Test hls-retrie-plugin test suite
239-
run: cabal test hls-retrie-plugin-tests || cabal test hls-retrie-plugin-tests
243+
run: cabal test hls-retrie-plugin-tests || cabal test hls-retrie-plugin-tests
240244

241245
- if: matrix.test
242246
name: Test hls-overloaded-record-dot-plugin test suite
243-
run: cabal test hls-overloaded-record-dot-plugin-tests || cabal test hls-overloaded-record-dot-plugin-tests
247+
run: cabal test hls-overloaded-record-dot-plugin-tests || cabal test hls-overloaded-record-dot-plugin-tests
244248

245249
- if: matrix.test
246250
name: Test hls-semantic-tokens-plugin test suite
247-
run: cabal test hls-semantic-tokens-plugin-tests || cabal test hls-semantic-tokens-plugin-tests
251+
run: cabal test hls-semantic-tokens-plugin-tests || cabal test hls-semantic-tokens-plugin-tests
248252

253+
- if: matrix.test
254+
name: Test hls-notes-plugin test suite
255+
run: cabal test hls-notes-plugin-tests || cabal test hls-notes-plugin-tests
249256

250257
test_post_job:
251258
if: always()

.hlint.yaml

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@
6464
- Ide.Types
6565
- Test.Hls
6666
- Test.Hls.Command
67-
- Wingman.Debug
68-
- Wingman.Types
6967
- AutoTupleSpec
7068
- name: unsafeInterleaveIO
7169
within:
@@ -76,7 +74,6 @@
7674
- Ide.Plugin.Eval.Code
7775
- Development.IDE.Core.Compile
7876
- Development.IDE.Types.Shake
79-
- Wingman.Judgements.SYB
8077
- Ide.Plugin.Properties
8178

8279
# Things that are a bit dangerous in the GHC API
@@ -105,17 +102,12 @@
105102
- Ide.Plugin.CallHierarchy.Internal
106103
- Ide.Plugin.Eval.Code
107104
- Ide.Plugin.Eval.Util
108-
- Ide.Plugin.Floskell
109-
- Ide.Plugin.ModuleName
110105
- Ide.Plugin.Class.ExactPrint
111106
- TExpectedActual
112107
- TRigidType
113108
- TRigidType2
114109
- RightToLeftFixities
115110
- Typeclass
116-
- Wingman.Judgements
117-
- Wingman.Machinery
118-
- Wingman.Tactics
119111
- CompletionTests #Previously part of GHCIDE Main tests
120112
- DiagnosticTests #Previously part of GHCIDE Main tests
121113
- FindDefinitionAndHoverTests #Previously part of GHCIDE Main tests
@@ -149,9 +141,8 @@
149141
- Main
150142
- Development.IDE.Spans.Common
151143
- Ide.PluginUtils
152-
- Wingman.Metaprogramming.Parser
153144
- Development.Benchmark.Rules
154-
- ErrorGivenPartialSignature
145+
- TErrorGivenPartialSignature
155146
- IfaceTests #Previously part of GHCIDE Main tests
156147
- THTests #Previously part of GHCIDE Main tests
157148
- WatchedFileTests #Previously part of GHCIDE Main tests
@@ -171,8 +162,6 @@
171162
- Development.IDE.Plugin.Completions.Logic
172163
- Development.IDE.Spans.Documentation
173164
- TErrorGivenPartialSignature
174-
- Wingman.CaseSplit
175-
- Wingman.Simplify
176165
- InitializeResponseTests #Previously part of GHCIDE Main tests
177166
- PositionMappingTests #Previously part of GHCIDE Main tests
178167

@@ -185,31 +174,23 @@
185174
within: []
186175

187176
- name: Data.Foldable.foldr1
188-
within:
189-
- Wingman.Tactics
177+
within: []
190178

191179
- name: Data.Maybe.fromJust
192180
within:
193181
- Experiments
194182
- Main
195-
- MultipleImports
196183
- Progress
197-
- Utils
198184
- Development.IDE.Core.Compile
199185
- Development.IDE.Core.Rules
200186
- Development.IDE.Core.Shake
201-
- Development.IDE.Plugin.Completions
202-
- Development.IDE.Plugin.CodeAction.ExactPrint
203-
- Development.IDE.Plugin.CodeAction
204187
- Development.IDE.Test
205188
- Development.IDE.Graph.Internal.Profile
206189
- Development.IDE.Graph.Internal.Rules
207-
- Ide.Plugin.Class
208190
- CodeLensTests #Previously part of GHCIDE Main tests
209191

210192
- name: "Data.Map.!"
211-
within:
212-
- Wingman.LanguageServer
193+
within: []
213194

214195
- name: "Data.IntMap.!"
215196
within: []
@@ -250,7 +231,6 @@
250231
- Development.IDE.Graph.Internal.Database
251232
- Development.IDE.GHC.Util
252233
- Development.IDE.Plugin.CodeAction.Util
253-
- Wingman.Debug
254234

255235
# We really do not want novel usages of restricted functions, and mere
256236
# Warning is not enough to prevent those consistently; you need a build failure.

CODEOWNERS

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
# Plugins
1515
/plugins/hls-alternate-number-format-plugin @drsooch
1616
/plugins/hls-cabal-fmt-plugin @VeryMilkyJoe @fendor
17+
/plugins/hls-cabal-gild-plugin @fendor
1718
/plugins/hls-cabal-plugin @fendor
1819
/plugins/hls-call-hierarchy-plugin @July541
1920
/plugins/hls-change-type-signature-plugin
20-
/plugins/hls-class-plugin
21+
/plugins/hls-class-plugin
2122
/plugins/hls-code-range-plugin @kokobd
2223
/plugins/hls-eval-plugin
2324
/plugins/hls-explicit-fixity-plugin
@@ -28,12 +29,13 @@
2829
/plugins/hls-gadt-plugin @July541
2930
/plugins/hls-hlint-plugin @eddiemundo
3031
/plugins/hls-module-name-plugin
32+
/plugins/hls-notes-plugin @jvanbruegge
3133
/plugins/hls-ormolu-plugin @georgefst
3234
/plugins/hls-overloaded-record-dot-plugin @joyfulmantis
3335
/plugins/hls-pragmas-plugin @eddiemundo
3436
/plugins/hls-qualify-imported-names-plugin @eddiemundo
3537
/plugins/hls-refactor-plugin @santiweight
36-
/plugins/hls-rename-plugin
38+
/plugins/hls-rename-plugin
3739
/plugins/hls-retrie-plugin @pepeiborra
3840
/plugins/hls-semantic-tokens-plugin @soulomoon
3941
/plugins/hls-splice-plugin @konn
@@ -48,7 +50,7 @@
4850
/docs @michaelpj
4951

5052
# CI
51-
/.circleci
53+
/.circleci
5254
/.github @michaelpj @fendor
5355

5456
# Build

0 commit comments

Comments
 (0)