Commit Graph

324 Commits

Author SHA1 Message Date
Toshiaki Kameyama
3f96e1dabc Move statement up/down fails for multiline declarations with lambdas (KT-21013)
#KT-21013 Fixed
2018-03-05 16:10:59 +03:00
Nikolay Krasko
866129984e Expression can be parenthesized on replace with if (KT-22874, EA-91186)
#KT-22874 Fixed
2018-02-16 13:29:53 +03:00
Pavel V. Talanov
229184dd78 Dsl line marker: provide simple tooltip
Test dsl line marker
2018-02-08 15:36:42 +01:00
Nikolay Krasko
d1e6a61197 Fix testInGlobalPropertyWithGetter test in 173 branch
Workaround for IDEA-185462. It was introduced in 173 idea and
fixed in 181.
2018-02-03 00:15:45 +03:00
Kirill Rakhman
8bc020f31b Fix modifier order in generated overriden functions
Fixes #KT-21600
2018-01-16 15:42:02 +01:00
Nicolay Mitropolsky
dd45780de9 RecursiveMethodCallMarkerInfo and SuspendCallMarkerInfo forced to target Leaf-elements
because of restriction added in IDEA 173
2018-01-12 13:53:45 +03:00
Dmitry Jemerov
86c10b635a Initial implementation of method separators
#KT-13029 Fixed
2018-01-10 13:17:33 +01:00
Alexey Sedunov
bcdb46653c Line Markers: Detect recursive calls of companion invoke() member
#KT-21076 Fixed
2017-11-27 21:19:23 +03:00
Alexey Sedunov
4cc1e22a5a Misc: Support light-methodless members in overrider search
In particular, support line markers for expect-class members
and navigation to expect-class members from corresponding base members
2017-10-24 15:43:51 +03:00
Mikhael Bogdanov
232d1bd9ef Switch warning to error for java-default method calls within 1.6 target
#KT-15825 Fixed

(cherry picked from commit 9b29ebb)
2017-10-11 19:20:24 +03:00
Kirill Rakhman
08103d1cb4 Implement "Surround with try/catch(/finally)" and "Surround with if/else" for expressions
Fixes #KT-14175
Fixes #KT-19782
2017-09-12 18:27:47 +03:00
Mikhail Glukhikh
dafb52a44a CodeBlockModification...: count file as changed when no changed elements
It means that root PSI (KtFile itself) is changed

So #KT-19726 Fixed
So #KT-20157 Fixed
2017-09-12 17:28:32 +03:00
Dmitry Jemerov
d6a9a49968 Disable tracking of Kotlin files by Java OOCB listener 2017-08-09 13:26:09 +02:00
Nikolay Krasko
8d226594ff Put comments and whitespaces under body in script files
It's more consistent to normal function body for IDE.
Doc comments in file beginning are now sticks to declarations
correctly.
Moving declarations at the end of scripts is fixed
2017-08-07 12:17:17 +03:00
Nikolay Krasko
6194bc10f8 Move statement out of top-level lambda in scripts (KT-19322)
#KT-19322 Fixed
2017-08-07 12:12:41 +03:00
Nikolay Krasko
4e76975a52 Force OOB in accessors for properties without explicit type (KT-19062)
#KT-19062 Fixed
2017-07-19 12:45:06 +03:00
Nikolay Krasko
bcbff98382 Check OOB stays the same for string in super type constructor call 2017-07-19 12:45:06 +03:00
Denis Zharkov
5141a88a53 Add TypeQualifier annotation to IDE test data
Othewise nullability is not processed correctly
2017-07-03 17:55:37 +03:00
Alexey Sedunov
88968807b2 Generate equals/hashCode(): Swap class literals in comparison 2017-06-29 17:42:20 +03:00
Alexey Sedunov
e3e4c447fa Generate equals/hashCode(): Use class literals when possible
#KT-18683 Fixed
2017-06-29 17:42:18 +03:00
Alexey Sedunov
9681f5ca42 Generate equals/hashCode(): Enable for classes without properties
Also:
- forbid for enum classes
- use javaClass.hashCode() instead of 0 if class has no properties

 #KT-18418 Fixed
