openClientFile(fileName, fileContent, scriptKind, projectRootPath) {
    return this.openClientFileWithNormalizedPath(
      toNormalizedPath(fileName),
      fileContent,
      scriptKind,
      /*hasMixedContent*/
      false,
      projectRootPath ? toNormalizedPath(projectRootPath) : void 0
    );
  }
Open file whose contents is managed by the client
@param filename is absolute pathname
@param fileContent is a known version of the file content that is more up to date than the one on disk