Commit Graph

2340 Commits

Author SHA1 Message Date
Ben Langmuir
e9211c8e4f [SourceKit] Fix cursor-info crash with mismatched pre/post callbacks
The problem was that shouldPrint returned true, but shouldPrintInContext
returned false, so we called printDeclPost without ever printing
anything and therefore never calling the pending printDeclPre. Also
remove the avoidPrintDeclPost in the annotation printer, since it was
incorrectly assuming that avoidPrintDeclPost was paired with
printDeclPre (it's not clear to me that it isn't sometimes paired
though...).

Future work: remove or properly document the difference between the two
shouldPrint* variants; and ensure that callbacks will always be paired
even if we don't end up printing anything. Also verify that
avoidPrintDeclPost behaves correctly with respect to printDeclPre being
called (or not).
2016-02-25 19:40:26 -08:00
mawadah
9494681745 [cmake] Allow Swift libraries to individually build for specific
deployment targets.
2016-02-25 16:54:43 -08:00
Ben Langmuir
dd29bace34 [SourceKit] Tag subscript element types like function return types
FIXME.count -= 1

rdar://problem/24292226
2016-02-25 13:05:06 -08:00
Ben Langmuir
36cc043481 [SourceKit] Be consistent about using the decl.var.parameter.name.local tag
FIXME.count -= 3

rdar://problem/24292226
2016-02-25 10:27:53 -08:00
Ben Langmuir
86bc29cfc6 [SourceKit] Add type tags for parameters and return types
When the type is not just a reference to a nominal type, we still need
to be able to delineate it.

rdar://problem/24292226
2016-02-25 09:07:16 -08:00
Ben Langmuir
0216eecf92 [SourceKit] Factor out getTagForPrintNameContext NFC
rdar://problem/24292226
2016-02-24 15:35:07 -08:00
Ben Langmuir
93f05fc101 [SourceKit] Update doc comment for FullyAnnotatedDeclarationPrinter
We annotate more structure now, so put it in the example.

rdar://problem/24292226
2016-02-24 15:26:46 -08:00
Ben Langmuir
d3e98f52ef [SourceKit] Add parameter.name.local and parameter.name.external tags
... for the fully annotated declarations. More substructure more better.
This has to go through a callback mechanism similar to printDeclLoc and
printDeclPre since it should be scheduled after both of those are
printed.

rdar://problem/24292226
2016-02-24 15:26:46 -08:00
Ben Langmuir
3e9bfa137d [SourceKit] Add decl.var.parameters entries to the fully annotated decl
This is the first part of adding parameter substructure so that clients
can reason about more of the function declaration.

rdar://problem/24292226
2016-02-24 11:39:47 -08:00
Ben Langmuir
184efb5e1c [SourceKit] Differentiate decl.var.local from decl.var.parameter
For decls it can be interesting to know when a decl is a parameter vs. a
local. This will be needed for the new fully annotated decls. For refs
it's usually not interesting.

