handler = $handler; $this->mapper = $mapper; } /** * Returns a list of all files in a directory * * @param string $base The base directory (defaults to the workspace) * @return Promise Array of documents */ public function xfiles(string $base = null): Promise { return $this->handler->request( 'workspace/xfiles', ['base' => $base] )->then(function (array $textDocuments) { return $this->mapper->mapArray($textDocuments, [], TextDocumentIdentifier::class); }); } /** * The workspace/configuration request is sent from the server to the * client to fetch configuration settings from the client. * * The request can fetch n configuration settings in one roundtrip. * The order of the returned configuration settings correspond to the order * of the passed ConfigurationItems (e.g. the first item in the response is * the result for the first configuration item in the params). * * @param ConfigurationItem[] $items * @return Promise */ public function configuration(array $items): Promise { return $this->handler->request( 'workspace/configuration', ['items' => $items] ); } }