Commit Graph

1528 Commits

Author SHA1 Message Date
Rintaro Ishizaki
05a87e86c4 [CodeCompletion] Give up fast-completion if dependent files are modified
Check if dependencies are modified since the last checking.
Dependencies:

 - Other source files in the current module
 - Dependent files collected by the dependency tracker

When:

 - If the last dependency check was over N (defaults to 5) seconds ago

Invalidate if:

 - The dependency file is missing
 - The modification time of the dependecy is greater than the last check
 - If the modification time is zero, compare the content using the file
   system from the previous completion and the current completion

rdar://problem/62336432
2020-05-04 13:02:09 -07:00
Owen Voorhees
eb8aeba2b8 [SourceKit] Discover diagnostic documentation relative to sourcekitd 2020-05-04 11:59:48 -07:00
swift_jenkins
2e1eadff69 Merge remote-tracking branch 'origin/master' into master-next 2020-05-04 09:58:40 -07:00
Nathan Hawes
d9b1d8f694 Merge pull request #31466 from nathawes/doc-info-availability-catalyst-fix
[SourceKit] Report macCatalyst availability as macCatalyst rather than iOS
2020-05-04 09:42:39 -07:00
Nathan Hawes
c426b1d6d9 [SourceKit] Report macCatalyst availability as macCatalyst rather than iOS
Resolves rdar://problem/60918688
2020-05-01 16:55:25 -07:00
Nathan Hawes
0f8619b943 [IDE][SourceKit] Support escaped identifiers for the syntactic rename and related idents requests.
Resolves rdar://problem/46409010
Resolves rdar://problem/48256383
2020-04-30 13:08:23 -07:00
swift_jenkins
f6a6621414 Merge remote-tracking branch 'origin/master' into master-next 2020-04-28 20:39:18 -07:00
Nathan Hawes
b10c1e3361 Merge pull request #31374 from nathawes/annotate-any-as-keyword
[ASTPrinter][SourceKit] Print 'Any' as a keyword.
2020-04-28 20:30:21 -07:00
swift_jenkins
04271f4cbf Merge remote-tracking branch 'origin/master' into master-next 2020-04-28 14:20:03 -07:00
Varun Gandhi
a1716fe2a6 [Diagnostics] Update compiler diagnostics to use less jargon. (#31315)
Fixes rdar://problem/62375243.
2020-04-28 14:11:39 -07:00
Nathan Hawes
a9aba54b42 [ASTPrinter][SourceKit] Print 'Any' as a keyword.
It's treated as a keyword by syntactic highlighting, but wasn't annotated as a
keyword by code completion, cursor info, or doc info.

Resolves rdar://problem/61114942
2020-04-28 13:35:06 -07:00
swift_jenkins
11beecd7fe Merge remote-tracking branch 'origin/master' into master-next 2020-04-27 12:17:57 -07:00
Rintaro Ishizaki
b2a742cb17 Merge pull request #31307 from rintaro/ide-completion-rdar62121221
[CodeCompletion] Prioritize type matching overload for unresovled member
2020-04-27 12:10:19 -07:00
swift_jenkins
b09e502739 Merge remote-tracking branch 'origin/master' into master-next 2020-04-27 10:18:04 -07:00
Nathan Hawes
974f8c728c Merge pull request #31299 from nathawes/fix-syntactic-request-crasher
[SourceKit] Fix unreachable hit in DocumentStructureWalker
2020-04-27 10:05:17 -07:00
Rintaro Ishizaki
e947512875 [CodeCompletion] Prioritize type matching overload for unresovled member
For exmaple:

    func foo(_: Int, _: IntOption)
    func foo(_: Float, _: FloatOption)

    foo(intVal, .<HERE>)

Previously code completion suggests static member from 'IntOption' and
'FloatOption' without any prioritization. Prioritize members from
'IntOption' because the user probably wants to input them.

In such cases, 'CodeCompletionExpr' at the cursor position is
pre-typechecked to 'IntOption'. So mark results with matching type with
'ExprSpecific'.

rdar://problem/62121221
2020-04-24 18:01:59 -07:00
Nathan Hawes
43eceef394 [SourceKit] Fix unreachable hit in DocumentStructureWalker
Resolves rdar://problem/61967092
2020-04-24 15:34:46 -07:00
swift_jenkins
896fd4bcb8 Merge remote-tracking branch 'origin/master' into master-next 2020-04-24 13:38:01 -07:00
Nathan Hawes
b297ea6d9d Merge pull request #31184 from nathawes/defaulted-arg-list-implicitness
[Sema] Maintain the implicitness of call argument tuple/parens in coerceCallArguments
2020-04-24 13:25:46 -07:00
swift_jenkins
dae7b2425d Merge remote-tracking branch 'origin/master' into master-next 2020-04-23 19:39:25 -07:00
Nathan Hawes
7c0a17803d [Sema] Maintain the implicitness of call argument tuple/parens in coerceCallArguments
If any arguments were defaulted the tuple/paren was made implicit, even though
the original tuple/paren was present in the source.

This prevented some sourcekit ASTWalkers from considering them, making
refactorings, documentation info, jump-to-definition and other features
unavailable when queried via their argument labels.

Resolves rdar://problem/62118957
2020-04-23 18:54:46 -07:00
Nathan Hawes
b7ac8f87b1 [IDE][AST] Handle frameworks with traditional overlays where the underlying module declares cross imports in sourcekit.
We weren't handling this case, so their generated interfaces / doc info
wouldn't include symbols from the cross-import overlays, and we wouldn't
map the underscored cross-import overlay name back to the declaring
framework's name in cusor-info, completion results or when indexing.

Resolves rdar://problem/62138551
2020-04-23 13:03:59 -07:00
swift_jenkins
f5510bf1a4 Merge remote-tracking branch 'origin/master' into master-next 2020-04-20 16:57:12 -07:00
Nathan Hawes
e01c1a1579 [SourceKit/CodeFormat] Get 'trailing' indentation to work in more places and fix a bug where multi-line string indentation was modified.
E.g. if/guard condition patterns are column-aligned, but hitting enter after
the ',' below wasn't column-aligning the next empty line:

guard let x = Optional(42),
// No indentation added here after enter

Also the isTargetContext() check takes a start and end token location, but
wasn't accounting for the end location pointing a multiline string, so we
weren't walking into such nodes. This meant we didn't realise the target
location was within a multiline string in some cases, and we ended up
interfering with whitespace in its content.
2020-04-19 15:11:16 -07:00
swift_jenkins
02262b9570 Merge remote-tracking branch 'origin/master' into master-next 2020-04-14 13:40:01 -07:00
Rintaro Ishizaki
f943a889ff [SourceKit] Don't use clang build sessions when validation is disabled
Don't use '-fbuild-session-timestamp' if
'-disable-modules-validate-system-headers' is specified.

Since system header validation happens under *OR* condition of
'ValidateSystemInputs' and 'ModulesValidateOncePerBuildSession', using
build sessions effectively overrides it.

rdar://problem/61075677
2020-04-14 17:38:10 +00:00
swift_jenkins
6cc93e4718 Merge remote-tracking branch 'origin/master' into master-next 2020-04-13 13:18:50 -07:00
Nathan Hawes
b3b7aa8ecf Merge pull request #30964 from nathawes/syntactic-rename-for-callAsFunction
[IDE][Refactoring] Handle 'callAsFunction' specially in syntactic rename
2020-04-13 11:36:53 -07:00
Nathan Hawes
e03e130f6a Merge pull request #30989 from CodaFi/of-no-avail
[Index][SR-9567] Allow unavailable decls to be walked
2020-04-13 11:26:54 -07:00
Bruno Rocha
160eb6cfd8 Update index test response to cover unavailable calls 2020-04-12 19:18:47 -07:00
Nathan Hawes
bce68fa4e5 [IDE][Refactoring] Handle 'callAsFunction' specially in syntactic rename.
This change makes us treat it exactly as we do 'init'. We don't allow renaming the base name,
and don't fail if the basename doesn't match for calls.

Also:
  - explicit init calls/references like `MyType.init(42)` are now reported with
    'init' as a keywordBase range, rather than nothing.
  - cursor info no longer reports rename as available on init/callAsFunction
    calls without arguments, as there's nothing to rename in that case.
  - Improved detection of when a referenced function is a call (rather than
    reference) across syntactic rename, cursor-info, and indexing.

Resolves rdar://problem/60340429
2020-04-12 17:14:15 -07:00
swift_jenkins
c03691f00c Merge remote-tracking branch 'origin/master' into master-next 2020-04-10 19:24:11 -07:00
Nathan Hawes
13d5a8addb Merge pull request #30870 from nathawes/mutiple-catch-pattern-indentation
[SourceKit/CodeFormat] Column-align multiple patterns in catch clauses
2020-04-10 19:07:44 -07:00
swift_jenkins
cf0e66e62a Merge remote-tracking branch 'origin/master' into master-next 2020-04-08 19:59:41 -07:00
Rintaro Ishizaki
a5fa431af4 Merge pull request #30890 from rintaro/sourcekit-test-diff
[SourceKit/Testing] Add %diff as an alias for 'diff --strip-trailing-cr'
2020-04-08 19:44:28 -07:00
Rintaro Ishizaki
aee280ad65 [SourceKit/Testing] Add %diff as an alias for 'diff --strip-trailing-cr' 2020-04-08 11:23:48 -07:00
Nathan Hawes
19d6effc5e [SourceKit/CodeFormat] Column-align multiple patterns in catch clauses.
Catch clauses now support mutliple patterns. Like 'case' patterns, these
should be column-aligned if split across multiple lines.

do {
  ...
} catch MyErr.a(let x),
        MyErr.b(let x) {
  print("hello")
}
2020-04-08 09:46:09 -07:00
swift_jenkins
add82ffe41 Merge remote-tracking branch 'origin/master' into master-next 2020-04-07 17:59:32 -07:00
Rintaro Ishizaki
496c303ab5 Merge pull request #30865 from rintaro/sourcekit-completion-rdar61367416
[SourceKit] Don't use diagnostics to indicate fast-completion
2020-04-07 17:58:19 -07:00
swift_jenkins
b7af9dbf98 Merge remote-tracking branch 'origin/master' into master-next 2020-04-07 17:01:37 -07:00
Rintaro Ishizaki
4870d1c017 [SourceKit] Don't use diagnostics to indicate fast-completion
Add 'key.reusingastcontext: 1' to the response instead.
Using diagnostics can be a noise to indexing log clients.

rdar://problem/61367416
2020-04-07 16:26:00 -07:00
Rintaro Ishizaki
837fa0d250 [CodeCompletion] Use --strip-trailing-cr for diff test 2020-04-07 13:15:41 -07:00
swift_jenkins
6f6153500e Merge remote-tracking branch 'origin/master' into master-next 2020-04-07 11:40:37 -07:00
Rintaro Ishizaki
31e7873704 Merge pull request #30767 from rintaro/sourcekit-completion-annotateddesc-rdar60801189
[SourceKit/CodeCompletion] Add an option to emit annotated description
2020-04-07 11:33:21 -07:00
Rintaro Ishizaki
28de43b7ca [CodeCompletion] Trim whitespaces around the content 2020-04-07 00:50:43 -07:00
Rintaro Ishizaki
773a464e83 [CodeCompletion] Add an option to emit annotated description 2020-04-07 00:46:14 -07:00
swift_jenkins
7fae9830db Merge remote-tracking branch 'origin/master' into master-next 2020-04-06 17:25:45 -07:00
Nathan Hawes
3ebb81e38f Merge pull request #30841 from nathawes/fix-cross-import-doc-support-test
[test] Fix DocSupport test that should have passed -enable-cross-import-overlays
2020-04-06 16:28:29 -07:00
swift_jenkins
49ddc4b2be Merge remote-tracking branch 'origin/master' into master-next 2020-04-06 14:20:36 -07:00
Nathan Hawes
b2fe997e7b Merge pull request #30836 from nathawes/doc-info-where-from-context
[SourceKit/DocSupport] List generic requirements from contextual where clauses in doc info request
2020-04-06 14:04:51 -07:00