You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+17-6Lines changed: 17 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,8 @@ You can watch demos for some of these features [here](https://haskell-language-s
32
32
- For Cabal based projects, both ghc and [cabal-install](https://www.haskell.org/cabal/) must be installed and on the PATH. It can also be installed with [ghcup](https://www.haskell.org/ghcup/) or [Chocolatey](https://www.haskell.org/platform/windows.html) on Windows.
33
33
- For Stack based projects, [stack](http://haskellstack.org) must be installed and on the PATH.
34
34
- If you are installing from an offline VSIX file, you need to install [language-haskell](https://github.com/JustusAdam/language-haskell) too after installation (either from the marketplace or offline).
35
+
- Alternatively, you can let the extension manage your entire toolchain automatically (you'll be asked on first startup) via
36
+
[ghcup](https://www.haskell.org/ghcup/), which should be pre-installed
35
37
36
38
## Configuration options
37
39
@@ -71,17 +73,26 @@ The environment _only will be visible for the lsp server_, not for other extensi
71
73
72
74
### Downloaded binaries
73
75
74
-
This extension will download `haskell-language-server` binaries either via an internal ghcup (it will download it automaticlaly)
75
-
or via a system ghcup (which must be present), unless you set the config option `haskell.manageHLS` to `PATH` (the extension
76
-
will ask you on first start).
76
+
This extension will download `haskell-language-server` binaries and the rest of the toolchain if you selected to use GHCup during
77
+
first start. Check the `haskell.manageHLS` setting.
77
78
78
79
It will then download the newest version of haskell-language-server which has support for the required ghc.
79
80
That means it could use an older version than the latest one, without the last features and bug fixes.
80
81
For example, if a project needs ghc-8.10.4 the extension will download and use haskell-language-server-1.4.0, the lastest version which supported ghc-8.10.4. Even if the lastest global haskell language-server version is 1.5.1.
81
82
82
-
If you have disk space issues and use system ghcup, check `ghcup gc --help`.
83
-
If you have disk space issues and use the internal ghcup, check the following directories, depending on your platform
84
-
and possible delete them:
83
+
If you have disk space issues, check `ghcup gc --help`.
84
+
85
+
You can also instruct the extension to use a different installation directory for the toolchain,
86
+
e.g. to not interfere with system GHCup installation. Depending on your platform, add the full
Copy file name to clipboardExpand all lines: package.json
+31-9Lines changed: 31 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -137,7 +137,7 @@
137
137
"scope": "resource",
138
138
"type": "string",
139
139
"default": "",
140
-
"markdownDescription": "An optional path where downloaded binaries will be stored. Check the default value [here](https://github.com/haskell/vscode-haskell#downloaded-binaries)"
140
+
"markdownDescription": "An optional path where downloaded metadata will be stored. Check the default value [here](https://github.com/haskell/vscode-haskell#downloaded-binaries)"
141
141
},
142
142
"haskell.serverExecutablePath": {
143
143
"scope": "resource",
@@ -151,6 +151,12 @@
151
151
"default": "",
152
152
"markdownDescription": "Pass additional arguments to the language server."
153
153
},
154
+
"haskell.ghcupExecutablePath": {
155
+
"scope": "resource",
156
+
"type": "string",
157
+
"default": "",
158
+
"markdownDescription": "Manually set a ghcup executable path."
159
+
},
154
160
"haskell.serverEnvironment": {
155
161
"scope": "resource",
156
162
"type": "object",
@@ -163,21 +169,37 @@
163
169
"default": null,
164
170
"description": "How to manage/find HLS installations.",
165
171
"enum": [
166
-
"system-ghcup",
167
-
"internal-ghcup",
172
+
"GHCup",
168
173
"PATH"
169
174
],
170
175
"enumDescriptions": [
171
-
"Will use a user-wide installation of ghcup (usually in '~/.ghcup') to manage HLS automatically",
172
-
"Will use an internal installation of ghcup to manage HLS automatically, to avoid interfering with system ghcup",
173
-
"Discovers HLS executables in system PATH"
176
+
"Will use ghcup and manage Haskell toolchain in the default location (usually '~/.ghcup')",
177
+
"Discovers HLS and other executables in system PATH"
174
178
]
175
179
},
176
-
"haskell.useSystemGHCup": {
180
+
"haskell.installStack": {
177
181
"scope": "resource",
178
182
"type": "boolean",
179
-
"default": null,
180
-
"description": "Whether to use the system ghcup or an internal one for installing HLS."
183
+
"default": true,
184
+
"description": "Whether to also install/manage stack when 'manageHLS' is set to 'GHCup'."
185
+
},
186
+
"haskell.installCabal": {
187
+
"scope": "resource",
188
+
"type": "boolean",
189
+
"default": true,
190
+
"description": "Whether to also install/manage cabal when 'manageHLS' is set to 'GHCup'."
191
+
},
192
+
"haskell.installGHC": {
193
+
"scope": "resource",
194
+
"type": "boolean",
195
+
"default": true,
196
+
"description": "Whether to also install/manage GHC when 'manageHLS' is set to 'GHCup'."
197
+
},
198
+
"haskell.upgradeGHCup": {
199
+
"scope": "resource",
200
+
"type": "boolean",
201
+
"default": true,
202
+
"description": "Whether to upgrade GHCup automatically when 'manageHLS' is set to 'GHCup'."
0 commit comments