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 }