summaryrefslogtreecommitdiff
path: root/graphics/asymptote/LspCpp/LibLsp/lsp/workspace/workspaceFolders.h
blob: 7cedcfa5f4852fa4a17ad1507ed3d09de45affa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once

#include "LibLsp/JsonRpc/RequestInMessage.h"
#include "LibLsp/JsonRpc/lsResponseMessage.h"

#include "LibLsp/lsp/lsDocumentUri.h"
struct WorkspaceFolder {
	/**
	 * The associated URI for this workspace folder.
	 */

	lsDocumentUri uri;

	/**
	 * The name of the workspace folder. Defaults to the uri's basename.
	 */
	std::string name;

	MAKE_SWAP_METHOD(WorkspaceFolder, uri, name)
};
MAKE_REFLECT_STRUCT(WorkspaceFolder, uri, name);


/**
 * The workspace/workspaceFolders request is sent from the server to the client
 * to fetch the current open list of workspace folders.
 *
 * @return null in the response if only a single file is open in the tool,
 *         an empty array if a workspace is open but no folders are configured,
 *         the workspace folders otherwise.
 */
DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceFolders, 
	boost::optional<JsonNull>, boost::optional<std::vector< WorkspaceFolder>>, "workspace/workspaceFolders");