summaryrefslogtreecommitdiff
path: root/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
blob: 9aeeadba05f8d218f844667116716eef3923d9b2 (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#pragma once

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

#include "LibLsp/lsp/lsTextDocumentIdentifier.h"
#include "LibLsp/lsp/lsRange.h"
#include <vector>
struct DocumentColorParams {
        /**
         * The text document.
         */

         lsTextDocumentIdentifier textDocument;
         MAKE_SWAP_METHOD(DocumentColorParams, textDocument);
};
MAKE_REFLECT_STRUCT(DocumentColorParams, textDocument);

/**
 * The document color request is sent from the client to the server to list all color references found in a given text
 * document. Along with the range, a color value in RGB is returned.
 *
 * Clients can use the result to decorate color references in an editor. For example:
 *  - Color boxes showing the actual color next to the reference
 *  - Show a color picker when a color reference is edited
 *
 * Since version 3.6.0
 */

namespace TextDocument {
        struct  Color {
                /**
                 * The red component of this color in the range [0-1].
                 */
                double red = 0;

                /**
                 * The green component of this color in the range [0-1].
                 */
                double green = 0;

                /**
                 * The blue component of this color in the range [0-1].
                 */
                double blue = 0;

                /**
                 * The alpha component of this color in the range [0-1].
                 */
                double alpha = 0;
                MAKE_SWAP_METHOD(TextDocument::Color, red, green, blue, alpha)
        };
}
MAKE_REFLECT_STRUCT(TextDocument::Color, red, green, blue, alpha)


struct ColorInformation {
        /**
         * The range in the document where this color appers.
         */

        lsRange range;

        /**
         * The actual color value for this color range.
         */

        TextDocument::Color color;
        MAKE_SWAP_METHOD(ColorInformation, range, color)
};
MAKE_REFLECT_STRUCT(ColorInformation,range,color)

DEFINE_REQUEST_RESPONSE_TYPE(td_documentColor, DocumentColorParams,std::vector<ColorInformation>, "textDocument/documentColor");