File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -737,7 +737,46 @@ Welcome to SourceKit. Type ':help' for assistance.
737
737
}
738
738
```
739
739
740
+ ## Expression Type
741
+ This request collects the types of all expressions in a source file after type checking.
742
+ To fulfill this task, the client must provide the path to the Swift source file under
743
+ type checking and the necessary compiler arguments to help resolve all dependencies.
740
744
745
+ ### Request
746
+
747
+ ```
748
+ {
749
+ <key.request>: (UID) <source.request.expression.type>,
750
+ <key.sourcefile>: (string) // Absolute path to the file.
751
+ <key.compilerargs>: [string*] // Array of zero or more strings for the compiler arguments,
752
+ // e.g ["-sdk", "/path/to/sdk"]. If key.sourcefile is provided,
753
+ // these must include the path to that file.
754
+ }
755
+ ```
756
+
757
+ ### Response
758
+ ```
759
+ {
760
+ <key.printedtypebuffer>: (string) // A text buffer where all expression types are printed to.
761
+ <key.expression_type_list>: (array) [expr-type-info*] // A list of expression and type
762
+ }
763
+ ```
764
+
765
+ ```
766
+ expr-type-info ::=
767
+ {
768
+ <key.expression_offset>: (int64) // Offset of an expression in the source file
769
+ <key.expression_length>: (int64) // Length of an expression in the source file
770
+ <key.type_offset>: (int64) // Offset of the printed type of the expression in the printed type buffer
771
+ <key.type_length>: (int64) // Length of the printed type of the expression in the printed type buffer
772
+ }
773
+ ```
774
+
775
+ ### Testing
776
+
777
+ ```
778
+ $ sourcekitd-test -req=collect-type /path/to/file.swift -- /path/to/file.swift
779
+ ```
741
780
742
781
# UIDs
743
782
You can’t perform that action at this time.
0 commit comments