1 module dls.protocol.interfaces.workspace;
2 
3 public import dls.protocol.definitions;
4 import dls.protocol.interfaces.client : RegistrationOptionsBase;
5 
6 class WorkspaceFolder
7 {
8     string uri;
9     string name;
10 }
11 
12 class DidChangeWorkspaceFoldersParams
13 {
14     WorkspaceFoldersChangeEvent event;
15 }
16 
17 class WorkspaceFoldersChangeEvent
18 {
19     WorkspaceFolder[] added;
20     WorkspaceFolder[] removed;
21 }
22 
23 class DidChangeConfigurationParams
24 {
25     JSONValue settings;
26 }
27 
28 class ConfigurationParams
29 {
30     ConfigurationItem[] items;
31 }
32 
33 class ConfigurationItem
34 {
35     Nullable!string scopeUri;
36     Nullable!string section;
37 }
38 
39 class DidChangeWatchedFilesParams
40 {
41     FileEvent[] changes;
42 }
43 
44 class FileEvent
45 {
46     DocumentUri uri;
47     FileChangeType type;
48 }
49 
50 enum FileChangeType
51 {
52     created = 1,
53     changed = 2,
54     deleted = 3
55 }
56 
57 class DidChangeWatchedFilesRegistrationOptions : RegistrationOptionsBase
58 {
59     FileSystemWatcher[] watchers;
60 }
61 
62 class FileSystemWatcher
63 {
64     string globPattern;
65     Nullable!WatchKind kind;
66 }
67 
68 enum WatchKind
69 {
70     create = 1,
71     change = 2,
72     delete_ = 4
73 }
74 
75 class WorkspaceSymbolParams
76 {
77     string query;
78 }
79 
80 class ExecuteCommandParams
81 {
82     string command;
83     Nullable!(JSONValue[]) arguments;
84 }
85 
86 class ExecuteCommandRegistrationOptions : RegistrationOptionsBase
87 {
88     string[] commands;
89 }
90 
91 class ApplyWorkspaceEditParams
92 {
93     WorkspaceEdit edit = new WorkspaceEdit();
94 }
95 
96 class ApplyWorkspaceEditResponse
97 {
98     bool applied;
99 }