Skip to content

Commit 41129e7

Browse files
committed
2 parents 9f90bc7 + 859848b commit 41129e7

File tree

2 files changed

+10
-62
lines changed

2 files changed

+10
-62
lines changed

Diff for: package.json

+2-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "haskell",
33
"displayName": "Haskell",
4-
"description": "Haskell language support powered by the Haskell Language Server and ghcide",
4+
"description": "Haskell language support powered by the Haskell Language Server",
55
"version": "1.3.0",
66
"license": "MIT",
77
"publisher": "haskell",
@@ -130,16 +130,6 @@
130130
"default": "",
131131
"description": "If set, redirects the logs to a file."
132132
},
133-
"haskell.languageServerVariant": {
134-
"scope": "resource",
135-
"type": "string",
136-
"enum": [
137-
"haskell-language-server",
138-
"ghcide"
139-
],
140-
"default": "haskell-language-server",
141-
"description": "Which language server to use."
142-
},
143133
"haskell.releasesURL": {
144134
"scope": "resource",
145135
"type": "string",
@@ -166,7 +156,7 @@
166156
"Don't check for newer versions"
167157
],
168158
"default": "keep-up-to-date",
169-
"markdownDescription": "Only applicable with `#haskell.languageServerVariant#` set to `haskell-language-server`. Determine what to do when a new version of the language server is available."
159+
"markdownDescription": "Determine what to do when a new version of the language server is available."
170160
},
171161
"haskell.plugin.importLens.codeActionsOn": {
172162
"scope": "resource",

Diff for: src/extension.ts

+8-50
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,7 @@ function findManualExecutable(uri: Uri, folder?: WorkspaceFolder): string | null
9090

9191
/** Searches the PATH for whatever is set in serverVariant */
9292
function findLocalServer(context: ExtensionContext, uri: Uri, folder?: WorkspaceFolder): string | null {
93-
const serverVariant = workspace.getConfiguration('haskell', uri).languageServerVariant;
94-
95-
// Set the executable, based on the settings.
96-
let exes: string[] = []; // should get set below
97-
switch (serverVariant) {
98-
case 'haskell-ide-engine':
99-
exes = ['hie-wrapper', 'hie'];
100-
break;
101-
case 'haskell-language-server':
102-
exes = ['haskell-language-server-wrapper', 'haskell-language-server'];
103-
break;
104-
case 'ghcide':
105-
exes = ['ghcide'];
106-
break;
107-
}
93+
const exes: string[] = ['haskell-language-server-wrapper', 'haskell-language-server'];
10894

10995
for (const exe of exes) {
11096
if (executableExists(exe)) {
@@ -151,13 +137,8 @@ async function activateServerForFolder(context: ExtensionContext, uri: Uri, fold
151137
serverExecutable = findManualExecutable(uri, folder) ?? findLocalServer(context, uri, folder);
152138
if (serverExecutable === null) {
153139
// If not, then try to download haskell-language-server binaries if it's selected
154-
if (workspace.getConfiguration('haskell', uri).languageServerVariant === 'haskell-language-server') {
155-
serverExecutable = await downloadHaskellLanguageServer(context, uri, folder);
156-
if (!serverExecutable) {
157-
return;
158-
}
159-
} else {
160-
showNotInstalledErrorMessage(uri);
140+
serverExecutable = await downloadHaskellLanguageServer(context, uri, folder);
141+
if (!serverExecutable) {
161142
return;
162143
}
163144
}
@@ -170,16 +151,12 @@ async function activateServerForFolder(context: ExtensionContext, uri: Uri, fold
170151

171152
let args: string[] = ['--lsp'];
172153

173-
const serverVariant = workspace.getConfiguration('haskell', uri).languageServerVariant;
174-
// ghcide does not accept -d and -l params
175-
if (serverVariant !== 'ghcide') {
176-
if (logLevel === 'messages') {
177-
args = args.concat(['-d']);
178-
}
154+
if (logLevel === 'messages') {
155+
args = args.concat(['-d']);
156+
}
179157

180-
if (logFile !== '') {
181-
args = args.concat(['-l', logFile]);
182-
}
158+
if (logFile !== '') {
159+
args = args.concat(['-l', logFile]);
183160
}
184161

185162
// If we're operating on a standalone file (i.e. not in a folder) then we need
@@ -251,22 +228,3 @@ export async function deactivate() {
251228
}
252229
await Promise.all(promises);
253230
}
254-
255-
function showNotInstalledErrorMessage(uri: Uri) {
256-
const variant = workspace.getConfiguration('haskell', uri).languageServerVariant;
257-
let projectUrl = '';
258-
switch (variant) {
259-
case 'haskell-ide-engine':
260-
projectUrl = '/haskell/haskell-ide-engine';
261-
break;
262-
case 'haskell-language-server':
263-
projectUrl = '/haskell/haskell-language-server';
264-
break;
265-
case 'ghcide':
266-
projectUrl = '/digital-asset/ghcide';
267-
break;
268-
}
269-
const notInstalledMsg: string =
270-
variant + ' executable missing, please make sure it is installed, see https://github.com' + projectUrl + '.';
271-
window.showErrorMessage(notInstalledMsg);
272-
}

0 commit comments

Comments
 (0)