Skip to content

Commit 5facf73

Browse files
angelozerrfbricon
authored andcommitted
feat: use server factory
Signed-off-by: azerr <azerr@redhat.com>
1 parent 138c28b commit 5facf73

File tree

4 files changed

+80
-8
lines changed

4 files changed

+80
-8
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2023 Red Hat, Inc.
3+
* Distributed under license by Red Hat, Inc. All rights reserved.
4+
* This program is made available under the terms of the
5+
* Eclipse Public License v2.0 which accompanies this distribution,
6+
* and is available at https://www.eclipse.org/legal/epl-v20.html
7+
*
8+
* Contributors:
9+
* Red Hat, Inc. - initial API and implementation
10+
******************************************************************************/
11+
package com.redhat.devtools.intellij.quarkus.lsp;
12+
13+
import com.intellij.openapi.project.Project;
14+
import com.redhat.devtools.lsp4ij.LanguageServerFactory;
15+
import com.redhat.devtools.lsp4ij.client.LanguageClientImpl;
16+
import com.redhat.devtools.lsp4ij.server.StreamConnectionProvider;
17+
import org.eclipse.lsp4j.services.LanguageServer;
18+
import org.eclipse.lsp4mp.ls.api.MicroProfileLanguageServerAPI;
19+
20+
/**
21+
* Quarkus language server factory.
22+
*/
23+
public class QuarkusLanguageServerFactory implements LanguageServerFactory {
24+
25+
@Override
26+
public StreamConnectionProvider createConnectionProvider(Project project) {
27+
return new QuarkusServer(project);
28+
}
29+
30+
@Override
31+
public LanguageClientImpl createLanguageClient(Project project) {
32+
return new QuarkusLanguageClient(project);
33+
}
34+
35+
@Override
36+
public Class<? extends LanguageServer> getServerInterface() {
37+
return MicroProfileLanguageServerAPI.class;
38+
}
39+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2023 Red Hat, Inc.
3+
* Distributed under license by Red Hat, Inc. All rights reserved.
4+
* This program is made available under the terms of the
5+
* Eclipse Public License v2.0 which accompanies this distribution,
6+
* and is available at https://www.eclipse.org/legal/epl-v20.html
7+
*
8+
* Contributors:
9+
* Red Hat, Inc. - initial API and implementation
10+
******************************************************************************/
11+
package com.redhat.devtools.intellij.qute.lsp;
12+
13+
import com.intellij.openapi.project.Project;
14+
import com.redhat.devtools.lsp4ij.LanguageServerFactory;
15+
import com.redhat.devtools.lsp4ij.client.LanguageClientImpl;
16+
import com.redhat.devtools.lsp4ij.server.StreamConnectionProvider;
17+
import com.redhat.qute.ls.api.QuteLanguageServerAPI;
18+
import org.eclipse.lsp4j.services.LanguageServer;
19+
20+
/**
21+
* Qute language server factory.
22+
*/
23+
public class QuteLanguageServerFactory implements LanguageServerFactory {
24+
25+
@Override
26+
public StreamConnectionProvider createConnectionProvider(Project project) {
27+
return new QuteServer(project);
28+
}
29+
30+
@Override
31+
public LanguageClientImpl createLanguageClient(Project project) {
32+
return new QuteLanguageClient(project);
33+
}
34+
35+
@Override
36+
public Class<? extends LanguageServer> getServerInterface() {
37+
return QuteLanguageServerAPI.class;
38+
}
39+
}

src/main/resources/META-INF/lsp4ij-quarkus.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
<server id="microprofile"
55
label="Tools for MicroProfile"
66
icon="com.redhat.devtools.intellij.microprofile.lang.MicroProfileIcons.MicroProfile"
7-
class="com.redhat.devtools.intellij.quarkus.lsp.QuarkusServer"
8-
clientImpl="com.redhat.devtools.intellij.quarkus.lsp.QuarkusLanguageClient"
9-
serverInterface="org.eclipse.lsp4mp.ls.api.MicroProfileLanguageServerAPI"
10-
scope="project">
7+
factoryClass="com.redhat.devtools.intellij.quarkus.lsp.QuarkusLanguageServerFactory">
118
<description><![CDATA[
129
The <a href="https://github.com/eclipse/lsp4mp">MicroProfile language server</a> provides <a href="https://microprofile.io/">MicroProfile</a> support in:
1310
<ul>

src/main/resources/META-INF/lsp4ij-qute.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55
<server id="qute"
66
label="Qute support"
77
icon="com.redhat.devtools.intellij.quarkus.lang.QuarkusIcons.Quarkus"
8-
class="com.redhat.devtools.intellij.qute.lsp.QuteServer"
9-
clientImpl="com.redhat.devtools.intellij.qute.lsp.QuteLanguageClient"
10-
serverInterface="com.redhat.qute.ls.api.QuteLanguageServerAPI"
11-
scope="project">
8+
factoryClass="com.redhat.devtools.intellij.qute.lsp.QuteLanguageServerFactory" >
129
<description><![CDATA[
1310
The <a href="https://github.com/redhat-developer/quarkus-ls">Qute language server</a> provides <a href="https://quarkus.io/guides/qute-reference">Qute</a> support in:
1411
<ul>

0 commit comments

Comments
 (0)