2017-06-22 19:50:55 +03:00
Toshiaki Kameyama
b9fb7cc3a5 Add quick fix to generate equals / hashcode in data class with arrays
So #KT-15893 Fixed
2017-06-16 15:03:52 +03:00
Alexey Sedunov
1544467725 Presentation: Fix NPE on star projection rendering
EA-100480 Fixed
2017-06-15 17:26:39 +03:00
Toshiaki Kameyama
af941bfdf5 KT-18158 Expand selection should select the comment after expression getter on the same line (#1122)
* Expand selection should select the comment after expression getter on the same line #KT-18158 Fixed

* Fixed expand selection behavior for the declaration with comment #KT-18158

* Remove redundant code #KT-18158
2017-06-14 12:28:56 +02:00
Dmitry Jemerov
b1f84676d1 Update tests according to new formatter behavior 2017-06-14 11:40:41 +02:00
Dmitry Neverov
3b4dafe691 Detect recursive property accessors #KT-17221 Fixed 2017-05-19 20:36:09 +03:00
Dmitry Jemerov
af043843b7 Don't show disambiguation for "Show expression type" on "this"
#KT-17840 Fixed
2017-05-18 21:02:24 +02:00
Alexey Sedunov
0994474e87 Presentation: Fix NPE on functional type rendering
#KT-17638 Fixed
2017-05-18 14:22:40 +03:00
Dmitry Jemerov
c778e0454d Show line markers for suspending iteration
#KT-16803 Fixed
2017-05-10 14:27:23 +02:00
Dmitry Jemerov
baa43a2a55 Show line markers for sealed classes
#KT-16755 Fixed
2017-05-10 14:27:22 +02:00
Dmitry Jemerov
66ce2a6998 Render anonymous objects in Show Expression Type
#KT-17304 Fixed
2017-05-10 14:25:03 +02:00
Alexey Sedunov
0a5f9d8181 Move: Specify conflict containing declaration more precisely
Also do not render class fqname for member declarations

 #KT-17547 Fixed
2017-05-10 14:49:51 +03:00
Dmitry Jemerov
d49e9d7064 Fix override navigation from properties defined in primary constructor
EA-91185 - CCE: KotlinLineMarkerProviderKt$OVERRIDDEN_PROPERTY$.browse
2017-04-28 12:02:20 +02:00
Alexey Sedunov
aa0f0ef02d Presentation: Do not use resolve to compute element description
Invoking analysis on EDT may degrade editor performance
2017-04-17 23:00:08 +03:00
Pavel V. Talanov
4f701285b1 Light class builder: do not generate methods delegating to DefaultImpls in kotlin classes
Class APIs from java point of view stays the same so we can avoid generating those methods
Otherwise we have to calculate all supertypes when getMethods() is called,
    which imposes severe performance penalties
We have to pretend these methods are not 'abstract' (also we consider them 'default' for safety)
    so java highlighting does not report "class should be abstract" for all inheritors
We have to manually report "class should be abstract" on some of the java inheritors,
    specifically those that are implementing interfaces directly
	    as opposed to extending kotlin classes implementing those interfaces
2017-04-09 15:09:01 +03:00
Denis Zharkov
dcc98e3839 Improve check for statements-only postfix templates
Before this change the check was quite complicated
because of cases like:
for (i in 1..9)
    foo(i)<caret>

It's not located in a block, but in the same time it's a stament.
So we had a tricky heuristics that if is parent is not a block, then
we should check if element isn't used as expression.

Of course this heuristics is wrong, e.g. for import/package nodes.

The solution is to reuse similar logic from BasicExpressionTypingVisitor.
it has been checked once that statement container is one of:
- KtBlockExpression
- KtContainerNodeForControlStructureBody
- KtWhenEntry

So there's no need to check anything else

 #KT-14986 Fixed
 #KT-14483 Fixed
2017-03-15 10:47:12 +03:00
Denis Zharkov
bd88919411 Refine predicate for 'iter' postfix template
Use IterableTypesDetection to determine if the given expression may be iterated

 #KT-14134 Fixed
 #KT-14129 Fixed
2017-03-15 10:47:12 +03:00
Alexey Sedunov
983ad55357 Code Insight: Preserve identifier quotes in "Generate equals()/hashCode()/toString()" actions
#KT-15883 Fixed
2017-01-25 14:24:51 +03:00
Alexey Sedunov
8c882f0d27 Override Members: Allow overriding virtual synthetic members (e.g. equals(), hashCode(), toString(), etc.) in data classes
#KT-15563 Fixed
2017-01-13 15:17:35 +03:00
Alexey Sedunov
862966fd33 Override/Implement Members: Support all nullability annotations respected by the Kotlin compiler
#KT-12704 Fixed
 #KT-15583 Fixed
2017-01-13 15:17:34 +03:00
Alexey Sedunov
612dffb893 Highlighting: Add line markers for suspend function calls in coroutines
#KT-14689 Fixed
2017-01-10 21:16:10 +03:00
Mikhail Glukhikh
a846e41b46 Cleanup: KotlinLineMarkerProvider 2016-12-19 15:46:27 +03:00
Nikolay Krasko
2bb48fc802 Allow empty single-line bodies in property accessors 2016-12-14 13:40:44 +03:00
Ilya Gorbunov
daac46bce5 Fix rendering in test output after introducing type aliases for the types used in those tests. 2016-11-16 18:47:42 +03:00
Dmitry Jemerov
25c7dccd3b Don't consider function names as candidates for "Show expression type" (KT-14384) 2016-10-28 16:40:27 +02:00
Dmitry Jemerov
4246fcf256 "Show expression type" no longer shows elements which enclose the element at caret (KT-14436) 2016-10-28 16:40:27 +02:00
Dmitry Jemerov
57680ae003 Don't show literals in "show expression type" popup 2016-10-28 16:40:27 +02:00
Dmitry Jemerov
e6c05c3a19 Don't show type for reference expressions inside KtCallableReference (KT-14530) 2016-10-28 16:40:27 +02:00
Dmitry Jemerov
f933cf5395 Specify test framework to use explicitly in generate test tests 2016-10-19 17:04:42 +02:00
Alexey Sedunov
5bb035282f Generate 'toString()': Permit for data classes
#KT-14122 Fixed
2016-10-05 11:32:42 +03:00