Commit Graph

3980 Commits

Author SHA1 Message Date
Argyrios Kyrtzidis
cff07de44e [IDE] Search for URLs in comments and report them in the syntax model.
Swift SVN r19424
2014-07-01 19:21:17 +00:00
Argyrios Kyrtzidis
e64821d268 [IDE] Search all comments for 'FIXME:', 'TODO:', 'MARK:' and report them in the syntax model.
Swift SVN r19423
2014-07-01 19:21:16 +00:00
Ben Langmuir
a2aabbe575 Fix assertion failure completing anonymous default arguments
Parameters may be nameless VarDecls. Instead of asserting otherwise,
just don't provide a completion for that decl.

Swift SVN r19421
2014-07-01 18:51:23 +00:00
Argyrios Kyrtzidis
d67b3d5b08 [IDE] Provide the type source range for parameters in the syntax model.
rdar://17074991

Swift SVN r19249
2014-06-26 20:59:44 +00:00
Jordan Rose
deaa0a1497 Parse @private, @internal, @public, and the (set) variants of each.
This does no validation of the access control modifiers.

As part of this commit, note that "virtual" attributes may actually be
written in the source under another spelling. Update a few other parts of
the source to account for that.

Swift SVN r19140
2014-06-24 21:32:03 +00:00
Sonny Falk
d2e4115556 [IDE/CodeCompletion] Don't include text annotation chunks in the name.
Leading paren in constructor patterns should be included in the description
text, but not in the name.

This addresses the first part of <rdar://problem/17004638>.

Swift SVN r19114
2014-06-24 01:22:24 +00:00
Jordan Rose
727a7eb77a Attributes: Use class names in the DAK_* enum instead of attribute spellings.
This allows for single attributes that can be spelled multiple ways.
No functionality change.

Swift SVN r18993
2014-06-18 23:28:28 +00:00
Jordan Rose
574054b8fd Distance SourceManager from llvm::SourceMgr.
...in preparation for non-source locations, i.e. locations that don't come
frome source buffers.

No functionality change, but a fair bit of SourceManager API and idioms have
changed.

