package moving

This commit is contained in:
bQUARKz 2026-05-06 00:25:23 +01:00
parent 7415b70d1b
commit 14d4751f9a
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
3 changed files with 10 additions and 8 deletions

View File

@ -2,9 +2,10 @@ package p.studio;
import com.fasterxml.jackson.databind.ObjectMapper;
import p.packer.Packer;
import p.studio.lsp.api.LspServerLifecycle;
import p.studio.lsp.events.StudioEventBus;
import p.studio.lsp.events.StudioPackerEventAdapter;
import p.studio.lsp.services.LspServerLifecycle;
import p.studio.lsp.services.LspServerLifecycleImpl;
import p.studio.lsp.services.compiler.CompilerLanguageServiceBridge;
import p.studio.lsp.services.host.TcpLspServerHostFactory;
import p.studio.utilities.ThemeService;
@ -22,7 +23,7 @@ public final class AppContainer implements Container {
private final ObjectMapper mapper;
private final EmbeddedPacker embeddedPacker;
private final StudioBackgroundTasks backgroundTasks;
private final p.studio.lsp.api.LspServerLifecycle lspServerLifecycle;
private final LspServerLifecycle lspServerLifecycle;
public AppContainer() {
this.i18nService = new I18nService();
@ -33,7 +34,7 @@ public final class AppContainer implements Container {
this.backgroundTasks = new StudioBackgroundTasks(backgroundExecutor);
final Packer packer = Packer.bootstrap(this.mapper, new StudioPackerEventAdapter(studioEventBus));
this.embeddedPacker = new EmbeddedPacker(packer.workspaceService(), packer::close);
this.lspServerLifecycle = new LspServerLifecycle(
this.lspServerLifecycle = new LspServerLifecycleImpl(
new TcpLspServerHostFactory(),
new CompilerLanguageServiceBridge());
}

View File

@ -1,5 +1,6 @@
package p.studio.lsp.services;
import p.studio.lsp.api.LspServerLifecycle;
import p.studio.lsp.messages.LspProjectContext;
import p.studio.lsp.messages.LspServerBootRequest;
import p.studio.lsp.messages.LspServerHandle;
@ -11,12 +12,12 @@ import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
public final class LspServerLifecycle implements p.studio.lsp.api.LspServerLifecycle {
public final class LspServerLifecycleImpl implements LspServerLifecycle {
private final ProjectScopedLspServerHostFactory serverHostFactory;
private final CompilerLanguageServiceBridge compilerBridge;
private final ConcurrentMap<String, ProjectScopedLspServerHost> activeServers;
public LspServerLifecycle(
public LspServerLifecycleImpl(
final ProjectScopedLspServerHostFactory serverHostFactory,
final CompilerLanguageServiceBridge compilerBridge) {
this.serverHostFactory = Objects.requireNonNull(serverHostFactory, "serverHostFactory");

View File

@ -14,13 +14,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
class LspServerLifecycleTest {
class LspServerLifecycleImplTest {
@Test
void lifecycleBootsAndShutsDownProjectScopedHost() {
final FakeHost host = new FakeHost();
final ProjectScopedLspServerHostFactory factory = (request, compilerBridge) -> host;
final var lifecycle = new LspServerLifecycle(factory, new CompilerLanguageServiceBridge());
final var lifecycle = new LspServerLifecycleImpl(factory, new CompilerLanguageServiceBridge());
final var project = new LspProjectContext("demo", "pbs", Path.of("."));
final var handle = lifecycle.bootServer(LspServerBootRequest.defaults(project));
@ -37,7 +37,7 @@ class LspServerLifecycleTest {
@Test
void lifecycleRejectsDoubleBootForSameProject() {
final ProjectScopedLspServerHostFactory factory = (request, compilerBridge) -> new FakeHost();
final var lifecycle = new LspServerLifecycle(factory, new CompilerLanguageServiceBridge());
final var lifecycle = new LspServerLifecycleImpl(factory, new CompilerLanguageServiceBridge());
final var request = LspServerBootRequest.defaults(new LspProjectContext("demo", "pbs", Path.of(".")));
lifecycle.bootServer(request);