public void recompile()

in src/main/java/software/amazon/smithy/lsp/SmithyTextDocumentService.java [212:239]


  public void recompile(File path, Optional<File> original) {
    Either<Exception, ValidatedResult<Model>> loadedModel = SmithyInterface.readModel(path);

    String changedFileUri = original.map(File::getAbsolutePath).orElse(path.getAbsolutePath());

    client.ifPresent(cl -> {
      if (loadedModel.isLeft()) {
        cl.showMessage(msg(MessageType.Error, changedFileUri + " is not okay!" + loadedModel.getLeft().toString()));
      } else {
        ValidatedResult<Model> result = loadedModel.getRight();

        if (result.isBroken()) {
          List<ValidationEvent> events = result.getValidationEvents();

          List<Diagnostic> msgs = events.stream().map(ev -> ProtocolAdapter.toDiagnostic(ev))
              .collect(Collectors.toList());
          PublishDiagnosticsParams diagnostics = createDiagnostics(changedFileUri, msgs);

          cl.publishDiagnostics(diagnostics);
        } else {
          if (!original.isPresent()) {
            result.getResult().ifPresent(m -> updateLocations(m));
          }
          cl.publishDiagnostics(createDiagnostics(changedFileUri, Arrays.asList()));
        }
      }
    });
  }