Swift SVN r18942
2014-06-17 01:15:47 +00:00
Greg Clayton
61c4e6f1a4 The command-line REPL doesn't accept pastes properly when it contains a if/else.
The problem was the IndentPrefix for the following 3 lines:

  if a ==12 {
    println("if")
  } else {

was returning "  } " as the indent prefix. The indent prefix should always be spaces, so now we trim off anything past any non-space characters.

<rdar://problem/17172600> 


Swift SVN r18878
2014-06-13 20:56:24 +00:00
Bob Wilson
9ab1136ba8 Update error_code usage to match llvm trunk.
LLVM's system_error.h has been changed to forward to the standard
version of the same. Update usage for the minor API changes that this
entails.

Based in part on a patch by Justin Bogner.

Swift SVN r18832
2014-06-12 19:48:39 +00:00
Dmitri Hrybenko
a83eb20500 Code completion: skip parameters that are defaulted to either of __FILE__,
__LINE__, __COLUMN__, or __FUNCTION__

rdar://16906142


Swift SVN r18746
2014-06-09 15:47:40 +00:00
Dmitri Hrybenko
d148917e00 Code completion for overrides: don't offer 'override override func'
in a sub-sub-class

rdar://17181252


Swift SVN r18744
2014-06-09 14:49:40 +00:00
Dmitri Hrybenko
b0eb481bff Code completion: display correct syntax and type when using an @optional member
on a value


Swift SVN r18742
2014-06-09 13:06:18 +00:00
Dmitri Hrybenko
550232536d Code completion: don't crash when the user is trying to complete attributes
rdar://17033622


Swift SVN r18638
2014-05-26 19:52:36 +00:00
Argyrios Kyrtzidis
95bd9e1d28 [AST/IDE] Centralize the logic to determine if a symbols is a 'private' stdlib one and hide them more extensively.
-Hide vars that have a private type.
-Hide functions that have a parameter with private type or a parameter name with leading underscore.
-Minor change in StringUTF16.swift to avoid printing "func generate() -> IndexingGenerator<_StringCore>".

rdar://17027294

Swift SVN r18623
2014-05-25 03:49:02 +00:00
Argyrios Kyrtzidis
4e6660388a [IDE/CodeCompletion] Hide internal symbols from the stdlib overlays as well.
rdar://16953431

Swift SVN r18524
2014-05-21 21:51:55 +00:00
Dmitri Hrybenko
2664242045 REPL code completion: use a readable output format
rdar://16988159


Swift SVN r18516
2014-05-21 20:38:05 +00:00
Sonny Falk
795be8545b [IDE/CodeCompletion] Make addParamPatternFromFunction() iterate over inputType
instead, so it picks up substituted types. BodyParamPatterns is now only
used for the local non-api parameter name. 
Consolidate the two variations of addFunctionCallPattern() into one function.
Update the tests accordingly.
This addresses <rdar://problem/16956363>.

Swift SVN r18481
2014-05-21 05:47:10 +00:00
Argyrios Kyrtzidis
973beb0ae3 [IDE/CodeCompletion] Fix crash with code-completion when using -import-objc-header.
Swift SVN r18444
2014-05-20 04:05:52 +00:00
Argyrios Kyrtzidis
1e94b0f0f7 Revert "[IDE/CodeCompletion] Minor enhancement, abort all-visible-modules visitation if we already handled that particular ImportedModule."
This reverts commit r18426.
Per feedback from Jordan this does the wrong thing because it aborts the entire visitation, not just the current visitation path.

Swift SVN r18433
2014-05-19 22:25:11 +00:00
Argyrios Kyrtzidis
b59f9882ee [IDE/CodeCompletion] Minor enhancement, abort all-visible-modules visitation if we already handled that particular ImportedModule.
Swift SVN r18426
2014-05-19 18:32:02 +00:00
Dmitri Hrybenko
12ecf4b3f6 Code completion: 80 cols and add 'const'
Swift SVN r18406
2014-05-19 09:43:32 +00:00
Sonny Falk
a2680240c0 [IDE/CodeCompletion] Teach code completion to display the local parameter name
if there's no parameter API name. This is for display purposes only.
Update all relevant tests accordingly.
This addresses <rdar://problem/16768768>.

For example:
  class X {
    func f(a: Int, b: Int) { }
  }

Would previously display like this in code completion in Xcode:
  f(<#Int#>, b: <#Int#>)

The local parameter name, while not API, often still conveys meaning
to the user. So it's now included like this:
  f(<#a: Int#>, b: <#Int#>)

Swift SVN r18403
2014-05-19 08:31:10 +00:00
Dmitri Hrybenko
fc9d546d2e Code completion: don't show internal SIL attributes in types of weak and
unowned variables

rdar://16849171


Swift SVN r18357
2014-05-18 21:50:13 +00:00
Argyrios Kyrtzidis
17f7684a20 [IDE/CodeCompletion] Make collecting and caching the global completion results more efficient.
We already don't try to detect and filter out shadowed declarations due to performance reasons, so cache the visible declarations contained
in a specific ImportedModule and collect all the results by recursing via calling Module::forAllVisibleModules().

This is more efficient because we avoid doing the work to collect all the global results for both Cocoa and AppKit, and we save on memory usage for the cache.
This also fixes a correctness issue where if you imported a module that was transitively imported by a previous import (e.g. Cocoa and AppKit) you would get duplicate results.

For this test case:

----------
import Cocoa
import AppKit
import Foundation

func foo() {
  <ESC>
}
----------

We go from
  - 7.05 secs to 1.43 secs to collect the results
  - 9.0 secs to 2.4 to ultimately show them in Xcode for first-time invocation.

Swift SVN r18344
2014-05-18 20:01:29 +00:00
Dmitri Hrybenko
49d10f7af7 Code completion: hide stdlib-private declarations
Swift SVN r18336
2014-05-18 17:37:39 +00:00
Dmitri Hrybenko
88dde39473 Code completion: fix use-after-free
A use-after-free could happen in the following scenario:

- code completion caches results from module A;
- code completion returns cached results -- result set 1;
- module is rebuilt;
- another code completion request arrives, cache is invalidated and re-filled.
  Old results are freed, even though someone could be still using the result
  set.

rdar://16953614


Swift SVN r18329
2014-05-18 16:55:45 +00:00
Sonny Falk
22633c2d83 [IDE/CodeCompletion] Make code completion include the leading paren in calls.
The leading paren is included for display purposes only, not inserted
in the code if already present. It makes the displayed text in the
code completion list symmetrical with respect to open/close parens.

Add markups when printing annotation chunks so it becomes testable.
Update tests accordingly, and include tests for leading parens.

This addresses <rdar://problem/16918310>.

Swift SVN r18126
2014-05-15 21:09:56 +00:00
Argyrios Kyrtzidis
2fe6987c5a [IDE] Annotate 'convenience' in an initializer as keyword.
rdar://16855149

Swift SVN r18065
2014-05-14 05:51:09 +00:00
Sonny Falk
75d06575b6 [IDE] Pass the correct range in the document structure for keyword arguments
with parameters that have both API and local name.
Add a test for the above.
This addresses <rdar://problem/16905994>.

Swift SVN r18053
2014-05-14 01:51:06 +00:00
Sonny Falk
a19a0d1133 [IDE] Make CodeCompletionContext::sortCompletionResults() sort by full name.
This addresses <rdar://problem/16877804>.

Swift SVN r17991
2014-05-13 02:38:48 +00:00
Sonny Falk
35ca554de1 [IDE] Don't include name range in the structure for non-api parameters.
Update the test accordingly.

Swift SVN r17893
2014-05-11 22:18:01 +00:00
Sonny Falk
7949d17021 [IDE] Provide call structure data and keyword arguments in document structure.
This will be used to highlight function calls and declarations for
QuickHelp and Jump-to-definition.
Add test for the above.
<rdar://problem/16862981>.

Swift SVN r17824
2014-05-10 02:54:55 +00:00
Dmitri Hrybenko
b47f0e9598 Code completion: constructor and function call patterns: don't add top-level
right after the left paren if the function or constructor requires a keyword
for the first argument

Should significantly clean up code completion for Cocoa constructors.


Swift SVN r17817
2014-05-10 01:03:16 +00:00
Argyrios Kyrtzidis
7de8d31c7a [IDE] Syntax color operator decls.
rdar://16530692

Swift SVN r17692
2014-05-08 08:11:38 +00:00
Argyrios Kyrtzidis
1784315096 [AST/IDE] Keep track of semantic info of imports (resolved module and decls) and report module/decl references via
the SourceEntityWalker.

Swift SVN r17689
2014-05-08 07:10:06 +00:00
Argyrios Kyrtzidis
ccc23b60b0 [IDE] Report module references in type contexts.
Swift SVN r17688
2014-05-08 07:10:05 +00:00
Ted Kremenek
196cdc3b22 Place -Wconditional-uninitialized by storing 'Length' in an optional.
Swift SVN r17616
2014-05-07 07:37:56 +00:00
Ted Kremenek
0b2c23ffec Remove special printing of ImplicitlyUnwrappedOptional<T>.
Part of <rdar://problem/16836463>

Swift SVN r17610
2014-05-07 06:59:52 +00:00
Argyrios Kyrtzidis
17c3bae3cd [IDE] Enhance SourceEntityWalker to provide callbacks for the keyword arguments of
a call expression.

Swift SVN r17607
2014-05-07 06:10:03 +00:00
Argyrios Kyrtzidis
9afa0333db [Frontend] Make sure we don't do any module imports during parse-only pass.
Fixes performance regression of rdar://16816861

Swift SVN r17600
2014-05-07 02:37:49 +00:00
Argyrios Kyrtzidis
84ae58d7d7 [IDE] For the syntax structure walker report ParamDecls as well.
Swift SVN r17442
2014-05-05 15:14:32 +00:00
Argyrios Kyrtzidis
caf5bc4a4a [IDE/CodeCompletion] Ignore the internal members of Optional, like getLogicValue() and getMirror().
These are not commonly used and cause noise and confusion when showing among the the members of the underlying type.

Swift SVN r17405
2014-05-04 21:45:12 +00:00
Argyrios Kyrtzidis
8f2b5a0458 [IDE/CodeCompletion] Remove the space before a BraceStmtWithCursor chunk, if we are going to ignore it then the space is noise.
Swift SVN r17401
2014-05-04 21:21:12 +00:00
Argyrios Kyrtzidis
ee289793b0 [IDE/CodeCompletion] CodeCompletionString::getFirstTextChunkIndex() should return the chunk index where
the symbol name begins.

rdar://16712635

Swift SVN r17400
2014-05-04 21:21:07 +00:00
Argyrios Kyrtzidis
a0fa68b072 [IDE/CodeCompletion] Expose the getFirstTextChunk() function via a CodeCompletionString method.
Swift SVN r17388
2014-05-04 17:30:07 +00:00
Argyrios Kyrtzidis
5f24181015 [IDE/CodeComplete] Create a separate chunk for the 'override' keyword.
Swift SVN r17387
2014-05-04 17:29:59 +00:00
Argyrios Kyrtzidis
1a7e6485f4 [IDE/CodeCompletion] For override completions, separate the introducer keywords like "override func" in
a new chunk kind, so that we can sort/filter based on the name of the function.

Swift SVN r17369
2014-05-04 07:20:57 +00:00
Argyrios Kyrtzidis
7f2fa7f97e [IDE] Filter out attributes like @objc and @availability when code-completing overrides.
rdar://16766431

Swift SVN r17366
2014-05-04 05:19:11 +00:00
Argyrios Kyrtzidis
bb66d6dd1a [IDE] Don't show '@transparent' in the module interface.
rdar://16804855

Swift SVN r17350
2014-05-04 01:24:55 +00:00