rdar://problem/24292226
2016-02-24 11:37:00 -08:00
Xi Ge
bf1436a367 ASTPrinter: Move the logic for collecting all module groups from SourceKit to an IDE API, NFC. 2016-02-22 11:50:34 -08:00
practicalswift
e395ea0f0e [Python] Follow standard Python docstrings conventions (PEP-0257).
https://www.python.org/dev/peps/pep-0257/
2016-02-20 17:11:57 +01:00
Argyrios Kyrtzidis
10dfe5ab5a [SourceKit] Fix issue where the offset of diagnostic fixits is not updated after an edit request.
rdar://23919223
2016-02-19 19:18:44 -08:00
Xi Ge
1872214d40 Swif-ide-test: add a parameter to specify the group names to print. 2016-02-19 17:21:28 -08:00
Nadav Rotem
1347757c7b Merge pull request #1368 from practicalswift/self
[Python] The first argument of a Python method should be named "self"
2016-02-19 14:15:45 -08:00
practicalswift
75740f7872 [Python] The first argument of a Python method should be named "self" 2016-02-19 21:26:43 +01:00
Argyrios Kyrtzidis
bda072bb85 [SourceKit] Introduce a request to force a 'crash' for testing purposes. 2016-02-19 11:48:15 -08:00
Xi Ge
44bf526f38 [gardening] Avoid copying source locs to a new vector, make a wrapper for token iterator. NFC 2016-02-18 15:29:40 -08:00
Xi Ge
c5408c8beb [SourceKit] Indentation: indent the first element in a collection expression according to the position of the left bracket, if they are not in the same line.
We treat this as a mutated version of sibling-based indentation, where an extra level is needed. rdar://24630624
2016-02-18 13:28:44 -08:00
Argyrios Kyrtzidis
64185c7ea9 [SourceKit] Fix leak in 'CodeCompleteSetCustom' request.
rdar://23769190
2016-02-16 18:40:59 -08:00
Argyrios Kyrtzidis
bc21bbe806 [SourceKit] Add a 'mangle simple classes' request, intended to supersede _swift_mangleSimpleClass.
rdar://23525281
2016-02-16 18:32:46 -08:00
Dmitri Gribenko
54b6c2e5b8 Merge pull request #1329 from practicalswift/remove-request-mangle-simple-class
[gardening] Remove unused LazySKDUID RequestMangleSimpleClass
2016-02-16 18:01:26 -08:00
Xi Ge
dfd0a86986 [SourceKit] Teach SourceKit to recognized USRs for synthesized extensions.
So that IDE can jump to the synthesized extensions instead of the actual extensions.
2016-02-16 17:22:58 -08:00
practicalswift
a2ceef5c3e [gardening] Remove unused LazySKDUID RequestMangleSimpleClass
Introduced in commit 6cbcb7b56f
2016-02-16 22:44:35 +01:00
Argyrios Kyrtzidis
6cbcb7b56f [SourceKit] Introduce a new request for demangling symbol names.
This is SourceKit support for the swift_demangle_getDemangledName/swift_demangle_getSimplifiedDemangledName APIs.
rdar://23525281
2016-02-16 12:16:56 -08:00
Xi Ge
b480ab1f5f AnnotatingPrinter: For members from a synthesized extension, we append the target's USR to their original USR to differentiate them.
This is required to jumping to definition correctly, NFC for now.
2016-02-16 11:41:26 -08:00
Argyrios Kyrtzidis
51d4e27e7b [SourceKit] Introduce a request the reports the protocol version.
rdar://22953908
2016-02-15 14:54:06 -08:00
Argyrios Kyrtzidis
95ee932e0c [SourceKit] For sourcekitd_variant_json_description_copy, make sure to not escape the unicode characters in a string.
Otherwise it will be invalid json.
rdar://24617070
2016-02-15 10:37:56 -08:00
Ben Langmuir
e327378b24 [SourceKit] Add annotation tags for decl names
This splits the printDeclNamEndLoc callback into NameEndLoc and
NameOrSignatureEndLoc variants to differentiate whether or not
signatures are included.  All existing clients move to
NameOrSignatureEndLoc to maintain the current behaviour. I'm still not
completely happy with how these are named, but I dont' have any better
ideas right now.

rdar://problem/24292226
2016-02-12 15:57:28 -08:00
practicalswift
970216434d [Python] Fix "too many leading '#' for block comment"
See discussion with @gribozavr in https://github.com/apple/swift/pull/1287#issuecomment-183413319
2016-02-12 23:02:10 +01:00
Ben Langmuir
29ce0fec1b [SourceKit] Stub in a new "fully_annotated_decl" field to cursor info
This will eventually replace the existing annoteded_decl for cursor
info, and be added to doc info as well.  For now put in under a
different field name to not break existing clients.

For now, just reimplement the existing annotations but put in tag names
that are specific to the kind of type/decl. The goal is to fill in a
lot more substructure/detail over time.

Incidentally flesh out some cursor info tests.

rdar://problem/24292226
2016-02-12 12:56:11 -08:00
Daniel Duan
efe230774b [AST] rename some isXXX methods to getAsXXX
There's a group of methods in `DeclContext` with names that start with *is*,
such as `isClassOrClassExtensionContext()`. These names suggests a boolean
return value, while the methods actually return a type declaration. This
patch replaces the *is* prefix with *getAs* to better reflect their interface.
2016-02-11 16:23:40 -08:00
Xi Ge
8b6c6af573 [SourceKit] Teach module interface generator to respect the given module group name.
Input:
  Request Id: 'source.request.editor.open.interface'
  Required Field: 'key.modulename'
  Optional Field: 'key.groupname'

