Java 类org.eclipse.lsp4j.services.LanguageServer 实例源码

项目:xtext-core    文件:SocketServerLauncher.java   
public static void main(final String[] args) {
  try {
    ServerModule _serverModule = new ServerModule();
    final Injector injector = Guice.createInjector(_serverModule);
    final LanguageServer languageServer = injector.<LanguageServer>getInstance(LanguageServer.class);
    final ServerSocketChannel serverSocket = ServerSocketChannel.open();
    InetSocketAddress _inetSocketAddress = new InetSocketAddress("localhost", 5007);
    serverSocket.bind(_inetSocketAddress);
    final SocketChannel socketChannel = serverSocket.accept();
    InputStream _newInputStream = Channels.newInputStream(socketChannel);
    OutputStream _newOutputStream = Channels.newOutputStream(socketChannel);
    PrintWriter _printWriter = new PrintWriter(System.out);
    final Launcher<LanguageClient> launcher = LSPLauncher.createServerLauncher(languageServer, _newInputStream, _newOutputStream, true, _printWriter);
    launcher.startListening().get();
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:lsp4j    文件:LauncherTest.java   
@Before public void setup() throws IOException {
    PipedInputStream inClient = new PipedInputStream();
    PipedOutputStream outClient = new PipedOutputStream();
    PipedInputStream inServer = new PipedInputStream();
    PipedOutputStream outServer = new PipedOutputStream();

    inClient.connect(outServer);
    outClient.connect(inServer);
    server = new AssertingEndpoint();
    serverLauncher = LSPLauncher.createServerLauncher(ServiceEndpoints.toServiceObject(server, LanguageServer.class), inServer, outServer);
    serverListening = serverLauncher.startListening();

    client = new AssertingEndpoint();
    clientLauncher = LSPLauncher.createClientLauncher(ServiceEndpoints.toServiceObject(client, LanguageClient.class), inClient, outClient);
    clientListening = clientLauncher.startListening();
}
项目:lsp4j    文件:NullResponseTest.java   
@Test public void testNullResponse() throws InterruptedException, ExecutionException {
    Endpoint endpoint = ServiceEndpoints.toEndpoint(this);
    Map<String, JsonRpcMethod> methods = ServiceEndpoints.getSupportedMethods(LanguageServer.class);
    MessageJsonHandler handler = new MessageJsonHandler(methods);
    List<Message> msgs = new ArrayList<>();
    MessageConsumer consumer = (message) -> {
        msgs.add(message);
    };
    RemoteEndpoint re = new RemoteEndpoint(consumer, endpoint);

    RequestMessage request = new RequestMessage();
    request.setId("1");
    request.setMethod("shutdown");
    re.consume(request);
    Assert.assertEquals("{\"jsonrpc\":\"2.0\",\"id\":\"1\",\"result\":null}", handler.serialize(msgs.get(0)));
    msgs.clear();
    shutdownReturn = new Object();
    re.consume(request);
    Assert.assertEquals("{\"jsonrpc\":\"2.0\",\"id\":\"1\",\"result\":{}}", handler.serialize(msgs.get(0)));
}
项目:lsp4j    文件:ProtocolTest.java   
@Test public void testDocumentResolve() throws Exception, ExecutionException {
    LanguageServer languageServer = wrap(LanguageServer.class, new MockLanguageServer() {
        @Override
        public CompletableFuture<DocumentLink> documentLinkResolve(DocumentLink params) {
            return CompletableFutures.computeAsync(canceler -> {
                params.setTarget("resolved");
                return params;
            });
        }
    });

    CompletableFuture<DocumentLink> future = languageServer.getTextDocumentService().documentLinkResolve(
            new DocumentLink(new Range(new Position(0, 0), new Position(0, 0)), "unresolved")
    );
    DocumentLink resolved = future.get(TIMEOUT, TimeUnit.MILLISECONDS);

    Assert.assertEquals("resolved", resolved.getTarget());
}
项目:che    文件:SocketLsLauncherProvider.java   
@Override
public LanguageServer launch(String projectPath, LanguageClient client)
    throws LanguageServerException {
  try {
    Socket socket = new Socket(host, port);
    socket.setKeepAlive(true);
    InputStream inputStream = socket.getInputStream();
    OutputStream outputStream = socket.getOutputStream();

    Launcher<LanguageServer> launcher =
        Launcher.createLauncher(client, LanguageServer.class, inputStream, outputStream);

    launcher.startListening();
    return launcher.getRemoteProxy();
  } catch (IOException e) {
    throw new LanguageServerException(
        "Can't launch language server for project: " + projectPath, e);
  }
}
项目:che    文件:LanguageServerFileWatcher.java   
private void onServerInitialized(
    LanguageServerLauncher launcher,
    LanguageServer server,
    ServerCapabilities capabilities,
    String projectPath) {
  LanguageServerDescription description = launcher.getDescription();
  FileSystem fileSystem = FileSystems.getDefault();
  for (String pattern : description.getFileWatchPatterns()) {
    PathMatcher matcher = fileSystem.getPathMatcher(pattern);
    int watcherId =
        watcherManager.registerByMatcher(
            matcher,
            s -> send(server, s, FileChangeType.Created),
            s -> send(server, s, FileChangeType.Changed),
            s -> send(server, s, FileChangeType.Deleted));

    watcherIds.add(watcherId);
  }
}
项目:che    文件:LanguageServerRegistryImpl.java   
@PreDestroy
protected void shutdown() {
  List<LanguageServer> allServers;
  synchronized (initializedServers) {
    allServers =
        initializedServers
            .values()
            .stream()
            .flatMap(l -> l.stream())
            .map(s -> s.getServer())
            .collect(Collectors.toList());
  }
  for (LanguageServer server : allServers) {
    server.shutdown();
    server.exit();
  }
}
项目:che    文件:ShowMessageRequestTest.java   
@Test
public void testName() throws Exception {
  CompletableFuture<MessageActionItem> future = new CompletableFuture<>();
  when(transmitter.sendShowMessageRequest(any())).thenReturn(future);

  ServerInitializerImpl initializer = new ServerInitializerImpl();
  CheLanguageClient client = new CheLanguageClient(eventService, transmitter, "id");
  CompletableFuture<Pair<LanguageServer, InitializeResult>> initialize =
      initializer.initialize(launcher, client, "/tmp");
  Pair<LanguageServer, InitializeResult> resultPair = initialize.get();
  server = resultPair.first;
  ArgumentCaptor<ShowMessageRequestParams> captor =
      ArgumentCaptor.forClass(ShowMessageRequestParams.class);
  verify(transmitter, timeout(1500)).sendShowMessageRequest(captor.capture());

  ShowMessageRequestParams value = captor.getValue();
  assertNotNull(value);
  assertEquals(value.getType(), MessageType.Error);
  assertEquals(value.getMessage(), "Error Message!!!!");
}
项目:che    文件:ServerInitializerImplTest.java   
@Test
public void initializerShouldNotifyObservers() throws Exception {
  when(languageDescription.getLanguageId()).thenReturn("languageId");
  when(server.initialize(any(InitializeParams.class))).thenReturn(completableFuture);

  when(launcher.launch(anyString(), any())).thenReturn(server);
  when(launcher.getDescription()).thenReturn(serverDescription);
  when(serverDescription.getId()).thenReturn("launcherId");
  doNothing().when(initializer).registerCallbacks(any(), any());

  initializer.addObserver(observer);
  Pair<LanguageServer, InitializeResult> initResult =
      initializer.initialize(launcher, null, "/path").get();

  assertEquals(server, initResult.first);
  verify(observer, timeout(2000))
      .onServerInitialized(eq(launcher), eq(server), any(ServerCapabilities.class), eq("/path"));
}
项目:che    文件:YamlLanguageServerLauncher.java   
@Override
public void onServerInitialized(
    LanguageServerLauncher launcher,
    LanguageServer server,
    ServerCapabilities capabilities,
    String projectPath) {

  try {
    Map<String, String> preferences =
        requestFactory.fromUrl(apiUrl + "/preferences").useGetMethod().request().asProperties();

    Endpoint endpoint = ServiceEndpoints.toEndpoint(server);
    YamlSchemaAssociations serviceObject =
        ServiceEndpoints.toServiceObject(endpoint, YamlSchemaAssociations.class);
    Map<String, String[]> associations =
        jsonToSchemaAssociations(preferences.get("yaml.preferences"));
    serviceObject.yamlSchemaAssociation(associations);

  } catch (ApiException | IOException e) {
    LOG.error(e.getLocalizedMessage(), e);
  }
}
项目:che    文件:YamlService.java   
/**
 * Route for getting getting schemas from client side and injecting them into yaml language server
 *
 * @param yamlDto A yamlDTO containing the list of schemas you would like to add
 */
@POST
@Path("schemas")
@Consumes(MediaType.APPLICATION_JSON)
public void putSchemas(YamlDTO yamlDto) throws ApiException {

  LanguageServer yamlLS = YamlLanguageServerLauncher.getYamlLanguageServer();

  if (yamlDto != null && yamlLS != null) {

    Endpoint endpoint = ServiceEndpoints.toEndpoint(yamlLS);
    YamlSchemaAssociations serviceObject =
        ServiceEndpoints.toServiceObject(endpoint, YamlSchemaAssociations.class);

    Map<String, String[]> schemaAssociations = new HashMap<>();
    Map<String, String> yamlDtoSchemas = yamlDto.getSchemas();

    for (Map.Entry<String, String> schema : yamlDtoSchemas.entrySet()) {
      schemaAssociations.put(
          schema.getKey(), new Gson().fromJson(schema.getValue(), String[].class));
    }

    serviceObject.yamlSchemaAssociation(schemaAssociations);
  }
}
项目:che    文件:JsonLanguageServerLauncher.java   
@Override
public void onServerInitialized(
    LanguageServerLauncher launcher,
    LanguageServer server,
    ServerCapabilities capabilities,
    String projectPath) {
  Endpoint endpoint = ServiceEndpoints.toEndpoint(server);
  JsonExtension serviceObject = ServiceEndpoints.toServiceObject(endpoint, JsonExtension.class);
  Map<String, String[]> associations = new HashMap<>();
  associations.put("/*.schema.json", new String[] {"http://json-schema.org/draft-04/schema#"});
  associations.put("/bower.json", new String[] {"http://json.schemastore.org/bower"});
  associations.put("/.bower.json", new String[] {"http://json.schemastore.org/bower"});
  associations.put("/.bowerrc", new String[] {"http://json.schemastore.org/bowerrc"});
  associations.put("/composer.json", new String[] {"https://getcomposer.org/schema.json"});
  associations.put("/package.json", new String[] {"http://json.schemastore.org/package"});
  associations.put("/jsconfig.json", new String[] {"http://json.schemastore.org/jsconfig"});
  associations.put("/tsconfig.json", new String[] {"http://json.schemastore.org/tsconfig"});
  serviceObject.jsonSchemaAssociation(associations);
}
项目:xtext-core    文件:ServerModule.java   
@Override
protected void configure() {
  this.binder().<ExecutorService>bind(ExecutorService.class).toProvider(ExecutorServiceProvider.class);
  this.<LanguageServer>bind(LanguageServer.class).to(LanguageServerImpl.class);
  this.<IResourceServiceProvider.Registry>bind(IResourceServiceProvider.Registry.class).toProvider(ResourceServiceProviderServiceLoader.class);
  this.<IWorkspaceConfigFactory>bind(IWorkspaceConfigFactory.class).to(ProjectWorkspaceConfigFactory.class);
  this.<IProjectDescriptionFactory>bind(IProjectDescriptionFactory.class).to(DefaultProjectDescriptionFactory.class);
  this.<IContainer.Manager>bind(IContainer.Manager.class).to(ProjectDescriptionBasedContainerManager.class);
}
项目:lsp4j    文件:ProtocolTest.java   
@Test public void testDocumentLink_01() throws Exception, ExecutionException {
    LanguageServer languageServer = wrap(LanguageServer.class, new MockLanguageServer() {
        @Override
        public CompletableFuture<List<DocumentLink>> documentLink(DocumentLinkParams params) {
            return CompletableFutures.computeAsync(canceler -> {
                return new ArrayList<>();
            });
        }
    });

    CompletableFuture<List<DocumentLink>> future = languageServer.getTextDocumentService().documentLink(new DocumentLinkParams(new TextDocumentIdentifier("test")));
    List<DocumentLink> list = future.get(TIMEOUT, TimeUnit.MILLISECONDS);

    Assert.assertTrue(list.isEmpty());
}
项目:lsp4j    文件:ProtocolTest.java   
@Test public void testDocumentLink_02() throws Exception, ExecutionException {
    LanguageServer languageServer = wrap(LanguageServer.class, new MockLanguageServer() {
        @Override
        public CompletableFuture<List<DocumentLink>> documentLink(DocumentLinkParams params) {
            return CompletableFutures.computeAsync(canceler -> {
                return null;
            });
        }
    });

    CompletableFuture<List<DocumentLink>> future = languageServer.getTextDocumentService().documentLink(new DocumentLinkParams(new TextDocumentIdentifier("test")));
    List<DocumentLink> list = future.get(TIMEOUT, TimeUnit.MILLISECONDS);

    Assert.assertNull(list);
}
项目:lsp4j    文件:JsonSerializeTest.java   
@Before
public void setup() {
  final Map<String, JsonRpcMethod> methods = ServiceEndpoints.getSupportedMethods(LanguageServer.class);
  this.jsonHandler = new MessageJsonHandler(methods) {
    @Override
    public GsonBuilder getDefaultGsonBuilder() {
      return super.getDefaultGsonBuilder().setPrettyPrinting();
    }
  };
}
项目:lsp4j    文件:JsonParseTest.java   
@Before
public void setup() {
  final Map<String, JsonRpcMethod> methods = ServiceEndpoints.getSupportedMethods(LanguageServer.class);
  final Map<String, JsonRpcMethod> clientMethods = ServiceEndpoints.getSupportedMethods(LanguageClient.class);
  final HashMap<String, JsonRpcMethod> all = new HashMap<String, JsonRpcMethod>();
  all.putAll(methods);
  all.putAll(clientMethods);
  MessageJsonHandler _messageJsonHandler = new MessageJsonHandler(all);
  this.jsonHandler = _messageJsonHandler;
}
项目:che    文件:LanguageServerLauncherTemplate.java   
@Override
public final LanguageServer launch(String projectPath, LanguageClient client)
    throws LanguageServerException {
  Process languageServerProcess = startLanguageServerProcess(projectPath);
  waitCheckProcess(languageServerProcess);
  return connectToLanguageServer(languageServerProcess, client);
}
项目:che    文件:ServerInitializerImpl.java   
protected void registerCallbacks(LanguageServer server, LanguageServerLauncher launcher) {
  if (server instanceof ServerInitializerObserver) {
    addObserver((ServerInitializerObserver) server);
  }

  if (launcher instanceof ServerInitializerObserver) {
    addObserver((ServerInitializerObserver) launcher);
  }
}
项目:che    文件:ServerInitializerImpl.java   
private void onServerInitialized(
    LanguageServerLauncher launcher,
    LanguageServer server,
    ServerCapabilities capabilities,
    String projectPath) {
  observers.forEach(
      observer -> observer.onServerInitialized(launcher, server, capabilities, projectPath));
}
项目:che    文件:InitializedLanguageServer.java   
public InitializedLanguageServer(
    String id,
    LanguageServer server,
    InitializeResult initializeResult,
    LanguageServerLauncher launcher) {
  this.id = id;
  this.server = server;
  this.initializeResult = initializeResult;
  this.launcher = launcher;
}
项目:che    文件:LocalTestLSLauncher.java   
@Override
protected LanguageServer connectToLanguageServer(
    Process languageServerProcess, LanguageClient client) throws LanguageServerException {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:che    文件:TSLSLauncher.java   
@Override
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:che    文件:CSharpLanguageServerLauncher.java   
@Override
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:che    文件:TestLanguageServerLauncher.java   
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:che    文件:PythonLanguageSeverLauncher.java   
@Override
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:che    文件:YamlLanguageServerLauncher.java   
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  setYamlLanguageServer(launcher.getRemoteProxy());
  return launcher.getRemoteProxy();
}
项目:che    文件:JsonLanguageServerLauncher.java   
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:che    文件:PhpLanguageServerLauncher.java   
protected LanguageServer connectToLanguageServer(
    final Process languageServerProcess, LanguageClient client) {
  Launcher<LanguageServer> launcher =
      Launcher.createLauncher(
          client,
          LanguageServer.class,
          languageServerProcess.getInputStream(),
          languageServerProcess.getOutputStream());
  launcher.startListening();
  return launcher.getRemoteProxy();
}
项目:SOMns-vscode    文件:LSPLauncher.java   
public static Launcher<LanguageClient> createServerLauncher(LanguageServer server, InputStream in, OutputStream out) {
    return Launcher.createLauncher(server, LanguageClient.class, in, out);
}
项目:SOMns-vscode    文件:LSPLauncher.java   
public static Launcher<LanguageClient> createServerLauncher(LanguageServer server, InputStream in, OutputStream out, boolean validate, PrintWriter trace) {
    return Launcher.createLauncher(server, LanguageClient.class, in, out, validate, trace);
}
项目:SOMns-vscode    文件:LSPLauncher.java   
public static Launcher<LanguageClient> createServerLauncher(LanguageServer server, InputStream in, OutputStream out, ExecutorService executorService, Function<MessageConsumer, MessageConsumer> wrapper) {
    return Launcher.createLauncher(server, LanguageClient.class, in, out, executorService, wrapper);
}
项目:SOMns-vscode    文件:LSPLauncher.java   
public static Launcher<LanguageServer> createClientLauncher(LanguageClient client, InputStream in, OutputStream out) {
    return Launcher.createLauncher(client, LanguageServer.class, in, out);
}
项目:SOMns-vscode    文件:LSPLauncher.java   
public static Launcher<LanguageServer> createClientLauncher(LanguageClient client, InputStream in, OutputStream out, boolean validate, PrintWriter trace) {
    return Launcher.createLauncher(client, LanguageServer.class, in, out, validate, trace);
}
项目:SOMns-vscode    文件:LSPLauncher.java   
public static Launcher<LanguageServer> createClientLauncher(LanguageClient client, InputStream in, OutputStream out, ExecutorService executorService, Function<MessageConsumer, MessageConsumer> wrapper) {
    return Launcher.createLauncher(client, LanguageServer.class, in, out, executorService, wrapper);
}
项目:lsp4j    文件:LSPLauncher.java   
public static Launcher<LanguageClient> createServerLauncher(LanguageServer server, InputStream in, OutputStream out) {
    return Launcher.createLauncher(server, LanguageClient.class, in, out);
}
项目:lsp4j    文件:LSPLauncher.java   
public static Launcher<LanguageClient> createServerLauncher(LanguageServer server, InputStream in, OutputStream out, boolean validate, PrintWriter trace) {
    return Launcher.createLauncher(server, LanguageClient.class, in, out, validate, trace);
}
项目:lsp4j    文件:LSPLauncher.java   
public static Launcher<LanguageClient> createServerLauncher(LanguageServer server, InputStream in, OutputStream out, ExecutorService executorService, Function<MessageConsumer, MessageConsumer> wrapper) {
    return Launcher.createLauncher(server, LanguageClient.class, in, out, executorService, wrapper);
}
项目:lsp4j    文件:LSPLauncher.java   
public static Launcher<LanguageServer> createClientLauncher(LanguageClient client, InputStream in, OutputStream out) {
    return Launcher.createLauncher(client, LanguageServer.class, in, out);
}
项目:lsp4j    文件:LSPLauncher.java   
public static Launcher<LanguageServer> createClientLauncher(LanguageClient client, InputStream in, OutputStream out, boolean validate, PrintWriter trace) {
    return Launcher.createLauncher(client, LanguageServer.class, in, out, validate, trace);
}