1syntax = "proto3";
2package zed.messages;
3
4import "core.proto";
5import "worktree.proto";
6import "buffer.proto";
7
8message GetDefinition {
9 uint64 project_id = 1;
10 uint64 buffer_id = 2;
11 Anchor position = 3;
12 repeated VectorClockEntry version = 4;
13}
14
15message GetDefinitionResponse {
16 repeated LocationLink links = 1;
17}
18
19message GetDeclaration {
20 uint64 project_id = 1;
21 uint64 buffer_id = 2;
22 Anchor position = 3;
23 repeated VectorClockEntry version = 4;
24}
25
26message GetDeclarationResponse {
27 repeated LocationLink links = 1;
28}
29
30message GetTypeDefinition {
31 uint64 project_id = 1;
32 uint64 buffer_id = 2;
33 Anchor position = 3;
34 repeated VectorClockEntry version = 4;
35 }
36
37message GetTypeDefinitionResponse {
38 repeated LocationLink links = 1;
39}
40message GetImplementation {
41 uint64 project_id = 1;
42 uint64 buffer_id = 2;
43 Anchor position = 3;
44 repeated VectorClockEntry version = 4;
45 }
46
47message GetImplementationResponse {
48 repeated LocationLink links = 1;
49}
50
51message GetReferences {
52 uint64 project_id = 1;
53 uint64 buffer_id = 2;
54 Anchor position = 3;
55 repeated VectorClockEntry version = 4;
56 }
57
58message GetReferencesResponse {
59 repeated Location locations = 1;
60}
61
62message GetDocumentHighlights {
63 uint64 project_id = 1;
64 uint64 buffer_id = 2;
65 Anchor position = 3;
66 repeated VectorClockEntry version = 4;
67 }
68
69message GetDocumentHighlightsResponse {
70 repeated DocumentHighlight highlights = 1;
71}
72
73message LocationLink {
74 optional Location origin = 1;
75 Location target = 2;
76}
77
78message DocumentHighlight {
79 Kind kind = 1;
80 Anchor start = 2;
81 Anchor end = 3;
82
83 enum Kind {
84 Text = 0;
85 Read = 1;
86 Write = 2;
87 }
88}
89
90message GetProjectSymbols {
91 uint64 project_id = 1;
92 string query = 2;
93}
94
95message GetProjectSymbolsResponse {
96 repeated Symbol symbols = 4;
97}
98
99message Symbol {
100 uint64 source_worktree_id = 1;
101 uint64 worktree_id = 2;
102 string language_server_name = 3;
103 string name = 4;
104 int32 kind = 5;
105 string path = 6;
106 // Cannot use generate anchors for unopened files,
107 // so we are forced to use point coords instead
108 PointUtf16 start = 7;
109 PointUtf16 end = 8;
110 bytes signature = 9;
111 uint64 language_server_id = 10;
112}
113
114message GetDocumentSymbols {
115 uint64 project_id = 1;
116 uint64 buffer_id = 2;
117 repeated VectorClockEntry version = 3;
118}
119
120message GetDocumentSymbolsResponse {
121 repeated DocumentSymbol symbols = 1;
122}
123
124message DocumentSymbol {
125 string name = 1;
126 int32 kind = 2;
127 // Cannot use generate anchors for unopened files,
128 // so we are forced to use point coords instead
129 PointUtf16 start = 3;
130 PointUtf16 end = 4;
131 PointUtf16 selection_start = 5;
132 PointUtf16 selection_end = 6;
133 repeated DocumentSymbol children = 7;
134}
135
136message InlayHints {
137 uint64 project_id = 1;
138 uint64 buffer_id = 2;
139 Anchor start = 3;
140 Anchor end = 4;
141 repeated VectorClockEntry version = 5;
142}
143
144message InlayHintsResponse {
145 repeated InlayHint hints = 1;
146 repeated VectorClockEntry version = 2;
147}
148
149message PointUtf16 {
150 uint32 row = 1;
151 uint32 column = 2;
152}
153
154message LspExtExpandMacro {
155 uint64 project_id = 1;
156 uint64 buffer_id = 2;
157 Anchor position = 3;
158}
159
160message LspExtExpandMacroResponse {
161 string name = 1;
162 string expansion = 2;
163}
164
165message LspExtOpenDocs {
166 uint64 project_id = 1;
167 uint64 buffer_id = 2;
168 Anchor position = 3;
169}
170
171message LspExtOpenDocsResponse {
172 optional string web = 1;
173 optional string local = 2;
174}
175
176message LspExtSwitchSourceHeader {
177 uint64 project_id = 1;
178 uint64 buffer_id = 2;
179}
180
181message LspExtSwitchSourceHeaderResponse {
182 string target_file = 1;
183}
184
185message LspExtGoToParentModule {
186 uint64 project_id = 1;
187 uint64 buffer_id = 2;
188 Anchor position = 3;
189}
190
191message LspExtGoToParentModuleResponse {
192 repeated LocationLink links = 1;
193}
194
195message GetCompletionsResponse {
196 repeated Completion completions = 1;
197 repeated VectorClockEntry version = 2;
198 // `!is_complete`, inverted for a default of `is_complete = true`
199 bool can_reuse = 3;
200}
201
202message ApplyCompletionAdditionalEdits {
203 uint64 project_id = 1;
204 uint64 buffer_id = 2;
205 Completion completion = 3;
206}
207
208message ApplyCompletionAdditionalEditsResponse {
209 Transaction transaction = 1;
210}
211
212message Completion {
213 Anchor old_replace_start = 1;
214 Anchor old_replace_end = 2;
215 string new_text = 3;
216 uint64 server_id = 4;
217 bytes lsp_completion = 5;
218 bool resolved = 6;
219 Source source = 7;
220 optional bytes lsp_defaults = 8;
221 optional Anchor buffer_word_start = 9;
222 optional Anchor buffer_word_end = 10;
223 Anchor old_insert_start = 11;
224 Anchor old_insert_end = 12;
225 optional string sort_text = 13;
226
227 enum Source {
228 Lsp = 0;
229 Custom = 1;
230 BufferWord = 2;
231 Dap = 3;
232 }
233}
234
235message GetCodeActions {
236 uint64 project_id = 1;
237 uint64 buffer_id = 2;
238 Anchor start = 3;
239 Anchor end = 4;
240 repeated VectorClockEntry version = 5;
241}
242
243message GetCodeActionsResponse {
244 repeated CodeAction actions = 1;
245 repeated VectorClockEntry version = 2;
246}
247
248message GetSignatureHelp {
249 uint64 project_id = 1;
250 uint64 buffer_id = 2;
251 Anchor position = 3;
252 repeated VectorClockEntry version = 4;
253}
254
255message GetSignatureHelpResponse {
256 optional SignatureHelp signature_help = 1;
257}
258
259message SignatureHelp {
260 repeated SignatureInformation signatures = 1;
261 optional uint32 active_signature = 2;
262 optional uint32 active_parameter = 3;
263}
264
265message SignatureInformation {
266 string label = 1;
267 optional Documentation documentation = 2;
268 repeated ParameterInformation parameters = 3;
269 optional uint32 active_parameter = 4;
270}
271
272message Documentation {
273 oneof content {
274 string value = 1;
275 MarkupContent markup_content = 2;
276 }
277}
278
279enum MarkupKind {
280 PlainText = 0;
281 Markdown = 1;
282}
283
284message ParameterInformation {
285 oneof label {
286 string simple = 1;
287 LabelOffsets label_offsets = 2;
288 }
289 optional Documentation documentation = 3;
290}
291
292message LabelOffsets {
293 uint32 start = 1;
294 uint32 end = 2;
295}
296
297message GetHover {
298 uint64 project_id = 1;
299 uint64 buffer_id = 2;
300 Anchor position = 3;
301 repeated VectorClockEntry version = 5;
302}
303
304message GetHoverResponse {
305 optional Anchor start = 1;
306 optional Anchor end = 2;
307 repeated HoverBlock contents = 3;
308}
309
310message HoverBlock {
311 string text = 1;
312 optional string language = 2;
313 bool is_markdown = 3;
314}
315
316message ApplyCodeAction {
317 uint64 project_id = 1;
318 uint64 buffer_id = 2;
319 CodeAction action = 3;
320}
321
322message ApplyCodeActionResponse {
323 ProjectTransaction transaction = 1;
324}
325
326message PrepareRename {
327 uint64 project_id = 1;
328 uint64 buffer_id = 2;
329 Anchor position = 3;
330 repeated VectorClockEntry version = 4;
331}
332
333message PrepareRenameResponse {
334 bool can_rename = 1;
335 Anchor start = 2;
336 Anchor end = 3;
337 repeated VectorClockEntry version = 4;
338 bool only_unprepared_rename_supported = 5;
339}
340
341message PerformRename {
342 uint64 project_id = 1;
343 uint64 buffer_id = 2;
344 Anchor position = 3;
345 string new_name = 4;
346 repeated VectorClockEntry version = 5;
347}
348
349message OnTypeFormatting {
350 uint64 project_id = 1;
351 uint64 buffer_id = 2;
352 Anchor position = 3;
353 string trigger = 4;
354 repeated VectorClockEntry version = 5;
355}
356
357message OnTypeFormattingResponse {
358 Transaction transaction = 1;
359}
360
361
362message LinkedEditingRange {
363 uint64 project_id = 1;
364 uint64 buffer_id = 2;
365 Anchor position = 3;
366 repeated VectorClockEntry version = 4;
367}
368
369message LinkedEditingRangeResponse {
370 repeated AnchorRange items = 1;
371 repeated VectorClockEntry version = 4;
372}
373
374message InlayHint {
375 Anchor position = 1;
376 InlayHintLabel label = 2;
377 optional string kind = 3;
378 bool padding_left = 4;
379 bool padding_right = 5;
380 InlayHintTooltip tooltip = 6;
381 ResolveState resolve_state = 7;
382}
383
384message InlayHintLabel {
385 oneof label {
386 string value = 1;
387 InlayHintLabelParts label_parts = 2;
388 }
389}
390
391message InlayHintLabelParts {
392 repeated InlayHintLabelPart parts = 1;
393}
394
395message InlayHintLabelPart {
396 string value = 1;
397 InlayHintLabelPartTooltip tooltip = 2;
398 optional string location_url = 3;
399 PointUtf16 location_range_start = 4;
400 PointUtf16 location_range_end = 5;
401 optional uint64 language_server_id = 6;
402}
403
404message InlayHintTooltip {
405 oneof content {
406 string value = 1;
407 MarkupContent markup_content = 2;
408 }
409}
410
411message InlayHintLabelPartTooltip {
412 oneof content {
413 string value = 1;
414 MarkupContent markup_content = 2;
415 }
416}
417
418message ResolveState {
419 State state = 1;
420 LspResolveState lsp_resolve_state = 2;
421
422 enum State {
423 Resolved = 0;
424 CanResolve = 1;
425 Resolving = 2;
426 }
427
428 message LspResolveState {
429 optional string value = 1;
430 uint64 server_id = 2;
431 }
432}
433
434// This type is used to resolve more than just
435// the documentation, but for backwards-compatibility
436// reasons we can't rename the type.
437message ResolveCompletionDocumentation {
438 uint64 project_id = 1;
439 uint64 language_server_id = 2;
440 bytes lsp_completion = 3;
441 uint64 buffer_id = 4;
442}
443
444message ResolveCompletionDocumentationResponse {
445 string documentation = 1;
446 bool documentation_is_markdown = 2;
447 Anchor old_replace_start = 3;
448 Anchor old_replace_end = 4;
449 string new_text = 5;
450 bytes lsp_completion = 6;
451 Anchor old_insert_start = 7;
452 Anchor old_insert_end = 8;
453}
454
455message ResolveInlayHint {
456 uint64 project_id = 1;
457 uint64 buffer_id = 2;
458 uint64 language_server_id = 3;
459 InlayHint hint = 4;
460}
461
462message ResolveInlayHintResponse {
463 InlayHint hint = 1;
464}
465
466message RefreshInlayHints {
467 uint64 project_id = 1;
468 uint64 server_id = 2;
469 optional uint64 request_id = 3;
470}
471
472message CodeLens {
473 bytes lsp_lens = 1;
474}
475
476message GetCodeLens {
477 uint64 project_id = 1;
478 uint64 buffer_id = 2;
479 repeated VectorClockEntry version = 3;
480}
481
482message GetCodeLensResponse {
483 repeated CodeAction lens_actions = 1;
484 repeated VectorClockEntry version = 2;
485}
486
487message RefreshCodeLens {
488 uint64 project_id = 1;
489}
490
491message MarkupContent {
492 bool is_markdown = 1;
493 string value = 2;
494}
495
496message PerformRenameResponse {
497 ProjectTransaction transaction = 2;
498}
499
500message CodeAction {
501 uint64 server_id = 1;
502 Anchor start = 2;
503 Anchor end = 3;
504 bytes lsp_action = 4;
505 Kind kind = 5;
506 bool resolved = 6;
507 enum Kind {
508 Action = 0;
509 Command = 1;
510 CodeLens = 2;
511 }
512}
513
514message LanguageServer {
515 uint64 id = 1;
516 string name = 2;
517 optional uint64 worktree_id = 3;
518}
519
520message StartLanguageServer {
521 uint64 project_id = 1;
522 LanguageServer server = 2;
523 string capabilities = 3;
524}
525
526message UpdateDiagnosticSummary {
527 uint64 project_id = 1;
528 uint64 worktree_id = 2;
529 DiagnosticSummary summary = 3;
530 repeated DiagnosticSummary more_summaries = 4;
531}
532
533message DiagnosticSummary {
534 string path = 1;
535 uint64 language_server_id = 2;
536 uint32 error_count = 3;
537 uint32 warning_count = 4;
538}
539
540message UpdateLanguageServer {
541 uint64 project_id = 1;
542 uint64 language_server_id = 2;
543 optional string server_name = 8;
544 oneof variant {
545 LspWorkStart work_start = 3;
546 LspWorkProgress work_progress = 4;
547 LspWorkEnd work_end = 5;
548 LspDiskBasedDiagnosticsUpdating disk_based_diagnostics_updating = 6;
549 LspDiskBasedDiagnosticsUpdated disk_based_diagnostics_updated = 7;
550 StatusUpdate status_update = 9;
551 RegisteredForBuffer registered_for_buffer = 10;
552 ServerMetadataUpdated metadata_updated = 11;
553 }
554}
555
556message ProgressToken {
557 oneof value {
558 int32 number = 1;
559 string string = 2;
560 }
561}
562
563message LspWorkStart {
564 reserved 1;
565 optional string title = 4;
566 optional string message = 2;
567 optional uint32 percentage = 3;
568 optional bool is_cancellable = 5;
569 ProgressToken token = 6;
570}
571
572message LspWorkProgress {
573 reserved 1;
574 optional string message = 2;
575 optional uint32 percentage = 3;
576 optional bool is_cancellable = 4;
577 ProgressToken token = 5;
578}
579
580message LspWorkEnd {
581 reserved 1;
582 ProgressToken token = 2;
583}
584
585message LspDiskBasedDiagnosticsUpdating {}
586
587message LspDiskBasedDiagnosticsUpdated {}
588
589message StatusUpdate {
590 optional string message = 1;
591 oneof status {
592 ServerBinaryStatus binary = 2;
593 ServerHealth health = 3;
594 }
595}
596
597enum ServerHealth {
598 OK = 0;
599 WARNING = 1;
600 ERROR = 2;
601}
602
603enum ServerBinaryStatus {
604 NONE = 0;
605 CHECKING_FOR_UPDATE = 1;
606 DOWNLOADING = 2;
607 STARTING = 3;
608 STOPPING = 4;
609 STOPPED = 5;
610 FAILED = 6;
611}
612
613message RegisteredForBuffer {
614 string buffer_abs_path = 1;
615 uint64 buffer_id = 2;
616}
617
618message LanguageServerBinaryInfo {
619 string path = 1;
620 repeated string arguments = 2;
621}
622
623message ServerMetadataUpdated {
624 optional string capabilities = 1;
625 optional LanguageServerBinaryInfo binary = 2;
626 optional string configuration = 3;
627 repeated string workspace_folders = 4;
628}
629
630message LanguageServerLog {
631 uint64 project_id = 1;
632 uint64 language_server_id = 2;
633 string message = 3;
634 oneof log_type {
635 LogMessage log = 4;
636 TraceMessage trace = 5;
637 RpcMessage rpc = 6;
638 }
639}
640
641message LogMessage {
642 LogLevel level = 1;
643
644 enum LogLevel {
645 LOG = 0;
646 INFO = 1;
647 WARNING = 2;
648 ERROR = 3;
649 }
650}
651
652message TraceMessage {
653 optional string verbose_info = 1;
654}
655
656message RpcMessage {
657 Kind kind = 1;
658
659 enum Kind {
660 RECEIVED = 0;
661 SENT = 1;
662 }
663}
664
665message LspLogTrace {
666 optional string message = 1;
667}
668
669message ApplyCodeActionKind {
670 uint64 project_id = 1;
671 string kind = 2;
672 repeated uint64 buffer_ids = 3;
673}
674
675message ApplyCodeActionKindResponse {
676 ProjectTransaction transaction = 1;
677}
678
679message RegisterBufferWithLanguageServers {
680 uint64 project_id = 1;
681 uint64 buffer_id = 2;
682 repeated LanguageServerSelector only_servers = 3;
683}
684
685enum FormatTrigger {
686 Save = 0;
687 Manual = 1;
688}
689
690message OpenBufferForSymbol {
691 uint64 project_id = 1;
692 Symbol symbol = 2;
693}
694
695message OpenBufferForSymbolResponse {
696 uint64 buffer_id = 1;
697}
698
699message FormatBuffers {
700 uint64 project_id = 1;
701 FormatTrigger trigger = 2;
702 repeated uint64 buffer_ids = 3;
703}
704
705message FormatBuffersResponse {
706 ProjectTransaction transaction = 1;
707}
708
709message GetCompletions {
710 uint64 project_id = 1;
711 uint64 buffer_id = 2;
712 Anchor position = 3;
713 repeated VectorClockEntry version = 4;
714 optional uint64 server_id = 5;
715}
716
717message CancelLanguageServerWork {
718 uint64 project_id = 1;
719
720 oneof work {
721 Buffers buffers = 2;
722 LanguageServerWork language_server_work = 3;
723 }
724
725 message Buffers {
726 repeated uint64 buffer_ids = 2;
727 }
728
729 message LanguageServerWork {
730 uint64 language_server_id = 1;
731 reserved 2;
732 optional ProgressToken token = 3;
733 }
734}
735
736message LanguageServerPromptRequest {
737 uint64 project_id = 1;
738
739 oneof level {
740 Info info = 2;
741 Warning warning = 3;
742 Critical critical = 4;
743 }
744
745 message Info {}
746 message Warning {}
747 message Critical {}
748
749 string message = 5;
750 repeated string actions = 6;
751 string lsp_name = 7;
752}
753
754message LanguageServerPromptResponse {
755 optional uint64 action_response = 1;
756}
757
758message GetDocumentColor {
759 uint64 project_id = 1;
760 uint64 buffer_id = 2;
761 repeated VectorClockEntry version = 3;
762
763}
764
765message GetDocumentColorResponse {
766 repeated ColorInformation colors = 1;
767 repeated VectorClockEntry version = 2;
768
769}
770
771message ColorInformation {
772 PointUtf16 lsp_range_start = 1;
773 PointUtf16 lsp_range_end = 2;
774 float red = 3;
775 float green = 4;
776 float blue = 5;
777 float alpha = 6;
778}
779
780message GetColorPresentation {
781 uint64 project_id = 1;
782 uint64 buffer_id = 2;
783 ColorInformation color = 3;
784 uint64 server_id = 4;
785}
786
787message GetColorPresentationResponse {
788 repeated ColorPresentation presentations = 1;
789}
790
791message ColorPresentation {
792 string label = 1;
793 optional TextEdit text_edit = 2;
794 repeated TextEdit additional_text_edits = 3;
795}
796
797message TextEdit {
798 string new_text = 1;
799 PointUtf16 lsp_range_start = 2;
800 PointUtf16 lsp_range_end = 3;
801}
802
803message LspQuery {
804 uint64 project_id = 1;
805 uint64 lsp_request_id = 2;
806 optional uint64 server_id = 15;
807 oneof request {
808 GetReferences get_references = 3;
809 GetDocumentColor get_document_color = 4;
810 GetHover get_hover = 5;
811 GetCodeActions get_code_actions = 6;
812 GetSignatureHelp get_signature_help = 7;
813 GetCodeLens get_code_lens = 8;
814 GetDocumentDiagnostics get_document_diagnostics = 9;
815 GetDefinition get_definition = 10;
816 GetDeclaration get_declaration = 11;
817 GetTypeDefinition get_type_definition = 12;
818 GetImplementation get_implementation = 13;
819 InlayHints inlay_hints = 14;
820 }
821}
822
823message LspQueryResponse {
824 uint64 project_id = 1;
825 uint64 lsp_request_id = 2;
826 repeated LspResponse responses = 3;
827}
828
829message LspResponse {
830 oneof response {
831 GetHoverResponse get_hover_response = 1;
832 GetCodeActionsResponse get_code_actions_response = 2;
833 GetSignatureHelpResponse get_signature_help_response = 3;
834 GetCodeLensResponse get_code_lens_response = 4;
835 GetDocumentDiagnosticsResponse get_document_diagnostics_response = 5;
836 GetDocumentColorResponse get_document_color_response = 6;
837 GetDefinitionResponse get_definition_response = 8;
838 GetDeclarationResponse get_declaration_response = 9;
839 GetTypeDefinitionResponse get_type_definition_response = 10;
840 GetImplementationResponse get_implementation_response = 11;
841 GetReferencesResponse get_references_response = 12;
842 InlayHintsResponse inlay_hints_response = 13;
843 }
844 uint64 server_id = 7;
845}
846
847message AllLanguageServers {}
848
849message LanguageServerSelector {
850 oneof selector {
851 uint64 server_id = 1;
852 string name = 2;
853 }
854}
855
856message RestartLanguageServers {
857 uint64 project_id = 1;
858 repeated uint64 buffer_ids = 2;
859 repeated LanguageServerSelector only_servers = 3;
860 bool all = 4;
861}
862
863message StopLanguageServers {
864 uint64 project_id = 1;
865 repeated uint64 buffer_ids = 2;
866 repeated LanguageServerSelector also_servers = 3;
867 bool all = 4;
868}
869
870message LspExtRunnables {
871 uint64 project_id = 1;
872 uint64 buffer_id = 2;
873 optional Anchor position = 3;
874}
875
876message LspExtRunnablesResponse {
877 repeated LspRunnable runnables = 1;
878}
879
880message LspRunnable {
881 bytes task_template = 1;
882 optional LocationLink location = 2;
883}
884
885message LspExtCancelFlycheck {
886 uint64 project_id = 1;
887 uint64 language_server_id = 2;
888}
889
890message LspExtRunFlycheck {
891 uint64 project_id = 1;
892 optional uint64 buffer_id = 2;
893 uint64 language_server_id = 3;
894 bool current_file_only = 4;
895}
896
897message LspExtClearFlycheck {
898 uint64 project_id = 1;
899 uint64 language_server_id = 2;
900}
901
902message LspDiagnosticRelatedInformation {
903 optional string location_url = 1;
904 PointUtf16 location_range_start = 2;
905 PointUtf16 location_range_end = 3;
906 string message = 4;
907}
908
909enum LspDiagnosticTag {
910 None = 0;
911 Unnecessary = 1;
912 Deprecated = 2;
913}
914
915message LspDiagnostic {
916 PointUtf16 start = 1;
917 PointUtf16 end = 2;
918 Severity severity = 3;
919 optional string code = 4;
920 optional string code_description = 5;
921 optional string source = 6;
922 string message = 7;
923 repeated LspDiagnosticRelatedInformation related_information = 8;
924 repeated LspDiagnosticTag tags = 9;
925 optional string data = 10;
926
927 enum Severity {
928 None = 0;
929 Error = 1;
930 Warning = 2;
931 Information = 3;
932 Hint = 4;
933 }
934}
935
936message GetDocumentDiagnostics {
937 uint64 project_id = 1;
938 uint64 buffer_id = 2;
939 repeated VectorClockEntry version = 3;
940}
941
942message GetDocumentDiagnosticsResponse {
943 repeated PulledDiagnostics pulled_diagnostics = 1;
944}
945
946message PulledDiagnostics {
947 uint64 server_id = 1;
948 string uri = 2;
949 optional string result_id = 3;
950 bool changed = 4;
951 repeated LspDiagnostic diagnostics = 5;
952 optional string registration_id = 6;
953}
954
955message PullWorkspaceDiagnostics {
956 uint64 project_id = 1;
957 uint64 server_id = 2;
958}
959
960message ToggleLspLogs {
961 uint64 project_id = 1;
962 LogType log_type = 2;
963 uint64 server_id = 3;
964 bool enabled = 4;
965
966 enum LogType {
967 LOG = 0;
968 TRACE = 1;
969 RPC = 2;
970 }
971}