Commit Graph

2331 Commits

Author SHA1 Message Date
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
Xi Ge
e92fb8109f [SourceKit][CodeFormat] When indenting a getter without the leading keyword, first check if the getter is implicit. rdar://24348021 2016-02-01 11:59:27 -08:00
saisi
535d400dc6 Fixed niggling typos 2016-01-29 23:16:25 -05:00
Harlan Haskins
44be500157 [coverage] Changed back to old coverage check in CMakeLists.txt files 2016-01-28 13:21:38 -08:00
Harlan Haskins
e997fc3ae3 [coverage] Changed 'none' to 'false' for coverage default 2016-01-28 11:23:59 -08:00
Harlan Haskins
9eb729ce79 [coverage] Reworked CMake invocation for coverage testing given there are three states for SWIFT_ANALYZE_CODE_COVERAGE 2016-01-26 16:36:26 -08:00
Harlan Haskins
c6c0b3d5d0 [coverage] Removed explicit swift-%p.profraw arguments from CMake commands, because we're using LLVM's environment variables 2016-01-25 19:49:03 -08:00
Ben Langmuir
d16e4b0467 [CodeCompletion] Add rudimentary support for configuring allowable completions
On a per-request basis. Allows hiding/showing at multiple granularities
* everything
* module
* API by name
* keywords (by uid or all of them)
* literals (by uid or all of them)

With more specific rules overriding less specific ones (so you can hide
everything and then selectively show certain API for example).

rdar://24170060
2016-01-25 08:45:48 -08:00
practicalswift
71e00fefa1 [gardening] Fix typos: "word word" (two spaces) → "word word" (one space) 2016-01-24 21:27:16 +01:00
practicalswift
679f1853d2 PEP8: Fix all violations of type "at least two spaces before inline comment" (E261) 2016-01-24 10:10:55 +01:00