Output:
  If the group name is specified, SourceKit generates interface for the
  module group; otherwise does for the entire module.
2016-02-09 11:49:16 -08:00
Xi Ge
7784ba959e ModulePrinter: allow module printer to print symbols from a specific group. 2016-02-09 11:49:16 -08:00
Xi Ge
329345077b [SourceKit] Add a new query to collect all group names from a module.
Input:
  Request Id: 'source.request.module.groups'
  Required field: 'key.modulename'

Output:
  Array of group names in that module, if any.
2016-02-08 17:22:10 -08:00
Michael Gottesman
61f5c7b451 Use a void * instead of an opaque sourcekitd_uid_t pointer in SKUIDToUIDMap. 2016-02-06 11:22:27 -08:00
Xi Ge
a25551e54d [SourceKit] Surface group names via cursor info query. 2016-02-05 16:56:41 -08:00
Argyrios Kyrtzidis
9e244a5275 [SourceKit] Bring back the 'com.apple.' prefix for the bundle identifier of the XPC service.
We need this currently. Later-on we can make this more configurable.
2016-02-04 16:42:15 -08:00
Xi Ge
77b7180f1a Rename CodeCompletionTypeChecking.h to IDETypeChecking.h since it's used by more clients now. NFC 2016-02-04 11:09:21 -08:00
Xi Ge
8ade928d84 Simplify some code found by Slava, NFC. 2016-02-04 11:09:21 -08:00
Xi Ge
6837c17c17 [SourceKit][CursorInfo] Replace archetypes in cursor info results to actual types. rdar://24494225 2016-02-03 17:14:13 -08:00
Ben Langmuir
5da0906089 [CodeCompletion] Add optional top-N results that precede literals
Experiment with having some locals or nominal members come first, but
only a few so that the literals are still predictably near the top.

Part of rdar://problem/23865118
2016-02-03 16:31:26 -08:00
Dmitri Gribenko
b728b89b9d Merge pull request #1126 from harlanhaskins/profdata-merge
[coverage] Automatic merger for LLVM profile data
2016-02-03 11:02:47 -08:00
Ben Langmuir
a927dc8a5a [CodeCompletion] Hide literals that don't match the type context in SourceKit
If there is a type context, hide literal suggesetions that don't match
it, unless they are keywords and we have filtered to their names.

Incidentally fix an output buffering issue when combining filtering with
the -raw flag in complete-test.

Part of rdar://problem/23865118
2016-02-03 10:51:07 -08:00
Ben Langmuir
f1a8fea9f0 [CodeCompletion] Re-order literal suggestions
Move compound types (almost) to the end, put string just behind int and
fix the order of true/false.

Part of rdar://problem/23865118
2016-02-03 09:05:19 -08:00
Ben Langmuir
9ae6846ac7 [CodeCompletion] Remove more vestiges of 0.0 literal suggestion
Obviously dead code.
2016-02-03 08:29:20 -08:00
Ben Langmuir
e75402e49e [CodeCompletion] Add image literal similar to color
Part of rdar://problem/23865118
2016-02-03 07:55:07 -08:00
Xi Ge
ae60159816 [ModulePrint] Add the initial implementation for printing synthesized extensions.
For a concrete type, members from its conforming protocols' extensions can be hard
to manually surface. In this commit, when printing Swift modules, we start to replicate these
extensions and synthesize them as if they are the concrete type's native extensions.

Credit to Doug for suggesting this practice.
2016-02-02 14:53:21 -08:00
Xi Ge
a2490e2ae1 [SourceKit][CodeFormat] Awake the indent-sibling test after coping with the recent updates on AST representation of parameters. 2016-02-01 14:55:20 -08:00
Harlan Haskins
1777c20aff [coverage] Fixed indentation in CMake 2016-02-01 12:38:22 -08:00